diff --git a/CHANGELOG b/CHANGELOG index 3f2c5e426..d02df36bb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2022-07-15 Version: 1.36.1181 +- Add cspm ListCheckResult api. + 2022-07-15 Version: 1.36.1180 - Add open file detect api. diff --git a/VERSION b/VERSION index ebc636ff3..148bd50be 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.1180 \ No newline at end of file +1.36.1181 \ No newline at end of file diff --git a/sas/CMakeLists.txt b/sas/CMakeLists.txt index 50f8015b3..beecd4b52 100644 --- a/sas/CMakeLists.txt +++ b/sas/CMakeLists.txt @@ -325,6 +325,8 @@ set(sas_public_header_model include/alibabacloud/sas/model/InstallBackupClientResult.h include/alibabacloud/sas/model/InstallCloudMonitorRequest.h include/alibabacloud/sas/model/InstallCloudMonitorResult.h + include/alibabacloud/sas/model/ListCheckResultRequest.h + include/alibabacloud/sas/model/ListCheckResultResult.h include/alibabacloud/sas/model/ListVulAutoRepairConfigRequest.h include/alibabacloud/sas/model/ListVulAutoRepairConfigResult.h include/alibabacloud/sas/model/ModifyAntiBruteForceRuleRequest.h @@ -732,6 +734,8 @@ set(sas_src src/model/InstallBackupClientResult.cc src/model/InstallCloudMonitorRequest.cc src/model/InstallCloudMonitorResult.cc + src/model/ListCheckResultRequest.cc + src/model/ListCheckResultResult.cc src/model/ListVulAutoRepairConfigRequest.cc src/model/ListVulAutoRepairConfigResult.cc src/model/ModifyAntiBruteForceRuleRequest.cc diff --git a/sas/include/alibabacloud/sas/SasClient.h b/sas/include/alibabacloud/sas/SasClient.h index f4bc15c80..185b45b40 100644 --- a/sas/include/alibabacloud/sas/SasClient.h +++ b/sas/include/alibabacloud/sas/SasClient.h @@ -326,6 +326,8 @@ #include "model/InstallBackupClientResult.h" #include "model/InstallCloudMonitorRequest.h" #include "model/InstallCloudMonitorResult.h" +#include "model/ListCheckResultRequest.h" +#include "model/ListCheckResultResult.h" #include "model/ListVulAutoRepairConfigRequest.h" #include "model/ListVulAutoRepairConfigResult.h" #include "model/ModifyAntiBruteForceRuleRequest.h" @@ -891,6 +893,9 @@ namespace AlibabaCloud typedef Outcome InstallCloudMonitorOutcome; typedef std::future InstallCloudMonitorOutcomeCallable; typedef std::function&)> InstallCloudMonitorAsyncHandler; + typedef Outcome ListCheckResultOutcome; + typedef std::future ListCheckResultOutcomeCallable; + typedef std::function&)> ListCheckResultAsyncHandler; typedef Outcome ListVulAutoRepairConfigOutcome; typedef std::future ListVulAutoRepairConfigOutcomeCallable; typedef std::function&)> ListVulAutoRepairConfigAsyncHandler; @@ -1502,6 +1507,9 @@ namespace AlibabaCloud InstallCloudMonitorOutcome installCloudMonitor(const Model::InstallCloudMonitorRequest &request)const; void installCloudMonitorAsync(const Model::InstallCloudMonitorRequest& request, const InstallCloudMonitorAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; InstallCloudMonitorOutcomeCallable installCloudMonitorCallable(const Model::InstallCloudMonitorRequest& request) const; + ListCheckResultOutcome listCheckResult(const Model::ListCheckResultRequest &request)const; + void listCheckResultAsync(const Model::ListCheckResultRequest& request, const ListCheckResultAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + ListCheckResultOutcomeCallable listCheckResultCallable(const Model::ListCheckResultRequest& request) const; ListVulAutoRepairConfigOutcome listVulAutoRepairConfig(const Model::ListVulAutoRepairConfigRequest &request)const; void listVulAutoRepairConfigAsync(const Model::ListVulAutoRepairConfigRequest& request, const ListVulAutoRepairConfigAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; ListVulAutoRepairConfigOutcomeCallable listVulAutoRepairConfigCallable(const Model::ListVulAutoRepairConfigRequest& request) const; diff --git a/sas/include/alibabacloud/sas/model/ListCheckResultRequest.h b/sas/include/alibabacloud/sas/model/ListCheckResultRequest.h new file mode 100644 index 000000000..b2a59f421 --- /dev/null +++ b/sas/include/alibabacloud/sas/model/ListCheckResultRequest.h @@ -0,0 +1,81 @@ +/* + * 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_SAS_MODEL_LISTCHECKRESULTREQUEST_H_ +#define ALIBABACLOUD_SAS_MODEL_LISTCHECKRESULTREQUEST_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud { +namespace Sas { +namespace Model { +class ALIBABACLOUD_SAS_EXPORT ListCheckResultRequest : public RpcServiceRequest { +public: + ListCheckResultRequest(); + ~ListCheckResultRequest(); + std::vector getInstanceSubTypes() const; + void setInstanceSubTypes(const std::vector &instanceSubTypes); + std::vector getStandardIds() const; + void setStandardIds(const std::vector &standardIds); + std::vector getRiskLevels() const; + void setRiskLevels(const std::vector &riskLevels); + std::vector getInstanceTypes() const; + void setInstanceTypes(const std::vector &instanceTypes); + std::string getCheckKey() const; + void setCheckKey(const std::string &checkKey); + std::string getSourceIp() const; + void setSourceIp(const std::string &sourceIp); + int getPageSize() const; + void setPageSize(int pageSize); + std::string getLang() const; + void setLang(const std::string &lang); + std::vector getVendors() const; + void setVendors(const std::vector &vendors); + int getCurrentPage() const; + void setCurrentPage(int currentPage); + std::vector getRequirementIds() const; + void setRequirementIds(const std::vector &requirementIds); + std::vector getSortTypes() const; + void setSortTypes(const std::vector &sortTypes); + std::vector getInstanceIds() const; + void setInstanceIds(const std::vector &instanceIds); + std::vector getStatuses() const; + void setStatuses(const std::vector &statuses); + +private: + std::vector instanceSubTypes_; + std::vector standardIds_; + std::vector riskLevels_; + std::vector instanceTypes_; + std::string checkKey_; + std::string sourceIp_; + int pageSize_; + std::string lang_; + std::vector vendors_; + int currentPage_; + std::vector requirementIds_; + std::vector sortTypes_; + std::vector instanceIds_; + std::vector statuses_; +}; +} // namespace Model +} // namespace Sas +} // namespace AlibabaCloud +#endif // !ALIBABACLOUD_SAS_MODEL_LISTCHECKRESULTREQUEST_H_ diff --git a/sas/include/alibabacloud/sas/model/ListCheckResultResult.h b/sas/include/alibabacloud/sas/model/ListCheckResultResult.h new file mode 100644 index 000000000..4e80c2aba --- /dev/null +++ b/sas/include/alibabacloud/sas/model/ListCheckResultResult.h @@ -0,0 +1,85 @@ +/* + * 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_SAS_MODEL_LISTCHECKRESULTRESULT_H_ +#define ALIBABACLOUD_SAS_MODEL_LISTCHECKRESULTRESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Sas + { + namespace Model + { + class ALIBABACLOUD_SAS_EXPORT ListCheckResultResult : public ServiceResult + { + public: + struct PageInfo + { + int totalCount; + int pageSize; + std::string nextToken; + int currentPage; + int maxResults; + int count; + }; + struct ChecksItem + { + struct CheckPolicie + { + std::string requirementShowName; + long standardId; + std::string standardShowName; + long requirementId; + long sectionId; + std::string sectionShowName; + }; + std::string instanceSubType; + std::string status; + long lastCheckTime; + std::string taskId; + long checkId; + std::string vendorShowName; + std::string checkShowName; + std::string vendor; + std::vector checkPolicies; + std::string instanceType; + std::string riskLevel; + }; + + + ListCheckResultResult(); + explicit ListCheckResultResult(const std::string &payload); + ~ListCheckResultResult(); + PageInfo getPageInfo()const; + std::vector getChecks()const; + + protected: + void parse(const std::string &payload); + private: + PageInfo pageInfo_; + std::vector checks_; + + }; + } + } +} +#endif // !ALIBABACLOUD_SAS_MODEL_LISTCHECKRESULTRESULT_H_ \ No newline at end of file diff --git a/sas/src/SasClient.cc b/sas/src/SasClient.cc index df48e17aa..7a77b9a2a 100644 --- a/sas/src/SasClient.cc +++ b/sas/src/SasClient.cc @@ -5523,6 +5523,42 @@ SasClient::InstallCloudMonitorOutcomeCallable SasClient::installCloudMonitorCall return task->get_future(); } +SasClient::ListCheckResultOutcome SasClient::listCheckResult(const ListCheckResultRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return ListCheckResultOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return ListCheckResultOutcome(ListCheckResultResult(outcome.result())); + else + return ListCheckResultOutcome(outcome.error()); +} + +void SasClient::listCheckResultAsync(const ListCheckResultRequest& request, const ListCheckResultAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, listCheckResult(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +SasClient::ListCheckResultOutcomeCallable SasClient::listCheckResultCallable(const ListCheckResultRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->listCheckResult(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + SasClient::ListVulAutoRepairConfigOutcome SasClient::listVulAutoRepairConfig(const ListVulAutoRepairConfigRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/sas/src/model/ListCheckResultRequest.cc b/sas/src/model/ListCheckResultRequest.cc new file mode 100644 index 000000000..820afd704 --- /dev/null +++ b/sas/src/model/ListCheckResultRequest.cc @@ -0,0 +1,144 @@ +/* + * 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 + +using AlibabaCloud::Sas::Model::ListCheckResultRequest; + +ListCheckResultRequest::ListCheckResultRequest() + : RpcServiceRequest("sas", "2018-12-03", "ListCheckResult") { + setMethod(HttpRequest::Method::Post); +} + +ListCheckResultRequest::~ListCheckResultRequest() {} + +std::vector ListCheckResultRequest::getInstanceSubTypes() const { + return instanceSubTypes_; +} + +void ListCheckResultRequest::setInstanceSubTypes(const std::vector &instanceSubTypes) { + instanceSubTypes_ = instanceSubTypes; +} + +std::vector ListCheckResultRequest::getStandardIds() const { + return standardIds_; +} + +void ListCheckResultRequest::setStandardIds(const std::vector &standardIds) { + standardIds_ = standardIds; +} + +std::vector ListCheckResultRequest::getRiskLevels() const { + return riskLevels_; +} + +void ListCheckResultRequest::setRiskLevels(const std::vector &riskLevels) { + riskLevels_ = riskLevels; +} + +std::vector ListCheckResultRequest::getInstanceTypes() const { + return instanceTypes_; +} + +void ListCheckResultRequest::setInstanceTypes(const std::vector &instanceTypes) { + instanceTypes_ = instanceTypes; +} + +std::string ListCheckResultRequest::getCheckKey() const { + return checkKey_; +} + +void ListCheckResultRequest::setCheckKey(const std::string &checkKey) { + checkKey_ = checkKey; + setParameter(std::string("CheckKey"), checkKey); +} + +std::string ListCheckResultRequest::getSourceIp() const { + return sourceIp_; +} + +void ListCheckResultRequest::setSourceIp(const std::string &sourceIp) { + sourceIp_ = sourceIp; + setParameter(std::string("SourceIp"), sourceIp); +} + +int ListCheckResultRequest::getPageSize() const { + return pageSize_; +} + +void ListCheckResultRequest::setPageSize(int pageSize) { + pageSize_ = pageSize; + setParameter(std::string("PageSize"), std::to_string(pageSize)); +} + +std::string ListCheckResultRequest::getLang() const { + return lang_; +} + +void ListCheckResultRequest::setLang(const std::string &lang) { + lang_ = lang; + setParameter(std::string("Lang"), lang); +} + +std::vector ListCheckResultRequest::getVendors() const { + return vendors_; +} + +void ListCheckResultRequest::setVendors(const std::vector &vendors) { + vendors_ = vendors; +} + +int ListCheckResultRequest::getCurrentPage() const { + return currentPage_; +} + +void ListCheckResultRequest::setCurrentPage(int currentPage) { + currentPage_ = currentPage; + setParameter(std::string("CurrentPage"), std::to_string(currentPage)); +} + +std::vector ListCheckResultRequest::getRequirementIds() const { + return requirementIds_; +} + +void ListCheckResultRequest::setRequirementIds(const std::vector &requirementIds) { + requirementIds_ = requirementIds; +} + +std::vector ListCheckResultRequest::getSortTypes() const { + return sortTypes_; +} + +void ListCheckResultRequest::setSortTypes(const std::vector &sortTypes) { + sortTypes_ = sortTypes; +} + +std::vector ListCheckResultRequest::getInstanceIds() const { + return instanceIds_; +} + +void ListCheckResultRequest::setInstanceIds(const std::vector &instanceIds) { + instanceIds_ = instanceIds; +} + +std::vector ListCheckResultRequest::getStatuses() const { + return statuses_; +} + +void ListCheckResultRequest::setStatuses(const std::vector &statuses) { + statuses_ = statuses; +} + diff --git a/sas/src/model/ListCheckResultResult.cc b/sas/src/model/ListCheckResultResult.cc new file mode 100644 index 000000000..d0baf0e52 --- /dev/null +++ b/sas/src/model/ListCheckResultResult.cc @@ -0,0 +1,111 @@ +/* + * 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::Sas; +using namespace AlibabaCloud::Sas::Model; + +ListCheckResultResult::ListCheckResultResult() : + ServiceResult() +{} + +ListCheckResultResult::ListCheckResultResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +ListCheckResultResult::~ListCheckResultResult() +{} + +void ListCheckResultResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + auto allChecksNode = value["Checks"]["ChecksItem"]; + for (auto valueChecksChecksItem : allChecksNode) + { + ChecksItem checksObject; + if(!valueChecksChecksItem["CheckId"].isNull()) + checksObject.checkId = std::stol(valueChecksChecksItem["CheckId"].asString()); + if(!valueChecksChecksItem["CheckShowName"].isNull()) + checksObject.checkShowName = valueChecksChecksItem["CheckShowName"].asString(); + if(!valueChecksChecksItem["Vendor"].isNull()) + checksObject.vendor = valueChecksChecksItem["Vendor"].asString(); + if(!valueChecksChecksItem["VendorShowName"].isNull()) + checksObject.vendorShowName = valueChecksChecksItem["VendorShowName"].asString(); + if(!valueChecksChecksItem["InstanceType"].isNull()) + checksObject.instanceType = valueChecksChecksItem["InstanceType"].asString(); + if(!valueChecksChecksItem["InstanceSubType"].isNull()) + checksObject.instanceSubType = valueChecksChecksItem["InstanceSubType"].asString(); + if(!valueChecksChecksItem["RiskLevel"].isNull()) + checksObject.riskLevel = valueChecksChecksItem["RiskLevel"].asString(); + if(!valueChecksChecksItem["Status"].isNull()) + checksObject.status = valueChecksChecksItem["Status"].asString(); + if(!valueChecksChecksItem["TaskId"].isNull()) + checksObject.taskId = valueChecksChecksItem["TaskId"].asString(); + if(!valueChecksChecksItem["LastCheckTime"].isNull()) + checksObject.lastCheckTime = std::stol(valueChecksChecksItem["LastCheckTime"].asString()); + auto allCheckPoliciesNode = valueChecksChecksItem["CheckPolicies"]["CheckPolicie"]; + for (auto valueChecksChecksItemCheckPoliciesCheckPolicie : allCheckPoliciesNode) + { + ChecksItem::CheckPolicie checkPoliciesObject; + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["StandardId"].isNull()) + checkPoliciesObject.standardId = std::stol(valueChecksChecksItemCheckPoliciesCheckPolicie["StandardId"].asString()); + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["StandardShowName"].isNull()) + checkPoliciesObject.standardShowName = valueChecksChecksItemCheckPoliciesCheckPolicie["StandardShowName"].asString(); + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["RequirementId"].isNull()) + checkPoliciesObject.requirementId = std::stol(valueChecksChecksItemCheckPoliciesCheckPolicie["RequirementId"].asString()); + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["RequirementShowName"].isNull()) + checkPoliciesObject.requirementShowName = valueChecksChecksItemCheckPoliciesCheckPolicie["RequirementShowName"].asString(); + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["SectionId"].isNull()) + checkPoliciesObject.sectionId = std::stol(valueChecksChecksItemCheckPoliciesCheckPolicie["SectionId"].asString()); + if(!valueChecksChecksItemCheckPoliciesCheckPolicie["SectionShowName"].isNull()) + checkPoliciesObject.sectionShowName = valueChecksChecksItemCheckPoliciesCheckPolicie["SectionShowName"].asString(); + checksObject.checkPolicies.push_back(checkPoliciesObject); + } + checks_.push_back(checksObject); + } + auto pageInfoNode = value["PageInfo"]; + if(!pageInfoNode["CurrentPage"].isNull()) + pageInfo_.currentPage = std::stoi(pageInfoNode["CurrentPage"].asString()); + if(!pageInfoNode["PageSize"].isNull()) + pageInfo_.pageSize = std::stoi(pageInfoNode["PageSize"].asString()); + if(!pageInfoNode["NextToken"].isNull()) + pageInfo_.nextToken = pageInfoNode["NextToken"].asString(); + if(!pageInfoNode["MaxResults"].isNull()) + pageInfo_.maxResults = std::stoi(pageInfoNode["MaxResults"].asString()); + if(!pageInfoNode["TotalCount"].isNull()) + pageInfo_.totalCount = std::stoi(pageInfoNode["TotalCount"].asString()); + if(!pageInfoNode["Count"].isNull()) + pageInfo_.count = std::stoi(pageInfoNode["Count"].asString()); + +} + +ListCheckResultResult::PageInfo ListCheckResultResult::getPageInfo()const +{ + return pageInfo_; +} + +std::vector ListCheckResultResult::getChecks()const +{ + return checks_; +} +