Просмотр исходного кода

Describe describeAvailableResource.

sdk-team 6 лет назад
Родитель
Сommit
00cb41817f

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-04-27 Version: 1.36.382
+- Describe describeAvailableResource.
+
 2020-04-27 Version: 1.36.381
 - ContrastFaceVerify Return SubCode.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.381
+1.36.382

+ 4 - 4
hbase/CMakeLists.txt

@@ -31,8 +31,6 @@ set(hbase_public_header_model
 	include/alibabacloud/hbase/model/CreateClusterResult.h
 	include/alibabacloud/hbase/model/CreateHbaseHaSlbRequest.h
 	include/alibabacloud/hbase/model/CreateHbaseHaSlbResult.h
-	include/alibabacloud/hbase/model/CreateInstanceRequest.h
-	include/alibabacloud/hbase/model/CreateInstanceResult.h
 	include/alibabacloud/hbase/model/CreateRestorePlanRequest.h
 	include/alibabacloud/hbase/model/CreateRestorePlanResult.h
 	include/alibabacloud/hbase/model/DeleteHbaseHaSlbRequest.h
@@ -41,6 +39,8 @@ set(hbase_public_header_model
 	include/alibabacloud/hbase/model/DeleteInstanceResult.h
 	include/alibabacloud/hbase/model/DeleteUserHdfsInfoRequest.h
 	include/alibabacloud/hbase/model/DeleteUserHdfsInfoResult.h
+	include/alibabacloud/hbase/model/DescribeAvailableResourceRequest.h
+	include/alibabacloud/hbase/model/DescribeAvailableResourceResult.h
 	include/alibabacloud/hbase/model/DescribeBackupPlanConfigRequest.h
 	include/alibabacloud/hbase/model/DescribeBackupPlanConfigResult.h
 	include/alibabacloud/hbase/model/DescribeBackupStatusRequest.h
@@ -124,8 +124,6 @@ set(hbase_src
 	src/model/CreateClusterResult.cc
 	src/model/CreateHbaseHaSlbRequest.cc
 	src/model/CreateHbaseHaSlbResult.cc
-	src/model/CreateInstanceRequest.cc
-	src/model/CreateInstanceResult.cc
 	src/model/CreateRestorePlanRequest.cc
 	src/model/CreateRestorePlanResult.cc
 	src/model/DeleteHbaseHaSlbRequest.cc
@@ -134,6 +132,8 @@ set(hbase_src
 	src/model/DeleteInstanceResult.cc
 	src/model/DeleteUserHdfsInfoRequest.cc
 	src/model/DeleteUserHdfsInfoResult.cc
+	src/model/DescribeAvailableResourceRequest.cc
+	src/model/DescribeAvailableResourceResult.cc
 	src/model/DescribeBackupPlanConfigRequest.cc
 	src/model/DescribeBackupPlanConfigResult.cc
 	src/model/DescribeBackupStatusRequest.cc

+ 8 - 8
hbase/include/alibabacloud/hbase/HBaseClient.h

@@ -32,8 +32,6 @@
 #include "model/CreateClusterResult.h"
 #include "model/CreateHbaseHaSlbRequest.h"
 #include "model/CreateHbaseHaSlbResult.h"
-#include "model/CreateInstanceRequest.h"
-#include "model/CreateInstanceResult.h"
 #include "model/CreateRestorePlanRequest.h"
 #include "model/CreateRestorePlanResult.h"
 #include "model/DeleteHbaseHaSlbRequest.h"
@@ -42,6 +40,8 @@
 #include "model/DeleteInstanceResult.h"
 #include "model/DeleteUserHdfsInfoRequest.h"
 #include "model/DeleteUserHdfsInfoResult.h"
+#include "model/DescribeAvailableResourceRequest.h"
+#include "model/DescribeAvailableResourceResult.h"
 #include "model/DescribeBackupPlanConfigRequest.h"
 #include "model/DescribeBackupPlanConfigResult.h"
 #include "model/DescribeBackupStatusRequest.h"
@@ -136,9 +136,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateHbaseHaSlbResult> CreateHbaseHaSlbOutcome;
 			typedef std::future<CreateHbaseHaSlbOutcome> CreateHbaseHaSlbOutcomeCallable;
 			typedef std::function<void(const HBaseClient*, const Model::CreateHbaseHaSlbRequest&, const CreateHbaseHaSlbOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateHbaseHaSlbAsyncHandler;
-			typedef Outcome<Error, Model::CreateInstanceResult> CreateInstanceOutcome;
-			typedef std::future<CreateInstanceOutcome> CreateInstanceOutcomeCallable;
-			typedef std::function<void(const HBaseClient*, const Model::CreateInstanceRequest&, const CreateInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateInstanceAsyncHandler;
 			typedef Outcome<Error, Model::CreateRestorePlanResult> CreateRestorePlanOutcome;
 			typedef std::future<CreateRestorePlanOutcome> CreateRestorePlanOutcomeCallable;
 			typedef std::function<void(const HBaseClient*, const Model::CreateRestorePlanRequest&, const CreateRestorePlanOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRestorePlanAsyncHandler;
@@ -151,6 +148,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteUserHdfsInfoResult> DeleteUserHdfsInfoOutcome;
 			typedef std::future<DeleteUserHdfsInfoOutcome> DeleteUserHdfsInfoOutcomeCallable;
 			typedef std::function<void(const HBaseClient*, const Model::DeleteUserHdfsInfoRequest&, const DeleteUserHdfsInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteUserHdfsInfoAsyncHandler;
+			typedef Outcome<Error, Model::DescribeAvailableResourceResult> DescribeAvailableResourceOutcome;
+			typedef std::future<DescribeAvailableResourceOutcome> DescribeAvailableResourceOutcomeCallable;
+			typedef std::function<void(const HBaseClient*, const Model::DescribeAvailableResourceRequest&, const DescribeAvailableResourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeAvailableResourceAsyncHandler;
 			typedef Outcome<Error, Model::DescribeBackupPlanConfigResult> DescribeBackupPlanConfigOutcome;
 			typedef std::future<DescribeBackupPlanConfigOutcome> DescribeBackupPlanConfigOutcomeCallable;
 			typedef std::function<void(const HBaseClient*, const Model::DescribeBackupPlanConfigRequest&, const DescribeBackupPlanConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeBackupPlanConfigAsyncHandler;
@@ -276,9 +276,6 @@ namespace AlibabaCloud
 			CreateHbaseHaSlbOutcome createHbaseHaSlb(const Model::CreateHbaseHaSlbRequest &request)const;
 			void createHbaseHaSlbAsync(const Model::CreateHbaseHaSlbRequest& request, const CreateHbaseHaSlbAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateHbaseHaSlbOutcomeCallable createHbaseHaSlbCallable(const Model::CreateHbaseHaSlbRequest& request) const;
-			CreateInstanceOutcome createInstance(const Model::CreateInstanceRequest &request)const;
-			void createInstanceAsync(const Model::CreateInstanceRequest& request, const CreateInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			CreateInstanceOutcomeCallable createInstanceCallable(const Model::CreateInstanceRequest& request) const;
 			CreateRestorePlanOutcome createRestorePlan(const Model::CreateRestorePlanRequest &request)const;
 			void createRestorePlanAsync(const Model::CreateRestorePlanRequest& request, const CreateRestorePlanAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateRestorePlanOutcomeCallable createRestorePlanCallable(const Model::CreateRestorePlanRequest& request) const;
@@ -291,6 +288,9 @@ namespace AlibabaCloud
 			DeleteUserHdfsInfoOutcome deleteUserHdfsInfo(const Model::DeleteUserHdfsInfoRequest &request)const;
 			void deleteUserHdfsInfoAsync(const Model::DeleteUserHdfsInfoRequest& request, const DeleteUserHdfsInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteUserHdfsInfoOutcomeCallable deleteUserHdfsInfoCallable(const Model::DeleteUserHdfsInfoRequest& request) const;
+			DescribeAvailableResourceOutcome describeAvailableResource(const Model::DescribeAvailableResourceRequest &request)const;
+			void describeAvailableResourceAsync(const Model::DescribeAvailableResourceRequest& request, const DescribeAvailableResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeAvailableResourceOutcomeCallable describeAvailableResourceCallable(const Model::DescribeAvailableResourceRequest& request) const;
 			DescribeBackupPlanConfigOutcome describeBackupPlanConfig(const Model::DescribeBackupPlanConfigRequest &request)const;
 			void describeBackupPlanConfigAsync(const Model::DescribeBackupPlanConfigRequest& request, const DescribeBackupPlanConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeBackupPlanConfigOutcomeCallable describeBackupPlanConfigCallable(const Model::DescribeBackupPlanConfigRequest& request) const;

+ 0 - 129
hbase/include/alibabacloud/hbase/model/CreateInstanceRequest.h

@@ -1,129 +0,0 @@
-/*
- * 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_HBASE_MODEL_CREATEINSTANCEREQUEST_H_
-#define ALIBABACLOUD_HBASE_MODEL_CREATEINSTANCEREQUEST_H_
-
-#include <string>
-#include <vector>
-#include <alibabacloud/core/RpcServiceRequest.h>
-#include <alibabacloud/hbase/HBaseExport.h>
-
-namespace AlibabaCloud
-{
-	namespace HBase
-	{
-		namespace Model
-		{
-			class ALIBABACLOUD_HBASE_EXPORT CreateInstanceRequest : public RpcServiceRequest
-			{
-
-			public:
-				CreateInstanceRequest();
-				~CreateInstanceRequest();
-
-				std::string getClusterName()const;
-				void setClusterName(const std::string& clusterName);
-				std::string getDbInstanceConnType()const;
-				void setDbInstanceConnType(const std::string& dbInstanceConnType);
-				std::string getEngineVersion()const;
-				void setEngineVersion(const std::string& engineVersion);
-				std::string getDepMode()const;
-				void setDepMode(const std::string& depMode);
-				std::string getBackupId()const;
-				void setBackupId(const std::string& backupId);
-				std::string getDbInstanceType()const;
-				void setDbInstanceType(const std::string& dbInstanceType);
-				std::string getVSwitchId()const;
-				void setVSwitchId(const std::string& vSwitchId);
-				std::string getSecurityIPList()const;
-				void setSecurityIPList(const std::string& securityIPList);
-				std::string getAutoRenew()const;
-				void setAutoRenew(const std::string& autoRenew);
-				std::string getNetType()const;
-				void setNetType(const std::string& netType);
-				std::string getZoneId()const;
-				void setZoneId(const std::string& zoneId);
-				std::string getCoreDiskType()const;
-				void setCoreDiskType(const std::string& coreDiskType);
-				std::string getPricingCycle()const;
-				void setPricingCycle(const std::string& pricingCycle);
-				std::string getCoreInstanceQuantity()const;
-				void setCoreInstanceQuantity(const std::string& coreInstanceQuantity);
-				std::string getDuration()const;
-				void setDuration(const std::string& duration);
-				std::string getRegionId()const;
-				void setRegionId(const std::string& regionId);
-				std::string getEngine()const;
-				void setEngine(const std::string& engine);
-				std::string getRestoreTime()const;
-				void setRestoreTime(const std::string& restoreTime);
-				std::string getSrcDBInstanceId()const;
-				void setSrcDBInstanceId(const std::string& srcDBInstanceId);
-				std::string getMasterInstanceType()const;
-				void setMasterInstanceType(const std::string& masterInstanceType);
-				std::string getColdStorageSize()const;
-				void setColdStorageSize(const std::string& coldStorageSize);
-				std::string getCoreDiskQuantity()const;
-				void setCoreDiskQuantity(const std::string& coreDiskQuantity);
-				std::string getIsColdStorage()const;
-				void setIsColdStorage(const std::string& isColdStorage);
-				std::string getCoreInstanceType()const;
-				void setCoreInstanceType(const std::string& coreInstanceType);
-				std::string getCoreDiskSize()const;
-				void setCoreDiskSize(const std::string& coreDiskSize);
-				std::string getVpcId()const;
-				void setVpcId(const std::string& vpcId);
-				std::string getDbType()const;
-				void setDbType(const std::string& dbType);
-				std::string getPayType()const;
-				void setPayType(const std::string& payType);
-
-            private:
-				std::string clusterName_;
-				std::string dbInstanceConnType_;
-				std::string engineVersion_;
-				std::string depMode_;
-				std::string backupId_;
-				std::string dbInstanceType_;
-				std::string vSwitchId_;
-				std::string securityIPList_;
-				std::string autoRenew_;
-				std::string netType_;
-				std::string zoneId_;
-				std::string coreDiskType_;
-				std::string pricingCycle_;
-				std::string coreInstanceQuantity_;
-				std::string duration_;
-				std::string regionId_;
-				std::string engine_;
-				std::string restoreTime_;
-				std::string srcDBInstanceId_;
-				std::string masterInstanceType_;
-				std::string coldStorageSize_;
-				std::string coreDiskQuantity_;
-				std::string isColdStorage_;
-				std::string coreInstanceType_;
-				std::string coreDiskSize_;
-				std::string vpcId_;
-				std::string dbType_;
-				std::string payType_;
-
-			};
-		}
-	}
-}
-#endif // !ALIBABACLOUD_HBASE_MODEL_CREATEINSTANCEREQUEST_H_

+ 18 - 17
hbase/include/alibabacloud/hbase/model/CreateInstanceResult.h → hbase/include/alibabacloud/hbase/model/DescribeAvailableResourceRequest.h

@@ -14,13 +14,12 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_HBASE_MODEL_CREATEINSTANCERESULT_H_
-#define ALIBABACLOUD_HBASE_MODEL_CREATEINSTANCERESULT_H_
+#ifndef ALIBABACLOUD_HBASE_MODEL_DESCRIBEAVAILABLERESOURCEREQUEST_H_
+#define ALIBABACLOUD_HBASE_MODEL_DESCRIBEAVAILABLERESOURCEREQUEST_H_
 
 #include <string>
 #include <vector>
-#include <utility>
-#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
 #include <alibabacloud/hbase/HBaseExport.h>
 
 namespace AlibabaCloud
@@ -29,25 +28,27 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_HBASE_EXPORT CreateInstanceResult : public ServiceResult
+			class ALIBABACLOUD_HBASE_EXPORT DescribeAvailableResourceRequest : public RpcServiceRequest
 			{
-			public:
 
+			public:
+				DescribeAvailableResourceRequest();
+				~DescribeAvailableResourceRequest();
 
-				CreateInstanceResult();
-				explicit CreateInstanceResult(const std::string &payload);
-				~CreateInstanceResult();
-				std::string getClusterId()const;
-				std::string getOrderId()const;
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getZoneId()const;
+				void setZoneId(const std::string& zoneId);
+				std::string getChargeType()const;
+				void setChargeType(const std::string& chargeType);
 
-			protected:
-				void parse(const std::string &payload);
-			private:
-				std::string clusterId_;
-				std::string orderId_;
+            private:
+				std::string regionId_;
+				std::string zoneId_;
+				std::string chargeType_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_HBASE_MODEL_CREATEINSTANCERESULT_H_
+#endif // !ALIBABACLOUD_HBASE_MODEL_DESCRIBEAVAILABLERESOURCEREQUEST_H_

+ 105 - 0
hbase/include/alibabacloud/hbase/model/DescribeAvailableResourceResult.h

@@ -0,0 +1,105 @@
+/*
+ * 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_HBASE_MODEL_DESCRIBEAVAILABLERESOURCERESULT_H_
+#define ALIBABACLOUD_HBASE_MODEL_DESCRIBEAVAILABLERESOURCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/hbase/HBaseExport.h>
+
+namespace AlibabaCloud
+{
+	namespace HBase
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_HBASE_EXPORT DescribeAvailableResourceResult : public ServiceResult
+			{
+			public:
+				struct AvailableZone
+				{
+					struct SupportedEngine
+					{
+						struct SupportedEngineVersion
+						{
+							struct SupportedCategoriesItem
+							{
+								struct SupportedStorageType
+								{
+									struct CoreResource
+									{
+										struct DBInstanceStorageRange
+										{
+											int minSize;
+											int stepSize;
+											int maxSize;
+										};
+										struct InstanceTypeDetail
+										{
+											int mem;
+											int cpu;
+										};
+										InstanceTypeDetail instanceTypeDetail;
+										DBInstanceStorageRange dBInstanceStorageRange;
+										std::string instanceType;
+									};
+									std::string storageType;
+									std::vector<SupportedStorageType::CoreResource> coreResources;
+								};
+								std::string category;
+								std::vector<SupportedCategoriesItem::SupportedStorageType> supportedStorageTypes;
+							};
+							std::string version;
+							std::vector<SupportedEngineVersion::SupportedCategoriesItem> supportedCategories;
+						};
+						std::vector<SupportedEngine::SupportedEngineVersion> supportedEngineVersions;
+						std::string engine;
+					};
+					struct MasterResource
+					{
+						struct InstanceTypeDetail1
+						{
+							int mem;
+							int cpu;
+						};
+						InstanceTypeDetail1 instanceTypeDetail1;
+						std::string instanceType;
+					};
+					std::vector<AvailableZone::MasterResource> masterResources;
+					std::string zoneId;
+					std::vector<AvailableZone::SupportedEngine> supportedEngines;
+					std::string regionId;
+				};
+
+
+				DescribeAvailableResourceResult();
+				explicit DescribeAvailableResourceResult(const std::string &payload);
+				~DescribeAvailableResourceResult();
+				std::vector<AvailableZone> getAvailableZones()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<AvailableZone> availableZones_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_HBASE_MODEL_DESCRIBEAVAILABLERESOURCERESULT_H_

+ 39 - 39
hbase/src/HBaseClient.cc

@@ -31,21 +31,21 @@ HBaseClient::HBaseClient(const Credentials &credentials, const ClientConfigurati
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "hbase");
 }
 
 HBaseClient::HBaseClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "hbase");
 }
 
 HBaseClient::HBaseClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
 	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
 {
 	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
-	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "hbase");
 }
 
 HBaseClient::~HBaseClient()
@@ -231,42 +231,6 @@ HBaseClient::CreateHbaseHaSlbOutcomeCallable HBaseClient::createHbaseHaSlbCallab
 	return task->get_future();
 }
 
-HBaseClient::CreateInstanceOutcome HBaseClient::createInstance(const CreateInstanceRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return CreateInstanceOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return CreateInstanceOutcome(CreateInstanceResult(outcome.result()));
-	else
-		return CreateInstanceOutcome(outcome.error());
-}
-
-void HBaseClient::createInstanceAsync(const CreateInstanceRequest& request, const CreateInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, createInstance(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-HBaseClient::CreateInstanceOutcomeCallable HBaseClient::createInstanceCallable(const CreateInstanceRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<CreateInstanceOutcome()>>(
-			[this, request]()
-			{
-			return this->createInstance(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 HBaseClient::CreateRestorePlanOutcome HBaseClient::createRestorePlan(const CreateRestorePlanRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -411,6 +375,42 @@ HBaseClient::DeleteUserHdfsInfoOutcomeCallable HBaseClient::deleteUserHdfsInfoCa
 	return task->get_future();
 }
 
+HBaseClient::DescribeAvailableResourceOutcome HBaseClient::describeAvailableResource(const DescribeAvailableResourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeAvailableResourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeAvailableResourceOutcome(DescribeAvailableResourceResult(outcome.result()));
+	else
+		return DescribeAvailableResourceOutcome(outcome.error());
+}
+
+void HBaseClient::describeAvailableResourceAsync(const DescribeAvailableResourceRequest& request, const DescribeAvailableResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeAvailableResource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+HBaseClient::DescribeAvailableResourceOutcomeCallable HBaseClient::describeAvailableResourceCallable(const DescribeAvailableResourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeAvailableResourceOutcome()>>(
+			[this, request]()
+			{
+			return this->describeAvailableResource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 HBaseClient::DescribeBackupPlanConfigOutcome HBaseClient::describeBackupPlanConfig(const DescribeBackupPlanConfigRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 0 - 337
hbase/src/model/CreateInstanceRequest.cc

@@ -1,337 +0,0 @@
-/*
- * 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/hbase/model/CreateInstanceRequest.h>
-
-using AlibabaCloud::HBase::Model::CreateInstanceRequest;
-
-CreateInstanceRequest::CreateInstanceRequest() :
-	RpcServiceRequest("hbase", "2019-01-01", "CreateInstance")
-{
-	setMethod(HttpRequest::Method::Post);
-}
-
-CreateInstanceRequest::~CreateInstanceRequest()
-{}
-
-std::string CreateInstanceRequest::getClusterName()const
-{
-	return clusterName_;
-}
-
-void CreateInstanceRequest::setClusterName(const std::string& clusterName)
-{
-	clusterName_ = clusterName;
-	setParameter("ClusterName", clusterName);
-}
-
-std::string CreateInstanceRequest::getDbInstanceConnType()const
-{
-	return dbInstanceConnType_;
-}
-
-void CreateInstanceRequest::setDbInstanceConnType(const std::string& dbInstanceConnType)
-{
-	dbInstanceConnType_ = dbInstanceConnType;
-	setParameter("DbInstanceConnType", dbInstanceConnType);
-}
-
-std::string CreateInstanceRequest::getEngineVersion()const
-{
-	return engineVersion_;
-}
-
-void CreateInstanceRequest::setEngineVersion(const std::string& engineVersion)
-{
-	engineVersion_ = engineVersion;
-	setParameter("EngineVersion", engineVersion);
-}
-
-std::string CreateInstanceRequest::getDepMode()const
-{
-	return depMode_;
-}
-
-void CreateInstanceRequest::setDepMode(const std::string& depMode)
-{
-	depMode_ = depMode;
-	setParameter("DepMode", depMode);
-}
-
-std::string CreateInstanceRequest::getBackupId()const
-{
-	return backupId_;
-}
-
-void CreateInstanceRequest::setBackupId(const std::string& backupId)
-{
-	backupId_ = backupId;
-	setParameter("BackupId", backupId);
-}
-
-std::string CreateInstanceRequest::getDbInstanceType()const
-{
-	return dbInstanceType_;
-}
-
-void CreateInstanceRequest::setDbInstanceType(const std::string& dbInstanceType)
-{
-	dbInstanceType_ = dbInstanceType;
-	setParameter("DbInstanceType", dbInstanceType);
-}
-
-std::string CreateInstanceRequest::getVSwitchId()const
-{
-	return vSwitchId_;
-}
-
-void CreateInstanceRequest::setVSwitchId(const std::string& vSwitchId)
-{
-	vSwitchId_ = vSwitchId;
-	setParameter("VSwitchId", vSwitchId);
-}
-
-std::string CreateInstanceRequest::getSecurityIPList()const
-{
-	return securityIPList_;
-}
-
-void CreateInstanceRequest::setSecurityIPList(const std::string& securityIPList)
-{
-	securityIPList_ = securityIPList;
-	setParameter("SecurityIPList", securityIPList);
-}
-
-std::string CreateInstanceRequest::getAutoRenew()const
-{
-	return autoRenew_;
-}
-
-void CreateInstanceRequest::setAutoRenew(const std::string& autoRenew)
-{
-	autoRenew_ = autoRenew;
-	setParameter("AutoRenew", autoRenew);
-}
-
-std::string CreateInstanceRequest::getNetType()const
-{
-	return netType_;
-}
-
-void CreateInstanceRequest::setNetType(const std::string& netType)
-{
-	netType_ = netType;
-	setParameter("NetType", netType);
-}
-
-std::string CreateInstanceRequest::getZoneId()const
-{
-	return zoneId_;
-}
-
-void CreateInstanceRequest::setZoneId(const std::string& zoneId)
-{
-	zoneId_ = zoneId;
-	setParameter("ZoneId", zoneId);
-}
-
-std::string CreateInstanceRequest::getCoreDiskType()const
-{
-	return coreDiskType_;
-}
-
-void CreateInstanceRequest::setCoreDiskType(const std::string& coreDiskType)
-{
-	coreDiskType_ = coreDiskType;
-	setParameter("CoreDiskType", coreDiskType);
-}
-
-std::string CreateInstanceRequest::getPricingCycle()const
-{
-	return pricingCycle_;
-}
-
-void CreateInstanceRequest::setPricingCycle(const std::string& pricingCycle)
-{
-	pricingCycle_ = pricingCycle;
-	setParameter("PricingCycle", pricingCycle);
-}
-
-std::string CreateInstanceRequest::getCoreInstanceQuantity()const
-{
-	return coreInstanceQuantity_;
-}
-
-void CreateInstanceRequest::setCoreInstanceQuantity(const std::string& coreInstanceQuantity)
-{
-	coreInstanceQuantity_ = coreInstanceQuantity;
-	setParameter("CoreInstanceQuantity", coreInstanceQuantity);
-}
-
-std::string CreateInstanceRequest::getDuration()const
-{
-	return duration_;
-}
-
-void CreateInstanceRequest::setDuration(const std::string& duration)
-{
-	duration_ = duration;
-	setParameter("Duration", duration);
-}
-
-std::string CreateInstanceRequest::getRegionId()const
-{
-	return regionId_;
-}
-
-void CreateInstanceRequest::setRegionId(const std::string& regionId)
-{
-	regionId_ = regionId;
-	setParameter("RegionId", regionId);
-}
-
-std::string CreateInstanceRequest::getEngine()const
-{
-	return engine_;
-}
-
-void CreateInstanceRequest::setEngine(const std::string& engine)
-{
-	engine_ = engine;
-	setParameter("Engine", engine);
-}
-
-std::string CreateInstanceRequest::getRestoreTime()const
-{
-	return restoreTime_;
-}
-
-void CreateInstanceRequest::setRestoreTime(const std::string& restoreTime)
-{
-	restoreTime_ = restoreTime;
-	setParameter("RestoreTime", restoreTime);
-}
-
-std::string CreateInstanceRequest::getSrcDBInstanceId()const
-{
-	return srcDBInstanceId_;
-}
-
-void CreateInstanceRequest::setSrcDBInstanceId(const std::string& srcDBInstanceId)
-{
-	srcDBInstanceId_ = srcDBInstanceId;
-	setParameter("SrcDBInstanceId", srcDBInstanceId);
-}
-
-std::string CreateInstanceRequest::getMasterInstanceType()const
-{
-	return masterInstanceType_;
-}
-
-void CreateInstanceRequest::setMasterInstanceType(const std::string& masterInstanceType)
-{
-	masterInstanceType_ = masterInstanceType;
-	setParameter("MasterInstanceType", masterInstanceType);
-}
-
-std::string CreateInstanceRequest::getColdStorageSize()const
-{
-	return coldStorageSize_;
-}
-
-void CreateInstanceRequest::setColdStorageSize(const std::string& coldStorageSize)
-{
-	coldStorageSize_ = coldStorageSize;
-	setParameter("ColdStorageSize", coldStorageSize);
-}
-
-std::string CreateInstanceRequest::getCoreDiskQuantity()const
-{
-	return coreDiskQuantity_;
-}
-
-void CreateInstanceRequest::setCoreDiskQuantity(const std::string& coreDiskQuantity)
-{
-	coreDiskQuantity_ = coreDiskQuantity;
-	setParameter("CoreDiskQuantity", coreDiskQuantity);
-}
-
-std::string CreateInstanceRequest::getIsColdStorage()const
-{
-	return isColdStorage_;
-}
-
-void CreateInstanceRequest::setIsColdStorage(const std::string& isColdStorage)
-{
-	isColdStorage_ = isColdStorage;
-	setParameter("IsColdStorage", isColdStorage);
-}
-
-std::string CreateInstanceRequest::getCoreInstanceType()const
-{
-	return coreInstanceType_;
-}
-
-void CreateInstanceRequest::setCoreInstanceType(const std::string& coreInstanceType)
-{
-	coreInstanceType_ = coreInstanceType;
-	setParameter("CoreInstanceType", coreInstanceType);
-}
-
-std::string CreateInstanceRequest::getCoreDiskSize()const
-{
-	return coreDiskSize_;
-}
-
-void CreateInstanceRequest::setCoreDiskSize(const std::string& coreDiskSize)
-{
-	coreDiskSize_ = coreDiskSize;
-	setParameter("CoreDiskSize", coreDiskSize);
-}
-
-std::string CreateInstanceRequest::getVpcId()const
-{
-	return vpcId_;
-}
-
-void CreateInstanceRequest::setVpcId(const std::string& vpcId)
-{
-	vpcId_ = vpcId;
-	setParameter("VpcId", vpcId);
-}
-
-std::string CreateInstanceRequest::getDbType()const
-{
-	return dbType_;
-}
-
-void CreateInstanceRequest::setDbType(const std::string& dbType)
-{
-	dbType_ = dbType;
-	setParameter("DbType", dbType);
-}
-
-std::string CreateInstanceRequest::getPayType()const
-{
-	return payType_;
-}
-
-void CreateInstanceRequest::setPayType(const std::string& payType)
-{
-	payType_ = payType;
-	setParameter("PayType", payType);
-}
-

+ 0 - 58
hbase/src/model/CreateInstanceResult.cc

@@ -1,58 +0,0 @@
-/*
- * 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/hbase/model/CreateInstanceResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::HBase;
-using namespace AlibabaCloud::HBase::Model;
-
-CreateInstanceResult::CreateInstanceResult() :
-	ServiceResult()
-{}
-
-CreateInstanceResult::CreateInstanceResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-CreateInstanceResult::~CreateInstanceResult()
-{}
-
-void CreateInstanceResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	if(!value["ClusterId"].isNull())
-		clusterId_ = value["ClusterId"].asString();
-	if(!value["OrderId"].isNull())
-		orderId_ = value["OrderId"].asString();
-
-}
-
-std::string CreateInstanceResult::getClusterId()const
-{
-	return clusterId_;
-}
-
-std::string CreateInstanceResult::getOrderId()const
-{
-	return orderId_;
-}
-

+ 62 - 0
hbase/src/model/DescribeAvailableResourceRequest.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/hbase/model/DescribeAvailableResourceRequest.h>
+
+using AlibabaCloud::HBase::Model::DescribeAvailableResourceRequest;
+
+DescribeAvailableResourceRequest::DescribeAvailableResourceRequest() :
+	RpcServiceRequest("hbase", "2019-01-01", "DescribeAvailableResource")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeAvailableResourceRequest::~DescribeAvailableResourceRequest()
+{}
+
+std::string DescribeAvailableResourceRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribeAvailableResourceRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string DescribeAvailableResourceRequest::getZoneId()const
+{
+	return zoneId_;
+}
+
+void DescribeAvailableResourceRequest::setZoneId(const std::string& zoneId)
+{
+	zoneId_ = zoneId;
+	setParameter("ZoneId", zoneId);
+}
+
+std::string DescribeAvailableResourceRequest::getChargeType()const
+{
+	return chargeType_;
+}
+
+void DescribeAvailableResourceRequest::setChargeType(const std::string& chargeType)
+{
+	chargeType_ = chargeType;
+	setParameter("ChargeType", chargeType);
+}
+

+ 124 - 0
hbase/src/model/DescribeAvailableResourceResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/hbase/model/DescribeAvailableResourceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::HBase;
+using namespace AlibabaCloud::HBase::Model;
+
+DescribeAvailableResourceResult::DescribeAvailableResourceResult() :
+	ServiceResult()
+{}
+
+DescribeAvailableResourceResult::DescribeAvailableResourceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeAvailableResourceResult::~DescribeAvailableResourceResult()
+{}
+
+void DescribeAvailableResourceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allAvailableZonesNode = value["AvailableZones"]["AvailableZone"];
+	for (auto valueAvailableZonesAvailableZone : allAvailableZonesNode)
+	{
+		AvailableZone availableZonesObject;
+		if(!valueAvailableZonesAvailableZone["RegionId"].isNull())
+			availableZonesObject.regionId = valueAvailableZonesAvailableZone["RegionId"].asString();
+		if(!valueAvailableZonesAvailableZone["ZoneId"].isNull())
+			availableZonesObject.zoneId = valueAvailableZonesAvailableZone["ZoneId"].asString();
+		auto allSupportedEnginesNode = allAvailableZonesNode["SupportedEngines"]["SupportedEngine"];
+		for (auto allAvailableZonesNodeSupportedEnginesSupportedEngine : allSupportedEnginesNode)
+		{
+			AvailableZone::SupportedEngine supportedEnginesObject;
+			if(!allAvailableZonesNodeSupportedEnginesSupportedEngine["Engine"].isNull())
+				supportedEnginesObject.engine = allAvailableZonesNodeSupportedEnginesSupportedEngine["Engine"].asString();
+			auto allSupportedEngineVersionsNode = allSupportedEnginesNode["SupportedEngineVersions"]["SupportedEngineVersion"];
+			for (auto allSupportedEnginesNodeSupportedEngineVersionsSupportedEngineVersion : allSupportedEngineVersionsNode)
+			{
+				AvailableZone::SupportedEngine::SupportedEngineVersion supportedEngineVersionsObject;
+				if(!allSupportedEnginesNodeSupportedEngineVersionsSupportedEngineVersion["Version"].isNull())
+					supportedEngineVersionsObject.version = allSupportedEnginesNodeSupportedEngineVersionsSupportedEngineVersion["Version"].asString();
+				auto allSupportedCategoriesNode = allSupportedEngineVersionsNode["SupportedCategories"]["SupportedCategoriesItem"];
+				for (auto allSupportedEngineVersionsNodeSupportedCategoriesSupportedCategoriesItem : allSupportedCategoriesNode)
+				{
+					AvailableZone::SupportedEngine::SupportedEngineVersion::SupportedCategoriesItem supportedCategoriesObject;
+					if(!allSupportedEngineVersionsNodeSupportedCategoriesSupportedCategoriesItem["Category"].isNull())
+						supportedCategoriesObject.category = allSupportedEngineVersionsNodeSupportedCategoriesSupportedCategoriesItem["Category"].asString();
+					auto allSupportedStorageTypesNode = allSupportedCategoriesNode["SupportedStorageTypes"]["SupportedStorageType"];
+					for (auto allSupportedCategoriesNodeSupportedStorageTypesSupportedStorageType : allSupportedStorageTypesNode)
+					{
+						AvailableZone::SupportedEngine::SupportedEngineVersion::SupportedCategoriesItem::SupportedStorageType supportedStorageTypesObject;
+						if(!allSupportedCategoriesNodeSupportedStorageTypesSupportedStorageType["StorageType"].isNull())
+							supportedStorageTypesObject.storageType = allSupportedCategoriesNodeSupportedStorageTypesSupportedStorageType["StorageType"].asString();
+						auto allCoreResourcesNode = allSupportedStorageTypesNode["CoreResources"]["CoreResource"];
+						for (auto allSupportedStorageTypesNodeCoreResourcesCoreResource : allCoreResourcesNode)
+						{
+							AvailableZone::SupportedEngine::SupportedEngineVersion::SupportedCategoriesItem::SupportedStorageType::CoreResource coreResourcesObject;
+							if(!allSupportedStorageTypesNodeCoreResourcesCoreResource["InstanceType"].isNull())
+								coreResourcesObject.instanceType = allSupportedStorageTypesNodeCoreResourcesCoreResource["InstanceType"].asString();
+							auto dBInstanceStorageRangeNode = value["DBInstanceStorageRange"];
+							if(!dBInstanceStorageRangeNode["MaxSize"].isNull())
+								coreResourcesObject.dBInstanceStorageRange.maxSize = std::stoi(dBInstanceStorageRangeNode["MaxSize"].asString());
+							if(!dBInstanceStorageRangeNode["MinSize"].isNull())
+								coreResourcesObject.dBInstanceStorageRange.minSize = std::stoi(dBInstanceStorageRangeNode["MinSize"].asString());
+							if(!dBInstanceStorageRangeNode["StepSize"].isNull())
+								coreResourcesObject.dBInstanceStorageRange.stepSize = std::stoi(dBInstanceStorageRangeNode["StepSize"].asString());
+							auto instanceTypeDetailNode = value["InstanceTypeDetail"];
+							if(!instanceTypeDetailNode["Cpu"].isNull())
+								coreResourcesObject.instanceTypeDetail.cpu = std::stoi(instanceTypeDetailNode["Cpu"].asString());
+							if(!instanceTypeDetailNode["Mem"].isNull())
+								coreResourcesObject.instanceTypeDetail.mem = std::stoi(instanceTypeDetailNode["Mem"].asString());
+							supportedStorageTypesObject.coreResources.push_back(coreResourcesObject);
+						}
+						supportedCategoriesObject.supportedStorageTypes.push_back(supportedStorageTypesObject);
+					}
+					supportedEngineVersionsObject.supportedCategories.push_back(supportedCategoriesObject);
+				}
+				supportedEnginesObject.supportedEngineVersions.push_back(supportedEngineVersionsObject);
+			}
+			availableZonesObject.supportedEngines.push_back(supportedEnginesObject);
+		}
+		auto allMasterResourcesNode = allAvailableZonesNode["MasterResources"]["MasterResource"];
+		for (auto allAvailableZonesNodeMasterResourcesMasterResource : allMasterResourcesNode)
+		{
+			AvailableZone::MasterResource masterResourcesObject;
+			if(!allAvailableZonesNodeMasterResourcesMasterResource["InstanceType"].isNull())
+				masterResourcesObject.instanceType = allAvailableZonesNodeMasterResourcesMasterResource["InstanceType"].asString();
+			auto instanceTypeDetail1Node = value["InstanceTypeDetail"];
+			if(!instanceTypeDetail1Node["Cpu"].isNull())
+				masterResourcesObject.instanceTypeDetail1.cpu = std::stoi(instanceTypeDetail1Node["Cpu"].asString());
+			if(!instanceTypeDetail1Node["Mem"].isNull())
+				masterResourcesObject.instanceTypeDetail1.mem = std::stoi(instanceTypeDetail1Node["Mem"].asString());
+			availableZonesObject.masterResources.push_back(masterResourcesObject);
+		}
+		availableZones_.push_back(availableZonesObject);
+	}
+
+}
+
+std::vector<DescribeAvailableResourceResult::AvailableZone> DescribeAvailableResourceResult::getAvailableZones()const
+{
+	return availableZones_;
+}
+