/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*
 * Do not modify this file. This file is generated from the datapipeline-2012-10-29.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.DataPipeline.Model;
namespace Amazon.DataPipeline
{
    /// 
    /// Interface for accessing 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.
    /// 
    /// 
    public partial interface IAmazonDataPipeline : IAmazonService, IDisposable
    {
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IDataPipelinePaginatorFactory Paginators { get; }
#endif
        
        #region  ActivatePipeline
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ActivatePipeline service method.
        /// 
        /// The response from the ActivatePipeline service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for ActivatePipeline Operation
        ActivatePipelineResponse ActivatePipeline(ActivatePipelineRequest request);
        /// 
        /// Initiates the asynchronous execution of the ActivatePipeline operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ActivatePipeline operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndActivatePipeline
        ///         operation.
        /// REST API Reference for ActivatePipeline Operation
        IAsyncResult BeginActivatePipeline(ActivatePipelineRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ActivatePipeline operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginActivatePipeline.
        /// 
        /// Returns a  ActivatePipelineResult from DataPipeline.
        /// REST API Reference for ActivatePipeline Operation
        ActivatePipelineResponse EndActivatePipeline(IAsyncResult asyncResult);
        #endregion
        
        #region  AddTags
        /// 
        /// Adds or modifies tags for the specified pipeline.
        /// 
        /// The ID of the pipeline.
        /// The tags to add, as key/value pairs.
        /// 
        /// The response from the AddTags service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for AddTags Operation
        AddTagsResponse AddTags(string pipelineId, List tags);
        /// 
        /// Adds or modifies tags for the specified pipeline.
        /// 
        /// Container for the necessary parameters to execute the AddTags service method.
        /// 
        /// The response from the AddTags service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for AddTags Operation
        AddTagsResponse AddTags(AddTagsRequest request);
        /// 
        /// Initiates the asynchronous execution of the AddTags operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AddTags operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndAddTags
        ///         operation.
        /// REST API Reference for AddTags Operation
        IAsyncResult BeginAddTags(AddTagsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  AddTags operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAddTags.
        /// 
        /// Returns a  AddTagsResult from DataPipeline.
        /// REST API Reference for AddTags Operation
        AddTagsResponse EndAddTags(IAsyncResult asyncResult);
        #endregion
        
        #region  CreatePipeline
        /// 
        /// Creates a new, empty pipeline. Use PutPipelineDefinition to populate the pipeline.
        /// 
        /// Container for the necessary parameters to execute the CreatePipeline service method.
        /// 
        /// The response from the CreatePipeline service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// REST API Reference for CreatePipeline Operation
        CreatePipelineResponse CreatePipeline(CreatePipelineRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreatePipeline operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreatePipeline operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreatePipeline
        ///         operation.
        /// REST API Reference for CreatePipeline Operation
        IAsyncResult BeginCreatePipeline(CreatePipelineRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreatePipeline operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreatePipeline.
        /// 
        /// Returns a  CreatePipelineResult from DataPipeline.
        /// REST API Reference for CreatePipeline Operation
        CreatePipelineResponse EndCreatePipeline(IAsyncResult asyncResult);
        #endregion
        
        #region  DeactivatePipeline
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeactivatePipeline service method.
        /// 
        /// The response from the DeactivatePipeline service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for DeactivatePipeline Operation
        DeactivatePipelineResponse DeactivatePipeline(DeactivatePipelineRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeactivatePipeline operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeactivatePipeline operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeactivatePipeline
        ///         operation.
        /// REST API Reference for DeactivatePipeline Operation
        IAsyncResult BeginDeactivatePipeline(DeactivatePipelineRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeactivatePipeline operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeactivatePipeline.
        /// 
        /// Returns a  DeactivatePipelineResult from DataPipeline.
        /// REST API Reference for DeactivatePipeline Operation
        DeactivatePipelineResponse EndDeactivatePipeline(IAsyncResult asyncResult);
        #endregion
        
        #region  DeletePipeline
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePipeline service method.
        /// 
        /// The response from the DeletePipeline service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for DeletePipeline Operation
        DeletePipelineResponse DeletePipeline(DeletePipelineRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeletePipeline operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeletePipeline operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeletePipeline
        ///         operation.
        /// REST API Reference for DeletePipeline Operation
        IAsyncResult BeginDeletePipeline(DeletePipelineRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeletePipeline operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeletePipeline.
        /// 
        /// Returns a  DeletePipelineResult from DataPipeline.
        /// REST API Reference for DeletePipeline Operation
        DeletePipelineResponse EndDeletePipeline(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeObjects
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DescribeObjects service method.
        /// 
        /// The response from the DescribeObjects service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for DescribeObjects Operation
        DescribeObjectsResponse DescribeObjects(DescribeObjectsRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeObjects operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeObjects operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeObjects
        ///         operation.
        /// REST API Reference for DescribeObjects Operation
        IAsyncResult BeginDescribeObjects(DescribeObjectsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeObjects operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeObjects.
        /// 
        /// Returns a  DescribeObjectsResult from DataPipeline.
        /// REST API Reference for DescribeObjects Operation
        DescribeObjectsResponse EndDescribeObjects(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribePipelines
        /// 
        /// 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.
        /// 
        /// 
        /// The IDs of the pipelines to describe. You can pass as many as 25 identifiers in a single call. To obtain pipeline IDs, call ListPipelines.
        /// 
        /// The response from the DescribePipelines service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for DescribePipelines Operation
        DescribePipelinesResponse DescribePipelines(List pipelineIds);
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribePipelines service method.
        /// 
        /// The response from the DescribePipelines service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for DescribePipelines Operation
        DescribePipelinesResponse DescribePipelines(DescribePipelinesRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribePipelines operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribePipelines operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribePipelines
        ///         operation.
        /// REST API Reference for DescribePipelines Operation
        IAsyncResult BeginDescribePipelines(DescribePipelinesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribePipelines operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribePipelines.
        /// 
        /// Returns a  DescribePipelinesResult from DataPipeline.
        /// REST API Reference for DescribePipelines Operation
        DescribePipelinesResponse EndDescribePipelines(IAsyncResult asyncResult);
        #endregion
        
        #region  EvaluateExpression
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the EvaluateExpression service method.
        /// 
        /// The response from the EvaluateExpression service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// 
        /// The specified task was not found.
        /// 
        /// REST API Reference for EvaluateExpression Operation
        EvaluateExpressionResponse EvaluateExpression(EvaluateExpressionRequest request);
        /// 
        /// Initiates the asynchronous execution of the EvaluateExpression operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the EvaluateExpression operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndEvaluateExpression
        ///         operation.
        /// REST API Reference for EvaluateExpression Operation
        IAsyncResult BeginEvaluateExpression(EvaluateExpressionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  EvaluateExpression operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginEvaluateExpression.
        /// 
        /// Returns a  EvaluateExpressionResult from DataPipeline.
        /// REST API Reference for EvaluateExpression Operation
        EvaluateExpressionResponse EndEvaluateExpression(IAsyncResult asyncResult);
        #endregion
        
        #region  GetPipelineDefinition
        /// 
        /// Gets the definition of the specified pipeline. You can call GetPipelineDefinition
        /// to retrieve the pipeline definition that you provided using PutPipelineDefinition.
        /// 
        /// Container for the necessary parameters to execute the GetPipelineDefinition service method.
        /// 
        /// The response from the GetPipelineDefinition service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for GetPipelineDefinition Operation
        GetPipelineDefinitionResponse GetPipelineDefinition(GetPipelineDefinitionRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetPipelineDefinition operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetPipelineDefinition operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetPipelineDefinition
        ///         operation.
        /// REST API Reference for GetPipelineDefinition Operation
        IAsyncResult BeginGetPipelineDefinition(GetPipelineDefinitionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetPipelineDefinition operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetPipelineDefinition.
        /// 
        /// Returns a  GetPipelineDefinitionResult from DataPipeline.
        /// REST API Reference for GetPipelineDefinition Operation
        GetPipelineDefinitionResponse EndGetPipelineDefinition(IAsyncResult asyncResult);
        #endregion
        
        #region  ListPipelines
        /// 
        /// Lists the pipeline identifiers for all active pipelines that you have permission to
        /// access.
        /// 
        /// 
        /// The response from the ListPipelines service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// REST API Reference for ListPipelines Operation
        ListPipelinesResponse ListPipelines();
        /// 
        /// Lists the pipeline identifiers for all active pipelines that you have permission to
        /// access.
        /// 
        /// Container for the necessary parameters to execute the ListPipelines service method.
        /// 
        /// The response from the ListPipelines service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// REST API Reference for ListPipelines Operation
        ListPipelinesResponse ListPipelines(ListPipelinesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListPipelines operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListPipelines operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListPipelines
        ///         operation.
        /// REST API Reference for ListPipelines Operation
        IAsyncResult BeginListPipelines(ListPipelinesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListPipelines operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListPipelines.
        /// 
        /// Returns a  ListPipelinesResult from DataPipeline.
        /// REST API Reference for ListPipelines Operation
        ListPipelinesResponse EndListPipelines(IAsyncResult asyncResult);
        #endregion
        
        #region  PollForTask
        /// 
        /// 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. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the PollForTask service method.
        /// 
        /// The response from the PollForTask service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified task was not found.
        /// 
        /// REST API Reference for PollForTask Operation
        PollForTaskResponse PollForTask(PollForTaskRequest request);
        /// 
        /// Initiates the asynchronous execution of the PollForTask operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PollForTask operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPollForTask
        ///         operation.
        /// REST API Reference for PollForTask Operation
        IAsyncResult BeginPollForTask(PollForTaskRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PollForTask operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPollForTask.
        /// 
        /// Returns a  PollForTaskResult from DataPipeline.
        /// REST API Reference for PollForTask Operation
        PollForTaskResponse EndPollForTask(IAsyncResult asyncResult);
        #endregion
        
        #region  PutPipelineDefinition
        /// 
        /// 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 thePutPipelineDefinition
        /// action and returned by the GetPipelineDefinition action. 
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutPipelineDefinition service method.
        /// 
        /// The response from the PutPipelineDefinition service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for PutPipelineDefinition Operation
        PutPipelineDefinitionResponse PutPipelineDefinition(PutPipelineDefinitionRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutPipelineDefinition operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutPipelineDefinition operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutPipelineDefinition
        ///         operation.
        /// REST API Reference for PutPipelineDefinition Operation
        IAsyncResult BeginPutPipelineDefinition(PutPipelineDefinitionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutPipelineDefinition operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutPipelineDefinition.
        /// 
        /// Returns a  PutPipelineDefinitionResult from DataPipeline.
        /// REST API Reference for PutPipelineDefinition Operation
        PutPipelineDefinitionResponse EndPutPipelineDefinition(IAsyncResult asyncResult);
        #endregion
        
        #region  QueryObjects
        /// 
        /// Queries the specified pipeline for the names of objects that match the specified set
        /// of conditions.
        /// 
        /// Container for the necessary parameters to execute the QueryObjects service method.
        /// 
        /// The response from the QueryObjects service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for QueryObjects Operation
        QueryObjectsResponse QueryObjects(QueryObjectsRequest request);
        /// 
        /// Initiates the asynchronous execution of the QueryObjects operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the QueryObjects operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndQueryObjects
        ///         operation.
        /// REST API Reference for QueryObjects Operation
        IAsyncResult BeginQueryObjects(QueryObjectsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  QueryObjects operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginQueryObjects.
        /// 
        /// Returns a  QueryObjectsResult from DataPipeline.
        /// REST API Reference for QueryObjects Operation
        QueryObjectsResponse EndQueryObjects(IAsyncResult asyncResult);
        #endregion
        
        #region  RemoveTags
        /// 
        /// Removes existing tags from the specified pipeline.
        /// 
        /// The ID of the pipeline.
        /// The keys of the tags to remove.
        /// 
        /// The response from the RemoveTags service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for RemoveTags Operation
        RemoveTagsResponse RemoveTags(string pipelineId, List tagKeys);
        /// 
        /// Removes existing tags from the specified pipeline.
        /// 
        /// Container for the necessary parameters to execute the RemoveTags service method.
        /// 
        /// The response from the RemoveTags service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for RemoveTags Operation
        RemoveTagsResponse RemoveTags(RemoveTagsRequest request);
        /// 
        /// Initiates the asynchronous execution of the RemoveTags operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RemoveTags operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRemoveTags
        ///         operation.
        /// REST API Reference for RemoveTags Operation
        IAsyncResult BeginRemoveTags(RemoveTagsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RemoveTags operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRemoveTags.
        /// 
        /// Returns a  RemoveTagsResult from DataPipeline.
        /// REST API Reference for RemoveTags Operation
        RemoveTagsResponse EndRemoveTags(IAsyncResult asyncResult);
        #endregion
        
        #region  ReportTaskProgress
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ReportTaskProgress service method.
        /// 
        /// The response from the ReportTaskProgress service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// 
        /// The specified task was not found.
        /// 
        /// REST API Reference for ReportTaskProgress Operation
        ReportTaskProgressResponse ReportTaskProgress(ReportTaskProgressRequest request);
        /// 
        /// Initiates the asynchronous execution of the ReportTaskProgress operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ReportTaskProgress operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndReportTaskProgress
        ///         operation.
        /// REST API Reference for ReportTaskProgress Operation
        IAsyncResult BeginReportTaskProgress(ReportTaskProgressRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ReportTaskProgress operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginReportTaskProgress.
        /// 
        /// Returns a  ReportTaskProgressResult from DataPipeline.
        /// REST API Reference for ReportTaskProgress Operation
        ReportTaskProgressResponse EndReportTaskProgress(IAsyncResult asyncResult);
        #endregion
        
        #region  ReportTaskRunnerHeartbeat
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the ReportTaskRunnerHeartbeat service method.
        /// 
        /// The response from the ReportTaskRunnerHeartbeat service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// REST API Reference for ReportTaskRunnerHeartbeat Operation
        ReportTaskRunnerHeartbeatResponse ReportTaskRunnerHeartbeat(ReportTaskRunnerHeartbeatRequest request);
        /// 
        /// Initiates the asynchronous execution of the ReportTaskRunnerHeartbeat operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ReportTaskRunnerHeartbeat operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndReportTaskRunnerHeartbeat
        ///         operation.
        /// REST API Reference for ReportTaskRunnerHeartbeat Operation
        IAsyncResult BeginReportTaskRunnerHeartbeat(ReportTaskRunnerHeartbeatRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ReportTaskRunnerHeartbeat operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginReportTaskRunnerHeartbeat.
        /// 
        /// Returns a  ReportTaskRunnerHeartbeatResult from DataPipeline.
        /// REST API Reference for ReportTaskRunnerHeartbeat Operation
        ReportTaskRunnerHeartbeatResponse EndReportTaskRunnerHeartbeat(IAsyncResult asyncResult);
        #endregion
        
        #region  SetStatus
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the SetStatus service method.
        /// 
        /// The response from the SetStatus service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for SetStatus Operation
        SetStatusResponse SetStatus(SetStatusRequest request);
        /// 
        /// Initiates the asynchronous execution of the SetStatus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SetStatus operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSetStatus
        ///         operation.
        /// REST API Reference for SetStatus Operation
        IAsyncResult BeginSetStatus(SetStatusRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  SetStatus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSetStatus.
        /// 
        /// Returns a  SetStatusResult from DataPipeline.
        /// REST API Reference for SetStatus Operation
        SetStatusResponse EndSetStatus(IAsyncResult asyncResult);
        #endregion
        
        #region  SetTaskStatus
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the SetTaskStatus service method.
        /// 
        /// The response from the SetTaskStatus service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// 
        /// The specified task was not found.
        /// 
        /// REST API Reference for SetTaskStatus Operation
        SetTaskStatusResponse SetTaskStatus(SetTaskStatusRequest request);
        /// 
        /// Initiates the asynchronous execution of the SetTaskStatus operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the SetTaskStatus operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSetTaskStatus
        ///         operation.
        /// REST API Reference for SetTaskStatus Operation
        IAsyncResult BeginSetTaskStatus(SetTaskStatusRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  SetTaskStatus operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginSetTaskStatus.
        /// 
        /// Returns a  SetTaskStatusResult from DataPipeline.
        /// REST API Reference for SetTaskStatus Operation
        SetTaskStatusResponse EndSetTaskStatus(IAsyncResult asyncResult);
        #endregion
        
        #region  ValidatePipelineDefinition
        /// 
        /// Validates the specified pipeline definition to ensure that it is well formed and can
        /// be run without error.
        /// 
        /// Container for the necessary parameters to execute the ValidatePipelineDefinition service method.
        /// 
        /// The response from the ValidatePipelineDefinition service method, as returned by DataPipeline.
        /// 
        /// An internal service error occurred.
        /// 
        /// 
        /// The request was not valid. Verify that your request was properly formatted, that the
        /// signature was generated with the correct credentials, and that you haven't exceeded
        /// any of the service limits for your account.
        /// 
        /// 
        /// The specified pipeline has been deleted.
        /// 
        /// 
        /// The specified pipeline was not found. Verify that you used the correct user and account
        /// identifiers.
        /// 
        /// REST API Reference for ValidatePipelineDefinition Operation
        ValidatePipelineDefinitionResponse ValidatePipelineDefinition(ValidatePipelineDefinitionRequest request);
        /// 
        /// Initiates the asynchronous execution of the ValidatePipelineDefinition operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ValidatePipelineDefinition operation on AmazonDataPipelineClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndValidatePipelineDefinition
        ///         operation.
        /// REST API Reference for ValidatePipelineDefinition Operation
        IAsyncResult BeginValidatePipelineDefinition(ValidatePipelineDefinitionRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ValidatePipelineDefinition operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginValidatePipelineDefinition.
        /// 
        /// Returns a  ValidatePipelineDefinitionResult from DataPipeline.
        /// REST API Reference for ValidatePipelineDefinition Operation
        ValidatePipelineDefinitionResponse EndValidatePipelineDefinition(IAsyncResult asyncResult);
        #endregion
        
    }
}