sdk-team 4 лет назад
Родитель
Сommit
2de2101c40

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2022-01-25 Version: 1.36.1041
+- Support Latest APIs.
+
 2022-01-25 Version: 1.36.1040
 - Add APIs, include, ListSharedReports, ListFavoriteReports, ListRecentViewReports, CreateTicket, QueryTicketInfo, UpdateTicketNum, DelayTicketExpireTime, DelayTicketExpireTime.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1040
+1.36.1041

+ 13 - 0
alb/include/alibabacloud/alb/model/CreateRuleRequest.h

@@ -76,6 +76,19 @@ public:
 			int qPS;
 		};
 		TrafficLimitConfig trafficLimitConfig;
+		struct CorsConfig {
+			std::string allowCredentials;
+			std::string string;
+			std::vector<std::string> allowOrigin;
+			long maxAge;
+			std::string string;
+			std::vector<std::string> allowMethods;
+			std::string string;
+			std::vector<std::string> allowHeaders;
+			std::string string;
+			std::vector<std::string> exposeHeaders;
+		};
+		CorsConfig corsConfig;
 		struct RedirectConfig {
 			std::string path;
 			std::string protocol;

+ 13 - 0
alb/include/alibabacloud/alb/model/CreateRulesRequest.h

@@ -139,6 +139,19 @@ public:
 				int qPS;
 			};
 			TrafficLimitConfig trafficLimitConfig;
+			struct CorsConfig {
+				std::string allowCredentials;
+				std::string string;
+				std::vector<std::string> allowOrigin;
+				long maxAge;
+				std::string string;
+				std::vector<std::string> allowMethods;
+				std::string string;
+				std::vector<std::string> allowHeaders;
+				std::string string;
+				std::vector<std::string> exposeHeaders;
+			};
+			CorsConfig corsConfig;
 			struct RedirectConfig {
 				std::string path;
 				std::string protocol;

+ 7 - 0
alb/include/alibabacloud/alb/model/CreateServerGroupRequest.h

@@ -52,6 +52,10 @@ public:
 		int cookieTimeout;
 		std::string stickySessionType;
 	};
+	struct UchConfig {
+		std::string type;
+		std::string value;
+	};
 	CreateServerGroupRequest();
 	~CreateServerGroupRequest();
 	std::string getServerGroupName() const;
@@ -80,6 +84,8 @@ public:
 	void setServerGroupType(const std::string &serverGroupType);
 	std::string getVpcId() const;
 	void setVpcId(const std::string &vpcId);
+	UchConfig getUchConfig() const;
+	void setUchConfig(const UchConfig &uchConfig);
 
 private:
 	std::string serverGroupName_;
@@ -95,6 +101,7 @@ private:
 	bool ipv6Enabled_;
 	std::string serverGroupType_;
 	std::string vpcId_;
+	UchConfig uchConfig_;
 };
 } // namespace Model
 } // namespace Alb

+ 3 - 0
alb/include/alibabacloud/alb/model/ListLoadBalancersRequest.h

@@ -38,6 +38,8 @@ public:
 	void setLoadBalancerNames(const std::vector<std::string> &loadBalancerNames);
 	std::vector<std::string> getLoadBalancerIds() const;
 	void setLoadBalancerIds(const std::vector<std::string> &loadBalancerIds);
+	std::vector<std::string> getLoadBalancerEditions() const;
+	void setLoadBalancerEditions(const std::vector<std::string> &loadBalancerEditions);
 	std::string getAddressIpVersion() const;
 	void setAddressIpVersion(const std::string &addressIpVersion);
 	std::string getResourceGroupId() const;
@@ -70,6 +72,7 @@ public:
 private:
 	std::vector<std::string> loadBalancerNames_;
 	std::vector<std::string> loadBalancerIds_;
+	std::vector<std::string> loadBalancerEditions_;
 	std::string addressIpVersion_;
 	std::string resourceGroupId_;
 	std::string nextToken_;

