Kaynağa Gözat

Remove useless Agent parameters.

sdk-team 4 yıl önce
ebeveyn
işleme
a358f4d5f0
65 değiştirilmiş dosya ile 4926 ekleme ve 1 silme
  1. 1 1
      VERSION
  2. 142 0
      mns-open/CMakeLists.txt
  3. 166 0
      mns-open/include/alibabacloud/mns-open/Mns_openClient.h
  4. 32 0
      mns-open/include/alibabacloud/mns-open/Mns_openExport.h
  5. 60 0
      mns-open/include/alibabacloud/mns-open/model/CreateQueueRequest.h
  6. 65 0
      mns-open/include/alibabacloud/mns-open/model/CreateQueueResult.h
  7. 48 0
      mns-open/include/alibabacloud/mns-open/model/CreateTopicRequest.h
  8. 65 0
      mns-open/include/alibabacloud/mns-open/model/CreateTopicResult.h
  9. 42 0
      mns-open/include/alibabacloud/mns-open/model/DeleteQueueRequest.h
  10. 65 0
      mns-open/include/alibabacloud/mns-open/model/DeleteQueueResult.h
  11. 42 0
      mns-open/include/alibabacloud/mns-open/model/DeleteTopicRequest.h
  12. 59 0
      mns-open/include/alibabacloud/mns-open/model/DeleteTopicResult.h
  13. 42 0
      mns-open/include/alibabacloud/mns-open/model/GetQueueAttributesRequest.h
  14. 76 0
      mns-open/include/alibabacloud/mns-open/model/GetQueueAttributesResult.h
  15. 45 0
      mns-open/include/alibabacloud/mns-open/model/GetSubscriptionAttributesRequest.h
  16. 72 0
      mns-open/include/alibabacloud/mns-open/model/GetSubscriptionAttributesResult.h
  17. 42 0
      mns-open/include/alibabacloud/mns-open/model/GetTopicAttributesRequest.h
  18. 71 0
      mns-open/include/alibabacloud/mns-open/model/GetTopicAttributesResult.h
  19. 48 0
      mns-open/include/alibabacloud/mns-open/model/ListQueueRequest.h
  20. 85 0
      mns-open/include/alibabacloud/mns-open/model/ListQueueResult.h
  21. 51 0
      mns-open/include/alibabacloud/mns-open/model/ListSubscriptionByTopicRequest.h
  22. 81 0
      mns-open/include/alibabacloud/mns-open/model/ListSubscriptionByTopicResult.h
  23. 48 0
      mns-open/include/alibabacloud/mns-open/model/ListTopicRequest.h
  24. 78 0
      mns-open/include/alibabacloud/mns-open/model/ListTopicResult.h
  25. 60 0
      mns-open/include/alibabacloud/mns-open/model/SetQueueAttributesRequest.h
  26. 65 0
      mns-open/include/alibabacloud/mns-open/model/SetQueueAttributesResult.h
  27. 48 0
      mns-open/include/alibabacloud/mns-open/model/SetSubscriptionAttributesRequest.h
  28. 65 0
      mns-open/include/alibabacloud/mns-open/model/SetSubscriptionAttributesResult.h
  29. 48 0
      mns-open/include/alibabacloud/mns-open/model/SetTopicAttributesRequest.h
  30. 65 0
      mns-open/include/alibabacloud/mns-open/model/SetTopicAttributesResult.h
  31. 60 0
      mns-open/include/alibabacloud/mns-open/model/SubscribeRequest.h
  32. 59 0
      mns-open/include/alibabacloud/mns-open/model/SubscribeResult.h
  33. 45 0
      mns-open/include/alibabacloud/mns-open/model/UnsubscribeRequest.h
  34. 65 0
      mns-open/include/alibabacloud/mns-open/model/UnsubscribeResult.h
  35. 593 0
      mns-open/src/Mns-openClient.cc
  36. 90 0
      mns-open/src/model/CreateQueueRequest.cc
  37. 84 0
      mns-open/src/model/CreateQueueResult.cc
  38. 54 0
      mns-open/src/model/CreateTopicRequest.cc
  39. 84 0
      mns-open/src/model/CreateTopicResult.cc
  40. 36 0
      mns-open/src/model/DeleteQueueRequest.cc
  41. 84 0
      mns-open/src/model/DeleteQueueResult.cc
  42. 36 0
      mns-open/src/model/DeleteTopicRequest.cc
  43. 79 0
      mns-open/src/model/DeleteTopicResult.cc
  44. 36 0
      mns-open/src/model/GetQueueAttributesRequest.cc
  45. 106 0
      mns-open/src/model/GetQueueAttributesResult.cc
  46. 45 0
      mns-open/src/model/GetSubscriptionAttributesRequest.cc
  47. 98 0
      mns-open/src/model/GetSubscriptionAttributesResult.cc
  48. 36 0
      mns-open/src/model/GetTopicAttributesRequest.cc
  49. 96 0
      mns-open/src/model/GetTopicAttributesResult.cc
  50. 54 0
      mns-open/src/model/ListQueueRequest.cc
  51. 122 0
      mns-open/src/model/ListQueueResult.cc
  52. 63 0
      mns-open/src/model/ListSubscriptionByTopicRequest.cc
  53. 114 0
      mns-open/src/model/ListSubscriptionByTopicResult.cc
  54. 54 0
      mns-open/src/model/ListTopicRequest.cc
  55. 108 0
      mns-open/src/model/ListTopicResult.cc
  56. 90 0
      mns-open/src/model/SetQueueAttributesRequest.cc
  57. 84 0
      mns-open/src/model/SetQueueAttributesResult.cc
  58. 54 0
      mns-open/src/model/SetSubscriptionAttributesRequest.cc
  59. 84 0
      mns-open/src/model/SetSubscriptionAttributesResult.cc
  60. 54 0
      mns-open/src/model/SetTopicAttributesRequest.cc
  61. 84 0
      mns-open/src/model/SetTopicAttributesResult.cc
  62. 90 0
      mns-open/src/model/SubscribeRequest.cc
  63. 79 0
      mns-open/src/model/SubscribeResult.cc
  64. 45 0
      mns-open/src/model/UnsubscribeRequest.cc
  65. 84 0
      mns-open/src/model/UnsubscribeResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1268
+1.36.1269

+ 142 - 0
mns-open/CMakeLists.txt

