snapshot-20201118/include/alibabacloud/snapshot_20201118.hpp (505 lines of code) (raw):
// This file is auto-generated, don't edit it. Thanks.
#ifndef ALIBABACLOUD_SNAPSHOT20201118_H_
#define ALIBABACLOUD_SNAPSHOT20201118_H_
#include <alibabacloud/open_api.hpp>
#include <boost/throw_exception.hpp>
#include <darabonba/core.hpp>
#include <darabonba/util.hpp>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
namespace Alibabacloud_Snapshot20201118 {
class GetSnapshotBlockRequest : public Darabonba::Model {
public:
shared_ptr<string> clientToken{};
shared_ptr<string> blockIndex{};
shared_ptr<string> blockToken{};
shared_ptr<string> snapshotId{};
GetSnapshotBlockRequest() {}
explicit GetSnapshotBlockRequest(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (clientToken) {
res["ClientToken"] = boost::any(*clientToken);
}
if (blockIndex) {
res["BlockIndex"] = boost::any(*blockIndex);
}
if (blockToken) {
res["BlockToken"] = boost::any(*blockToken);
}
if (snapshotId) {
res["SnapshotId"] = boost::any(*snapshotId);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("ClientToken") != m.end() && !m["ClientToken"].empty()) {
clientToken = make_shared<string>(boost::any_cast<string>(m["ClientToken"]));
}
if (m.find("BlockIndex") != m.end() && !m["BlockIndex"].empty()) {
blockIndex = make_shared<string>(boost::any_cast<string>(m["BlockIndex"]));
}
if (m.find("BlockToken") != m.end() && !m["BlockToken"].empty()) {
blockToken = make_shared<string>(boost::any_cast<string>(m["BlockToken"]));
}
if (m.find("SnapshotId") != m.end() && !m["SnapshotId"].empty()) {
snapshotId = make_shared<string>(boost::any_cast<string>(m["SnapshotId"]));
}
}
virtual ~GetSnapshotBlockRequest() = default;
};
class GetSnapshotBlockResponse : public Darabonba::Model {
public:
shared_ptr<map<string, string>> headers{};
shared_ptr<Darabonba::Stream> body{};
GetSnapshotBlockResponse() {}
explicit GetSnapshotBlockResponse(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {
if (!headers) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("headers is required.")));
}
if (!body) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("body is required.")));
}
}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (headers) {
res["headers"] = boost::any(*headers);
}
if (body) {
res["body"] = boost::any(*body);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("headers") != m.end() && !m["headers"].empty()) {
map<string, string> map1 = boost::any_cast<map<string, string>>(m["headers"]);
map<string, string> toMap1;
for (auto item:map1) {
toMap1[item.first] = item.second;
}
headers = make_shared<map<string, string>>(toMap1);
}
if (m.find("body") != m.end() && !m["body"].empty()) {
body = make_shared<Darabonba::Stream>(boost::any_cast<Darabonba::Stream>(m["body"]));
}
}
virtual ~GetSnapshotBlockResponse() = default;
};
class ListChangedBlocksRequest : public Darabonba::Model {
public:
shared_ptr<string> nextToken{};
shared_ptr<long> maxResults{};
shared_ptr<string> clientToken{};
shared_ptr<string> firstSnapshotId{};
shared_ptr<string> secondSnapshotId{};
shared_ptr<long> startingBlockIndex{};
ListChangedBlocksRequest() {}
explicit ListChangedBlocksRequest(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (nextToken) {
res["NextToken"] = boost::any(*nextToken);
}
if (maxResults) {
res["MaxResults"] = boost::any(*maxResults);
}
if (clientToken) {
res["ClientToken"] = boost::any(*clientToken);
}
if (firstSnapshotId) {
res["FirstSnapshotId"] = boost::any(*firstSnapshotId);
}
if (secondSnapshotId) {
res["SecondSnapshotId"] = boost::any(*secondSnapshotId);
}
if (startingBlockIndex) {
res["StartingBlockIndex"] = boost::any(*startingBlockIndex);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("NextToken") != m.end() && !m["NextToken"].empty()) {
nextToken = make_shared<string>(boost::any_cast<string>(m["NextToken"]));
}
if (m.find("MaxResults") != m.end() && !m["MaxResults"].empty()) {
maxResults = make_shared<long>(boost::any_cast<long>(m["MaxResults"]));
}
if (m.find("ClientToken") != m.end() && !m["ClientToken"].empty()) {
clientToken = make_shared<string>(boost::any_cast<string>(m["ClientToken"]));
}
if (m.find("FirstSnapshotId") != m.end() && !m["FirstSnapshotId"].empty()) {
firstSnapshotId = make_shared<string>(boost::any_cast<string>(m["FirstSnapshotId"]));
}
if (m.find("SecondSnapshotId") != m.end() && !m["SecondSnapshotId"].empty()) {
secondSnapshotId = make_shared<string>(boost::any_cast<string>(m["SecondSnapshotId"]));
}
if (m.find("StartingBlockIndex") != m.end() && !m["StartingBlockIndex"].empty()) {
startingBlockIndex = make_shared<long>(boost::any_cast<long>(m["StartingBlockIndex"]));
}
}
virtual ~ListChangedBlocksRequest() = default;
};
class ListChangedBlocksResponseBodyChangedBlocks : public Darabonba::Model {
public:
shared_ptr<string> firstBlockToken{};
shared_ptr<long> blockIndex{};
shared_ptr<string> secondBlockToken{};
ListChangedBlocksResponseBodyChangedBlocks() {}
explicit ListChangedBlocksResponseBodyChangedBlocks(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (firstBlockToken) {
res["FirstBlockToken"] = boost::any(*firstBlockToken);
}
if (blockIndex) {
res["BlockIndex"] = boost::any(*blockIndex);
}
if (secondBlockToken) {
res["SecondBlockToken"] = boost::any(*secondBlockToken);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("FirstBlockToken") != m.end() && !m["FirstBlockToken"].empty()) {
firstBlockToken = make_shared<string>(boost::any_cast<string>(m["FirstBlockToken"]));
}
if (m.find("BlockIndex") != m.end() && !m["BlockIndex"].empty()) {
blockIndex = make_shared<long>(boost::any_cast<long>(m["BlockIndex"]));
}
if (m.find("SecondBlockToken") != m.end() && !m["SecondBlockToken"].empty()) {
secondBlockToken = make_shared<string>(boost::any_cast<string>(m["SecondBlockToken"]));
}
}
virtual ~ListChangedBlocksResponseBodyChangedBlocks() = default;
};
class ListChangedBlocksResponseBody : public Darabonba::Model {
public:
shared_ptr<string> nextToken{};
shared_ptr<long> expiryTime{};
shared_ptr<long> blockSize{};
shared_ptr<long> volumeSize{};
shared_ptr<vector<ListChangedBlocksResponseBodyChangedBlocks>> changedBlocks{};
ListChangedBlocksResponseBody() {}
explicit ListChangedBlocksResponseBody(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (nextToken) {
res["NextToken"] = boost::any(*nextToken);
}
if (expiryTime) {
res["ExpiryTime"] = boost::any(*expiryTime);
}
if (blockSize) {
res["BlockSize"] = boost::any(*blockSize);
}
if (volumeSize) {
res["VolumeSize"] = boost::any(*volumeSize);
}
if (changedBlocks) {
vector<boost::any> temp1;
for(auto item1:*changedBlocks){
temp1.push_back(boost::any(item1.toMap()));
}
res["ChangedBlocks"] = boost::any(temp1);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("NextToken") != m.end() && !m["NextToken"].empty()) {
nextToken = make_shared<string>(boost::any_cast<string>(m["NextToken"]));
}
if (m.find("ExpiryTime") != m.end() && !m["ExpiryTime"].empty()) {
expiryTime = make_shared<long>(boost::any_cast<long>(m["ExpiryTime"]));
}
if (m.find("BlockSize") != m.end() && !m["BlockSize"].empty()) {
blockSize = make_shared<long>(boost::any_cast<long>(m["BlockSize"]));
}
if (m.find("VolumeSize") != m.end() && !m["VolumeSize"].empty()) {
volumeSize = make_shared<long>(boost::any_cast<long>(m["VolumeSize"]));
}
if (m.find("ChangedBlocks") != m.end() && !m["ChangedBlocks"].empty()) {
if (typeid(vector<boost::any>) == m["ChangedBlocks"].type()) {
vector<ListChangedBlocksResponseBodyChangedBlocks> expect1;
for(auto item1:boost::any_cast<vector<boost::any>>(m["ChangedBlocks"])){
if (typeid(map<string, boost::any>) == item1.type()) {
ListChangedBlocksResponseBodyChangedBlocks model2;
model2.fromMap(boost::any_cast<map<string, boost::any>>(item1));
expect1.push_back(model2);
}
}
changedBlocks = make_shared<vector<ListChangedBlocksResponseBodyChangedBlocks>>(expect1);
}
}
}
virtual ~ListChangedBlocksResponseBody() = default;
};
class ListChangedBlocksResponse : public Darabonba::Model {
public:
shared_ptr<map<string, string>> headers{};
shared_ptr<ListChangedBlocksResponseBody> body{};
ListChangedBlocksResponse() {}
explicit ListChangedBlocksResponse(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {
if (!headers) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("headers is required.")));
}
if (!body) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("body is required.")));
}
}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (headers) {
res["headers"] = boost::any(*headers);
}
if (body) {
res["body"] = body ? boost::any(body->toMap()) : boost::any(map<string,boost::any>({}));
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("headers") != m.end() && !m["headers"].empty()) {
map<string, string> map1 = boost::any_cast<map<string, string>>(m["headers"]);
map<string, string> toMap1;
for (auto item:map1) {
toMap1[item.first] = item.second;
}
headers = make_shared<map<string, string>>(toMap1);
}
if (m.find("body") != m.end() && !m["body"].empty()) {
if (typeid(map<string, boost::any>) == m["body"].type()) {
ListChangedBlocksResponseBody model1;
model1.fromMap(boost::any_cast<map<string, boost::any>>(m["body"]));
body = make_shared<ListChangedBlocksResponseBody>(model1);
}
}
}
virtual ~ListChangedBlocksResponse() = default;
};
class ListSnapshotBlocksRequest : public Darabonba::Model {
public:
shared_ptr<string> nextToken{};
shared_ptr<long> maxResults{};
shared_ptr<string> clientToken{};
shared_ptr<string> snapshotId{};
shared_ptr<long> startingBlockIndex{};
ListSnapshotBlocksRequest() {}
explicit ListSnapshotBlocksRequest(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (nextToken) {
res["NextToken"] = boost::any(*nextToken);
}
if (maxResults) {
res["MaxResults"] = boost::any(*maxResults);
}
if (clientToken) {
res["ClientToken"] = boost::any(*clientToken);
}
if (snapshotId) {
res["SnapshotId"] = boost::any(*snapshotId);
}
if (startingBlockIndex) {
res["StartingBlockIndex"] = boost::any(*startingBlockIndex);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("NextToken") != m.end() && !m["NextToken"].empty()) {
nextToken = make_shared<string>(boost::any_cast<string>(m["NextToken"]));
}
if (m.find("MaxResults") != m.end() && !m["MaxResults"].empty()) {
maxResults = make_shared<long>(boost::any_cast<long>(m["MaxResults"]));
}
if (m.find("ClientToken") != m.end() && !m["ClientToken"].empty()) {
clientToken = make_shared<string>(boost::any_cast<string>(m["ClientToken"]));
}
if (m.find("SnapshotId") != m.end() && !m["SnapshotId"].empty()) {
snapshotId = make_shared<string>(boost::any_cast<string>(m["SnapshotId"]));
}
if (m.find("StartingBlockIndex") != m.end() && !m["StartingBlockIndex"].empty()) {
startingBlockIndex = make_shared<long>(boost::any_cast<long>(m["StartingBlockIndex"]));
}
}
virtual ~ListSnapshotBlocksRequest() = default;
};
class ListSnapshotBlocksResponseBodyBlocks : public Darabonba::Model {
public:
shared_ptr<long> blockIndex{};
shared_ptr<string> blockToken{};
ListSnapshotBlocksResponseBodyBlocks() {}
explicit ListSnapshotBlocksResponseBodyBlocks(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (blockIndex) {
res["BlockIndex"] = boost::any(*blockIndex);
}
if (blockToken) {
res["BlockToken"] = boost::any(*blockToken);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("BlockIndex") != m.end() && !m["BlockIndex"].empty()) {
blockIndex = make_shared<long>(boost::any_cast<long>(m["BlockIndex"]));
}
if (m.find("BlockToken") != m.end() && !m["BlockToken"].empty()) {
blockToken = make_shared<string>(boost::any_cast<string>(m["BlockToken"]));
}
}
virtual ~ListSnapshotBlocksResponseBodyBlocks() = default;
};
class ListSnapshotBlocksResponseBody : public Darabonba::Model {
public:
shared_ptr<string> nextToken{};
shared_ptr<long> expiryTime{};
shared_ptr<long> blockSize{};
shared_ptr<long> volumeSize{};
shared_ptr<vector<ListSnapshotBlocksResponseBodyBlocks>> blocks{};
ListSnapshotBlocksResponseBody() {}
explicit ListSnapshotBlocksResponseBody(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (nextToken) {
res["NextToken"] = boost::any(*nextToken);
}
if (expiryTime) {
res["ExpiryTime"] = boost::any(*expiryTime);
}
if (blockSize) {
res["BlockSize"] = boost::any(*blockSize);
}
if (volumeSize) {
res["VolumeSize"] = boost::any(*volumeSize);
}
if (blocks) {
vector<boost::any> temp1;
for(auto item1:*blocks){
temp1.push_back(boost::any(item1.toMap()));
}
res["Blocks"] = boost::any(temp1);
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("NextToken") != m.end() && !m["NextToken"].empty()) {
nextToken = make_shared<string>(boost::any_cast<string>(m["NextToken"]));
}
if (m.find("ExpiryTime") != m.end() && !m["ExpiryTime"].empty()) {
expiryTime = make_shared<long>(boost::any_cast<long>(m["ExpiryTime"]));
}
if (m.find("BlockSize") != m.end() && !m["BlockSize"].empty()) {
blockSize = make_shared<long>(boost::any_cast<long>(m["BlockSize"]));
}
if (m.find("VolumeSize") != m.end() && !m["VolumeSize"].empty()) {
volumeSize = make_shared<long>(boost::any_cast<long>(m["VolumeSize"]));
}
if (m.find("Blocks") != m.end() && !m["Blocks"].empty()) {
if (typeid(vector<boost::any>) == m["Blocks"].type()) {
vector<ListSnapshotBlocksResponseBodyBlocks> expect1;
for(auto item1:boost::any_cast<vector<boost::any>>(m["Blocks"])){
if (typeid(map<string, boost::any>) == item1.type()) {
ListSnapshotBlocksResponseBodyBlocks model2;
model2.fromMap(boost::any_cast<map<string, boost::any>>(item1));
expect1.push_back(model2);
}
}
blocks = make_shared<vector<ListSnapshotBlocksResponseBodyBlocks>>(expect1);
}
}
}
virtual ~ListSnapshotBlocksResponseBody() = default;
};
class ListSnapshotBlocksResponse : public Darabonba::Model {
public:
shared_ptr<map<string, string>> headers{};
shared_ptr<ListSnapshotBlocksResponseBody> body{};
ListSnapshotBlocksResponse() {}
explicit ListSnapshotBlocksResponse(const std::map<string, boost::any> &config) : Darabonba::Model(config) {
fromMap(config);
};
void validate() override {
if (!headers) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("headers is required.")));
}
if (!body) {
BOOST_THROW_EXCEPTION(boost::enable_error_info(std::runtime_error("body is required.")));
}
}
map<string, boost::any> toMap() override {
map<string, boost::any> res;
if (headers) {
res["headers"] = boost::any(*headers);
}
if (body) {
res["body"] = body ? boost::any(body->toMap()) : boost::any(map<string,boost::any>({}));
}
return res;
}
void fromMap(map<string, boost::any> m) override {
if (m.find("headers") != m.end() && !m["headers"].empty()) {
map<string, string> map1 = boost::any_cast<map<string, string>>(m["headers"]);
map<string, string> toMap1;
for (auto item:map1) {
toMap1[item.first] = item.second;
}
headers = make_shared<map<string, string>>(toMap1);
}
if (m.find("body") != m.end() && !m["body"].empty()) {
if (typeid(map<string, boost::any>) == m["body"].type()) {
ListSnapshotBlocksResponseBody model1;
model1.fromMap(boost::any_cast<map<string, boost::any>>(m["body"]));
body = make_shared<ListSnapshotBlocksResponseBody>(model1);
}
}
}
virtual ~ListSnapshotBlocksResponse() = default;
};
class Client : Alibabacloud_OpenApi::Client {
public:
explicit Client(const shared_ptr<Alibabacloud_OpenApi::Config>& config);
string getEndpoint(shared_ptr<string> productId,
shared_ptr<string> regionId,
shared_ptr<string> endpointRule,
shared_ptr<string> network,
shared_ptr<string> suffix,
shared_ptr<map<string, string>> endpointMap,
shared_ptr<string> endpoint);
GetSnapshotBlockResponse getSnapshotBlock(shared_ptr<GetSnapshotBlockRequest> request);
GetSnapshotBlockResponse getSnapshotBlockWithOptions(shared_ptr<GetSnapshotBlockRequest> request, shared_ptr<map<string, string>> headers, shared_ptr<Darabonba_Util::RuntimeOptions> runtime);
ListChangedBlocksResponse listChangedBlocks(shared_ptr<ListChangedBlocksRequest> request);
ListChangedBlocksResponse listChangedBlocksWithOptions(shared_ptr<ListChangedBlocksRequest> request, shared_ptr<map<string, string>> headers, shared_ptr<Darabonba_Util::RuntimeOptions> runtime);
ListSnapshotBlocksResponse listSnapshotBlocks(shared_ptr<ListSnapshotBlocksRequest> request);
ListSnapshotBlocksResponse listSnapshotBlocksWithOptions(shared_ptr<ListSnapshotBlocksRequest> request, shared_ptr<map<string, string>> headers, shared_ptr<Darabonba_Util::RuntimeOptions> runtime);
virtual ~Client() = default;
};
} // namespace Alibabacloud_Snapshot20201118
#endif