+ 10 - 0
alb/include/alibabacloud/alb/model/ListRulesResult.h

@@ -101,10 +101,20 @@ namespace AlibabaCloud
 						{
 							int qPS;
 						};
+						struct CorsConfig
+						{
+							std::string allowCredentials;
+							std::vector<std::string> exposeHeaders;
+							std::vector<std::string> allowOrigin;
+							std::vector<std::string> allowHeaders;
+							long maxAge;
+							std::vector<std::string> allowMethods;
+						};
 						int order;
 						FixedResponseConfig fixedResponseConfig;
 						std::string type;
 						RedirectConfig redirectConfig;
+						CorsConfig corsConfig;
 						ForwardGroupConfig forwardGroupConfig;
 						RemoveHeaderConfig removeHeaderConfig;
 						InsertHeaderConfig insertHeaderConfig;

+ 6 - 0
alb/include/alibabacloud/alb/model/ListServerGroupsResult.h

@@ -58,6 +58,11 @@ namespace AlibabaCloud
 						std::string stickySessionType;
 						bool stickySessionEnabled;
 					};
+					struct UchConfig
+					{
+						std::string type;
+						std::string value;
+					};
 					struct Tag
 					{
 						std::string value;
@@ -66,6 +71,7 @@ namespace AlibabaCloud
 					bool serviceManagedEnabled;
 					std::vector<std::string> relatedLoadBalancerIds;
 					std::string resourceGroupId;
+					UchConfig uchConfig;
 					std::string scheduler;
 					bool upstreamKeepaliveEnabled;
 					StickySessionConfig stickySessionConfig;

+ 13 - 0
alb/include/alibabacloud/alb/model/UpdateRuleAttributeRequest.h

@@ -76,6 +76,19 @@ public:
 			int qPS;
 		};
 		TrafficLimitConfig trafficLimitConfig;
+		struct CorsConfig {
+			std::string allowCredentials;
+			std::string string;
+			std::vector<std::string> allowOrigin;
+			long maxAge;
+			std::string string;
+			std::vector<std::string> allowMethods;
+			std::string string;
+			std::vector<std::string> allowHeaders;
+			std::string string;
+			std::vector<std::string> exposeHeaders;
+		};
+		CorsConfig corsConfig;
 		struct RedirectConfig {
 			std::string path;
 			std::string protocol;

+ 13 - 0
alb/include/alibabacloud/alb/model/UpdateRulesAttributeRequest.h

@@ -140,6 +140,19 @@ public:
 				int qPS;
 			};
 			TrafficLimitConfig trafficLimitConfig;
+			struct CorsConfig {
+				std::string allowCredentials;
+				std::string string;
+				std::vector<std::string> allowOrigin;
+				long maxAge;
+				std::string string;
+				std::vector<std::string> allowMethods;
+				std::string string;
+				std::vector<std::string> allowHeaders;
+				std::string string;
+				std::vector<std::string> exposeHeaders;
+			};
+			CorsConfig corsConfig;
 			struct RedirectConfig {
 				std::string path;
 				std::string protocol;

+ 7 - 0
alb/include/alibabacloud/alb/model/UpdateServerGroupAttributeRequest.h

@@ -52,6 +52,10 @@ public:
 		int cookieTimeout;
 		std::string stickySessionType;
 	};
+	struct UchConfig {
+		std::string type;
+		std::string value;
+	};
 	UpdateServerGroupAttributeRequest();
 	~UpdateServerGroupAttributeRequest();
 	std::string getServerGroupName() const;
@@ -72,6 +76,8 @@ public:
 	void setStickySessionConfig(const StickySessionConfig &stickySessionConfig);
 	bool getDryRun() const;
 	void setDryRun(bool dryRun);
+	UchConfig getUchConfig() const;
+	void setUchConfig(const UchConfig &uchConfig);
 
 private:
 	std::string serverGroupName_;
