From 1ef5aff5c42fc97ddff51c2e1ac96bc5b019e97c Mon Sep 17 00:00:00 2001 From: sdk-team Date: Tue, 27 Jul 2021 02:38:49 +0000 Subject: [PATCH] Add StartTerminalSession. --- CHANGELOG | 3 + VERSION | 2 +- ecs/CMakeLists.txt | 4 + ecs/include/alibabacloud/ecs/EcsClient.h | 8 ++ .../ecs/model/DescribeImagesRequest.h | 6 ++ .../ecs/model/DescribeImagesResult.h | 2 + ...DescribeInstanceModificationPriceRequest.h | 2 +- .../model/ModifyImageSharePermissionRequest.h | 3 + .../ecs/model/StartTerminalSessionRequest.h | 63 ++++++++++++ .../ecs/model/StartTerminalSessionResult.h | 55 +++++++++++ ecs/src/EcsClient.cc | 36 +++++++ ecs/src/model/DescribeImagesRequest.cc | 22 +++++ ecs/src/model/DescribeImagesResult.cc | 4 + ...escribeInstanceModificationPriceRequest.cc | 2 +- ...DescribeInstanceModificationPriceResult.cc | 8 +- .../ModifyImageSharePermissionRequest.cc | 11 +++ ecs/src/model/StartTerminalSessionRequest.cc | 97 +++++++++++++++++++ ecs/src/model/StartTerminalSessionResult.cc | 65 +++++++++++++ 18 files changed, 386 insertions(+), 7 deletions(-) create mode 100644 ecs/include/alibabacloud/ecs/model/StartTerminalSessionRequest.h create mode 100644 ecs/include/alibabacloud/ecs/model/StartTerminalSessionResult.h create mode 100644 ecs/src/model/StartTerminalSessionRequest.cc create mode 100644 ecs/src/model/StartTerminalSessionResult.cc diff --git a/CHANGELOG b/CHANGELOG index dfc9b377e..f61abd26b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2021-07-27 Version: 1.36.827 +- Add StartTerminalSession. + 2021-07-23 Version: 1.36.826 - Export instance relative API. diff --git a/VERSION b/VERSION index 44afe341a..dc490bc40 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.826 \ No newline at end of file +1.36.827 \ No newline at end of file diff --git a/ecs/CMakeLists.txt b/ecs/CMakeLists.txt index 9103d44d7..b54d0c916 100644 --- a/ecs/CMakeLists.txt +++ b/ecs/CMakeLists.txt @@ -675,6 +675,8 @@ set(ecs_public_header_model include/alibabacloud/ecs/model/StartInstanceResult.h include/alibabacloud/ecs/model/StartInstancesRequest.h include/alibabacloud/ecs/model/StartInstancesResult.h + include/alibabacloud/ecs/model/StartTerminalSessionRequest.h + include/alibabacloud/ecs/model/StartTerminalSessionResult.h include/alibabacloud/ecs/model/StopDiskReplicaPairRequest.h include/alibabacloud/ecs/model/StopDiskReplicaPairResult.h include/alibabacloud/ecs/model/StopInstanceRequest.h @@ -1356,6 +1358,8 @@ set(ecs_src src/model/StartInstanceResult.cc src/model/StartInstancesRequest.cc src/model/StartInstancesResult.cc + src/model/StartTerminalSessionRequest.cc + src/model/StartTerminalSessionResult.cc src/model/StopDiskReplicaPairRequest.cc src/model/StopDiskReplicaPairResult.cc src/model/StopInstanceRequest.cc diff --git a/ecs/include/alibabacloud/ecs/EcsClient.h b/ecs/include/alibabacloud/ecs/EcsClient.h index 6486b92d0..a69fa9cfb 100644 --- a/ecs/include/alibabacloud/ecs/EcsClient.h +++ b/ecs/include/alibabacloud/ecs/EcsClient.h @@ -676,6 +676,8 @@ #include "model/StartInstanceResult.h" #include "model/StartInstancesRequest.h" #include "model/StartInstancesResult.h" +#include "model/StartTerminalSessionRequest.h" +#include "model/StartTerminalSessionResult.h" #include "model/StopDiskReplicaPairRequest.h" #include "model/StopDiskReplicaPairResult.h" #include "model/StopInstanceRequest.h" @@ -1690,6 +1692,9 @@ namespace AlibabaCloud typedef Outcome StartInstancesOutcome; typedef std::future StartInstancesOutcomeCallable; typedef std::function&)> StartInstancesAsyncHandler; + typedef Outcome StartTerminalSessionOutcome; + typedef std::future StartTerminalSessionOutcomeCallable; + typedef std::function&)> StartTerminalSessionAsyncHandler; typedef Outcome StopDiskReplicaPairOutcome; typedef std::future StopDiskReplicaPairOutcomeCallable; typedef std::function&)> StopDiskReplicaPairAsyncHandler; @@ -2712,6 +2717,9 @@ namespace AlibabaCloud StartInstancesOutcome startInstances(const Model::StartInstancesRequest &request)const; void startInstancesAsync(const Model::StartInstancesRequest& request, const StartInstancesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; StartInstancesOutcomeCallable startInstancesCallable(const Model::StartInstancesRequest& request) const; + StartTerminalSessionOutcome startTerminalSession(const Model::StartTerminalSessionRequest &request)const; + void startTerminalSessionAsync(const Model::StartTerminalSessionRequest& request, const StartTerminalSessionAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + StartTerminalSessionOutcomeCallable startTerminalSessionCallable(const Model::StartTerminalSessionRequest& request) const; StopDiskReplicaPairOutcome stopDiskReplicaPair(const Model::StopDiskReplicaPairRequest &request)const; void stopDiskReplicaPairAsync(const Model::StopDiskReplicaPairRequest& request, const StopDiskReplicaPairAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; StopDiskReplicaPairOutcomeCallable stopDiskReplicaPairCallable(const Model::StopDiskReplicaPairRequest& request) const; diff --git a/ecs/include/alibabacloud/ecs/model/DescribeImagesRequest.h b/ecs/include/alibabacloud/ecs/model/DescribeImagesRequest.h index 43da0330d..f57f35894 100644 --- a/ecs/include/alibabacloud/ecs/model/DescribeImagesRequest.h +++ b/ecs/include/alibabacloud/ecs/model/DescribeImagesRequest.h @@ -48,6 +48,8 @@ namespace AlibabaCloud std::string getActionType()const; void setActionType(const std::string& actionType); + long getImageOwnerId()const; + void setImageOwnerId(long imageOwnerId); long getResourceOwnerId()const; void setResourceOwnerId(long resourceOwnerId); std::string getImageId()const; @@ -70,6 +72,8 @@ namespace AlibabaCloud void setImageName(const std::string& imageName); bool getIsSupportCloudinit()const; void setIsSupportCloudinit(bool isSupportCloudinit); + bool getIsPublic()const; + void setIsPublic(bool isPublic); int getPageSize()const; void setPageSize(int pageSize); std::string getInstanceType()const; @@ -99,6 +103,7 @@ namespace AlibabaCloud private: std::string actionType_; + long imageOwnerId_; long resourceOwnerId_; std::string imageId_; std::string snapshotId_; @@ -110,6 +115,7 @@ namespace AlibabaCloud std::string regionId_; std::string imageName_; bool isSupportCloudinit_; + bool isPublic_; int pageSize_; std::string instanceType_; std::vector tag_; diff --git a/ecs/include/alibabacloud/ecs/model/DescribeImagesResult.h b/ecs/include/alibabacloud/ecs/model/DescribeImagesResult.h index a18b233c9..1d7c07429 100644 --- a/ecs/include/alibabacloud/ecs/model/DescribeImagesResult.h +++ b/ecs/include/alibabacloud/ecs/model/DescribeImagesResult.h @@ -59,6 +59,7 @@ namespace AlibabaCloud int size; bool isSubscribed; std::string oSName; + bool isPublic; std::string imageId; std::vector tags; std::string oSNameEn; @@ -67,6 +68,7 @@ namespace AlibabaCloud std::string usage; std::string architecture; std::string productCode; + long imageOwnerId; bool isCopied; std::string imageFamily; bool isSupportIoOptimized; diff --git a/ecs/include/alibabacloud/ecs/model/DescribeInstanceModificationPriceRequest.h b/ecs/include/alibabacloud/ecs/model/DescribeInstanceModificationPriceRequest.h index 0ca8b92f3..3f5b46059 100644 --- a/ecs/include/alibabacloud/ecs/model/DescribeInstanceModificationPriceRequest.h +++ b/ecs/include/alibabacloud/ecs/model/DescribeInstanceModificationPriceRequest.h @@ -33,9 +33,9 @@ namespace AlibabaCloud public: struct DataDisk { + std::string performanceLevel; int size; std::string category; - std::string performanceLevel; }; public: diff --git a/ecs/include/alibabacloud/ecs/model/ModifyImageSharePermissionRequest.h b/ecs/include/alibabacloud/ecs/model/ModifyImageSharePermissionRequest.h index 0b40cce57..4001c5d02 100644 --- a/ecs/include/alibabacloud/ecs/model/ModifyImageSharePermissionRequest.h +++ b/ecs/include/alibabacloud/ecs/model/ModifyImageSharePermissionRequest.h @@ -41,6 +41,8 @@ namespace AlibabaCloud void setImageId(const std::string& imageId); std::string getRegionId()const; void setRegionId(const std::string& regionId); + bool getIsPublic()const; + void setIsPublic(bool isPublic); std::string getLaunchPermission()const; void setLaunchPermission(const std::string& launchPermission); std::string getResourceOwnerAccount()const; @@ -58,6 +60,7 @@ namespace AlibabaCloud long resourceOwnerId_; std::string imageId_; std::string regionId_; + bool isPublic_; std::string launchPermission_; std::string resourceOwnerAccount_; std::string ownerAccount_; diff --git a/ecs/include/alibabacloud/ecs/model/StartTerminalSessionRequest.h b/ecs/include/alibabacloud/ecs/model/StartTerminalSessionRequest.h new file mode 100644 index 000000000..109981a9d --- /dev/null +++ b/ecs/include/alibabacloud/ecs/model/StartTerminalSessionRequest.h @@ -0,0 +1,63 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONREQUEST_H_ +#define ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONREQUEST_H_ + +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Ecs + { + namespace Model + { + class ALIBABACLOUD_ECS_EXPORT StartTerminalSessionRequest : public RpcServiceRequest + { + + public: + StartTerminalSessionRequest(); + ~StartTerminalSessionRequest(); + + long getResourceOwnerId()const; + void setResourceOwnerId(long resourceOwnerId); + std::string getRegionId()const; + void setRegionId(const std::string& regionId); + std::string getResourceOwnerAccount()const; + void setResourceOwnerAccount(const std::string& resourceOwnerAccount); + std::string getOwnerAccount()const; + void setOwnerAccount(const std::string& ownerAccount); + long getOwnerId()const; + void setOwnerId(long ownerId); + std::vector getInstanceId()const; + void setInstanceId(const std::vector& instanceId); + + private: + long resourceOwnerId_; + std::string regionId_; + std::string resourceOwnerAccount_; + std::string ownerAccount_; + long ownerId_; + std::vector instanceId_; + + }; + } + } +} +#endif // !ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONREQUEST_H_ \ No newline at end of file diff --git a/ecs/include/alibabacloud/ecs/model/StartTerminalSessionResult.h b/ecs/include/alibabacloud/ecs/model/StartTerminalSessionResult.h new file mode 100644 index 000000000..c0600acde --- /dev/null +++ b/ecs/include/alibabacloud/ecs/model/StartTerminalSessionResult.h @@ -0,0 +1,55 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONRESULT_H_ +#define ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONRESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Ecs + { + namespace Model + { + class ALIBABACLOUD_ECS_EXPORT StartTerminalSessionResult : public ServiceResult + { + public: + + + StartTerminalSessionResult(); + explicit StartTerminalSessionResult(const std::string &payload); + ~StartTerminalSessionResult(); + std::string getSecurityToken()const; + std::string getWebSocketUrl()const; + std::string getSessionId()const; + + protected: + void parse(const std::string &payload); + private: + std::string securityToken_; + std::string webSocketUrl_; + std::string sessionId_; + + }; + } + } +} +#endif // !ALIBABACLOUD_ECS_MODEL_STARTTERMINALSESSIONRESULT_H_ \ No newline at end of file diff --git a/ecs/src/EcsClient.cc b/ecs/src/EcsClient.cc index ad8cd9f50..83cfc828f 100644 --- a/ecs/src/EcsClient.cc +++ b/ecs/src/EcsClient.cc @@ -11823,6 +11823,42 @@ EcsClient::StartInstancesOutcomeCallable EcsClient::startInstancesCallable(const return task->get_future(); } +EcsClient::StartTerminalSessionOutcome EcsClient::startTerminalSession(const StartTerminalSessionRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return StartTerminalSessionOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return StartTerminalSessionOutcome(StartTerminalSessionResult(outcome.result())); + else + return StartTerminalSessionOutcome(outcome.error()); +} + +void EcsClient::startTerminalSessionAsync(const StartTerminalSessionRequest& request, const StartTerminalSessionAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, startTerminalSession(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +EcsClient::StartTerminalSessionOutcomeCallable EcsClient::startTerminalSessionCallable(const StartTerminalSessionRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->startTerminalSession(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + EcsClient::StopDiskReplicaPairOutcome EcsClient::stopDiskReplicaPair(const StopDiskReplicaPairRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/ecs/src/model/DescribeImagesRequest.cc b/ecs/src/model/DescribeImagesRequest.cc index 24a2dfb92..66727f019 100644 --- a/ecs/src/model/DescribeImagesRequest.cc +++ b/ecs/src/model/DescribeImagesRequest.cc @@ -38,6 +38,17 @@ void DescribeImagesRequest::setActionType(const std::string& actionType) setParameter("ActionType", actionType); } +long DescribeImagesRequest::getImageOwnerId()const +{ + return imageOwnerId_; +} + +void DescribeImagesRequest::setImageOwnerId(long imageOwnerId) +{ + imageOwnerId_ = imageOwnerId; + setParameter("ImageOwnerId", std::to_string(imageOwnerId)); +} + long DescribeImagesRequest::getResourceOwnerId()const { return resourceOwnerId_; @@ -159,6 +170,17 @@ void DescribeImagesRequest::setIsSupportCloudinit(bool isSupportCloudinit) setParameter("IsSupportCloudinit", isSupportCloudinit ? "true" : "false"); } +bool DescribeImagesRequest::getIsPublic()const +{ + return isPublic_; +} + +void DescribeImagesRequest::setIsPublic(bool isPublic) +{ + isPublic_ = isPublic; + setParameter("IsPublic", isPublic ? "true" : "false"); +} + int DescribeImagesRequest::getPageSize()const { return pageSize_; diff --git a/ecs/src/model/DescribeImagesResult.cc b/ecs/src/model/DescribeImagesResult.cc index 153d81846..98952172c 100644 --- a/ecs/src/model/DescribeImagesResult.cc +++ b/ecs/src/model/DescribeImagesResult.cc @@ -89,6 +89,10 @@ void DescribeImagesResult::parse(const std::string &payload) imagesObject.productCode = valueImagesImage["ProductCode"].asString(); if(!valueImagesImage["Architecture"].isNull()) imagesObject.architecture = valueImagesImage["Architecture"].asString(); + if(!valueImagesImage["IsPublic"].isNull()) + imagesObject.isPublic = valueImagesImage["IsPublic"].asString() == "true"; + if(!valueImagesImage["ImageOwnerId"].isNull()) + imagesObject.imageOwnerId = std::stol(valueImagesImage["ImageOwnerId"].asString()); auto allDiskDeviceMappingsNode = valueImagesImage["DiskDeviceMappings"]["DiskDeviceMapping"]; for (auto valueImagesImageDiskDeviceMappingsDiskDeviceMapping : allDiskDeviceMappingsNode) { diff --git a/ecs/src/model/DescribeInstanceModificationPriceRequest.cc b/ecs/src/model/DescribeInstanceModificationPriceRequest.cc index 7ab3ff77c..b3ae978a1 100644 --- a/ecs/src/model/DescribeInstanceModificationPriceRequest.cc +++ b/ecs/src/model/DescribeInstanceModificationPriceRequest.cc @@ -115,9 +115,9 @@ void DescribeInstanceModificationPriceRequest::setDataDisk(const std::vector + +using AlibabaCloud::Ecs::Model::StartTerminalSessionRequest; + +StartTerminalSessionRequest::StartTerminalSessionRequest() : + RpcServiceRequest("ecs", "2014-05-26", "StartTerminalSession") +{ + setMethod(HttpRequest::Method::Post); +} + +StartTerminalSessionRequest::~StartTerminalSessionRequest() +{} + +long StartTerminalSessionRequest::getResourceOwnerId()const +{ + return resourceOwnerId_; +} + +void StartTerminalSessionRequest::setResourceOwnerId(long resourceOwnerId) +{ + resourceOwnerId_ = resourceOwnerId; + setParameter("ResourceOwnerId", std::to_string(resourceOwnerId)); +} + +std::string StartTerminalSessionRequest::getRegionId()const +{ + return regionId_; +} + +void StartTerminalSessionRequest::setRegionId(const std::string& regionId) +{ + regionId_ = regionId; + setParameter("RegionId", regionId); +} + +std::string StartTerminalSessionRequest::getResourceOwnerAccount()const +{ + return resourceOwnerAccount_; +} + +void StartTerminalSessionRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount) +{ + resourceOwnerAccount_ = resourceOwnerAccount; + setParameter("ResourceOwnerAccount", resourceOwnerAccount); +} + +std::string StartTerminalSessionRequest::getOwnerAccount()const +{ + return ownerAccount_; +} + +void StartTerminalSessionRequest::setOwnerAccount(const std::string& ownerAccount) +{ + ownerAccount_ = ownerAccount; + setParameter("OwnerAccount", ownerAccount); +} + +long StartTerminalSessionRequest::getOwnerId()const +{ + return ownerId_; +} + +void StartTerminalSessionRequest::setOwnerId(long ownerId) +{ + ownerId_ = ownerId; + setParameter("OwnerId", std::to_string(ownerId)); +} + +std::vector StartTerminalSessionRequest::getInstanceId()const +{ + return instanceId_; +} + +void StartTerminalSessionRequest::setInstanceId(const std::vector& instanceId) +{ + instanceId_ = instanceId; + for(int dep1 = 0; dep1!= instanceId.size(); dep1++) { + setParameter("InstanceId."+ std::to_string(dep1), instanceId.at(dep1)); + } +} + diff --git a/ecs/src/model/StartTerminalSessionResult.cc b/ecs/src/model/StartTerminalSessionResult.cc new file mode 100644 index 000000000..721685bc6 --- /dev/null +++ b/ecs/src/model/StartTerminalSessionResult.cc @@ -0,0 +1,65 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +using namespace AlibabaCloud::Ecs; +using namespace AlibabaCloud::Ecs::Model; + +StartTerminalSessionResult::StartTerminalSessionResult() : + ServiceResult() +{} + +StartTerminalSessionResult::StartTerminalSessionResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +StartTerminalSessionResult::~StartTerminalSessionResult() +{} + +void StartTerminalSessionResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + if(!value["SessionId"].isNull()) + sessionId_ = value["SessionId"].asString(); + if(!value["SecurityToken"].isNull()) + securityToken_ = value["SecurityToken"].asString(); + if(!value["WebSocketUrl"].isNull()) + webSocketUrl_ = value["WebSocketUrl"].asString(); + +} + +std::string StartTerminalSessionResult::getSecurityToken()const +{ + return securityToken_; +} + +std::string StartTerminalSessionResult::getWebSocketUrl()const +{ + return webSocketUrl_; +} + +std::string StartTerminalSessionResult::getSessionId()const +{ + return sessionId_; +} +