Эх сурвалжийг харах

Supported minReadyInstanceRatio parameter for deploy.

sdk-team 4 жил өмнө
parent
commit
ec6303fa64
25 өөрчлөгдсөн 545 нэмэгдсэн , 30 устгасан
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 4 0
      sae/CMakeLists.txt
  4. 8 0
      sae/include/alibabacloud/sae/SaeClient.h
  5. 6 3
      sae/include/alibabacloud/sae/model/CreateApplicationScalingRuleRequest.h
  6. 3 0
      sae/include/alibabacloud/sae/model/DeployApplicationRequest.h
  7. 1 0
      sae/include/alibabacloud/sae/model/DescribeApplicationConfigResult.h
  8. 51 0
      sae/include/alibabacloud/sae/model/DescribeApplicationScalingRuleRequest.h
  9. 124 0
      sae/include/alibabacloud/sae/model/DescribeApplicationScalingRuleResult.h
  10. 3 0
      sae/include/alibabacloud/sae/model/RescaleApplicationRequest.h
  11. 3 0
      sae/include/alibabacloud/sae/model/RestartApplicationRequest.h
  12. 3 0
      sae/include/alibabacloud/sae/model/RollbackApplicationRequest.h
  13. 6 3
      sae/include/alibabacloud/sae/model/UpdateApplicationScalingRuleRequest.h
  14. 1 1
      sae/include/alibabacloud/sae/model/UpdateApplicationScalingRuleResult.h
  15. 36 0
      sae/src/SaeClient.cc
  16. 14 3
      sae/src/model/CreateApplicationScalingRuleRequest.cc
  17. 11 0
      sae/src/model/DeployApplicationRequest.cc
  18. 2 0
      sae/src/model/DescribeApplicationConfigResult.cc
  19. 52 0
      sae/src/model/DescribeApplicationScalingRuleRequest.cc
  20. 150 0
      sae/src/model/DescribeApplicationScalingRuleResult.cc
  21. 11 0
      sae/src/model/RescaleApplicationRequest.cc
  22. 11 0
      sae/src/model/RestartApplicationRequest.cc
  23. 11 0
      sae/src/model/RollbackApplicationRequest.cc
  24. 14 3
      sae/src/model/UpdateApplicationScalingRuleRequest.cc
  25. 16 16
      sae/src/model/UpdateApplicationScalingRuleResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2022-01-07 Version: 1.36.1015
+- Supported minReadyInstanceRatio parameter for deploy.
+
 2022-01-07 Version: 1.36.1014
 - Support New API for Dypnsapi.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1014
+1.36.1015

+ 4 - 0
sae/CMakeLists.txt

