Ai
2 Star 8 Fork 1

tencentcloud/tencentcloud-sdk-cpp

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
TagClient.cpp 52.89 KB
一键复制 编辑 原始数据 按行查看 历史
tencentcloud 提交于 2025-11-20 22:15 +08:00 . release 3.3.0
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592
/*
* Copyright (c) 2017-2025 Tencent. 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 <tencentcloud/tag/v20180813/TagClient.h>
#include <tencentcloud/core/Executor.h>
#include <tencentcloud/core/Runnable.h>
using namespace TencentCloud;
using namespace TencentCloud::Tag::V20180813;
using namespace TencentCloud::Tag::V20180813::Model;
using namespace std;
namespace
{
const string VERSION = "2018-08-13";
const string ENDPOINT = "tag.tencentcloudapi.com";
}
TagClient::TagClient(const Credential &credential, const string &region) :
TagClient(credential, region, ClientProfile())
{
}
TagClient::TagClient(const Credential &credential, const string &region, const ClientProfile &profile) :
AbstractClient(ENDPOINT, VERSION, credential, region, profile)
{
}
TagClient::AddProjectOutcome TagClient::AddProject(const AddProjectRequest &request)
{
auto outcome = MakeRequest(request, "AddProject");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
AddProjectResponse rsp = AddProjectResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return AddProjectOutcome(rsp);
else
return AddProjectOutcome(o.GetError());
}
else
{
return AddProjectOutcome(outcome.GetError());
}
}
void TagClient::AddProjectAsync(const AddProjectRequest& request, const AddProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const AddProjectRequest&;
using Resp = AddProjectResponse;
DoRequestAsync<Req, Resp>(
"AddProject", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::AddProjectOutcomeCallable TagClient::AddProjectCallable(const AddProjectRequest &request)
{
const auto prom = std::make_shared<std::promise<AddProjectOutcome>>();
AddProjectAsync(
request,
[prom](
const TagClient*,
const AddProjectRequest&,
AddProjectOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::AddResourceTagOutcome TagClient::AddResourceTag(const AddResourceTagRequest &request)
{
auto outcome = MakeRequest(request, "AddResourceTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
AddResourceTagResponse rsp = AddResourceTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return AddResourceTagOutcome(rsp);
else
return AddResourceTagOutcome(o.GetError());
}
else
{
return AddResourceTagOutcome(outcome.GetError());
}
}
void TagClient::AddResourceTagAsync(const AddResourceTagRequest& request, const AddResourceTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const AddResourceTagRequest&;
using Resp = AddResourceTagResponse;
DoRequestAsync<Req, Resp>(
"AddResourceTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::AddResourceTagOutcomeCallable TagClient::AddResourceTagCallable(const AddResourceTagRequest &request)
{
const auto prom = std::make_shared<std::promise<AddResourceTagOutcome>>();
AddResourceTagAsync(
request,
[prom](
const TagClient*,
const AddResourceTagRequest&,
AddResourceTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::AttachResourcesTagOutcome TagClient::AttachResourcesTag(const AttachResourcesTagRequest &request)
{
auto outcome = MakeRequest(request, "AttachResourcesTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
AttachResourcesTagResponse rsp = AttachResourcesTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return AttachResourcesTagOutcome(rsp);
else
return AttachResourcesTagOutcome(o.GetError());
}
else
{
return AttachResourcesTagOutcome(outcome.GetError());
}
}
void TagClient::AttachResourcesTagAsync(const AttachResourcesTagRequest& request, const AttachResourcesTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const AttachResourcesTagRequest&;
using Resp = AttachResourcesTagResponse;
DoRequestAsync<Req, Resp>(
"AttachResourcesTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::AttachResourcesTagOutcomeCallable TagClient::AttachResourcesTagCallable(const AttachResourcesTagRequest &request)
{
const auto prom = std::make_shared<std::promise<AttachResourcesTagOutcome>>();
AttachResourcesTagAsync(
request,
[prom](
const TagClient*,
const AttachResourcesTagRequest&,
AttachResourcesTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::CreateTagOutcome TagClient::CreateTag(const CreateTagRequest &request)
{
auto outcome = MakeRequest(request, "CreateTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
CreateTagResponse rsp = CreateTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return CreateTagOutcome(rsp);
else
return CreateTagOutcome(o.GetError());
}
else
{
return CreateTagOutcome(outcome.GetError());
}
}
void TagClient::CreateTagAsync(const CreateTagRequest& request, const CreateTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const CreateTagRequest&;
using Resp = CreateTagResponse;
DoRequestAsync<Req, Resp>(
"CreateTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::CreateTagOutcomeCallable TagClient::CreateTagCallable(const CreateTagRequest &request)
{
const auto prom = std::make_shared<std::promise<CreateTagOutcome>>();
CreateTagAsync(
request,
[prom](
const TagClient*,
const CreateTagRequest&,
CreateTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::CreateTagsOutcome TagClient::CreateTags(const CreateTagsRequest &request)
{
auto outcome = MakeRequest(request, "CreateTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
CreateTagsResponse rsp = CreateTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return CreateTagsOutcome(rsp);
else
return CreateTagsOutcome(o.GetError());
}
else
{
return CreateTagsOutcome(outcome.GetError());
}
}
void TagClient::CreateTagsAsync(const CreateTagsRequest& request, const CreateTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const CreateTagsRequest&;
using Resp = CreateTagsResponse;
DoRequestAsync<Req, Resp>(
"CreateTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::CreateTagsOutcomeCallable TagClient::CreateTagsCallable(const CreateTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<CreateTagsOutcome>>();
CreateTagsAsync(
request,
[prom](
const TagClient*,
const CreateTagsRequest&,
CreateTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DeleteResourceTagOutcome TagClient::DeleteResourceTag(const DeleteResourceTagRequest &request)
{
auto outcome = MakeRequest(request, "DeleteResourceTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DeleteResourceTagResponse rsp = DeleteResourceTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DeleteResourceTagOutcome(rsp);
else
return DeleteResourceTagOutcome(o.GetError());
}
else
{
return DeleteResourceTagOutcome(outcome.GetError());
}
}
void TagClient::DeleteResourceTagAsync(const DeleteResourceTagRequest& request, const DeleteResourceTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DeleteResourceTagRequest&;
using Resp = DeleteResourceTagResponse;
DoRequestAsync<Req, Resp>(
"DeleteResourceTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DeleteResourceTagOutcomeCallable TagClient::DeleteResourceTagCallable(const DeleteResourceTagRequest &request)
{
const auto prom = std::make_shared<std::promise<DeleteResourceTagOutcome>>();
DeleteResourceTagAsync(
request,
[prom](
const TagClient*,
const DeleteResourceTagRequest&,
DeleteResourceTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DeleteTagOutcome TagClient::DeleteTag(const DeleteTagRequest &request)
{
auto outcome = MakeRequest(request, "DeleteTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DeleteTagResponse rsp = DeleteTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DeleteTagOutcome(rsp);
else
return DeleteTagOutcome(o.GetError());
}
else
{
return DeleteTagOutcome(outcome.GetError());
}
}
void TagClient::DeleteTagAsync(const DeleteTagRequest& request, const DeleteTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DeleteTagRequest&;
using Resp = DeleteTagResponse;
DoRequestAsync<Req, Resp>(
"DeleteTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DeleteTagOutcomeCallable TagClient::DeleteTagCallable(const DeleteTagRequest &request)
{
const auto prom = std::make_shared<std::promise<DeleteTagOutcome>>();
DeleteTagAsync(
request,
[prom](
const TagClient*,
const DeleteTagRequest&,
DeleteTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DeleteTagsOutcome TagClient::DeleteTags(const DeleteTagsRequest &request)
{
auto outcome = MakeRequest(request, "DeleteTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DeleteTagsResponse rsp = DeleteTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DeleteTagsOutcome(rsp);
else
return DeleteTagsOutcome(o.GetError());
}
else
{
return DeleteTagsOutcome(outcome.GetError());
}
}
void TagClient::DeleteTagsAsync(const DeleteTagsRequest& request, const DeleteTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DeleteTagsRequest&;
using Resp = DeleteTagsResponse;
DoRequestAsync<Req, Resp>(
"DeleteTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DeleteTagsOutcomeCallable TagClient::DeleteTagsCallable(const DeleteTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<DeleteTagsOutcome>>();
DeleteTagsAsync(
request,
[prom](
const TagClient*,
const DeleteTagsRequest&,
DeleteTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeProjectsOutcome TagClient::DescribeProjects(const DescribeProjectsRequest &request)
{
auto outcome = MakeRequest(request, "DescribeProjects");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeProjectsResponse rsp = DescribeProjectsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeProjectsOutcome(rsp);
else
return DescribeProjectsOutcome(o.GetError());
}
else
{
return DescribeProjectsOutcome(outcome.GetError());
}
}
void TagClient::DescribeProjectsAsync(const DescribeProjectsRequest& request, const DescribeProjectsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeProjectsRequest&;
using Resp = DescribeProjectsResponse;
DoRequestAsync<Req, Resp>(
"DescribeProjects", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeProjectsOutcomeCallable TagClient::DescribeProjectsCallable(const DescribeProjectsRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeProjectsOutcome>>();
DescribeProjectsAsync(
request,
[prom](
const TagClient*,
const DescribeProjectsRequest&,
DescribeProjectsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourceTagsOutcome TagClient::DescribeResourceTags(const DescribeResourceTagsRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourceTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourceTagsResponse rsp = DescribeResourceTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourceTagsOutcome(rsp);
else
return DescribeResourceTagsOutcome(o.GetError());
}
else
{
return DescribeResourceTagsOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourceTagsAsync(const DescribeResourceTagsRequest& request, const DescribeResourceTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourceTagsRequest&;
using Resp = DescribeResourceTagsResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourceTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourceTagsOutcomeCallable TagClient::DescribeResourceTagsCallable(const DescribeResourceTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourceTagsOutcome>>();
DescribeResourceTagsAsync(
request,
[prom](
const TagClient*,
const DescribeResourceTagsRequest&,
DescribeResourceTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourceTagsByResourceIdsOutcome TagClient::DescribeResourceTagsByResourceIds(const DescribeResourceTagsByResourceIdsRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourceTagsByResourceIds");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourceTagsByResourceIdsResponse rsp = DescribeResourceTagsByResourceIdsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourceTagsByResourceIdsOutcome(rsp);
else
return DescribeResourceTagsByResourceIdsOutcome(o.GetError());
}
else
{
return DescribeResourceTagsByResourceIdsOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourceTagsByResourceIdsAsync(const DescribeResourceTagsByResourceIdsRequest& request, const DescribeResourceTagsByResourceIdsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourceTagsByResourceIdsRequest&;
using Resp = DescribeResourceTagsByResourceIdsResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourceTagsByResourceIds", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourceTagsByResourceIdsOutcomeCallable TagClient::DescribeResourceTagsByResourceIdsCallable(const DescribeResourceTagsByResourceIdsRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourceTagsByResourceIdsOutcome>>();
DescribeResourceTagsByResourceIdsAsync(
request,
[prom](
const TagClient*,
const DescribeResourceTagsByResourceIdsRequest&,
DescribeResourceTagsByResourceIdsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourceTagsByResourceIdsSeqOutcome TagClient::DescribeResourceTagsByResourceIdsSeq(const DescribeResourceTagsByResourceIdsSeqRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourceTagsByResourceIdsSeq");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourceTagsByResourceIdsSeqResponse rsp = DescribeResourceTagsByResourceIdsSeqResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourceTagsByResourceIdsSeqOutcome(rsp);
else
return DescribeResourceTagsByResourceIdsSeqOutcome(o.GetError());
}
else
{
return DescribeResourceTagsByResourceIdsSeqOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourceTagsByResourceIdsSeqAsync(const DescribeResourceTagsByResourceIdsSeqRequest& request, const DescribeResourceTagsByResourceIdsSeqAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourceTagsByResourceIdsSeqRequest&;
using Resp = DescribeResourceTagsByResourceIdsSeqResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourceTagsByResourceIdsSeq", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourceTagsByResourceIdsSeqOutcomeCallable TagClient::DescribeResourceTagsByResourceIdsSeqCallable(const DescribeResourceTagsByResourceIdsSeqRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourceTagsByResourceIdsSeqOutcome>>();
DescribeResourceTagsByResourceIdsSeqAsync(
request,
[prom](
const TagClient*,
const DescribeResourceTagsByResourceIdsSeqRequest&,
DescribeResourceTagsByResourceIdsSeqOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourceTagsByTagKeysOutcome TagClient::DescribeResourceTagsByTagKeys(const DescribeResourceTagsByTagKeysRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourceTagsByTagKeys");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourceTagsByTagKeysResponse rsp = DescribeResourceTagsByTagKeysResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourceTagsByTagKeysOutcome(rsp);
else
return DescribeResourceTagsByTagKeysOutcome(o.GetError());
}
else
{
return DescribeResourceTagsByTagKeysOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourceTagsByTagKeysAsync(const DescribeResourceTagsByTagKeysRequest& request, const DescribeResourceTagsByTagKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourceTagsByTagKeysRequest&;
using Resp = DescribeResourceTagsByTagKeysResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourceTagsByTagKeys", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourceTagsByTagKeysOutcomeCallable TagClient::DescribeResourceTagsByTagKeysCallable(const DescribeResourceTagsByTagKeysRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourceTagsByTagKeysOutcome>>();
DescribeResourceTagsByTagKeysAsync(
request,
[prom](
const TagClient*,
const DescribeResourceTagsByTagKeysRequest&,
DescribeResourceTagsByTagKeysOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourcesByTagsOutcome TagClient::DescribeResourcesByTags(const DescribeResourcesByTagsRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourcesByTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourcesByTagsResponse rsp = DescribeResourcesByTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourcesByTagsOutcome(rsp);
else
return DescribeResourcesByTagsOutcome(o.GetError());
}
else
{
return DescribeResourcesByTagsOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourcesByTagsAsync(const DescribeResourcesByTagsRequest& request, const DescribeResourcesByTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourcesByTagsRequest&;
using Resp = DescribeResourcesByTagsResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourcesByTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourcesByTagsOutcomeCallable TagClient::DescribeResourcesByTagsCallable(const DescribeResourcesByTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourcesByTagsOutcome>>();
DescribeResourcesByTagsAsync(
request,
[prom](
const TagClient*,
const DescribeResourcesByTagsRequest&,
DescribeResourcesByTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeResourcesByTagsUnionOutcome TagClient::DescribeResourcesByTagsUnion(const DescribeResourcesByTagsUnionRequest &request)
{
auto outcome = MakeRequest(request, "DescribeResourcesByTagsUnion");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeResourcesByTagsUnionResponse rsp = DescribeResourcesByTagsUnionResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeResourcesByTagsUnionOutcome(rsp);
else
return DescribeResourcesByTagsUnionOutcome(o.GetError());
}
else
{
return DescribeResourcesByTagsUnionOutcome(outcome.GetError());
}
}
void TagClient::DescribeResourcesByTagsUnionAsync(const DescribeResourcesByTagsUnionRequest& request, const DescribeResourcesByTagsUnionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeResourcesByTagsUnionRequest&;
using Resp = DescribeResourcesByTagsUnionResponse;
DoRequestAsync<Req, Resp>(
"DescribeResourcesByTagsUnion", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeResourcesByTagsUnionOutcomeCallable TagClient::DescribeResourcesByTagsUnionCallable(const DescribeResourcesByTagsUnionRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeResourcesByTagsUnionOutcome>>();
DescribeResourcesByTagsUnionAsync(
request,
[prom](
const TagClient*,
const DescribeResourcesByTagsUnionRequest&,
DescribeResourcesByTagsUnionOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeTagKeysOutcome TagClient::DescribeTagKeys(const DescribeTagKeysRequest &request)
{
auto outcome = MakeRequest(request, "DescribeTagKeys");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeTagKeysResponse rsp = DescribeTagKeysResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeTagKeysOutcome(rsp);
else
return DescribeTagKeysOutcome(o.GetError());
}
else
{
return DescribeTagKeysOutcome(outcome.GetError());
}
}
void TagClient::DescribeTagKeysAsync(const DescribeTagKeysRequest& request, const DescribeTagKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeTagKeysRequest&;
using Resp = DescribeTagKeysResponse;
DoRequestAsync<Req, Resp>(
"DescribeTagKeys", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeTagKeysOutcomeCallable TagClient::DescribeTagKeysCallable(const DescribeTagKeysRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeTagKeysOutcome>>();
DescribeTagKeysAsync(
request,
[prom](
const TagClient*,
const DescribeTagKeysRequest&,
DescribeTagKeysOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeTagValuesOutcome TagClient::DescribeTagValues(const DescribeTagValuesRequest &request)
{
auto outcome = MakeRequest(request, "DescribeTagValues");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeTagValuesResponse rsp = DescribeTagValuesResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeTagValuesOutcome(rsp);
else
return DescribeTagValuesOutcome(o.GetError());
}
else
{
return DescribeTagValuesOutcome(outcome.GetError());
}
}
void TagClient::DescribeTagValuesAsync(const DescribeTagValuesRequest& request, const DescribeTagValuesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeTagValuesRequest&;
using Resp = DescribeTagValuesResponse;
DoRequestAsync<Req, Resp>(
"DescribeTagValues", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeTagValuesOutcomeCallable TagClient::DescribeTagValuesCallable(const DescribeTagValuesRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeTagValuesOutcome>>();
DescribeTagValuesAsync(
request,
[prom](
const TagClient*,
const DescribeTagValuesRequest&,
DescribeTagValuesOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeTagValuesSeqOutcome TagClient::DescribeTagValuesSeq(const DescribeTagValuesSeqRequest &request)
{
auto outcome = MakeRequest(request, "DescribeTagValuesSeq");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeTagValuesSeqResponse rsp = DescribeTagValuesSeqResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeTagValuesSeqOutcome(rsp);
else
return DescribeTagValuesSeqOutcome(o.GetError());
}
else
{
return DescribeTagValuesSeqOutcome(outcome.GetError());
}
}
void TagClient::DescribeTagValuesSeqAsync(const DescribeTagValuesSeqRequest& request, const DescribeTagValuesSeqAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeTagValuesSeqRequest&;
using Resp = DescribeTagValuesSeqResponse;
DoRequestAsync<Req, Resp>(
"DescribeTagValuesSeq", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeTagValuesSeqOutcomeCallable TagClient::DescribeTagValuesSeqCallable(const DescribeTagValuesSeqRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeTagValuesSeqOutcome>>();
DescribeTagValuesSeqAsync(
request,
[prom](
const TagClient*,
const DescribeTagValuesSeqRequest&,
DescribeTagValuesSeqOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeTagsOutcome TagClient::DescribeTags(const DescribeTagsRequest &request)
{
auto outcome = MakeRequest(request, "DescribeTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeTagsResponse rsp = DescribeTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeTagsOutcome(rsp);
else
return DescribeTagsOutcome(o.GetError());
}
else
{
return DescribeTagsOutcome(outcome.GetError());
}
}
void TagClient::DescribeTagsAsync(const DescribeTagsRequest& request, const DescribeTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeTagsRequest&;
using Resp = DescribeTagsResponse;
DoRequestAsync<Req, Resp>(
"DescribeTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeTagsOutcomeCallable TagClient::DescribeTagsCallable(const DescribeTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeTagsOutcome>>();
DescribeTagsAsync(
request,
[prom](
const TagClient*,
const DescribeTagsRequest&,
DescribeTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DescribeTagsSeqOutcome TagClient::DescribeTagsSeq(const DescribeTagsSeqRequest &request)
{
auto outcome = MakeRequest(request, "DescribeTagsSeq");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DescribeTagsSeqResponse rsp = DescribeTagsSeqResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DescribeTagsSeqOutcome(rsp);
else
return DescribeTagsSeqOutcome(o.GetError());
}
else
{
return DescribeTagsSeqOutcome(outcome.GetError());
}
}
void TagClient::DescribeTagsSeqAsync(const DescribeTagsSeqRequest& request, const DescribeTagsSeqAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DescribeTagsSeqRequest&;
using Resp = DescribeTagsSeqResponse;
DoRequestAsync<Req, Resp>(
"DescribeTagsSeq", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DescribeTagsSeqOutcomeCallable TagClient::DescribeTagsSeqCallable(const DescribeTagsSeqRequest &request)
{
const auto prom = std::make_shared<std::promise<DescribeTagsSeqOutcome>>();
DescribeTagsSeqAsync(
request,
[prom](
const TagClient*,
const DescribeTagsSeqRequest&,
DescribeTagsSeqOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::DetachResourcesTagOutcome TagClient::DetachResourcesTag(const DetachResourcesTagRequest &request)
{
auto outcome = MakeRequest(request, "DetachResourcesTag");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
DetachResourcesTagResponse rsp = DetachResourcesTagResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return DetachResourcesTagOutcome(rsp);
else
return DetachResourcesTagOutcome(o.GetError());
}
else
{
return DetachResourcesTagOutcome(outcome.GetError());
}
}
void TagClient::DetachResourcesTagAsync(const DetachResourcesTagRequest& request, const DetachResourcesTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const DetachResourcesTagRequest&;
using Resp = DetachResourcesTagResponse;
DoRequestAsync<Req, Resp>(
"DetachResourcesTag", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::DetachResourcesTagOutcomeCallable TagClient::DetachResourcesTagCallable(const DetachResourcesTagRequest &request)
{
const auto prom = std::make_shared<std::promise<DetachResourcesTagOutcome>>();
DetachResourcesTagAsync(
request,
[prom](
const TagClient*,
const DetachResourcesTagRequest&,
DetachResourcesTagOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::GetResourcesOutcome TagClient::GetResources(const GetResourcesRequest &request)
{
auto outcome = MakeRequest(request, "GetResources");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
GetResourcesResponse rsp = GetResourcesResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return GetResourcesOutcome(rsp);
else
return GetResourcesOutcome(o.GetError());
}
else
{
return GetResourcesOutcome(outcome.GetError());
}
}
void TagClient::GetResourcesAsync(const GetResourcesRequest& request, const GetResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const GetResourcesRequest&;
using Resp = GetResourcesResponse;
DoRequestAsync<Req, Resp>(
"GetResources", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::GetResourcesOutcomeCallable TagClient::GetResourcesCallable(const GetResourcesRequest &request)
{
const auto prom = std::make_shared<std::promise<GetResourcesOutcome>>();
GetResourcesAsync(
request,
[prom](
const TagClient*,
const GetResourcesRequest&,
GetResourcesOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::GetTagKeysOutcome TagClient::GetTagKeys(const GetTagKeysRequest &request)
{
auto outcome = MakeRequest(request, "GetTagKeys");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
GetTagKeysResponse rsp = GetTagKeysResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return GetTagKeysOutcome(rsp);
else
return GetTagKeysOutcome(o.GetError());
}
else
{
return GetTagKeysOutcome(outcome.GetError());
}
}
void TagClient::GetTagKeysAsync(const GetTagKeysRequest& request, const GetTagKeysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const GetTagKeysRequest&;
using Resp = GetTagKeysResponse;
DoRequestAsync<Req, Resp>(
"GetTagKeys", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::GetTagKeysOutcomeCallable TagClient::GetTagKeysCallable(const GetTagKeysRequest &request)
{
const auto prom = std::make_shared<std::promise<GetTagKeysOutcome>>();
GetTagKeysAsync(
request,
[prom](
const TagClient*,
const GetTagKeysRequest&,
GetTagKeysOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::GetTagValuesOutcome TagClient::GetTagValues(const GetTagValuesRequest &request)
{
auto outcome = MakeRequest(request, "GetTagValues");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
GetTagValuesResponse rsp = GetTagValuesResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return GetTagValuesOutcome(rsp);
else
return GetTagValuesOutcome(o.GetError());
}
else
{
return GetTagValuesOutcome(outcome.GetError());
}
}
void TagClient::GetTagValuesAsync(const GetTagValuesRequest& request, const GetTagValuesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const GetTagValuesRequest&;
using Resp = GetTagValuesResponse;
DoRequestAsync<Req, Resp>(
"GetTagValues", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::GetTagValuesOutcomeCallable TagClient::GetTagValuesCallable(const GetTagValuesRequest &request)
{
const auto prom = std::make_shared<std::promise<GetTagValuesOutcome>>();
GetTagValuesAsync(
request,
[prom](
const TagClient*,
const GetTagValuesRequest&,
GetTagValuesOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::GetTagsOutcome TagClient::GetTags(const GetTagsRequest &request)
{
auto outcome = MakeRequest(request, "GetTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
GetTagsResponse rsp = GetTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return GetTagsOutcome(rsp);
else
return GetTagsOutcome(o.GetError());
}
else
{
return GetTagsOutcome(outcome.GetError());
}
}
void TagClient::GetTagsAsync(const GetTagsRequest& request, const GetTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const GetTagsRequest&;
using Resp = GetTagsResponse;
DoRequestAsync<Req, Resp>(
"GetTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::GetTagsOutcomeCallable TagClient::GetTagsCallable(const GetTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<GetTagsOutcome>>();
GetTagsAsync(
request,
[prom](
const TagClient*,
const GetTagsRequest&,
GetTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::ModifyResourceTagsOutcome TagClient::ModifyResourceTags(const ModifyResourceTagsRequest &request)
{
auto outcome = MakeRequest(request, "ModifyResourceTags");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
ModifyResourceTagsResponse rsp = ModifyResourceTagsResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return ModifyResourceTagsOutcome(rsp);
else
return ModifyResourceTagsOutcome(o.GetError());
}
else
{
return ModifyResourceTagsOutcome(outcome.GetError());
}
}
void TagClient::ModifyResourceTagsAsync(const ModifyResourceTagsRequest& request, const ModifyResourceTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const ModifyResourceTagsRequest&;
using Resp = ModifyResourceTagsResponse;
DoRequestAsync<Req, Resp>(
"ModifyResourceTags", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::ModifyResourceTagsOutcomeCallable TagClient::ModifyResourceTagsCallable(const ModifyResourceTagsRequest &request)
{
const auto prom = std::make_shared<std::promise<ModifyResourceTagsOutcome>>();
ModifyResourceTagsAsync(
request,
[prom](
const TagClient*,
const ModifyResourceTagsRequest&,
ModifyResourceTagsOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::ModifyResourcesTagValueOutcome TagClient::ModifyResourcesTagValue(const ModifyResourcesTagValueRequest &request)
{
auto outcome = MakeRequest(request, "ModifyResourcesTagValue");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
ModifyResourcesTagValueResponse rsp = ModifyResourcesTagValueResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return ModifyResourcesTagValueOutcome(rsp);
else
return ModifyResourcesTagValueOutcome(o.GetError());
}
else
{
return ModifyResourcesTagValueOutcome(outcome.GetError());
}
}
void TagClient::ModifyResourcesTagValueAsync(const ModifyResourcesTagValueRequest& request, const ModifyResourcesTagValueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const ModifyResourcesTagValueRequest&;
using Resp = ModifyResourcesTagValueResponse;
DoRequestAsync<Req, Resp>(
"ModifyResourcesTagValue", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::ModifyResourcesTagValueOutcomeCallable TagClient::ModifyResourcesTagValueCallable(const ModifyResourcesTagValueRequest &request)
{
const auto prom = std::make_shared<std::promise<ModifyResourcesTagValueOutcome>>();
ModifyResourcesTagValueAsync(
request,
[prom](
const TagClient*,
const ModifyResourcesTagValueRequest&,
ModifyResourcesTagValueOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::TagResourcesOutcome TagClient::TagResources(const TagResourcesRequest &request)
{
auto outcome = MakeRequest(request, "TagResources");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
TagResourcesResponse rsp = TagResourcesResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return TagResourcesOutcome(rsp);
else
return TagResourcesOutcome(o.GetError());
}
else
{
return TagResourcesOutcome(outcome.GetError());
}
}
void TagClient::TagResourcesAsync(const TagResourcesRequest& request, const TagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const TagResourcesRequest&;
using Resp = TagResourcesResponse;
DoRequestAsync<Req, Resp>(
"TagResources", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::TagResourcesOutcomeCallable TagClient::TagResourcesCallable(const TagResourcesRequest &request)
{
const auto prom = std::make_shared<std::promise<TagResourcesOutcome>>();
TagResourcesAsync(
request,
[prom](
const TagClient*,
const TagResourcesRequest&,
TagResourcesOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::UnTagResourcesOutcome TagClient::UnTagResources(const UnTagResourcesRequest &request)
{
auto outcome = MakeRequest(request, "UnTagResources");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
UnTagResourcesResponse rsp = UnTagResourcesResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return UnTagResourcesOutcome(rsp);
else
return UnTagResourcesOutcome(o.GetError());
}
else
{
return UnTagResourcesOutcome(outcome.GetError());
}
}
void TagClient::UnTagResourcesAsync(const UnTagResourcesRequest& request, const UnTagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const UnTagResourcesRequest&;
using Resp = UnTagResourcesResponse;
DoRequestAsync<Req, Resp>(
"UnTagResources", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::UnTagResourcesOutcomeCallable TagClient::UnTagResourcesCallable(const UnTagResourcesRequest &request)
{
const auto prom = std::make_shared<std::promise<UnTagResourcesOutcome>>();
UnTagResourcesAsync(
request,
[prom](
const TagClient*,
const UnTagResourcesRequest&,
UnTagResourcesOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::UpdateProjectOutcome TagClient::UpdateProject(const UpdateProjectRequest &request)
{
auto outcome = MakeRequest(request, "UpdateProject");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
UpdateProjectResponse rsp = UpdateProjectResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return UpdateProjectOutcome(rsp);
else
return UpdateProjectOutcome(o.GetError());
}
else
{
return UpdateProjectOutcome(outcome.GetError());
}
}
void TagClient::UpdateProjectAsync(const UpdateProjectRequest& request, const UpdateProjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const UpdateProjectRequest&;
using Resp = UpdateProjectResponse;
DoRequestAsync<Req, Resp>(
"UpdateProject", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::UpdateProjectOutcomeCallable TagClient::UpdateProjectCallable(const UpdateProjectRequest &request)
{
const auto prom = std::make_shared<std::promise<UpdateProjectOutcome>>();
UpdateProjectAsync(
request,
[prom](
const TagClient*,
const UpdateProjectRequest&,
UpdateProjectOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
TagClient::UpdateResourceTagValueOutcome TagClient::UpdateResourceTagValue(const UpdateResourceTagValueRequest &request)
{
auto outcome = MakeRequest(request, "UpdateResourceTagValue");
if (outcome.IsSuccess())
{
auto r = outcome.GetResult();
string payload = string(r.Body(), r.BodySize());
UpdateResourceTagValueResponse rsp = UpdateResourceTagValueResponse();
auto o = rsp.Deserialize(payload);
if (o.IsSuccess())
return UpdateResourceTagValueOutcome(rsp);
else
return UpdateResourceTagValueOutcome(o.GetError());
}
else
{
return UpdateResourceTagValueOutcome(outcome.GetError());
}
}
void TagClient::UpdateResourceTagValueAsync(const UpdateResourceTagValueRequest& request, const UpdateResourceTagValueAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context)
{
using Req = const UpdateResourceTagValueRequest&;
using Resp = UpdateResourceTagValueResponse;
DoRequestAsync<Req, Resp>(
"UpdateResourceTagValue", request, {{{"Content-Type", "application/json"}}},
[this, context, handler](Req req, Outcome<Core::Error, Resp> resp)
{
handler(this, req, std::move(resp), context);
});
}
TagClient::UpdateResourceTagValueOutcomeCallable TagClient::UpdateResourceTagValueCallable(const UpdateResourceTagValueRequest &request)
{
const auto prom = std::make_shared<std::promise<UpdateResourceTagValueOutcome>>();
UpdateResourceTagValueAsync(
request,
[prom](
const TagClient*,
const UpdateResourceTagValueRequest&,
UpdateResourceTagValueOutcome resp,
const std::shared_ptr<const AsyncCallerContext>&
)
{
prom->set_value(resp);
});
return prom->get_future();
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tencentcloud/tencentcloud-sdk-cpp.git
git@gitee.com:tencentcloud/tencentcloud-sdk-cpp.git
tencentcloud
tencentcloud-sdk-cpp
tencentcloud-sdk-cpp
master

搜索帮助