@@ -0,0 +1,142 @@
+#
+# Copyright 2009-2017 Alibaba Cloud All rights reserved.
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+set(mns-open_public_header 
+	include/alibabacloud/mns-open/Mns_openClient.h
+	include/alibabacloud/mns-open/Mns_openExport.h )
+
+set(mns-open_public_header_model 
+	include/alibabacloud/mns-open/model/CreateQueueRequest.h
+	include/alibabacloud/mns-open/model/CreateQueueResult.h
+	include/alibabacloud/mns-open/model/CreateTopicRequest.h
+	include/alibabacloud/mns-open/model/CreateTopicResult.h
+	include/alibabacloud/mns-open/model/DeleteQueueRequest.h
+	include/alibabacloud/mns-open/model/DeleteQueueResult.h
+	include/alibabacloud/mns-open/model/DeleteTopicRequest.h
+	include/alibabacloud/mns-open/model/DeleteTopicResult.h
+	include/alibabacloud/mns-open/model/GetQueueAttributesRequest.h
+	include/alibabacloud/mns-open/model/GetQueueAttributesResult.h
+	include/alibabacloud/mns-open/model/GetSubscriptionAttributesRequest.h
+	include/alibabacloud/mns-open/model/GetSubscriptionAttributesResult.h
+	include/alibabacloud/mns-open/model/GetTopicAttributesRequest.h
+	include/alibabacloud/mns-open/model/GetTopicAttributesResult.h
+	include/alibabacloud/mns-open/model/ListQueueRequest.h
+	include/alibabacloud/mns-open/model/ListQueueResult.h
+	include/alibabacloud/mns-open/model/ListSubscriptionByTopicRequest.h
+	include/alibabacloud/mns-open/model/ListSubscriptionByTopicResult.h
+	include/alibabacloud/mns-open/model/ListTopicRequest.h
+	include/alibabacloud/mns-open/model/ListTopicResult.h
+	include/alibabacloud/mns-open/model/SetQueueAttributesRequest.h
+	include/alibabacloud/mns-open/model/SetQueueAttributesResult.h
+	include/alibabacloud/mns-open/model/SetSubscriptionAttributesRequest.h
+	include/alibabacloud/mns-open/model/SetSubscriptionAttributesResult.h
+	include/alibabacloud/mns-open/model/SetTopicAttributesRequest.h
+	include/alibabacloud/mns-open/model/SetTopicAttributesResult.h
+	include/alibabacloud/mns-open/model/SubscribeRequest.h
+	include/alibabacloud/mns-open/model/SubscribeResult.h
+	include/alibabacloud/mns-open/model/UnsubscribeRequest.h
+	include/alibabacloud/mns-open/model/UnsubscribeResult.h )
+
+set(mns-open_src 
+	src/Mns-openClient.cc
+	src/model/CreateQueueRequest.cc
+	src/model/CreateQueueResult.cc
+	src/model/CreateTopicRequest.cc
+	src/model/CreateTopicResult.cc
+	src/model/DeleteQueueRequest.cc
+	src/model/DeleteQueueResult.cc
+	src/model/DeleteTopicRequest.cc
+	src/model/DeleteTopicResult.cc
+	src/model/GetQueueAttributesRequest.cc
+	src/model/GetQueueAttributesResult.cc
+	src/model/GetSubscriptionAttributesRequest.cc
+	src/model/GetSubscriptionAttributesResult.cc
+	src/model/GetTopicAttributesRequest.cc
+	src/model/GetTopicAttributesResult.cc
+	src/model/ListQueueRequest.cc
+	src/model/ListQueueResult.cc
+	src/model/ListSubscriptionByTopicRequest.cc
+	src/model/ListSubscriptionByTopicResult.cc
+	src/model/ListTopicRequest.cc
+	src/model/ListTopicResult.cc
+	src/model/SetQueueAttributesRequest.cc
+	src/model/SetQueueAttributesResult.cc
+	src/model/SetSubscriptionAttributesRequest.cc
+	src/model/SetSubscriptionAttributesResult.cc
+	src/model/SetTopicAttributesRequest.cc
+	src/model/SetTopicAttributesResult.cc
+	src/model/SubscribeRequest.cc
+	src/model/SubscribeResult.cc
+	src/model/UnsubscribeRequest.cc
+	src/model/UnsubscribeResult.cc )
+
+add_library(mns-open ${LIB_TYPE}
+	${mns-open_public_header}
+	${mns-open_public_header_model}
+	${mns-open_src})
+
+set_target_properties(mns-open
+	PROPERTIES
+	LINKER_LANGUAGE CXX
+	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}mns-open
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(mns-open
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_MNS_OPEN_LIBRARY)
+endif()
+
+target_include_directories(mns-open
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(mns-open
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(mns-open
+		jsoncpp)
+	target_include_directories(mns-open
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(mns-open
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(mns-open
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(mns-open
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(mns-open
+		jsoncpp)
+endif()
+
+install(FILES ${mns-open_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/mns-open)
+install(FILES ${mns-open_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/mns-open/model)
+install(TARGETS mns-open
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

+ 166 - 0
mns-open/include/alibabacloud/mns-open/Mns_openClient.h

@@ -0,0 +1,166 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MNS_OPENCLIENT_H_
+#define ALIBABACLOUD_MNS_OPEN_MNS_OPENCLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "Mns_openExport.h"
+#include "model/CreateQueueRequest.h"
+#include "model/CreateQueueResult.h"
+#include "model/CreateTopicRequest.h"
+#include "model/CreateTopicResult.h"
+#include "model/DeleteQueueRequest.h"
+#include "model/DeleteQueueResult.h"
+#include "model/DeleteTopicRequest.h"
+#include "model/DeleteTopicResult.h"
+#include "model/GetQueueAttributesRequest.h"
+#include "model/GetQueueAttributesResult.h"
+#include "model/GetSubscriptionAttributesRequest.h"
+#include "model/GetSubscriptionAttributesResult.h"
+#include "model/GetTopicAttributesRequest.h"
+#include "model/GetTopicAttributesResult.h"
+#include "model/ListQueueRequest.h"
+#include "model/ListQueueResult.h"
+#include "model/ListSubscriptionByTopicRequest.h"
+#include "model/ListSubscriptionByTopicResult.h"
+#include "model/ListTopicRequest.h"
+#include "model/ListTopicResult.h"
+#include "model/SetQueueAttributesRequest.h"
+#include "model/SetQueueAttributesResult.h"
+#include "model/SetSubscriptionAttributesRequest.h"
+#include "model/SetSubscriptionAttributesResult.h"
+#include "model/SetTopicAttributesRequest.h"
+#include "model/SetTopicAttributesResult.h"
+#include "model/SubscribeRequest.h"
+#include "model/SubscribeResult.h"
+#include "model/UnsubscribeRequest.h"
+#include "model/UnsubscribeResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		class ALIBABACLOUD_MNS_OPEN_EXPORT Mns_openClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::CreateQueueResult> CreateQueueOutcome;
+			typedef std::future<CreateQueueOutcome> CreateQueueOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::CreateQueueRequest&, const CreateQueueOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateQueueAsyncHandler;
+			typedef Outcome<Error, Model::CreateTopicResult> CreateTopicOutcome;
+			typedef std::future<CreateTopicOutcome> CreateTopicOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::CreateTopicRequest&, const CreateTopicOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateTopicAsyncHandler;
+			typedef Outcome<Error, Model::DeleteQueueResult> DeleteQueueOutcome;
+			typedef std::future<DeleteQueueOutcome> DeleteQueueOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::DeleteQueueRequest&, const DeleteQueueOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteQueueAsyncHandler;
+			typedef Outcome<Error, Model::DeleteTopicResult> DeleteTopicOutcome;
+			typedef std::future<DeleteTopicOutcome> DeleteTopicOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::DeleteTopicRequest&, const DeleteTopicOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteTopicAsyncHandler;
+			typedef Outcome<Error, Model::GetQueueAttributesResult> GetQueueAttributesOutcome;
+			typedef std::future<GetQueueAttributesOutcome> GetQueueAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::GetQueueAttributesRequest&, const GetQueueAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetQueueAttributesAsyncHandler;
+			typedef Outcome<Error, Model::GetSubscriptionAttributesResult> GetSubscriptionAttributesOutcome;
+			typedef std::future<GetSubscriptionAttributesOutcome> GetSubscriptionAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::GetSubscriptionAttributesRequest&, const GetSubscriptionAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetSubscriptionAttributesAsyncHandler;
+			typedef Outcome<Error, Model::GetTopicAttributesResult> GetTopicAttributesOutcome;
+			typedef std::future<GetTopicAttributesOutcome> GetTopicAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::GetTopicAttributesRequest&, const GetTopicAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetTopicAttributesAsyncHandler;
+			typedef Outcome<Error, Model::ListQueueResult> ListQueueOutcome;
+			typedef std::future<ListQueueOutcome> ListQueueOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::ListQueueRequest&, const ListQueueOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListQueueAsyncHandler;
+			typedef Outcome<Error, Model::ListSubscriptionByTopicResult> ListSubscriptionByTopicOutcome;
+			typedef std::future<ListSubscriptionByTopicOutcome> ListSubscriptionByTopicOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::ListSubscriptionByTopicRequest&, const ListSubscriptionByTopicOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListSubscriptionByTopicAsyncHandler;
+			typedef Outcome<Error, Model::ListTopicResult> ListTopicOutcome;
+			typedef std::future<ListTopicOutcome> ListTopicOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::ListTopicRequest&, const ListTopicOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTopicAsyncHandler;
+			typedef Outcome<Error, Model::SetQueueAttributesResult> SetQueueAttributesOutcome;
+			typedef std::future<SetQueueAttributesOutcome> SetQueueAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::SetQueueAttributesRequest&, const SetQueueAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetQueueAttributesAsyncHandler;
+			typedef Outcome<Error, Model::SetSubscriptionAttributesResult> SetSubscriptionAttributesOutcome;
+			typedef std::future<SetSubscriptionAttributesOutcome> SetSubscriptionAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::SetSubscriptionAttributesRequest&, const SetSubscriptionAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetSubscriptionAttributesAsyncHandler;
+			typedef Outcome<Error, Model::SetTopicAttributesResult> SetTopicAttributesOutcome;
+			typedef std::future<SetTopicAttributesOutcome> SetTopicAttributesOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::SetTopicAttributesRequest&, const SetTopicAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetTopicAttributesAsyncHandler;
+			typedef Outcome<Error, Model::SubscribeResult> SubscribeOutcome;
+			typedef std::future<SubscribeOutcome> SubscribeOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::SubscribeRequest&, const SubscribeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SubscribeAsyncHandler;
+			typedef Outcome<Error, Model::UnsubscribeResult> UnsubscribeOutcome;
+			typedef std::future<UnsubscribeOutcome> UnsubscribeOutcomeCallable;
+			typedef std::function<void(const Mns_openClient*, const Model::UnsubscribeRequest&, const UnsubscribeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnsubscribeAsyncHandler;
+
+			Mns_openClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			Mns_openClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			Mns_openClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~Mns_openClient();
+			CreateQueueOutcome createQueue(const Model::CreateQueueRequest &request)const;
+			void createQueueAsync(const Model::CreateQueueRequest& request, const CreateQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateQueueOutcomeCallable createQueueCallable(const Model::CreateQueueRequest& request) const;
+			CreateTopicOutcome createTopic(const Model::CreateTopicRequest &request)const;
+			void createTopicAsync(const Model::CreateTopicRequest& request, const CreateTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateTopicOutcomeCallable createTopicCallable(const Model::CreateTopicRequest& request) const;
+			DeleteQueueOutcome deleteQueue(const Model::DeleteQueueRequest &request)const;
+			void deleteQueueAsync(const Model::DeleteQueueRequest& request, const DeleteQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteQueueOutcomeCallable deleteQueueCallable(const Model::DeleteQueueRequest& request) const;
+			DeleteTopicOutcome deleteTopic(const Model::DeleteTopicRequest &request)const;
+			void deleteTopicAsync(const Model::DeleteTopicRequest& request, const DeleteTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteTopicOutcomeCallable deleteTopicCallable(const Model::DeleteTopicRequest& request) const;
+			GetQueueAttributesOutcome getQueueAttributes(const Model::GetQueueAttributesRequest &request)const;
+			void getQueueAttributesAsync(const Model::GetQueueAttributesRequest& request, const GetQueueAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetQueueAttributesOutcomeCallable getQueueAttributesCallable(const Model::GetQueueAttributesRequest& request) const;
+			GetSubscriptionAttributesOutcome getSubscriptionAttributes(const Model::GetSubscriptionAttributesRequest &request)const;
+			void getSubscriptionAttributesAsync(const Model::GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetSubscriptionAttributesOutcomeCallable getSubscriptionAttributesCallable(const Model::GetSubscriptionAttributesRequest& request) const;
+			GetTopicAttributesOutcome getTopicAttributes(const Model::GetTopicAttributesRequest &request)const;
+			void getTopicAttributesAsync(const Model::GetTopicAttributesRequest& request, const GetTopicAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetTopicAttributesOutcomeCallable getTopicAttributesCallable(const Model::GetTopicAttributesRequest& request) const;
+			ListQueueOutcome listQueue(const Model::ListQueueRequest &request)const;
+			void listQueueAsync(const Model::ListQueueRequest& request, const ListQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListQueueOutcomeCallable listQueueCallable(const Model::ListQueueRequest& request) const;
+			ListSubscriptionByTopicOutcome listSubscriptionByTopic(const Model::ListSubscriptionByTopicRequest &request)const;
+			void listSubscriptionByTopicAsync(const Model::ListSubscriptionByTopicRequest& request, const ListSubscriptionByTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListSubscriptionByTopicOutcomeCallable listSubscriptionByTopicCallable(const Model::ListSubscriptionByTopicRequest& request) const;
+			ListTopicOutcome listTopic(const Model::ListTopicRequest &request)const;
+			void listTopicAsync(const Model::ListTopicRequest& request, const ListTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListTopicOutcomeCallable listTopicCallable(const Model::ListTopicRequest& request) const;
+			SetQueueAttributesOutcome setQueueAttributes(const Model::SetQueueAttributesRequest &request)const;
+			void setQueueAttributesAsync(const Model::SetQueueAttributesRequest& request, const SetQueueAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetQueueAttributesOutcomeCallable setQueueAttributesCallable(const Model::SetQueueAttributesRequest& request) const;
+			SetSubscriptionAttributesOutcome setSubscriptionAttributes(const Model::SetSubscriptionAttributesRequest &request)const;
+			void setSubscriptionAttributesAsync(const Model::SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetSubscriptionAttributesOutcomeCallable setSubscriptionAttributesCallable(const Model::SetSubscriptionAttributesRequest& request) const;
+			SetTopicAttributesOutcome setTopicAttributes(const Model::SetTopicAttributesRequest &request)const;
+			void setTopicAttributesAsync(const Model::SetTopicAttributesRequest& request, const SetTopicAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetTopicAttributesOutcomeCallable setTopicAttributesCallable(const Model::SetTopicAttributesRequest& request) const;
+			SubscribeOutcome subscribe(const Model::SubscribeRequest &request)const;
+			void subscribeAsync(const Model::SubscribeRequest& request, const SubscribeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SubscribeOutcomeCallable subscribeCallable(const Model::SubscribeRequest& request) const;
+			UnsubscribeOutcome unsubscribe(const Model::UnsubscribeRequest &request)const;
+			void unsubscribeAsync(const Model::UnsubscribeRequest& request, const UnsubscribeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UnsubscribeOutcomeCallable unsubscribeCallable(const Model::UnsubscribeRequest& request) const;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_MNS_OPEN_MNS_OPENCLIENT_H_

+ 32 - 0
mns-open/include/alibabacloud/mns-open/Mns_openExport.h

@@ -0,0 +1,32 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MNS_OPENEXPORT_H_
+#define ALIBABACLOUD_MNS_OPEN_MNS_OPENEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_MNS_OPEN_LIBRARY)
+#		define ALIBABACLOUD_MNS_OPEN_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_MNS_OPEN_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_MNS_OPEN_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_MNS_OPEN_MNS_OPENEXPORT_H_

+ 60 - 0
mns-open/include/alibabacloud/mns-open/model/CreateQueueRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUEREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUEREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT CreateQueueRequest : public RpcServiceRequest {
+public:
+	CreateQueueRequest();
+	~CreateQueueRequest();
+	std::string getQueueName() const;
+	void setQueueName(const std::string &queueName);
+	long getMessageRetentionPeriod() const;
+	void setMessageRetentionPeriod(long messageRetentionPeriod);
+	bool getEnableLogging() const;
+	void setEnableLogging(bool enableLogging);
+	long getVisibilityTimeout() const;
+	void setVisibilityTimeout(long visibilityTimeout);
+	long getMaximumMessageSize() const;
+	void setMaximumMessageSize(long maximumMessageSize);
+	long getDelaySeconds() const;
+	void setDelaySeconds(long delaySeconds);
+	long getPollingWaitSeconds() const;
+	void setPollingWaitSeconds(long pollingWaitSeconds);
+
+private:
+	std::string queueName_;
+	long messageRetentionPeriod_;
+	bool enableLogging_;
+	long visibilityTimeout_;
+	long maximumMessageSize_;
+	long delaySeconds_;
+	long pollingWaitSeconds_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUEREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/CreateQueueResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUERESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT CreateQueueResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				CreateQueueResult();
+				explicit CreateQueueResult(const std::string &payload);
+				~CreateQueueResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_CREATEQUEUERESULT_H_

+ 48 - 0
mns-open/include/alibabacloud/mns-open/model/CreateTopicRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT CreateTopicRequest : public RpcServiceRequest {
+public:
+	CreateTopicRequest();
+	~CreateTopicRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	long getMaxMessageSize() const;
+	void setMaxMessageSize(long maxMessageSize);
+	bool getEnableLogging() const;
+	void setEnableLogging(bool enableLogging);
+
+private:
+	std::string topicName_;
+	long maxMessageSize_;
+	bool enableLogging_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/CreateTopicResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT CreateTopicResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				CreateTopicResult();
+				explicit CreateTopicResult(const std::string &payload);
+				~CreateTopicResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_CREATETOPICRESULT_H_

+ 42 - 0
mns-open/include/alibabacloud/mns-open/model/DeleteQueueRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUEREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUEREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT DeleteQueueRequest : public RpcServiceRequest {
+public:
+	DeleteQueueRequest();
+	~DeleteQueueRequest();
+	std::string getQueueName() const;
+	void setQueueName(const std::string &queueName);
+
+private:
+	std::string queueName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUEREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/DeleteQueueResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUERESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT DeleteQueueResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				DeleteQueueResult();
+				explicit DeleteQueueResult(const std::string &payload);
+				~DeleteQueueResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_DELETEQUEUERESULT_H_

+ 42 - 0
mns-open/include/alibabacloud/mns-open/model/DeleteTopicRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT DeleteTopicRequest : public RpcServiceRequest {
+public:
+	DeleteTopicRequest();
+	~DeleteTopicRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+
+private:
+	std::string topicName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICREQUEST_H_

+ 59 - 0
mns-open/include/alibabacloud/mns-open/model/DeleteTopicResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT DeleteTopicResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteTopicResult();
+				explicit DeleteTopicResult(const std::string &payload);
+				~DeleteTopicResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				std::string getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				std::string data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_DELETETOPICRESULT_H_

+ 42 - 0
mns-open/include/alibabacloud/mns-open/model/GetQueueAttributesRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT GetQueueAttributesRequest : public RpcServiceRequest {
+public:
+	GetQueueAttributesRequest();
+	~GetQueueAttributesRequest();
+	std::string getQueueName() const;
+	void setQueueName(const std::string &queueName);
+
+private:
+	std::string queueName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESREQUEST_H_

+ 76 - 0
mns-open/include/alibabacloud/mns-open/model/GetQueueAttributesResult.h

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT GetQueueAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					long activeMessages;
+					long pollingWaitSeconds;
+					long createTime;
+					long maximumMessageSize;
+					long visibilityTimeout;
+					std::string queueInternalUrl;
+					long lastModifyTime;
+					std::string queueUrl;
+					bool loggingEnabled;
+					long delaySeconds;
+					long delayMessages;
+					long messageRetentionPeriod;
+					std::string queueName;
+					long inactiveMessages;
+				};
+
+
+				GetQueueAttributesResult();
+				explicit GetQueueAttributesResult(const std::string &payload);
+				~GetQueueAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETQUEUEATTRIBUTESRESULT_H_

+ 45 - 0
mns-open/include/alibabacloud/mns-open/model/GetSubscriptionAttributesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT GetSubscriptionAttributesRequest : public RpcServiceRequest {
+public:
+	GetSubscriptionAttributesRequest();
+	~GetSubscriptionAttributesRequest();
+	std::string getSubscriptionName() const;
+	void setSubscriptionName(const std::string &subscriptionName);
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+
+private:
+	std::string subscriptionName_;
+	std::string topicName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESREQUEST_H_

+ 72 - 0
mns-open/include/alibabacloud/mns-open/model/GetSubscriptionAttributesResult.h

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT GetSubscriptionAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string subscriptionURL;
+					std::string topicOwner;
+					std::string endpoint;
+					long createTime;
+					std::string notifyStrategy;
+					std::string notifyContentFormat;
+					std::string subscriptionName;
+					std::string filterTag;
+					long lastModifyTime;
+					std::string topicName;
+				};
+
+
+				GetSubscriptionAttributesResult();
+				explicit GetSubscriptionAttributesResult(const std::string &payload);
+				~GetSubscriptionAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETSUBSCRIPTIONATTRIBUTESRESULT_H_

+ 42 - 0
mns-open/include/alibabacloud/mns-open/model/GetTopicAttributesRequest.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT GetTopicAttributesRequest : public RpcServiceRequest {
+public:
+	GetTopicAttributesRequest();
+	~GetTopicAttributesRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+
+private:
+	std::string topicName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESREQUEST_H_

+ 71 - 0
mns-open/include/alibabacloud/mns-open/model/GetTopicAttributesResult.h

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT GetTopicAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					long messageRetentionPeriod;
+					long createTime;
+					long maxMessageSize;
+					std::string topicUrl;
+					long lastModifyTime;
+					long messageCount;
+					std::string topicInnerUrl;
+					std::string topicName;
+					bool loggingEnabled;
+				};
+
+
+				GetTopicAttributesResult();
+				explicit GetTopicAttributesResult(const std::string &payload);
+				~GetTopicAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_GETTOPICATTRIBUTESRESULT_H_

+ 48 - 0
mns-open/include/alibabacloud/mns-open/model/ListQueueRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUEREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUEREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT ListQueueRequest : public RpcServiceRequest {
+public:
+	ListQueueRequest();
+	~ListQueueRequest();
+	std::string getQueueName() const;
+	void setQueueName(const std::string &queueName);
+	long getPageNum() const;
+	void setPageNum(long pageNum);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+
+private:
+	std::string queueName_;
+	long pageNum_;
+	long pageSize_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUEREQUEST_H_

+ 85 - 0
mns-open/include/alibabacloud/mns-open/model/ListQueueResult.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUERESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT ListQueueResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct PageDataItem
+					{
+						long activeMessages;
+						long pollingWaitSeconds;
+						long createTime;
+						long maximumMessageSize;
+						long visibilityTimeout;
+						std::string queueInternalUrl;
+						long lastModifyTime;
+						std::string queueUrl;
+						bool loggingEnabled;
+						long delaySeconds;
+						long delayMessages;
+						long messageRetentionPeriod;
+						std::string queueName;
+						long inactiveMessages;
+					};
+					long pages;
+					std::vector<PageDataItem> pageData;
+					long pageNum;
+					long pageSize;
+					long size;
+					long total;
+				};
+
+
+				ListQueueResult();
+				explicit ListQueueResult(const std::string &payload);
+				~ListQueueResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTQUEUERESULT_H_

+ 51 - 0
mns-open/include/alibabacloud/mns-open/model/ListSubscriptionByTopicRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT ListSubscriptionByTopicRequest : public RpcServiceRequest {
+public:
+	ListSubscriptionByTopicRequest();
+	~ListSubscriptionByTopicRequest();
+	std::string getSubscriptionName() const;
+	void setSubscriptionName(const std::string &subscriptionName);
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	long getPageNum() const;
+	void setPageNum(long pageNum);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+
+private:
+	std::string subscriptionName_;
+	std::string topicName_;
+	long pageNum_;
+	long pageSize_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICREQUEST_H_

+ 81 - 0
mns-open/include/alibabacloud/mns-open/model/ListSubscriptionByTopicResult.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT ListSubscriptionByTopicResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct PageDataItem
+					{
+						std::string subscriptionURL;
+						std::string topicOwner;
+						std::string endpoint;
+						long createTime;
+						std::string notifyStrategy;
+						std::string notifyContentFormat;
+						std::string subscriptionName;
+						std::string filterTag;
+						long lastModifyTime;
+						std::string topicName;
+					};
+					long pages;
+					std::vector<PageDataItem> pageData;
+					long pageNum;
+					long pageSize;
+					long size;
+					long total;
+				};
+
+
+				ListSubscriptionByTopicResult();
+				explicit ListSubscriptionByTopicResult(const std::string &payload);
+				~ListSubscriptionByTopicResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTSUBSCRIPTIONBYTOPICRESULT_H_

+ 48 - 0
mns-open/include/alibabacloud/mns-open/model/ListTopicRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT ListTopicRequest : public RpcServiceRequest {
+public:
+	ListTopicRequest();
+	~ListTopicRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	long getPageNum() const;
+	void setPageNum(long pageNum);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+
+private:
+	std::string topicName_;
+	long pageNum_;
+	long pageSize_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICREQUEST_H_

+ 78 - 0
mns-open/include/alibabacloud/mns-open/model/ListTopicResult.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT ListTopicResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct PageDataItem
+					{
+						long messageRetentionPeriod;
+						long createTime;
+						long maxMessageSize;
+						std::string topicUrl;
+						long lastModifyTime;
+						long messageCount;
+						std::string topicInnerUrl;
+						std::string topicName;
+						bool loggingEnabled;
+					};
+					std::vector<PageDataItem> pageData;
+					long pageNum;
+					long pageSize;
+					long total;
+				};
+
+
+				ListTopicResult();
+				explicit ListTopicResult(const std::string &payload);
+				~ListTopicResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_LISTTOPICRESULT_H_

+ 60 - 0
mns-open/include/alibabacloud/mns-open/model/SetQueueAttributesRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT SetQueueAttributesRequest : public RpcServiceRequest {
+public:
+	SetQueueAttributesRequest();
+	~SetQueueAttributesRequest();
+	std::string getQueueName() const;
+	void setQueueName(const std::string &queueName);
+	long getMessageRetentionPeriod() const;
+	void setMessageRetentionPeriod(long messageRetentionPeriod);
+	bool getEnableLogging() const;
+	void setEnableLogging(bool enableLogging);
+	long getVisibilityTimeout() const;
+	void setVisibilityTimeout(long visibilityTimeout);
+	long getDelaySeconds() const;
+	void setDelaySeconds(long delaySeconds);
+	long getMaximumMessageSize() const;
+	void setMaximumMessageSize(long maximumMessageSize);
+	long getPollingWaitSeconds() const;
+	void setPollingWaitSeconds(long pollingWaitSeconds);
+
+private:
+	std::string queueName_;
+	long messageRetentionPeriod_;
+	bool enableLogging_;
+	long visibilityTimeout_;
+	long delaySeconds_;
+	long maximumMessageSize_;
+	long pollingWaitSeconds_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/SetQueueAttributesResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT SetQueueAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				SetQueueAttributesResult();
+				explicit SetQueueAttributesResult(const std::string &payload);
+				~SetQueueAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETQUEUEATTRIBUTESRESULT_H_

+ 48 - 0
mns-open/include/alibabacloud/mns-open/model/SetSubscriptionAttributesRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT SetSubscriptionAttributesRequest : public RpcServiceRequest {
+public:
+	SetSubscriptionAttributesRequest();
+	~SetSubscriptionAttributesRequest();
+	std::string getSubscriptionName() const;
+	void setSubscriptionName(const std::string &subscriptionName);
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	std::string getNotifyStrategy() const;
+	void setNotifyStrategy(const std::string &notifyStrategy);
+
+private:
+	std::string subscriptionName_;
+	std::string topicName_;
+	std::string notifyStrategy_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/SetSubscriptionAttributesResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT SetSubscriptionAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				SetSubscriptionAttributesResult();
+				explicit SetSubscriptionAttributesResult(const std::string &payload);
+				~SetSubscriptionAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETSUBSCRIPTIONATTRIBUTESRESULT_H_

+ 48 - 0
mns-open/include/alibabacloud/mns-open/model/SetTopicAttributesRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT SetTopicAttributesRequest : public RpcServiceRequest {
+public:
+	SetTopicAttributesRequest();
+	~SetTopicAttributesRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	long getMaxMessageSize() const;
+	void setMaxMessageSize(long maxMessageSize);
+	bool getEnableLogging() const;
+	void setEnableLogging(bool enableLogging);
+
+private:
+	std::string topicName_;
+	long maxMessageSize_;
+	bool enableLogging_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/SetTopicAttributesResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESRESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT SetTopicAttributesResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				SetTopicAttributesResult();
+				explicit SetTopicAttributesResult(const std::string &payload);
+				~SetTopicAttributesResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SETTOPICATTRIBUTESRESULT_H_

+ 60 - 0
mns-open/include/alibabacloud/mns-open/model/SubscribeRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBEREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBEREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT SubscribeRequest : public RpcServiceRequest {
+public:
+	SubscribeRequest();
+	~SubscribeRequest();
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+	std::string getMessageTag() const;
+	void setMessageTag(const std::string &messageTag);
+	std::string getEndpoint() const;
+	void setEndpoint(const std::string &endpoint);
+	std::string getSubscriptionName() const;
+	void setSubscriptionName(const std::string &subscriptionName);
+	std::string getNotifyStrategy() const;
+	void setNotifyStrategy(const std::string &notifyStrategy);
+	std::string getNotifyContentFormat() const;
+	void setNotifyContentFormat(const std::string &notifyContentFormat);
+	std::string getPushType() const;
+	void setPushType(const std::string &pushType);
+
+private:
+	std::string topicName_;
+	std::string messageTag_;
+	std::string endpoint_;
+	std::string subscriptionName_;
+	std::string notifyStrategy_;
+	std::string notifyContentFormat_;
+	std::string pushType_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBEREQUEST_H_

+ 59 - 0
mns-open/include/alibabacloud/mns-open/model/SubscribeResult.h

@@ -0,0 +1,59 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBERESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT SubscribeResult : public ServiceResult
+			{
+			public:
+
+
+				SubscribeResult();
+				explicit SubscribeResult(const std::string &payload);
+				~SubscribeResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				std::string getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				std::string data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_SUBSCRIBERESULT_H_

+ 45 - 0
mns-open/include/alibabacloud/mns-open/model/UnsubscribeRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBEREQUEST_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBEREQUEST_H_
+
+#include <alibabacloud/mns-open/Mns_openExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Mns_open {
+namespace Model {
+class ALIBABACLOUD_MNS_OPEN_EXPORT UnsubscribeRequest : public RpcServiceRequest {
+public:
+	UnsubscribeRequest();
+	~UnsubscribeRequest();
+	std::string getSubscriptionName() const;
+	void setSubscriptionName(const std::string &subscriptionName);
+	std::string getTopicName() const;
+	void setTopicName(const std::string &topicName);
+
+private:
+	std::string subscriptionName_;
+	std::string topicName_;
+};
+} // namespace Model
+} // namespace Mns_open
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBEREQUEST_H_

+ 65 - 0
mns-open/include/alibabacloud/mns-open/model/UnsubscribeResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBERESULT_H_
+#define ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/mns-open/Mns_openExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Mns_open
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_MNS_OPEN_EXPORT UnsubscribeResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string message;
+					long code;
+					bool success;
+				};
+
+
+				UnsubscribeResult();
+				explicit UnsubscribeResult(const std::string &payload);
+				~UnsubscribeResult();
+				std::string getStatus()const;
+				std::string getMessage()const;
+				Data getData()const;
+				long getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string message_;
+				Data data_;
+				long code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_MNS_OPEN_MODEL_UNSUBSCRIBERESULT_H_

+ 593 - 0
mns-open/src/Mns-openClient.cc

@@ -0,0 +1,593 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/Mns_openClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "Mns-open";
+}
+
+Mns_openClient::Mns_openClient(const Credentials &credentials, const ClientConfiguration &configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "mns");
+}
+
+Mns_openClient::Mns_openClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "mns");
+}
+
+Mns_openClient::Mns_openClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "mns");
+}
+
+Mns_openClient::~Mns_openClient()
+{}
+
+Mns_openClient::CreateQueueOutcome Mns_openClient::createQueue(const CreateQueueRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateQueueOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateQueueOutcome(CreateQueueResult(outcome.result()));
+	else
+		return CreateQueueOutcome(outcome.error());
+}
+
+void Mns_openClient::createQueueAsync(const CreateQueueRequest& request, const CreateQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createQueue(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::CreateQueueOutcomeCallable Mns_openClient::createQueueCallable(const CreateQueueRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateQueueOutcome()>>(
+			[this, request]()
+			{
+			return this->createQueue(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::CreateTopicOutcome Mns_openClient::createTopic(const CreateTopicRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateTopicOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateTopicOutcome(CreateTopicResult(outcome.result()));
+	else
+		return CreateTopicOutcome(outcome.error());
+}
+
+void Mns_openClient::createTopicAsync(const CreateTopicRequest& request, const CreateTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createTopic(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::CreateTopicOutcomeCallable Mns_openClient::createTopicCallable(const CreateTopicRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateTopicOutcome()>>(
+			[this, request]()
+			{
+			return this->createTopic(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::DeleteQueueOutcome Mns_openClient::deleteQueue(const DeleteQueueRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteQueueOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteQueueOutcome(DeleteQueueResult(outcome.result()));
+	else
+		return DeleteQueueOutcome(outcome.error());
+}
+
+void Mns_openClient::deleteQueueAsync(const DeleteQueueRequest& request, const DeleteQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteQueue(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::DeleteQueueOutcomeCallable Mns_openClient::deleteQueueCallable(const DeleteQueueRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteQueueOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteQueue(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::DeleteTopicOutcome Mns_openClient::deleteTopic(const DeleteTopicRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteTopicOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteTopicOutcome(DeleteTopicResult(outcome.result()));
+	else
+		return DeleteTopicOutcome(outcome.error());
+}
+
+void Mns_openClient::deleteTopicAsync(const DeleteTopicRequest& request, const DeleteTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteTopic(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::DeleteTopicOutcomeCallable Mns_openClient::deleteTopicCallable(const DeleteTopicRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteTopicOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteTopic(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::GetQueueAttributesOutcome Mns_openClient::getQueueAttributes(const GetQueueAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetQueueAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetQueueAttributesOutcome(GetQueueAttributesResult(outcome.result()));
+	else
+		return GetQueueAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::getQueueAttributesAsync(const GetQueueAttributesRequest& request, const GetQueueAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getQueueAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::GetQueueAttributesOutcomeCallable Mns_openClient::getQueueAttributesCallable(const GetQueueAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetQueueAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->getQueueAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::GetSubscriptionAttributesOutcome Mns_openClient::getSubscriptionAttributes(const GetSubscriptionAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetSubscriptionAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetSubscriptionAttributesOutcome(GetSubscriptionAttributesResult(outcome.result()));
+	else
+		return GetSubscriptionAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::getSubscriptionAttributesAsync(const GetSubscriptionAttributesRequest& request, const GetSubscriptionAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getSubscriptionAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::GetSubscriptionAttributesOutcomeCallable Mns_openClient::getSubscriptionAttributesCallable(const GetSubscriptionAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetSubscriptionAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->getSubscriptionAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::GetTopicAttributesOutcome Mns_openClient::getTopicAttributes(const GetTopicAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetTopicAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetTopicAttributesOutcome(GetTopicAttributesResult(outcome.result()));
+	else
+		return GetTopicAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::getTopicAttributesAsync(const GetTopicAttributesRequest& request, const GetTopicAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getTopicAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::GetTopicAttributesOutcomeCallable Mns_openClient::getTopicAttributesCallable(const GetTopicAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetTopicAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->getTopicAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::ListQueueOutcome Mns_openClient::listQueue(const ListQueueRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListQueueOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListQueueOutcome(ListQueueResult(outcome.result()));
+	else
+		return ListQueueOutcome(outcome.error());
+}
+
+void Mns_openClient::listQueueAsync(const ListQueueRequest& request, const ListQueueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listQueue(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::ListQueueOutcomeCallable Mns_openClient::listQueueCallable(const ListQueueRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListQueueOutcome()>>(
+			[this, request]()
+			{
+			return this->listQueue(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::ListSubscriptionByTopicOutcome Mns_openClient::listSubscriptionByTopic(const ListSubscriptionByTopicRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListSubscriptionByTopicOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListSubscriptionByTopicOutcome(ListSubscriptionByTopicResult(outcome.result()));
+	else
+		return ListSubscriptionByTopicOutcome(outcome.error());
+}
+
+void Mns_openClient::listSubscriptionByTopicAsync(const ListSubscriptionByTopicRequest& request, const ListSubscriptionByTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listSubscriptionByTopic(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::ListSubscriptionByTopicOutcomeCallable Mns_openClient::listSubscriptionByTopicCallable(const ListSubscriptionByTopicRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListSubscriptionByTopicOutcome()>>(
+			[this, request]()
+			{
+			return this->listSubscriptionByTopic(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::ListTopicOutcome Mns_openClient::listTopic(const ListTopicRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTopicOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTopicOutcome(ListTopicResult(outcome.result()));
+	else
+		return ListTopicOutcome(outcome.error());
+}
+
+void Mns_openClient::listTopicAsync(const ListTopicRequest& request, const ListTopicAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTopic(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::ListTopicOutcomeCallable Mns_openClient::listTopicCallable(const ListTopicRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTopicOutcome()>>(
+			[this, request]()
+			{
+			return this->listTopic(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::SetQueueAttributesOutcome Mns_openClient::setQueueAttributes(const SetQueueAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SetQueueAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SetQueueAttributesOutcome(SetQueueAttributesResult(outcome.result()));
+	else
+		return SetQueueAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::setQueueAttributesAsync(const SetQueueAttributesRequest& request, const SetQueueAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, setQueueAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::SetQueueAttributesOutcomeCallable Mns_openClient::setQueueAttributesCallable(const SetQueueAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SetQueueAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->setQueueAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::SetSubscriptionAttributesOutcome Mns_openClient::setSubscriptionAttributes(const SetSubscriptionAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SetSubscriptionAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SetSubscriptionAttributesOutcome(SetSubscriptionAttributesResult(outcome.result()));
+	else
+		return SetSubscriptionAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::setSubscriptionAttributesAsync(const SetSubscriptionAttributesRequest& request, const SetSubscriptionAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, setSubscriptionAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::SetSubscriptionAttributesOutcomeCallable Mns_openClient::setSubscriptionAttributesCallable(const SetSubscriptionAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SetSubscriptionAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->setSubscriptionAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::SetTopicAttributesOutcome Mns_openClient::setTopicAttributes(const SetTopicAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SetTopicAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SetTopicAttributesOutcome(SetTopicAttributesResult(outcome.result()));
+	else
+		return SetTopicAttributesOutcome(outcome.error());
+}
+
+void Mns_openClient::setTopicAttributesAsync(const SetTopicAttributesRequest& request, const SetTopicAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, setTopicAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::SetTopicAttributesOutcomeCallable Mns_openClient::setTopicAttributesCallable(const SetTopicAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SetTopicAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->setTopicAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::SubscribeOutcome Mns_openClient::subscribe(const SubscribeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SubscribeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SubscribeOutcome(SubscribeResult(outcome.result()));
+	else
+		return SubscribeOutcome(outcome.error());
+}
+
+void Mns_openClient::subscribeAsync(const SubscribeRequest& request, const SubscribeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, subscribe(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::SubscribeOutcomeCallable Mns_openClient::subscribeCallable(const SubscribeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SubscribeOutcome()>>(
+			[this, request]()
+			{
+			return this->subscribe(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Mns_openClient::UnsubscribeOutcome Mns_openClient::unsubscribe(const UnsubscribeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UnsubscribeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UnsubscribeOutcome(UnsubscribeResult(outcome.result()));
+	else
+		return UnsubscribeOutcome(outcome.error());
+}
+
+void Mns_openClient::unsubscribeAsync(const UnsubscribeRequest& request, const UnsubscribeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, unsubscribe(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Mns_openClient::UnsubscribeOutcomeCallable Mns_openClient::unsubscribeCallable(const UnsubscribeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UnsubscribeOutcome()>>(
+			[this, request]()
+			{
+			return this->unsubscribe(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 90 - 0
mns-open/src/model/CreateQueueRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/CreateQueueRequest.h>
+
+using AlibabaCloud::Mns_open::Model::CreateQueueRequest;
+
+CreateQueueRequest::CreateQueueRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "CreateQueue") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateQueueRequest::~CreateQueueRequest() {}
+
+std::string CreateQueueRequest::getQueueName() const {
+  return queueName_;
+}
+
+void CreateQueueRequest::setQueueName(const std::string &queueName) {
+  queueName_ = queueName;
+  setParameter(std::string("QueueName"), queueName);
+}
+
+long CreateQueueRequest::getMessageRetentionPeriod() const {
+  return messageRetentionPeriod_;
+}
+
+void CreateQueueRequest::setMessageRetentionPeriod(long messageRetentionPeriod) {
+  messageRetentionPeriod_ = messageRetentionPeriod;
+  setParameter(std::string("MessageRetentionPeriod"), std::to_string(messageRetentionPeriod));
+}
+
+bool CreateQueueRequest::getEnableLogging() const {
+  return enableLogging_;
+}
+
+void CreateQueueRequest::setEnableLogging(bool enableLogging) {
+  enableLogging_ = enableLogging;
+  setParameter(std::string("EnableLogging"), enableLogging ? "true" : "false");
+}
+
+long CreateQueueRequest::getVisibilityTimeout() const {
+  return visibilityTimeout_;
+}
+
+void CreateQueueRequest::setVisibilityTimeout(long visibilityTimeout) {
+  visibilityTimeout_ = visibilityTimeout;
+  setParameter(std::string("VisibilityTimeout"), std::to_string(visibilityTimeout));
+}
+
+long CreateQueueRequest::getMaximumMessageSize() const {
+  return maximumMessageSize_;
+}
+
+void CreateQueueRequest::setMaximumMessageSize(long maximumMessageSize) {
+  maximumMessageSize_ = maximumMessageSize;
+  setParameter(std::string("MaximumMessageSize"), std::to_string(maximumMessageSize));
+}
+
+long CreateQueueRequest::getDelaySeconds() const {
+  return delaySeconds_;
+}
+
+void CreateQueueRequest::setDelaySeconds(long delaySeconds) {
+  delaySeconds_ = delaySeconds;
+  setParameter(std::string("DelaySeconds"), std::to_string(delaySeconds));
+}
+
+long CreateQueueRequest::getPollingWaitSeconds() const {
+  return pollingWaitSeconds_;
+}
+
+void CreateQueueRequest::setPollingWaitSeconds(long pollingWaitSeconds) {
+  pollingWaitSeconds_ = pollingWaitSeconds;
+  setParameter(std::string("PollingWaitSeconds"), std::to_string(pollingWaitSeconds));
+}
+

+ 84 - 0
mns-open/src/model/CreateQueueResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/CreateQueueResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+CreateQueueResult::CreateQueueResult() :
+	ServiceResult()
+{}
+
+CreateQueueResult::CreateQueueResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateQueueResult::~CreateQueueResult()
+{}
+
+void CreateQueueResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string CreateQueueResult::getStatus()const
+{
+	return status_;
+}
+
+std::string CreateQueueResult::getMessage()const
+{
+	return message_;
+}
+
+CreateQueueResult::Data CreateQueueResult::getData()const
+{
+	return data_;
+}
+
+long CreateQueueResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateQueueResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
mns-open/src/model/CreateTopicRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/CreateTopicRequest.h>
+
+using AlibabaCloud::Mns_open::Model::CreateTopicRequest;
+
+CreateTopicRequest::CreateTopicRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "CreateTopic") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateTopicRequest::~CreateTopicRequest() {}
+
+std::string CreateTopicRequest::getTopicName() const {
+  return topicName_;
+}
+
+void CreateTopicRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setBodyParameter(std::string("TopicName"), topicName);
+}
+
+long CreateTopicRequest::getMaxMessageSize() const {
+  return maxMessageSize_;
+}
+
+void CreateTopicRequest::setMaxMessageSize(long maxMessageSize) {
+  maxMessageSize_ = maxMessageSize;
+  setBodyParameter(std::string("MaxMessageSize"), std::to_string(maxMessageSize));
+}
+
+bool CreateTopicRequest::getEnableLogging() const {
+  return enableLogging_;
+}
+
+void CreateTopicRequest::setEnableLogging(bool enableLogging) {
+  enableLogging_ = enableLogging;
+  setBodyParameter(std::string("EnableLogging"), enableLogging ? "true" : "false");
+}
+

+ 84 - 0
mns-open/src/model/CreateTopicResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/CreateTopicResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+CreateTopicResult::CreateTopicResult() :
+	ServiceResult()
+{}
+
+CreateTopicResult::CreateTopicResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateTopicResult::~CreateTopicResult()
+{}
+
+void CreateTopicResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string CreateTopicResult::getStatus()const
+{
+	return status_;
+}
+
+std::string CreateTopicResult::getMessage()const
+{
+	return message_;
+}
+
+CreateTopicResult::Data CreateTopicResult::getData()const
+{
+	return data_;
+}
+
+long CreateTopicResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateTopicResult::getSuccess()const
+{
+	return success_;
+}
+

+ 36 - 0
mns-open/src/model/DeleteQueueRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/DeleteQueueRequest.h>
+
+using AlibabaCloud::Mns_open::Model::DeleteQueueRequest;
+
+DeleteQueueRequest::DeleteQueueRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "DeleteQueue") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteQueueRequest::~DeleteQueueRequest() {}
+
+std::string DeleteQueueRequest::getQueueName() const {
+  return queueName_;
+}
+
+void DeleteQueueRequest::setQueueName(const std::string &queueName) {
+  queueName_ = queueName;
+  setParameter(std::string("QueueName"), queueName);
+}
+

+ 84 - 0
mns-open/src/model/DeleteQueueResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/DeleteQueueResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+DeleteQueueResult::DeleteQueueResult() :
+	ServiceResult()
+{}
+
+DeleteQueueResult::DeleteQueueResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteQueueResult::~DeleteQueueResult()
+{}
+
+void DeleteQueueResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string DeleteQueueResult::getStatus()const
+{
+	return status_;
+}
+
+std::string DeleteQueueResult::getMessage()const
+{
+	return message_;
+}
+
+DeleteQueueResult::Data DeleteQueueResult::getData()const
+{
+	return data_;
+}
+
+long DeleteQueueResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteQueueResult::getSuccess()const
+{
+	return success_;
+}
+

+ 36 - 0
mns-open/src/model/DeleteTopicRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/DeleteTopicRequest.h>
+
+using AlibabaCloud::Mns_open::Model::DeleteTopicRequest;
+
+DeleteTopicRequest::DeleteTopicRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "DeleteTopic") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteTopicRequest::~DeleteTopicRequest() {}
+
+std::string DeleteTopicRequest::getTopicName() const {
+  return topicName_;
+}
+
+void DeleteTopicRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+

+ 79 - 0
mns-open/src/model/DeleteTopicResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/DeleteTopicResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+DeleteTopicResult::DeleteTopicResult() :
+	ServiceResult()
+{}
+
+DeleteTopicResult::DeleteTopicResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteTopicResult::~DeleteTopicResult()
+{}
+
+void DeleteTopicResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string DeleteTopicResult::getStatus()const
+{
+	return status_;
+}
+
+std::string DeleteTopicResult::getMessage()const
+{
+	return message_;
+}
+
+std::string DeleteTopicResult::getData()const
+{
+	return data_;
+}
+
+long DeleteTopicResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteTopicResult::getSuccess()const
+{
+	return success_;
+}
+

+ 36 - 0
mns-open/src/model/GetQueueAttributesRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetQueueAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::GetQueueAttributesRequest;
+
+GetQueueAttributesRequest::GetQueueAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "GetQueueAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetQueueAttributesRequest::~GetQueueAttributesRequest() {}
+
+std::string GetQueueAttributesRequest::getQueueName() const {
+  return queueName_;
+}
+
+void GetQueueAttributesRequest::setQueueName(const std::string &queueName) {
+  queueName_ = queueName;
+  setParameter(std::string("QueueName"), queueName);
+}
+

+ 106 - 0
mns-open/src/model/GetQueueAttributesResult.cc

@@ -0,0 +1,106 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetQueueAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+GetQueueAttributesResult::GetQueueAttributesResult() :
+	ServiceResult()
+{}
+
+GetQueueAttributesResult::GetQueueAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetQueueAttributesResult::~GetQueueAttributesResult()
+{}
+
+void GetQueueAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["QueueUrl"].isNull())
+		data_.queueUrl = dataNode["QueueUrl"].asString();
+	if(!dataNode["QueueInternalUrl"].isNull())
+		data_.queueInternalUrl = dataNode["QueueInternalUrl"].asString();
+	if(!dataNode["QueueName"].isNull())
+		data_.queueName = dataNode["QueueName"].asString();
+	if(!dataNode["CreateTime"].isNull())
+		data_.createTime = std::stol(dataNode["CreateTime"].asString());
+	if(!dataNode["LastModifyTime"].isNull())
+		data_.lastModifyTime = std::stol(dataNode["LastModifyTime"].asString());
+	if(!dataNode["DelaySeconds"].isNull())
+		data_.delaySeconds = std::stol(dataNode["DelaySeconds"].asString());
+	if(!dataNode["MaximumMessageSize"].isNull())
+		data_.maximumMessageSize = std::stol(dataNode["MaximumMessageSize"].asString());
+	if(!dataNode["MessageRetentionPeriod"].isNull())
+		data_.messageRetentionPeriod = std::stol(dataNode["MessageRetentionPeriod"].asString());
+	if(!dataNode["VisibilityTimeout"].isNull())
+		data_.visibilityTimeout = std::stol(dataNode["VisibilityTimeout"].asString());
+	if(!dataNode["PollingWaitSeconds"].isNull())
+		data_.pollingWaitSeconds = std::stol(dataNode["PollingWaitSeconds"].asString());
+	if(!dataNode["ActiveMessages"].isNull())
+		data_.activeMessages = std::stol(dataNode["ActiveMessages"].asString());
+	if(!dataNode["InactiveMessages"].isNull())
+		data_.inactiveMessages = std::stol(dataNode["InactiveMessages"].asString());
+	if(!dataNode["DelayMessages"].isNull())
+		data_.delayMessages = std::stol(dataNode["DelayMessages"].asString());
+	if(!dataNode["LoggingEnabled"].isNull())
+		data_.loggingEnabled = dataNode["LoggingEnabled"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string GetQueueAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string GetQueueAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+GetQueueAttributesResult::Data GetQueueAttributesResult::getData()const
+{
+	return data_;
+}
+
+long GetQueueAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool GetQueueAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 45 - 0
mns-open/src/model/GetSubscriptionAttributesRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetSubscriptionAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::GetSubscriptionAttributesRequest;
+
+GetSubscriptionAttributesRequest::GetSubscriptionAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "GetSubscriptionAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetSubscriptionAttributesRequest::~GetSubscriptionAttributesRequest() {}
+
+std::string GetSubscriptionAttributesRequest::getSubscriptionName() const {
+  return subscriptionName_;
+}
+
+void GetSubscriptionAttributesRequest::setSubscriptionName(const std::string &subscriptionName) {
+  subscriptionName_ = subscriptionName;
+  setParameter(std::string("SubscriptionName"), subscriptionName);
+}
+
+std::string GetSubscriptionAttributesRequest::getTopicName() const {
+  return topicName_;
+}
+
+void GetSubscriptionAttributesRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+

+ 98 - 0
mns-open/src/model/GetSubscriptionAttributesResult.cc

@@ -0,0 +1,98 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetSubscriptionAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+GetSubscriptionAttributesResult::GetSubscriptionAttributesResult() :
+	ServiceResult()
+{}
+
+GetSubscriptionAttributesResult::GetSubscriptionAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetSubscriptionAttributesResult::~GetSubscriptionAttributesResult()
+{}
+
+void GetSubscriptionAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["SubscriptionName"].isNull())
+		data_.subscriptionName = dataNode["SubscriptionName"].asString();
+	if(!dataNode["TopicOwner"].isNull())
+		data_.topicOwner = dataNode["TopicOwner"].asString();
+	if(!dataNode["TopicName"].isNull())
+		data_.topicName = dataNode["TopicName"].asString();
+	if(!dataNode["Endpoint"].isNull())
+		data_.endpoint = dataNode["Endpoint"].asString();
+	if(!dataNode["FilterTag"].isNull())
+		data_.filterTag = dataNode["FilterTag"].asString();
+	if(!dataNode["CreateTime"].isNull())
+		data_.createTime = std::stol(dataNode["CreateTime"].asString());
+	if(!dataNode["LastModifyTime"].isNull())
+		data_.lastModifyTime = std::stol(dataNode["LastModifyTime"].asString());
+	if(!dataNode["NotifyStrategy"].isNull())
+		data_.notifyStrategy = dataNode["NotifyStrategy"].asString();
+	if(!dataNode["NotifyContentFormat"].isNull())
+		data_.notifyContentFormat = dataNode["NotifyContentFormat"].asString();
+	if(!dataNode["SubscriptionURL"].isNull())
+		data_.subscriptionURL = dataNode["SubscriptionURL"].asString();
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string GetSubscriptionAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string GetSubscriptionAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+GetSubscriptionAttributesResult::Data GetSubscriptionAttributesResult::getData()const
+{
+	return data_;
+}
+
+long GetSubscriptionAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool GetSubscriptionAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 36 - 0
mns-open/src/model/GetTopicAttributesRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetTopicAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::GetTopicAttributesRequest;
+
+GetTopicAttributesRequest::GetTopicAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "GetTopicAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetTopicAttributesRequest::~GetTopicAttributesRequest() {}
+
+std::string GetTopicAttributesRequest::getTopicName() const {
+  return topicName_;
+}
+
+void GetTopicAttributesRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+

+ 96 - 0
mns-open/src/model/GetTopicAttributesResult.cc

@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/GetTopicAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+GetTopicAttributesResult::GetTopicAttributesResult() :
+	ServiceResult()
+{}
+
+GetTopicAttributesResult::GetTopicAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetTopicAttributesResult::~GetTopicAttributesResult()
+{}
+
+void GetTopicAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["TopicName"].isNull())
+		data_.topicName = dataNode["TopicName"].asString();
+	if(!dataNode["MessageCount"].isNull())
+		data_.messageCount = std::stol(dataNode["MessageCount"].asString());
+	if(!dataNode["MaxMessageSize"].isNull())
+		data_.maxMessageSize = std::stol(dataNode["MaxMessageSize"].asString());
+	if(!dataNode["MessageRetentionPeriod"].isNull())
+		data_.messageRetentionPeriod = std::stol(dataNode["MessageRetentionPeriod"].asString());
+	if(!dataNode["CreateTime"].isNull())
+		data_.createTime = std::stol(dataNode["CreateTime"].asString());
+	if(!dataNode["LastModifyTime"].isNull())
+		data_.lastModifyTime = std::stol(dataNode["LastModifyTime"].asString());
+	if(!dataNode["TopicUrl"].isNull())
+		data_.topicUrl = dataNode["TopicUrl"].asString();
+	if(!dataNode["LoggingEnabled"].isNull())
+		data_.loggingEnabled = dataNode["LoggingEnabled"].asString() == "true";
+	if(!dataNode["TopicInnerUrl"].isNull())
+		data_.topicInnerUrl = dataNode["TopicInnerUrl"].asString();
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string GetTopicAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string GetTopicAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+GetTopicAttributesResult::Data GetTopicAttributesResult::getData()const
+{
+	return data_;
+}
+
+long GetTopicAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool GetTopicAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
mns-open/src/model/ListQueueRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListQueueRequest.h>
+
+using AlibabaCloud::Mns_open::Model::ListQueueRequest;
+
+ListQueueRequest::ListQueueRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "ListQueue") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListQueueRequest::~ListQueueRequest() {}
+
+std::string ListQueueRequest::getQueueName() const {
+  return queueName_;
+}
+
+void ListQueueRequest::setQueueName(const std::string &queueName) {
+  queueName_ = queueName;
+  setParameter(std::string("QueueName"), queueName);
+}
+
+long ListQueueRequest::getPageNum() const {
+  return pageNum_;
+}
+
+void ListQueueRequest::setPageNum(long pageNum) {
+  pageNum_ = pageNum;
+  setParameter(std::string("PageNum"), std::to_string(pageNum));
+}
+
+long ListQueueRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListQueueRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+

+ 122 - 0
mns-open/src/model/ListQueueResult.cc

@@ -0,0 +1,122 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListQueueResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+ListQueueResult::ListQueueResult() :
+	ServiceResult()
+{}
+
+ListQueueResult::ListQueueResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListQueueResult::~ListQueueResult()
+{}
+
+void ListQueueResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["PageNum"].isNull())
+		data_.pageNum = std::stol(dataNode["PageNum"].asString());
+	if(!dataNode["PageSize"].isNull())
+		data_.pageSize = std::stol(dataNode["PageSize"].asString());
+	if(!dataNode["Size"].isNull())
+		data_.size = std::stol(dataNode["Size"].asString());
+	if(!dataNode["Pages"].isNull())
+		data_.pages = std::stol(dataNode["Pages"].asString());
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stol(dataNode["Total"].asString());
+	auto allPageDataNode = dataNode["PageData"]["pageDataItem"];
+	for (auto dataNodePageDatapageDataItem : allPageDataNode)
+	{
+		Data::PageDataItem pageDataItemObject;
+		if(!dataNodePageDatapageDataItem["QueueUrl"].isNull())
+			pageDataItemObject.queueUrl = dataNodePageDatapageDataItem["QueueUrl"].asString();
+		if(!dataNodePageDatapageDataItem["QueueInternalUrl"].isNull())
+			pageDataItemObject.queueInternalUrl = dataNodePageDatapageDataItem["QueueInternalUrl"].asString();
+		if(!dataNodePageDatapageDataItem["QueueName"].isNull())
+			pageDataItemObject.queueName = dataNodePageDatapageDataItem["QueueName"].asString();
+		if(!dataNodePageDatapageDataItem["CreateTime"].isNull())
+			pageDataItemObject.createTime = std::stol(dataNodePageDatapageDataItem["CreateTime"].asString());
+		if(!dataNodePageDatapageDataItem["LastModifyTime"].isNull())
+			pageDataItemObject.lastModifyTime = std::stol(dataNodePageDatapageDataItem["LastModifyTime"].asString());
+		if(!dataNodePageDatapageDataItem["DelaySeconds"].isNull())
+			pageDataItemObject.delaySeconds = std::stol(dataNodePageDatapageDataItem["DelaySeconds"].asString());
+		if(!dataNodePageDatapageDataItem["MaximumMessageSize"].isNull())
+			pageDataItemObject.maximumMessageSize = std::stol(dataNodePageDatapageDataItem["MaximumMessageSize"].asString());
+		if(!dataNodePageDatapageDataItem["MessageRetentionPeriod"].isNull())
+			pageDataItemObject.messageRetentionPeriod = std::stol(dataNodePageDatapageDataItem["MessageRetentionPeriod"].asString());
+		if(!dataNodePageDatapageDataItem["VisibilityTimeout"].isNull())
+			pageDataItemObject.visibilityTimeout = std::stol(dataNodePageDatapageDataItem["VisibilityTimeout"].asString());
+		if(!dataNodePageDatapageDataItem["PollingWaitSeconds"].isNull())
+			pageDataItemObject.pollingWaitSeconds = std::stol(dataNodePageDatapageDataItem["PollingWaitSeconds"].asString());
+		if(!dataNodePageDatapageDataItem["ActiveMessages"].isNull())
+			pageDataItemObject.activeMessages = std::stol(dataNodePageDatapageDataItem["ActiveMessages"].asString());
+		if(!dataNodePageDatapageDataItem["InactiveMessages"].isNull())
+			pageDataItemObject.inactiveMessages = std::stol(dataNodePageDatapageDataItem["InactiveMessages"].asString());
+		if(!dataNodePageDatapageDataItem["DelayMessages"].isNull())
+			pageDataItemObject.delayMessages = std::stol(dataNodePageDatapageDataItem["DelayMessages"].asString());
+		if(!dataNodePageDatapageDataItem["LoggingEnabled"].isNull())
+			pageDataItemObject.loggingEnabled = dataNodePageDatapageDataItem["LoggingEnabled"].asString() == "true";
+		data_.pageData.push_back(pageDataItemObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string ListQueueResult::getStatus()const
+{
+	return status_;
+}
+
+std::string ListQueueResult::getMessage()const
+{
+	return message_;
+}
+
+ListQueueResult::Data ListQueueResult::getData()const
+{
+	return data_;
+}
+
+long ListQueueResult::getCode()const
+{
+	return code_;
+}
+
+bool ListQueueResult::getSuccess()const
+{
+	return success_;
+}
+

+ 63 - 0
mns-open/src/model/ListSubscriptionByTopicRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListSubscriptionByTopicRequest.h>
+
+using AlibabaCloud::Mns_open::Model::ListSubscriptionByTopicRequest;
+
+ListSubscriptionByTopicRequest::ListSubscriptionByTopicRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "ListSubscriptionByTopic") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListSubscriptionByTopicRequest::~ListSubscriptionByTopicRequest() {}
+
+std::string ListSubscriptionByTopicRequest::getSubscriptionName() const {
+  return subscriptionName_;
+}
+
+void ListSubscriptionByTopicRequest::setSubscriptionName(const std::string &subscriptionName) {
+  subscriptionName_ = subscriptionName;
+  setParameter(std::string("SubscriptionName"), subscriptionName);
+}
+
+std::string ListSubscriptionByTopicRequest::getTopicName() const {
+  return topicName_;
+}
+
+void ListSubscriptionByTopicRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+
+long ListSubscriptionByTopicRequest::getPageNum() const {
+  return pageNum_;
+}
+
+void ListSubscriptionByTopicRequest::setPageNum(long pageNum) {
+  pageNum_ = pageNum;
+  setParameter(std::string("PageNum"), std::to_string(pageNum));
+}
+
+long ListSubscriptionByTopicRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListSubscriptionByTopicRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+

+ 114 - 0
mns-open/src/model/ListSubscriptionByTopicResult.cc

@@ -0,0 +1,114 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListSubscriptionByTopicResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+ListSubscriptionByTopicResult::ListSubscriptionByTopicResult() :
+	ServiceResult()
+{}
+
+ListSubscriptionByTopicResult::ListSubscriptionByTopicResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListSubscriptionByTopicResult::~ListSubscriptionByTopicResult()
+{}
+
+void ListSubscriptionByTopicResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["PageNum"].isNull())
+		data_.pageNum = std::stol(dataNode["PageNum"].asString());
+	if(!dataNode["PageSize"].isNull())
+		data_.pageSize = std::stol(dataNode["PageSize"].asString());
+	if(!dataNode["Size"].isNull())
+		data_.size = std::stol(dataNode["Size"].asString());
+	if(!dataNode["Pages"].isNull())
+		data_.pages = std::stol(dataNode["Pages"].asString());
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stol(dataNode["Total"].asString());
+	auto allPageDataNode = dataNode["PageData"]["pageDataItem"];
+	for (auto dataNodePageDatapageDataItem : allPageDataNode)
+	{
+		Data::PageDataItem pageDataItemObject;
+		if(!dataNodePageDatapageDataItem["SubscriptionName"].isNull())
+			pageDataItemObject.subscriptionName = dataNodePageDatapageDataItem["SubscriptionName"].asString();
+		if(!dataNodePageDatapageDataItem["TopicOwner"].isNull())
+			pageDataItemObject.topicOwner = dataNodePageDatapageDataItem["TopicOwner"].asString();
+		if(!dataNodePageDatapageDataItem["TopicName"].isNull())
+			pageDataItemObject.topicName = dataNodePageDatapageDataItem["TopicName"].asString();
+		if(!dataNodePageDatapageDataItem["Endpoint"].isNull())
+			pageDataItemObject.endpoint = dataNodePageDatapageDataItem["Endpoint"].asString();
+		if(!dataNodePageDatapageDataItem["FilterTag"].isNull())
+			pageDataItemObject.filterTag = dataNodePageDatapageDataItem["FilterTag"].asString();
+		if(!dataNodePageDatapageDataItem["CreateTime"].isNull())
+			pageDataItemObject.createTime = std::stol(dataNodePageDatapageDataItem["CreateTime"].asString());
+		if(!dataNodePageDatapageDataItem["LastModifyTime"].isNull())
+			pageDataItemObject.lastModifyTime = std::stol(dataNodePageDatapageDataItem["LastModifyTime"].asString());
+		if(!dataNodePageDatapageDataItem["NotifyStrategy"].isNull())
+			pageDataItemObject.notifyStrategy = dataNodePageDatapageDataItem["NotifyStrategy"].asString();
+		if(!dataNodePageDatapageDataItem["NotifyContentFormat"].isNull())
+			pageDataItemObject.notifyContentFormat = dataNodePageDatapageDataItem["NotifyContentFormat"].asString();
+		if(!dataNodePageDatapageDataItem["SubscriptionURL"].isNull())
+			pageDataItemObject.subscriptionURL = dataNodePageDatapageDataItem["SubscriptionURL"].asString();
+		data_.pageData.push_back(pageDataItemObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string ListSubscriptionByTopicResult::getStatus()const
+{
+	return status_;
+}
+
+std::string ListSubscriptionByTopicResult::getMessage()const
+{
+	return message_;
+}
+
+ListSubscriptionByTopicResult::Data ListSubscriptionByTopicResult::getData()const
+{
+	return data_;
+}
+
+long ListSubscriptionByTopicResult::getCode()const
+{
+	return code_;
+}
+
+bool ListSubscriptionByTopicResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
mns-open/src/model/ListTopicRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListTopicRequest.h>
+
+using AlibabaCloud::Mns_open::Model::ListTopicRequest;
+
+ListTopicRequest::ListTopicRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "ListTopic") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListTopicRequest::~ListTopicRequest() {}
+
+std::string ListTopicRequest::getTopicName() const {
+  return topicName_;
+}
+
+void ListTopicRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+
+long ListTopicRequest::getPageNum() const {
+  return pageNum_;
+}
+
+void ListTopicRequest::setPageNum(long pageNum) {
+  pageNum_ = pageNum;
+  setParameter(std::string("PageNum"), std::to_string(pageNum));
+}
+
+long ListTopicRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListTopicRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+

+ 108 - 0
mns-open/src/model/ListTopicResult.cc

@@ -0,0 +1,108 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/ListTopicResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+ListTopicResult::ListTopicResult() :
+	ServiceResult()
+{}
+
+ListTopicResult::ListTopicResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListTopicResult::~ListTopicResult()
+{}
+
+void ListTopicResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["PageNum"].isNull())
+		data_.pageNum = std::stol(dataNode["PageNum"].asString());
+	if(!dataNode["PageSize"].isNull())
+		data_.pageSize = std::stol(dataNode["PageSize"].asString());
+	if(!dataNode["Total"].isNull())
+		data_.total = std::stol(dataNode["Total"].asString());
+	auto allPageDataNode = dataNode["PageData"]["pageDataItem"];
+	for (auto dataNodePageDatapageDataItem : allPageDataNode)
+	{
+		Data::PageDataItem pageDataItemObject;
+		if(!dataNodePageDatapageDataItem["TopicName"].isNull())
+			pageDataItemObject.topicName = dataNodePageDatapageDataItem["TopicName"].asString();
+		if(!dataNodePageDatapageDataItem["MessageCount"].isNull())
+			pageDataItemObject.messageCount = std::stol(dataNodePageDatapageDataItem["MessageCount"].asString());
+		if(!dataNodePageDatapageDataItem["MaxMessageSize"].isNull())
+			pageDataItemObject.maxMessageSize = std::stol(dataNodePageDatapageDataItem["MaxMessageSize"].asString());
+		if(!dataNodePageDatapageDataItem["MessageRetentionPeriod"].isNull())
+			pageDataItemObject.messageRetentionPeriod = std::stol(dataNodePageDatapageDataItem["MessageRetentionPeriod"].asString());
+		if(!dataNodePageDatapageDataItem["CreateTime"].isNull())
+			pageDataItemObject.createTime = std::stol(dataNodePageDatapageDataItem["CreateTime"].asString());
+		if(!dataNodePageDatapageDataItem["LastModifyTime"].isNull())
+			pageDataItemObject.lastModifyTime = std::stol(dataNodePageDatapageDataItem["LastModifyTime"].asString());
+		if(!dataNodePageDatapageDataItem["TopicUrl"].isNull())
+			pageDataItemObject.topicUrl = dataNodePageDatapageDataItem["TopicUrl"].asString();
+		if(!dataNodePageDatapageDataItem["TopicInnerUrl"].isNull())
+			pageDataItemObject.topicInnerUrl = dataNodePageDatapageDataItem["TopicInnerUrl"].asString();
+		if(!dataNodePageDatapageDataItem["LoggingEnabled"].isNull())
+			pageDataItemObject.loggingEnabled = dataNodePageDatapageDataItem["LoggingEnabled"].asString() == "true";
+		data_.pageData.push_back(pageDataItemObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string ListTopicResult::getStatus()const
+{
+	return status_;
+}
+
+std::string ListTopicResult::getMessage()const
+{
+	return message_;
+}
+
+ListTopicResult::Data ListTopicResult::getData()const
+{
+	return data_;
+}
+
+long ListTopicResult::getCode()const
+{
+	return code_;
+}
+
+bool ListTopicResult::getSuccess()const
+{
+	return success_;
+}
+

+ 90 - 0
mns-open/src/model/SetQueueAttributesRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetQueueAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::SetQueueAttributesRequest;
+
+SetQueueAttributesRequest::SetQueueAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "SetQueueAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SetQueueAttributesRequest::~SetQueueAttributesRequest() {}
+
+std::string SetQueueAttributesRequest::getQueueName() const {
+  return queueName_;
+}
+
+void SetQueueAttributesRequest::setQueueName(const std::string &queueName) {
+  queueName_ = queueName;
+  setParameter(std::string("QueueName"), queueName);
+}
+
+long SetQueueAttributesRequest::getMessageRetentionPeriod() const {
+  return messageRetentionPeriod_;
+}
+
+void SetQueueAttributesRequest::setMessageRetentionPeriod(long messageRetentionPeriod) {
+  messageRetentionPeriod_ = messageRetentionPeriod;
+  setParameter(std::string("MessageRetentionPeriod"), std::to_string(messageRetentionPeriod));
+}
+
+bool SetQueueAttributesRequest::getEnableLogging() const {
+  return enableLogging_;
+}
+
+void SetQueueAttributesRequest::setEnableLogging(bool enableLogging) {
+  enableLogging_ = enableLogging;
+  setParameter(std::string("EnableLogging"), enableLogging ? "true" : "false");
+}
+
+long SetQueueAttributesRequest::getVisibilityTimeout() const {
+  return visibilityTimeout_;
+}
+
+void SetQueueAttributesRequest::setVisibilityTimeout(long visibilityTimeout) {
+  visibilityTimeout_ = visibilityTimeout;
+  setParameter(std::string("VisibilityTimeout"), std::to_string(visibilityTimeout));
+}
+
+long SetQueueAttributesRequest::getDelaySeconds() const {
+  return delaySeconds_;
+}
+
+void SetQueueAttributesRequest::setDelaySeconds(long delaySeconds) {
+  delaySeconds_ = delaySeconds;
+  setParameter(std::string("DelaySeconds"), std::to_string(delaySeconds));
+}
+
+long SetQueueAttributesRequest::getMaximumMessageSize() const {
+  return maximumMessageSize_;
+}
+
+void SetQueueAttributesRequest::setMaximumMessageSize(long maximumMessageSize) {
+  maximumMessageSize_ = maximumMessageSize;
+  setParameter(std::string("MaximumMessageSize"), std::to_string(maximumMessageSize));
+}
+
+long SetQueueAttributesRequest::getPollingWaitSeconds() const {
+  return pollingWaitSeconds_;
+}
+
+void SetQueueAttributesRequest::setPollingWaitSeconds(long pollingWaitSeconds) {
+  pollingWaitSeconds_ = pollingWaitSeconds;
+  setParameter(std::string("PollingWaitSeconds"), std::to_string(pollingWaitSeconds));
+}
+

+ 84 - 0
mns-open/src/model/SetQueueAttributesResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetQueueAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+SetQueueAttributesResult::SetQueueAttributesResult() :
+	ServiceResult()
+{}
+
+SetQueueAttributesResult::SetQueueAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SetQueueAttributesResult::~SetQueueAttributesResult()
+{}
+
+void SetQueueAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SetQueueAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string SetQueueAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+SetQueueAttributesResult::Data SetQueueAttributesResult::getData()const
+{
+	return data_;
+}
+
+long SetQueueAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool SetQueueAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
mns-open/src/model/SetSubscriptionAttributesRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetSubscriptionAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::SetSubscriptionAttributesRequest;
+
+SetSubscriptionAttributesRequest::SetSubscriptionAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "SetSubscriptionAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SetSubscriptionAttributesRequest::~SetSubscriptionAttributesRequest() {}
+
+std::string SetSubscriptionAttributesRequest::getSubscriptionName() const {
+  return subscriptionName_;
+}
+
+void SetSubscriptionAttributesRequest::setSubscriptionName(const std::string &subscriptionName) {
+  subscriptionName_ = subscriptionName;
+  setParameter(std::string("SubscriptionName"), subscriptionName);
+}
+
+std::string SetSubscriptionAttributesRequest::getTopicName() const {
+  return topicName_;
+}
+
+void SetSubscriptionAttributesRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+
+std::string SetSubscriptionAttributesRequest::getNotifyStrategy() const {
+  return notifyStrategy_;
+}
+
+void SetSubscriptionAttributesRequest::setNotifyStrategy(const std::string &notifyStrategy) {
+  notifyStrategy_ = notifyStrategy;
+  setParameter(std::string("NotifyStrategy"), notifyStrategy);
+}
+

+ 84 - 0
mns-open/src/model/SetSubscriptionAttributesResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetSubscriptionAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+SetSubscriptionAttributesResult::SetSubscriptionAttributesResult() :
+	ServiceResult()
+{}
+
+SetSubscriptionAttributesResult::SetSubscriptionAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SetSubscriptionAttributesResult::~SetSubscriptionAttributesResult()
+{}
+
+void SetSubscriptionAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SetSubscriptionAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string SetSubscriptionAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+SetSubscriptionAttributesResult::Data SetSubscriptionAttributesResult::getData()const
+{
+	return data_;
+}
+
+long SetSubscriptionAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool SetSubscriptionAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 54 - 0
mns-open/src/model/SetTopicAttributesRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetTopicAttributesRequest.h>
+
+using AlibabaCloud::Mns_open::Model::SetTopicAttributesRequest;
+
+SetTopicAttributesRequest::SetTopicAttributesRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "SetTopicAttributes") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SetTopicAttributesRequest::~SetTopicAttributesRequest() {}
+
+std::string SetTopicAttributesRequest::getTopicName() const {
+  return topicName_;
+}
+
+void SetTopicAttributesRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+
+long SetTopicAttributesRequest::getMaxMessageSize() const {
+  return maxMessageSize_;
+}
+
+void SetTopicAttributesRequest::setMaxMessageSize(long maxMessageSize) {
+  maxMessageSize_ = maxMessageSize;
+  setParameter(std::string("MaxMessageSize"), std::to_string(maxMessageSize));
+}
+
+bool SetTopicAttributesRequest::getEnableLogging() const {
+  return enableLogging_;
+}
+
+void SetTopicAttributesRequest::setEnableLogging(bool enableLogging) {
+  enableLogging_ = enableLogging;
+  setParameter(std::string("EnableLogging"), enableLogging ? "true" : "false");
+}
+

+ 84 - 0
mns-open/src/model/SetTopicAttributesResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SetTopicAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+SetTopicAttributesResult::SetTopicAttributesResult() :
+	ServiceResult()
+{}
+
+SetTopicAttributesResult::SetTopicAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SetTopicAttributesResult::~SetTopicAttributesResult()
+{}
+
+void SetTopicAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string SetTopicAttributesResult::getStatus()const
+{
+	return status_;
+}
+
+std::string SetTopicAttributesResult::getMessage()const
+{
+	return message_;
+}
+
+SetTopicAttributesResult::Data SetTopicAttributesResult::getData()const
+{
+	return data_;
+}
+
+long SetTopicAttributesResult::getCode()const
+{
+	return code_;
+}
+
+bool SetTopicAttributesResult::getSuccess()const
+{
+	return success_;
+}
+

+ 90 - 0
mns-open/src/model/SubscribeRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SubscribeRequest.h>
+
+using AlibabaCloud::Mns_open::Model::SubscribeRequest;
+
+SubscribeRequest::SubscribeRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "Subscribe") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+SubscribeRequest::~SubscribeRequest() {}
+
+std::string SubscribeRequest::getTopicName() const {
+  return topicName_;
+}
+
+void SubscribeRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+
+std::string SubscribeRequest::getMessageTag() const {
+  return messageTag_;
+}
+
+void SubscribeRequest::setMessageTag(const std::string &messageTag) {
+  messageTag_ = messageTag;
+  setParameter(std::string("MessageTag"), messageTag);
+}
+
+std::string SubscribeRequest::getEndpoint() const {
+  return endpoint_;
+}
+
+void SubscribeRequest::setEndpoint(const std::string &endpoint) {
+  endpoint_ = endpoint;
+  setParameter(std::string("Endpoint"), endpoint);
+}
+
+std::string SubscribeRequest::getSubscriptionName() const {
+  return subscriptionName_;
+}
+
+void SubscribeRequest::setSubscriptionName(const std::string &subscriptionName) {
+  subscriptionName_ = subscriptionName;
+  setParameter(std::string("SubscriptionName"), subscriptionName);
+}
+
+std::string SubscribeRequest::getNotifyStrategy() const {
+  return notifyStrategy_;
+}
+
+void SubscribeRequest::setNotifyStrategy(const std::string &notifyStrategy) {
+  notifyStrategy_ = notifyStrategy;
+  setParameter(std::string("NotifyStrategy"), notifyStrategy);
+}
+
+std::string SubscribeRequest::getNotifyContentFormat() const {
+  return notifyContentFormat_;
+}
+
+void SubscribeRequest::setNotifyContentFormat(const std::string &notifyContentFormat) {
+  notifyContentFormat_ = notifyContentFormat;
+  setParameter(std::string("NotifyContentFormat"), notifyContentFormat);
+}
+
+std::string SubscribeRequest::getPushType() const {
+  return pushType_;
+}
+
+void SubscribeRequest::setPushType(const std::string &pushType) {
+  pushType_ = pushType;
+  setParameter(std::string("PushType"), pushType);
+}
+

+ 79 - 0
mns-open/src/model/SubscribeResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/SubscribeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+SubscribeResult::SubscribeResult() :
+	ServiceResult()
+{}
+
+SubscribeResult::SubscribeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SubscribeResult::~SubscribeResult()
+{}
+
+void SubscribeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string SubscribeResult::getStatus()const
+{
+	return status_;
+}
+
+std::string SubscribeResult::getMessage()const
+{
+	return message_;
+}
+
+std::string SubscribeResult::getData()const
+{
+	return data_;
+}
+
+long SubscribeResult::getCode()const
+{
+	return code_;
+}
+
+bool SubscribeResult::getSuccess()const
+{
+	return success_;
+}
+

+ 45 - 0
mns-open/src/model/UnsubscribeRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/UnsubscribeRequest.h>
+
+using AlibabaCloud::Mns_open::Model::UnsubscribeRequest;
+
+UnsubscribeRequest::UnsubscribeRequest()
+    : RpcServiceRequest("mns-open", "2022-01-19", "Unsubscribe") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UnsubscribeRequest::~UnsubscribeRequest() {}
+
+std::string UnsubscribeRequest::getSubscriptionName() const {
+  return subscriptionName_;
+}
+
+void UnsubscribeRequest::setSubscriptionName(const std::string &subscriptionName) {
+  subscriptionName_ = subscriptionName;
+  setParameter(std::string("SubscriptionName"), subscriptionName);
+}
+
+std::string UnsubscribeRequest::getTopicName() const {
+  return topicName_;
+}
+
+void UnsubscribeRequest::setTopicName(const std::string &topicName) {
+  topicName_ = topicName;
+  setParameter(std::string("TopicName"), topicName);
+}
+

+ 84 - 0
mns-open/src/model/UnsubscribeResult.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/mns-open/model/UnsubscribeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Mns_open;
+using namespace AlibabaCloud::Mns_open::Model;
+
+UnsubscribeResult::UnsubscribeResult() :
+	ServiceResult()
+{}
+
+UnsubscribeResult::UnsubscribeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UnsubscribeResult::~UnsubscribeResult()
+{}
+
+void UnsubscribeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Code"].isNull())
+		data_.code = std::stol(dataNode["Code"].asString());
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = std::stol(value["Code"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string UnsubscribeResult::getStatus()const
+{
+	return status_;
+}
+
+std::string UnsubscribeResult::getMessage()const
+{
+	return message_;
+}
+
+UnsubscribeResult::Data UnsubscribeResult::getData()const
+{
+	return data_;
+}
+
+long UnsubscribeResult::getCode()const
+{
+	return code_;
+}
+
+bool UnsubscribeResult::getSuccess()const
+{
+	return success_;
+}
+