Browse Source

Generated 2020-06-06 for cams.

sdk-team 3 years ago
parent
commit
3cee194b0f
100 changed files with 3483 additions and 1 deletions
  1. 1 1
      VERSION
  2. 36 0
      cams/CMakeLists.txt
  3. 72 0
      cams/include/alibabacloud/cams/CamsClient.h
  4. 60 0
      cams/include/alibabacloud/cams/model/AddChatappPhoneNumberRequest.h
  5. 55 0
      cams/include/alibabacloud/cams/model/AddChatappPhoneNumberResult.h
  6. 2 0
      cams/include/alibabacloud/cams/model/BeeBotAssociateResult.h
  7. 2 0
      cams/include/alibabacloud/cams/model/BeeBotChatResult.h
  8. 2 0
      cams/include/alibabacloud/cams/model/ChatappBindWabaResult.h
  9. 2 0
      cams/include/alibabacloud/cams/model/ChatappEmbedSignUpResult.h
  10. 2 0
      cams/include/alibabacloud/cams/model/ChatappMigrationRegisterResult.h
  11. 2 0
      cams/include/alibabacloud/cams/model/ChatappMigrationVerifiedResult.h
  12. 51 0
      cams/include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterRequest.h
  13. 55 0
      cams/include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterResult.h
  14. 2 0
      cams/include/alibabacloud/cams/model/ChatappPhoneNumberRegisterResult.h
  15. 2 0
      cams/include/alibabacloud/cams/model/ChatappSyncPhoneNumberResult.h
  16. 2 0
      cams/include/alibabacloud/cams/model/ChatappVerifyAndRegisterResult.h
  17. 2 0
      cams/include/alibabacloud/cams/model/CreateChatappMigrationInitiateResult.h
  18. 3 0
      cams/include/alibabacloud/cams/model/CreateChatappTemplateRequest.h
  19. 2 0
      cams/include/alibabacloud/cams/model/CreateChatappTemplateResult.h
  20. 2 0
      cams/include/alibabacloud/cams/model/DeleteChatappTemplateResult.h
  21. 51 0
      cams/include/alibabacloud/cams/model/EnableWhatsappROIMetricRequest.h
  22. 55 0
      cams/include/alibabacloud/cams/model/EnableWhatsappROIMetricResult.h
  23. 63 0
      cams/include/alibabacloud/cams/model/GetChatappPhoneNumberMetricRequest.h
  24. 66 0
      cams/include/alibabacloud/cams/model/GetChatappPhoneNumberMetricResult.h
  25. 5 0
      cams/include/alibabacloud/cams/model/GetChatappTemplateDetailResult.h
  26. 69 0
      cams/include/alibabacloud/cams/model/GetChatappTemplateMetricRequest.h
  27. 74 0
      cams/include/alibabacloud/cams/model/GetChatappTemplateMetricResult.h
  28. 2 0
      cams/include/alibabacloud/cams/model/GetChatappUploadAuthorizationResult.h
  29. 2 0
      cams/include/alibabacloud/cams/model/GetChatappVerifyCodeResult.h
  30. 2 0
      cams/include/alibabacloud/cams/model/GetMigrationVerifyCodeResult.h
  31. 51 0
      cams/include/alibabacloud/cams/model/GetPreValidatePhoneIdRequest.h
  32. 60 0
      cams/include/alibabacloud/cams/model/GetPreValidatePhoneIdResult.h
  33. 66 0
      cams/include/alibabacloud/cams/model/GetWhatsappConnectionCatalogRequest.h
  34. 59 0
      cams/include/alibabacloud/cams/model/GetWhatsappConnectionCatalogResult.h
  35. 2 0
      cams/include/alibabacloud/cams/model/IsvGetAppIdResult.h
  36. 3 0
      cams/include/alibabacloud/cams/model/ListChatappTemplateResult.h
  37. 78 0
      cams/include/alibabacloud/cams/model/ListProductCatalogRequest.h
  38. 73 0
      cams/include/alibabacloud/cams/model/ListProductCatalogResult.h
  39. 81 0
      cams/include/alibabacloud/cams/model/ListProductRequest.h
  40. 73 0
      cams/include/alibabacloud/cams/model/ListProductResult.h
  41. 3 0
      cams/include/alibabacloud/cams/model/ModifyChatappTemplateRequest.h
  42. 2 0
      cams/include/alibabacloud/cams/model/ModifyChatappTemplateResult.h
  43. 2 0
      cams/include/alibabacloud/cams/model/ModifyPhoneBusinessProfileResult.h
  44. 2 0
      cams/include/alibabacloud/cams/model/QueryChatappBindWabaResult.h
  45. 2 0
      cams/include/alibabacloud/cams/model/QueryChatappPhoneNumbersResult.h
  46. 2 0
      cams/include/alibabacloud/cams/model/QueryPhoneBusinessProfileResult.h
  47. 2 0
      cams/include/alibabacloud/cams/model/QueryWabaBusinessInfoResult.h
  48. 14 0
      cams/include/alibabacloud/cams/model/SendChatappMassMessageRequest.h
  49. 2 0
      cams/include/alibabacloud/cams/model/SendChatappMassMessageResult.h
  50. 16 0
      cams/include/alibabacloud/cams/model/SendChatappMessageRequest.h
  51. 2 0
      cams/include/alibabacloud/cams/model/SubmitIsvCustomerTermsResult.h
  52. 2 0
      cams/include/alibabacloud/cams/model/UpdateAccountWebhookResult.h
  53. 2 0
      cams/include/alibabacloud/cams/model/UpdatePhoneWebhookResult.h
  54. 324 0
      cams/src/CamsClient.cc
  55. 90 0
      cams/src/model/AddChatappPhoneNumberRequest.cc
  56. 65 0
      cams/src/model/AddChatappPhoneNumberResult.cc
  57. 7 0
      cams/src/model/BeeBotAssociateResult.cc
  58. 7 0
      cams/src/model/BeeBotChatResult.cc
  59. 7 0
      cams/src/model/ChatappBindWabaResult.cc
  60. 7 0
      cams/src/model/ChatappEmbedSignUpResult.cc
  61. 7 0
      cams/src/model/ChatappMigrationRegisterResult.cc
  62. 7 0
      cams/src/model/ChatappMigrationVerifiedResult.cc
  63. 63 0
      cams/src/model/ChatappPhoneNumberDeregisterRequest.cc
  64. 65 0
      cams/src/model/ChatappPhoneNumberDeregisterResult.cc
  65. 7 0
      cams/src/model/ChatappPhoneNumberRegisterResult.cc
  66. 7 0
      cams/src/model/ChatappSyncPhoneNumberResult.cc
  67. 7 0
      cams/src/model/ChatappVerifyAndRegisterResult.cc
  68. 7 0
      cams/src/model/CreateChatappMigrationInitiateResult.cc
  69. 9 0
      cams/src/model/CreateChatappTemplateRequest.cc
  70. 7 0
      cams/src/model/CreateChatappTemplateResult.cc
  71. 7 0
      cams/src/model/DeleteChatappTemplateResult.cc
  72. 63 0
      cams/src/model/EnableWhatsappROIMetricRequest.cc
  73. 65 0
      cams/src/model/EnableWhatsappROIMetricResult.cc
  74. 99 0
      cams/src/model/GetChatappPhoneNumberMetricRequest.cc
  75. 88 0
      cams/src/model/GetChatappPhoneNumberMetricResult.cc
  76. 13 0
      cams/src/model/GetChatappTemplateDetailResult.cc
  77. 117 0
      cams/src/model/GetChatappTemplateMetricRequest.cc
  78. 102 0
      cams/src/model/GetChatappTemplateMetricResult.cc
  79. 7 0
      cams/src/model/GetChatappUploadAuthorizationResult.cc
  80. 7 0
      cams/src/model/GetChatappVerifyCodeResult.cc
  81. 7 0
      cams/src/model/GetMigrationVerifyCodeResult.cc
  82. 63 0
      cams/src/model/GetPreValidatePhoneIdRequest.cc
  83. 68 0
      cams/src/model/GetPreValidatePhoneIdResult.cc
  84. 108 0
      cams/src/model/GetWhatsappConnectionCatalogRequest.cc
  85. 79 0
      cams/src/model/GetWhatsappConnectionCatalogResult.cc
  86. 7 0
      cams/src/model/IsvGetAppIdResult.cc
  87. 9 0
      cams/src/model/ListChatappTemplateResult.cc
  88. 144 0
      cams/src/model/ListProductCatalogRequest.cc
  89. 87 0
      cams/src/model/ListProductCatalogResult.cc
  90. 153 0
      cams/src/model/ListProductRequest.cc
  91. 87 0
      cams/src/model/ListProductResult.cc
  92. 9 0
      cams/src/model/ModifyChatappTemplateRequest.cc
  93. 7 0
      cams/src/model/ModifyChatappTemplateResult.cc
  94. 7 0
      cams/src/model/ModifyPhoneBusinessProfileResult.cc
  95. 7 0
      cams/src/model/QueryChatappBindWabaResult.cc
  96. 7 0
      cams/src/model/QueryChatappPhoneNumbersResult.cc
  97. 7 0
      cams/src/model/QueryPhoneBusinessProfileResult.cc
  98. 7 0
      cams/src/model/QueryWabaBusinessInfoResult.cc
  99. 7 0
      cams/src/model/SendChatappMassMessageRequest.cc
  100. 7 0
      cams/src/model/SendChatappMassMessageResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1760
+1.36.1761

+ 36 - 0
cams/CMakeLists.txt