@@ -83,6 +89,7 @@ private:
 	std::string serviceName_;
 	StickySessionConfig stickySessionConfig_;
 	bool dryRun_;
+	UchConfig uchConfig_;
 };
 } // namespace Model
 } // namespace Alb

+ 14 - 0
alb/src/model/CreateRuleRequest.cc

@@ -87,6 +87,20 @@ void CreateRuleRequest::setRuleActions(const std::vector<CreateRuleRequest::Rule
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Value", ruleActions[dep1].insertHeaderConfig.value);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Key", ruleActions[dep1].insertHeaderConfig.key);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficLimitConfig.QPS", std::to_string(ruleActions[dep1].trafficLimitConfig.qPS));
+    setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowCredentials", ruleActions[dep1].corsConfig.allowCredentials);
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowOrigin.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowOrigin." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowOrigin[dep2]);
+    }
+    setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.MaxAge", std::to_string(ruleActions[dep1].corsConfig.maxAge));
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowMethods.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowMethods." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowMethods[dep2]);
+    }
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowHeaders.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowHeaders[dep2]);
+    }
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.exposeHeaders.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.ExposeHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.exposeHeaders[dep2]);
+    }
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Path", ruleActions[dep1].redirectConfig.path);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Protocol", ruleActions[dep1].redirectConfig.protocol);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Port", ruleActions[dep1].redirectConfig.port);

+ 14 - 0
alb/src/model/CreateRulesRequest.cc

@@ -97,6 +97,20 @@ void CreateRulesRequest::setRules(const std::vector<CreateRulesRequest::Rules> &
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".InsertHeaderConfig.Value", rules[dep1].ruleActions[dep2].insertHeaderConfig.value);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".InsertHeaderConfig.Key", rules[dep1].ruleActions[dep2].insertHeaderConfig.key);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".TrafficLimitConfig.QPS", std::to_string(rules[dep1].ruleActions[dep2].trafficLimitConfig.qPS));
+      setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowCredentials", rules[dep1].ruleActions[dep2].corsConfig.allowCredentials);
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowOrigin.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowOrigin." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowOrigin[dep3]);
+      }
+      setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.MaxAge", std::to_string(rules[dep1].ruleActions[dep2].corsConfig.maxAge));
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowMethods.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowMethods." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowMethods[dep3]);
+      }
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowHeaders.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowHeaders." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowHeaders[dep3]);
+      }
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.exposeHeaders.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.ExposeHeaders." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.exposeHeaders[dep3]);
+      }
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Path", rules[dep1].ruleActions[dep2].redirectConfig.path);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Protocol", rules[dep1].ruleActions[dep2].redirectConfig.protocol);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Port", rules[dep1].ruleActions[dep2].redirectConfig.port);

+ 10 - 0
alb/src/model/CreateServerGroupRequest.cc

@@ -162,3 +162,13 @@ void CreateServerGroupRequest::setVpcId(const std::string &vpcId) {
   setParameter(std::string("VpcId"), vpcId);
 }
 
+CreateServerGroupRequest::UchConfig CreateServerGroupRequest::getUchConfig() const {
+  return uchConfig_;
+}
+
+void CreateServerGroupRequest::setUchConfig(const CreateServerGroupRequest::UchConfig &uchConfig) {
+  uchConfig_ = uchConfig;
+  setParameter(std::string("UchConfig") + ".Type", uchConfig.type);
+  setParameter(std::string("UchConfig") + ".Value", uchConfig.value);
+}
+

+ 11 - 0
alb/src/model/ListLoadBalancersRequest.cc

@@ -47,6 +47,17 @@ void ListLoadBalancersRequest::setLoadBalancerIds(const std::vector<ListLoadBala
   }
 }
 
