/** * 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