From 30fd9f48a05fe853139ab1f599f28a53f3a7c3de Mon Sep 17 00:00:00 2001 From: sdk-team Date: Fri, 3 Apr 2020 10:54:39 +0800 Subject: [PATCH] Support namespaces. --- CHANGELOG | 3 + VERSION | 2 +- acm/CMakeLists.txt | 4 + acm/include/alibabacloud/acm/AcmClient.h | 8 ++ .../acm/model/DescribeNamespacesRequest.h | 45 +++++++++++ .../acm/model/DescribeNamespacesResult.h | 63 +++++++++++++++ acm/src/AcmClient.cc | 36 +++++++++ acm/src/model/DescribeNamespacesRequest.cc | 30 +++++++ acm/src/model/DescribeNamespacesResult.cc | 79 +++++++++++++++++++ 9 files changed, 269 insertions(+), 1 deletion(-) create mode 100644 acm/include/alibabacloud/acm/model/DescribeNamespacesRequest.h create mode 100644 acm/include/alibabacloud/acm/model/DescribeNamespacesResult.h create mode 100644 acm/src/model/DescribeNamespacesRequest.cc create mode 100644 acm/src/model/DescribeNamespacesResult.cc diff --git a/CHANGELOG b/CHANGELOG index f9e39548a..56db68933 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2020-04-03 Version: 1.36.338 +- Support namespaces. + 2020-04-02 Version: 1.36.337 - Add API ContrastFaceVerify. diff --git a/VERSION b/VERSION index 9aa320a59..ad58cf9ca 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.337 \ No newline at end of file +1.36.338 \ No newline at end of file diff --git a/acm/CMakeLists.txt b/acm/CMakeLists.txt index dacf358a3..e6071863a 100644 --- a/acm/CMakeLists.txt +++ b/acm/CMakeLists.txt @@ -35,6 +35,8 @@ set(acm_public_header_model include/alibabacloud/acm/model/DescribeConfigurationResult.h include/alibabacloud/acm/model/DescribeNamespaceRequest.h include/alibabacloud/acm/model/DescribeNamespaceResult.h + include/alibabacloud/acm/model/DescribeNamespacesRequest.h + include/alibabacloud/acm/model/DescribeNamespacesResult.h include/alibabacloud/acm/model/UpdateNamespaceRequest.h include/alibabacloud/acm/model/UpdateNamespaceResult.h ) @@ -54,6 +56,8 @@ set(acm_src src/model/DescribeConfigurationResult.cc src/model/DescribeNamespaceRequest.cc src/model/DescribeNamespaceResult.cc + src/model/DescribeNamespacesRequest.cc + src/model/DescribeNamespacesResult.cc src/model/UpdateNamespaceRequest.cc src/model/UpdateNamespaceResult.cc ) diff --git a/acm/include/alibabacloud/acm/AcmClient.h b/acm/include/alibabacloud/acm/AcmClient.h index eb1d26c3a..ce755fff0 100644 --- a/acm/include/alibabacloud/acm/AcmClient.h +++ b/acm/include/alibabacloud/acm/AcmClient.h @@ -36,6 +36,8 @@ #include "model/DescribeConfigurationResult.h" #include "model/DescribeNamespaceRequest.h" #include "model/DescribeNamespaceResult.h" +#include "model/DescribeNamespacesRequest.h" +#include "model/DescribeNamespacesResult.h" #include "model/UpdateNamespaceRequest.h" #include "model/UpdateNamespaceResult.h" @@ -68,6 +70,9 @@ namespace AlibabaCloud typedef Outcome DescribeNamespaceOutcome; typedef std::future DescribeNamespaceOutcomeCallable; typedef std::function&)> DescribeNamespaceAsyncHandler; + typedef Outcome DescribeNamespacesOutcome; + typedef std::future DescribeNamespacesOutcomeCallable; + typedef std::function&)> DescribeNamespacesAsyncHandler; typedef Outcome UpdateNamespaceOutcome; typedef std::future UpdateNamespaceOutcomeCallable; typedef std::function&)> UpdateNamespaceAsyncHandler; @@ -97,6 +102,9 @@ namespace AlibabaCloud DescribeNamespaceOutcome describeNamespace(const Model::DescribeNamespaceRequest &request)const; void describeNamespaceAsync(const Model::DescribeNamespaceRequest& request, const DescribeNamespaceAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; DescribeNamespaceOutcomeCallable describeNamespaceCallable(const Model::DescribeNamespaceRequest& request) const; + DescribeNamespacesOutcome describeNamespaces(const Model::DescribeNamespacesRequest &request)const; + void describeNamespacesAsync(const Model::DescribeNamespacesRequest& request, const DescribeNamespacesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + DescribeNamespacesOutcomeCallable describeNamespacesCallable(const Model::DescribeNamespacesRequest& request) const; UpdateNamespaceOutcome updateNamespace(const Model::UpdateNamespaceRequest &request)const; void updateNamespaceAsync(const Model::UpdateNamespaceRequest& request, const UpdateNamespaceAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; UpdateNamespaceOutcomeCallable updateNamespaceCallable(const Model::UpdateNamespaceRequest& request) const; diff --git a/acm/include/alibabacloud/acm/model/DescribeNamespacesRequest.h b/acm/include/alibabacloud/acm/model/DescribeNamespacesRequest.h new file mode 100644 index 000000000..f39a51850 --- /dev/null +++ b/acm/include/alibabacloud/acm/model/DescribeNamespacesRequest.h @@ -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. + */ + +#ifndef ALIBABACLOUD_ACM_MODEL_DESCRIBENAMESPACESREQUEST_H_ +#define ALIBABACLOUD_ACM_MODEL_DESCRIBENAMESPACESREQUEST_H_ + +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Acm + { + namespace Model + { + class ALIBABACLOUD_ACM_EXPORT DescribeNamespacesRequest : public RoaServiceRequest + { + + public: + DescribeNamespacesRequest(); + ~DescribeNamespacesRequest(); + + + private: + + }; + } + } +} +#endif // !ALIBABACLOUD_ACM_MODEL_DESCRIBENAMESPACESREQUEST_H_ \ No newline at end of file diff --git a/acm/include/alibabacloud/acm/model/DescribeNamespacesResult.h b/acm/include/alibabacloud/acm/model/DescribeNamespacesResult.h new file mode 100644 index 000000000..6ff8b1fc4 --- /dev/null +++ b/acm/include/alibabacloud/acm/model/DescribeNamespacesResult.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_ACM_MODEL_DESCRIBENAMESPACESRESULT_H_ +#define ALIBABACLOUD_ACM_MODEL_DESCRIBENAMESPACESRESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Acm + { + namespace Model + { + class ALIBABACLOUD_ACM_EXPORT DescribeNamespacesResult : public ServiceResult + { + public: + struct _Namespace + { + std::string namespaceName; + int type; + int quota; + int configCount; + std::string namespaceId; + }; + + + DescribeNamespacesResult(); + explicit DescribeNamespacesResult(const std::string &payload); + ~DescribeNamespacesResult(); + std::vector<_Namespace> getNamespaces()const; + std::string getMessage()const; + std::string getCode()const; + + protected: + void parse(const std::string &payload); + private: + std::vector<_Namespace> namespaces_; + std::string message_; + std::string code_; + + }; + } + } +} +#endif // !ALIBABACLOUD_ACM_MODEL_DESCRIBENAMESPACESRESULT_H_ \ No newline at end of file diff --git a/acm/src/AcmClient.cc b/acm/src/AcmClient.cc index 378a35f79..35d2bce0a 100644 --- a/acm/src/AcmClient.cc +++ b/acm/src/AcmClient.cc @@ -303,6 +303,42 @@ AcmClient::DescribeNamespaceOutcomeCallable AcmClient::describeNamespaceCallable return task->get_future(); } +AcmClient::DescribeNamespacesOutcome AcmClient::describeNamespaces(const DescribeNamespacesRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return DescribeNamespacesOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return DescribeNamespacesOutcome(DescribeNamespacesResult(outcome.result())); + else + return DescribeNamespacesOutcome(outcome.error()); +} + +void AcmClient::describeNamespacesAsync(const DescribeNamespacesRequest& request, const DescribeNamespacesAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, describeNamespaces(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +AcmClient::DescribeNamespacesOutcomeCallable AcmClient::describeNamespacesCallable(const DescribeNamespacesRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->describeNamespaces(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + AcmClient::UpdateNamespaceOutcome AcmClient::updateNamespace(const UpdateNamespaceRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/acm/src/model/DescribeNamespacesRequest.cc b/acm/src/model/DescribeNamespacesRequest.cc new file mode 100644 index 000000000..6ffdfb8fa --- /dev/null +++ b/acm/src/model/DescribeNamespacesRequest.cc @@ -0,0 +1,30 @@ +/* + * 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::Acm::Model::DescribeNamespacesRequest; + +DescribeNamespacesRequest::DescribeNamespacesRequest() : + RoaServiceRequest("acm", "2020-02-06") +{ + setResourcePath("/diamond-ops/pop/namespace/list"); + setMethod(HttpRequest::Method::Get); +} + +DescribeNamespacesRequest::~DescribeNamespacesRequest() +{} + diff --git a/acm/src/model/DescribeNamespacesResult.cc b/acm/src/model/DescribeNamespacesResult.cc new file mode 100644 index 000000000..ec19d3c89 --- /dev/null +++ b/acm/src/model/DescribeNamespacesResult.cc @@ -0,0 +1,79 @@ +/* + * 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::Acm; +using namespace AlibabaCloud::Acm::Model; + +DescribeNamespacesResult::DescribeNamespacesResult() : + ServiceResult() +{} + +DescribeNamespacesResult::DescribeNamespacesResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +DescribeNamespacesResult::~DescribeNamespacesResult() +{} + +void DescribeNamespacesResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + auto allNamespacesNode = value["Namespaces"]["Namespace"]; + for (auto valueNamespacesNamespace : allNamespacesNode) + { + _Namespace namespacesObject; + if(!valueNamespacesNamespace["ConfigCount"].isNull()) + namespacesObject.configCount = std::stoi(valueNamespacesNamespace["ConfigCount"].asString()); + if(!valueNamespacesNamespace["NamespaceId"].isNull()) + namespacesObject.namespaceId = valueNamespacesNamespace["NamespaceId"].asString(); + if(!valueNamespacesNamespace["NamespaceName"].isNull()) + namespacesObject.namespaceName = valueNamespacesNamespace["NamespaceName"].asString(); + if(!valueNamespacesNamespace["Quota"].isNull()) + namespacesObject.quota = std::stoi(valueNamespacesNamespace["Quota"].asString()); + if(!valueNamespacesNamespace["Type"].isNull()) + namespacesObject.type = std::stoi(valueNamespacesNamespace["Type"].asString()); + namespaces_.push_back(namespacesObject); + } + if(!value["Code"].isNull()) + code_ = value["Code"].asString(); + if(!value["Message"].isNull()) + message_ = value["Message"].asString(); + +} + +std::vector DescribeNamespacesResult::getNamespaces()const +{ + return namespaces_; +} + +std::string DescribeNamespacesResult::getMessage()const +{ + return message_; +} + +std::string DescribeNamespacesResult::getCode()const +{ + return code_; +} +