Quellcode durchsuchen

Add Dynamic Tag API.

sdk-team vor 6 Jahren
Ursprung
Commit
7b50b232ab
29 geänderte Dateien mit 1352 neuen und 49 gelöschten Zeilen
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 16 0
      cms/CMakeLists.txt
  4. 32 0
      cms/include/alibabacloud/cms/CmsClient.h
  5. 75 0
      cms/include/alibabacloud/cms/model/CreateDynamicTagGroupRequest.h
  6. 55 0
      cms/include/alibabacloud/cms/model/CreateDynamicTagGroupResult.h
  7. 48 0
      cms/include/alibabacloud/cms/model/DeleteDynamicTagGroupRequest.h
  8. 55 0
      cms/include/alibabacloud/cms/model/DeleteDynamicTagGroupResult.h
  9. 3 3
      cms/include/alibabacloud/cms/model/DescribeAlertHistoryListRequest.h
  10. 3 2
      cms/include/alibabacloud/cms/model/DescribeAlertHistoryListResult.h
  11. 54 0
      cms/include/alibabacloud/cms/model/DescribeDynamicTagRuleListRequest.h
  12. 79 0
      cms/include/alibabacloud/cms/model/DescribeDynamicTagRuleListResult.h
  13. 12 6
      cms/include/alibabacloud/cms/model/DescribeMonitorGroupsRequest.h
  14. 1 0
      cms/include/alibabacloud/cms/model/DescribeMonitorGroupsResult.h
  15. 48 0
      cms/include/alibabacloud/cms/model/DescribeProductResourceTagKeyListRequest.h
  16. 59 0
      cms/include/alibabacloud/cms/model/DescribeProductResourceTagKeyListResult.h
  17. 144 0
      cms/src/CmsClient.cc
  18. 127 0
      cms/src/model/CreateDynamicTagGroupRequest.cc
  19. 65 0
      cms/src/model/CreateDynamicTagGroupResult.cc
  20. 40 0
      cms/src/model/DeleteDynamicTagGroupRequest.cc
  21. 65 0
      cms/src/model/DeleteDynamicTagGroupResult.cc
  22. 11 11
      cms/src/model/DescribeAlertHistoryListRequest.cc
  23. 6 4
      cms/src/model/DescribeAlertHistoryListResult.cc
  24. 62 0
      cms/src/model/DescribeDynamicTagRuleListRequest.cc
  25. 122 0
      cms/src/model/DescribeDynamicTagRuleListResult.cc
  26. 44 22
      cms/src/model/DescribeMonitorGroupsRequest.cc
  27. 2 0
      cms/src/model/DescribeMonitorGroupsResult.cc
  28. 40 0
      cms/src/model/DescribeProductResourceTagKeyListRequest.cc
  29. 80 0
      cms/src/model/DescribeProductResourceTagKeyListResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-01-13 Version 1.36.239
+- Add Dynamic Tag API.
+
 2020-01-13 Version 1.36.238
 - Supported InstanceMaintenanceAtrributes for maintening the attributes of instances.
 - Deleted MaintenanceProperty.

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.238
+1.36.239

+ 16 - 0
cms/CMakeLists.txt

