发布资源清单下载、高级搜索、合规趋势统计等API.

This commit is contained in:
sdk-team
2023-08-21 06:19:49 +00:00
parent e25300b86c
commit cfc2224de7
20 changed files with 352 additions and 20 deletions

View File

@@ -1095,6 +1095,42 @@ ConfigClient::DeleteRemediationsOutcomeCallable ConfigClient::deleteRemediations
return task->get_future();
}
ConfigClient::DescribeRemediationOutcome ConfigClient::describeRemediation(const DescribeRemediationRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return DescribeRemediationOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return DescribeRemediationOutcome(DescribeRemediationResult(outcome.result()));
else
return DescribeRemediationOutcome(outcome.error());
}
void ConfigClient::describeRemediationAsync(const DescribeRemediationRequest& request, const DescribeRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, describeRemediation(request), context);
};
asyncExecute(new Runnable(fn));
}
ConfigClient::DescribeRemediationOutcomeCallable ConfigClient::describeRemediationCallable(const DescribeRemediationRequest &request) const
{
auto task = std::make_shared<std::packaged_task<DescribeRemediationOutcome()>>(
[this, request]()
{
return this->describeRemediation(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
ConfigClient::DetachAggregateConfigRuleToCompliancePackOutcome ConfigClient::detachAggregateConfigRuleToCompliancePack(const DetachAggregateConfigRuleToCompliancePackRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();

View File

@@ -207,3 +207,12 @@ void CreateAggregateConfigRuleRequest::setExcludeResourceIdsScope(const std::str
setBodyParameter(std::string("ExcludeResourceIdsScope"), excludeResourceIdsScope);
}
std::string CreateAggregateConfigRuleRequest::getConditions() const {
return conditions_;
}
void CreateAggregateConfigRuleRequest::setConditions(const std::string &conditions) {
conditions_ = conditions;
setBodyParameter(std::string("Conditions"), conditions);
}

View File

@@ -171,3 +171,12 @@ void CreateConfigRuleRequest::setExcludeResourceIdsScope(const std::string &excl
setBodyParameter(std::string("ExcludeResourceIdsScope"), excludeResourceIdsScope);
}
std::string CreateConfigRuleRequest::getConditions() const {
return conditions_;
}
void CreateConfigRuleRequest::setConditions(const std::string &conditions) {
conditions_ = conditions;
setBodyParameter(std::string("Conditions"), conditions);
}

View File

@@ -0,0 +1,45 @@
/*
* 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/config/model/DescribeRemediationRequest.h>
using AlibabaCloud::Config::Model::DescribeRemediationRequest;
DescribeRemediationRequest::DescribeRemediationRequest()
: RpcServiceRequest("config", "2020-09-07", "DescribeRemediation") {
setMethod(HttpRequest::Method::Get);
}
DescribeRemediationRequest::~DescribeRemediationRequest() {}
std::string DescribeRemediationRequest::getConfigRuleId() const {
return configRuleId_;
}
void DescribeRemediationRequest::setConfigRuleId(const std::string &configRuleId) {
configRuleId_ = configRuleId;
setParameter(std::string("ConfigRuleId"), configRuleId);
}
std::string DescribeRemediationRequest::getRemediationId() const {
return remediationId_;
}
void DescribeRemediationRequest::setRemediationId(const std::string &remediationId) {
remediationId_ = remediationId;
setParameter(std::string("RemediationId"), remediationId);
}

View File

@@ -0,0 +1,74 @@
/*
* 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/config/model/DescribeRemediationResult.h>
#include <json/json.h>
using namespace AlibabaCloud::Config;
using namespace AlibabaCloud::Config::Model;
DescribeRemediationResult::DescribeRemediationResult() :
ServiceResult()
{}
DescribeRemediationResult::DescribeRemediationResult(const std::string &payload) :
ServiceResult()
{
parse(payload);
}
DescribeRemediationResult::~DescribeRemediationResult()
{}
void DescribeRemediationResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto remediationNode = value["Remediation"];
if(!remediationNode["LastSuccessfulInvocationType"].isNull())
remediation_.lastSuccessfulInvocationType = remediationNode["LastSuccessfulInvocationType"].asString();
if(!remediationNode["RemediationTemplateId"].isNull())
remediation_.remediationTemplateId = remediationNode["RemediationTemplateId"].asString();
if(!remediationNode["RemediationDynamicParams"].isNull())
remediation_.remediationDynamicParams = remediationNode["RemediationDynamicParams"].asString();
if(!remediationNode["RemediationOriginParams"].isNull())
remediation_.remediationOriginParams = remediationNode["RemediationOriginParams"].asString();
if(!remediationNode["RemediationId"].isNull())
remediation_.remediationId = remediationNode["RemediationId"].asString();
if(!remediationNode["RemediationSourceType"].isNull())
remediation_.remediationSourceType = remediationNode["RemediationSourceType"].asString();
if(!remediationNode["RemediationType"].isNull())
remediation_.remediationType = remediationNode["RemediationType"].asString();
if(!remediationNode["LastSuccessfulInvocationId"].isNull())
remediation_.lastSuccessfulInvocationId = remediationNode["LastSuccessfulInvocationId"].asString();
if(!remediationNode["AccountId"].isNull())
remediation_.accountId = std::stol(remediationNode["AccountId"].asString());
if(!remediationNode["InvokeType"].isNull())
remediation_.invokeType = remediationNode["InvokeType"].asString();
if(!remediationNode["ConfigRuleId"].isNull())
remediation_.configRuleId = remediationNode["ConfigRuleId"].asString();
if(!remediationNode["LastSuccessfulInvocationTime"].isNull())
remediation_.lastSuccessfulInvocationTime = std::stol(remediationNode["LastSuccessfulInvocationTime"].asString());
}
DescribeRemediationResult::Remediation DescribeRemediationResult::getRemediation()const
{
return remediation_;
}

View File

@@ -91,6 +91,8 @@ void GetAggregateConfigRuleResult::parse(const std::string &payload)
configRule_.source.owner = sourceNode["Owner"].asString();
if(!sourceNode["Identifier"].isNull())
configRule_.source.identifier = sourceNode["Identifier"].asString();
if(!sourceNode["Conditions"].isNull())
configRule_.source.conditions = sourceNode["Conditions"].asString();
auto allSourceDetailsNode = sourceNode["SourceDetails"]["SourceDetailsItem"];
for (auto sourceNodeSourceDetailsSourceDetailsItem : allSourceDetailsNode)
{

View File

@@ -85,19 +85,21 @@ void GetConfigRuleResult::parse(const std::string &payload)
configRule_.source.owner = sourceNode["Owner"].asString();
if(!sourceNode["Identifier"].isNull())
configRule_.source.identifier = sourceNode["Identifier"].asString();
auto allSourceDetailsNode = sourceNode["SourceDetails"]["SourceDetailsItem"];
for (auto sourceNodeSourceDetailsSourceDetailsItem : allSourceDetailsNode)
if(!sourceNode["Conditions"].isNull())
configRule_.source.conditions = sourceNode["Conditions"].asString();
auto allSourceDetailsNode = sourceNode["SourceDetails"]["sourceDetailsItem"];
for (auto sourceNodeSourceDetailssourceDetailsItem : allSourceDetailsNode)
{
ConfigRule::Source::SourceDetailsItem sourceDetailsItemObject;
if(!sourceNodeSourceDetailsSourceDetailsItem["MessageType"].isNull())
sourceDetailsItemObject.messageType = sourceNodeSourceDetailsSourceDetailsItem["MessageType"].asString();
if(!sourceNodeSourceDetailsSourceDetailsItem["EventSource"].isNull())
sourceDetailsItemObject.eventSource = sourceNodeSourceDetailsSourceDetailsItem["EventSource"].asString();
if(!sourceNodeSourceDetailsSourceDetailsItem["MaximumExecutionFrequency"].isNull())
sourceDetailsItemObject.maximumExecutionFrequency = sourceNodeSourceDetailsSourceDetailsItem["MaximumExecutionFrequency"].asString();
if(!sourceNodeSourceDetailssourceDetailsItem["MessageType"].isNull())
sourceDetailsItemObject.messageType = sourceNodeSourceDetailssourceDetailsItem["MessageType"].asString();
if(!sourceNodeSourceDetailssourceDetailsItem["EventSource"].isNull())
sourceDetailsItemObject.eventSource = sourceNodeSourceDetailssourceDetailsItem["EventSource"].asString();
if(!sourceNodeSourceDetailssourceDetailsItem["MaximumExecutionFrequency"].isNull())
sourceDetailsItemObject.maximumExecutionFrequency = sourceNodeSourceDetailssourceDetailsItem["MaximumExecutionFrequency"].asString();
configRule_.source.sourceDetails.push_back(sourceDetailsItemObject);
}
auto allSourceConditions = sourceNode["SourceConditions"]["SourceConditions"];
auto allSourceConditions = sourceNode["SourceConditions"]["sourceConditions"];
for (auto value : allSourceConditions)
configRule_.source.sourceConditions.push_back(value.asString());
auto managedRuleNode = configRuleNode["ManagedRule"];
@@ -113,19 +115,19 @@ void GetConfigRuleResult::parse(const std::string &payload)
configRule_.managedRule.managedRuleName = managedRuleNode["ManagedRuleName"].asString();
if(!managedRuleNode["CompulsoryInputParameterDetails"].isNull())
configRule_.managedRule.compulsoryInputParameterDetails = managedRuleNode["CompulsoryInputParameterDetails"].asString();
auto allSourceDetails1Node = managedRuleNode["SourceDetails"]["SourceDetailsItem"];
for (auto managedRuleNodeSourceDetailsSourceDetailsItem : allSourceDetails1Node)
auto allSourceDetails1Node = managedRuleNode["SourceDetails"]["sourceDetailsItem"];
for (auto managedRuleNodeSourceDetailssourceDetailsItem : allSourceDetails1Node)
{
ConfigRule::ManagedRule::SourceDetailsItem2 sourceDetailsItem2Object;
if(!managedRuleNodeSourceDetailsSourceDetailsItem["MessageType"].isNull())
sourceDetailsItem2Object.messageType = managedRuleNodeSourceDetailsSourceDetailsItem["MessageType"].asString();
if(!managedRuleNodeSourceDetailsSourceDetailsItem["EventSource"].isNull())
sourceDetailsItem2Object.eventSource = managedRuleNodeSourceDetailsSourceDetailsItem["EventSource"].asString();
if(!managedRuleNodeSourceDetailsSourceDetailsItem["MaximumExecutionFrequency"].isNull())
sourceDetailsItem2Object.maximumExecutionFrequency = managedRuleNodeSourceDetailsSourceDetailsItem["MaximumExecutionFrequency"].asString();
if(!managedRuleNodeSourceDetailssourceDetailsItem["MessageType"].isNull())
sourceDetailsItem2Object.messageType = managedRuleNodeSourceDetailssourceDetailsItem["MessageType"].asString();
if(!managedRuleNodeSourceDetailssourceDetailsItem["EventSource"].isNull())
sourceDetailsItem2Object.eventSource = managedRuleNodeSourceDetailssourceDetailsItem["EventSource"].asString();
if(!managedRuleNodeSourceDetailssourceDetailsItem["MaximumExecutionFrequency"].isNull())
sourceDetailsItem2Object.maximumExecutionFrequency = managedRuleNodeSourceDetailssourceDetailsItem["MaximumExecutionFrequency"].asString();
configRule_.managedRule.sourceDetails1.push_back(sourceDetailsItem2Object);
}
auto allLabels = managedRuleNode["Labels"]["Labels"];
auto allLabels = managedRuleNode["Labels"]["labels"];
for (auto value : allLabels)
configRule_.managedRule.labels.push_back(value.asString());
auto createByNode = configRuleNode["CreateBy"];
@@ -161,7 +163,7 @@ void GetConfigRuleResult::parse(const std::string &payload)
if(!configRuleEvaluationStatusNode["LastFailedInvocationTimestamp"].isNull())
configRule_.configRuleEvaluationStatus.lastFailedInvocationTimestamp = std::stol(configRuleEvaluationStatusNode["LastFailedInvocationTimestamp"].asString());
auto scopeNode = configRuleNode["Scope"];
auto allComplianceResourceTypes = scopeNode["ComplianceResourceTypes"]["ComplianceResourceTypes"];
auto allComplianceResourceTypes = scopeNode["ComplianceResourceTypes"]["complianceResourceTypes"];
for (auto value : allComplianceResourceTypes)
configRule_.scope.complianceResourceTypes.push_back(value.asString());
auto complianceNode = configRuleNode["Compliance"];

View File

@@ -198,3 +198,12 @@ void UpdateAggregateConfigRuleRequest::setExcludeResourceIdsScope(const std::str
setBodyParameter(std::string("ExcludeResourceIdsScope"), excludeResourceIdsScope);
}
std::string UpdateAggregateConfigRuleRequest::getConditions() const {
return conditions_;
}
void UpdateAggregateConfigRuleRequest::setConditions(const std::string &conditions) {
conditions_ = conditions;
setBodyParameter(std::string("Conditions"), conditions);
}

View File

@@ -162,3 +162,12 @@ void UpdateConfigRuleRequest::setExcludeResourceIdsScope(const std::string &excl
setBodyParameter(std::string("ExcludeResourceIdsScope"), excludeResourceIdsScope);
}
std::string UpdateConfigRuleRequest::getConditions() const {
return conditions_;
}
void UpdateConfigRuleRequest::setConditions(const std::string &conditions) {
conditions_ = conditions;
setBodyParameter(std::string("Conditions"), conditions);
}