/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace AppIntegrationsService
{
/**
* The Amazon AppIntegrations service enables you to configure and reuse
* connections to external applications.
For information about how you can
* use external applications with Amazon Connect, see Set up
* pre-built integrations and Deliver
* information to agents using Amazon Connect Wisdom in the Amazon Connect
* Administrator Guide.
*/
class AWS_APPINTEGRATIONSSERVICE_API AppIntegrationsServiceClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef AppIntegrationsServiceClientConfiguration ClientConfigurationType;
typedef AppIntegrationsServiceEndpointProvider EndpointProviderType;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
AppIntegrationsServiceClient(const Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration& clientConfiguration = Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
AppIntegrationsServiceClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration& clientConfiguration = Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
AppIntegrationsServiceClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration& clientConfiguration = Aws::AppIntegrationsService::AppIntegrationsServiceClientConfiguration());
/* Legacy constructors due deprecation */
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
AppIntegrationsServiceClient(const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
AppIntegrationsServiceClient(const Aws::Auth::AWSCredentials& credentials,
const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
AppIntegrationsServiceClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~AppIntegrationsServiceClient();
/**
* Creates and persists a DataIntegration resource.
You cannot
* create a DataIntegration association for a DataIntegration that has been
* previously associated. Use a different DataIntegration, or recreate the
* DataIntegration using the CreateDataIntegration
API.
* See Also:
AWS
* API Reference
*/
virtual Model::CreateDataIntegrationOutcome CreateDataIntegration(const Model::CreateDataIntegrationRequest& request) const;
/**
* A Callable wrapper for CreateDataIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateDataIntegrationOutcomeCallable CreateDataIntegrationCallable(const CreateDataIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::CreateDataIntegration, request);
}
/**
* An Async wrapper for CreateDataIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateDataIntegrationAsync(const CreateDataIntegrationRequestT& request, const CreateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::CreateDataIntegration, request, handler, context);
}
/**
* Creates an EventIntegration, given a specified name, description, and a
* reference to an Amazon EventBridge bus in your account and a partner event
* source that pushes events to that bus. No objects are created in the your
* account, only metadata that is persisted on the EventIntegration control
* plane.
See Also:
AWS
* API Reference
*/
virtual Model::CreateEventIntegrationOutcome CreateEventIntegration(const Model::CreateEventIntegrationRequest& request) const;
/**
* A Callable wrapper for CreateEventIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateEventIntegrationOutcomeCallable CreateEventIntegrationCallable(const CreateEventIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::CreateEventIntegration, request);
}
/**
* An Async wrapper for CreateEventIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateEventIntegrationAsync(const CreateEventIntegrationRequestT& request, const CreateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::CreateEventIntegration, request, handler, context);
}
/**
* Deletes the DataIntegration. Only DataIntegrations that don't have any
* DataIntegrationAssociations can be deleted. Deleting a DataIntegration also
* deletes the underlying Amazon AppFlow flow and service linked role.
* You cannot create a DataIntegration association for a DataIntegration that
* has been previously associated. Use a different DataIntegration, or recreate the
* DataIntegration using the CreateDataIntegration
* API.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteDataIntegrationOutcome DeleteDataIntegration(const Model::DeleteDataIntegrationRequest& request) const;
/**
* A Callable wrapper for DeleteDataIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteDataIntegrationOutcomeCallable DeleteDataIntegrationCallable(const DeleteDataIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::DeleteDataIntegration, request);
}
/**
* An Async wrapper for DeleteDataIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteDataIntegrationAsync(const DeleteDataIntegrationRequestT& request, const DeleteDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::DeleteDataIntegration, request, handler, context);
}
/**
* Deletes the specified existing event integration. If the event integration is
* associated with clients, the request is rejected.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteEventIntegrationOutcome DeleteEventIntegration(const Model::DeleteEventIntegrationRequest& request) const;
/**
* A Callable wrapper for DeleteEventIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteEventIntegrationOutcomeCallable DeleteEventIntegrationCallable(const DeleteEventIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::DeleteEventIntegration, request);
}
/**
* An Async wrapper for DeleteEventIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteEventIntegrationAsync(const DeleteEventIntegrationRequestT& request, const DeleteEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::DeleteEventIntegration, request, handler, context);
}
/**
* Returns information about the DataIntegration.
You cannot
* create a DataIntegration association for a DataIntegration that has been
* previously associated. Use a different DataIntegration, or recreate the
* DataIntegration using the CreateDataIntegration
* API.
See Also:
AWS
* API Reference
*/
virtual Model::GetDataIntegrationOutcome GetDataIntegration(const Model::GetDataIntegrationRequest& request) const;
/**
* A Callable wrapper for GetDataIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetDataIntegrationOutcomeCallable GetDataIntegrationCallable(const GetDataIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::GetDataIntegration, request);
}
/**
* An Async wrapper for GetDataIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetDataIntegrationAsync(const GetDataIntegrationRequestT& request, const GetDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::GetDataIntegration, request, handler, context);
}
/**
* Returns information about the event integration.
See Also:
* AWS
* API Reference
*/
virtual Model::GetEventIntegrationOutcome GetEventIntegration(const Model::GetEventIntegrationRequest& request) const;
/**
* A Callable wrapper for GetEventIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetEventIntegrationOutcomeCallable GetEventIntegrationCallable(const GetEventIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::GetEventIntegration, request);
}
/**
* An Async wrapper for GetEventIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetEventIntegrationAsync(const GetEventIntegrationRequestT& request, const GetEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::GetEventIntegration, request, handler, context);
}
/**
* Returns a paginated list of DataIntegration associations in the account.
* You cannot create a DataIntegration association for a DataIntegration
* that has been previously associated. Use a different DataIntegration, or
* recreate the DataIntegration using the CreateDataIntegration
* API.
See Also:
AWS
* API Reference
*/
virtual Model::ListDataIntegrationAssociationsOutcome ListDataIntegrationAssociations(const Model::ListDataIntegrationAssociationsRequest& request) const;
/**
* A Callable wrapper for ListDataIntegrationAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListDataIntegrationAssociationsOutcomeCallable ListDataIntegrationAssociationsCallable(const ListDataIntegrationAssociationsRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::ListDataIntegrationAssociations, request);
}
/**
* An Async wrapper for ListDataIntegrationAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListDataIntegrationAssociationsAsync(const ListDataIntegrationAssociationsRequestT& request, const ListDataIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::ListDataIntegrationAssociations, request, handler, context);
}
/**
* Returns a paginated list of DataIntegrations in the account.
* You cannot create a DataIntegration association for a DataIntegration that
* has been previously associated. Use a different DataIntegration, or recreate the
* DataIntegration using the CreateDataIntegration
* API.
See Also:
AWS
* API Reference
*/
virtual Model::ListDataIntegrationsOutcome ListDataIntegrations(const Model::ListDataIntegrationsRequest& request) const;
/**
* A Callable wrapper for ListDataIntegrations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListDataIntegrationsOutcomeCallable ListDataIntegrationsCallable(const ListDataIntegrationsRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::ListDataIntegrations, request);
}
/**
* An Async wrapper for ListDataIntegrations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListDataIntegrationsAsync(const ListDataIntegrationsRequestT& request, const ListDataIntegrationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::ListDataIntegrations, request, handler, context);
}
/**
* Returns a paginated list of event integration associations in the account.
*
See Also:
AWS
* API Reference
*/
virtual Model::ListEventIntegrationAssociationsOutcome ListEventIntegrationAssociations(const Model::ListEventIntegrationAssociationsRequest& request) const;
/**
* A Callable wrapper for ListEventIntegrationAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListEventIntegrationAssociationsOutcomeCallable ListEventIntegrationAssociationsCallable(const ListEventIntegrationAssociationsRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::ListEventIntegrationAssociations, request);
}
/**
* An Async wrapper for ListEventIntegrationAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListEventIntegrationAssociationsAsync(const ListEventIntegrationAssociationsRequestT& request, const ListEventIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::ListEventIntegrationAssociations, request, handler, context);
}
/**
* Returns a paginated list of event integrations in the account.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListEventIntegrationsOutcome ListEventIntegrations(const Model::ListEventIntegrationsRequest& request) const;
/**
* A Callable wrapper for ListEventIntegrations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListEventIntegrationsOutcomeCallable ListEventIntegrationsCallable(const ListEventIntegrationsRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::ListEventIntegrations, request);
}
/**
* An Async wrapper for ListEventIntegrations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListEventIntegrationsAsync(const ListEventIntegrationsRequestT& request, const ListEventIntegrationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::ListEventIntegrations, request, handler, context);
}
/**
* Lists the tags for the specified resource.
See Also:
AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::ListTagsForResource, request);
}
/**
* An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::ListTagsForResource, request, handler, context);
}
/**
* Adds the specified tags to the specified resource.
See Also:
* AWS
* API Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::TagResource, request);
}
/**
* An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::TagResource, request, handler, context);
}
/**
* Removes the specified tags from the specified resource.
See
* Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::UntagResource, request);
}
/**
* An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::UntagResource, request, handler, context);
}
/**
* Updates the description of a DataIntegration.
You cannot create
* a DataIntegration association for a DataIntegration that has been previously
* associated. Use a different DataIntegration, or recreate the DataIntegration
* using the CreateDataIntegration
* API.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateDataIntegrationOutcome UpdateDataIntegration(const Model::UpdateDataIntegrationRequest& request) const;
/**
* A Callable wrapper for UpdateDataIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateDataIntegrationOutcomeCallable UpdateDataIntegrationCallable(const UpdateDataIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::UpdateDataIntegration, request);
}
/**
* An Async wrapper for UpdateDataIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateDataIntegrationAsync(const UpdateDataIntegrationRequestT& request, const UpdateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::UpdateDataIntegration, request, handler, context);
}
/**
* Updates the description of an event integration.
See Also:
* AWS
* API Reference
*/
virtual Model::UpdateEventIntegrationOutcome UpdateEventIntegration(const Model::UpdateEventIntegrationRequest& request) const;
/**
* A Callable wrapper for UpdateEventIntegration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateEventIntegrationOutcomeCallable UpdateEventIntegrationCallable(const UpdateEventIntegrationRequestT& request) const
{
return SubmitCallable(&AppIntegrationsServiceClient::UpdateEventIntegration, request);
}
/**
* An Async wrapper for UpdateEventIntegration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateEventIntegrationAsync(const UpdateEventIntegrationRequestT& request, const UpdateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AppIntegrationsServiceClient::UpdateEventIntegration, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const AppIntegrationsServiceClientConfiguration& clientConfiguration);
AppIntegrationsServiceClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace AppIntegrationsService
} // namespace Aws