/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace Http
{
class HttpClient;
class HttpClientFactory;
} // namespace Http
namespace Utils
{
template< typename R, typename E> class Outcome;
namespace Threading
{
class Executor;
} // namespace Threading
} // namespace Utils
namespace Auth
{
class AWSCredentials;
class AWSCredentialsProvider;
} // namespace Auth
namespace Client
{
class RetryStrategy;
} // namespace Client
namespace DataPipeline
{
namespace Model
{
class ActivatePipelineRequest;
class AddTagsRequest;
class CreatePipelineRequest;
class DeactivatePipelineRequest;
class DeletePipelineRequest;
class DescribeObjectsRequest;
class DescribePipelinesRequest;
class EvaluateExpressionRequest;
class GetPipelineDefinitionRequest;
class ListPipelinesRequest;
class PollForTaskRequest;
class PutPipelineDefinitionRequest;
class QueryObjectsRequest;
class RemoveTagsRequest;
class ReportTaskProgressRequest;
class ReportTaskRunnerHeartbeatRequest;
class SetStatusRequest;
class SetTaskStatusRequest;
class ValidatePipelineDefinitionRequest;
typedef Aws::Utils::Outcome ActivatePipelineOutcome;
typedef Aws::Utils::Outcome AddTagsOutcome;
typedef Aws::Utils::Outcome CreatePipelineOutcome;
typedef Aws::Utils::Outcome DeactivatePipelineOutcome;
typedef Aws::Utils::Outcome DeletePipelineOutcome;
typedef Aws::Utils::Outcome DescribeObjectsOutcome;
typedef Aws::Utils::Outcome DescribePipelinesOutcome;
typedef Aws::Utils::Outcome EvaluateExpressionOutcome;
typedef Aws::Utils::Outcome GetPipelineDefinitionOutcome;
typedef Aws::Utils::Outcome ListPipelinesOutcome;
typedef Aws::Utils::Outcome PollForTaskOutcome;
typedef Aws::Utils::Outcome PutPipelineDefinitionOutcome;
typedef Aws::Utils::Outcome QueryObjectsOutcome;
typedef Aws::Utils::Outcome RemoveTagsOutcome;
typedef Aws::Utils::Outcome ReportTaskProgressOutcome;
typedef Aws::Utils::Outcome ReportTaskRunnerHeartbeatOutcome;
typedef Aws::Utils::Outcome SetStatusOutcome;
typedef Aws::Utils::Outcome SetTaskStatusOutcome;
typedef Aws::Utils::Outcome ValidatePipelineDefinitionOutcome;
typedef std::future ActivatePipelineOutcomeCallable;
typedef std::future AddTagsOutcomeCallable;
typedef std::future CreatePipelineOutcomeCallable;
typedef std::future DeactivatePipelineOutcomeCallable;
typedef std::future DeletePipelineOutcomeCallable;
typedef std::future DescribeObjectsOutcomeCallable;
typedef std::future DescribePipelinesOutcomeCallable;
typedef std::future EvaluateExpressionOutcomeCallable;
typedef std::future GetPipelineDefinitionOutcomeCallable;
typedef std::future ListPipelinesOutcomeCallable;
typedef std::future PollForTaskOutcomeCallable;
typedef std::future PutPipelineDefinitionOutcomeCallable;
typedef std::future QueryObjectsOutcomeCallable;
typedef std::future RemoveTagsOutcomeCallable;
typedef std::future ReportTaskProgressOutcomeCallable;
typedef std::future ReportTaskRunnerHeartbeatOutcomeCallable;
typedef std::future SetStatusOutcomeCallable;
typedef std::future SetTaskStatusOutcomeCallable;
typedef std::future ValidatePipelineDefinitionOutcomeCallable;
} // namespace Model
class DataPipelineClient;
typedef std::function&) > ActivatePipelineResponseReceivedHandler;
typedef std::function&) > AddTagsResponseReceivedHandler;
typedef std::function&) > CreatePipelineResponseReceivedHandler;
typedef std::function&) > DeactivatePipelineResponseReceivedHandler;
typedef std::function&) > DeletePipelineResponseReceivedHandler;
typedef std::function&) > DescribeObjectsResponseReceivedHandler;
typedef std::function&) > DescribePipelinesResponseReceivedHandler;
typedef std::function&) > EvaluateExpressionResponseReceivedHandler;
typedef std::function&) > GetPipelineDefinitionResponseReceivedHandler;
typedef std::function&) > ListPipelinesResponseReceivedHandler;
typedef std::function&) > PollForTaskResponseReceivedHandler;
typedef std::function&) > PutPipelineDefinitionResponseReceivedHandler;
typedef std::function&) > QueryObjectsResponseReceivedHandler;
typedef std::function&) > RemoveTagsResponseReceivedHandler;
typedef std::function&) > ReportTaskProgressResponseReceivedHandler;
typedef std::function&) > ReportTaskRunnerHeartbeatResponseReceivedHandler;
typedef std::function&) > SetStatusResponseReceivedHandler;
typedef std::function&) > SetTaskStatusResponseReceivedHandler;
typedef std::function&) > ValidatePipelineDefinitionResponseReceivedHandler;
/**
* 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:
typedef Aws::Client::AWSJsonClient BASECLASS;
/**
* 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 = Aws::Client::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 = Aws::Client::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 = Aws::Client::ClientConfiguration());
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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ActivatePipelineOutcomeCallable ActivatePipelineCallable(const Model::ActivatePipelineRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ActivatePipelineAsync(const Model::ActivatePipelineRequest& request, const ActivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Adds or modifies tags for the specified pipeline.
See Also:
* AWS
* API Reference
*/
virtual Model::AddTagsOutcome AddTags(const Model::AddTagsRequest& request) const;
/**
* Adds or modifies tags for the specified pipeline.
See Also:
* AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::AddTagsOutcomeCallable AddTagsCallable(const Model::AddTagsRequest& request) const;
/**
* Adds or modifies tags for the specified pipeline.
See Also:
* AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void AddTagsAsync(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* Creates a new, empty pipeline. Use PutPipelineDefinition to populate
* the pipeline.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::CreatePipelineOutcomeCallable CreatePipelineCallable(const Model::CreatePipelineRequest& request) const;
/**
* Creates a new, empty pipeline. Use PutPipelineDefinition to populate
* the pipeline.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void CreatePipelineAsync(const Model::CreatePipelineRequest& request, const CreatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DeactivatePipelineOutcomeCallable DeactivatePipelineCallable(const Model::DeactivatePipelineRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DeactivatePipelineAsync(const Model::DeactivatePipelineRequest& request, const DeactivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DeletePipelineOutcomeCallable DeletePipelineCallable(const Model::DeletePipelineRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DeletePipelineAsync(const Model::DeletePipelineRequest& request, const DeletePipelineResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribeObjectsOutcomeCallable DescribeObjectsCallable(const Model::DescribeObjectsRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribeObjectsAsync(const Model::DescribeObjectsRequest& request, const DescribeObjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::DescribePipelinesOutcomeCallable DescribePipelinesCallable(const Model::DescribePipelinesRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void DescribePipelinesAsync(const Model::DescribePipelinesRequest& request, const DescribePipelinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::EvaluateExpressionOutcomeCallable EvaluateExpressionCallable(const Model::EvaluateExpressionRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void EvaluateExpressionAsync(const Model::EvaluateExpressionRequest& request, const EvaluateExpressionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::GetPipelineDefinitionOutcomeCallable GetPipelineDefinitionCallable(const Model::GetPipelineDefinitionRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void GetPipelineDefinitionAsync(const Model::GetPipelineDefinitionRequest& request, const GetPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* Lists the pipeline identifiers for all active pipelines that you have
* permission to access.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ListPipelinesOutcomeCallable ListPipelinesCallable(const Model::ListPipelinesRequest& request) const;
/**
* Lists the pipeline identifiers for all active pipelines that you have
* permission to access.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ListPipelinesAsync(const Model::ListPipelinesRequest& request, const ListPipelinesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::PollForTaskOutcomeCallable PollForTaskCallable(const Model::PollForTaskRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void PollForTaskAsync(const Model::PollForTaskRequest& request, const PollForTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::PutPipelineDefinitionOutcomeCallable PutPipelineDefinitionCallable(const Model::PutPipelineDefinitionRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void PutPipelineDefinitionAsync(const Model::PutPipelineDefinitionRequest& request, const PutPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* Queries the specified pipeline for the names of objects that match the
* specified set of conditions.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::QueryObjectsOutcomeCallable QueryObjectsCallable(const Model::QueryObjectsRequest& request) const;
/**
* Queries the specified pipeline for the names of objects that match the
* specified set of conditions.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void QueryObjectsAsync(const Model::QueryObjectsRequest& request, const QueryObjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* Removes existing tags from the specified pipeline.
See Also:
* AWS
* API Reference
*/
virtual Model::RemoveTagsOutcome RemoveTags(const Model::RemoveTagsRequest& request) const;
/**
* Removes existing tags from the specified pipeline.
See Also:
* AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::RemoveTagsOutcomeCallable RemoveTagsCallable(const Model::RemoveTagsRequest& request) const;
/**
* Removes existing tags from the specified pipeline.
See Also:
* AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void RemoveTagsAsync(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ReportTaskProgressOutcomeCallable ReportTaskProgressCallable(const Model::ReportTaskProgressRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ReportTaskProgressAsync(const Model::ReportTaskProgressRequest& request, const ReportTaskProgressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ReportTaskRunnerHeartbeatOutcomeCallable ReportTaskRunnerHeartbeatCallable(const Model::ReportTaskRunnerHeartbeatRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ReportTaskRunnerHeartbeatAsync(const Model::ReportTaskRunnerHeartbeatRequest& request, const ReportTaskRunnerHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::SetStatusOutcomeCallable SetStatusCallable(const Model::SetStatusRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void SetStatusAsync(const Model::SetStatusRequest& request, const SetStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* 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
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::SetTaskStatusOutcomeCallable SetTaskStatusCallable(const Model::SetTaskStatusRequest& request) const;
/**
* 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
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void SetTaskStatusAsync(const Model::SetTaskStatusRequest& request, const SetTaskStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
/**
* 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;
/**
* Validates the specified pipeline definition to ensure that it is well formed
* and can be run without error.
See Also:
AWS
* API Reference
*
* returns a future to the operation so that it can be executed in parallel to other requests.
*/
virtual Model::ValidatePipelineDefinitionOutcomeCallable ValidatePipelineDefinitionCallable(const Model::ValidatePipelineDefinitionRequest& request) const;
/**
* Validates the specified pipeline definition to ensure that it is well formed
* and can be run without error.
See Also:
AWS
* API Reference
*
* Queues the request into a thread executor and triggers associated callback when operation has finished.
*/
virtual void ValidatePipelineDefinitionAsync(const Model::ValidatePipelineDefinitionRequest& request, const ValidatePipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const;
void OverrideEndpoint(const Aws::String& endpoint);
private:
void init(const Aws::Client::ClientConfiguration& clientConfiguration);
void ActivatePipelineAsyncHelper(const Model::ActivatePipelineRequest& request, const ActivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void AddTagsAsyncHelper(const Model::AddTagsRequest& request, const AddTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void CreatePipelineAsyncHelper(const Model::CreatePipelineRequest& request, const CreatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeactivatePipelineAsyncHelper(const Model::DeactivatePipelineRequest& request, const DeactivatePipelineResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DeletePipelineAsyncHelper(const Model::DeletePipelineRequest& request, const DeletePipelineResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribeObjectsAsyncHelper(const Model::DescribeObjectsRequest& request, const DescribeObjectsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void DescribePipelinesAsyncHelper(const Model::DescribePipelinesRequest& request, const DescribePipelinesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void EvaluateExpressionAsyncHelper(const Model::EvaluateExpressionRequest& request, const EvaluateExpressionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void GetPipelineDefinitionAsyncHelper(const Model::GetPipelineDefinitionRequest& request, const GetPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ListPipelinesAsyncHelper(const Model::ListPipelinesRequest& request, const ListPipelinesResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void PollForTaskAsyncHelper(const Model::PollForTaskRequest& request, const PollForTaskResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void PutPipelineDefinitionAsyncHelper(const Model::PutPipelineDefinitionRequest& request, const PutPipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void QueryObjectsAsyncHelper(const Model::QueryObjectsRequest& request, const QueryObjectsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void RemoveTagsAsyncHelper(const Model::RemoveTagsRequest& request, const RemoveTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ReportTaskProgressAsyncHelper(const Model::ReportTaskProgressRequest& request, const ReportTaskProgressResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ReportTaskRunnerHeartbeatAsyncHelper(const Model::ReportTaskRunnerHeartbeatRequest& request, const ReportTaskRunnerHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void SetStatusAsyncHelper(const Model::SetStatusRequest& request, const SetStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void SetTaskStatusAsyncHelper(const Model::SetTaskStatusRequest& request, const SetTaskStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const;
void ValidatePipelineDefinitionAsyncHelper(const Model::ValidatePipelineDefinitionRequest& request, const ValidatePipelineDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr m_executor;
};
} // namespace DataPipeline
} // namespace Aws