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

  1. An * object is missing a name or identifier field.
  2. A string or reference * field is empty.
  3. The number of objects in the pipeline exceeds the * maximum allowed objects.
  4. The pipeline is in a FINISHED state.
  5. *

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.

  1. An * object is missing a name or identifier field.
  2. A string or reference * field is empty.
  3. The number of objects in the pipeline exceeds the * maximum allowed objects.
  4. The pipeline is in a FINISHED state.
  5. *

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.

  1. An * object is missing a name or identifier field.
  2. A string or reference * field is empty.
  3. The number of objects in the pipeline exceeds the * maximum allowed objects.
  4. The pipeline is in a FINISHED state.
  5. *

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