Data Pipelines
APIs related to Data Pipelines functionality
📄️ List data pipelines the caller can access
Returns Glue and AI Flow data pipelines the caller can access. Listing is in-memory after a batch get of authorized ids. Pagination uses next_available (yes/no), 1-based offset, default limit 500, maximum 1000 (GE-1028). Default sort is LastModifiedTime descending. Each item includes AccessType and LastRunStatus (null when the pipeline has never run). DataPipelineType defaults to glue on stored rows that omit it.
📄️ Create a Glue or AI Flow data pipeline
Creates a data pipeline asynchronously. DataPipelineType=ai uses Bedrock Flows; omitted or glue uses Glue workflows. Glue requires DataPipelineName, Nodes, Graph, Description, and Keywords. Name is 3-50 alphanumeric/underscore (IPV-1004 / IPV-1018). Glue writes create_in_progress then starts Step Functions; poll GET /data-pipelines/{id} for PipelineStatus. AI create rejects extra body keys (IPV-1078) and may return LambdaUploadUrls for LambdaFunction nodes. Glue validate_data_pipeline_body failures return HTTP 501 DP-1010 (not 400). Empty body is GE-1001 (HTTP 403).
📄️ Delete a data pipeline
Owner-only delete. Blocked while any execution is RUNNING or STOPPING (DP-1012, HTTP 403). Glue delete fails with HTTP 400 and DependentResources when schedules or other resources still depend on the pipeline (Message has no error-code prefix). Success Message is 'Successfully deleted data pipeline {name}.' Executions and related S3 reports are removed after Glue/Bedrock teardown.
📄️ Get data pipeline details or Lambda node presigned URLs
Default (no action) returns the stored pipeline plus AccessType and DataPipelineType (glue if omitted). Requires read-only access. Unknown action values are ignored and details are returned.
📄️ Update a Glue or AI Flow data pipeline
Updates by persisted DataPipelineType (body type is not used to switch). Requires editor access. Blocked while any execution is RUNNING or STOPPING (DP-1012) or while PipelineStatus is create_in_progress/update_in_progress (DP-1010). Glue fills omitted fields from the stored row and starts async update (Message 'Data pipeline update initiated.'). Cyclic child-pipeline graphs return DP-1037. Query publish is not read. AI requires at least one of Description, Nodes, DefaultExecutionProperties, Graph, Keywords (GE-1010 overwritten, HTTP 500).
📄️ List executions for a data pipeline
Returns paginated executions for the pipeline after refreshing RUNNING and STOPPING rows from Glue or Bedrock. Requires any access on the pipeline; empty permission is AUTH-1010 (HTTP 403). Default limit 100, maximum 1000, default sort StartedOn descending. from_time and to_time are not applied. Non-start/end nodes get Timeout 2880 when omitted. Child pipeline nodes may include ChildResourceExecutionId and ChildResourceName.
📄️ Trigger a data pipeline execution
Starts a new execution. Requires editor access (skipped for super-admin). PipelineStatus must be empty/blank (legacy) or create_complete / update_complete (DP-1038). Glue optional body ExecutionProperties (string map; DP-1040 if invalid). AI requires InputString in the body or DefaultExecutionProperties (DP-1038). Glue also rejects datasource flows in a bad state (DP-1040 / DP-1044).
📄️ Get one data pipeline execution
Returns the execution item. Requires read-only access. RUNNING and STOPPING rows are refreshed from Glue or Bedrock before return. Node Timeout defaults to 2880 for non-start/end nodes. Internal Glue argument keys are stripped.
📄️ Stop or resume a data pipeline execution
Requires editor access and query operation=stop|resume (IPV-1051 if missing, IPV-1041 if invalid). stop is allowed only when ExecutionStatus is RUNNING (DP-1012 otherwise) and returns Message 'Successfully stopped the data pipeline'. resume requires a body NodeNames array (GE-1001 if empty), matching Graph (DP-1015), and at least one named node that ran (DP-1016). Resume is blocked for RUNNING/STOPPING (DP-1012). Resume success includes a new ExecutionId.
📄️ Trigger or fetch generated node log files
Primary integration is v2-downloadLogs. The working GET branch is logs=all (requires servicename=data-pipelines and logtype). It starts log file generation (Message 'Triggered log file creation') or returns PresignedURL when a file already exists. Execution must be in a terminal state (LOG-1006). logs=latest is declared in the spec but is not a working GET unless action is also a POST action (view-logs|generate-logs|download-logs), which then expects a POST body. Prefer POST for view/generate/download.
📄️ View, generate, or download node logs for a time window
v2-downloadLogs. Required query action=view-logs|generate-logs|download-logs and servicename=data-pipelines. Body startTime and endTime are UTC YYYY-MM-DDThh:mm:ss (IPV-1008 / IPV-1054). view-logs returns logPreview and logTruncated (optional nextToken). generate-logs starts Glue retrieval or tells AI callers logs are natively available. download-logs returns Presignedurl when a file matches the window. logtype error is required for some Glue node types (GE-1034). Optional filter_pattern and encoding=base64.
📄️ Download input or output manifest for a node
Returns a GET presigned URL. file_type is required (input_manifest_file | output_manifest_file); missing/invalid is IPV-1040 (HTTP 403). input_manifest_file is file_load_validation only (uses the predecessor job temp JSON). output_manifest_file is file_load_validation or sync_to_s3 CSV. Node not reached while RUNNING/STOPPED is DP-1021; unknown node DP-1022; wrong module DP-1029; JobRunState NOT_STARTED DP-1030; S3 404 DP-1034.