1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/core/utils/Outcome.h>
7 #include <aws/core/auth/AWSAuthSigner.h>
8 #include <aws/core/client/CoreErrors.h>
9 #include <aws/core/client/RetryStrategy.h>
10 #include <aws/core/http/HttpClient.h>
11 #include <aws/core/http/HttpResponse.h>
12 #include <aws/core/http/HttpClientFactory.h>
13 #include <aws/core/auth/AWSCredentialsProviderChain.h>
14 #include <aws/core/utils/json/JsonSerializer.h>
15 #include <aws/core/utils/memory/stl/AWSStringStream.h>
16 #include <aws/core/utils/threading/Executor.h>
17 #include <aws/core/utils/DNS.h>
18 #include <aws/core/utils/logging/LogMacros.h>
19 
20 #include <aws/customer-profiles/CustomerProfilesClient.h>
21 #include <aws/customer-profiles/CustomerProfilesEndpoint.h>
22 #include <aws/customer-profiles/CustomerProfilesErrorMarshaller.h>
23 #include <aws/customer-profiles/model/AddProfileKeyRequest.h>
24 #include <aws/customer-profiles/model/CreateDomainRequest.h>
25 #include <aws/customer-profiles/model/CreateProfileRequest.h>
26 #include <aws/customer-profiles/model/DeleteDomainRequest.h>
27 #include <aws/customer-profiles/model/DeleteIntegrationRequest.h>
28 #include <aws/customer-profiles/model/DeleteProfileRequest.h>
29 #include <aws/customer-profiles/model/DeleteProfileKeyRequest.h>
30 #include <aws/customer-profiles/model/DeleteProfileObjectRequest.h>
31 #include <aws/customer-profiles/model/DeleteProfileObjectTypeRequest.h>
32 #include <aws/customer-profiles/model/GetDomainRequest.h>
33 #include <aws/customer-profiles/model/GetIntegrationRequest.h>
34 #include <aws/customer-profiles/model/GetMatchesRequest.h>
35 #include <aws/customer-profiles/model/GetProfileObjectTypeRequest.h>
36 #include <aws/customer-profiles/model/GetProfileObjectTypeTemplateRequest.h>
37 #include <aws/customer-profiles/model/ListAccountIntegrationsRequest.h>
38 #include <aws/customer-profiles/model/ListDomainsRequest.h>
39 #include <aws/customer-profiles/model/ListIntegrationsRequest.h>
40 #include <aws/customer-profiles/model/ListProfileObjectTypeTemplatesRequest.h>
41 #include <aws/customer-profiles/model/ListProfileObjectTypesRequest.h>
42 #include <aws/customer-profiles/model/ListProfileObjectsRequest.h>
43 #include <aws/customer-profiles/model/ListTagsForResourceRequest.h>
44 #include <aws/customer-profiles/model/MergeProfilesRequest.h>
45 #include <aws/customer-profiles/model/PutIntegrationRequest.h>
46 #include <aws/customer-profiles/model/PutProfileObjectRequest.h>
47 #include <aws/customer-profiles/model/PutProfileObjectTypeRequest.h>
48 #include <aws/customer-profiles/model/SearchProfilesRequest.h>
49 #include <aws/customer-profiles/model/TagResourceRequest.h>
50 #include <aws/customer-profiles/model/UntagResourceRequest.h>
51 #include <aws/customer-profiles/model/UpdateDomainRequest.h>
52 #include <aws/customer-profiles/model/UpdateProfileRequest.h>
53 
54 using namespace Aws;
55 using namespace Aws::Auth;
56 using namespace Aws::Client;
57 using namespace Aws::CustomerProfiles;
58 using namespace Aws::CustomerProfiles::Model;
59 using namespace Aws::Http;
60 using namespace Aws::Utils::Json;
61 
62 static const char* SERVICE_NAME = "profile";
63 static const char* ALLOCATION_TAG = "CustomerProfilesClient";
64 
65 
CustomerProfilesClient(const Client::ClientConfiguration & clientConfiguration)66 CustomerProfilesClient::CustomerProfilesClient(const Client::ClientConfiguration& clientConfiguration) :
67   BASECLASS(clientConfiguration,
68     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
69         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
70     Aws::MakeShared<CustomerProfilesErrorMarshaller>(ALLOCATION_TAG)),
71     m_executor(clientConfiguration.executor)
72 {
73   init(clientConfiguration);
74 }
75 
CustomerProfilesClient(const AWSCredentials & credentials,const Client::ClientConfiguration & clientConfiguration)76 CustomerProfilesClient::CustomerProfilesClient(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration) :
77   BASECLASS(clientConfiguration,
78     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
79          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
80     Aws::MakeShared<CustomerProfilesErrorMarshaller>(ALLOCATION_TAG)),
81     m_executor(clientConfiguration.executor)
82 {
83   init(clientConfiguration);
84 }
85 
CustomerProfilesClient(const std::shared_ptr<AWSCredentialsProvider> & credentialsProvider,const Client::ClientConfiguration & clientConfiguration)86 CustomerProfilesClient::CustomerProfilesClient(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
87   const Client::ClientConfiguration& clientConfiguration) :
88   BASECLASS(clientConfiguration,
89     Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
90          SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
91     Aws::MakeShared<CustomerProfilesErrorMarshaller>(ALLOCATION_TAG)),
92     m_executor(clientConfiguration.executor)
93 {
94   init(clientConfiguration);
95 }
96 
~CustomerProfilesClient()97 CustomerProfilesClient::~CustomerProfilesClient()
98 {
99 }
100 
init(const Client::ClientConfiguration & config)101 void CustomerProfilesClient::init(const Client::ClientConfiguration& config)
102 {
103   SetServiceClientName("Customer Profiles");
104   m_configScheme = SchemeMapper::ToString(config.scheme);
105   if (config.endpointOverride.empty())
106   {
107       m_uri = m_configScheme + "://" + CustomerProfilesEndpoint::ForRegion(config.region, config.useDualStack);
108   }
109   else
110   {
111       OverrideEndpoint(config.endpointOverride);
112   }
113 }
114 
OverrideEndpoint(const Aws::String & endpoint)115 void CustomerProfilesClient::OverrideEndpoint(const Aws::String& endpoint)
116 {
117   if (endpoint.compare(0, 7, "http://") == 0 || endpoint.compare(0, 8, "https://") == 0)
118   {
119       m_uri = endpoint;
120   }
121   else
122   {
123       m_uri = m_configScheme + "://" + endpoint;
124   }
125 }
126 
AddProfileKey(const AddProfileKeyRequest & request) const127 AddProfileKeyOutcome CustomerProfilesClient::AddProfileKey(const AddProfileKeyRequest& request) const
128 {
129   if (!request.DomainNameHasBeenSet())
130   {
131     AWS_LOGSTREAM_ERROR("AddProfileKey", "Required field: DomainName, is not set");
132     return AddProfileKeyOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
133   }
134   Aws::Http::URI uri = m_uri;
135   uri.AddPathSegments("/domains/");
136   uri.AddPathSegment(request.GetDomainName());
137   uri.AddPathSegments("/profiles/keys");
138   return AddProfileKeyOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
139 }
140 
AddProfileKeyCallable(const AddProfileKeyRequest & request) const141 AddProfileKeyOutcomeCallable CustomerProfilesClient::AddProfileKeyCallable(const AddProfileKeyRequest& request) const
142 {
143   auto task = Aws::MakeShared< std::packaged_task< AddProfileKeyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->AddProfileKey(request); } );
144   auto packagedFunction = [task]() { (*task)(); };
145   m_executor->Submit(packagedFunction);
146   return task->get_future();
147 }
148 
AddProfileKeyAsync(const AddProfileKeyRequest & request,const AddProfileKeyResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const149 void CustomerProfilesClient::AddProfileKeyAsync(const AddProfileKeyRequest& request, const AddProfileKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
150 {
151   m_executor->Submit( [this, request, handler, context](){ this->AddProfileKeyAsyncHelper( request, handler, context ); } );
152 }
153 
AddProfileKeyAsyncHelper(const AddProfileKeyRequest & request,const AddProfileKeyResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const154 void CustomerProfilesClient::AddProfileKeyAsyncHelper(const AddProfileKeyRequest& request, const AddProfileKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
155 {
156   handler(this, request, AddProfileKey(request), context);
157 }
158 
CreateDomain(const CreateDomainRequest & request) const159 CreateDomainOutcome CustomerProfilesClient::CreateDomain(const CreateDomainRequest& request) const
160 {
161   if (!request.DomainNameHasBeenSet())
162   {
163     AWS_LOGSTREAM_ERROR("CreateDomain", "Required field: DomainName, is not set");
164     return CreateDomainOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
165   }
166   Aws::Http::URI uri = m_uri;
167   uri.AddPathSegments("/domains/");
168   uri.AddPathSegment(request.GetDomainName());
169   return CreateDomainOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
170 }
171 
CreateDomainCallable(const CreateDomainRequest & request) const172 CreateDomainOutcomeCallable CustomerProfilesClient::CreateDomainCallable(const CreateDomainRequest& request) const
173 {
174   auto task = Aws::MakeShared< std::packaged_task< CreateDomainOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateDomain(request); } );
175   auto packagedFunction = [task]() { (*task)(); };
176   m_executor->Submit(packagedFunction);
177   return task->get_future();
178 }
179 
CreateDomainAsync(const CreateDomainRequest & request,const CreateDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const180 void CustomerProfilesClient::CreateDomainAsync(const CreateDomainRequest& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
181 {
182   m_executor->Submit( [this, request, handler, context](){ this->CreateDomainAsyncHelper( request, handler, context ); } );
183 }
184 
CreateDomainAsyncHelper(const CreateDomainRequest & request,const CreateDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const185 void CustomerProfilesClient::CreateDomainAsyncHelper(const CreateDomainRequest& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
186 {
187   handler(this, request, CreateDomain(request), context);
188 }
189 
CreateProfile(const CreateProfileRequest & request) const190 CreateProfileOutcome CustomerProfilesClient::CreateProfile(const CreateProfileRequest& request) const
191 {
192   if (!request.DomainNameHasBeenSet())
193   {
194     AWS_LOGSTREAM_ERROR("CreateProfile", "Required field: DomainName, is not set");
195     return CreateProfileOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
196   }
197   Aws::Http::URI uri = m_uri;
198   uri.AddPathSegments("/domains/");
199   uri.AddPathSegment(request.GetDomainName());
200   uri.AddPathSegments("/profiles");
201   return CreateProfileOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
202 }
203 
CreateProfileCallable(const CreateProfileRequest & request) const204 CreateProfileOutcomeCallable CustomerProfilesClient::CreateProfileCallable(const CreateProfileRequest& request) const
205 {
206   auto task = Aws::MakeShared< std::packaged_task< CreateProfileOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateProfile(request); } );
207   auto packagedFunction = [task]() { (*task)(); };
208   m_executor->Submit(packagedFunction);
209   return task->get_future();
210 }
211 
CreateProfileAsync(const CreateProfileRequest & request,const CreateProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const212 void CustomerProfilesClient::CreateProfileAsync(const CreateProfileRequest& request, const CreateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
213 {
214   m_executor->Submit( [this, request, handler, context](){ this->CreateProfileAsyncHelper( request, handler, context ); } );
215 }
216 
CreateProfileAsyncHelper(const CreateProfileRequest & request,const CreateProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const217 void CustomerProfilesClient::CreateProfileAsyncHelper(const CreateProfileRequest& request, const CreateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
218 {
219   handler(this, request, CreateProfile(request), context);
220 }
221 
DeleteDomain(const DeleteDomainRequest & request) const222 DeleteDomainOutcome CustomerProfilesClient::DeleteDomain(const DeleteDomainRequest& request) const
223 {
224   if (!request.DomainNameHasBeenSet())
225   {
226     AWS_LOGSTREAM_ERROR("DeleteDomain", "Required field: DomainName, is not set");
227     return DeleteDomainOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
228   }
229   Aws::Http::URI uri = m_uri;
230   uri.AddPathSegments("/domains/");
231   uri.AddPathSegment(request.GetDomainName());
232   return DeleteDomainOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
233 }
234 
DeleteDomainCallable(const DeleteDomainRequest & request) const235 DeleteDomainOutcomeCallable CustomerProfilesClient::DeleteDomainCallable(const DeleteDomainRequest& request) const
236 {
237   auto task = Aws::MakeShared< std::packaged_task< DeleteDomainOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteDomain(request); } );
238   auto packagedFunction = [task]() { (*task)(); };
239   m_executor->Submit(packagedFunction);
240   return task->get_future();
241 }
242 
DeleteDomainAsync(const DeleteDomainRequest & request,const DeleteDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const243 void CustomerProfilesClient::DeleteDomainAsync(const DeleteDomainRequest& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
244 {
245   m_executor->Submit( [this, request, handler, context](){ this->DeleteDomainAsyncHelper( request, handler, context ); } );
246 }
247 
DeleteDomainAsyncHelper(const DeleteDomainRequest & request,const DeleteDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const248 void CustomerProfilesClient::DeleteDomainAsyncHelper(const DeleteDomainRequest& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
249 {
250   handler(this, request, DeleteDomain(request), context);
251 }
252 
DeleteIntegration(const DeleteIntegrationRequest & request) const253 DeleteIntegrationOutcome CustomerProfilesClient::DeleteIntegration(const DeleteIntegrationRequest& request) const
254 {
255   if (!request.DomainNameHasBeenSet())
256   {
257     AWS_LOGSTREAM_ERROR("DeleteIntegration", "Required field: DomainName, is not set");
258     return DeleteIntegrationOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
259   }
260   Aws::Http::URI uri = m_uri;
261   uri.AddPathSegments("/domains/");
262   uri.AddPathSegment(request.GetDomainName());
263   uri.AddPathSegments("/integrations/delete");
264   return DeleteIntegrationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
265 }
266 
DeleteIntegrationCallable(const DeleteIntegrationRequest & request) const267 DeleteIntegrationOutcomeCallable CustomerProfilesClient::DeleteIntegrationCallable(const DeleteIntegrationRequest& request) const
268 {
269   auto task = Aws::MakeShared< std::packaged_task< DeleteIntegrationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteIntegration(request); } );
270   auto packagedFunction = [task]() { (*task)(); };
271   m_executor->Submit(packagedFunction);
272   return task->get_future();
273 }
274 
DeleteIntegrationAsync(const DeleteIntegrationRequest & request,const DeleteIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const275 void CustomerProfilesClient::DeleteIntegrationAsync(const DeleteIntegrationRequest& request, const DeleteIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
276 {
277   m_executor->Submit( [this, request, handler, context](){ this->DeleteIntegrationAsyncHelper( request, handler, context ); } );
278 }
279 
DeleteIntegrationAsyncHelper(const DeleteIntegrationRequest & request,const DeleteIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const280 void CustomerProfilesClient::DeleteIntegrationAsyncHelper(const DeleteIntegrationRequest& request, const DeleteIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
281 {
282   handler(this, request, DeleteIntegration(request), context);
283 }
284 
DeleteProfile(const DeleteProfileRequest & request) const285 DeleteProfileOutcome CustomerProfilesClient::DeleteProfile(const DeleteProfileRequest& request) const
286 {
287   if (!request.DomainNameHasBeenSet())
288   {
289     AWS_LOGSTREAM_ERROR("DeleteProfile", "Required field: DomainName, is not set");
290     return DeleteProfileOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
291   }
292   Aws::Http::URI uri = m_uri;
293   uri.AddPathSegments("/domains/");
294   uri.AddPathSegment(request.GetDomainName());
295   uri.AddPathSegments("/profiles/delete");
296   return DeleteProfileOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
297 }
298 
DeleteProfileCallable(const DeleteProfileRequest & request) const299 DeleteProfileOutcomeCallable CustomerProfilesClient::DeleteProfileCallable(const DeleteProfileRequest& request) const
300 {
301   auto task = Aws::MakeShared< std::packaged_task< DeleteProfileOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteProfile(request); } );
302   auto packagedFunction = [task]() { (*task)(); };
303   m_executor->Submit(packagedFunction);
304   return task->get_future();
305 }
306 
DeleteProfileAsync(const DeleteProfileRequest & request,const DeleteProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const307 void CustomerProfilesClient::DeleteProfileAsync(const DeleteProfileRequest& request, const DeleteProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
308 {
309   m_executor->Submit( [this, request, handler, context](){ this->DeleteProfileAsyncHelper( request, handler, context ); } );
310 }
311 
DeleteProfileAsyncHelper(const DeleteProfileRequest & request,const DeleteProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const312 void CustomerProfilesClient::DeleteProfileAsyncHelper(const DeleteProfileRequest& request, const DeleteProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
313 {
314   handler(this, request, DeleteProfile(request), context);
315 }
316 
DeleteProfileKey(const DeleteProfileKeyRequest & request) const317 DeleteProfileKeyOutcome CustomerProfilesClient::DeleteProfileKey(const DeleteProfileKeyRequest& request) const
318 {
319   if (!request.DomainNameHasBeenSet())
320   {
321     AWS_LOGSTREAM_ERROR("DeleteProfileKey", "Required field: DomainName, is not set");
322     return DeleteProfileKeyOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
323   }
324   Aws::Http::URI uri = m_uri;
325   uri.AddPathSegments("/domains/");
326   uri.AddPathSegment(request.GetDomainName());
327   uri.AddPathSegments("/profiles/keys/delete");
328   return DeleteProfileKeyOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
329 }
330 
DeleteProfileKeyCallable(const DeleteProfileKeyRequest & request) const331 DeleteProfileKeyOutcomeCallable CustomerProfilesClient::DeleteProfileKeyCallable(const DeleteProfileKeyRequest& request) const
332 {
333   auto task = Aws::MakeShared< std::packaged_task< DeleteProfileKeyOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteProfileKey(request); } );
334   auto packagedFunction = [task]() { (*task)(); };
335   m_executor->Submit(packagedFunction);
336   return task->get_future();
337 }
338 
DeleteProfileKeyAsync(const DeleteProfileKeyRequest & request,const DeleteProfileKeyResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const339 void CustomerProfilesClient::DeleteProfileKeyAsync(const DeleteProfileKeyRequest& request, const DeleteProfileKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
340 {
341   m_executor->Submit( [this, request, handler, context](){ this->DeleteProfileKeyAsyncHelper( request, handler, context ); } );
342 }
343 
DeleteProfileKeyAsyncHelper(const DeleteProfileKeyRequest & request,const DeleteProfileKeyResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const344 void CustomerProfilesClient::DeleteProfileKeyAsyncHelper(const DeleteProfileKeyRequest& request, const DeleteProfileKeyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
345 {
346   handler(this, request, DeleteProfileKey(request), context);
347 }
348 
DeleteProfileObject(const DeleteProfileObjectRequest & request) const349 DeleteProfileObjectOutcome CustomerProfilesClient::DeleteProfileObject(const DeleteProfileObjectRequest& request) const
350 {
351   if (!request.DomainNameHasBeenSet())
352   {
353     AWS_LOGSTREAM_ERROR("DeleteProfileObject", "Required field: DomainName, is not set");
354     return DeleteProfileObjectOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
355   }
356   Aws::Http::URI uri = m_uri;
357   uri.AddPathSegments("/domains/");
358   uri.AddPathSegment(request.GetDomainName());
359   uri.AddPathSegments("/profiles/objects/delete");
360   return DeleteProfileObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
361 }
362 
DeleteProfileObjectCallable(const DeleteProfileObjectRequest & request) const363 DeleteProfileObjectOutcomeCallable CustomerProfilesClient::DeleteProfileObjectCallable(const DeleteProfileObjectRequest& request) const
364 {
365   auto task = Aws::MakeShared< std::packaged_task< DeleteProfileObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteProfileObject(request); } );
366   auto packagedFunction = [task]() { (*task)(); };
367   m_executor->Submit(packagedFunction);
368   return task->get_future();
369 }
370 
DeleteProfileObjectAsync(const DeleteProfileObjectRequest & request,const DeleteProfileObjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const371 void CustomerProfilesClient::DeleteProfileObjectAsync(const DeleteProfileObjectRequest& request, const DeleteProfileObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
372 {
373   m_executor->Submit( [this, request, handler, context](){ this->DeleteProfileObjectAsyncHelper( request, handler, context ); } );
374 }
375 
DeleteProfileObjectAsyncHelper(const DeleteProfileObjectRequest & request,const DeleteProfileObjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const376 void CustomerProfilesClient::DeleteProfileObjectAsyncHelper(const DeleteProfileObjectRequest& request, const DeleteProfileObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
377 {
378   handler(this, request, DeleteProfileObject(request), context);
379 }
380 
DeleteProfileObjectType(const DeleteProfileObjectTypeRequest & request) const381 DeleteProfileObjectTypeOutcome CustomerProfilesClient::DeleteProfileObjectType(const DeleteProfileObjectTypeRequest& request) const
382 {
383   if (!request.DomainNameHasBeenSet())
384   {
385     AWS_LOGSTREAM_ERROR("DeleteProfileObjectType", "Required field: DomainName, is not set");
386     return DeleteProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
387   }
388   if (!request.ObjectTypeNameHasBeenSet())
389   {
390     AWS_LOGSTREAM_ERROR("DeleteProfileObjectType", "Required field: ObjectTypeName, is not set");
391     return DeleteProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ObjectTypeName]", false));
392   }
393   Aws::Http::URI uri = m_uri;
394   uri.AddPathSegments("/domains/");
395   uri.AddPathSegment(request.GetDomainName());
396   uri.AddPathSegments("/object-types/");
397   uri.AddPathSegment(request.GetObjectTypeName());
398   return DeleteProfileObjectTypeOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
399 }
400 
DeleteProfileObjectTypeCallable(const DeleteProfileObjectTypeRequest & request) const401 DeleteProfileObjectTypeOutcomeCallable CustomerProfilesClient::DeleteProfileObjectTypeCallable(const DeleteProfileObjectTypeRequest& request) const
402 {
403   auto task = Aws::MakeShared< std::packaged_task< DeleteProfileObjectTypeOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteProfileObjectType(request); } );
404   auto packagedFunction = [task]() { (*task)(); };
405   m_executor->Submit(packagedFunction);
406   return task->get_future();
407 }
408 
DeleteProfileObjectTypeAsync(const DeleteProfileObjectTypeRequest & request,const DeleteProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const409 void CustomerProfilesClient::DeleteProfileObjectTypeAsync(const DeleteProfileObjectTypeRequest& request, const DeleteProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
410 {
411   m_executor->Submit( [this, request, handler, context](){ this->DeleteProfileObjectTypeAsyncHelper( request, handler, context ); } );
412 }
413 
DeleteProfileObjectTypeAsyncHelper(const DeleteProfileObjectTypeRequest & request,const DeleteProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const414 void CustomerProfilesClient::DeleteProfileObjectTypeAsyncHelper(const DeleteProfileObjectTypeRequest& request, const DeleteProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
415 {
416   handler(this, request, DeleteProfileObjectType(request), context);
417 }
418 
GetDomain(const GetDomainRequest & request) const419 GetDomainOutcome CustomerProfilesClient::GetDomain(const GetDomainRequest& request) const
420 {
421   if (!request.DomainNameHasBeenSet())
422   {
423     AWS_LOGSTREAM_ERROR("GetDomain", "Required field: DomainName, is not set");
424     return GetDomainOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
425   }
426   Aws::Http::URI uri = m_uri;
427   uri.AddPathSegments("/domains/");
428   uri.AddPathSegment(request.GetDomainName());
429   return GetDomainOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
430 }
431 
GetDomainCallable(const GetDomainRequest & request) const432 GetDomainOutcomeCallable CustomerProfilesClient::GetDomainCallable(const GetDomainRequest& request) const
433 {
434   auto task = Aws::MakeShared< std::packaged_task< GetDomainOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetDomain(request); } );
435   auto packagedFunction = [task]() { (*task)(); };
436   m_executor->Submit(packagedFunction);
437   return task->get_future();
438 }
439 
GetDomainAsync(const GetDomainRequest & request,const GetDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const440 void CustomerProfilesClient::GetDomainAsync(const GetDomainRequest& request, const GetDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
441 {
442   m_executor->Submit( [this, request, handler, context](){ this->GetDomainAsyncHelper( request, handler, context ); } );
443 }
444 
GetDomainAsyncHelper(const GetDomainRequest & request,const GetDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const445 void CustomerProfilesClient::GetDomainAsyncHelper(const GetDomainRequest& request, const GetDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
446 {
447   handler(this, request, GetDomain(request), context);
448 }
449 
GetIntegration(const GetIntegrationRequest & request) const450 GetIntegrationOutcome CustomerProfilesClient::GetIntegration(const GetIntegrationRequest& request) const
451 {
452   if (!request.DomainNameHasBeenSet())
453   {
454     AWS_LOGSTREAM_ERROR("GetIntegration", "Required field: DomainName, is not set");
455     return GetIntegrationOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
456   }
457   Aws::Http::URI uri = m_uri;
458   uri.AddPathSegments("/domains/");
459   uri.AddPathSegment(request.GetDomainName());
460   uri.AddPathSegments("/integrations");
461   return GetIntegrationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
462 }
463 
GetIntegrationCallable(const GetIntegrationRequest & request) const464 GetIntegrationOutcomeCallable CustomerProfilesClient::GetIntegrationCallable(const GetIntegrationRequest& request) const
465 {
466   auto task = Aws::MakeShared< std::packaged_task< GetIntegrationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetIntegration(request); } );
467   auto packagedFunction = [task]() { (*task)(); };
468   m_executor->Submit(packagedFunction);
469   return task->get_future();
470 }
471 
GetIntegrationAsync(const GetIntegrationRequest & request,const GetIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const472 void CustomerProfilesClient::GetIntegrationAsync(const GetIntegrationRequest& request, const GetIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
473 {
474   m_executor->Submit( [this, request, handler, context](){ this->GetIntegrationAsyncHelper( request, handler, context ); } );
475 }
476 
GetIntegrationAsyncHelper(const GetIntegrationRequest & request,const GetIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const477 void CustomerProfilesClient::GetIntegrationAsyncHelper(const GetIntegrationRequest& request, const GetIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
478 {
479   handler(this, request, GetIntegration(request), context);
480 }
481 
GetMatches(const GetMatchesRequest & request) const482 GetMatchesOutcome CustomerProfilesClient::GetMatches(const GetMatchesRequest& request) const
483 {
484   if (!request.DomainNameHasBeenSet())
485   {
486     AWS_LOGSTREAM_ERROR("GetMatches", "Required field: DomainName, is not set");
487     return GetMatchesOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
488   }
489   Aws::Http::URI uri = m_uri;
490   uri.AddPathSegments("/domains/");
491   uri.AddPathSegment(request.GetDomainName());
492   uri.AddPathSegments("/matches");
493   return GetMatchesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
494 }
495 
GetMatchesCallable(const GetMatchesRequest & request) const496 GetMatchesOutcomeCallable CustomerProfilesClient::GetMatchesCallable(const GetMatchesRequest& request) const
497 {
498   auto task = Aws::MakeShared< std::packaged_task< GetMatchesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetMatches(request); } );
499   auto packagedFunction = [task]() { (*task)(); };
500   m_executor->Submit(packagedFunction);
501   return task->get_future();
502 }
503 
GetMatchesAsync(const GetMatchesRequest & request,const GetMatchesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const504 void CustomerProfilesClient::GetMatchesAsync(const GetMatchesRequest& request, const GetMatchesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
505 {
506   m_executor->Submit( [this, request, handler, context](){ this->GetMatchesAsyncHelper( request, handler, context ); } );
507 }
508 
GetMatchesAsyncHelper(const GetMatchesRequest & request,const GetMatchesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const509 void CustomerProfilesClient::GetMatchesAsyncHelper(const GetMatchesRequest& request, const GetMatchesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
510 {
511   handler(this, request, GetMatches(request), context);
512 }
513 
GetProfileObjectType(const GetProfileObjectTypeRequest & request) const514 GetProfileObjectTypeOutcome CustomerProfilesClient::GetProfileObjectType(const GetProfileObjectTypeRequest& request) const
515 {
516   if (!request.DomainNameHasBeenSet())
517   {
518     AWS_LOGSTREAM_ERROR("GetProfileObjectType", "Required field: DomainName, is not set");
519     return GetProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
520   }
521   if (!request.ObjectTypeNameHasBeenSet())
522   {
523     AWS_LOGSTREAM_ERROR("GetProfileObjectType", "Required field: ObjectTypeName, is not set");
524     return GetProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ObjectTypeName]", false));
525   }
526   Aws::Http::URI uri = m_uri;
527   uri.AddPathSegments("/domains/");
528   uri.AddPathSegment(request.GetDomainName());
529   uri.AddPathSegments("/object-types/");
530   uri.AddPathSegment(request.GetObjectTypeName());
531   return GetProfileObjectTypeOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
532 }
533 
GetProfileObjectTypeCallable(const GetProfileObjectTypeRequest & request) const534 GetProfileObjectTypeOutcomeCallable CustomerProfilesClient::GetProfileObjectTypeCallable(const GetProfileObjectTypeRequest& request) const
535 {
536   auto task = Aws::MakeShared< std::packaged_task< GetProfileObjectTypeOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetProfileObjectType(request); } );
537   auto packagedFunction = [task]() { (*task)(); };
538   m_executor->Submit(packagedFunction);
539   return task->get_future();
540 }
541 
GetProfileObjectTypeAsync(const GetProfileObjectTypeRequest & request,const GetProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const542 void CustomerProfilesClient::GetProfileObjectTypeAsync(const GetProfileObjectTypeRequest& request, const GetProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
543 {
544   m_executor->Submit( [this, request, handler, context](){ this->GetProfileObjectTypeAsyncHelper( request, handler, context ); } );
545 }
546 
GetProfileObjectTypeAsyncHelper(const GetProfileObjectTypeRequest & request,const GetProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const547 void CustomerProfilesClient::GetProfileObjectTypeAsyncHelper(const GetProfileObjectTypeRequest& request, const GetProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
548 {
549   handler(this, request, GetProfileObjectType(request), context);
550 }
551 
GetProfileObjectTypeTemplate(const GetProfileObjectTypeTemplateRequest & request) const552 GetProfileObjectTypeTemplateOutcome CustomerProfilesClient::GetProfileObjectTypeTemplate(const GetProfileObjectTypeTemplateRequest& request) const
553 {
554   if (!request.TemplateIdHasBeenSet())
555   {
556     AWS_LOGSTREAM_ERROR("GetProfileObjectTypeTemplate", "Required field: TemplateId, is not set");
557     return GetProfileObjectTypeTemplateOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TemplateId]", false));
558   }
559   Aws::Http::URI uri = m_uri;
560   uri.AddPathSegments("/templates/");
561   uri.AddPathSegment(request.GetTemplateId());
562   return GetProfileObjectTypeTemplateOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
563 }
564 
GetProfileObjectTypeTemplateCallable(const GetProfileObjectTypeTemplateRequest & request) const565 GetProfileObjectTypeTemplateOutcomeCallable CustomerProfilesClient::GetProfileObjectTypeTemplateCallable(const GetProfileObjectTypeTemplateRequest& request) const
566 {
567   auto task = Aws::MakeShared< std::packaged_task< GetProfileObjectTypeTemplateOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->GetProfileObjectTypeTemplate(request); } );
568   auto packagedFunction = [task]() { (*task)(); };
569   m_executor->Submit(packagedFunction);
570   return task->get_future();
571 }
572 
GetProfileObjectTypeTemplateAsync(const GetProfileObjectTypeTemplateRequest & request,const GetProfileObjectTypeTemplateResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const573 void CustomerProfilesClient::GetProfileObjectTypeTemplateAsync(const GetProfileObjectTypeTemplateRequest& request, const GetProfileObjectTypeTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
574 {
575   m_executor->Submit( [this, request, handler, context](){ this->GetProfileObjectTypeTemplateAsyncHelper( request, handler, context ); } );
576 }
577 
GetProfileObjectTypeTemplateAsyncHelper(const GetProfileObjectTypeTemplateRequest & request,const GetProfileObjectTypeTemplateResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const578 void CustomerProfilesClient::GetProfileObjectTypeTemplateAsyncHelper(const GetProfileObjectTypeTemplateRequest& request, const GetProfileObjectTypeTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
579 {
580   handler(this, request, GetProfileObjectTypeTemplate(request), context);
581 }
582 
ListAccountIntegrations(const ListAccountIntegrationsRequest & request) const583 ListAccountIntegrationsOutcome CustomerProfilesClient::ListAccountIntegrations(const ListAccountIntegrationsRequest& request) const
584 {
585   Aws::Http::URI uri = m_uri;
586   uri.AddPathSegments("/integrations");
587   return ListAccountIntegrationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
588 }
589 
ListAccountIntegrationsCallable(const ListAccountIntegrationsRequest & request) const590 ListAccountIntegrationsOutcomeCallable CustomerProfilesClient::ListAccountIntegrationsCallable(const ListAccountIntegrationsRequest& request) const
591 {
592   auto task = Aws::MakeShared< std::packaged_task< ListAccountIntegrationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListAccountIntegrations(request); } );
593   auto packagedFunction = [task]() { (*task)(); };
594   m_executor->Submit(packagedFunction);
595   return task->get_future();
596 }
597 
ListAccountIntegrationsAsync(const ListAccountIntegrationsRequest & request,const ListAccountIntegrationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const598 void CustomerProfilesClient::ListAccountIntegrationsAsync(const ListAccountIntegrationsRequest& request, const ListAccountIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
599 {
600   m_executor->Submit( [this, request, handler, context](){ this->ListAccountIntegrationsAsyncHelper( request, handler, context ); } );
601 }
602 
ListAccountIntegrationsAsyncHelper(const ListAccountIntegrationsRequest & request,const ListAccountIntegrationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const603 void CustomerProfilesClient::ListAccountIntegrationsAsyncHelper(const ListAccountIntegrationsRequest& request, const ListAccountIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
604 {
605   handler(this, request, ListAccountIntegrations(request), context);
606 }
607 
ListDomains(const ListDomainsRequest & request) const608 ListDomainsOutcome CustomerProfilesClient::ListDomains(const ListDomainsRequest& request) const
609 {
610   Aws::Http::URI uri = m_uri;
611   uri.AddPathSegments("/domains");
612   return ListDomainsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
613 }
614 
ListDomainsCallable(const ListDomainsRequest & request) const615 ListDomainsOutcomeCallable CustomerProfilesClient::ListDomainsCallable(const ListDomainsRequest& request) const
616 {
617   auto task = Aws::MakeShared< std::packaged_task< ListDomainsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListDomains(request); } );
618   auto packagedFunction = [task]() { (*task)(); };
619   m_executor->Submit(packagedFunction);
620   return task->get_future();
621 }
622 
ListDomainsAsync(const ListDomainsRequest & request,const ListDomainsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const623 void CustomerProfilesClient::ListDomainsAsync(const ListDomainsRequest& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
624 {
625   m_executor->Submit( [this, request, handler, context](){ this->ListDomainsAsyncHelper( request, handler, context ); } );
626 }
627 
ListDomainsAsyncHelper(const ListDomainsRequest & request,const ListDomainsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const628 void CustomerProfilesClient::ListDomainsAsyncHelper(const ListDomainsRequest& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
629 {
630   handler(this, request, ListDomains(request), context);
631 }
632 
ListIntegrations(const ListIntegrationsRequest & request) const633 ListIntegrationsOutcome CustomerProfilesClient::ListIntegrations(const ListIntegrationsRequest& request) const
634 {
635   if (!request.DomainNameHasBeenSet())
636   {
637     AWS_LOGSTREAM_ERROR("ListIntegrations", "Required field: DomainName, is not set");
638     return ListIntegrationsOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
639   }
640   Aws::Http::URI uri = m_uri;
641   uri.AddPathSegments("/domains/");
642   uri.AddPathSegment(request.GetDomainName());
643   uri.AddPathSegments("/integrations");
644   return ListIntegrationsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
645 }
646 
ListIntegrationsCallable(const ListIntegrationsRequest & request) const647 ListIntegrationsOutcomeCallable CustomerProfilesClient::ListIntegrationsCallable(const ListIntegrationsRequest& request) const
648 {
649   auto task = Aws::MakeShared< std::packaged_task< ListIntegrationsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListIntegrations(request); } );
650   auto packagedFunction = [task]() { (*task)(); };
651   m_executor->Submit(packagedFunction);
652   return task->get_future();
653 }
654 
ListIntegrationsAsync(const ListIntegrationsRequest & request,const ListIntegrationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const655 void CustomerProfilesClient::ListIntegrationsAsync(const ListIntegrationsRequest& request, const ListIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
656 {
657   m_executor->Submit( [this, request, handler, context](){ this->ListIntegrationsAsyncHelper( request, handler, context ); } );
658 }
659 
ListIntegrationsAsyncHelper(const ListIntegrationsRequest & request,const ListIntegrationsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const660 void CustomerProfilesClient::ListIntegrationsAsyncHelper(const ListIntegrationsRequest& request, const ListIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
661 {
662   handler(this, request, ListIntegrations(request), context);
663 }
664 
ListProfileObjectTypeTemplates(const ListProfileObjectTypeTemplatesRequest & request) const665 ListProfileObjectTypeTemplatesOutcome CustomerProfilesClient::ListProfileObjectTypeTemplates(const ListProfileObjectTypeTemplatesRequest& request) const
666 {
667   Aws::Http::URI uri = m_uri;
668   uri.AddPathSegments("/templates");
669   return ListProfileObjectTypeTemplatesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
670 }
671 
ListProfileObjectTypeTemplatesCallable(const ListProfileObjectTypeTemplatesRequest & request) const672 ListProfileObjectTypeTemplatesOutcomeCallable CustomerProfilesClient::ListProfileObjectTypeTemplatesCallable(const ListProfileObjectTypeTemplatesRequest& request) const
673 {
674   auto task = Aws::MakeShared< std::packaged_task< ListProfileObjectTypeTemplatesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListProfileObjectTypeTemplates(request); } );
675   auto packagedFunction = [task]() { (*task)(); };
676   m_executor->Submit(packagedFunction);
677   return task->get_future();
678 }
679 
ListProfileObjectTypeTemplatesAsync(const ListProfileObjectTypeTemplatesRequest & request,const ListProfileObjectTypeTemplatesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const680 void CustomerProfilesClient::ListProfileObjectTypeTemplatesAsync(const ListProfileObjectTypeTemplatesRequest& request, const ListProfileObjectTypeTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
681 {
682   m_executor->Submit( [this, request, handler, context](){ this->ListProfileObjectTypeTemplatesAsyncHelper( request, handler, context ); } );
683 }
684 
ListProfileObjectTypeTemplatesAsyncHelper(const ListProfileObjectTypeTemplatesRequest & request,const ListProfileObjectTypeTemplatesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const685 void CustomerProfilesClient::ListProfileObjectTypeTemplatesAsyncHelper(const ListProfileObjectTypeTemplatesRequest& request, const ListProfileObjectTypeTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
686 {
687   handler(this, request, ListProfileObjectTypeTemplates(request), context);
688 }
689 
ListProfileObjectTypes(const ListProfileObjectTypesRequest & request) const690 ListProfileObjectTypesOutcome CustomerProfilesClient::ListProfileObjectTypes(const ListProfileObjectTypesRequest& request) const
691 {
692   if (!request.DomainNameHasBeenSet())
693   {
694     AWS_LOGSTREAM_ERROR("ListProfileObjectTypes", "Required field: DomainName, is not set");
695     return ListProfileObjectTypesOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
696   }
697   Aws::Http::URI uri = m_uri;
698   uri.AddPathSegments("/domains/");
699   uri.AddPathSegment(request.GetDomainName());
700   uri.AddPathSegments("/object-types");
701   return ListProfileObjectTypesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
702 }
703 
ListProfileObjectTypesCallable(const ListProfileObjectTypesRequest & request) const704 ListProfileObjectTypesOutcomeCallable CustomerProfilesClient::ListProfileObjectTypesCallable(const ListProfileObjectTypesRequest& request) const
705 {
706   auto task = Aws::MakeShared< std::packaged_task< ListProfileObjectTypesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListProfileObjectTypes(request); } );
707   auto packagedFunction = [task]() { (*task)(); };
708   m_executor->Submit(packagedFunction);
709   return task->get_future();
710 }
711 
ListProfileObjectTypesAsync(const ListProfileObjectTypesRequest & request,const ListProfileObjectTypesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const712 void CustomerProfilesClient::ListProfileObjectTypesAsync(const ListProfileObjectTypesRequest& request, const ListProfileObjectTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
713 {
714   m_executor->Submit( [this, request, handler, context](){ this->ListProfileObjectTypesAsyncHelper( request, handler, context ); } );
715 }
716 
ListProfileObjectTypesAsyncHelper(const ListProfileObjectTypesRequest & request,const ListProfileObjectTypesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const717 void CustomerProfilesClient::ListProfileObjectTypesAsyncHelper(const ListProfileObjectTypesRequest& request, const ListProfileObjectTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
718 {
719   handler(this, request, ListProfileObjectTypes(request), context);
720 }
721 
ListProfileObjects(const ListProfileObjectsRequest & request) const722 ListProfileObjectsOutcome CustomerProfilesClient::ListProfileObjects(const ListProfileObjectsRequest& request) const
723 {
724   if (!request.DomainNameHasBeenSet())
725   {
726     AWS_LOGSTREAM_ERROR("ListProfileObjects", "Required field: DomainName, is not set");
727     return ListProfileObjectsOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
728   }
729   Aws::Http::URI uri = m_uri;
730   uri.AddPathSegments("/domains/");
731   uri.AddPathSegment(request.GetDomainName());
732   uri.AddPathSegments("/profiles/objects");
733   return ListProfileObjectsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
734 }
735 
ListProfileObjectsCallable(const ListProfileObjectsRequest & request) const736 ListProfileObjectsOutcomeCallable CustomerProfilesClient::ListProfileObjectsCallable(const ListProfileObjectsRequest& request) const
737 {
738   auto task = Aws::MakeShared< std::packaged_task< ListProfileObjectsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListProfileObjects(request); } );
739   auto packagedFunction = [task]() { (*task)(); };
740   m_executor->Submit(packagedFunction);
741   return task->get_future();
742 }
743 
ListProfileObjectsAsync(const ListProfileObjectsRequest & request,const ListProfileObjectsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const744 void CustomerProfilesClient::ListProfileObjectsAsync(const ListProfileObjectsRequest& request, const ListProfileObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
745 {
746   m_executor->Submit( [this, request, handler, context](){ this->ListProfileObjectsAsyncHelper( request, handler, context ); } );
747 }
748 
ListProfileObjectsAsyncHelper(const ListProfileObjectsRequest & request,const ListProfileObjectsResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const749 void CustomerProfilesClient::ListProfileObjectsAsyncHelper(const ListProfileObjectsRequest& request, const ListProfileObjectsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
750 {
751   handler(this, request, ListProfileObjects(request), context);
752 }
753 
ListTagsForResource(const ListTagsForResourceRequest & request) const754 ListTagsForResourceOutcome CustomerProfilesClient::ListTagsForResource(const ListTagsForResourceRequest& request) const
755 {
756   if (!request.ResourceArnHasBeenSet())
757   {
758     AWS_LOGSTREAM_ERROR("ListTagsForResource", "Required field: ResourceArn, is not set");
759     return ListTagsForResourceOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
760   }
761   Aws::Http::URI uri = m_uri;
762   uri.AddPathSegments("/tags/");
763   uri.AddPathSegment(request.GetResourceArn());
764   return ListTagsForResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
765 }
766 
ListTagsForResourceCallable(const ListTagsForResourceRequest & request) const767 ListTagsForResourceOutcomeCallable CustomerProfilesClient::ListTagsForResourceCallable(const ListTagsForResourceRequest& request) const
768 {
769   auto task = Aws::MakeShared< std::packaged_task< ListTagsForResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListTagsForResource(request); } );
770   auto packagedFunction = [task]() { (*task)(); };
771   m_executor->Submit(packagedFunction);
772   return task->get_future();
773 }
774 
ListTagsForResourceAsync(const ListTagsForResourceRequest & request,const ListTagsForResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const775 void CustomerProfilesClient::ListTagsForResourceAsync(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
776 {
777   m_executor->Submit( [this, request, handler, context](){ this->ListTagsForResourceAsyncHelper( request, handler, context ); } );
778 }
779 
ListTagsForResourceAsyncHelper(const ListTagsForResourceRequest & request,const ListTagsForResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const780 void CustomerProfilesClient::ListTagsForResourceAsyncHelper(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
781 {
782   handler(this, request, ListTagsForResource(request), context);
783 }
784 
MergeProfiles(const MergeProfilesRequest & request) const785 MergeProfilesOutcome CustomerProfilesClient::MergeProfiles(const MergeProfilesRequest& request) const
786 {
787   if (!request.DomainNameHasBeenSet())
788   {
789     AWS_LOGSTREAM_ERROR("MergeProfiles", "Required field: DomainName, is not set");
790     return MergeProfilesOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
791   }
792   Aws::Http::URI uri = m_uri;
793   uri.AddPathSegments("/domains/");
794   uri.AddPathSegment(request.GetDomainName());
795   uri.AddPathSegments("/profiles/objects/merge");
796   return MergeProfilesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
797 }
798 
MergeProfilesCallable(const MergeProfilesRequest & request) const799 MergeProfilesOutcomeCallable CustomerProfilesClient::MergeProfilesCallable(const MergeProfilesRequest& request) const
800 {
801   auto task = Aws::MakeShared< std::packaged_task< MergeProfilesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->MergeProfiles(request); } );
802   auto packagedFunction = [task]() { (*task)(); };
803   m_executor->Submit(packagedFunction);
804   return task->get_future();
805 }
806 
MergeProfilesAsync(const MergeProfilesRequest & request,const MergeProfilesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const807 void CustomerProfilesClient::MergeProfilesAsync(const MergeProfilesRequest& request, const MergeProfilesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
808 {
809   m_executor->Submit( [this, request, handler, context](){ this->MergeProfilesAsyncHelper( request, handler, context ); } );
810 }
811 
MergeProfilesAsyncHelper(const MergeProfilesRequest & request,const MergeProfilesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const812 void CustomerProfilesClient::MergeProfilesAsyncHelper(const MergeProfilesRequest& request, const MergeProfilesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
813 {
814   handler(this, request, MergeProfiles(request), context);
815 }
816 
PutIntegration(const PutIntegrationRequest & request) const817 PutIntegrationOutcome CustomerProfilesClient::PutIntegration(const PutIntegrationRequest& request) const
818 {
819   if (!request.DomainNameHasBeenSet())
820   {
821     AWS_LOGSTREAM_ERROR("PutIntegration", "Required field: DomainName, is not set");
822     return PutIntegrationOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
823   }
824   Aws::Http::URI uri = m_uri;
825   uri.AddPathSegments("/domains/");
826   uri.AddPathSegment(request.GetDomainName());
827   uri.AddPathSegments("/integrations");
828   return PutIntegrationOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
829 }
830 
PutIntegrationCallable(const PutIntegrationRequest & request) const831 PutIntegrationOutcomeCallable CustomerProfilesClient::PutIntegrationCallable(const PutIntegrationRequest& request) const
832 {
833   auto task = Aws::MakeShared< std::packaged_task< PutIntegrationOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutIntegration(request); } );
834   auto packagedFunction = [task]() { (*task)(); };
835   m_executor->Submit(packagedFunction);
836   return task->get_future();
837 }
838 
PutIntegrationAsync(const PutIntegrationRequest & request,const PutIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const839 void CustomerProfilesClient::PutIntegrationAsync(const PutIntegrationRequest& request, const PutIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
840 {
841   m_executor->Submit( [this, request, handler, context](){ this->PutIntegrationAsyncHelper( request, handler, context ); } );
842 }
843 
PutIntegrationAsyncHelper(const PutIntegrationRequest & request,const PutIntegrationResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const844 void CustomerProfilesClient::PutIntegrationAsyncHelper(const PutIntegrationRequest& request, const PutIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
845 {
846   handler(this, request, PutIntegration(request), context);
847 }
848 
PutProfileObject(const PutProfileObjectRequest & request) const849 PutProfileObjectOutcome CustomerProfilesClient::PutProfileObject(const PutProfileObjectRequest& request) const
850 {
851   if (!request.DomainNameHasBeenSet())
852   {
853     AWS_LOGSTREAM_ERROR("PutProfileObject", "Required field: DomainName, is not set");
854     return PutProfileObjectOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
855   }
856   Aws::Http::URI uri = m_uri;
857   uri.AddPathSegments("/domains/");
858   uri.AddPathSegment(request.GetDomainName());
859   uri.AddPathSegments("/profiles/objects");
860   return PutProfileObjectOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
861 }
862 
PutProfileObjectCallable(const PutProfileObjectRequest & request) const863 PutProfileObjectOutcomeCallable CustomerProfilesClient::PutProfileObjectCallable(const PutProfileObjectRequest& request) const
864 {
865   auto task = Aws::MakeShared< std::packaged_task< PutProfileObjectOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutProfileObject(request); } );
866   auto packagedFunction = [task]() { (*task)(); };
867   m_executor->Submit(packagedFunction);
868   return task->get_future();
869 }
870 
PutProfileObjectAsync(const PutProfileObjectRequest & request,const PutProfileObjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const871 void CustomerProfilesClient::PutProfileObjectAsync(const PutProfileObjectRequest& request, const PutProfileObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
872 {
873   m_executor->Submit( [this, request, handler, context](){ this->PutProfileObjectAsyncHelper( request, handler, context ); } );
874 }
875 
PutProfileObjectAsyncHelper(const PutProfileObjectRequest & request,const PutProfileObjectResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const876 void CustomerProfilesClient::PutProfileObjectAsyncHelper(const PutProfileObjectRequest& request, const PutProfileObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
877 {
878   handler(this, request, PutProfileObject(request), context);
879 }
880 
PutProfileObjectType(const PutProfileObjectTypeRequest & request) const881 PutProfileObjectTypeOutcome CustomerProfilesClient::PutProfileObjectType(const PutProfileObjectTypeRequest& request) const
882 {
883   if (!request.DomainNameHasBeenSet())
884   {
885     AWS_LOGSTREAM_ERROR("PutProfileObjectType", "Required field: DomainName, is not set");
886     return PutProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
887   }
888   if (!request.ObjectTypeNameHasBeenSet())
889   {
890     AWS_LOGSTREAM_ERROR("PutProfileObjectType", "Required field: ObjectTypeName, is not set");
891     return PutProfileObjectTypeOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ObjectTypeName]", false));
892   }
893   Aws::Http::URI uri = m_uri;
894   uri.AddPathSegments("/domains/");
895   uri.AddPathSegment(request.GetDomainName());
896   uri.AddPathSegments("/object-types/");
897   uri.AddPathSegment(request.GetObjectTypeName());
898   return PutProfileObjectTypeOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
899 }
900 
PutProfileObjectTypeCallable(const PutProfileObjectTypeRequest & request) const901 PutProfileObjectTypeOutcomeCallable CustomerProfilesClient::PutProfileObjectTypeCallable(const PutProfileObjectTypeRequest& request) const
902 {
903   auto task = Aws::MakeShared< std::packaged_task< PutProfileObjectTypeOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->PutProfileObjectType(request); } );
904   auto packagedFunction = [task]() { (*task)(); };
905   m_executor->Submit(packagedFunction);
906   return task->get_future();
907 }
908 
PutProfileObjectTypeAsync(const PutProfileObjectTypeRequest & request,const PutProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const909 void CustomerProfilesClient::PutProfileObjectTypeAsync(const PutProfileObjectTypeRequest& request, const PutProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
910 {
911   m_executor->Submit( [this, request, handler, context](){ this->PutProfileObjectTypeAsyncHelper( request, handler, context ); } );
912 }
913 
PutProfileObjectTypeAsyncHelper(const PutProfileObjectTypeRequest & request,const PutProfileObjectTypeResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const914 void CustomerProfilesClient::PutProfileObjectTypeAsyncHelper(const PutProfileObjectTypeRequest& request, const PutProfileObjectTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
915 {
916   handler(this, request, PutProfileObjectType(request), context);
917 }
918 
SearchProfiles(const SearchProfilesRequest & request) const919 SearchProfilesOutcome CustomerProfilesClient::SearchProfiles(const SearchProfilesRequest& request) const
920 {
921   if (!request.DomainNameHasBeenSet())
922   {
923     AWS_LOGSTREAM_ERROR("SearchProfiles", "Required field: DomainName, is not set");
924     return SearchProfilesOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
925   }
926   Aws::Http::URI uri = m_uri;
927   uri.AddPathSegments("/domains/");
928   uri.AddPathSegment(request.GetDomainName());
929   uri.AddPathSegments("/profiles/search");
930   return SearchProfilesOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
931 }
932 
SearchProfilesCallable(const SearchProfilesRequest & request) const933 SearchProfilesOutcomeCallable CustomerProfilesClient::SearchProfilesCallable(const SearchProfilesRequest& request) const
934 {
935   auto task = Aws::MakeShared< std::packaged_task< SearchProfilesOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->SearchProfiles(request); } );
936   auto packagedFunction = [task]() { (*task)(); };
937   m_executor->Submit(packagedFunction);
938   return task->get_future();
939 }
940 
SearchProfilesAsync(const SearchProfilesRequest & request,const SearchProfilesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const941 void CustomerProfilesClient::SearchProfilesAsync(const SearchProfilesRequest& request, const SearchProfilesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
942 {
943   m_executor->Submit( [this, request, handler, context](){ this->SearchProfilesAsyncHelper( request, handler, context ); } );
944 }
945 
SearchProfilesAsyncHelper(const SearchProfilesRequest & request,const SearchProfilesResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const946 void CustomerProfilesClient::SearchProfilesAsyncHelper(const SearchProfilesRequest& request, const SearchProfilesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
947 {
948   handler(this, request, SearchProfiles(request), context);
949 }
950 
TagResource(const TagResourceRequest & request) const951 TagResourceOutcome CustomerProfilesClient::TagResource(const TagResourceRequest& request) const
952 {
953   if (!request.ResourceArnHasBeenSet())
954   {
955     AWS_LOGSTREAM_ERROR("TagResource", "Required field: ResourceArn, is not set");
956     return TagResourceOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
957   }
958   Aws::Http::URI uri = m_uri;
959   uri.AddPathSegments("/tags/");
960   uri.AddPathSegment(request.GetResourceArn());
961   return TagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
962 }
963 
TagResourceCallable(const TagResourceRequest & request) const964 TagResourceOutcomeCallable CustomerProfilesClient::TagResourceCallable(const TagResourceRequest& request) const
965 {
966   auto task = Aws::MakeShared< std::packaged_task< TagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->TagResource(request); } );
967   auto packagedFunction = [task]() { (*task)(); };
968   m_executor->Submit(packagedFunction);
969   return task->get_future();
970 }
971 
TagResourceAsync(const TagResourceRequest & request,const TagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const972 void CustomerProfilesClient::TagResourceAsync(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
973 {
974   m_executor->Submit( [this, request, handler, context](){ this->TagResourceAsyncHelper( request, handler, context ); } );
975 }
976 
TagResourceAsyncHelper(const TagResourceRequest & request,const TagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const977 void CustomerProfilesClient::TagResourceAsyncHelper(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
978 {
979   handler(this, request, TagResource(request), context);
980 }
981 
UntagResource(const UntagResourceRequest & request) const982 UntagResourceOutcome CustomerProfilesClient::UntagResource(const UntagResourceRequest& request) const
983 {
984   if (!request.ResourceArnHasBeenSet())
985   {
986     AWS_LOGSTREAM_ERROR("UntagResource", "Required field: ResourceArn, is not set");
987     return UntagResourceOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
988   }
989   if (!request.TagKeysHasBeenSet())
990   {
991     AWS_LOGSTREAM_ERROR("UntagResource", "Required field: TagKeys, is not set");
992     return UntagResourceOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TagKeys]", false));
993   }
994   Aws::Http::URI uri = m_uri;
995   uri.AddPathSegments("/tags/");
996   uri.AddPathSegment(request.GetResourceArn());
997   return UntagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
998 }
999 
UntagResourceCallable(const UntagResourceRequest & request) const1000 UntagResourceOutcomeCallable CustomerProfilesClient::UntagResourceCallable(const UntagResourceRequest& request) const
1001 {
1002   auto task = Aws::MakeShared< std::packaged_task< UntagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UntagResource(request); } );
1003   auto packagedFunction = [task]() { (*task)(); };
1004   m_executor->Submit(packagedFunction);
1005   return task->get_future();
1006 }
1007 
UntagResourceAsync(const UntagResourceRequest & request,const UntagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1008 void CustomerProfilesClient::UntagResourceAsync(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1009 {
1010   m_executor->Submit( [this, request, handler, context](){ this->UntagResourceAsyncHelper( request, handler, context ); } );
1011 }
1012 
UntagResourceAsyncHelper(const UntagResourceRequest & request,const UntagResourceResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1013 void CustomerProfilesClient::UntagResourceAsyncHelper(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1014 {
1015   handler(this, request, UntagResource(request), context);
1016 }
1017 
UpdateDomain(const UpdateDomainRequest & request) const1018 UpdateDomainOutcome CustomerProfilesClient::UpdateDomain(const UpdateDomainRequest& request) const
1019 {
1020   if (!request.DomainNameHasBeenSet())
1021   {
1022     AWS_LOGSTREAM_ERROR("UpdateDomain", "Required field: DomainName, is not set");
1023     return UpdateDomainOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
1024   }
1025   Aws::Http::URI uri = m_uri;
1026   uri.AddPathSegments("/domains/");
1027   uri.AddPathSegment(request.GetDomainName());
1028   return UpdateDomainOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
1029 }
1030 
UpdateDomainCallable(const UpdateDomainRequest & request) const1031 UpdateDomainOutcomeCallable CustomerProfilesClient::UpdateDomainCallable(const UpdateDomainRequest& request) const
1032 {
1033   auto task = Aws::MakeShared< std::packaged_task< UpdateDomainOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateDomain(request); } );
1034   auto packagedFunction = [task]() { (*task)(); };
1035   m_executor->Submit(packagedFunction);
1036   return task->get_future();
1037 }
1038 
UpdateDomainAsync(const UpdateDomainRequest & request,const UpdateDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1039 void CustomerProfilesClient::UpdateDomainAsync(const UpdateDomainRequest& request, const UpdateDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1040 {
1041   m_executor->Submit( [this, request, handler, context](){ this->UpdateDomainAsyncHelper( request, handler, context ); } );
1042 }
1043 
UpdateDomainAsyncHelper(const UpdateDomainRequest & request,const UpdateDomainResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1044 void CustomerProfilesClient::UpdateDomainAsyncHelper(const UpdateDomainRequest& request, const UpdateDomainResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1045 {
1046   handler(this, request, UpdateDomain(request), context);
1047 }
1048 
UpdateProfile(const UpdateProfileRequest & request) const1049 UpdateProfileOutcome CustomerProfilesClient::UpdateProfile(const UpdateProfileRequest& request) const
1050 {
1051   if (!request.DomainNameHasBeenSet())
1052   {
1053     AWS_LOGSTREAM_ERROR("UpdateProfile", "Required field: DomainName, is not set");
1054     return UpdateProfileOutcome(Aws::Client::AWSError<CustomerProfilesErrors>(CustomerProfilesErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [DomainName]", false));
1055   }
1056   Aws::Http::URI uri = m_uri;
1057   uri.AddPathSegments("/domains/");
1058   uri.AddPathSegment(request.GetDomainName());
1059   uri.AddPathSegments("/profiles");
1060   return UpdateProfileOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
1061 }
1062 
UpdateProfileCallable(const UpdateProfileRequest & request) const1063 UpdateProfileOutcomeCallable CustomerProfilesClient::UpdateProfileCallable(const UpdateProfileRequest& request) const
1064 {
1065   auto task = Aws::MakeShared< std::packaged_task< UpdateProfileOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateProfile(request); } );
1066   auto packagedFunction = [task]() { (*task)(); };
1067   m_executor->Submit(packagedFunction);
1068   return task->get_future();
1069 }
1070 
UpdateProfileAsync(const UpdateProfileRequest & request,const UpdateProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1071 void CustomerProfilesClient::UpdateProfileAsync(const UpdateProfileRequest& request, const UpdateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1072 {
1073   m_executor->Submit( [this, request, handler, context](){ this->UpdateProfileAsyncHelper( request, handler, context ); } );
1074 }
1075 
UpdateProfileAsyncHelper(const UpdateProfileRequest & request,const UpdateProfileResponseReceivedHandler & handler,const std::shared_ptr<const Aws::Client::AsyncCallerContext> & context) const1076 void CustomerProfilesClient::UpdateProfileAsyncHelper(const UpdateProfileRequest& request, const UpdateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
1077 {
1078   handler(this, request, UpdateProfile(request), context);
1079 }
1080 
1081