@@ -21,6 +21,8 @@ set(cams_public_header
 	include/alibabacloud/cams/CamsExport.h )
 
 set(cams_public_header_model 
+	include/alibabacloud/cams/model/AddChatappPhoneNumberRequest.h
+	include/alibabacloud/cams/model/AddChatappPhoneNumberResult.h
 	include/alibabacloud/cams/model/BeeBotAssociateRequest.h
 	include/alibabacloud/cams/model/BeeBotAssociateResult.h
 	include/alibabacloud/cams/model/BeeBotChatRequest.h
@@ -33,6 +35,8 @@ set(cams_public_header_model
 	include/alibabacloud/cams/model/ChatappMigrationRegisterResult.h
 	include/alibabacloud/cams/model/ChatappMigrationVerifiedRequest.h
 	include/alibabacloud/cams/model/ChatappMigrationVerifiedResult.h
+	include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterRequest.h
+	include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterResult.h
 	include/alibabacloud/cams/model/ChatappPhoneNumberRegisterRequest.h
 	include/alibabacloud/cams/model/ChatappPhoneNumberRegisterResult.h
 	include/alibabacloud/cams/model/ChatappSyncPhoneNumberRequest.h
@@ -45,8 +49,14 @@ set(cams_public_header_model
 	include/alibabacloud/cams/model/CreateChatappTemplateResult.h
 	include/alibabacloud/cams/model/DeleteChatappTemplateRequest.h
 	include/alibabacloud/cams/model/DeleteChatappTemplateResult.h
+	include/alibabacloud/cams/model/EnableWhatsappROIMetricRequest.h
+	include/alibabacloud/cams/model/EnableWhatsappROIMetricResult.h
+	include/alibabacloud/cams/model/GetChatappPhoneNumberMetricRequest.h
+	include/alibabacloud/cams/model/GetChatappPhoneNumberMetricResult.h
 	include/alibabacloud/cams/model/GetChatappTemplateDetailRequest.h
 	include/alibabacloud/cams/model/GetChatappTemplateDetailResult.h
+	include/alibabacloud/cams/model/GetChatappTemplateMetricRequest.h
+	include/alibabacloud/cams/model/GetChatappTemplateMetricResult.h
 	include/alibabacloud/cams/model/GetChatappUploadAuthorizationRequest.h
 	include/alibabacloud/cams/model/GetChatappUploadAuthorizationResult.h
 	include/alibabacloud/cams/model/GetChatappVerifyCodeRequest.h
@@ -55,10 +65,18 @@ set(cams_public_header_model
 	include/alibabacloud/cams/model/GetMigrationVerifyCodeResult.h
 	include/alibabacloud/cams/model/GetPhoneNumberVerificationStatusRequest.h
 	include/alibabacloud/cams/model/GetPhoneNumberVerificationStatusResult.h
+	include/alibabacloud/cams/model/GetPreValidatePhoneIdRequest.h
+	include/alibabacloud/cams/model/GetPreValidatePhoneIdResult.h
+	include/alibabacloud/cams/model/GetWhatsappConnectionCatalogRequest.h
+	include/alibabacloud/cams/model/GetWhatsappConnectionCatalogResult.h
 	include/alibabacloud/cams/model/IsvGetAppIdRequest.h
 	include/alibabacloud/cams/model/IsvGetAppIdResult.h
 	include/alibabacloud/cams/model/ListChatappTemplateRequest.h
 	include/alibabacloud/cams/model/ListChatappTemplateResult.h
+	include/alibabacloud/cams/model/ListProductRequest.h
+	include/alibabacloud/cams/model/ListProductResult.h
+	include/alibabacloud/cams/model/ListProductCatalogRequest.h
+	include/alibabacloud/cams/model/ListProductCatalogResult.h
 	include/alibabacloud/cams/model/ModifyChatappTemplateRequest.h
 	include/alibabacloud/cams/model/ModifyChatappTemplateResult.h
 	include/alibabacloud/cams/model/ModifyPhoneBusinessProfileRequest.h
@@ -84,6 +102,8 @@ set(cams_public_header_model
 
 set(cams_src 
 	src/CamsClient.cc
+	src/model/AddChatappPhoneNumberRequest.cc
+	src/model/AddChatappPhoneNumberResult.cc
 	src/model/BeeBotAssociateRequest.cc
 	src/model/BeeBotAssociateResult.cc
 	src/model/BeeBotChatRequest.cc
@@ -96,6 +116,8 @@ set(cams_src
 	src/model/ChatappMigrationRegisterResult.cc
 	src/model/ChatappMigrationVerifiedRequest.cc
 	src/model/ChatappMigrationVerifiedResult.cc
+	src/model/ChatappPhoneNumberDeregisterRequest.cc
+	src/model/ChatappPhoneNumberDeregisterResult.cc
 	src/model/ChatappPhoneNumberRegisterRequest.cc
 	src/model/ChatappPhoneNumberRegisterResult.cc
 	src/model/ChatappSyncPhoneNumberRequest.cc
@@ -108,8 +130,14 @@ set(cams_src
 	src/model/CreateChatappTemplateResult.cc
 	src/model/DeleteChatappTemplateRequest.cc
 	src/model/DeleteChatappTemplateResult.cc
+	src/model/EnableWhatsappROIMetricRequest.cc
+	src/model/EnableWhatsappROIMetricResult.cc
+	src/model/GetChatappPhoneNumberMetricRequest.cc
+	src/model/GetChatappPhoneNumberMetricResult.cc
 	src/model/GetChatappTemplateDetailRequest.cc
 	src/model/GetChatappTemplateDetailResult.cc
+	src/model/GetChatappTemplateMetricRequest.cc
+	src/model/GetChatappTemplateMetricResult.cc
 	src/model/GetChatappUploadAuthorizationRequest.cc
 	src/model/GetChatappUploadAuthorizationResult.cc
 	src/model/GetChatappVerifyCodeRequest.cc
@@ -118,10 +146,18 @@ set(cams_src
 	src/model/GetMigrationVerifyCodeResult.cc
 	src/model/GetPhoneNumberVerificationStatusRequest.cc
 	src/model/GetPhoneNumberVerificationStatusResult.cc
+	src/model/GetPreValidatePhoneIdRequest.cc
+	src/model/GetPreValidatePhoneIdResult.cc
+	src/model/GetWhatsappConnectionCatalogRequest.cc
+	src/model/GetWhatsappConnectionCatalogResult.cc
 	src/model/IsvGetAppIdRequest.cc
 	src/model/IsvGetAppIdResult.cc
 	src/model/ListChatappTemplateRequest.cc
 	src/model/ListChatappTemplateResult.cc
+	src/model/ListProductRequest.cc
+	src/model/ListProductResult.cc
+	src/model/ListProductCatalogRequest.cc
+	src/model/ListProductCatalogResult.cc
 	src/model/ModifyChatappTemplateRequest.cc
 	src/model/ModifyChatappTemplateResult.cc
 	src/model/ModifyPhoneBusinessProfileRequest.cc

+ 72 - 0
cams/include/alibabacloud/cams/CamsClient.h

@@ -22,6 +22,8 @@
 #include <alibabacloud/core/EndpointProvider.h>
 #include <alibabacloud/core/RpcServiceClient.h>
 #include "CamsExport.h"
+#include "model/AddChatappPhoneNumberRequest.h"
+#include "model/AddChatappPhoneNumberResult.h"
 #include "model/BeeBotAssociateRequest.h"
 #include "model/BeeBotAssociateResult.h"
 #include "model/BeeBotChatRequest.h"
@@ -34,6 +36,8 @@
 #include "model/ChatappMigrationRegisterResult.h"
 #include "model/ChatappMigrationVerifiedRequest.h"
 #include "model/ChatappMigrationVerifiedResult.h"
+#include "model/ChatappPhoneNumberDeregisterRequest.h"
+#include "model/ChatappPhoneNumberDeregisterResult.h"
 #include "model/ChatappPhoneNumberRegisterRequest.h"
 #include "model/ChatappPhoneNumberRegisterResult.h"
 #include "model/ChatappSyncPhoneNumberRequest.h"
@@ -46,8 +50,14 @@
 #include "model/CreateChatappTemplateResult.h"
 #include "model/DeleteChatappTemplateRequest.h"
 #include "model/DeleteChatappTemplateResult.h"
+#include "model/EnableWhatsappROIMetricRequest.h"
+#include "model/EnableWhatsappROIMetricResult.h"
+#include "model/GetChatappPhoneNumberMetricRequest.h"
+#include "model/GetChatappPhoneNumberMetricResult.h"
 #include "model/GetChatappTemplateDetailRequest.h"
 #include "model/GetChatappTemplateDetailResult.h"
+#include "model/GetChatappTemplateMetricRequest.h"
+#include "model/GetChatappTemplateMetricResult.h"
 #include "model/GetChatappUploadAuthorizationRequest.h"
 #include "model/GetChatappUploadAuthorizationResult.h"
 #include "model/GetChatappVerifyCodeRequest.h"
@@ -56,10 +66,18 @@
 #include "model/GetMigrationVerifyCodeResult.h"
 #include "model/GetPhoneNumberVerificationStatusRequest.h"
 #include "model/GetPhoneNumberVerificationStatusResult.h"
+#include "model/GetPreValidatePhoneIdRequest.h"
+#include "model/GetPreValidatePhoneIdResult.h"
+#include "model/GetWhatsappConnectionCatalogRequest.h"
+#include "model/GetWhatsappConnectionCatalogResult.h"
 #include "model/IsvGetAppIdRequest.h"
 #include "model/IsvGetAppIdResult.h"
 #include "model/ListChatappTemplateRequest.h"
 #include "model/ListChatappTemplateResult.h"
+#include "model/ListProductRequest.h"
+#include "model/ListProductResult.h"
+#include "model/ListProductCatalogRequest.h"
+#include "model/ListProductCatalogResult.h"
 #include "model/ModifyChatappTemplateRequest.h"
 #include "model/ModifyChatappTemplateResult.h"
 #include "model/ModifyPhoneBusinessProfileRequest.h"
@@ -91,6 +109,9 @@ namespace AlibabaCloud
 		class ALIBABACLOUD_CAMS_EXPORT CamsClient : public RpcServiceClient
 		{
 		public:
+			typedef Outcome<Error, Model::AddChatappPhoneNumberResult> AddChatappPhoneNumberOutcome;
+			typedef std::future<AddChatappPhoneNumberOutcome> AddChatappPhoneNumberOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::AddChatappPhoneNumberRequest&, const AddChatappPhoneNumberOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddChatappPhoneNumberAsyncHandler;
 			typedef Outcome<Error, Model::BeeBotAssociateResult> BeeBotAssociateOutcome;
 			typedef std::future<BeeBotAssociateOutcome> BeeBotAssociateOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::BeeBotAssociateRequest&, const BeeBotAssociateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> BeeBotAssociateAsyncHandler;
@@ -109,6 +130,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ChatappMigrationVerifiedResult> ChatappMigrationVerifiedOutcome;
 			typedef std::future<ChatappMigrationVerifiedOutcome> ChatappMigrationVerifiedOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::ChatappMigrationVerifiedRequest&, const ChatappMigrationVerifiedOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ChatappMigrationVerifiedAsyncHandler;
+			typedef Outcome<Error, Model::ChatappPhoneNumberDeregisterResult> ChatappPhoneNumberDeregisterOutcome;
+			typedef std::future<ChatappPhoneNumberDeregisterOutcome> ChatappPhoneNumberDeregisterOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::ChatappPhoneNumberDeregisterRequest&, const ChatappPhoneNumberDeregisterOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ChatappPhoneNumberDeregisterAsyncHandler;
 			typedef Outcome<Error, Model::ChatappPhoneNumberRegisterResult> ChatappPhoneNumberRegisterOutcome;
 			typedef std::future<ChatappPhoneNumberRegisterOutcome> ChatappPhoneNumberRegisterOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::ChatappPhoneNumberRegisterRequest&, const ChatappPhoneNumberRegisterOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ChatappPhoneNumberRegisterAsyncHandler;
@@ -127,9 +151,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteChatappTemplateResult> DeleteChatappTemplateOutcome;
 			typedef std::future<DeleteChatappTemplateOutcome> DeleteChatappTemplateOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::DeleteChatappTemplateRequest&, const DeleteChatappTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteChatappTemplateAsyncHandler;
+			typedef Outcome<Error, Model::EnableWhatsappROIMetricResult> EnableWhatsappROIMetricOutcome;
+			typedef std::future<EnableWhatsappROIMetricOutcome> EnableWhatsappROIMetricOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::EnableWhatsappROIMetricRequest&, const EnableWhatsappROIMetricOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> EnableWhatsappROIMetricAsyncHandler;
+			typedef Outcome<Error, Model::GetChatappPhoneNumberMetricResult> GetChatappPhoneNumberMetricOutcome;
+			typedef std::future<GetChatappPhoneNumberMetricOutcome> GetChatappPhoneNumberMetricOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::GetChatappPhoneNumberMetricRequest&, const GetChatappPhoneNumberMetricOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetChatappPhoneNumberMetricAsyncHandler;
 			typedef Outcome<Error, Model::GetChatappTemplateDetailResult> GetChatappTemplateDetailOutcome;
 			typedef std::future<GetChatappTemplateDetailOutcome> GetChatappTemplateDetailOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::GetChatappTemplateDetailRequest&, const GetChatappTemplateDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetChatappTemplateDetailAsyncHandler;
+			typedef Outcome<Error, Model::GetChatappTemplateMetricResult> GetChatappTemplateMetricOutcome;
+			typedef std::future<GetChatappTemplateMetricOutcome> GetChatappTemplateMetricOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::GetChatappTemplateMetricRequest&, const GetChatappTemplateMetricOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetChatappTemplateMetricAsyncHandler;
 			typedef Outcome<Error, Model::GetChatappUploadAuthorizationResult> GetChatappUploadAuthorizationOutcome;
 			typedef std::future<GetChatappUploadAuthorizationOutcome> GetChatappUploadAuthorizationOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::GetChatappUploadAuthorizationRequest&, const GetChatappUploadAuthorizationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetChatappUploadAuthorizationAsyncHandler;
@@ -142,12 +175,24 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetPhoneNumberVerificationStatusResult> GetPhoneNumberVerificationStatusOutcome;
 			typedef std::future<GetPhoneNumberVerificationStatusOutcome> GetPhoneNumberVerificationStatusOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::GetPhoneNumberVerificationStatusRequest&, const GetPhoneNumberVerificationStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetPhoneNumberVerificationStatusAsyncHandler;
+			typedef Outcome<Error, Model::GetPreValidatePhoneIdResult> GetPreValidatePhoneIdOutcome;
+			typedef std::future<GetPreValidatePhoneIdOutcome> GetPreValidatePhoneIdOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::GetPreValidatePhoneIdRequest&, const GetPreValidatePhoneIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetPreValidatePhoneIdAsyncHandler;
+			typedef Outcome<Error, Model::GetWhatsappConnectionCatalogResult> GetWhatsappConnectionCatalogOutcome;
+			typedef std::future<GetWhatsappConnectionCatalogOutcome> GetWhatsappConnectionCatalogOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::GetWhatsappConnectionCatalogRequest&, const GetWhatsappConnectionCatalogOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetWhatsappConnectionCatalogAsyncHandler;
 			typedef Outcome<Error, Model::IsvGetAppIdResult> IsvGetAppIdOutcome;
 			typedef std::future<IsvGetAppIdOutcome> IsvGetAppIdOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::IsvGetAppIdRequest&, const IsvGetAppIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> IsvGetAppIdAsyncHandler;
 			typedef Outcome<Error, Model::ListChatappTemplateResult> ListChatappTemplateOutcome;
 			typedef std::future<ListChatappTemplateOutcome> ListChatappTemplateOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::ListChatappTemplateRequest&, const ListChatappTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListChatappTemplateAsyncHandler;
+			typedef Outcome<Error, Model::ListProductResult> ListProductOutcome;
+			typedef std::future<ListProductOutcome> ListProductOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::ListProductRequest&, const ListProductOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListProductAsyncHandler;
+			typedef Outcome<Error, Model::ListProductCatalogResult> ListProductCatalogOutcome;
+			typedef std::future<ListProductCatalogOutcome> ListProductCatalogOutcomeCallable;
+			typedef std::function<void(const CamsClient*, const Model::ListProductCatalogRequest&, const ListProductCatalogOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListProductCatalogAsyncHandler;
 			typedef Outcome<Error, Model::ModifyChatappTemplateResult> ModifyChatappTemplateOutcome;
 			typedef std::future<ModifyChatappTemplateOutcome> ModifyChatappTemplateOutcomeCallable;
 			typedef std::function<void(const CamsClient*, const Model::ModifyChatappTemplateRequest&, const ModifyChatappTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyChatappTemplateAsyncHandler;
@@ -186,6 +231,9 @@ namespace AlibabaCloud
 			CamsClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
 			CamsClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
 			~CamsClient();
+			AddChatappPhoneNumberOutcome addChatappPhoneNumber(const Model::AddChatappPhoneNumberRequest &request)const;
+			void addChatappPhoneNumberAsync(const Model::AddChatappPhoneNumberRequest& request, const AddChatappPhoneNumberAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddChatappPhoneNumberOutcomeCallable addChatappPhoneNumberCallable(const Model::AddChatappPhoneNumberRequest& request) const;
 			BeeBotAssociateOutcome beeBotAssociate(const Model::BeeBotAssociateRequest &request)const;
 			void beeBotAssociateAsync(const Model::BeeBotAssociateRequest& request, const BeeBotAssociateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			BeeBotAssociateOutcomeCallable beeBotAssociateCallable(const Model::BeeBotAssociateRequest& request) const;
@@ -204,6 +252,9 @@ namespace AlibabaCloud
 			ChatappMigrationVerifiedOutcome chatappMigrationVerified(const Model::ChatappMigrationVerifiedRequest &request)const;
 			void chatappMigrationVerifiedAsync(const Model::ChatappMigrationVerifiedRequest& request, const ChatappMigrationVerifiedAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ChatappMigrationVerifiedOutcomeCallable chatappMigrationVerifiedCallable(const Model::ChatappMigrationVerifiedRequest& request) const;
+			ChatappPhoneNumberDeregisterOutcome chatappPhoneNumberDeregister(const Model::ChatappPhoneNumberDeregisterRequest &request)const;
+			void chatappPhoneNumberDeregisterAsync(const Model::ChatappPhoneNumberDeregisterRequest& request, const ChatappPhoneNumberDeregisterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ChatappPhoneNumberDeregisterOutcomeCallable chatappPhoneNumberDeregisterCallable(const Model::ChatappPhoneNumberDeregisterRequest& request) const;
 			ChatappPhoneNumberRegisterOutcome chatappPhoneNumberRegister(const Model::ChatappPhoneNumberRegisterRequest &request)const;
 			void chatappPhoneNumberRegisterAsync(const Model::ChatappPhoneNumberRegisterRequest& request, const ChatappPhoneNumberRegisterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ChatappPhoneNumberRegisterOutcomeCallable chatappPhoneNumberRegisterCallable(const Model::ChatappPhoneNumberRegisterRequest& request) const;
@@ -222,9 +273,18 @@ namespace AlibabaCloud
 			DeleteChatappTemplateOutcome deleteChatappTemplate(const Model::DeleteChatappTemplateRequest &request)const;
 			void deleteChatappTemplateAsync(const Model::DeleteChatappTemplateRequest& request, const DeleteChatappTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteChatappTemplateOutcomeCallable deleteChatappTemplateCallable(const Model::DeleteChatappTemplateRequest& request) const;
+			EnableWhatsappROIMetricOutcome enableWhatsappROIMetric(const Model::EnableWhatsappROIMetricRequest &request)const;
+			void enableWhatsappROIMetricAsync(const Model::EnableWhatsappROIMetricRequest& request, const EnableWhatsappROIMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			EnableWhatsappROIMetricOutcomeCallable enableWhatsappROIMetricCallable(const Model::EnableWhatsappROIMetricRequest& request) const;
+			GetChatappPhoneNumberMetricOutcome getChatappPhoneNumberMetric(const Model::GetChatappPhoneNumberMetricRequest &request)const;
+			void getChatappPhoneNumberMetricAsync(const Model::GetChatappPhoneNumberMetricRequest& request, const GetChatappPhoneNumberMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetChatappPhoneNumberMetricOutcomeCallable getChatappPhoneNumberMetricCallable(const Model::GetChatappPhoneNumberMetricRequest& request) const;
 			GetChatappTemplateDetailOutcome getChatappTemplateDetail(const Model::GetChatappTemplateDetailRequest &request)const;
 			void getChatappTemplateDetailAsync(const Model::GetChatappTemplateDetailRequest& request, const GetChatappTemplateDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetChatappTemplateDetailOutcomeCallable getChatappTemplateDetailCallable(const Model::GetChatappTemplateDetailRequest& request) const;
+			GetChatappTemplateMetricOutcome getChatappTemplateMetric(const Model::GetChatappTemplateMetricRequest &request)const;
+			void getChatappTemplateMetricAsync(const Model::GetChatappTemplateMetricRequest& request, const GetChatappTemplateMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetChatappTemplateMetricOutcomeCallable getChatappTemplateMetricCallable(const Model::GetChatappTemplateMetricRequest& request) const;
 			GetChatappUploadAuthorizationOutcome getChatappUploadAuthorization(const Model::GetChatappUploadAuthorizationRequest &request)const;
 			void getChatappUploadAuthorizationAsync(const Model::GetChatappUploadAuthorizationRequest& request, const GetChatappUploadAuthorizationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetChatappUploadAuthorizationOutcomeCallable getChatappUploadAuthorizationCallable(const Model::GetChatappUploadAuthorizationRequest& request) const;
@@ -237,12 +297,24 @@ namespace AlibabaCloud
 			GetPhoneNumberVerificationStatusOutcome getPhoneNumberVerificationStatus(const Model::GetPhoneNumberVerificationStatusRequest &request)const;
 			void getPhoneNumberVerificationStatusAsync(const Model::GetPhoneNumberVerificationStatusRequest& request, const GetPhoneNumberVerificationStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetPhoneNumberVerificationStatusOutcomeCallable getPhoneNumberVerificationStatusCallable(const Model::GetPhoneNumberVerificationStatusRequest& request) const;
+			GetPreValidatePhoneIdOutcome getPreValidatePhoneId(const Model::GetPreValidatePhoneIdRequest &request)const;
+			void getPreValidatePhoneIdAsync(const Model::GetPreValidatePhoneIdRequest& request, const GetPreValidatePhoneIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetPreValidatePhoneIdOutcomeCallable getPreValidatePhoneIdCallable(const Model::GetPreValidatePhoneIdRequest& request) const;
+			GetWhatsappConnectionCatalogOutcome getWhatsappConnectionCatalog(const Model::GetWhatsappConnectionCatalogRequest &request)const;
+			void getWhatsappConnectionCatalogAsync(const Model::GetWhatsappConnectionCatalogRequest& request, const GetWhatsappConnectionCatalogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetWhatsappConnectionCatalogOutcomeCallable getWhatsappConnectionCatalogCallable(const Model::GetWhatsappConnectionCatalogRequest& request) const;
 			IsvGetAppIdOutcome isvGetAppId(const Model::IsvGetAppIdRequest &request)const;
 			void isvGetAppIdAsync(const Model::IsvGetAppIdRequest& request, const IsvGetAppIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			IsvGetAppIdOutcomeCallable isvGetAppIdCallable(const Model::IsvGetAppIdRequest& request) const;
 			ListChatappTemplateOutcome listChatappTemplate(const Model::ListChatappTemplateRequest &request)const;
 			void listChatappTemplateAsync(const Model::ListChatappTemplateRequest& request, const ListChatappTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListChatappTemplateOutcomeCallable listChatappTemplateCallable(const Model::ListChatappTemplateRequest& request) const;
+			ListProductOutcome listProduct(const Model::ListProductRequest &request)const;
+			void listProductAsync(const Model::ListProductRequest& request, const ListProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListProductOutcomeCallable listProductCallable(const Model::ListProductRequest& request) const;
+			ListProductCatalogOutcome listProductCatalog(const Model::ListProductCatalogRequest &request)const;
+			void listProductCatalogAsync(const Model::ListProductCatalogRequest& request, const ListProductCatalogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListProductCatalogOutcomeCallable listProductCatalogCallable(const Model::ListProductCatalogRequest& request) const;
 			ModifyChatappTemplateOutcome modifyChatappTemplate(const Model::ModifyChatappTemplateRequest &request)const;
 			void modifyChatappTemplateAsync(const Model::ModifyChatappTemplateRequest& request, const ModifyChatappTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyChatappTemplateOutcomeCallable modifyChatappTemplateCallable(const Model::ModifyChatappTemplateRequest& request) const;

+ 60 - 0
cams/include/alibabacloud/cams/model/AddChatappPhoneNumberRequest.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_CAMS_MODEL_ADDCHATAPPPHONENUMBERREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_ADDCHATAPPPHONENUMBERREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT AddChatappPhoneNumberRequest : public RpcServiceRequest {
+public:
+	AddChatappPhoneNumberRequest();
+	~AddChatappPhoneNumberRequest();
+	std::string getPreValidateId() const;
+	void setPreValidateId(const std::string &preValidateId);
+	std::string getVerifiedName() const;
+	void setVerifiedName(const std::string &verifiedName);
+	std::string getPhoneNumber() const;
+	void setPhoneNumber(const std::string &phoneNumber);
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	std::string getCc() const;
+	void setCc(const std::string &cc);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+
+private:
+	std::string preValidateId_;
+	std::string verifiedName_;
+	std::string phoneNumber_;
+	std::string apiCode_;
+	std::string cc_;
+	std::string prodCode_;
+	std::string custSpaceId_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_ADDCHATAPPPHONENUMBERREQUEST_H_

+ 55 - 0
cams/include/alibabacloud/cams/model/AddChatappPhoneNumberResult.h

@@ -0,0 +1,55 @@
+/*
+ * 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_CAMS_MODEL_ADDCHATAPPPHONENUMBERRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_ADDCHATAPPPHONENUMBERRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT AddChatappPhoneNumberResult : public ServiceResult
+			{
+			public:
+
+
+				AddChatappPhoneNumberResult();
+				explicit AddChatappPhoneNumberResult(const std::string &payload);
+				~AddChatappPhoneNumberResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_ADDCHATAPPPHONENUMBERRESULT_H_

+ 2 - 0
cams/include/alibabacloud/cams/model/BeeBotAssociateResult.h

@@ -48,6 +48,7 @@ namespace AlibabaCloud
 				BeeBotAssociateResult();
 				explicit BeeBotAssociateResult(const std::string &payload);
 				~BeeBotAssociateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -55,6 +56,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/BeeBotChatResult.h

@@ -97,6 +97,7 @@ namespace AlibabaCloud
 				BeeBotChatResult();
 				explicit BeeBotChatResult(const std::string &payload);
 				~BeeBotChatResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -104,6 +105,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappBindWabaResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				ChatappBindWabaResult();
 				explicit ChatappBindWabaResult(const std::string &payload);
 				~ChatappBindWabaResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -49,6 +50,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappEmbedSignUpResult.h

@@ -45,6 +45,7 @@ namespace AlibabaCloud
 				ChatappEmbedSignUpResult();
 				explicit ChatappEmbedSignUpResult(const std::string &payload);
 				~ChatappEmbedSignUpResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::vector<Waba列表> getWabas()const;
 				std::string getCode()const;
@@ -52,6 +53,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::vector<Waba列表> wabas_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappMigrationRegisterResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				ChatappMigrationRegisterResult();
 				explicit ChatappMigrationRegisterResult(const std::string &payload);
 				~ChatappMigrationRegisterResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappMigrationVerifiedResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				ChatappMigrationVerifiedResult();
 				explicit ChatappMigrationVerifiedResult(const std::string &payload);
 				~ChatappMigrationVerifiedResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -49,6 +50,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 51 - 0
cams/include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterRequest.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_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT ChatappPhoneNumberDeregisterRequest : public RpcServiceRequest {
+public:
+	ChatappPhoneNumberDeregisterRequest();
+	~ChatappPhoneNumberDeregisterRequest();
+	std::string getPhoneNumber() const;
+	void setPhoneNumber(const std::string &phoneNumber);
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+
+private:
+	std::string phoneNumber_;
+	std::string apiCode_;
+	std::string prodCode_;
+	std::string custSpaceId_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERREQUEST_H_

+ 55 - 0
cams/include/alibabacloud/cams/model/ChatappPhoneNumberDeregisterResult.h

@@ -0,0 +1,55 @@
+/*
+ * 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_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT ChatappPhoneNumberDeregisterResult : public ServiceResult
+			{
+			public:
+
+
+				ChatappPhoneNumberDeregisterResult();
+				explicit ChatappPhoneNumberDeregisterResult(const std::string &payload);
+				~ChatappPhoneNumberDeregisterResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_CHATAPPPHONENUMBERDEREGISTERRESULT_H_

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappPhoneNumberRegisterResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				ChatappPhoneNumberRegisterResult();
 				explicit ChatappPhoneNumberRegisterResult(const std::string &payload);
 				~ChatappPhoneNumberRegisterResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappSyncPhoneNumberResult.h

@@ -53,6 +53,7 @@ namespace AlibabaCloud
 				explicit ChatappSyncPhoneNumberResult(const std::string &payload);
 				~ChatappSyncPhoneNumberResult();
 				std::vector<PhoneNumbersItem> getPhoneNumbers()const;
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
@@ -60,6 +61,7 @@ namespace AlibabaCloud
 				void parse(const std::string &payload);
 			private:
 				std::vector<PhoneNumbersItem> phoneNumbers_;
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/ChatappVerifyAndRegisterResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				ChatappVerifyAndRegisterResult();
 				explicit ChatappVerifyAndRegisterResult(const std::string &payload);
 				~ChatappVerifyAndRegisterResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/CreateChatappMigrationInitiateResult.h

@@ -43,6 +43,7 @@ namespace AlibabaCloud
 				CreateChatappMigrationInitiateResult();
 				explicit CreateChatappMigrationInitiateResult(const std::string &payload);
 				~CreateChatappMigrationInitiateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -50,6 +51,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 3 - 0
cams/include/alibabacloud/cams/model/CreateChatappTemplateRequest.h

@@ -80,6 +80,8 @@ public:
 	void setAllowCategoryChange(bool allowCategoryChange);
 	std::string getCategory() const;
 	void setCategory(const std::string &category);
+	int getMessageSendTtlSeconds() const;
+	void setMessageSendTtlSeconds(int messageSendTtlSeconds);
 
 private:
 	std::vector<Components> components_;
@@ -94,6 +96,7 @@ private:
 	std::string name_;
 	bool allowCategoryChange_;
 	std::string category_;
+	int messageSendTtlSeconds_;
 };
 } // namespace Model
 } // namespace Cams

+ 2 - 0
cams/include/alibabacloud/cams/model/CreateChatappTemplateResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				CreateChatappTemplateResult();
 				explicit CreateChatappTemplateResult(const std::string &payload);
 				~CreateChatappTemplateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -49,6 +50,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/DeleteChatappTemplateResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				DeleteChatappTemplateResult();
 				explicit DeleteChatappTemplateResult(const std::string &payload);
 				~DeleteChatappTemplateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 51 - 0
cams/include/alibabacloud/cams/model/EnableWhatsappROIMetricRequest.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_CAMS_MODEL_ENABLEWHATSAPPROIMETRICREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_ENABLEWHATSAPPROIMETRICREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT EnableWhatsappROIMetricRequest : public RpcServiceRequest {
+public:
+	EnableWhatsappROIMetricRequest();
+	~EnableWhatsappROIMetricRequest();
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	std::string getIsvCode() const;
+	void setIsvCode(const std::string &isvCode);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+
+private:
+	std::string apiCode_;
+	std::string isvCode_;
+	std::string prodCode_;
+	std::string custSpaceId_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_ENABLEWHATSAPPROIMETRICREQUEST_H_

+ 55 - 0
cams/include/alibabacloud/cams/model/EnableWhatsappROIMetricResult.h

@@ -0,0 +1,55 @@
+/*
+ * 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_CAMS_MODEL_ENABLEWHATSAPPROIMETRICRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_ENABLEWHATSAPPROIMETRICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT EnableWhatsappROIMetricResult : public ServiceResult
+			{
+			public:
+
+
+				EnableWhatsappROIMetricResult();
+				explicit EnableWhatsappROIMetricResult(const std::string &payload);
+				~EnableWhatsappROIMetricResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_ENABLEWHATSAPPROIMETRICRESULT_H_

+ 63 - 0
cams/include/alibabacloud/cams/model/GetChatappPhoneNumberMetricRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT GetChatappPhoneNumberMetricRequest : public RpcServiceRequest {
+public:
+	GetChatappPhoneNumberMetricRequest();
+	~GetChatappPhoneNumberMetricRequest();
+	std::string getPhoneNumber() const;
+	void setPhoneNumber(const std::string &phoneNumber);
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	long getEnd() const;
+	void setEnd(long end);
+	std::string getIsvCode() const;
+	void setIsvCode(const std::string &isvCode);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+	long getStart() const;
+	void setStart(long start);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+	std::string getGranularity() const;
+	void setGranularity(const std::string &granularity);
+
+private:
+	std::string phoneNumber_;
+	std::string apiCode_;
+	long end_;
+	std::string isvCode_;
+	std::string prodCode_;
+	long start_;
+	std::string custSpaceId_;
+	std::string granularity_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICREQUEST_H_

+ 66 - 0
cams/include/alibabacloud/cams/model/GetChatappPhoneNumberMetricResult.h

@@ -0,0 +1,66 @@
+/*
+ * 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_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT GetChatappPhoneNumberMetricResult : public ServiceResult
+			{
+			public:
+				struct 返回数据
+				{
+					int deliveredCount;
+					long start;
+					std::string phoneNumber;
+					long end;
+					std::string granularity;
+					int sentCount;
+				};
+
+
+				GetChatappPhoneNumberMetricResult();
+				explicit GetChatappPhoneNumberMetricResult(const std::string &payload);
+				~GetChatappPhoneNumberMetricResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::vector<返回数据> getData()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::vector<返回数据> data_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETCHATAPPPHONENUMBERMETRICRESULT_H_

+ 5 - 0
cams/include/alibabacloud/cams/model/GetChatappTemplateDetailResult.h

@@ -78,9 +78,12 @@ namespace AlibabaCloud
 					std::string templateCode;
 					std::string category;
 					std::string auditStatus;
+					int messageSendTtlSeconds;
 					std::string language;
+					std::string qualityScore;
 					std::string example;
 					std::string templateType;
+					std::string reason;
 					std::string name;
 				};
 
@@ -88,6 +91,7 @@ namespace AlibabaCloud
 				GetChatappTemplateDetailResult();
 				explicit GetChatappTemplateDetailResult(const std::string &payload);
 				~GetChatappTemplateDetailResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -95,6 +99,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 69 - 0
cams/include/alibabacloud/cams/model/GetChatappTemplateMetricRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT GetChatappTemplateMetricRequest : public RpcServiceRequest {
+public:
+	GetChatappTemplateMetricRequest();
+	~GetChatappTemplateMetricRequest();
+	std::string getLanguage() const;
+	void setLanguage(const std::string &language);
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	std::string getTemplateType() const;
+	void setTemplateType(const std::string &templateType);
+	long getEnd() const;
+	void setEnd(long end);
+	std::string getIsvCode() const;
+	void setIsvCode(const std::string &isvCode);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+	long getStart() const;
+	void setStart(long start);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+	std::string getGranularity() const;
+	void setGranularity(const std::string &granularity);
+	std::string getTemplateCode() const;
+	void setTemplateCode(const std::string &templateCode);
+
+private:
+	std::string language_;
+	std::string apiCode_;
+	std::string templateType_;
+	long end_;
+	std::string isvCode_;
+	std::string prodCode_;
+	long start_;
+	std::string custSpaceId_;
+	std::string granularity_;
+	std::string templateCode_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICREQUEST_H_

+ 74 - 0
cams/include/alibabacloud/cams/model/GetChatappTemplateMetricResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT GetChatappTemplateMetricResult : public ServiceResult
+			{
+			public:
+				struct 返回数据
+				{
+					struct 按钮点击数据
+					{
+						std::string type;
+						std::string buttonContent;
+						int count;
+					};
+					std::string templateCode;
+					int deliveredCount;
+					std::string language;
+					std::vector<返回数据::按钮点击数据> cliented;
+					long start;
+					long end;
+					int sentCount;
+					int readCount;
+				};
+
+
+				GetChatappTemplateMetricResult();
+				explicit GetChatappTemplateMetricResult(const std::string &payload);
+				~GetChatappTemplateMetricResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::vector<返回数据> getData()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::vector<返回数据> data_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETCHATAPPTEMPLATEMETRICRESULT_H_

+ 2 - 0
cams/include/alibabacloud/cams/model/GetChatappUploadAuthorizationResult.h

@@ -47,6 +47,7 @@ namespace AlibabaCloud
 				GetChatappUploadAuthorizationResult();
 				explicit GetChatappUploadAuthorizationResult(const std::string &payload);
 				~GetChatappUploadAuthorizationResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -54,6 +55,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/GetChatappVerifyCodeResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				GetChatappVerifyCodeResult();
 				explicit GetChatappVerifyCodeResult(const std::string &payload);
 				~GetChatappVerifyCodeResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/GetMigrationVerifyCodeResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				GetMigrationVerifyCodeResult();
 				explicit GetMigrationVerifyCodeResult(const std::string &payload);
 				~GetMigrationVerifyCodeResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -49,6 +50,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 51 - 0
cams/include/alibabacloud/cams/model/GetPreValidatePhoneIdRequest.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_CAMS_MODEL_GETPREVALIDATEPHONEIDREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETPREVALIDATEPHONEIDREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT GetPreValidatePhoneIdRequest : public RpcServiceRequest {
+public:
+	GetPreValidatePhoneIdRequest();
+	~GetPreValidatePhoneIdRequest();
+	std::string getPhoneNumber() const;
+	void setPhoneNumber(const std::string &phoneNumber);
+	std::string getVerifyCode() const;
+	void setVerifyCode(const std::string &verifyCode);
+	std::string getApiCode() const;
+	void setApiCode(const std::string &apiCode);
+	std::string getProdCode() const;
+	void setProdCode(const std::string &prodCode);
+
+private:
+	std::string phoneNumber_;
+	std::string verifyCode_;
+	std::string apiCode_;
+	std::string prodCode_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETPREVALIDATEPHONEIDREQUEST_H_

+ 60 - 0
cams/include/alibabacloud/cams/model/GetPreValidatePhoneIdResult.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_CAMS_MODEL_GETPREVALIDATEPHONEIDRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETPREVALIDATEPHONEIDRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT GetPreValidatePhoneIdResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string phoneNumber;
+					std::string phoneNumberId;
+				};
+
+
+				GetPreValidatePhoneIdResult();
+				explicit GetPreValidatePhoneIdResult(const std::string &payload);
+				~GetPreValidatePhoneIdResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETPREVALIDATEPHONEIDRESULT_H_

+ 66 - 0
cams/include/alibabacloud/cams/model/GetWhatsappConnectionCatalogRequest.h

@@ -0,0 +1,66 @@
+/*
+ * 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_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT GetWhatsappConnectionCatalogRequest : public RpcServiceRequest {
+public:
+	GetWhatsappConnectionCatalogRequest();
+	~GetWhatsappConnectionCatalogRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getExtendFunction() const;
+	void setExtendFunction(const std::string &extendFunction);
+	std::string getAccessKeyId() const;
+	void setAccessKeyId(const std::string &accessKeyId);
+	std::string getMetaVersion() const;
+	void setMetaVersion(const std::string &metaVersion);
+	std::string getRouteName() const;
+	void setRouteName(const std::string &routeName);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getWabaId() const;
+	void setWabaId(const std::string &wabaId);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+
+private:
+	long resourceOwnerId_;
+	std::string extendFunction_;
+	std::string accessKeyId_;
+	std::string metaVersion_;
+	std::string routeName_;
+	std::string resourceOwnerAccount_;
+	long ownerId_;
+	std::string wabaId_;
+	std::string custSpaceId_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGREQUEST_H_

+ 59 - 0
cams/include/alibabacloud/cams/model/GetWhatsappConnectionCatalogResult.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_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT GetWhatsappConnectionCatalogResult : public ServiceResult
+			{
+			public:
+
+
+				GetWhatsappConnectionCatalogResult();
+				explicit GetWhatsappConnectionCatalogResult(const std::string &payload);
+				~GetWhatsappConnectionCatalogResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				std::string getModel()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				std::string model_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_GETWHATSAPPCONNECTIONCATALOGRESULT_H_

+ 2 - 0
cams/include/alibabacloud/cams/model/IsvGetAppIdResult.h

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 				IsvGetAppIdResult();
 				explicit IsvGetAppIdResult(const std::string &payload);
 				~IsvGetAppIdResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getAppId()const;
 				std::string getCode()const;
@@ -44,6 +45,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string appId_;
 				std::string code_;

+ 3 - 0
cams/include/alibabacloud/cams/model/ListChatappTemplateResult.h

@@ -40,12 +40,14 @@ namespace AlibabaCloud
 					std::string language;
 					std::string templateName;
 					std::string templateType;
+					std::string reason;
 				};
 
 
 				ListChatappTemplateResult();
 				explicit ListChatappTemplateResult(const std::string &payload);
 				~ListChatappTemplateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::vector<_Template> getListTemplate()const;
 				int getTotal()const;
@@ -54,6 +56,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::vector<_Template> listTemplate_;
 				int total_;

+ 78 - 0
cams/include/alibabacloud/cams/model/ListProductCatalogRequest.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_CAMS_MODEL_LISTPRODUCTCATALOGREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTCATALOGREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT ListProductCatalogRequest : public RpcServiceRequest {
+public:
+	ListProductCatalogRequest();
+	~ListProductCatalogRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getBefore() const;
+	void setBefore(const std::string &before);
+	std::string getExtendFunction() const;
+	void setExtendFunction(const std::string &extendFunction);
+	std::string getAccessKeyId() const;
+	void setAccessKeyId(const std::string &accessKeyId);
+	std::string getMetaVersion() const;
+	void setMetaVersion(const std::string &metaVersion);
+	long getLimit() const;
+	void setLimit(long limit);
+	std::string getAfter() const;
+	void setAfter(const std::string &after);
+	std::string getRouteName() const;
+	void setRouteName(const std::string &routeName);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	long getBusinessId() const;
+	void setBusinessId(long businessId);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+	std::string getFields() const;
+	void setFields(const std::string &fields);
+
+private:
+	long resourceOwnerId_;
+	std::string before_;
+	std::string extendFunction_;
+	std::string accessKeyId_;
+	std::string metaVersion_;
+	long limit_;
+	std::string after_;
+	std::string routeName_;
+	std::string resourceOwnerAccount_;
+	long businessId_;
+	long ownerId_;
+	std::string custSpaceId_;
+	std::string fields_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTCATALOGREQUEST_H_

+ 73 - 0
cams/include/alibabacloud/cams/model/ListProductCatalogResult.h

@@ -0,0 +1,73 @@
+/*
+ * 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_CAMS_MODEL_LISTPRODUCTCATALOGRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTCATALOGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT ListProductCatalogResult : public ServiceResult
+			{
+			public:
+				struct Model
+				{
+					struct Paging
+					{
+						struct Cursors
+						{
+							std::string before;
+							std::string after;
+						};
+						Cursors cursors;
+					};
+					Paging paging;
+					std::vector<std::string> data;
+				};
+
+
+				ListProductCatalogResult();
+				explicit ListProductCatalogResult(const std::string &payload);
+				~ListProductCatalogResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				Model getModel()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				Model model_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTCATALOGRESULT_H_

+ 81 - 0
cams/include/alibabacloud/cams/model/ListProductRequest.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_CAMS_MODEL_LISTPRODUCTREQUEST_H_
+#define ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTREQUEST_H_
+
+#include <alibabacloud/cams/CamsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Cams {
+namespace Model {
+class ALIBABACLOUD_CAMS_EXPORT ListProductRequest : public RpcServiceRequest {
+public:
+	ListProductRequest();
+	~ListProductRequest();
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getBefore() const;
+	void setBefore(const std::string &before);
+	std::string getExtendFunction() const;
+	void setExtendFunction(const std::string &extendFunction);
+	std::string getAccessKeyId() const;
+	void setAccessKeyId(const std::string &accessKeyId);
+	std::string getMetaVersion() const;
+	void setMetaVersion(const std::string &metaVersion);
+	long getLimit() const;
+	void setLimit(long limit);
+	std::string getAfter() const;
+	void setAfter(const std::string &after);
+	std::string getRouteName() const;
+	void setRouteName(const std::string &routeName);
+	std::string getResourceOwnerAccount() const;
+	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
+	long getOwnerId() const;
+	void setOwnerId(long ownerId);
+	std::string getWabaId() const;
+	void setWabaId(const std::string &wabaId);
+	std::string getCatalogId() const;
+	void setCatalogId(const std::string &catalogId);
+	std::string getCustSpaceId() const;
+	void setCustSpaceId(const std::string &custSpaceId);
+	std::string getFields() const;
+	void setFields(const std::string &fields);
+
+private:
+	long resourceOwnerId_;
+	std::string before_;
+	std::string extendFunction_;
+	std::string accessKeyId_;
+	std::string metaVersion_;
+	long limit_;
+	std::string after_;
+	std::string routeName_;
+	std::string resourceOwnerAccount_;
+	long ownerId_;
+	std::string wabaId_;
+	std::string catalogId_;
+	std::string custSpaceId_;
+	std::string fields_;
+};
+} // namespace Model
+} // namespace Cams
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTREQUEST_H_

+ 73 - 0
cams/include/alibabacloud/cams/model/ListProductResult.h

@@ -0,0 +1,73 @@
+/*
+ * 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_CAMS_MODEL_LISTPRODUCTRESULT_H_
+#define ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cams/CamsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cams
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CAMS_EXPORT ListProductResult : public ServiceResult
+			{
+			public:
+				struct Model
+				{
+					struct Paging
+					{
+						struct Cursors
+						{
+							std::string before;
+							std::string after;
+						};
+						Cursors cursors;
+					};
+					Paging paging;
+					std::vector<std::string> data;
+				};
+
+
+				ListProductResult();
+				explicit ListProductResult(const std::string &payload);
+				~ListProductResult();
+				std::string getAccessDeniedDetail()const;
+				std::string getMessage()const;
+				Model getModel()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string accessDeniedDetail_;
+				std::string message_;
+				Model model_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CAMS_MODEL_LISTPRODUCTRESULT_H_

+ 3 - 0
cams/include/alibabacloud/cams/model/ModifyChatappTemplateRequest.h

@@ -76,6 +76,8 @@ public:
 	void setCustSpaceId(const std::string &custSpaceId);
 	std::string getCategory() const;
 	void setCategory(const std::string &category);
+	int getMessageSendTtlSeconds() const;
+	void setMessageSendTtlSeconds(int messageSendTtlSeconds);
 	std::string getTemplateCode() const;
 	void setTemplateCode(const std::string &templateCode);
 
@@ -90,6 +92,7 @@ private:
 	std::string prodCode_;
 	std::string custSpaceId_;
 	std::string category_;
+	int messageSendTtlSeconds_;
 	std::string templateCode_;
 };
 } // namespace Model

+ 2 - 0
cams/include/alibabacloud/cams/model/ModifyChatappTemplateResult.h

@@ -42,6 +42,7 @@ namespace AlibabaCloud
 				ModifyChatappTemplateResult();
 				explicit ModifyChatappTemplateResult(const std::string &payload);
 				~ModifyChatappTemplateResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -49,6 +50,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/ModifyPhoneBusinessProfileResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				ModifyPhoneBusinessProfileResult();
 				explicit ModifyPhoneBusinessProfileResult(const std::string &payload);
 				~ModifyPhoneBusinessProfileResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/QueryChatappBindWabaResult.h

@@ -45,6 +45,7 @@ namespace AlibabaCloud
 				QueryChatappBindWabaResult();
 				explicit QueryChatappBindWabaResult(const std::string &payload);
 				~QueryChatappBindWabaResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -52,6 +53,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/QueryChatappPhoneNumbersResult.h

@@ -53,6 +53,7 @@ namespace AlibabaCloud
 				explicit QueryChatappPhoneNumbersResult(const std::string &payload);
 				~QueryChatappPhoneNumbersResult();
 				std::vector<PhoneNumbersItem> getPhoneNumbers()const;
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
@@ -60,6 +61,7 @@ namespace AlibabaCloud
 				void parse(const std::string &payload);
 			private:
 				std::vector<PhoneNumbersItem> phoneNumbers_;
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/QueryPhoneBusinessProfileResult.h

@@ -46,6 +46,7 @@ namespace AlibabaCloud
 				QueryPhoneBusinessProfileResult();
 				explicit QueryPhoneBusinessProfileResult(const std::string &payload);
 				~QueryPhoneBusinessProfileResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -53,6 +54,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 2 - 0
cams/include/alibabacloud/cams/model/QueryWabaBusinessInfoResult.h

@@ -44,6 +44,7 @@ namespace AlibabaCloud
 				QueryWabaBusinessInfoResult();
 				explicit QueryWabaBusinessInfoResult(const std::string &payload);
 				~QueryWabaBusinessInfoResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				Data getData()const;
 				std::string getCode()const;
@@ -51,6 +52,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				Data data_;
 				std::string code_;

+ 14 - 0
cams/include/alibabacloud/cams/model/SendChatappMassMessageRequest.h

@@ -33,6 +33,20 @@ public:
 		std::map<std::string, std::string> templateParams;
 		std::string string;
 		std::vector<std::string> payload;
+		struct ProductAction {
+			std::string thumbnailProductRetailerId;
+			struct SectionsItem {
+				std::string title;
+				struct ProductItemsItem {
+					std::string productRetailerId;
+				};
+				ProductItemsItem productItemsItem;
+				std::vector<ProductItemsItem> productItems;
+			};
+			SectionsItem sectionsItem;
+			std::vector<SectionsItem> sections;
+		};
+		ProductAction productAction;
 	};
 	SendChatappMassMessageRequest();
 	~SendChatappMassMessageRequest();

+ 2 - 0
cams/include/alibabacloud/cams/model/SendChatappMassMessageResult.h

@@ -37,6 +37,7 @@ namespace AlibabaCloud
 				SendChatappMassMessageResult();
 				explicit SendChatappMassMessageResult(const std::string &payload);
 				~SendChatappMassMessageResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getGroupMessageId()const;
 				std::string getCode()const;
@@ -44,6 +45,7 @@ namespace AlibabaCloud
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string groupMessageId_;
 				std::string code_;

+ 16 - 0
cams/include/alibabacloud/cams/model/SendChatappMessageRequest.h

@@ -28,8 +28,23 @@ namespace Cams {
 namespace Model {
 class ALIBABACLOUD_CAMS_EXPORT SendChatappMessageRequest : public RpcServiceRequest {
 public:
+	struct ProductAction {
+		std::string thumbnailProductRetailerId;
+		struct SectionsItem {
+			std::string title;
+			struct ProductItemsItem {
+				std::string productRetailerId;
+			};
+			ProductItemsItem productItemsItem;
+			std::vector<ProductItemsItem> productItems;
+		};
+		SectionsItem sectionsItem;
+		std::vector<SectionsItem> sections;
+	};
 	SendChatappMessageRequest();
 	~SendChatappMessageRequest();
+	ProductAction getProductAction() const;
+	void setProductAction(const ProductAction &productAction);
 	std::string getMessageType() const;
 	void setMessageType(const std::string &messageType);
 	std::string getLanguage() const;
@@ -80,6 +95,7 @@ public:
 	void setTemplateCode(const std::string &templateCode);
 
 private:
+	ProductAction productAction_;
 	std::string messageType_;
 	std::string language_;
 	std::string custWabaId_;

+ 2 - 0
cams/include/alibabacloud/cams/model/SubmitIsvCustomerTermsResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				SubmitIsvCustomerTermsResult();
 				explicit SubmitIsvCustomerTermsResult(const std::string &payload);
 				~SubmitIsvCustomerTermsResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/UpdateAccountWebhookResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				UpdateAccountWebhookResult();
 				explicit UpdateAccountWebhookResult(const std::string &payload);
 				~UpdateAccountWebhookResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 2 - 0
cams/include/alibabacloud/cams/model/UpdatePhoneWebhookResult.h

@@ -37,12 +37,14 @@ namespace AlibabaCloud
 				UpdatePhoneWebhookResult();
 				explicit UpdatePhoneWebhookResult(const std::string &payload);
 				~UpdatePhoneWebhookResult();
+				std::string getAccessDeniedDetail()const;
 				std::string getMessage()const;
 				std::string getCode()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string accessDeniedDetail_;
 				std::string message_;
 				std::string code_;
 

+ 324 - 0
cams/src/CamsClient.cc

@@ -51,6 +51,42 @@ CamsClient::CamsClient(const std::string & accessKeyId, const std::string & acce
 CamsClient::~CamsClient()
 {}
 
+CamsClient::AddChatappPhoneNumberOutcome CamsClient::addChatappPhoneNumber(const AddChatappPhoneNumberRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AddChatappPhoneNumberOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AddChatappPhoneNumberOutcome(AddChatappPhoneNumberResult(outcome.result()));
+	else
+		return AddChatappPhoneNumberOutcome(outcome.error());
+}
+
+void CamsClient::addChatappPhoneNumberAsync(const AddChatappPhoneNumberRequest& request, const AddChatappPhoneNumberAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, addChatappPhoneNumber(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::AddChatappPhoneNumberOutcomeCallable CamsClient::addChatappPhoneNumberCallable(const AddChatappPhoneNumberRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AddChatappPhoneNumberOutcome()>>(
+			[this, request]()
+			{
+			return this->addChatappPhoneNumber(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::BeeBotAssociateOutcome CamsClient::beeBotAssociate(const BeeBotAssociateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -267,6 +303,42 @@ CamsClient::ChatappMigrationVerifiedOutcomeCallable CamsClient::chatappMigration
 	return task->get_future();
 }
 
+CamsClient::ChatappPhoneNumberDeregisterOutcome CamsClient::chatappPhoneNumberDeregister(const ChatappPhoneNumberDeregisterRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ChatappPhoneNumberDeregisterOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ChatappPhoneNumberDeregisterOutcome(ChatappPhoneNumberDeregisterResult(outcome.result()));
+	else
+		return ChatappPhoneNumberDeregisterOutcome(outcome.error());
+}
+
+void CamsClient::chatappPhoneNumberDeregisterAsync(const ChatappPhoneNumberDeregisterRequest& request, const ChatappPhoneNumberDeregisterAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, chatappPhoneNumberDeregister(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::ChatappPhoneNumberDeregisterOutcomeCallable CamsClient::chatappPhoneNumberDeregisterCallable(const ChatappPhoneNumberDeregisterRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ChatappPhoneNumberDeregisterOutcome()>>(
+			[this, request]()
+			{
+			return this->chatappPhoneNumberDeregister(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::ChatappPhoneNumberRegisterOutcome CamsClient::chatappPhoneNumberRegister(const ChatappPhoneNumberRegisterRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -483,6 +555,78 @@ CamsClient::DeleteChatappTemplateOutcomeCallable CamsClient::deleteChatappTempla
 	return task->get_future();
 }
 
+CamsClient::EnableWhatsappROIMetricOutcome CamsClient::enableWhatsappROIMetric(const EnableWhatsappROIMetricRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return EnableWhatsappROIMetricOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return EnableWhatsappROIMetricOutcome(EnableWhatsappROIMetricResult(outcome.result()));
+	else
+		return EnableWhatsappROIMetricOutcome(outcome.error());
+}
+
+void CamsClient::enableWhatsappROIMetricAsync(const EnableWhatsappROIMetricRequest& request, const EnableWhatsappROIMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, enableWhatsappROIMetric(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::EnableWhatsappROIMetricOutcomeCallable CamsClient::enableWhatsappROIMetricCallable(const EnableWhatsappROIMetricRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<EnableWhatsappROIMetricOutcome()>>(
+			[this, request]()
+			{
+			return this->enableWhatsappROIMetric(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CamsClient::GetChatappPhoneNumberMetricOutcome CamsClient::getChatappPhoneNumberMetric(const GetChatappPhoneNumberMetricRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetChatappPhoneNumberMetricOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetChatappPhoneNumberMetricOutcome(GetChatappPhoneNumberMetricResult(outcome.result()));
+	else
+		return GetChatappPhoneNumberMetricOutcome(outcome.error());
+}
+
+void CamsClient::getChatappPhoneNumberMetricAsync(const GetChatappPhoneNumberMetricRequest& request, const GetChatappPhoneNumberMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getChatappPhoneNumberMetric(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::GetChatappPhoneNumberMetricOutcomeCallable CamsClient::getChatappPhoneNumberMetricCallable(const GetChatappPhoneNumberMetricRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetChatappPhoneNumberMetricOutcome()>>(
+			[this, request]()
+			{
+			return this->getChatappPhoneNumberMetric(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::GetChatappTemplateDetailOutcome CamsClient::getChatappTemplateDetail(const GetChatappTemplateDetailRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -519,6 +663,42 @@ CamsClient::GetChatappTemplateDetailOutcomeCallable CamsClient::getChatappTempla
 	return task->get_future();
 }
 
+CamsClient::GetChatappTemplateMetricOutcome CamsClient::getChatappTemplateMetric(const GetChatappTemplateMetricRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetChatappTemplateMetricOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetChatappTemplateMetricOutcome(GetChatappTemplateMetricResult(outcome.result()));
+	else
+		return GetChatappTemplateMetricOutcome(outcome.error());
+}
+
+void CamsClient::getChatappTemplateMetricAsync(const GetChatappTemplateMetricRequest& request, const GetChatappTemplateMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getChatappTemplateMetric(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::GetChatappTemplateMetricOutcomeCallable CamsClient::getChatappTemplateMetricCallable(const GetChatappTemplateMetricRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetChatappTemplateMetricOutcome()>>(
+			[this, request]()
+			{
+			return this->getChatappTemplateMetric(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::GetChatappUploadAuthorizationOutcome CamsClient::getChatappUploadAuthorization(const GetChatappUploadAuthorizationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -663,6 +843,78 @@ CamsClient::GetPhoneNumberVerificationStatusOutcomeCallable CamsClient::getPhone
 	return task->get_future();
 }
 
+CamsClient::GetPreValidatePhoneIdOutcome CamsClient::getPreValidatePhoneId(const GetPreValidatePhoneIdRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetPreValidatePhoneIdOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetPreValidatePhoneIdOutcome(GetPreValidatePhoneIdResult(outcome.result()));
+	else
+		return GetPreValidatePhoneIdOutcome(outcome.error());
+}
+
+void CamsClient::getPreValidatePhoneIdAsync(const GetPreValidatePhoneIdRequest& request, const GetPreValidatePhoneIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getPreValidatePhoneId(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::GetPreValidatePhoneIdOutcomeCallable CamsClient::getPreValidatePhoneIdCallable(const GetPreValidatePhoneIdRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetPreValidatePhoneIdOutcome()>>(
+			[this, request]()
+			{
+			return this->getPreValidatePhoneId(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CamsClient::GetWhatsappConnectionCatalogOutcome CamsClient::getWhatsappConnectionCatalog(const GetWhatsappConnectionCatalogRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetWhatsappConnectionCatalogOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetWhatsappConnectionCatalogOutcome(GetWhatsappConnectionCatalogResult(outcome.result()));
+	else
+		return GetWhatsappConnectionCatalogOutcome(outcome.error());
+}
+
+void CamsClient::getWhatsappConnectionCatalogAsync(const GetWhatsappConnectionCatalogRequest& request, const GetWhatsappConnectionCatalogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getWhatsappConnectionCatalog(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::GetWhatsappConnectionCatalogOutcomeCallable CamsClient::getWhatsappConnectionCatalogCallable(const GetWhatsappConnectionCatalogRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetWhatsappConnectionCatalogOutcome()>>(
+			[this, request]()
+			{
+			return this->getWhatsappConnectionCatalog(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::IsvGetAppIdOutcome CamsClient::isvGetAppId(const IsvGetAppIdRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -735,6 +987,78 @@ CamsClient::ListChatappTemplateOutcomeCallable CamsClient::listChatappTemplateCa
 	return task->get_future();
 }
 
+CamsClient::ListProductOutcome CamsClient::listProduct(const ListProductRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListProductOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListProductOutcome(ListProductResult(outcome.result()));
+	else
+		return ListProductOutcome(outcome.error());
+}
+
+void CamsClient::listProductAsync(const ListProductRequest& request, const ListProductAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listProduct(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::ListProductOutcomeCallable CamsClient::listProductCallable(const ListProductRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListProductOutcome()>>(
+			[this, request]()
+			{
+			return this->listProduct(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CamsClient::ListProductCatalogOutcome CamsClient::listProductCatalog(const ListProductCatalogRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListProductCatalogOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListProductCatalogOutcome(ListProductCatalogResult(outcome.result()));
+	else
+		return ListProductCatalogOutcome(outcome.error());
+}
+
+void CamsClient::listProductCatalogAsync(const ListProductCatalogRequest& request, const ListProductCatalogAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listProductCatalog(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CamsClient::ListProductCatalogOutcomeCallable CamsClient::listProductCatalogCallable(const ListProductCatalogRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListProductCatalogOutcome()>>(
+			[this, request]()
+			{
+			return this->listProductCatalog(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CamsClient::ModifyChatappTemplateOutcome CamsClient::modifyChatappTemplate(const ModifyChatappTemplateRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 90 - 0
cams/src/model/AddChatappPhoneNumberRequest.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/cams/model/AddChatappPhoneNumberRequest.h>
+
+using AlibabaCloud::Cams::Model::AddChatappPhoneNumberRequest;
+
+AddChatappPhoneNumberRequest::AddChatappPhoneNumberRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "AddChatappPhoneNumber") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AddChatappPhoneNumberRequest::~AddChatappPhoneNumberRequest() {}
+
+std::string AddChatappPhoneNumberRequest::getPreValidateId() const {
+  return preValidateId_;
+}
+
+void AddChatappPhoneNumberRequest::setPreValidateId(const std::string &preValidateId) {
+  preValidateId_ = preValidateId;
+  setBodyParameter(std::string("PreValidateId"), preValidateId);
+}
+
+std::string AddChatappPhoneNumberRequest::getVerifiedName() const {
+  return verifiedName_;
+}
+
+void AddChatappPhoneNumberRequest::setVerifiedName(const std::string &verifiedName) {
+  verifiedName_ = verifiedName;
+  setBodyParameter(std::string("VerifiedName"), verifiedName);
+}
+
+std::string AddChatappPhoneNumberRequest::getPhoneNumber() const {
+  return phoneNumber_;
+}
+
+void AddChatappPhoneNumberRequest::setPhoneNumber(const std::string &phoneNumber) {
+  phoneNumber_ = phoneNumber;
+  setBodyParameter(std::string("PhoneNumber"), phoneNumber);
+}
+
+std::string AddChatappPhoneNumberRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void AddChatappPhoneNumberRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+std::string AddChatappPhoneNumberRequest::getCc() const {
+  return cc_;
+}
+
+void AddChatappPhoneNumberRequest::setCc(const std::string &cc) {
+  cc_ = cc;
+  setBodyParameter(std::string("Cc"), cc);
+}
+
+std::string AddChatappPhoneNumberRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void AddChatappPhoneNumberRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+
+std::string AddChatappPhoneNumberRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void AddChatappPhoneNumberRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setBodyParameter(std::string("CustSpaceId"), custSpaceId);
+}
+

+ 65 - 0
cams/src/model/AddChatappPhoneNumberResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/cams/model/AddChatappPhoneNumberResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+AddChatappPhoneNumberResult::AddChatappPhoneNumberResult() :
+	ServiceResult()
+{}
+
+AddChatappPhoneNumberResult::AddChatappPhoneNumberResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddChatappPhoneNumberResult::~AddChatappPhoneNumberResult()
+{}
+
+void AddChatappPhoneNumberResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+
+}
+
+std::string AddChatappPhoneNumberResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string AddChatappPhoneNumberResult::getMessage()const
+{
+	return message_;
+}
+
+std::string AddChatappPhoneNumberResult::getCode()const
+{
+	return code_;
+}
+

+ 7 - 0
cams/src/model/BeeBotAssociateResult.cc

@@ -58,9 +58,16 @@ void BeeBotAssociateResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string BeeBotAssociateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string BeeBotAssociateResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/BeeBotChatResult.cc

@@ -136,9 +136,16 @@ void BeeBotChatResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string BeeBotChatResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string BeeBotChatResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappBindWabaResult.cc

@@ -48,9 +48,16 @@ void ChatappBindWabaResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappBindWabaResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappBindWabaResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappEmbedSignUpResult.cc

@@ -59,9 +59,16 @@ void ChatappEmbedSignUpResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappEmbedSignUpResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappEmbedSignUpResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappMigrationRegisterResult.cc

@@ -43,9 +43,16 @@ void ChatappMigrationRegisterResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappMigrationRegisterResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappMigrationRegisterResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappMigrationVerifiedResult.cc

@@ -48,9 +48,16 @@ void ChatappMigrationVerifiedResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappMigrationVerifiedResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappMigrationVerifiedResult::getMessage()const
 {
 	return message_;

+ 63 - 0
cams/src/model/ChatappPhoneNumberDeregisterRequest.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/cams/model/ChatappPhoneNumberDeregisterRequest.h>
+
+using AlibabaCloud::Cams::Model::ChatappPhoneNumberDeregisterRequest;
+
+ChatappPhoneNumberDeregisterRequest::ChatappPhoneNumberDeregisterRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "ChatappPhoneNumberDeregister") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ChatappPhoneNumberDeregisterRequest::~ChatappPhoneNumberDeregisterRequest() {}
+
+std::string ChatappPhoneNumberDeregisterRequest::getPhoneNumber() const {
+  return phoneNumber_;
+}
+
+void ChatappPhoneNumberDeregisterRequest::setPhoneNumber(const std::string &phoneNumber) {
+  phoneNumber_ = phoneNumber;
+  setBodyParameter(std::string("PhoneNumber"), phoneNumber);
+}
+
+std::string ChatappPhoneNumberDeregisterRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void ChatappPhoneNumberDeregisterRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+std::string ChatappPhoneNumberDeregisterRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void ChatappPhoneNumberDeregisterRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+
+std::string ChatappPhoneNumberDeregisterRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void ChatappPhoneNumberDeregisterRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setBodyParameter(std::string("CustSpaceId"), custSpaceId);
+}
+

+ 65 - 0
cams/src/model/ChatappPhoneNumberDeregisterResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/cams/model/ChatappPhoneNumberDeregisterResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+ChatappPhoneNumberDeregisterResult::ChatappPhoneNumberDeregisterResult() :
+	ServiceResult()
+{}
+
+ChatappPhoneNumberDeregisterResult::ChatappPhoneNumberDeregisterResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ChatappPhoneNumberDeregisterResult::~ChatappPhoneNumberDeregisterResult()
+{}
+
+void ChatappPhoneNumberDeregisterResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+
+}
+
+std::string ChatappPhoneNumberDeregisterResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string ChatappPhoneNumberDeregisterResult::getMessage()const
+{
+	return message_;
+}
+
+std::string ChatappPhoneNumberDeregisterResult::getCode()const
+{
+	return code_;
+}
+

+ 7 - 0
cams/src/model/ChatappPhoneNumberRegisterResult.cc

@@ -43,9 +43,16 @@ void ChatappPhoneNumberRegisterResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappPhoneNumberRegisterResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappPhoneNumberRegisterResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappSyncPhoneNumberResult.cc

@@ -73,6 +73,8 @@ void ChatappSyncPhoneNumberResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
@@ -81,6 +83,11 @@ std::vector<ChatappSyncPhoneNumberResult::PhoneNumbersItem> ChatappSyncPhoneNumb
 	return phoneNumbers_;
 }
 
+std::string ChatappSyncPhoneNumberResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappSyncPhoneNumberResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ChatappVerifyAndRegisterResult.cc

@@ -43,9 +43,16 @@ void ChatappVerifyAndRegisterResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ChatappVerifyAndRegisterResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ChatappVerifyAndRegisterResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/CreateChatappMigrationInitiateResult.cc

@@ -50,9 +50,16 @@ void CreateChatappMigrationInitiateResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string CreateChatappMigrationInitiateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string CreateChatappMigrationInitiateResult::getMessage()const
 {
 	return message_;

+ 9 - 0
cams/src/model/CreateChatappTemplateRequest.cc

@@ -158,3 +158,12 @@ void CreateChatappTemplateRequest::setCategory(const std::string &category) {
   setBodyParameter(std::string("Category"), category);
 }
 
+int CreateChatappTemplateRequest::getMessageSendTtlSeconds() const {
+  return messageSendTtlSeconds_;
+}
+
+void CreateChatappTemplateRequest::setMessageSendTtlSeconds(int messageSendTtlSeconds) {
+  messageSendTtlSeconds_ = messageSendTtlSeconds;
+  setBodyParameter(std::string("MessageSendTtlSeconds"), std::to_string(messageSendTtlSeconds));
+}
+

+ 7 - 0
cams/src/model/CreateChatappTemplateResult.cc

@@ -48,9 +48,16 @@ void CreateChatappTemplateResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string CreateChatappTemplateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string CreateChatappTemplateResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/DeleteChatappTemplateResult.cc

@@ -43,9 +43,16 @@ void DeleteChatappTemplateResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string DeleteChatappTemplateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string DeleteChatappTemplateResult::getMessage()const
 {
 	return message_;

+ 63 - 0
cams/src/model/EnableWhatsappROIMetricRequest.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/cams/model/EnableWhatsappROIMetricRequest.h>
+
+using AlibabaCloud::Cams::Model::EnableWhatsappROIMetricRequest;
+
+EnableWhatsappROIMetricRequest::EnableWhatsappROIMetricRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "EnableWhatsappROIMetric") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+EnableWhatsappROIMetricRequest::~EnableWhatsappROIMetricRequest() {}
+
+std::string EnableWhatsappROIMetricRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void EnableWhatsappROIMetricRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+std::string EnableWhatsappROIMetricRequest::getIsvCode() const {
+  return isvCode_;
+}
+
+void EnableWhatsappROIMetricRequest::setIsvCode(const std::string &isvCode) {
+  isvCode_ = isvCode;
+  setParameter(std::string("IsvCode"), isvCode);
+}
+
+std::string EnableWhatsappROIMetricRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void EnableWhatsappROIMetricRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+
+std::string EnableWhatsappROIMetricRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void EnableWhatsappROIMetricRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+

+ 65 - 0
cams/src/model/EnableWhatsappROIMetricResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/cams/model/EnableWhatsappROIMetricResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+EnableWhatsappROIMetricResult::EnableWhatsappROIMetricResult() :
+	ServiceResult()
+{}
+
+EnableWhatsappROIMetricResult::EnableWhatsappROIMetricResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+EnableWhatsappROIMetricResult::~EnableWhatsappROIMetricResult()
+{}
+
+void EnableWhatsappROIMetricResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+
+}
+
+std::string EnableWhatsappROIMetricResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string EnableWhatsappROIMetricResult::getMessage()const
+{
+	return message_;
+}
+
+std::string EnableWhatsappROIMetricResult::getCode()const
+{
+	return code_;
+}
+

+ 99 - 0
cams/src/model/GetChatappPhoneNumberMetricRequest.cc

@@ -0,0 +1,99 @@
+/*
+ * 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/cams/model/GetChatappPhoneNumberMetricRequest.h>
+
+using AlibabaCloud::Cams::Model::GetChatappPhoneNumberMetricRequest;
+
+GetChatappPhoneNumberMetricRequest::GetChatappPhoneNumberMetricRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "GetChatappPhoneNumberMetric") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetChatappPhoneNumberMetricRequest::~GetChatappPhoneNumberMetricRequest() {}
+
+std::string GetChatappPhoneNumberMetricRequest::getPhoneNumber() const {
+  return phoneNumber_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setPhoneNumber(const std::string &phoneNumber) {
+  phoneNumber_ = phoneNumber;
+  setParameter(std::string("PhoneNumber"), phoneNumber);
+}
+
+std::string GetChatappPhoneNumberMetricRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+long GetChatappPhoneNumberMetricRequest::getEnd() const {
+  return end_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setEnd(long end) {
+  end_ = end;
+  setParameter(std::string("End"), std::to_string(end));
+}
+
+std::string GetChatappPhoneNumberMetricRequest::getIsvCode() const {
+  return isvCode_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setIsvCode(const std::string &isvCode) {
+  isvCode_ = isvCode;
+  setParameter(std::string("IsvCode"), isvCode);
+}
+
+std::string GetChatappPhoneNumberMetricRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+
+long GetChatappPhoneNumberMetricRequest::getStart() const {
+  return start_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setStart(long start) {
+  start_ = start;
+  setParameter(std::string("Start"), std::to_string(start));
+}
+
+std::string GetChatappPhoneNumberMetricRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+
+std::string GetChatappPhoneNumberMetricRequest::getGranularity() const {
+  return granularity_;
+}
+
+void GetChatappPhoneNumberMetricRequest::setGranularity(const std::string &granularity) {
+  granularity_ = granularity;
+  setParameter(std::string("Granularity"), granularity);
+}
+

+ 88 - 0
cams/src/model/GetChatappPhoneNumberMetricResult.cc

@@ -0,0 +1,88 @@
+/*
+ * 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/cams/model/GetChatappPhoneNumberMetricResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+GetChatappPhoneNumberMetricResult::GetChatappPhoneNumberMetricResult() :
+	ServiceResult()
+{}
+
+GetChatappPhoneNumberMetricResult::GetChatappPhoneNumberMetricResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetChatappPhoneNumberMetricResult::~GetChatappPhoneNumberMetricResult()
+{}
+
+void GetChatappPhoneNumberMetricResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDataNode = value["Data"]["返回数据"];
+	for (auto valueData返回数据 : allDataNode)
+	{
+		返回数据 dataObject;
+		if(!valueData返回数据["SentCount"].isNull())
+			dataObject.sentCount = std::stoi(valueData返回数据["SentCount"].asString());
+		if(!valueData返回数据["DeliveredCount"].isNull())
+			dataObject.deliveredCount = std::stoi(valueData返回数据["DeliveredCount"].asString());
+		if(!valueData返回数据["Start"].isNull())
+			dataObject.start = std::stol(valueData返回数据["Start"].asString());
+		if(!valueData返回数据["End"].isNull())
+			dataObject.end = std::stol(valueData返回数据["End"].asString());
+		if(!valueData返回数据["PhoneNumber"].isNull())
+			dataObject.phoneNumber = valueData返回数据["PhoneNumber"].asString();
+		if(!valueData返回数据["Granularity"].isNull())
+			dataObject.granularity = valueData返回数据["Granularity"].asString();
+		data_.push_back(dataObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+
+}
+
+std::string GetChatappPhoneNumberMetricResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string GetChatappPhoneNumberMetricResult::getMessage()const
+{
+	return message_;
+}
+
+std::vector<GetChatappPhoneNumberMetricResult::返回数据> GetChatappPhoneNumberMetricResult::getData()const
+{
+	return data_;
+}
+
+std::string GetChatappPhoneNumberMetricResult::getCode()const
+{
+	return code_;
+}
+

+ 13 - 0
cams/src/model/GetChatappTemplateDetailResult.cc

@@ -54,6 +54,12 @@ void GetChatappTemplateDetailResult::parse(const std::string &payload)
 		data_.auditStatus = dataNode["AuditStatus"].asString();
 	if(!dataNode["TemplateType"].isNull())
 		data_.templateType = dataNode["TemplateType"].asString();
+	if(!dataNode["QualityScore"].isNull())
+		data_.qualityScore = dataNode["QualityScore"].asString();
+	if(!dataNode["MessageSendTtlSeconds"].isNull())
+		data_.messageSendTtlSeconds = std::stoi(dataNode["MessageSendTtlSeconds"].asString());
+	if(!dataNode["Reason"].isNull())
+		data_.reason = dataNode["Reason"].asString();
 	auto allComponentsNode = dataNode["Components"]["component"];
 	for (auto dataNodeComponentscomponent : allComponentsNode)
 	{
@@ -129,9 +135,16 @@ void GetChatappTemplateDetailResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string GetChatappTemplateDetailResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string GetChatappTemplateDetailResult::getMessage()const
 {
 	return message_;

+ 117 - 0
cams/src/model/GetChatappTemplateMetricRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/cams/model/GetChatappTemplateMetricRequest.h>
+
+using AlibabaCloud::Cams::Model::GetChatappTemplateMetricRequest;
+
+GetChatappTemplateMetricRequest::GetChatappTemplateMetricRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "GetChatappTemplateMetric") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetChatappTemplateMetricRequest::~GetChatappTemplateMetricRequest() {}
+
+std::string GetChatappTemplateMetricRequest::getLanguage() const {
+  return language_;
+}
+
+void GetChatappTemplateMetricRequest::setLanguage(const std::string &language) {
+  language_ = language;
+  setParameter(std::string("Language"), language);
+}
+
+std::string GetChatappTemplateMetricRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void GetChatappTemplateMetricRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+std::string GetChatappTemplateMetricRequest::getTemplateType() const {
+  return templateType_;
+}
+
+void GetChatappTemplateMetricRequest::setTemplateType(const std::string &templateType) {
+  templateType_ = templateType;
+  setParameter(std::string("TemplateType"), templateType);
+}
+
+long GetChatappTemplateMetricRequest::getEnd() const {
+  return end_;
+}
+
+void GetChatappTemplateMetricRequest::setEnd(long end) {
+  end_ = end;
+  setParameter(std::string("End"), std::to_string(end));
+}
+
+std::string GetChatappTemplateMetricRequest::getIsvCode() const {
+  return isvCode_;
+}
+
+void GetChatappTemplateMetricRequest::setIsvCode(const std::string &isvCode) {
+  isvCode_ = isvCode;
+  setParameter(std::string("IsvCode"), isvCode);
+}
+
+std::string GetChatappTemplateMetricRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void GetChatappTemplateMetricRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+
+long GetChatappTemplateMetricRequest::getStart() const {
+  return start_;
+}
+
+void GetChatappTemplateMetricRequest::setStart(long start) {
+  start_ = start;
+  setParameter(std::string("Start"), std::to_string(start));
+}
+
+std::string GetChatappTemplateMetricRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void GetChatappTemplateMetricRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+
+std::string GetChatappTemplateMetricRequest::getGranularity() const {
+  return granularity_;
+}
+
+void GetChatappTemplateMetricRequest::setGranularity(const std::string &granularity) {
+  granularity_ = granularity;
+  setParameter(std::string("Granularity"), granularity);
+}
+
+std::string GetChatappTemplateMetricRequest::getTemplateCode() const {
+  return templateCode_;
+}
+
+void GetChatappTemplateMetricRequest::setTemplateCode(const std::string &templateCode) {
+  templateCode_ = templateCode;
+  setParameter(std::string("TemplateCode"), templateCode);
+}
+

+ 102 - 0
cams/src/model/GetChatappTemplateMetricResult.cc

@@ -0,0 +1,102 @@
+/*
+ * 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/cams/model/GetChatappTemplateMetricResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+GetChatappTemplateMetricResult::GetChatappTemplateMetricResult() :
+	ServiceResult()
+{}
+
+GetChatappTemplateMetricResult::GetChatappTemplateMetricResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetChatappTemplateMetricResult::~GetChatappTemplateMetricResult()
+{}
+
+void GetChatappTemplateMetricResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDataNode = value["Data"]["返回数据"];
+	for (auto valueData返回数据 : allDataNode)
+	{
+		返回数据 dataObject;
+		if(!valueData返回数据["TemplateCode"].isNull())
+			dataObject.templateCode = valueData返回数据["TemplateCode"].asString();
+		if(!valueData返回数据["Language"].isNull())
+			dataObject.language = valueData返回数据["Language"].asString();
+		if(!valueData返回数据["SentCount"].isNull())
+			dataObject.sentCount = std::stoi(valueData返回数据["SentCount"].asString());
+		if(!valueData返回数据["ReadCount"].isNull())
+			dataObject.readCount = std::stoi(valueData返回数据["ReadCount"].asString());
+		if(!valueData返回数据["DeliveredCount"].isNull())
+			dataObject.deliveredCount = std::stoi(valueData返回数据["DeliveredCount"].asString());
+		if(!valueData返回数据["Start"].isNull())
+			dataObject.start = std::stol(valueData返回数据["Start"].asString());
+		if(!valueData返回数据["End"].isNull())
+			dataObject.end = std::stol(valueData返回数据["End"].asString());
+		auto allClientedNode = valueData返回数据["Cliented"]["按钮点击数据"];
+		for (auto valueData返回数据Cliented按钮点击数据 : allClientedNode)
+		{
+			返回数据::按钮点击数据 clientedObject;
+			if(!valueData返回数据Cliented按钮点击数据["Type"].isNull())
+				clientedObject.type = valueData返回数据Cliented按钮点击数据["Type"].asString();
+			if(!valueData返回数据Cliented按钮点击数据["ButtonContent"].isNull())
+				clientedObject.buttonContent = valueData返回数据Cliented按钮点击数据["ButtonContent"].asString();
+			if(!valueData返回数据Cliented按钮点击数据["Count"].isNull())
+				clientedObject.count = std::stoi(valueData返回数据Cliented按钮点击数据["Count"].asString());
+			dataObject.cliented.push_back(clientedObject);
+		}
+		data_.push_back(dataObject);
+	}
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+
+}
+
+std::string GetChatappTemplateMetricResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string GetChatappTemplateMetricResult::getMessage()const
+{
+	return message_;
+}
+
+std::vector<GetChatappTemplateMetricResult::返回数据> GetChatappTemplateMetricResult::getData()const
+{
+	return data_;
+}
+
+std::string GetChatappTemplateMetricResult::getCode()const
+{
+	return code_;
+}
+

+ 7 - 0
cams/src/model/GetChatappUploadAuthorizationResult.cc

@@ -58,9 +58,16 @@ void GetChatappUploadAuthorizationResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string GetChatappUploadAuthorizationResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string GetChatappUploadAuthorizationResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/GetChatappVerifyCodeResult.cc

@@ -43,9 +43,16 @@ void GetChatappVerifyCodeResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string GetChatappVerifyCodeResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string GetChatappVerifyCodeResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/GetMigrationVerifyCodeResult.cc

@@ -48,9 +48,16 @@ void GetMigrationVerifyCodeResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string GetMigrationVerifyCodeResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string GetMigrationVerifyCodeResult::getMessage()const
 {
 	return message_;

+ 63 - 0
cams/src/model/GetPreValidatePhoneIdRequest.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/cams/model/GetPreValidatePhoneIdRequest.h>
+
+using AlibabaCloud::Cams::Model::GetPreValidatePhoneIdRequest;
+
+GetPreValidatePhoneIdRequest::GetPreValidatePhoneIdRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "GetPreValidatePhoneId") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetPreValidatePhoneIdRequest::~GetPreValidatePhoneIdRequest() {}
+
+std::string GetPreValidatePhoneIdRequest::getPhoneNumber() const {
+  return phoneNumber_;
+}
+
+void GetPreValidatePhoneIdRequest::setPhoneNumber(const std::string &phoneNumber) {
+  phoneNumber_ = phoneNumber;
+  setBodyParameter(std::string("PhoneNumber"), phoneNumber);
+}
+
+std::string GetPreValidatePhoneIdRequest::getVerifyCode() const {
+  return verifyCode_;
+}
+
+void GetPreValidatePhoneIdRequest::setVerifyCode(const std::string &verifyCode) {
+  verifyCode_ = verifyCode;
+  setBodyParameter(std::string("VerifyCode"), verifyCode);
+}
+
+std::string GetPreValidatePhoneIdRequest::getApiCode() const {
+  return apiCode_;
+}
+
+void GetPreValidatePhoneIdRequest::setApiCode(const std::string &apiCode) {
+  apiCode_ = apiCode;
+  setParameter(std::string("ApiCode"), apiCode);
+}
+
+std::string GetPreValidatePhoneIdRequest::getProdCode() const {
+  return prodCode_;
+}
+
+void GetPreValidatePhoneIdRequest::setProdCode(const std::string &prodCode) {
+  prodCode_ = prodCode;
+  setParameter(std::string("ProdCode"), prodCode);
+}
+

+ 68 - 0
cams/src/model/GetPreValidatePhoneIdResult.cc

@@ -0,0 +1,68 @@
+/*
+ * 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/cams/model/GetPreValidatePhoneIdResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+GetPreValidatePhoneIdResult::GetPreValidatePhoneIdResult() :
+	ServiceResult()
+{}
+
+GetPreValidatePhoneIdResult::GetPreValidatePhoneIdResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetPreValidatePhoneIdResult::~GetPreValidatePhoneIdResult()
+{}
+
+void GetPreValidatePhoneIdResult::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["PhoneNumberId"].isNull())
+		data_.phoneNumberId = dataNode["PhoneNumberId"].asString();
+	if(!dataNode["PhoneNumber"].isNull())
+		data_.phoneNumber = dataNode["PhoneNumber"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string GetPreValidatePhoneIdResult::getMessage()const
+{
+	return message_;
+}
+
+GetPreValidatePhoneIdResult::Data GetPreValidatePhoneIdResult::getData()const
+{
+	return data_;
+}
+
+std::string GetPreValidatePhoneIdResult::getCode()const
+{
+	return code_;
+}
+

+ 108 - 0
cams/src/model/GetWhatsappConnectionCatalogRequest.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/cams/model/GetWhatsappConnectionCatalogRequest.h>
+
+using AlibabaCloud::Cams::Model::GetWhatsappConnectionCatalogRequest;
+
+GetWhatsappConnectionCatalogRequest::GetWhatsappConnectionCatalogRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "GetWhatsappConnectionCatalog") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetWhatsappConnectionCatalogRequest::~GetWhatsappConnectionCatalogRequest() {}
+
+long GetWhatsappConnectionCatalogRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getExtendFunction() const {
+  return extendFunction_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setExtendFunction(const std::string &extendFunction) {
+  extendFunction_ = extendFunction;
+  setParameter(std::string("ExtendFunction"), extendFunction);
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getAccessKeyId() const {
+  return accessKeyId_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setAccessKeyId(const std::string &accessKeyId) {
+  accessKeyId_ = accessKeyId;
+  setParameter(std::string("AccessKeyId"), accessKeyId);
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getMetaVersion() const {
+  return metaVersion_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setMetaVersion(const std::string &metaVersion) {
+  metaVersion_ = metaVersion;
+  setParameter(std::string("MetaVersion"), metaVersion);
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getRouteName() const {
+  return routeName_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setRouteName(const std::string &routeName) {
+  routeName_ = routeName;
+  setParameter(std::string("RouteName"), routeName);
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+long GetWhatsappConnectionCatalogRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getWabaId() const {
+  return wabaId_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setWabaId(const std::string &wabaId) {
+  wabaId_ = wabaId;
+  setParameter(std::string("WabaId"), wabaId);
+}
+
+std::string GetWhatsappConnectionCatalogRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void GetWhatsappConnectionCatalogRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+

+ 79 - 0
cams/src/model/GetWhatsappConnectionCatalogResult.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/cams/model/GetWhatsappConnectionCatalogResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+GetWhatsappConnectionCatalogResult::GetWhatsappConnectionCatalogResult() :
+	ServiceResult()
+{}
+
+GetWhatsappConnectionCatalogResult::GetWhatsappConnectionCatalogResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetWhatsappConnectionCatalogResult::~GetWhatsappConnectionCatalogResult()
+{}
+
+void GetWhatsappConnectionCatalogResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Model"].isNull())
+		model_ = value["Model"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string GetWhatsappConnectionCatalogResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string GetWhatsappConnectionCatalogResult::getMessage()const
+{
+	return message_;
+}
+
+std::string GetWhatsappConnectionCatalogResult::getModel()const
+{
+	return model_;
+}
+
+std::string GetWhatsappConnectionCatalogResult::getCode()const
+{
+	return code_;
+}
+
+bool GetWhatsappConnectionCatalogResult::getSuccess()const
+{
+	return success_;
+}
+

+ 7 - 0
cams/src/model/IsvGetAppIdResult.cc

@@ -45,9 +45,16 @@ void IsvGetAppIdResult::parse(const std::string &payload)
 		message_ = value["Message"].asString();
 	if(!value["AppId"].isNull())
 		appId_ = value["AppId"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string IsvGetAppIdResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string IsvGetAppIdResult::getMessage()const
 {
 	return message_;

+ 9 - 0
cams/src/model/ListChatappTemplateResult.cc

@@ -55,6 +55,8 @@ void ListChatappTemplateResult::parse(const std::string &payload)
 			listTemplateObject.category = valueListTemplatetemplate["Category"].asString();
 		if(!valueListTemplatetemplate["TemplateType"].isNull())
 			listTemplateObject.templateType = valueListTemplatetemplate["TemplateType"].asString();
+		if(!valueListTemplatetemplate["Reason"].isNull())
+			listTemplateObject.reason = valueListTemplatetemplate["Reason"].asString();
 		listTemplate_.push_back(listTemplateObject);
 	}
 	if(!value["Code"].isNull())
@@ -63,9 +65,16 @@ void ListChatappTemplateResult::parse(const std::string &payload)
 		message_ = value["Message"].asString();
 	if(!value["Total"].isNull())
 		total_ = std::stoi(value["Total"].asString());
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ListChatappTemplateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ListChatappTemplateResult::getMessage()const
 {
 	return message_;

+ 144 - 0
cams/src/model/ListProductCatalogRequest.cc

@@ -0,0 +1,144 @@
+/*
+ * 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/cams/model/ListProductCatalogRequest.h>
+
+using AlibabaCloud::Cams::Model::ListProductCatalogRequest;
+
+ListProductCatalogRequest::ListProductCatalogRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "ListProductCatalog") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListProductCatalogRequest::~ListProductCatalogRequest() {}
+
+long ListProductCatalogRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListProductCatalogRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListProductCatalogRequest::getBefore() const {
+  return before_;
+}
+
+void ListProductCatalogRequest::setBefore(const std::string &before) {
+  before_ = before;
+  setParameter(std::string("Before"), before);
+}
+
+std::string ListProductCatalogRequest::getExtendFunction() const {
+  return extendFunction_;
+}
+
+void ListProductCatalogRequest::setExtendFunction(const std::string &extendFunction) {
+  extendFunction_ = extendFunction;
+  setParameter(std::string("ExtendFunction"), extendFunction);
+}
+
+std::string ListProductCatalogRequest::getAccessKeyId() const {
+  return accessKeyId_;
+}
+
+void ListProductCatalogRequest::setAccessKeyId(const std::string &accessKeyId) {
+  accessKeyId_ = accessKeyId;
+  setParameter(std::string("AccessKeyId"), accessKeyId);
+}
+
+std::string ListProductCatalogRequest::getMetaVersion() const {
+  return metaVersion_;
+}
+
+void ListProductCatalogRequest::setMetaVersion(const std::string &metaVersion) {
+  metaVersion_ = metaVersion;
+  setParameter(std::string("MetaVersion"), metaVersion);
+}
+
+long ListProductCatalogRequest::getLimit() const {
+  return limit_;
+}
+
+void ListProductCatalogRequest::setLimit(long limit) {
+  limit_ = limit;
+  setParameter(std::string("Limit"), std::to_string(limit));
+}
+
+std::string ListProductCatalogRequest::getAfter() const {
+  return after_;
+}
+
+void ListProductCatalogRequest::setAfter(const std::string &after) {
+  after_ = after;
+  setParameter(std::string("After"), after);
+}
+
+std::string ListProductCatalogRequest::getRouteName() const {
+  return routeName_;
+}
+
+void ListProductCatalogRequest::setRouteName(const std::string &routeName) {
+  routeName_ = routeName;
+  setParameter(std::string("RouteName"), routeName);
+}
+
+std::string ListProductCatalogRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListProductCatalogRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+long ListProductCatalogRequest::getBusinessId() const {
+  return businessId_;
+}
+
+void ListProductCatalogRequest::setBusinessId(long businessId) {
+  businessId_ = businessId;
+  setParameter(std::string("BusinessId"), std::to_string(businessId));
+}
+
+long ListProductCatalogRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListProductCatalogRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListProductCatalogRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void ListProductCatalogRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+
+std::string ListProductCatalogRequest::getFields() const {
+  return fields_;
+}
+
+void ListProductCatalogRequest::setFields(const std::string &fields) {
+  fields_ = fields;
+  setParameter(std::string("Fields"), fields);
+}
+

+ 87 - 0
cams/src/model/ListProductCatalogResult.cc

@@ -0,0 +1,87 @@
+/*
+ * 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/cams/model/ListProductCatalogResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+ListProductCatalogResult::ListProductCatalogResult() :
+	ServiceResult()
+{}
+
+ListProductCatalogResult::ListProductCatalogResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListProductCatalogResult::~ListProductCatalogResult()
+{}
+
+void ListProductCatalogResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto modelNode = value["Model"];
+	auto pagingNode = modelNode["Paging"];
+	auto cursorsNode = pagingNode["Cursors"];
+	if(!cursorsNode["Before"].isNull())
+		model_.paging.cursors.before = cursorsNode["Before"].asString();
+	if(!cursorsNode["After"].isNull())
+		model_.paging.cursors.after = cursorsNode["After"].asString();
+		auto allData = modelNode["Data"]["data"];
+		for (auto value : allData)
+			model_.data.push_back(value.asString());
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string ListProductCatalogResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string ListProductCatalogResult::getMessage()const
+{
+	return message_;
+}
+
+ListProductCatalogResult::Model ListProductCatalogResult::getModel()const
+{
+	return model_;
+}
+
+std::string ListProductCatalogResult::getCode()const
+{
+	return code_;
+}
+
+bool ListProductCatalogResult::getSuccess()const
+{
+	return success_;
+}
+

+ 153 - 0
cams/src/model/ListProductRequest.cc

@@ -0,0 +1,153 @@
+/*
+ * 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/cams/model/ListProductRequest.h>
+
+using AlibabaCloud::Cams::Model::ListProductRequest;
+
+ListProductRequest::ListProductRequest()
+    : RpcServiceRequest("cams", "2020-06-06", "ListProduct") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListProductRequest::~ListProductRequest() {}
+
+long ListProductRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListProductRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListProductRequest::getBefore() const {
+  return before_;
+}
+
+void ListProductRequest::setBefore(const std::string &before) {
+  before_ = before;
+  setParameter(std::string("Before"), before);
+}
+
+std::string ListProductRequest::getExtendFunction() const {
+  return extendFunction_;
+}
+
+void ListProductRequest::setExtendFunction(const std::string &extendFunction) {
+  extendFunction_ = extendFunction;
+  setParameter(std::string("ExtendFunction"), extendFunction);
+}
+
+std::string ListProductRequest::getAccessKeyId() const {
+  return accessKeyId_;
+}
+
+void ListProductRequest::setAccessKeyId(const std::string &accessKeyId) {
+  accessKeyId_ = accessKeyId;
+  setParameter(std::string("AccessKeyId"), accessKeyId);
+}
+
+std::string ListProductRequest::getMetaVersion() const {
+  return metaVersion_;
+}
+
+void ListProductRequest::setMetaVersion(const std::string &metaVersion) {
+  metaVersion_ = metaVersion;
+  setParameter(std::string("MetaVersion"), metaVersion);
+}
+
+long ListProductRequest::getLimit() const {
+  return limit_;
+}
+
+void ListProductRequest::setLimit(long limit) {
+  limit_ = limit;
+  setParameter(std::string("Limit"), std::to_string(limit));
+}
+
+std::string ListProductRequest::getAfter() const {
+  return after_;
+}
+
+void ListProductRequest::setAfter(const std::string &after) {
+  after_ = after;
+  setParameter(std::string("After"), after);
+}
+
+std::string ListProductRequest::getRouteName() const {
+  return routeName_;
+}
+
+void ListProductRequest::setRouteName(const std::string &routeName) {
+  routeName_ = routeName;
+  setParameter(std::string("RouteName"), routeName);
+}
+
+std::string ListProductRequest::getResourceOwnerAccount() const {
+  return resourceOwnerAccount_;
+}
+
+void ListProductRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
+  resourceOwnerAccount_ = resourceOwnerAccount;
+  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
+}
+
+long ListProductRequest::getOwnerId() const {
+  return ownerId_;
+}
+
+void ListProductRequest::setOwnerId(long ownerId) {
+  ownerId_ = ownerId;
+  setParameter(std::string("OwnerId"), std::to_string(ownerId));
+}
+
+std::string ListProductRequest::getWabaId() const {
+  return wabaId_;
+}
+
+void ListProductRequest::setWabaId(const std::string &wabaId) {
+  wabaId_ = wabaId;
+  setParameter(std::string("WabaId"), wabaId);
+}
+
+std::string ListProductRequest::getCatalogId() const {
+  return catalogId_;
+}
+
+void ListProductRequest::setCatalogId(const std::string &catalogId) {
+  catalogId_ = catalogId;
+  setParameter(std::string("CatalogId"), catalogId);
+}
+
+std::string ListProductRequest::getCustSpaceId() const {
+  return custSpaceId_;
+}
+
+void ListProductRequest::setCustSpaceId(const std::string &custSpaceId) {
+  custSpaceId_ = custSpaceId;
+  setParameter(std::string("CustSpaceId"), custSpaceId);
+}
+
+std::string ListProductRequest::getFields() const {
+  return fields_;
+}
+
+void ListProductRequest::setFields(const std::string &fields) {
+  fields_ = fields;
+  setParameter(std::string("Fields"), fields);
+}
+

+ 87 - 0
cams/src/model/ListProductResult.cc

@@ -0,0 +1,87 @@
+/*
+ * 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/cams/model/ListProductResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cams;
+using namespace AlibabaCloud::Cams::Model;
+
+ListProductResult::ListProductResult() :
+	ServiceResult()
+{}
+
+ListProductResult::ListProductResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListProductResult::~ListProductResult()
+{}
+
+void ListProductResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto modelNode = value["Model"];
+	auto pagingNode = modelNode["Paging"];
+	auto cursorsNode = pagingNode["Cursors"];
+	if(!cursorsNode["Before"].isNull())
+		model_.paging.cursors.before = cursorsNode["Before"].asString();
+	if(!cursorsNode["After"].isNull())
+		model_.paging.cursors.after = cursorsNode["After"].asString();
+		auto allData = modelNode["Data"]["data"];
+		for (auto value : allData)
+			model_.data.push_back(value.asString());
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string ListProductResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
+std::string ListProductResult::getMessage()const
+{
+	return message_;
+}
+
+ListProductResult::Model ListProductResult::getModel()const
+{
+	return model_;
+}
+
+std::string ListProductResult::getCode()const
+{
+	return code_;
+}
+
+bool ListProductResult::getSuccess()const
+{
+	return success_;
+}
+

+ 9 - 0
cams/src/model/ModifyChatappTemplateRequest.cc

@@ -140,6 +140,15 @@ void ModifyChatappTemplateRequest::setCategory(const std::string &category) {
   setBodyParameter(std::string("Category"), category);
 }
 
+int ModifyChatappTemplateRequest::getMessageSendTtlSeconds() const {
+  return messageSendTtlSeconds_;
+}
+
+void ModifyChatappTemplateRequest::setMessageSendTtlSeconds(int messageSendTtlSeconds) {
+  messageSendTtlSeconds_ = messageSendTtlSeconds;
+  setBodyParameter(std::string("MessageSendTtlSeconds"), std::to_string(messageSendTtlSeconds));
+}
+
 std::string ModifyChatappTemplateRequest::getTemplateCode() const {
   return templateCode_;
 }

+ 7 - 0
cams/src/model/ModifyChatappTemplateResult.cc

@@ -48,9 +48,16 @@ void ModifyChatappTemplateResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ModifyChatappTemplateResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ModifyChatappTemplateResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/ModifyPhoneBusinessProfileResult.cc

@@ -43,9 +43,16 @@ void ModifyPhoneBusinessProfileResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string ModifyPhoneBusinessProfileResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string ModifyPhoneBusinessProfileResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/QueryChatappBindWabaResult.cc

@@ -54,9 +54,16 @@ void QueryChatappBindWabaResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string QueryChatappBindWabaResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string QueryChatappBindWabaResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/QueryChatappPhoneNumbersResult.cc

@@ -73,6 +73,8 @@ void QueryChatappPhoneNumbersResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
@@ -81,6 +83,11 @@ std::vector<QueryChatappPhoneNumbersResult::PhoneNumbersItem> QueryChatappPhoneN
 	return phoneNumbers_;
 }
 
+std::string QueryChatappPhoneNumbersResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string QueryChatappPhoneNumbersResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/QueryPhoneBusinessProfileResult.cc

@@ -57,9 +57,16 @@ void QueryPhoneBusinessProfileResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string QueryPhoneBusinessProfileResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string QueryPhoneBusinessProfileResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/QueryWabaBusinessInfoResult.cc

@@ -52,9 +52,16 @@ void QueryWabaBusinessInfoResult::parse(const std::string &payload)
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string QueryWabaBusinessInfoResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string QueryWabaBusinessInfoResult::getMessage()const
 {
 	return message_;

+ 7 - 0
cams/src/model/SendChatappMassMessageRequest.cc

@@ -66,6 +66,13 @@ void SendChatappMassMessageRequest::setSenderList(const std::vector<SendChatappM
     for(int dep2 = 0; dep2 != senderList[dep1].payload.size(); dep2++) {
       setBodyParameter(std::string("SenderList") + "." + std::to_string(dep1 + 1) + ".Payload." + std::to_string(dep2 + 1), senderList[dep1].payload[dep2]);
     }
+    setBodyParameter(std::string("SenderList") + "." + std::to_string(dep1 + 1) + ".ProductAction.ThumbnailProductRetailerId", senderList[dep1].productAction.thumbnailProductRetailerId);
+    for(int dep2 = 0; dep2 != senderList[dep1].productAction.sections.size(); dep2++) {
+      setBodyParameter(std::string("SenderList") + "." + std::to_string(dep1 + 1) + ".ProductAction.Sections." + std::to_string(dep2 + 1) + ".Title", senderList[dep1].productAction.sections[dep2].title);
+      for(int dep3 = 0; dep3 != senderList[dep1].productAction.sections[dep2].productItems.size(); dep3++) {
+        setBodyParameter(std::string("SenderList") + "." + std::to_string(dep1 + 1) + ".ProductAction.Sections." + std::to_string(dep2 + 1) + ".ProductItems." + std::to_string(dep3 + 1) + ".ProductRetailerId", senderList[dep1].productAction.sections[dep2].productItems[dep3].productRetailerId);
+      }
+    }
   }
 }
 

+ 7 - 0
cams/src/model/SendChatappMassMessageResult.cc

@@ -45,9 +45,16 @@ void SendChatappMassMessageResult::parse(const std::string &payload)
 		message_ = value["Message"].asString();
 	if(!value["GroupMessageId"].isNull())
 		groupMessageId_ = value["GroupMessageId"].asString();
+	if(!value["AccessDeniedDetail"].isNull())
+		accessDeniedDetail_ = value["AccessDeniedDetail"].asString();
 
 }
 
+std::string SendChatappMassMessageResult::getAccessDeniedDetail()const
+{
+	return accessDeniedDetail_;
+}
+
 std::string SendChatappMassMessageResult::getMessage()const
 {
 	return message_;

Some files were not shown because too many files changed in this diff