@@ -69,6 +69,8 @@ set(sae_public_header_model
 	include/alibabacloud/sae/model/DescribeApplicationImageResult.h
 	include/alibabacloud/sae/model/DescribeApplicationInstancesRequest.h
 	include/alibabacloud/sae/model/DescribeApplicationInstancesResult.h
+	include/alibabacloud/sae/model/DescribeApplicationScalingRuleRequest.h
+	include/alibabacloud/sae/model/DescribeApplicationScalingRuleResult.h
 	include/alibabacloud/sae/model/DescribeApplicationScalingRulesRequest.h
 	include/alibabacloud/sae/model/DescribeApplicationScalingRulesResult.h
 	include/alibabacloud/sae/model/DescribeApplicationSlbsRequest.h
@@ -228,6 +230,8 @@ set(sae_src
 	src/model/DescribeApplicationImageResult.cc
 	src/model/DescribeApplicationInstancesRequest.cc
 	src/model/DescribeApplicationInstancesResult.cc
+	src/model/DescribeApplicationScalingRuleRequest.cc
+	src/model/DescribeApplicationScalingRuleResult.cc
 	src/model/DescribeApplicationScalingRulesRequest.cc
 	src/model/DescribeApplicationScalingRulesResult.cc
 	src/model/DescribeApplicationSlbsRequest.cc

+ 8 - 0
sae/include/alibabacloud/sae/SaeClient.h

@@ -70,6 +70,8 @@
 #include "model/DescribeApplicationImageResult.h"
 #include "model/DescribeApplicationInstancesRequest.h"
 #include "model/DescribeApplicationInstancesResult.h"
+#include "model/DescribeApplicationScalingRuleRequest.h"
+#include "model/DescribeApplicationScalingRuleResult.h"
 #include "model/DescribeApplicationScalingRulesRequest.h"
 #include "model/DescribeApplicationScalingRulesResult.h"
 #include "model/DescribeApplicationSlbsRequest.h"
@@ -259,6 +261,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeApplicationInstancesResult> DescribeApplicationInstancesOutcome;
 			typedef std::future<DescribeApplicationInstancesOutcome> DescribeApplicationInstancesOutcomeCallable;
 			typedef std::function<void(const SaeClient*, const Model::DescribeApplicationInstancesRequest&, const DescribeApplicationInstancesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeApplicationInstancesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeApplicationScalingRuleResult> DescribeApplicationScalingRuleOutcome;
+			typedef std::future<DescribeApplicationScalingRuleOutcome> DescribeApplicationScalingRuleOutcomeCallable;
+			typedef std::function<void(const SaeClient*, const Model::DescribeApplicationScalingRuleRequest&, const DescribeApplicationScalingRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeApplicationScalingRuleAsyncHandler;
 			typedef Outcome<Error, Model::DescribeApplicationScalingRulesResult> DescribeApplicationScalingRulesOutcome;
 			typedef std::future<DescribeApplicationScalingRulesOutcome> DescribeApplicationScalingRulesOutcomeCallable;
 			typedef std::function<void(const SaeClient*, const Model::DescribeApplicationScalingRulesRequest&, const DescribeApplicationScalingRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeApplicationScalingRulesAsyncHandler;
@@ -498,6 +503,9 @@ namespace AlibabaCloud
 			DescribeApplicationInstancesOutcome describeApplicationInstances(const Model::DescribeApplicationInstancesRequest &request)const;
 			void describeApplicationInstancesAsync(const Model::DescribeApplicationInstancesRequest& request, const DescribeApplicationInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeApplicationInstancesOutcomeCallable describeApplicationInstancesCallable(const Model::DescribeApplicationInstancesRequest& request) const;
+			DescribeApplicationScalingRuleOutcome describeApplicationScalingRule(const Model::DescribeApplicationScalingRuleRequest &request)const;
+			void describeApplicationScalingRuleAsync(const Model::DescribeApplicationScalingRuleRequest& request, const DescribeApplicationScalingRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeApplicationScalingRuleOutcomeCallable describeApplicationScalingRuleCallable(const Model::DescribeApplicationScalingRuleRequest& request) const;
 			DescribeApplicationScalingRulesOutcome describeApplicationScalingRules(const Model::DescribeApplicationScalingRulesRequest &request)const;
 			void describeApplicationScalingRulesAsync(const Model::DescribeApplicationScalingRulesRequest& request, const DescribeApplicationScalingRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeApplicationScalingRulesOutcomeCallable describeApplicationScalingRulesCallable(const Model::DescribeApplicationScalingRulesRequest& request) const;

+ 6 - 3
sae/include/alibabacloud/sae/model/CreateApplicationScalingRuleRequest.h

@@ -37,8 +37,8 @@ namespace AlibabaCloud
 
 				std::string getScalingRuleName()const;
 				void setScalingRuleName(const std::string& scalingRuleName);
-				std::string getMinReadyInstances()const;
-				void setMinReadyInstances(const std::string& minReadyInstances);
+				int getMinReadyInstances()const;
+				void setMinReadyInstances(int minReadyInstances);
 				bool getScalingRuleEnable()const;
 				void setScalingRuleEnable(bool scalingRuleEnable);
 				std::string getScalingRuleTimer()const;
@@ -47,16 +47,19 @@ namespace AlibabaCloud
 				void setScalingRuleMetric(const std::string& scalingRuleMetric);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 				std::string getScalingRuleType()const;
 				void setScalingRuleType(const std::string& scalingRuleType);
 
             private:
 				std::string scalingRuleName_;
-				std::string minReadyInstances_;
+				int minReadyInstances_;
 				bool scalingRuleEnable_;
 				std::string scalingRuleTimer_;
 				std::string scalingRuleMetric_;
 				std::string appId_;
+				int minReadyInstanceRatio_;
 				std::string scalingRuleType_;
 
 			};

+ 3 - 0
sae/include/alibabacloud/sae/model/DeployApplicationRequest.h

@@ -113,6 +113,8 @@ namespace AlibabaCloud
 				void setAppId(const std::string& appId);
 				std::string getImageUrl()const;
 				void setImageUrl(const std::string& imageUrl);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 				std::string getPhp()const;
 				void setPhp(const std::string& php);
 				bool getAutoEnableApplicationScalingRule()const;
@@ -166,6 +168,7 @@ namespace AlibabaCloud
 				std::string acrInstanceId_;
 				std::string appId_;
 				std::string imageUrl_;
+				int minReadyInstanceRatio_;
 				std::string php_;
 				bool autoEnableApplicationScalingRule_;
 				std::string phpConfigLocation_;

+ 1 - 0
sae/include/alibabacloud/sae/model/DescribeApplicationConfigResult.h

@@ -111,6 +111,7 @@ namespace AlibabaCloud
 					std::string packageUrl;
 					std::string phpConfigLocation;
 					int batchWaitTime;
+					int minReadyInstanceRatio;
 					std::string phpPECLExtensions;
 					std::string regionId;
 					std::string enableAhas;

+ 51 - 0
sae/include/alibabacloud/sae/model/DescribeApplicationScalingRuleRequest.h

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

+ 124 - 0
sae/include/alibabacloud/sae/model/DescribeApplicationScalingRuleResult.h

@@ -0,0 +1,124 @@
+/*
+ * 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_SAE_MODEL_DESCRIBEAPPLICATIONSCALINGRULERESULT_H_
+#define ALIBABACLOUD_SAE_MODEL_DESCRIBEAPPLICATIONSCALINGRULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/sae/SaeExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Sae
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_SAE_EXPORT DescribeApplicationScalingRuleResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Timer
+					{
+						struct Schedule
+						{
+							int targetReplicas;
+							std::string atTime;
+						};
+						std::vector<Schedule> schedules;
+						std::string period;
+						std::string endDate;
+						std::string beginDate;
+					};
+					struct Metric
+					{
+						struct MetricsStatus
+						{
+							struct CurrentMetric
+							{
+								std::string type;
+								long currentValue;
+								std::string name;
+							};
+							struct NextScaleMetric
+							{
+								int nextScaleInAverageUtilization;
+								int nextScaleOutAverageUtilization;
+								std::string name;
+							};
+							std::vector<NextScaleMetric> nextScaleMetrics;
+							long desiredReplicas;
+							std::vector<CurrentMetric> currentMetrics;
+							long currentReplicas;
+							int nextScaleTimePeriod;
+							std::string lastScaleTime;
+						};
+						struct ScaleUpRules
+						{
+							long step;
+							long stabilizationWindowSeconds;
+							bool disabled;
+						};
+						struct ScaleDownRules
+						{
+							long step;
+							long stabilizationWindowSeconds;
+							bool disabled;
+						};
+						struct Metric1
+						{
+							std::string metricType;
+							int metricTargetAverageUtilization;
+						};
+						std::vector<Metric1> metrics;
+						int minReplicas;
+						ScaleDownRules scaleDownRules;
+						int maxReplicas;
+						MetricsStatus metricsStatus;
+						ScaleUpRules scaleUpRules;
+					};
+					bool scaleRuleEnabled;
+					Timer timer;
+					std::string appId;
+					long lastDisableTime;
+					long createTime;
+					long updateTime;
+					Metric metric;
+					std::string scaleRuleName;
+					std::string scaleRuleType;
+				};
+
+
+				DescribeApplicationScalingRuleResult();
+				explicit DescribeApplicationScalingRuleResult(const std::string &payload);
+				~DescribeApplicationScalingRuleResult();
+				std::string getTraceId()const;
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string traceId_;
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_SAE_MODEL_DESCRIBEAPPLICATIONSCALINGRULERESULT_H_

+ 3 - 0
sae/include/alibabacloud/sae/model/RescaleApplicationRequest.h

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setReplicas(int replicas);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 				bool getAutoEnableApplicationScalingRule()const;
 				void setAutoEnableApplicationScalingRule(bool autoEnableApplicationScalingRule);
 
@@ -48,6 +50,7 @@ namespace AlibabaCloud
 				int minReadyInstances_;
 				int replicas_;
 				std::string appId_;
+				int minReadyInstanceRatio_;
 				bool autoEnableApplicationScalingRule_;
 
 			};

+ 3 - 0
sae/include/alibabacloud/sae/model/RestartApplicationRequest.h

@@ -39,10 +39,13 @@ namespace AlibabaCloud
 				void setMinReadyInstances(int minReadyInstances);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 
             private:
 				int minReadyInstances_;
 				std::string appId_;
+				int minReadyInstanceRatio_;
 
 			};
 		}

+ 3 - 0
sae/include/alibabacloud/sae/model/RollbackApplicationRequest.h

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setAppId(const std::string& appId);
 				int getBatchWaitTime()const;
 				void setBatchWaitTime(int batchWaitTime);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 				std::string getAutoEnableApplicationScalingRule()const;
 				void setAutoEnableApplicationScalingRule(const std::string& autoEnableApplicationScalingRule);
 				std::string getUpdateStrategy()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
 				std::string versionId_;
 				std::string appId_;
 				int batchWaitTime_;
+				int minReadyInstanceRatio_;
 				std::string autoEnableApplicationScalingRule_;
 				std::string updateStrategy_;
 

+ 6 - 3
sae/include/alibabacloud/sae/model/UpdateApplicationScalingRuleRequest.h

@@ -37,21 +37,24 @@ namespace AlibabaCloud
 
 				std::string getScalingRuleName()const;
 				void setScalingRuleName(const std::string& scalingRuleName);
-				std::string getMinReadyInstances()const;
-				void setMinReadyInstances(const std::string& minReadyInstances);
+				int getMinReadyInstances()const;
+				void setMinReadyInstances(int minReadyInstances);
 				std::string getScalingRuleTimer()const;
 				void setScalingRuleTimer(const std::string& scalingRuleTimer);
 				std::string getScalingRuleMetric()const;
 				void setScalingRuleMetric(const std::string& scalingRuleMetric);
 				std::string getAppId()const;
 				void setAppId(const std::string& appId);
+				int getMinReadyInstanceRatio()const;
+				void setMinReadyInstanceRatio(int minReadyInstanceRatio);
 
             private:
 				std::string scalingRuleName_;
-				std::string minReadyInstances_;
+				int minReadyInstances_;
 				std::string scalingRuleTimer_;
 				std::string scalingRuleMetric_;
 				std::string appId_;
+				int minReadyInstanceRatio_;
 
 			};
 		}

+ 1 - 1
sae/include/alibabacloud/sae/model/UpdateApplicationScalingRuleResult.h

@@ -59,8 +59,8 @@ namespace AlibabaCloud
 					};
 					bool scaleRuleEnabled;
 					Timer timer;
-					long lastDisableTime;
 					std::string appId;
+					long lastDisableTime;
 					long createTime;
 					long updateTime;
 					Metric metric;

+ 36 - 0
sae/src/SaeClient.cc

@@ -915,6 +915,42 @@ SaeClient::DescribeApplicationInstancesOutcomeCallable SaeClient::describeApplic
 	return task->get_future();
 }
 
+SaeClient::DescribeApplicationScalingRuleOutcome SaeClient::describeApplicationScalingRule(const DescribeApplicationScalingRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeApplicationScalingRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeApplicationScalingRuleOutcome(DescribeApplicationScalingRuleResult(outcome.result()));
+	else
+		return DescribeApplicationScalingRuleOutcome(outcome.error());
+}
+
+void SaeClient::describeApplicationScalingRuleAsync(const DescribeApplicationScalingRuleRequest& request, const DescribeApplicationScalingRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeApplicationScalingRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+SaeClient::DescribeApplicationScalingRuleOutcomeCallable SaeClient::describeApplicationScalingRuleCallable(const DescribeApplicationScalingRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeApplicationScalingRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->describeApplicationScalingRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 SaeClient::DescribeApplicationScalingRulesOutcome SaeClient::describeApplicationScalingRules(const DescribeApplicationScalingRulesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 14 - 3
sae/src/model/CreateApplicationScalingRuleRequest.cc

@@ -39,15 +39,15 @@ void CreateApplicationScalingRuleRequest::setScalingRuleName(const std::string&
 	setParameter("ScalingRuleName", scalingRuleName);
 }
 
-std::string CreateApplicationScalingRuleRequest::getMinReadyInstances()const
+int CreateApplicationScalingRuleRequest::getMinReadyInstances()const
 {
 	return minReadyInstances_;
 }
 
-void CreateApplicationScalingRuleRequest::setMinReadyInstances(const std::string& minReadyInstances)
+void CreateApplicationScalingRuleRequest::setMinReadyInstances(int minReadyInstances)
 {
 	minReadyInstances_ = minReadyInstances;
-	setParameter("MinReadyInstances", minReadyInstances);
+	setParameter("MinReadyInstances", std::to_string(minReadyInstances));
 }
 
 bool CreateApplicationScalingRuleRequest::getScalingRuleEnable()const
@@ -94,6 +94,17 @@ void CreateApplicationScalingRuleRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+int CreateApplicationScalingRuleRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void CreateApplicationScalingRuleRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+
 std::string CreateApplicationScalingRuleRequest::getScalingRuleType()const
 {
 	return scalingRuleType_;

+ 11 - 0
sae/src/model/DeployApplicationRequest.cc

@@ -457,6 +457,17 @@ void DeployApplicationRequest::setImageUrl(const std::string& imageUrl)
 	setParameter("ImageUrl", imageUrl);
 }
 
+int DeployApplicationRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void DeployApplicationRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+
 std::string DeployApplicationRequest::getPhp()const
 {
 	return php_;

+ 2 - 0
sae/src/model/DescribeApplicationConfigResult.cc

@@ -78,6 +78,8 @@ void DescribeApplicationConfigResult::parse(const std::string &payload)
 		data_.updateStrategy = dataNode["UpdateStrategy"].asString();
 	if(!dataNode["MinReadyInstances"].isNull())
 		data_.minReadyInstances = std::stoi(dataNode["MinReadyInstances"].asString());
+	if(!dataNode["MinReadyInstanceRatio"].isNull())
+		data_.minReadyInstanceRatio = std::stoi(dataNode["MinReadyInstanceRatio"].asString());
 	if(!dataNode["Memory"].isNull())
 		data_.memory = std::stoi(dataNode["Memory"].asString());
 	if(!dataNode["Php"].isNull())

+ 52 - 0
sae/src/model/DescribeApplicationScalingRuleRequest.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/sae/model/DescribeApplicationScalingRuleRequest.h>
+
+using AlibabaCloud::Sae::Model::DescribeApplicationScalingRuleRequest;
+
+DescribeApplicationScalingRuleRequest::DescribeApplicationScalingRuleRequest() :
+	RoaServiceRequest("sae", "2019-05-06")
+{
+	setResourcePath("/pop/v1/sam/scale/applicationScalingRule");
+	setMethod(HttpRequest::Method::Get);
+}
+
+DescribeApplicationScalingRuleRequest::~DescribeApplicationScalingRuleRequest()
+{}
+
+std::string DescribeApplicationScalingRuleRequest::getScalingRuleName()const
+{
+	return scalingRuleName_;
+}
+
+void DescribeApplicationScalingRuleRequest::setScalingRuleName(const std::string& scalingRuleName)
+{
+	scalingRuleName_ = scalingRuleName;
+	setParameter("ScalingRuleName", scalingRuleName);
+}
+
+std::string DescribeApplicationScalingRuleRequest::getAppId()const
+{
+	return appId_;
+}
+
+void DescribeApplicationScalingRuleRequest::setAppId(const std::string& appId)
+{
+	appId_ = appId;
+	setParameter("AppId", appId);
+}
+

+ 150 - 0
sae/src/model/DescribeApplicationScalingRuleResult.cc

@@ -0,0 +1,150 @@
+/*
+ * 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/sae/model/DescribeApplicationScalingRuleResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Sae;
+using namespace AlibabaCloud::Sae::Model;
+
+DescribeApplicationScalingRuleResult::DescribeApplicationScalingRuleResult() :
+	ServiceResult()
+{}
+
+DescribeApplicationScalingRuleResult::DescribeApplicationScalingRuleResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeApplicationScalingRuleResult::~DescribeApplicationScalingRuleResult()
+{}
+
+void DescribeApplicationScalingRuleResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["UpdateTime"].isNull())
+		data_.updateTime = std::stol(dataNode["UpdateTime"].asString());
+	if(!dataNode["AppId"].isNull())
+		data_.appId = dataNode["AppId"].asString();
+	if(!dataNode["CreateTime"].isNull())
+		data_.createTime = std::stol(dataNode["CreateTime"].asString());
+	if(!dataNode["LastDisableTime"].isNull())
+		data_.lastDisableTime = std::stol(dataNode["LastDisableTime"].asString());
+	if(!dataNode["ScaleRuleEnabled"].isNull())
+		data_.scaleRuleEnabled = dataNode["ScaleRuleEnabled"].asString() == "true";
+	if(!dataNode["ScaleRuleType"].isNull())
+		data_.scaleRuleType = dataNode["ScaleRuleType"].asString();
+	if(!dataNode["ScaleRuleName"].isNull())
+		data_.scaleRuleName = dataNode["ScaleRuleName"].asString();
+	auto timerNode = dataNode["Timer"];
+	if(!timerNode["EndDate"].isNull())
+		data_.timer.endDate = timerNode["EndDate"].asString();
+	if(!timerNode["BeginDate"].isNull())
+		data_.timer.beginDate = timerNode["BeginDate"].asString();
+	if(!timerNode["Period"].isNull())
+		data_.timer.period = timerNode["Period"].asString();
+	auto allSchedulesNode = timerNode["Schedules"]["Schedule"];
+	for (auto timerNodeSchedulesSchedule : allSchedulesNode)
+	{
+		Data::Timer::Schedule scheduleObject;
+		if(!timerNodeSchedulesSchedule["AtTime"].isNull())
+			scheduleObject.atTime = timerNodeSchedulesSchedule["AtTime"].asString();
+		if(!timerNodeSchedulesSchedule["TargetReplicas"].isNull())
+			scheduleObject.targetReplicas = std::stoi(timerNodeSchedulesSchedule["TargetReplicas"].asString());
+		data_.timer.schedules.push_back(scheduleObject);
+	}
+	auto metricNode = dataNode["Metric"];
+	if(!metricNode["MaxReplicas"].isNull())
+		data_.metric.maxReplicas = std::stoi(metricNode["MaxReplicas"].asString());
+	if(!metricNode["MinReplicas"].isNull())
+		data_.metric.minReplicas = std::stoi(metricNode["MinReplicas"].asString());
+	auto allMetricsNode = metricNode["Metrics"]["Metric"];
+	for (auto metricNodeMetricsMetric : allMetricsNode)
+	{
+		Data::Metric::Metric1 metric1Object;
+		if(!metricNodeMetricsMetric["MetricTargetAverageUtilization"].isNull())
+			metric1Object.metricTargetAverageUtilization = std::stoi(metricNodeMetricsMetric["MetricTargetAverageUtilization"].asString());
+		if(!metricNodeMetricsMetric["MetricType"].isNull())
+			metric1Object.metricType = metricNodeMetricsMetric["MetricType"].asString();
+		data_.metric.metrics.push_back(metric1Object);
+	}
+	auto metricsStatusNode = metricNode["MetricsStatus"];
+	if(!metricsStatusNode["DesiredReplicas"].isNull())
+		data_.metric.metricsStatus.desiredReplicas = std::stol(metricsStatusNode["DesiredReplicas"].asString());
+	if(!metricsStatusNode["NextScaleTimePeriod"].isNull())
+		data_.metric.metricsStatus.nextScaleTimePeriod = std::stoi(metricsStatusNode["NextScaleTimePeriod"].asString());
+	if(!metricsStatusNode["CurrentReplicas"].isNull())
+		data_.metric.metricsStatus.currentReplicas = std::stol(metricsStatusNode["CurrentReplicas"].asString());
+	if(!metricsStatusNode["LastScaleTime"].isNull())
+		data_.metric.metricsStatus.lastScaleTime = metricsStatusNode["LastScaleTime"].asString();
+	auto allCurrentMetricsNode = metricsStatusNode["CurrentMetrics"]["CurrentMetric"];
+	for (auto metricsStatusNodeCurrentMetricsCurrentMetric : allCurrentMetricsNode)
+	{
+		Data::Metric::MetricsStatus::CurrentMetric currentMetricObject;
+		if(!metricsStatusNodeCurrentMetricsCurrentMetric["Type"].isNull())
+			currentMetricObject.type = metricsStatusNodeCurrentMetricsCurrentMetric["Type"].asString();
+		if(!metricsStatusNodeCurrentMetricsCurrentMetric["CurrentValue"].isNull())
+			currentMetricObject.currentValue = std::stol(metricsStatusNodeCurrentMetricsCurrentMetric["CurrentValue"].asString());
+		if(!metricsStatusNodeCurrentMetricsCurrentMetric["Name"].isNull())
+			currentMetricObject.name = metricsStatusNodeCurrentMetricsCurrentMetric["Name"].asString();
+		data_.metric.metricsStatus.currentMetrics.push_back(currentMetricObject);
+	}
+	auto allNextScaleMetricsNode = metricsStatusNode["NextScaleMetrics"]["NextScaleMetric"];
+	for (auto metricsStatusNodeNextScaleMetricsNextScaleMetric : allNextScaleMetricsNode)
+	{
+		Data::Metric::MetricsStatus::NextScaleMetric nextScaleMetricObject;
+		if(!metricsStatusNodeNextScaleMetricsNextScaleMetric["NextScaleOutAverageUtilization"].isNull())
+			nextScaleMetricObject.nextScaleOutAverageUtilization = std::stoi(metricsStatusNodeNextScaleMetricsNextScaleMetric["NextScaleOutAverageUtilization"].asString());
+		if(!metricsStatusNodeNextScaleMetricsNextScaleMetric["NextScaleInAverageUtilization"].isNull())
+			nextScaleMetricObject.nextScaleInAverageUtilization = std::stoi(metricsStatusNodeNextScaleMetricsNextScaleMetric["NextScaleInAverageUtilization"].asString());
+		if(!metricsStatusNodeNextScaleMetricsNextScaleMetric["Name"].isNull())
+			nextScaleMetricObject.name = metricsStatusNodeNextScaleMetricsNextScaleMetric["Name"].asString();
+		data_.metric.metricsStatus.nextScaleMetrics.push_back(nextScaleMetricObject);
+	}
+	auto scaleUpRulesNode = metricNode["ScaleUpRules"];
+	if(!scaleUpRulesNode["Step"].isNull())
+		data_.metric.scaleUpRules.step = std::stol(scaleUpRulesNode["Step"].asString());
+	if(!scaleUpRulesNode["StabilizationWindowSeconds"].isNull())
+		data_.metric.scaleUpRules.stabilizationWindowSeconds = std::stol(scaleUpRulesNode["StabilizationWindowSeconds"].asString());
+	if(!scaleUpRulesNode["Disabled"].isNull())
+		data_.metric.scaleUpRules.disabled = scaleUpRulesNode["Disabled"].asString() == "true";
+	auto scaleDownRulesNode = metricNode["ScaleDownRules"];
+	if(!scaleDownRulesNode["Step"].isNull())
+		data_.metric.scaleDownRules.step = std::stol(scaleDownRulesNode["Step"].asString());
+	if(!scaleDownRulesNode["StabilizationWindowSeconds"].isNull())
+		data_.metric.scaleDownRules.stabilizationWindowSeconds = std::stol(scaleDownRulesNode["StabilizationWindowSeconds"].asString());
+	if(!scaleDownRulesNode["Disabled"].isNull())
+		data_.metric.scaleDownRules.disabled = scaleDownRulesNode["Disabled"].asString() == "true";
+	if(!value["TraceId"].isNull())
+		traceId_ = value["TraceId"].asString();
+
+}
+
+std::string DescribeApplicationScalingRuleResult::getTraceId()const
+{
+	return traceId_;
+}
+
+DescribeApplicationScalingRuleResult::Data DescribeApplicationScalingRuleResult::getData()const
+{
+	return data_;
+}
+

+ 11 - 0
sae/src/model/RescaleApplicationRequest.cc

@@ -61,6 +61,17 @@ void RescaleApplicationRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+int RescaleApplicationRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void RescaleApplicationRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+
 bool RescaleApplicationRequest::getAutoEnableApplicationScalingRule()const
 {
 	return autoEnableApplicationScalingRule_;

+ 11 - 0
sae/src/model/RestartApplicationRequest.cc

@@ -50,3 +50,14 @@ void RestartApplicationRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+int RestartApplicationRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void RestartApplicationRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+

+ 11 - 0
sae/src/model/RollbackApplicationRequest.cc

@@ -72,6 +72,17 @@ void RollbackApplicationRequest::setBatchWaitTime(int batchWaitTime)
 	setParameter("BatchWaitTime", std::to_string(batchWaitTime));
 }
 
+int RollbackApplicationRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void RollbackApplicationRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+
 std::string RollbackApplicationRequest::getAutoEnableApplicationScalingRule()const
 {
 	return autoEnableApplicationScalingRule_;

+ 14 - 3
sae/src/model/UpdateApplicationScalingRuleRequest.cc

@@ -39,15 +39,15 @@ void UpdateApplicationScalingRuleRequest::setScalingRuleName(const std::string&
 	setParameter("ScalingRuleName", scalingRuleName);
 }
 
-std::string UpdateApplicationScalingRuleRequest::getMinReadyInstances()const
+int UpdateApplicationScalingRuleRequest::getMinReadyInstances()const
 {
 	return minReadyInstances_;
 }
 
-void UpdateApplicationScalingRuleRequest::setMinReadyInstances(const std::string& minReadyInstances)
+void UpdateApplicationScalingRuleRequest::setMinReadyInstances(int minReadyInstances)
 {
 	minReadyInstances_ = minReadyInstances;
-	setParameter("MinReadyInstances", minReadyInstances);
+	setParameter("MinReadyInstances", std::to_string(minReadyInstances));
 }
 
 std::string UpdateApplicationScalingRuleRequest::getScalingRuleTimer()const
@@ -83,3 +83,14 @@ void UpdateApplicationScalingRuleRequest::setAppId(const std::string& appId)
 	setParameter("AppId", appId);
 }
 
+int UpdateApplicationScalingRuleRequest::getMinReadyInstanceRatio()const
+{
+	return minReadyInstanceRatio_;
+}
+
+void UpdateApplicationScalingRuleRequest::setMinReadyInstanceRatio(int minReadyInstanceRatio)
+{
+	minReadyInstanceRatio_ = minReadyInstanceRatio;
+	setParameter("MinReadyInstanceRatio", std::to_string(minReadyInstanceRatio));
+}
+

+ 16 - 16
sae/src/model/UpdateApplicationScalingRuleResult.cc

@@ -40,50 +40,50 @@ void UpdateApplicationScalingRuleResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto dataNode = value["Data"];
-	if(!dataNode["ScaleRuleEnabled"].isNull())
-		data_.scaleRuleEnabled = dataNode["ScaleRuleEnabled"].asString() == "true";
-	if(!dataNode["LastDisableTime"].isNull())
-		data_.lastDisableTime = std::stol(dataNode["LastDisableTime"].asString());
+	if(!dataNode["UpdateTime"].isNull())
+		data_.updateTime = std::stol(dataNode["UpdateTime"].asString());
 	if(!dataNode["AppId"].isNull())
 		data_.appId = dataNode["AppId"].asString();
 	if(!dataNode["CreateTime"].isNull())
 		data_.createTime = std::stol(dataNode["CreateTime"].asString());
-	if(!dataNode["UpdateTime"].isNull())
-		data_.updateTime = std::stol(dataNode["UpdateTime"].asString());
-	if(!dataNode["ScaleRuleName"].isNull())
-		data_.scaleRuleName = dataNode["ScaleRuleName"].asString();
+	if(!dataNode["LastDisableTime"].isNull())
+		data_.lastDisableTime = std::stol(dataNode["LastDisableTime"].asString());
+	if(!dataNode["ScaleRuleEnabled"].isNull())
+		data_.scaleRuleEnabled = dataNode["ScaleRuleEnabled"].asString() == "true";
 	if(!dataNode["ScaleRuleType"].isNull())
 		data_.scaleRuleType = dataNode["ScaleRuleType"].asString();
+	if(!dataNode["ScaleRuleName"].isNull())
+		data_.scaleRuleName = dataNode["ScaleRuleName"].asString();
 	auto timerNode = dataNode["Timer"];
-	if(!timerNode["Period"].isNull())
-		data_.timer.period = timerNode["Period"].asString();
 	if(!timerNode["EndDate"].isNull())
 		data_.timer.endDate = timerNode["EndDate"].asString();
 	if(!timerNode["BeginDate"].isNull())
 		data_.timer.beginDate = timerNode["BeginDate"].asString();
+	if(!timerNode["Period"].isNull())
+		data_.timer.period = timerNode["Period"].asString();
 	auto allSchedulesNode = timerNode["Schedules"]["Schedule"];
 	for (auto timerNodeSchedulesSchedule : allSchedulesNode)
 	{
 		Data::Timer::Schedule scheduleObject;
-		if(!timerNodeSchedulesSchedule["TargetReplicas"].isNull())
-			scheduleObject.targetReplicas = std::stoi(timerNodeSchedulesSchedule["TargetReplicas"].asString());
 		if(!timerNodeSchedulesSchedule["AtTime"].isNull())
 			scheduleObject.atTime = timerNodeSchedulesSchedule["AtTime"].asString();
+		if(!timerNodeSchedulesSchedule["TargetReplicas"].isNull())
+			scheduleObject.targetReplicas = std::stoi(timerNodeSchedulesSchedule["TargetReplicas"].asString());
 		data_.timer.schedules.push_back(scheduleObject);
 	}
 	auto metricNode = dataNode["Metric"];
-	if(!metricNode["MinReplicas"].isNull())
-		data_.metric.minReplicas = std::stoi(metricNode["MinReplicas"].asString());
 	if(!metricNode["MaxReplicas"].isNull())
 		data_.metric.maxReplicas = std::stoi(metricNode["MaxReplicas"].asString());
+	if(!metricNode["MinReplicas"].isNull())
+		data_.metric.minReplicas = std::stoi(metricNode["MinReplicas"].asString());
 	auto allMetricsNode = metricNode["Metrics"]["Metric"];
 	for (auto metricNodeMetricsMetric : allMetricsNode)
 	{
 		Data::Metric::Metric1 metric1Object;
-		if(!metricNodeMetricsMetric["MetricType"].isNull())
-			metric1Object.metricType = metricNodeMetricsMetric["MetricType"].asString();
 		if(!metricNodeMetricsMetric["MetricTargetAverageUtilization"].isNull())
 			metric1Object.metricTargetAverageUtilization = std::stoi(metricNodeMetricsMetric["MetricTargetAverageUtilization"].asString());
+		if(!metricNodeMetricsMetric["MetricType"].isNull())
+			metric1Object.metricType = metricNodeMetricsMetric["MetricType"].asString();
 		data_.metric.metrics.push_back(metric1Object);
 	}
 	if(!value["TraceId"].isNull())