@@ -25,6 +25,8 @@ set(cms_public_header_model
 	include/alibabacloud/cms/model/AddTagsResult.h
 	include/alibabacloud/cms/model/ApplyMetricRuleTemplateRequest.h
 	include/alibabacloud/cms/model/ApplyMetricRuleTemplateResult.h
+	include/alibabacloud/cms/model/CreateDynamicTagGroupRequest.h
+	include/alibabacloud/cms/model/CreateDynamicTagGroupResult.h
 	include/alibabacloud/cms/model/CreateGroupMetricRulesRequest.h
 	include/alibabacloud/cms/model/CreateGroupMetricRulesResult.h
 	include/alibabacloud/cms/model/CreateGroupMonitoringAgentProcessRequest.h
@@ -53,6 +55,8 @@ set(cms_public_header_model
 	include/alibabacloud/cms/model/DeleteContactGroupResult.h
 	include/alibabacloud/cms/model/DeleteCustomMetricRequest.h
 	include/alibabacloud/cms/model/DeleteCustomMetricResult.h
+	include/alibabacloud/cms/model/DeleteDynamicTagGroupRequest.h
+	include/alibabacloud/cms/model/DeleteDynamicTagGroupResult.h
 	include/alibabacloud/cms/model/DeleteEventRuleTargetsRequest.h
 	include/alibabacloud/cms/model/DeleteEventRuleTargetsResult.h
 	include/alibabacloud/cms/model/DeleteEventRulesRequest.h
@@ -101,6 +105,8 @@ set(cms_public_header_model
 	include/alibabacloud/cms/model/DescribeCustomEventHistogramResult.h
 	include/alibabacloud/cms/model/DescribeCustomMetricListRequest.h
 	include/alibabacloud/cms/model/DescribeCustomMetricListResult.h
+	include/alibabacloud/cms/model/DescribeDynamicTagRuleListRequest.h
+	include/alibabacloud/cms/model/DescribeDynamicTagRuleListResult.h
 	include/alibabacloud/cms/model/DescribeEventRuleAttributeRequest.h
 	include/alibabacloud/cms/model/DescribeEventRuleAttributeResult.h
 	include/alibabacloud/cms/model/DescribeEventRuleListRequest.h
@@ -155,6 +161,8 @@ set(cms_public_header_model
 	include/alibabacloud/cms/model/DescribeMonitoringAgentStatusesResult.h
 	include/alibabacloud/cms/model/DescribeMonitoringConfigRequest.h
 	include/alibabacloud/cms/model/DescribeMonitoringConfigResult.h
+	include/alibabacloud/cms/model/DescribeProductResourceTagKeyListRequest.h
+	include/alibabacloud/cms/model/DescribeProductResourceTagKeyListResult.h
 	include/alibabacloud/cms/model/DescribeProductsOfActiveMetricRuleRequest.h
 	include/alibabacloud/cms/model/DescribeProductsOfActiveMetricRuleResult.h
 	include/alibabacloud/cms/model/DescribeProjectMetaRequest.h
@@ -256,6 +264,8 @@ set(cms_src
 	src/model/AddTagsResult.cc
 	src/model/ApplyMetricRuleTemplateRequest.cc
 	src/model/ApplyMetricRuleTemplateResult.cc
+	src/model/CreateDynamicTagGroupRequest.cc
+	src/model/CreateDynamicTagGroupResult.cc
 	src/model/CreateGroupMetricRulesRequest.cc
 	src/model/CreateGroupMetricRulesResult.cc
 	src/model/CreateGroupMonitoringAgentProcessRequest.cc
@@ -284,6 +294,8 @@ set(cms_src
 	src/model/DeleteContactGroupResult.cc
 	src/model/DeleteCustomMetricRequest.cc
 	src/model/DeleteCustomMetricResult.cc
+	src/model/DeleteDynamicTagGroupRequest.cc
+	src/model/DeleteDynamicTagGroupResult.cc
 	src/model/DeleteEventRuleTargetsRequest.cc
 	src/model/DeleteEventRuleTargetsResult.cc
 	src/model/DeleteEventRulesRequest.cc
@@ -332,6 +344,8 @@ set(cms_src
 	src/model/DescribeCustomEventHistogramResult.cc
 	src/model/DescribeCustomMetricListRequest.cc
 	src/model/DescribeCustomMetricListResult.cc
+	src/model/DescribeDynamicTagRuleListRequest.cc
+	src/model/DescribeDynamicTagRuleListResult.cc
 	src/model/DescribeEventRuleAttributeRequest.cc
 	src/model/DescribeEventRuleAttributeResult.cc
 	src/model/DescribeEventRuleListRequest.cc
@@ -386,6 +400,8 @@ set(cms_src
 	src/model/DescribeMonitoringAgentStatusesResult.cc
 	src/model/DescribeMonitoringConfigRequest.cc
 	src/model/DescribeMonitoringConfigResult.cc
+	src/model/DescribeProductResourceTagKeyListRequest.cc
+	src/model/DescribeProductResourceTagKeyListResult.cc
 	src/model/DescribeProductsOfActiveMetricRuleRequest.cc
 	src/model/DescribeProductsOfActiveMetricRuleResult.cc
 	src/model/DescribeProjectMetaRequest.cc

+ 32 - 0
cms/include/alibabacloud/cms/CmsClient.h

@@ -26,6 +26,8 @@
 #include "model/AddTagsResult.h"
 #include "model/ApplyMetricRuleTemplateRequest.h"
 #include "model/ApplyMetricRuleTemplateResult.h"
+#include "model/CreateDynamicTagGroupRequest.h"
+#include "model/CreateDynamicTagGroupResult.h"
 #include "model/CreateGroupMetricRulesRequest.h"
 #include "model/CreateGroupMetricRulesResult.h"
 #include "model/CreateGroupMonitoringAgentProcessRequest.h"
@@ -54,6 +56,8 @@
 #include "model/DeleteContactGroupResult.h"
 #include "model/DeleteCustomMetricRequest.h"
 #include "model/DeleteCustomMetricResult.h"
+#include "model/DeleteDynamicTagGroupRequest.h"
+#include "model/DeleteDynamicTagGroupResult.h"
 #include "model/DeleteEventRuleTargetsRequest.h"
 #include "model/DeleteEventRuleTargetsResult.h"
 #include "model/DeleteEventRulesRequest.h"
@@ -102,6 +106,8 @@
 #include "model/DescribeCustomEventHistogramResult.h"
 #include "model/DescribeCustomMetricListRequest.h"
 #include "model/DescribeCustomMetricListResult.h"
+#include "model/DescribeDynamicTagRuleListRequest.h"
+#include "model/DescribeDynamicTagRuleListResult.h"
 #include "model/DescribeEventRuleAttributeRequest.h"
 #include "model/DescribeEventRuleAttributeResult.h"
 #include "model/DescribeEventRuleListRequest.h"
@@ -156,6 +162,8 @@
 #include "model/DescribeMonitoringAgentStatusesResult.h"
 #include "model/DescribeMonitoringConfigRequest.h"
 #include "model/DescribeMonitoringConfigResult.h"
+#include "model/DescribeProductResourceTagKeyListRequest.h"
+#include "model/DescribeProductResourceTagKeyListResult.h"
 #include "model/DescribeProductsOfActiveMetricRuleRequest.h"
 #include "model/DescribeProductsOfActiveMetricRuleResult.h"
 #include "model/DescribeProjectMetaRequest.h"
@@ -265,6 +273,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ApplyMetricRuleTemplateResult> ApplyMetricRuleTemplateOutcome;
 			typedef std::future<ApplyMetricRuleTemplateOutcome> ApplyMetricRuleTemplateOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::ApplyMetricRuleTemplateRequest&, const ApplyMetricRuleTemplateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ApplyMetricRuleTemplateAsyncHandler;
+			typedef Outcome<Error, Model::CreateDynamicTagGroupResult> CreateDynamicTagGroupOutcome;
+			typedef std::future<CreateDynamicTagGroupOutcome> CreateDynamicTagGroupOutcomeCallable;
+			typedef std::function<void(const CmsClient*, const Model::CreateDynamicTagGroupRequest&, const CreateDynamicTagGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDynamicTagGroupAsyncHandler;
 			typedef Outcome<Error, Model::CreateGroupMetricRulesResult> CreateGroupMetricRulesOutcome;
 			typedef std::future<CreateGroupMetricRulesOutcome> CreateGroupMetricRulesOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::CreateGroupMetricRulesRequest&, const CreateGroupMetricRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateGroupMetricRulesAsyncHandler;
@@ -307,6 +318,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteCustomMetricResult> DeleteCustomMetricOutcome;
 			typedef std::future<DeleteCustomMetricOutcome> DeleteCustomMetricOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DeleteCustomMetricRequest&, const DeleteCustomMetricOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteCustomMetricAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDynamicTagGroupResult> DeleteDynamicTagGroupOutcome;
+			typedef std::future<DeleteDynamicTagGroupOutcome> DeleteDynamicTagGroupOutcomeCallable;
+			typedef std::function<void(const CmsClient*, const Model::DeleteDynamicTagGroupRequest&, const DeleteDynamicTagGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDynamicTagGroupAsyncHandler;
 			typedef Outcome<Error, Model::DeleteEventRuleTargetsResult> DeleteEventRuleTargetsOutcome;
 			typedef std::future<DeleteEventRuleTargetsOutcome> DeleteEventRuleTargetsOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DeleteEventRuleTargetsRequest&, const DeleteEventRuleTargetsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEventRuleTargetsAsyncHandler;
@@ -379,6 +393,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeCustomMetricListResult> DescribeCustomMetricListOutcome;
 			typedef std::future<DescribeCustomMetricListOutcome> DescribeCustomMetricListOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DescribeCustomMetricListRequest&, const DescribeCustomMetricListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeCustomMetricListAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDynamicTagRuleListResult> DescribeDynamicTagRuleListOutcome;
+			typedef std::future<DescribeDynamicTagRuleListOutcome> DescribeDynamicTagRuleListOutcomeCallable;
+			typedef std::function<void(const CmsClient*, const Model::DescribeDynamicTagRuleListRequest&, const DescribeDynamicTagRuleListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDynamicTagRuleListAsyncHandler;
 			typedef Outcome<Error, Model::DescribeEventRuleAttributeResult> DescribeEventRuleAttributeOutcome;
 			typedef std::future<DescribeEventRuleAttributeOutcome> DescribeEventRuleAttributeOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DescribeEventRuleAttributeRequest&, const DescribeEventRuleAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEventRuleAttributeAsyncHandler;
@@ -460,6 +477,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeMonitoringConfigResult> DescribeMonitoringConfigOutcome;
 			typedef std::future<DescribeMonitoringConfigOutcome> DescribeMonitoringConfigOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DescribeMonitoringConfigRequest&, const DescribeMonitoringConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeMonitoringConfigAsyncHandler;
+			typedef Outcome<Error, Model::DescribeProductResourceTagKeyListResult> DescribeProductResourceTagKeyListOutcome;
+			typedef std::future<DescribeProductResourceTagKeyListOutcome> DescribeProductResourceTagKeyListOutcomeCallable;
+			typedef std::function<void(const CmsClient*, const Model::DescribeProductResourceTagKeyListRequest&, const DescribeProductResourceTagKeyListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProductResourceTagKeyListAsyncHandler;
 			typedef Outcome<Error, Model::DescribeProductsOfActiveMetricRuleResult> DescribeProductsOfActiveMetricRuleOutcome;
 			typedef std::future<DescribeProductsOfActiveMetricRuleOutcome> DescribeProductsOfActiveMetricRuleOutcomeCallable;
 			typedef std::function<void(const CmsClient*, const Model::DescribeProductsOfActiveMetricRuleRequest&, const DescribeProductsOfActiveMetricRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProductsOfActiveMetricRuleAsyncHandler;
@@ -612,6 +632,9 @@ namespace AlibabaCloud
 			ApplyMetricRuleTemplateOutcome applyMetricRuleTemplate(const Model::ApplyMetricRuleTemplateRequest &request)const;
 			void applyMetricRuleTemplateAsync(const Model::ApplyMetricRuleTemplateRequest& request, const ApplyMetricRuleTemplateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ApplyMetricRuleTemplateOutcomeCallable applyMetricRuleTemplateCallable(const Model::ApplyMetricRuleTemplateRequest& request) const;
+			CreateDynamicTagGroupOutcome createDynamicTagGroup(const Model::CreateDynamicTagGroupRequest &request)const;
+			void createDynamicTagGroupAsync(const Model::CreateDynamicTagGroupRequest& request, const CreateDynamicTagGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDynamicTagGroupOutcomeCallable createDynamicTagGroupCallable(const Model::CreateDynamicTagGroupRequest& request) const;
 			CreateGroupMetricRulesOutcome createGroupMetricRules(const Model::CreateGroupMetricRulesRequest &request)const;
 			void createGroupMetricRulesAsync(const Model::CreateGroupMetricRulesRequest& request, const CreateGroupMetricRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateGroupMetricRulesOutcomeCallable createGroupMetricRulesCallable(const Model::CreateGroupMetricRulesRequest& request) const;
@@ -654,6 +677,9 @@ namespace AlibabaCloud
 			DeleteCustomMetricOutcome deleteCustomMetric(const Model::DeleteCustomMetricRequest &request)const;
 			void deleteCustomMetricAsync(const Model::DeleteCustomMetricRequest& request, const DeleteCustomMetricAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteCustomMetricOutcomeCallable deleteCustomMetricCallable(const Model::DeleteCustomMetricRequest& request) const;
+			DeleteDynamicTagGroupOutcome deleteDynamicTagGroup(const Model::DeleteDynamicTagGroupRequest &request)const;
+			void deleteDynamicTagGroupAsync(const Model::DeleteDynamicTagGroupRequest& request, const DeleteDynamicTagGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDynamicTagGroupOutcomeCallable deleteDynamicTagGroupCallable(const Model::DeleteDynamicTagGroupRequest& request) const;
 			DeleteEventRuleTargetsOutcome deleteEventRuleTargets(const Model::DeleteEventRuleTargetsRequest &request)const;
 			void deleteEventRuleTargetsAsync(const Model::DeleteEventRuleTargetsRequest& request, const DeleteEventRuleTargetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteEventRuleTargetsOutcomeCallable deleteEventRuleTargetsCallable(const Model::DeleteEventRuleTargetsRequest& request) const;
@@ -726,6 +752,9 @@ namespace AlibabaCloud
 			DescribeCustomMetricListOutcome describeCustomMetricList(const Model::DescribeCustomMetricListRequest &request)const;
 			void describeCustomMetricListAsync(const Model::DescribeCustomMetricListRequest& request, const DescribeCustomMetricListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeCustomMetricListOutcomeCallable describeCustomMetricListCallable(const Model::DescribeCustomMetricListRequest& request) const;
+			DescribeDynamicTagRuleListOutcome describeDynamicTagRuleList(const Model::DescribeDynamicTagRuleListRequest &request)const;
+			void describeDynamicTagRuleListAsync(const Model::DescribeDynamicTagRuleListRequest& request, const DescribeDynamicTagRuleListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDynamicTagRuleListOutcomeCallable describeDynamicTagRuleListCallable(const Model::DescribeDynamicTagRuleListRequest& request) const;
 			DescribeEventRuleAttributeOutcome describeEventRuleAttribute(const Model::DescribeEventRuleAttributeRequest &request)const;
 			void describeEventRuleAttributeAsync(const Model::DescribeEventRuleAttributeRequest& request, const DescribeEventRuleAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEventRuleAttributeOutcomeCallable describeEventRuleAttributeCallable(const Model::DescribeEventRuleAttributeRequest& request) const;
@@ -807,6 +836,9 @@ namespace AlibabaCloud
 			DescribeMonitoringConfigOutcome describeMonitoringConfig(const Model::DescribeMonitoringConfigRequest &request)const;
 			void describeMonitoringConfigAsync(const Model::DescribeMonitoringConfigRequest& request, const DescribeMonitoringConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeMonitoringConfigOutcomeCallable describeMonitoringConfigCallable(const Model::DescribeMonitoringConfigRequest& request) const;
+			DescribeProductResourceTagKeyListOutcome describeProductResourceTagKeyList(const Model::DescribeProductResourceTagKeyListRequest &request)const;
+			void describeProductResourceTagKeyListAsync(const Model::DescribeProductResourceTagKeyListRequest& request, const DescribeProductResourceTagKeyListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeProductResourceTagKeyListOutcomeCallable describeProductResourceTagKeyListCallable(const Model::DescribeProductResourceTagKeyListRequest& request) const;
 			DescribeProductsOfActiveMetricRuleOutcome describeProductsOfActiveMetricRule(const Model::DescribeProductsOfActiveMetricRuleRequest &request)const;
 			void describeProductsOfActiveMetricRuleAsync(const Model::DescribeProductsOfActiveMetricRuleRequest& request, const DescribeProductsOfActiveMetricRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeProductsOfActiveMetricRuleOutcomeCallable describeProductsOfActiveMetricRuleCallable(const Model::DescribeProductsOfActiveMetricRuleRequest& request) const;

+ 75 - 0
cms/include/alibabacloud/cms/model/CreateDynamicTagGroupRequest.h

@@ -0,0 +1,75 @@
+/*
+ * 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_CMS_MODEL_CREATEDYNAMICTAGGROUPREQUEST_H_
+#define ALIBABACLOUD_CMS_MODEL_CREATEDYNAMICTAGGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT CreateDynamicTagGroupRequest : public RpcServiceRequest
+			{
+				struct MatchExpress
+				{
+					std::string tagName;
+					std::string tagValue;
+					std::string tagValueMatchFunction;
+				};
+
+			public:
+				CreateDynamicTagGroupRequest();
+				~CreateDynamicTagGroupRequest();
+
+				bool getEnableSubscribeEvent()const;
+				void setEnableSubscribeEvent(bool enableSubscribeEvent);
+				std::string getMatchExpressFilterRelation()const;
+				void setMatchExpressFilterRelation(const std::string& matchExpressFilterRelation);
+				bool getEnableInstallAgent()const;
+				void setEnableInstallAgent(bool enableInstallAgent);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::vector<MatchExpress> getMatchExpress()const;
+				void setMatchExpress(const std::vector<MatchExpress>& matchExpress);
+				std::vector<std::string> getContactGroupList()const;
+				void setContactGroupList(const std::vector<std::string>& contactGroupList);
+				std::vector<std::string> getTemplateIdList()const;
+				void setTemplateIdList(const std::vector<std::string>& templateIdList);
+				std::string getTagKey()const;
+				void setTagKey(const std::string& tagKey);
+
+            private:
+				bool enableSubscribeEvent_;
+				std::string matchExpressFilterRelation_;
+				bool enableInstallAgent_;
+				std::string regionId_;
+				std::vector<MatchExpress> matchExpress_;
+				std::vector<std::string> contactGroupList_;
+				std::vector<std::string> templateIdList_;
+				std::string tagKey_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_CREATEDYNAMICTAGGROUPREQUEST_H_

+ 55 - 0
cms/include/alibabacloud/cms/model/CreateDynamicTagGroupResult.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_CMS_MODEL_CREATEDYNAMICTAGGROUPRESULT_H_
+#define ALIBABACLOUD_CMS_MODEL_CREATEDYNAMICTAGGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT CreateDynamicTagGroupResult : public ServiceResult
+			{
+			public:
+
+
+				CreateDynamicTagGroupResult();
+				explicit CreateDynamicTagGroupResult(const std::string &payload);
+				~CreateDynamicTagGroupResult();
+				std::string getMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_CREATEDYNAMICTAGGROUPRESULT_H_

+ 48 - 0
cms/include/alibabacloud/cms/model/DeleteDynamicTagGroupRequest.h

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

+ 55 - 0
cms/include/alibabacloud/cms/model/DeleteDynamicTagGroupResult.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_CMS_MODEL_DELETEDYNAMICTAGGROUPRESULT_H_
+#define ALIBABACLOUD_CMS_MODEL_DELETEDYNAMICTAGGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT DeleteDynamicTagGroupResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDynamicTagGroupResult();
+				explicit DeleteDynamicTagGroupResult(const std::string &payload);
+				~DeleteDynamicTagGroupResult();
+				std::string getMessage()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_DELETEDYNAMICTAGGROUPRESULT_H_

+ 3 - 3
cms/include/alibabacloud/cms/model/DescribeAlertHistoryListRequest.h

@@ -35,8 +35,6 @@ namespace AlibabaCloud
 				DescribeAlertHistoryListRequest();
 				~DescribeAlertHistoryListRequest();
 
-				std::string getAlertStatus()const;
-				void setAlertStatus(const std::string& alertStatus);
 				std::string getRuleName()const;
 				void setRuleName(const std::string& ruleName);
 				std::string getStartTime()const;
@@ -59,9 +57,10 @@ namespace AlibabaCloud
 				void setPage(int page);
 				std::string getRuleId()const;
 				void setRuleId(const std::string& ruleId);
+				std::string getStatus()const;
+				void setStatus(const std::string& status);
 
             private:
-				std::string alertStatus_;
 				std::string ruleName_;
 				std::string startTime_;
 				int pageSize_;
@@ -73,6 +72,7 @@ namespace AlibabaCloud
 				std::string _namespace_;
 				int page_;
 				std::string ruleId_;
+				std::string status_;
 
 			};
 		}

+ 3 - 2
cms/include/alibabacloud/cms/model/DescribeAlertHistoryListResult.h

@@ -36,7 +36,6 @@ namespace AlibabaCloud
 				{
 					int status;
 					std::vector<std::string> contactGroups;
-					std::string alertName;
 					std::string ruleId;
 					std::string dimensions;
 					int evaluationCount;
@@ -44,15 +43,17 @@ namespace AlibabaCloud
 					std::vector<std::string> contactMails;
 					std::vector<std::string> contactSmses;
 					long alertTime;
-					std::string alertState;
 					std::string groupId;
 					std::string instanceName;
 					std::string metricName;
 					std::vector<std::string> contacts;
 					std::string expression;
+					std::string state;
 					std::string value;
 					std::string webhooks;
 					std::string level;
+					std::string id;
+					std::string preLevel;
 					long lastTime;
 					std::string ruleName;
 					std::vector<std::string> contactALIIMs;

+ 54 - 0
cms/include/alibabacloud/cms/model/DescribeDynamicTagRuleListRequest.h

@@ -0,0 +1,54 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTREQUEST_H_
+#define ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT DescribeDynamicTagRuleListRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDynamicTagRuleListRequest();
+				~DescribeDynamicTagRuleListRequest();
+
+				std::string getPageNumber()const;
+				void setPageNumber(const std::string& pageNumber);
+				std::string getPageSize()const;
+				void setPageSize(const std::string& pageSize);
+				std::string getTagKey()const;
+				void setTagKey(const std::string& tagKey);
+
+            private:
+				std::string pageNumber_;
+				std::string pageSize_;
+				std::string tagKey_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTREQUEST_H_

+ 79 - 0
cms/include/alibabacloud/cms/model/DescribeDynamicTagRuleListResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTRESULT_H_
+#define ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT DescribeDynamicTagRuleListResult : public ServiceResult
+			{
+			public:
+				struct TagGroup
+				{
+					struct MatchExpressItem
+					{
+						std::string tagName;
+						std::string tagValue;
+						std::string tagValueMatchFunction;
+					};
+					std::string dynamicTagGroupId;
+					std::string status;
+					std::string matchExpressFilterRelation;
+					std::vector<std::string> templateIdList;
+					std::string tagKey;
+					std::vector<TagGroup::MatchExpressItem> matchExpress;
+					std::string regionId;
+				};
+
+
+				DescribeDynamicTagRuleListResult();
+				explicit DescribeDynamicTagRuleListResult(const std::string &payload);
+				~DescribeDynamicTagRuleListResult();
+				std::string getMessage()const;
+				std::string getPageSize()const;
+				std::string getPageNumber()const;
+				int getTotal()const;
+				std::vector<TagGroup> getTagGroupList()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string pageSize_;
+				std::string pageNumber_;
+				int total_;
+				std::vector<TagGroup> tagGroupList_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_DESCRIBEDYNAMICTAGRULELISTRESULT_H_

+ 12 - 6
cms/include/alibabacloud/cms/model/DescribeMonitorGroupsRequest.h

@@ -46,29 +46,35 @@ namespace AlibabaCloud
 				void setIncludeTemplateHistory(bool includeTemplateHistory);
 				std::string getType()const;
 				void setType(const std::string& type);
-				std::string getGroupName()const;
-				void setGroupName(const std::string& groupName);
 				int getPageNumber()const;
 				void setPageNumber(int pageNumber);
-				std::string getInstanceId()const;
-				void setInstanceId(const std::string& instanceId);
 				int getPageSize()const;
 				void setPageSize(int pageSize);
 				std::vector<Tag> getTag()const;
 				void setTag(const std::vector<Tag>& tag);
 				std::string getKeyword()const;
 				void setKeyword(const std::string& keyword);
+				std::string getGroupId()const;
+				void setGroupId(const std::string& groupId);
+				std::string getGroupName()const;
+				void setGroupName(const std::string& groupName);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDynamicTagGroupId()const;
+				void setDynamicTagGroupId(const std::string& dynamicTagGroupId);
 
             private:
 				bool selectContactGroups_;
 				bool includeTemplateHistory_;
 				std::string type_;
-				std::string groupName_;
 				int pageNumber_;
-				std::string instanceId_;
 				int pageSize_;
 				std::vector<Tag> tag_;
 				std::string keyword_;
+				std::string groupId_;
+				std::string groupName_;
+				std::string instanceId_;
+				std::string dynamicTagGroupId_;
 
 			};
 		}

+ 1 - 0
cms/include/alibabacloud/cms/model/DescribeMonitorGroupsResult.h

@@ -44,6 +44,7 @@ namespace AlibabaCloud
 						std::string key;
 					};
 					std::string groupName;
+					long dynamicTagGroupId;
 					std::vector<Resource::ContactGroup> contactGroups;
 					std::string type;
 					long gmtCreate;

+ 48 - 0
cms/include/alibabacloud/cms/model/DescribeProductResourceTagKeyListRequest.h

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

+ 59 - 0
cms/include/alibabacloud/cms/model/DescribeProductResourceTagKeyListResult.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_CMS_MODEL_DESCRIBEPRODUCTRESOURCETAGKEYLISTRESULT_H_
+#define ALIBABACLOUD_CMS_MODEL_DESCRIBEPRODUCTRESOURCETAGKEYLISTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/cms/CmsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Cms
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CMS_EXPORT DescribeProductResourceTagKeyListResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeProductResourceTagKeyListResult();
+				explicit DescribeProductResourceTagKeyListResult(const std::string &payload);
+				~DescribeProductResourceTagKeyListResult();
+				std::string getMessage()const;
+				std::string getNextToken()const;
+				std::string getCode()const;
+				std::vector<std::string> getTagKeys()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string nextToken_;
+				std::string code_;
+				std::vector<std::string> tagKeys_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CMS_MODEL_DESCRIBEPRODUCTRESOURCETAGKEYLISTRESULT_H_

+ 144 - 0
cms/src/CmsClient.cc

@@ -123,6 +123,42 @@ CmsClient::ApplyMetricRuleTemplateOutcomeCallable CmsClient::applyMetricRuleTemp
 	return task->get_future();
 }
 
+CmsClient::CreateDynamicTagGroupOutcome CmsClient::createDynamicTagGroup(const CreateDynamicTagGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDynamicTagGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDynamicTagGroupOutcome(CreateDynamicTagGroupResult(outcome.result()));
+	else
+		return CreateDynamicTagGroupOutcome(outcome.error());
+}
+
+void CmsClient::createDynamicTagGroupAsync(const CreateDynamicTagGroupRequest& request, const CreateDynamicTagGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDynamicTagGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CmsClient::CreateDynamicTagGroupOutcomeCallable CmsClient::createDynamicTagGroupCallable(const CreateDynamicTagGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDynamicTagGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->createDynamicTagGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CmsClient::CreateGroupMetricRulesOutcome CmsClient::createGroupMetricRules(const CreateGroupMetricRulesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -627,6 +663,42 @@ CmsClient::DeleteCustomMetricOutcomeCallable CmsClient::deleteCustomMetricCallab
 	return task->get_future();
 }
 
+CmsClient::DeleteDynamicTagGroupOutcome CmsClient::deleteDynamicTagGroup(const DeleteDynamicTagGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDynamicTagGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDynamicTagGroupOutcome(DeleteDynamicTagGroupResult(outcome.result()));
+	else
+		return DeleteDynamicTagGroupOutcome(outcome.error());
+}
+
+void CmsClient::deleteDynamicTagGroupAsync(const DeleteDynamicTagGroupRequest& request, const DeleteDynamicTagGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDynamicTagGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CmsClient::DeleteDynamicTagGroupOutcomeCallable CmsClient::deleteDynamicTagGroupCallable(const DeleteDynamicTagGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDynamicTagGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDynamicTagGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CmsClient::DeleteEventRuleTargetsOutcome CmsClient::deleteEventRuleTargets(const DeleteEventRuleTargetsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1491,6 +1563,42 @@ CmsClient::DescribeCustomMetricListOutcomeCallable CmsClient::describeCustomMetr
 	return task->get_future();
 }
 
+CmsClient::DescribeDynamicTagRuleListOutcome CmsClient::describeDynamicTagRuleList(const DescribeDynamicTagRuleListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDynamicTagRuleListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDynamicTagRuleListOutcome(DescribeDynamicTagRuleListResult(outcome.result()));
+	else
+		return DescribeDynamicTagRuleListOutcome(outcome.error());
+}
+
+void CmsClient::describeDynamicTagRuleListAsync(const DescribeDynamicTagRuleListRequest& request, const DescribeDynamicTagRuleListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDynamicTagRuleList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CmsClient::DescribeDynamicTagRuleListOutcomeCallable CmsClient::describeDynamicTagRuleListCallable(const DescribeDynamicTagRuleListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDynamicTagRuleListOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDynamicTagRuleList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CmsClient::DescribeEventRuleAttributeOutcome CmsClient::describeEventRuleAttribute(const DescribeEventRuleAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2463,6 +2571,42 @@ CmsClient::DescribeMonitoringConfigOutcomeCallable CmsClient::describeMonitoring
 	return task->get_future();
 }
 
+CmsClient::DescribeProductResourceTagKeyListOutcome CmsClient::describeProductResourceTagKeyList(const DescribeProductResourceTagKeyListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeProductResourceTagKeyListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeProductResourceTagKeyListOutcome(DescribeProductResourceTagKeyListResult(outcome.result()));
+	else
+		return DescribeProductResourceTagKeyListOutcome(outcome.error());
+}
+
+void CmsClient::describeProductResourceTagKeyListAsync(const DescribeProductResourceTagKeyListRequest& request, const DescribeProductResourceTagKeyListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeProductResourceTagKeyList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CmsClient::DescribeProductResourceTagKeyListOutcomeCallable CmsClient::describeProductResourceTagKeyListCallable(const DescribeProductResourceTagKeyListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeProductResourceTagKeyListOutcome()>>(
+			[this, request]()
+			{
+			return this->describeProductResourceTagKeyList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CmsClient::DescribeProductsOfActiveMetricRuleOutcome CmsClient::describeProductsOfActiveMetricRule(const DescribeProductsOfActiveMetricRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 127 - 0
cms/src/model/CreateDynamicTagGroupRequest.cc

@@ -0,0 +1,127 @@
+/*
+ * 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/cms/model/CreateDynamicTagGroupRequest.h>
+
+using AlibabaCloud::Cms::Model::CreateDynamicTagGroupRequest;
+
+CreateDynamicTagGroupRequest::CreateDynamicTagGroupRequest() :
+	RpcServiceRequest("cms", "2019-01-01", "CreateDynamicTagGroup")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateDynamicTagGroupRequest::~CreateDynamicTagGroupRequest()
+{}
+
+bool CreateDynamicTagGroupRequest::getEnableSubscribeEvent()const
+{
+	return enableSubscribeEvent_;
+}
+
+void CreateDynamicTagGroupRequest::setEnableSubscribeEvent(bool enableSubscribeEvent)
+{
+	enableSubscribeEvent_ = enableSubscribeEvent;
+	setCoreParameter("EnableSubscribeEvent", enableSubscribeEvent ? "true" : "false");
+}
+
+std::string CreateDynamicTagGroupRequest::getMatchExpressFilterRelation()const
+{
+	return matchExpressFilterRelation_;
+}
+
+void CreateDynamicTagGroupRequest::setMatchExpressFilterRelation(const std::string& matchExpressFilterRelation)
+{
+	matchExpressFilterRelation_ = matchExpressFilterRelation;
+	setCoreParameter("MatchExpressFilterRelation", matchExpressFilterRelation);
+}
+
+bool CreateDynamicTagGroupRequest::getEnableInstallAgent()const
+{
+	return enableInstallAgent_;
+}
+
+void CreateDynamicTagGroupRequest::setEnableInstallAgent(bool enableInstallAgent)
+{
+	enableInstallAgent_ = enableInstallAgent;
+	setCoreParameter("EnableInstallAgent", enableInstallAgent ? "true" : "false");
+}
+
+std::string CreateDynamicTagGroupRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void CreateDynamicTagGroupRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setCoreParameter("RegionId", regionId);
+}
+
+std::vector<CreateDynamicTagGroupRequest::MatchExpress> CreateDynamicTagGroupRequest::getMatchExpress()const
+{
+	return matchExpress_;
+}
+
+void CreateDynamicTagGroupRequest::setMatchExpress(const std::vector<MatchExpress>& matchExpress)
+{
+	matchExpress_ = matchExpress;
+	for(int dep1 = 0; dep1!= matchExpress.size(); dep1++) {
+		auto matchExpressObj = matchExpress.at(dep1);
+		std::string matchExpressObjStr = "MatchExpress." + std::to_string(dep1);
+		setCoreParameter(matchExpressObjStr + ".TagName", matchExpressObj.tagName);
+		setCoreParameter(matchExpressObjStr + ".TagValue", matchExpressObj.tagValue);
+		setCoreParameter(matchExpressObjStr + ".TagValueMatchFunction", matchExpressObj.tagValueMatchFunction);
+	}
+}
+
+std::vector<std::string> CreateDynamicTagGroupRequest::getContactGroupList()const
+{
+	return contactGroupList_;
+}
+
+void CreateDynamicTagGroupRequest::setContactGroupList(const std::vector<std::string>& contactGroupList)
+{
+	contactGroupList_ = contactGroupList;
+	for(int dep1 = 0; dep1!= contactGroupList.size(); dep1++) {
+		setCoreParameter("ContactGroupList."+ std::to_string(dep1), contactGroupList.at(dep1));
+	}
+}
+
+std::vector<std::string> CreateDynamicTagGroupRequest::getTemplateIdList()const
+{
+	return templateIdList_;
+}
+
+void CreateDynamicTagGroupRequest::setTemplateIdList(const std::vector<std::string>& templateIdList)
+{
+	templateIdList_ = templateIdList;
+	for(int dep1 = 0; dep1!= templateIdList.size(); dep1++) {
+		setCoreParameter("TemplateIdList."+ std::to_string(dep1), templateIdList.at(dep1));
+	}
+}
+
+std::string CreateDynamicTagGroupRequest::getTagKey()const
+{
+	return tagKey_;
+}
+
+void CreateDynamicTagGroupRequest::setTagKey(const std::string& tagKey)
+{
+	tagKey_ = tagKey;
+	setCoreParameter("TagKey", tagKey);
+}
+

+ 65 - 0
cms/src/model/CreateDynamicTagGroupResult.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/cms/model/CreateDynamicTagGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cms;
+using namespace AlibabaCloud::Cms::Model;
+
+CreateDynamicTagGroupResult::CreateDynamicTagGroupResult() :
+	ServiceResult()
+{}
+
+CreateDynamicTagGroupResult::CreateDynamicTagGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDynamicTagGroupResult::~CreateDynamicTagGroupResult()
+{}
+
+void CreateDynamicTagGroupResult::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["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string CreateDynamicTagGroupResult::getMessage()const
+{
+	return message_;
+}
+
+std::string CreateDynamicTagGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool CreateDynamicTagGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 40 - 0
cms/src/model/DeleteDynamicTagGroupRequest.cc

@@ -0,0 +1,40 @@
+/*
+ * 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/cms/model/DeleteDynamicTagGroupRequest.h>
+
+using AlibabaCloud::Cms::Model::DeleteDynamicTagGroupRequest;
+
+DeleteDynamicTagGroupRequest::DeleteDynamicTagGroupRequest() :
+	RpcServiceRequest("cms", "2019-01-01", "DeleteDynamicTagGroup")
+{
+	setMethod(HttpRequest::Method::Put);
+}
+
+DeleteDynamicTagGroupRequest::~DeleteDynamicTagGroupRequest()
+{}
+
+std::string DeleteDynamicTagGroupRequest::getDynamicTagGroupId()const
+{
+	return dynamicTagGroupId_;
+}
+
+void DeleteDynamicTagGroupRequest::setDynamicTagGroupId(const std::string& dynamicTagGroupId)
+{
+	dynamicTagGroupId_ = dynamicTagGroupId;
+	setCoreParameter("DynamicTagGroupId", dynamicTagGroupId);
+}
+

+ 65 - 0
cms/src/model/DeleteDynamicTagGroupResult.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/cms/model/DeleteDynamicTagGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cms;
+using namespace AlibabaCloud::Cms::Model;
+
+DeleteDynamicTagGroupResult::DeleteDynamicTagGroupResult() :
+	ServiceResult()
+{}
+
+DeleteDynamicTagGroupResult::DeleteDynamicTagGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDynamicTagGroupResult::~DeleteDynamicTagGroupResult()
+{}
+
+void DeleteDynamicTagGroupResult::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["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+
+}
+
+std::string DeleteDynamicTagGroupResult::getMessage()const
+{
+	return message_;
+}
+
+std::string DeleteDynamicTagGroupResult::getCode()const
+{
+	return code_;
+}
+
+bool DeleteDynamicTagGroupResult::getSuccess()const
+{
+	return success_;
+}
+

+ 11 - 11
cms/src/model/DescribeAlertHistoryListRequest.cc

@@ -27,17 +27,6 @@ DescribeAlertHistoryListRequest::DescribeAlertHistoryListRequest() :
 DescribeAlertHistoryListRequest::~DescribeAlertHistoryListRequest()
 {}
 
-std::string DescribeAlertHistoryListRequest::getAlertStatus()const
-{
-	return alertStatus_;
-}
-
-void DescribeAlertHistoryListRequest::setAlertStatus(const std::string& alertStatus)
-{
-	alertStatus_ = alertStatus;
-	setCoreParameter("AlertStatus", alertStatus);
-}
-
 std::string DescribeAlertHistoryListRequest::getRuleName()const
 {
 	return ruleName_;
@@ -159,3 +148,14 @@ void DescribeAlertHistoryListRequest::setRuleId(const std::string& ruleId)
 	setCoreParameter("RuleId", ruleId);
 }
 
+std::string DescribeAlertHistoryListRequest::getStatus()const
+{
+	return status_;
+}
+
+void DescribeAlertHistoryListRequest::setStatus(const std::string& status)
+{
+	status_ = status;
+	setCoreParameter("Status", status);
+}
+

+ 6 - 4
cms/src/model/DescribeAlertHistoryListResult.cc

@@ -43,10 +43,10 @@ void DescribeAlertHistoryListResult::parse(const std::string &payload)
 	for (auto valueAlarmHistoryListAlarmHistory : allAlarmHistoryListNode)
 	{
 		AlarmHistory alarmHistoryListObject;
+		if(!valueAlarmHistoryListAlarmHistory["Id"].isNull())
+			alarmHistoryListObject.id = valueAlarmHistoryListAlarmHistory["Id"].asString();
 		if(!valueAlarmHistoryListAlarmHistory["RuleId"].isNull())
 			alarmHistoryListObject.ruleId = valueAlarmHistoryListAlarmHistory["RuleId"].asString();
-		if(!valueAlarmHistoryListAlarmHistory["AlertName"].isNull())
-			alarmHistoryListObject.alertName = valueAlarmHistoryListAlarmHistory["AlertName"].asString();
 		if(!valueAlarmHistoryListAlarmHistory["GroupId"].isNull())
 			alarmHistoryListObject.groupId = valueAlarmHistoryListAlarmHistory["GroupId"].asString();
 		if(!valueAlarmHistoryListAlarmHistory["Namespace"].isNull())
@@ -67,10 +67,12 @@ void DescribeAlertHistoryListResult::parse(const std::string &payload)
 			alarmHistoryListObject.lastTime = std::stol(valueAlarmHistoryListAlarmHistory["LastTime"].asString());
 		if(!valueAlarmHistoryListAlarmHistory["Level"].isNull())
 			alarmHistoryListObject.level = valueAlarmHistoryListAlarmHistory["Level"].asString();
+		if(!valueAlarmHistoryListAlarmHistory["PreLevel"].isNull())
+			alarmHistoryListObject.preLevel = valueAlarmHistoryListAlarmHistory["PreLevel"].asString();
 		if(!valueAlarmHistoryListAlarmHistory["RuleName"].isNull())
 			alarmHistoryListObject.ruleName = valueAlarmHistoryListAlarmHistory["RuleName"].asString();
-		if(!valueAlarmHistoryListAlarmHistory["AlertState"].isNull())
-			alarmHistoryListObject.alertState = valueAlarmHistoryListAlarmHistory["AlertState"].asString();
+		if(!valueAlarmHistoryListAlarmHistory["State"].isNull())
+			alarmHistoryListObject.state = valueAlarmHistoryListAlarmHistory["State"].asString();
 		if(!valueAlarmHistoryListAlarmHistory["Status"].isNull())
 			alarmHistoryListObject.status = std::stoi(valueAlarmHistoryListAlarmHistory["Status"].asString());
 		if(!valueAlarmHistoryListAlarmHistory["Webhooks"].isNull())

+ 62 - 0
cms/src/model/DescribeDynamicTagRuleListRequest.cc

@@ -0,0 +1,62 @@
+/*
+ * 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/cms/model/DescribeDynamicTagRuleListRequest.h>
+
+using AlibabaCloud::Cms::Model::DescribeDynamicTagRuleListRequest;
+
+DescribeDynamicTagRuleListRequest::DescribeDynamicTagRuleListRequest() :
+	RpcServiceRequest("cms", "2019-01-01", "DescribeDynamicTagRuleList")
+{
+	setMethod(HttpRequest::Method::Put);
+}
+
+DescribeDynamicTagRuleListRequest::~DescribeDynamicTagRuleListRequest()
+{}
+
+std::string DescribeDynamicTagRuleListRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeDynamicTagRuleListRequest::setPageNumber(const std::string& pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setCoreParameter("PageNumber", pageNumber);
+}
+
+std::string DescribeDynamicTagRuleListRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeDynamicTagRuleListRequest::setPageSize(const std::string& pageSize)
+{
+	pageSize_ = pageSize;
+	setCoreParameter("PageSize", pageSize);
+}
+
+std::string DescribeDynamicTagRuleListRequest::getTagKey()const
+{
+	return tagKey_;
+}
+
+void DescribeDynamicTagRuleListRequest::setTagKey(const std::string& tagKey)
+{
+	tagKey_ = tagKey;
+	setCoreParameter("TagKey", tagKey);
+}
+

+ 122 - 0
cms/src/model/DescribeDynamicTagRuleListResult.cc

@@ -0,0 +1,122 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/cms/model/DescribeDynamicTagRuleListResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cms;
+using namespace AlibabaCloud::Cms::Model;
+
+DescribeDynamicTagRuleListResult::DescribeDynamicTagRuleListResult() :
+	ServiceResult()
+{}
+
+DescribeDynamicTagRuleListResult::DescribeDynamicTagRuleListResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDynamicTagRuleListResult::~DescribeDynamicTagRuleListResult()
+{}
+
+void DescribeDynamicTagRuleListResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTagGroupListNode = value["TagGroupList"]["TagGroup"];
+	for (auto valueTagGroupListTagGroup : allTagGroupListNode)
+	{
+		TagGroup tagGroupListObject;
+		if(!valueTagGroupListTagGroup["DynamicTagGroupId"].isNull())
+			tagGroupListObject.dynamicTagGroupId = valueTagGroupListTagGroup["DynamicTagGroupId"].asString();
+		if(!valueTagGroupListTagGroup["TagKey"].isNull())
+			tagGroupListObject.tagKey = valueTagGroupListTagGroup["TagKey"].asString();
+		if(!valueTagGroupListTagGroup["RegionId"].isNull())
+			tagGroupListObject.regionId = valueTagGroupListTagGroup["RegionId"].asString();
+		if(!valueTagGroupListTagGroup["MatchExpressFilterRelation"].isNull())
+			tagGroupListObject.matchExpressFilterRelation = valueTagGroupListTagGroup["MatchExpressFilterRelation"].asString();
+		if(!valueTagGroupListTagGroup["Status"].isNull())
+			tagGroupListObject.status = valueTagGroupListTagGroup["Status"].asString();
+		auto allMatchExpressNode = allTagGroupListNode["MatchExpress"]["MatchExpressItem"];
+		for (auto allTagGroupListNodeMatchExpressMatchExpressItem : allMatchExpressNode)
+		{
+			TagGroup::MatchExpressItem matchExpressObject;
+			if(!allTagGroupListNodeMatchExpressMatchExpressItem["TagName"].isNull())
+				matchExpressObject.tagName = allTagGroupListNodeMatchExpressMatchExpressItem["TagName"].asString();
+			if(!allTagGroupListNodeMatchExpressMatchExpressItem["TagValueMatchFunction"].isNull())
+				matchExpressObject.tagValueMatchFunction = allTagGroupListNodeMatchExpressMatchExpressItem["TagValueMatchFunction"].asString();
+			if(!allTagGroupListNodeMatchExpressMatchExpressItem["TagValue"].isNull())
+				matchExpressObject.tagValue = allTagGroupListNodeMatchExpressMatchExpressItem["TagValue"].asString();
+			tagGroupListObject.matchExpress.push_back(matchExpressObject);
+		}
+		auto allTemplateIdList = value["TemplateIdList"]["TemplateIdList"];
+		for (auto value : allTemplateIdList)
+			tagGroupListObject.templateIdList.push_back(value.asString());
+		tagGroupList_.push_back(tagGroupListObject);
+	}
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Total"].isNull())
+		total_ = std::stoi(value["Total"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = value["PageNumber"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = value["PageSize"].asString();
+
+}
+
+std::string DescribeDynamicTagRuleListResult::getMessage()const
+{
+	return message_;
+}
+
+std::string DescribeDynamicTagRuleListResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+std::string DescribeDynamicTagRuleListResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+int DescribeDynamicTagRuleListResult::getTotal()const
+{
+	return total_;
+}
+
+std::vector<DescribeDynamicTagRuleListResult::TagGroup> DescribeDynamicTagRuleListResult::getTagGroupList()const
+{
+	return tagGroupList_;
+}
+
+std::string DescribeDynamicTagRuleListResult::getCode()const
+{
+	return code_;
+}
+
+bool DescribeDynamicTagRuleListResult::getSuccess()const
+{
+	return success_;
+}
+

+ 44 - 22
cms/src/model/DescribeMonitorGroupsRequest.cc

@@ -60,17 +60,6 @@ void DescribeMonitorGroupsRequest::setType(const std::string& type)
 	setCoreParameter("Type", type);
 }
 
-std::string DescribeMonitorGroupsRequest::getGroupName()const
-{
-	return groupName_;
-}
-
-void DescribeMonitorGroupsRequest::setGroupName(const std::string& groupName)
-{
-	groupName_ = groupName;
-	setCoreParameter("GroupName", groupName);
-}
-
 int DescribeMonitorGroupsRequest::getPageNumber()const
 {
 	return pageNumber_;
@@ -82,17 +71,6 @@ void DescribeMonitorGroupsRequest::setPageNumber(int pageNumber)
 	setCoreParameter("PageNumber", std::to_string(pageNumber));
 }
 
-std::string DescribeMonitorGroupsRequest::getInstanceId()const
-{
-	return instanceId_;
-}
-
-void DescribeMonitorGroupsRequest::setInstanceId(const std::string& instanceId)
-{
-	instanceId_ = instanceId;
-	setCoreParameter("InstanceId", instanceId);
-}
-
 int DescribeMonitorGroupsRequest::getPageSize()const
 {
 	return pageSize_;
@@ -131,3 +109,47 @@ void DescribeMonitorGroupsRequest::setKeyword(const std::string& keyword)
 	setCoreParameter("Keyword", keyword);
 }
 
+std::string DescribeMonitorGroupsRequest::getGroupId()const
+{
+	return groupId_;
+}
+
+void DescribeMonitorGroupsRequest::setGroupId(const std::string& groupId)
+{
+	groupId_ = groupId;
+	setCoreParameter("GroupId", groupId);
+}
+
+std::string DescribeMonitorGroupsRequest::getGroupName()const
+{
+	return groupName_;
+}
+
+void DescribeMonitorGroupsRequest::setGroupName(const std::string& groupName)
+{
+	groupName_ = groupName;
+	setCoreParameter("GroupName", groupName);
+}
+
+std::string DescribeMonitorGroupsRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeMonitorGroupsRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setCoreParameter("InstanceId", instanceId);
+}
+
+std::string DescribeMonitorGroupsRequest::getDynamicTagGroupId()const
+{
+	return dynamicTagGroupId_;
+}
+
+void DescribeMonitorGroupsRequest::setDynamicTagGroupId(const std::string& dynamicTagGroupId)
+{
+	dynamicTagGroupId_ = dynamicTagGroupId;
+	setCoreParameter("DynamicTagGroupId", dynamicTagGroupId);
+}
+

+ 2 - 0
cms/src/model/DescribeMonitorGroupsResult.cc

@@ -57,6 +57,8 @@ void DescribeMonitorGroupsResult::parse(const std::string &payload)
 			resourcesObject.gmtCreate = std::stol(valueResourcesResource["GmtCreate"].asString());
 		if(!valueResourcesResource["BindUrl"].isNull())
 			resourcesObject.bindUrl = valueResourcesResource["BindUrl"].asString();
+		if(!valueResourcesResource["DynamicTagGroupId"].isNull())
+			resourcesObject.dynamicTagGroupId = std::stol(valueResourcesResource["DynamicTagGroupId"].asString());
 		auto allContactGroupsNode = allResourcesNode["ContactGroups"]["ContactGroup"];
 		for (auto allResourcesNodeContactGroupsContactGroup : allContactGroupsNode)
 		{

+ 40 - 0
cms/src/model/DescribeProductResourceTagKeyListRequest.cc

@@ -0,0 +1,40 @@
+/*
+ * 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/cms/model/DescribeProductResourceTagKeyListRequest.h>
+
+using AlibabaCloud::Cms::Model::DescribeProductResourceTagKeyListRequest;
+
+DescribeProductResourceTagKeyListRequest::DescribeProductResourceTagKeyListRequest() :
+	RpcServiceRequest("cms", "2019-01-01", "DescribeProductResourceTagKeyList")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeProductResourceTagKeyListRequest::~DescribeProductResourceTagKeyListRequest()
+{}
+
+std::string DescribeProductResourceTagKeyListRequest::getNextToken()const
+{
+	return nextToken_;
+}
+
+void DescribeProductResourceTagKeyListRequest::setNextToken(const std::string& nextToken)
+{
+	nextToken_ = nextToken;
+	setCoreParameter("NextToken", nextToken);
+}
+

+ 80 - 0
cms/src/model/DescribeProductResourceTagKeyListResult.cc

@@ -0,0 +1,80 @@
+/*
+ * 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/cms/model/DescribeProductResourceTagKeyListResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Cms;
+using namespace AlibabaCloud::Cms::Model;
+
+DescribeProductResourceTagKeyListResult::DescribeProductResourceTagKeyListResult() :
+	ServiceResult()
+{}
+
+DescribeProductResourceTagKeyListResult::DescribeProductResourceTagKeyListResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeProductResourceTagKeyListResult::~DescribeProductResourceTagKeyListResult()
+{}
+
+void DescribeProductResourceTagKeyListResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allTagKeys = value["TagKeys"]["TagKey"];
+	for (const auto &item : allTagKeys)
+		tagKeys_.push_back(item.asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+std::string DescribeProductResourceTagKeyListResult::getMessage()const
+{
+	return message_;
+}
+
+std::string DescribeProductResourceTagKeyListResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+std::string DescribeProductResourceTagKeyListResult::getCode()const
+{
+	return code_;
+}
+
+std::vector<std::string> DescribeProductResourceTagKeyListResult::getTagKeys()const
+{
+	return tagKeys_;
+}
+
+bool DescribeProductResourceTagKeyListResult::getSuccess()const
+{
+	return success_;
+}
+