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.
-
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 allowed maximum number of objects.
-
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: