PutPipelineDefinition - AWS Data Pipeline

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 validation errors exist 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 allowed maximum number of objects.

  4. The pipeline is in a FINISHED state.

Pipeline object definitions are passed to the PutPipelineDefinition action and returned by the GetPipelineDefinition action.

Request Syntax

{ "parameterObjects": [ { "attributes": [ { "key": "string", "stringValue": "string" } ], "id": "string" } ], "parameterValues": [ { "id": "string", "stringValue": "string" } ], "pipelineId": "string", "pipelineObjects": [ { "fields": [ { "key": "string", "refValue": "string", "stringValue": "string" } ], "id": "string", "name": "string" } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

parameterObjects

The parameter objects used with the pipeline.

Type: Array of ParameterObject objects

Required: No

parameterValues

The parameter values used with the pipeline.

Type: Array of ParameterValue objects

Required: No

pipelineId

The ID of the pipeline.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 1024.

Pattern: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\n\t]*

Required: Yes

pipelineObjects

The objects that define the pipeline. These objects overwrite the existing pipeline definition.

Type: Array of PipelineObject objects

Required: Yes

Response Syntax

{ "errored": boolean, "validationErrors": [ { "errors": [ "string" ], "id": "string" } ], "validationWarnings": [ { "id": "string", "warnings": [ "string" ] } ] }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

errored

Indicates whether there were validation errors, and the pipeline definition is stored but cannot be activated until you correct the pipeline and call PutPipelineDefinition to commit the corrected pipeline.

Type: Boolean

validationErrors

The validation errors that are associated with the objects defined in pipelineObjects.

Type: Array of ValidationError objects

validationWarnings

The validation warnings that are associated with the objects defined in pipelineObjects.

Type: Array of ValidationWarning objects

Errors

For information about the errors that are common to all actions, see Common Errors.

InternalServiceError

An internal service error occurred.

HTTP Status Code: 500

InvalidRequestException

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.

HTTP Status Code: 400

PipelineDeletedException

The specified pipeline has been deleted.

HTTP Status Code: 400

PipelineNotFoundException

The specified pipeline was not found. Verify that you used the correct user and account identifiers.

HTTP Status Code: 400

Examples

Example 1

This example sets a valid pipeline configuration and returns success.

Sample Request

POST / HTTP/1.1 Content-Type: application/x-amz-json-1.1 X-Amz-Target: DataPipeline.PutPipelineDefinition Content-Length: 914 Host: datapipeline.us-east-1.amazonaws.com X-Amz-Date: Mon, 12 Nov 2012 17:49:52 GMT Authorization: AuthParams {"pipelineId": "df-0937003356ZJEXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "fields": [ {"key": "workerGroup", "stringValue": "workerGroup"} ] }, {"id": "Schedule", "name": "Schedule", "fields": [ {"key": "startDateTime", "stringValue": "2012-12-12T00:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-12-21T18:00:00"} ] }, {"id": "SayHello", "name": "SayHello", "fields": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"} ] } ] }

Sample Response

HTTP/1.1 200 x-amzn-RequestId: f74afc14-0754-11e2-af6f-6bc7a6be60d9 Content-Type: application/x-amz-json-1.1 Content-Length: 18 Date: Mon, 12 Nov 2012 17:50:53 GMT {"errored": false}

Example 2

This example sets an invalid pipeline configuration (the value for workerGroup is an empty string) and returns an error message.

Sample Request

POST / HTTP/1.1 Content-Type: application/x-amz-json-1.1 X-Amz-Target: DataPipeline.PutPipelineDefinition Content-Length: 903 Host: datapipeline.us-east-1.amazonaws.com X-Amz-Date: Mon, 12 Nov 2012 17:49:52 GMT Authorization: AuthParams {"pipelineId": "df-06372391ZG65EXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "fields": [ {"key": "workerGroup", "stringValue": ""} ] }, {"id": "Schedule", "name": "Schedule", "fields": [ {"key": "startDateTime", "stringValue": "2012-09-25T17:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-09-25T18:00:00"} ] }, {"id": "SayHello", "name": "SayHello", "fields": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"} ] } ] }

Sample Response

HTTP/1.1 200 x-amzn-RequestId: f74afc14-0754-11e2-af6f-6bc7a6be60d9 Content-Type: application/x-amz-json-1.1 Content-Length: 18 Date: Mon, 12 Nov 2012 17:50:53 GMT {"__type": "com.amazon.setl.webservice#InvalidRequestException", "message": "Pipeline definition has errors: Could not save the pipeline definition due to FATAL errors: [com.amazon.setl.webservice.ValidationError@108d7ea9] Please call Validate to validate your pipeline"}

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: