/**
* 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 DataPipeline
{
/**
* AWS Data Pipeline configures and manages a data-driven workflow called a
* pipeline. AWS Data Pipeline handles the details of scheduling and ensuring that
* data dependencies are met so that your application can focus on processing the
* data.
AWS Data Pipeline provides a JAR implementation of a task runner
* called AWS Data Pipeline Task Runner. AWS Data Pipeline Task Runner provides
* logic for common data management scenarios, such as performing database queries
* and running data analysis using Amazon Elastic MapReduce (Amazon EMR). You can
* use AWS Data Pipeline Task Runner as your task runner, or you can write your own
* task runner to provide custom data management.
AWS Data Pipeline
* implements two main sets of functionality. Use the first set to create a
* pipeline and define data sources, schedules, dependencies, and the transforms to
* be performed on the data. Use the second set in your task runner application to
* receive the next task ready for processing. The logic for performing the task,
* such as querying the data, running data analysis, or converting the data from
* one format to another, is contained within the task runner. The task runner
* performs the task assigned to it by the web service, reporting progress to the
* web service as it does so. When the task is done, the task runner reports the
* final success or failure of the task to the web service.
*/
class AWS_DATAPIPELINE_API DataPipelineClient : 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 DataPipelineClientConfiguration ClientConfigurationType;
typedef DataPipelineEndpointProvider 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.
*/
DataPipelineClient(const Aws::DataPipeline::DataPipelineClientConfiguration& clientConfiguration = Aws::DataPipeline::DataPipelineClientConfiguration(),
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.
*/
DataPipelineClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::DataPipeline::DataPipelineClientConfiguration& clientConfiguration = Aws::DataPipeline::DataPipelineClientConfiguration());
/**
* 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
*/
DataPipelineClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::DataPipeline::DataPipelineClientConfiguration& clientConfiguration = Aws::DataPipeline::DataPipelineClientConfiguration());
/* 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.
*/
DataPipelineClient(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.
*/
DataPipelineClient(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
*/
DataPipelineClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~DataPipelineClient();
/**
* Validates the specified pipeline and starts processing pipeline tasks. If the
* pipeline does not pass validation, activation fails.
If you need to pause
* the pipeline to investigate an issue with a component, such as a data source or
* script, call DeactivatePipeline.
To activate a finished pipeline,
* modify the end date for the pipeline and then activate it.
See
* Also:
AWS
* API Reference
*/
virtual Model::ActivatePipelineOutcome ActivatePipeline(const Model::ActivatePipelineRequest& request) const;
/**
* A Callable wrapper for ActivatePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ActivatePipelineOutcomeCallable ActivatePipelineCallable(const ActivatePipelineRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::ActivatePipeline, request);
}
/**
* An Async wrapper for ActivatePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ActivatePipelineAsync(const ActivatePipelineRequestT& request, const ActivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::ActivatePipeline, request, handler, context);
}
/**
* Adds or modifies tags for the specified pipeline.
See Also:
* AWS
* API Reference
*/
virtual Model::AddTagsOutcome AddTags(const Model::AddTagsRequest& request) const;
/**
* A Callable wrapper for AddTags that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AddTagsOutcomeCallable AddTagsCallable(const AddTagsRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::AddTags, request);
}
/**
* An Async wrapper for AddTags that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AddTagsAsync(const AddTagsRequestT& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::AddTags, request, handler, context);
}
/**
* Creates a new, empty pipeline. Use PutPipelineDefinition to populate
* the pipeline.
See Also:
AWS
* API Reference
*/
virtual Model::CreatePipelineOutcome CreatePipeline(const Model::CreatePipelineRequest& request) const;
/**
* A Callable wrapper for CreatePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePipelineOutcomeCallable CreatePipelineCallable(const CreatePipelineRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::CreatePipeline, request);
}
/**
* An Async wrapper for CreatePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePipelineAsync(const CreatePipelineRequestT& request, const CreatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::CreatePipeline, request, handler, context);
}
/**
* Deactivates the specified running pipeline. The pipeline is set to the
* DEACTIVATING
state until the deactivation process completes.
* To resume a deactivated pipeline, use ActivatePipeline. By default,
* the pipeline resumes from the last completed execution. Optionally, you can
* specify the date and time to resume the pipeline.
See Also:
AWS
* API Reference
*/
virtual Model::DeactivatePipelineOutcome DeactivatePipeline(const Model::DeactivatePipelineRequest& request) const;
/**
* A Callable wrapper for DeactivatePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeactivatePipelineOutcomeCallable DeactivatePipelineCallable(const DeactivatePipelineRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::DeactivatePipeline, request);
}
/**
* An Async wrapper for DeactivatePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeactivatePipelineAsync(const DeactivatePipelineRequestT& request, const DeactivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::DeactivatePipeline, request, handler, context);
}
/**
* Deletes a pipeline, its pipeline definition, and its run history. AWS Data
* Pipeline attempts to cancel instances associated with the pipeline that are
* currently being processed by task runners.
Deleting a pipeline cannot be
* undone. You cannot query or restore a deleted pipeline. To temporarily pause a
* pipeline instead of deleting it, call SetStatus with the status set to
* PAUSE
on individual components. Components that are paused by
* SetStatus can be resumed.
See Also:
AWS
* API Reference
*/
virtual Model::DeletePipelineOutcome DeletePipeline(const Model::DeletePipelineRequest& request) const;
/**
* A Callable wrapper for DeletePipeline that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePipelineOutcomeCallable DeletePipelineCallable(const DeletePipelineRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::DeletePipeline, request);
}
/**
* An Async wrapper for DeletePipeline that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePipelineAsync(const DeletePipelineRequestT& request, const DeletePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::DeletePipeline, request, handler, context);
}
/**
* Gets the object definitions for a set of objects associated with the
* pipeline. Object definitions are composed of a set of fields that define the
* properties of the object.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeObjectsOutcome DescribeObjects(const Model::DescribeObjectsRequest& request) const;
/**
* A Callable wrapper for DescribeObjects that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeObjectsOutcomeCallable DescribeObjectsCallable(const DescribeObjectsRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::DescribeObjects, request);
}
/**
* An Async wrapper for DescribeObjects that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeObjectsAsync(const DescribeObjectsRequestT& request, const DescribeObjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::DescribeObjects, request, handler, context);
}
/**
* Retrieves metadata about one or more pipelines. The information retrieved
* includes the name of the pipeline, the pipeline identifier, its current state,
* and the user account that owns the pipeline. Using account credentials, you can
* retrieve metadata about pipelines that you or your IAM users have created. If
* you are using an IAM user account, you can retrieve metadata about only those
* pipelines for which you have read permissions.
To retrieve the full
* pipeline definition instead of metadata about the pipeline, call
* GetPipelineDefinition.
See Also:
AWS
* API Reference
*/
virtual Model::DescribePipelinesOutcome DescribePipelines(const Model::DescribePipelinesRequest& request) const;
/**
* A Callable wrapper for DescribePipelines that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribePipelinesOutcomeCallable DescribePipelinesCallable(const DescribePipelinesRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::DescribePipelines, request);
}
/**
* An Async wrapper for DescribePipelines that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribePipelinesAsync(const DescribePipelinesRequestT& request, const DescribePipelinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::DescribePipelines, request, handler, context);
}
/**
* Task runners call EvaluateExpression
to evaluate a string in the
* context of the specified object. For example, a task runner can evaluate SQL
* queries stored in Amazon S3.
See Also:
AWS
* API Reference
*/
virtual Model::EvaluateExpressionOutcome EvaluateExpression(const Model::EvaluateExpressionRequest& request) const;
/**
* A Callable wrapper for EvaluateExpression that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::EvaluateExpressionOutcomeCallable EvaluateExpressionCallable(const EvaluateExpressionRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::EvaluateExpression, request);
}
/**
* An Async wrapper for EvaluateExpression that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void EvaluateExpressionAsync(const EvaluateExpressionRequestT& request, const EvaluateExpressionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::EvaluateExpression, request, handler, context);
}
/**
* Gets the definition of the specified pipeline. You can call
* GetPipelineDefinition
to retrieve the pipeline definition that you
* provided using PutPipelineDefinition.
See Also:
AWS
* API Reference
*/
virtual Model::GetPipelineDefinitionOutcome GetPipelineDefinition(const Model::GetPipelineDefinitionRequest& request) const;
/**
* A Callable wrapper for GetPipelineDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetPipelineDefinitionOutcomeCallable GetPipelineDefinitionCallable(const GetPipelineDefinitionRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::GetPipelineDefinition, request);
}
/**
* An Async wrapper for GetPipelineDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetPipelineDefinitionAsync(const GetPipelineDefinitionRequestT& request, const GetPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::GetPipelineDefinition, request, handler, context);
}
/**
* Lists the pipeline identifiers for all active pipelines that you have
* permission to access.
See Also:
AWS
* API Reference
*/
virtual Model::ListPipelinesOutcome ListPipelines(const Model::ListPipelinesRequest& request) const;
/**
* A Callable wrapper for ListPipelines that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPipelinesOutcomeCallable ListPipelinesCallable(const ListPipelinesRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::ListPipelines, request);
}
/**
* An Async wrapper for ListPipelines that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPipelinesAsync(const ListPipelinesRequestT& request, const ListPipelinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::ListPipelines, request, handler, context);
}
/**
* Task runners call PollForTask
to receive a task to perform from
* AWS Data Pipeline. The task runner specifies which tasks it can perform by
* setting a value for the workerGroup
parameter. The task returned
* can come from any of the pipelines that match the workerGroup
value
* passed in by the task runner and that was launched using the IAM user
* credentials specified by the task runner.
If tasks are ready in the work
* queue, PollForTask
returns a response immediately. If no tasks are
* available in the queue, PollForTask
uses long-polling and holds on
* to a poll connection for up to a 90 seconds, during which time the first newly
* scheduled task is handed to the task runner. To accomodate this, set the socket
* timeout in your task runner to 90 seconds. The task runner should not call
* PollForTask
again on the same workerGroup
until it
* receives a response, and this can take up to 90 seconds.
See
* Also:
AWS
* API Reference
*/
virtual Model::PollForTaskOutcome PollForTask(const Model::PollForTaskRequest& request) const;
/**
* A Callable wrapper for PollForTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PollForTaskOutcomeCallable PollForTaskCallable(const PollForTaskRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::PollForTask, request);
}
/**
* An Async wrapper for PollForTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PollForTaskAsync(const PollForTaskRequestT& request, const PollForTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::PollForTask, request, handler, context);
}
/**
* Adds tasks, schedules, and preconditions to the specified pipeline. You can
* use PutPipelineDefinition
to populate a new pipeline.
* PutPipelineDefinition
also validates the configuration as it adds
* it to the pipeline. Changes to the pipeline are saved unless one of the
* following three validation errors exists in the pipeline.
- An
* object is missing a name or identifier field.
- A string or reference
* field is empty.
- The number of objects in the pipeline exceeds the
* maximum allowed objects.
- The pipeline is in a FINISHED state.
*
Pipeline object definitions are passed to the
* PutPipelineDefinition
action and returned by the
* GetPipelineDefinition action.
See Also:
AWS
* API Reference
*/
virtual Model::PutPipelineDefinitionOutcome PutPipelineDefinition(const Model::PutPipelineDefinitionRequest& request) const;
/**
* A Callable wrapper for PutPipelineDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutPipelineDefinitionOutcomeCallable PutPipelineDefinitionCallable(const PutPipelineDefinitionRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::PutPipelineDefinition, request);
}
/**
* An Async wrapper for PutPipelineDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutPipelineDefinitionAsync(const PutPipelineDefinitionRequestT& request, const PutPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::PutPipelineDefinition, request, handler, context);
}
/**
* Queries the specified pipeline for the names of objects that match the
* specified set of conditions.
See Also:
AWS
* API Reference
*/
virtual Model::QueryObjectsOutcome QueryObjects(const Model::QueryObjectsRequest& request) const;
/**
* A Callable wrapper for QueryObjects that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::QueryObjectsOutcomeCallable QueryObjectsCallable(const QueryObjectsRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::QueryObjects, request);
}
/**
* An Async wrapper for QueryObjects that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void QueryObjectsAsync(const QueryObjectsRequestT& request, const QueryObjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::QueryObjects, request, handler, context);
}
/**
* Removes existing tags from the specified pipeline.
See Also:
* AWS
* API Reference
*/
virtual Model::RemoveTagsOutcome RemoveTags(const Model::RemoveTagsRequest& request) const;
/**
* A Callable wrapper for RemoveTags that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RemoveTagsOutcomeCallable RemoveTagsCallable(const RemoveTagsRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::RemoveTags, request);
}
/**
* An Async wrapper for RemoveTags that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RemoveTagsAsync(const RemoveTagsRequestT& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::RemoveTags, request, handler, context);
}
/**
* Task runners call ReportTaskProgress
when assigned a task to
* acknowledge that it has the task. If the web service does not receive this
* acknowledgement within 2 minutes, it assigns the task in a subsequent
* PollForTask call. After this initial acknowledgement, the task runner
* only needs to report progress every 15 minutes to maintain its ownership of the
* task. You can change this reporting time from 15 minutes by specifying a
* reportProgressTimeout
field in your pipeline.
If a task
* runner does not report its status after 5 minutes, AWS Data Pipeline assumes
* that the task runner is unable to process the task and reassigns the task in a
* subsequent response to PollForTask. Task runners should call
* ReportTaskProgress
every 60 seconds.
See Also:
AWS
* API Reference
*/
virtual Model::ReportTaskProgressOutcome ReportTaskProgress(const Model::ReportTaskProgressRequest& request) const;
/**
* A Callable wrapper for ReportTaskProgress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReportTaskProgressOutcomeCallable ReportTaskProgressCallable(const ReportTaskProgressRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::ReportTaskProgress, request);
}
/**
* An Async wrapper for ReportTaskProgress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReportTaskProgressAsync(const ReportTaskProgressRequestT& request, const ReportTaskProgressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::ReportTaskProgress, request, handler, context);
}
/**
* Task runners call ReportTaskRunnerHeartbeat
every 15 minutes to
* indicate that they are operational. If the AWS Data Pipeline Task Runner is
* launched on a resource managed by AWS Data Pipeline, the web service can use
* this call to detect when the task runner application has failed and restart a
* new instance.
See Also:
AWS
* API Reference
*/
virtual Model::ReportTaskRunnerHeartbeatOutcome ReportTaskRunnerHeartbeat(const Model::ReportTaskRunnerHeartbeatRequest& request) const;
/**
* A Callable wrapper for ReportTaskRunnerHeartbeat that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReportTaskRunnerHeartbeatOutcomeCallable ReportTaskRunnerHeartbeatCallable(const ReportTaskRunnerHeartbeatRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::ReportTaskRunnerHeartbeat, request);
}
/**
* An Async wrapper for ReportTaskRunnerHeartbeat that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReportTaskRunnerHeartbeatAsync(const ReportTaskRunnerHeartbeatRequestT& request, const ReportTaskRunnerHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::ReportTaskRunnerHeartbeat, request, handler, context);
}
/**
* Requests that the status of the specified physical or logical pipeline
* objects be updated in the specified pipeline. This update might not occur
* immediately, but is eventually consistent. The status that can be set depends on
* the type of object (for example, DataNode or Activity). You cannot perform this
* operation on FINISHED
pipelines and attempting to do so returns
* InvalidRequestException
.
See Also:
AWS
* API Reference
*/
virtual Model::SetStatusOutcome SetStatus(const Model::SetStatusRequest& request) const;
/**
* A Callable wrapper for SetStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetStatusOutcomeCallable SetStatusCallable(const SetStatusRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::SetStatus, request);
}
/**
* An Async wrapper for SetStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetStatusAsync(const SetStatusRequestT& request, const SetStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::SetStatus, request, handler, context);
}
/**
* Task runners call SetTaskStatus
to notify AWS Data Pipeline that
* a task is completed and provide information about the final status. A task
* runner makes this call regardless of whether the task was sucessful. A task
* runner does not need to call SetTaskStatus
for tasks that are
* canceled by the web service during a call to
* ReportTaskProgress.
See Also:
AWS
* API Reference
*/
virtual Model::SetTaskStatusOutcome SetTaskStatus(const Model::SetTaskStatusRequest& request) const;
/**
* A Callable wrapper for SetTaskStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetTaskStatusOutcomeCallable SetTaskStatusCallable(const SetTaskStatusRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::SetTaskStatus, request);
}
/**
* An Async wrapper for SetTaskStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetTaskStatusAsync(const SetTaskStatusRequestT& request, const SetTaskStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::SetTaskStatus, request, handler, context);
}
/**
* Validates the specified pipeline definition to ensure that it is well formed
* and can be run without error.
See Also:
AWS
* API Reference
*/
virtual Model::ValidatePipelineDefinitionOutcome ValidatePipelineDefinition(const Model::ValidatePipelineDefinitionRequest& request) const;
/**
* A Callable wrapper for ValidatePipelineDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ValidatePipelineDefinitionOutcomeCallable ValidatePipelineDefinitionCallable(const ValidatePipelineDefinitionRequestT& request) const
{
return SubmitCallable(&DataPipelineClient::ValidatePipelineDefinition, request);
}
/**
* An Async wrapper for ValidatePipelineDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ValidatePipelineDefinitionAsync(const ValidatePipelineDefinitionRequestT& request, const ValidatePipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&DataPipelineClient::ValidatePipelineDefinition, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const DataPipelineClientConfiguration& clientConfiguration);
DataPipelineClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace DataPipeline
} // namespace Aws