Compare commits

..

2 Commits

Author SHA1 Message Date
wb-hx510875
b32986689b test ci 2020-07-01 13:24:34 +08:00
sdk-team
db4bd7ae11 Add ListMetrics API. 2020-06-30 14:20:43 +08:00
10 changed files with 381 additions and 2 deletions

View File

@@ -1,3 +1,6 @@
2020-06-30 Version: 1.36.487
- Add ListMetrics API.
2020-06-29 Version: 1.36.486
- Supported Rotate.

View File

@@ -1 +1 @@
1.36.486
1.36.487

View File

@@ -12,7 +12,7 @@ echo $MAKE
rm -rf sdk_build
mkdir sdk_build
cd sdk_build
cmake -DBUILD_PRODUCT="$product" -DBUILD_FUNCTION_TESTS=OFF -DBUILD_UNIT_TESTS=OFF -DENABLE_COVERAGE=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
cmake -DBUILD_PRODUCT="$product" -DBUILD_FUNCTION_TESTS=OFF -DBUILD_UNIT_TESTS=OFF -DENABLE_COVERAGE=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ ..
$MAKE
make install

View File

@@ -49,6 +49,8 @@ set(vcs_public_header_model
include/alibabacloud/vcs/model/ListCorpsResult.h
include/alibabacloud/vcs/model/ListDevicesRequest.h
include/alibabacloud/vcs/model/ListDevicesResult.h
include/alibabacloud/vcs/model/ListMetricsRequest.h
include/alibabacloud/vcs/model/ListMetricsResult.h
include/alibabacloud/vcs/model/ListPersonsRequest.h
include/alibabacloud/vcs/model/ListPersonsResult.h
include/alibabacloud/vcs/model/RecognizeFaceQualityRequest.h
@@ -98,6 +100,8 @@ set(vcs_src
src/model/ListCorpsResult.cc
src/model/ListDevicesRequest.cc
src/model/ListDevicesResult.cc
src/model/ListMetricsRequest.cc
src/model/ListMetricsResult.cc
src/model/ListPersonsRequest.cc
src/model/ListPersonsResult.cc
src/model/RecognizeFaceQualityRequest.cc

View File

@@ -50,6 +50,8 @@
#include "model/ListCorpsResult.h"
#include "model/ListDevicesRequest.h"
#include "model/ListDevicesResult.h"
#include "model/ListMetricsRequest.h"
#include "model/ListMetricsResult.h"
#include "model/ListPersonsRequest.h"
#include "model/ListPersonsResult.h"
#include "model/RecognizeFaceQualityRequest.h"
@@ -119,6 +121,9 @@ namespace AlibabaCloud
typedef Outcome<Error, Model::ListDevicesResult> ListDevicesOutcome;
typedef std::future<ListDevicesOutcome> ListDevicesOutcomeCallable;
typedef std::function<void(const VcsClient*, const Model::ListDevicesRequest&, const ListDevicesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDevicesAsyncHandler;
typedef Outcome<Error, Model::ListMetricsResult> ListMetricsOutcome;
typedef std::future<ListMetricsOutcome> ListMetricsOutcomeCallable;
typedef std::function<void(const VcsClient*, const Model::ListMetricsRequest&, const ListMetricsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListMetricsAsyncHandler;
typedef Outcome<Error, Model::ListPersonsResult> ListPersonsOutcome;
typedef std::future<ListPersonsOutcome> ListPersonsOutcomeCallable;
typedef std::function<void(const VcsClient*, const Model::ListPersonsRequest&, const ListPersonsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPersonsAsyncHandler;
@@ -193,6 +198,9 @@ namespace AlibabaCloud
ListDevicesOutcome listDevices(const Model::ListDevicesRequest &request)const;
void listDevicesAsync(const Model::ListDevicesRequest& request, const ListDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
ListDevicesOutcomeCallable listDevicesCallable(const Model::ListDevicesRequest& request) const;
ListMetricsOutcome listMetrics(const Model::ListMetricsRequest &request)const;
void listMetricsAsync(const Model::ListMetricsRequest& request, const ListMetricsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
ListMetricsOutcomeCallable listMetricsCallable(const Model::ListMetricsRequest& request) const;
ListPersonsOutcome listPersons(const Model::ListPersonsRequest &request)const;
void listPersonsAsync(const Model::ListPersonsRequest& request, const ListPersonsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
ListPersonsOutcomeCallable listPersonsCallable(const Model::ListPersonsRequest& request) const;

View File

@@ -0,0 +1,66 @@
/*
* 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_VCS_MODEL_LISTMETRICSREQUEST_H_
#define ALIBABACLOUD_VCS_MODEL_LISTMETRICSREQUEST_H_
#include <string>
#include <vector>
#include <alibabacloud/core/RpcServiceRequest.h>
#include <alibabacloud/vcs/VcsExport.h>
namespace AlibabaCloud
{
namespace Vcs
{
namespace Model
{
class ALIBABACLOUD_VCS_EXPORT ListMetricsRequest : public RpcServiceRequest
{
public:
ListMetricsRequest();
~ListMetricsRequest();
std::string getCorpId()const;
void setCorpId(const std::string& corpId);
std::string getEndTime()const;
void setEndTime(const std::string& endTime);
std::string getStartTime()const;
void setStartTime(const std::string& startTime);
std::string getPageNumber()const;
void setPageNumber(const std::string& pageNumber);
std::string getTagCode()const;
void setTagCode(const std::string& tagCode);
std::string getPageSize()const;
void setPageSize(const std::string& pageSize);
std::string getAggregateType()const;
void setAggregateType(const std::string& aggregateType);
private:
std::string corpId_;
std::string endTime_;
std::string startTime_;
std::string pageNumber_;
std::string tagCode_;
std::string pageSize_;
std::string aggregateType_;
};
}
}
}
#endif // !ALIBABACLOUD_VCS_MODEL_LISTMETRICSREQUEST_H_

View File

@@ -0,0 +1,70 @@
/*
* 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_VCS_MODEL_LISTMETRICSRESULT_H_
#define ALIBABACLOUD_VCS_MODEL_LISTMETRICSRESULT_H_
#include <string>
#include <vector>
#include <utility>
#include <alibabacloud/core/ServiceResult.h>
#include <alibabacloud/vcs/VcsExport.h>
namespace AlibabaCloud
{
namespace Vcs
{
namespace Model
{
class ALIBABACLOUD_VCS_EXPORT ListMetricsResult : public ServiceResult
{
public:
struct Data
{
struct RecordsItem
{
std::string tagMetric;
std::string tagCode;
std::string tagValue;
std::string dateTime;
};
int totalCount;
int pageSize;
int totalPage;
int pageNumber;
std::vector<RecordsItem> records;
};
ListMetricsResult();
explicit ListMetricsResult(const std::string &payload);
~ListMetricsResult();
std::string getMessage()const;
Data getData()const;
std::string getCode()const;
protected:
void parse(const std::string &payload);
private:
std::string message_;
Data data_;
std::string code_;
};
}
}
}
#endif // !ALIBABACLOUD_VCS_MODEL_LISTMETRICSRESULT_H_

View File

@@ -555,6 +555,42 @@ VcsClient::ListDevicesOutcomeCallable VcsClient::listDevicesCallable(const ListD
return task->get_future();
}
VcsClient::ListMetricsOutcome VcsClient::listMetrics(const ListMetricsRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();
if (!endpointOutcome.isSuccess())
return ListMetricsOutcome(endpointOutcome.error());
auto outcome = makeRequest(endpointOutcome.result(), request);
if (outcome.isSuccess())
return ListMetricsOutcome(ListMetricsResult(outcome.result()));
else
return ListMetricsOutcome(outcome.error());
}
void VcsClient::listMetricsAsync(const ListMetricsRequest& request, const ListMetricsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
{
auto fn = [this, request, handler, context]()
{
handler(this, request, listMetrics(request), context);
};
asyncExecute(new Runnable(fn));
}
VcsClient::ListMetricsOutcomeCallable VcsClient::listMetricsCallable(const ListMetricsRequest &request) const
{
auto task = std::make_shared<std::packaged_task<ListMetricsOutcome()>>(
[this, request]()
{
return this->listMetrics(request);
});
asyncExecute(new Runnable([task]() { (*task)(); }));
return task->get_future();
}
VcsClient::ListPersonsOutcome VcsClient::listPersons(const ListPersonsRequest &request) const
{
auto endpointOutcome = endpointProvider_->getEndpoint();

View File

@@ -0,0 +1,106 @@
/*
* 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/vcs/model/ListMetricsRequest.h>
using AlibabaCloud::Vcs::Model::ListMetricsRequest;
ListMetricsRequest::ListMetricsRequest() :
RpcServiceRequest("vcs", "2020-05-15", "ListMetrics")
{
setMethod(HttpRequest::Method::Post);
}
ListMetricsRequest::~ListMetricsRequest()
{}
std::string ListMetricsRequest::getCorpId()const
{
return corpId_;
}
void ListMetricsRequest::setCorpId(const std::string& corpId)
{
corpId_ = corpId;
setBodyParameter("CorpId", corpId);
}
std::string ListMetricsRequest::getEndTime()const
{
return endTime_;
}
void ListMetricsRequest::setEndTime(const std::string& endTime)
{
endTime_ = endTime;
setBodyParameter("EndTime", endTime);
}
std::string ListMetricsRequest::getStartTime()const
{
return startTime_;
}
void ListMetricsRequest::setStartTime(const std::string& startTime)
{
startTime_ = startTime;
setBodyParameter("StartTime", startTime);
}
std::string ListMetricsRequest::getPageNumber()const
{
return pageNumber_;
}
void ListMetricsRequest::setPageNumber(const std::string& pageNumber)
{
pageNumber_ = pageNumber;
setBodyParameter("PageNumber", pageNumber);
}
std::string ListMetricsRequest::getTagCode()const
{
return tagCode_;
}
void ListMetricsRequest::setTagCode(const std::string& tagCode)
{
tagCode_ = tagCode;
setBodyParameter("TagCode", tagCode);
}
std::string ListMetricsRequest::getPageSize()const
{
return pageSize_;
}
void ListMetricsRequest::setPageSize(const std::string& pageSize)
{
pageSize_ = pageSize;
setBodyParameter("PageSize", pageSize);
}
std::string ListMetricsRequest::getAggregateType()const
{
return aggregateType_;
}
void ListMetricsRequest::setAggregateType(const std::string& aggregateType)
{
aggregateType_ = aggregateType;
setBodyParameter("AggregateType", aggregateType);
}

View File

@@ -0,0 +1,86 @@
/*
* 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/vcs/model/ListMetricsResult.h>
#include <json/json.h>
using namespace AlibabaCloud::Vcs;
using namespace AlibabaCloud::Vcs::Model;
ListMetricsResult::ListMetricsResult() :
ServiceResult()
{}
ListMetricsResult::ListMetricsResult(const std::string &payload) :
ServiceResult()
{
parse(payload);
}
ListMetricsResult::~ListMetricsResult()
{}
void ListMetricsResult::parse(const std::string &payload)
{
Json::Reader reader;
Json::Value value;
reader.parse(payload, value);
setRequestId(value["RequestId"].asString());
auto dataNode = value["Data"];
if(!dataNode["PageNumber"].isNull())
data_.pageNumber = std::stoi(dataNode["PageNumber"].asString());
if(!dataNode["PageSize"].isNull())
data_.pageSize = std::stoi(dataNode["PageSize"].asString());
if(!dataNode["TotalCount"].isNull())
data_.totalCount = std::stoi(dataNode["TotalCount"].asString());
if(!dataNode["TotalPage"].isNull())
data_.totalPage = std::stoi(dataNode["TotalPage"].asString());
auto allRecordsNode = dataNode["Records"]["RecordsItem"];
for (auto dataNodeRecordsRecordsItem : allRecordsNode)
{
Data::RecordsItem recordsItemObject;
if(!dataNodeRecordsRecordsItem["DateTime"].isNull())
recordsItemObject.dateTime = dataNodeRecordsRecordsItem["DateTime"].asString();
if(!dataNodeRecordsRecordsItem["TagCode"].isNull())
recordsItemObject.tagCode = dataNodeRecordsRecordsItem["TagCode"].asString();
if(!dataNodeRecordsRecordsItem["TagValue"].isNull())
recordsItemObject.tagValue = dataNodeRecordsRecordsItem["TagValue"].asString();
if(!dataNodeRecordsRecordsItem["TagMetric"].isNull())
recordsItemObject.tagMetric = dataNodeRecordsRecordsItem["TagMetric"].asString();
data_.records.push_back(recordsItemObject);
}
if(!value["Code"].isNull())
code_ = value["Code"].asString();
if(!value["Message"].isNull())
message_ = value["Message"].asString();
}
std::string ListMetricsResult::getMessage()const
{
return message_;
}
ListMetricsResult::Data ListMetricsResult::getData()const
{
return data_;
}
std::string ListMetricsResult::getCode()const
{
return code_;
}