+std::vector<ListLoadBalancersRequest::std::string> ListLoadBalancersRequest::getLoadBalancerEditions() const {
+  return loadBalancerEditions_;
+}
+
+void ListLoadBalancersRequest::setLoadBalancerEditions(const std::vector<ListLoadBalancersRequest::std::string> &loadBalancerEditions) {
+  loadBalancerEditions_ = loadBalancerEditions;
+  for(int dep1 = 0; dep1 != loadBalancerEditions.size(); dep1++) {
+    setParameter(std::string("LoadBalancerEditions") + "." + std::to_string(dep1 + 1), loadBalancerEditions[dep1]);
+  }
+}
+
 std::string ListLoadBalancersRequest::getAddressIpVersion() const {
   return addressIpVersion_;
 }

+ 17 - 0
alb/src/model/ListRulesResult.cc

@@ -141,6 +141,23 @@ void ListRulesResult::parse(const std::string &payload)
 			auto trafficLimitConfigNode = value["TrafficLimitConfig"];
 			if(!trafficLimitConfigNode["QPS"].isNull())
 				ruleActionsObject.trafficLimitConfig.qPS = std::stoi(trafficLimitConfigNode["QPS"].asString());
+			auto corsConfigNode = value["CorsConfig"];
+			if(!corsConfigNode["AllowCredentials"].isNull())
+				ruleActionsObject.corsConfig.allowCredentials = corsConfigNode["AllowCredentials"].asString();
+			if(!corsConfigNode["MaxAge"].isNull())
+				ruleActionsObject.corsConfig.maxAge = std::stol(corsConfigNode["MaxAge"].asString());
+				auto allAllowOrigin = corsConfigNode["AllowOrigin"]["AllowOrigin"];
+				for (auto value : allAllowOrigin)
+					ruleActionsObject.corsConfig.allowOrigin.push_back(value.asString());
+				auto allAllowMethods = corsConfigNode["AllowMethods"]["AllowMethods"];
+				for (auto value : allAllowMethods)
+					ruleActionsObject.corsConfig.allowMethods.push_back(value.asString());
+				auto allAllowHeaders = corsConfigNode["AllowHeaders"]["AllowHeaders"];
+				for (auto value : allAllowHeaders)
+					ruleActionsObject.corsConfig.allowHeaders.push_back(value.asString());
+				auto allExposeHeaders = corsConfigNode["ExposeHeaders"]["ExposeHeaders"];
+				for (auto value : allExposeHeaders)
+					ruleActionsObject.corsConfig.exposeHeaders.push_back(value.asString());
 			rulesObject.ruleActions.push_back(ruleActionsObject);
 		}
 		auto allRuleConditionsNode = valueRulesRule["RuleConditions"]["Condition"];

+ 5 - 0
alb/src/model/ListServerGroupsResult.cc

@@ -123,6 +123,11 @@ void ListServerGroupsResult::parse(const std::string &payload)
 			serverGroupsObject.stickySessionConfig.stickySessionEnabled = stickySessionConfigNode["StickySessionEnabled"].asString() == "true";
 		if(!stickySessionConfigNode["StickySessionType"].isNull())
 			serverGroupsObject.stickySessionConfig.stickySessionType = stickySessionConfigNode["StickySessionType"].asString();
+		auto uchConfigNode = value["UchConfig"];
+		if(!uchConfigNode["Type"].isNull())
+			serverGroupsObject.uchConfig.type = uchConfigNode["Type"].asString();
+		if(!uchConfigNode["Value"].isNull())
+			serverGroupsObject.uchConfig.value = uchConfigNode["Value"].asString();
 		auto allRelatedLoadBalancerIds = value["RelatedLoadBalancerIds"]["RelatedLoadBalancerId"];
 		for (auto value : allRelatedLoadBalancerIds)
 			serverGroupsObject.relatedLoadBalancerIds.push_back(value.asString());

+ 14 - 0
alb/src/model/UpdateRuleAttributeRequest.cc

