/**
* 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 Pipes
{
/**
* Amazon EventBridge Pipes connects event sources to targets. Pipes reduces the
* need for specialized knowledge and integration code when developing event driven
* architectures. This helps ensures consistency across your company’s
* applications. With Pipes, the target can be any available EventBridge target. To
* set up a pipe, you select the event source, add optional event filtering, define
* optional enrichment, and select the target for the event data.
*/
class AWS_PIPES_API PipesClient : 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 PipesClientConfiguration ClientConfigurationType;
typedef PipesEndpointProvider 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.
*/
PipesClient(const Aws::Pipes::PipesClientConfiguration& clientConfiguration = Aws::Pipes::PipesClientConfiguration(),
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.
*/
PipesClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Pipes::PipesClientConfiguration& clientConfiguration = Aws::Pipes::PipesClientConfiguration());
/**
* 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
*/
PipesClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Pipes::PipesClientConfiguration& clientConfiguration = Aws::Pipes::PipesClientConfiguration());
/* 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.
*/
PipesClient(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.
*/
PipesClient(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
*/
PipesClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~PipesClient();
/**
* Create a pipe. Amazon EventBridge Pipes connect event sources to targets and
* reduces the need for specialized knowledge and integration code.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreatePipeOutcome CreatePipe(const Model::CreatePipeRequest& request) const;
/**
* A Callable wrapper for CreatePipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePipeOutcomeCallable CreatePipeCallable(const CreatePipeRequestT& request) const
{
return SubmitCallable(&PipesClient::CreatePipe, request);
}
/**
* An Async wrapper for CreatePipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePipeAsync(const CreatePipeRequestT& request, const CreatePipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::CreatePipe, request, handler, context);
}
/**
* Delete an existing pipe. For more information about pipes, see Amazon
* EventBridge Pipes in the Amazon EventBridge User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeletePipeOutcome DeletePipe(const Model::DeletePipeRequest& request) const;
/**
* A Callable wrapper for DeletePipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePipeOutcomeCallable DeletePipeCallable(const DeletePipeRequestT& request) const
{
return SubmitCallable(&PipesClient::DeletePipe, request);
}
/**
* An Async wrapper for DeletePipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePipeAsync(const DeletePipeRequestT& request, const DeletePipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::DeletePipe, request, handler, context);
}
/**
* Get the information about an existing pipe. For more information about pipes,
* see Amazon
* EventBridge Pipes in the Amazon EventBridge User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribePipeOutcome DescribePipe(const Model::DescribePipeRequest& request) const;
/**
* A Callable wrapper for DescribePipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribePipeOutcomeCallable DescribePipeCallable(const DescribePipeRequestT& request) const
{
return SubmitCallable(&PipesClient::DescribePipe, request);
}
/**
* An Async wrapper for DescribePipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribePipeAsync(const DescribePipeRequestT& request, const DescribePipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::DescribePipe, request, handler, context);
}
/**
* Get the pipes associated with this account. For more information about pipes,
* see Amazon
* EventBridge Pipes in the Amazon EventBridge User Guide.
See
* Also:
AWS API
* Reference
*/
virtual Model::ListPipesOutcome ListPipes(const Model::ListPipesRequest& request) const;
/**
* A Callable wrapper for ListPipes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPipesOutcomeCallable ListPipesCallable(const ListPipesRequestT& request) const
{
return SubmitCallable(&PipesClient::ListPipes, request);
}
/**
* An Async wrapper for ListPipes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPipesAsync(const ListPipesRequestT& request, const ListPipesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::ListPipes, request, handler, context);
}
/**
* Displays the tags associated with a pipe.
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(&PipesClient::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(&PipesClient::ListTagsForResource, request, handler, context);
}
/**
* Start an existing pipe.
See Also:
AWS API
* Reference
*/
virtual Model::StartPipeOutcome StartPipe(const Model::StartPipeRequest& request) const;
/**
* A Callable wrapper for StartPipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartPipeOutcomeCallable StartPipeCallable(const StartPipeRequestT& request) const
{
return SubmitCallable(&PipesClient::StartPipe, request);
}
/**
* An Async wrapper for StartPipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartPipeAsync(const StartPipeRequestT& request, const StartPipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::StartPipe, request, handler, context);
}
/**
* Stop an existing pipe.
See Also:
AWS API
* Reference
*/
virtual Model::StopPipeOutcome StopPipe(const Model::StopPipeRequest& request) const;
/**
* A Callable wrapper for StopPipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StopPipeOutcomeCallable StopPipeCallable(const StopPipeRequestT& request) const
{
return SubmitCallable(&PipesClient::StopPipe, request);
}
/**
* An Async wrapper for StopPipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StopPipeAsync(const StopPipeRequestT& request, const StopPipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::StopPipe, request, handler, context);
}
/**
* Assigns one or more tags (key-value pairs) to the specified pipe. Tags can
* help you organize and categorize your resources. You can also use them to scope
* user permissions by granting a user permission to access or change only
* resources with certain tag values.
Tags don't have any semantic meaning
* to Amazon Web Services and are interpreted strictly as strings of
* characters.
You can use the TagResource
action with a pipe
* that already has tags. If you specify a new tag key, this tag is appended to the
* list of tags associated with the pipe. If you specify a tag key that is already
* associated with the pipe, the new tag value that you specify replaces the
* previous value for that tag.
You can associate as many as 50 tags with a
* pipe.
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(&PipesClient::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(&PipesClient::TagResource, request, handler, context);
}
/**
* Removes one or more tags from the specified pipes.
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(&PipesClient::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(&PipesClient::UntagResource, request, handler, context);
}
/**
* Update an existing pipe. When you call UpdatePipe
, only the
* fields that are included in the request are changed, the rest are unchanged. The
* exception to this is if you modify any Amazon Web Services-service specific
* fields in the SourceParameters
, EnrichmentParameters
,
* or TargetParameters
objects. The fields in these objects are
* updated atomically as one and override existing values. This is by design and
* means that if you don't specify an optional field in one of these Parameters
* objects, that field will be set to its system-default value after the
* update.
For more information about pipes, see
* Amazon EventBridge Pipes in the Amazon EventBridge User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::UpdatePipeOutcome UpdatePipe(const Model::UpdatePipeRequest& request) const;
/**
* A Callable wrapper for UpdatePipe that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdatePipeOutcomeCallable UpdatePipeCallable(const UpdatePipeRequestT& request) const
{
return SubmitCallable(&PipesClient::UpdatePipe, request);
}
/**
* An Async wrapper for UpdatePipe that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdatePipeAsync(const UpdatePipeRequestT& request, const UpdatePipeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&PipesClient::UpdatePipe, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const PipesClientConfiguration& clientConfiguration);
PipesClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace Pipes
} // namespace Aws