@@ -69,6 +69,20 @@ void UpdateRuleAttributeRequest::setRuleActions(const std::vector<UpdateRuleAttr
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Value", ruleActions[dep1].insertHeaderConfig.value);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".InsertHeaderConfig.Key", ruleActions[dep1].insertHeaderConfig.key);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".TrafficLimitConfig.QPS", std::to_string(ruleActions[dep1].trafficLimitConfig.qPS));
+    setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowCredentials", ruleActions[dep1].corsConfig.allowCredentials);
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowOrigin.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowOrigin." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowOrigin[dep2]);
+    }
+    setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.MaxAge", std::to_string(ruleActions[dep1].corsConfig.maxAge));
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowMethods.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowMethods." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowMethods[dep2]);
+    }
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.allowHeaders.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.AllowHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.allowHeaders[dep2]);
+    }
+    for(int dep2 = 0; dep2 != ruleActions[dep1].corsConfig.exposeHeaders.size(); dep2++) {
+      setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".CorsConfig.ExposeHeaders." + std::to_string(dep2 + 1), ruleActions[dep1].corsConfig.exposeHeaders[dep2]);
+    }
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Path", ruleActions[dep1].redirectConfig.path);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Protocol", ruleActions[dep1].redirectConfig.protocol);
     setParameter(std::string("RuleActions") + "." + std::to_string(dep1 + 1) + ".RedirectConfig.Port", ruleActions[dep1].redirectConfig.port);

+ 14 - 0
alb/src/model/UpdateRulesAttributeRequest.cc

@@ -98,6 +98,20 @@ void UpdateRulesAttributeRequest::setRules(const std::vector<UpdateRulesAttribut
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".InsertHeaderConfig.Value", rules[dep1].ruleActions[dep2].insertHeaderConfig.value);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".InsertHeaderConfig.Key", rules[dep1].ruleActions[dep2].insertHeaderConfig.key);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".TrafficLimitConfig.QPS", std::to_string(rules[dep1].ruleActions[dep2].trafficLimitConfig.qPS));
+      setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowCredentials", rules[dep1].ruleActions[dep2].corsConfig.allowCredentials);
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowOrigin.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowOrigin." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowOrigin[dep3]);
+      }
+      setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.MaxAge", std::to_string(rules[dep1].ruleActions[dep2].corsConfig.maxAge));
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowMethods.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowMethods." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowMethods[dep3]);
+      }
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.allowHeaders.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.AllowHeaders." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.allowHeaders[dep3]);
+      }
+      for(int dep3 = 0; dep3 != rules[dep1].ruleActions[dep2].corsConfig.exposeHeaders.size(); dep3++) {
+        setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".CorsConfig.ExposeHeaders." + std::to_string(dep3 + 1), rules[dep1].ruleActions[dep2].corsConfig.exposeHeaders[dep3]);
+      }
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Path", rules[dep1].ruleActions[dep2].redirectConfig.path);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Protocol", rules[dep1].ruleActions[dep2].redirectConfig.protocol);
       setParameter(std::string("Rules") + "." + std::to_string(dep1 + 1) + ".RuleActions." + std::to_string(dep2 + 1) + ".RedirectConfig.Port", rules[dep1].ruleActions[dep2].redirectConfig.port);

+ 10 - 0
alb/src/model/UpdateServerGroupAttributeRequest.cc

@@ -126,3 +126,13 @@ void UpdateServerGroupAttributeRequest::setDryRun(bool dryRun) {
   setParameter(std::string("DryRun"), dryRun ? "true" : "false");
 }
 
+UpdateServerGroupAttributeRequest::UchConfig UpdateServerGroupAttributeRequest::getUchConfig() const {
+  return uchConfig_;
+}
+
+void UpdateServerGroupAttributeRequest::setUchConfig(const UpdateServerGroupAttributeRequest::UchConfig &uchConfig) {
+  uchConfig_ = uchConfig;
+  setParameter(std::string("UchConfig") + ".Type", uchConfig.type);
+  setParameter(std::string("UchConfig") + ".Value", uchConfig.value);
+}
+