get_data_pipeline_details

DataPipelinesApi.get_data_pipeline_details(id, role_id, action=None, node=None, projection_expression=None, _request_timeout=None, _request_auth=None, _content_type=None, _headers=None, _host_index=0)

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. action=upload-script or retrieve-script is AI Flow only and requires query node (LambdaFunction NodeName). Both return LambdaNodePresignedUrl with presignedUrl (PUT vs GET) and s3Location. Missing node, non-ai type, unknown node, or non-Lambda node is DP-1010 (HTTP 403). Code reads projection_expression (underscore, comma-separated). Spec projectionExpression is not applied on this handler.

Parameters:
  • id (str) – DataPipelineId. (required)

  • role_id (str) – Amorphic role ID the request is authorized against. Must be a role the user belongs to. Lambda returns AUTH-1001 (HTTP 403 on v2-dataPipelines, HTTP 400 on v2-downloadLogs) if missing after gateway validation. (required)

  • action (str) – AI Flow Lambda node shortcut. upload-script returns a PUT URL; retrieve-script returns a GET URL. Requires node.

  • node (str) – LambdaFunction NodeName. Required when action is upload-script or retrieve-script.

  • projection_expression (str) – Comma-separated keys to keep on the details document. Read by the handler. Ignored for script actions.

  • _request_timeout (int, tuple(int, int), optional) – timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts.

  • _request_auth (dict, optional) – set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request.

  • _content_type (str, Optional) – force content-type for the request.

  • _headers (dict, optional) – set to override the headers for a single request; this effectively ignores the headers in the spec for a single request.

  • _host_index (int, optional) – set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request.

Return type:

GetDataPipelineDetails200Response

Returns:

Returns the result object.

Request and Response Examples

HTTP: GET /data-pipelines/{id}

Success (HTTP 200)

GetDataPipelineDetailsResponse, or GetDataPipelineLambdaPresignedResponse when action is a script action.

Glue pipeline details

{
  "DataPipelineId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "DataPipelineName": "orders_enrichment_flow",
  "Description": "Enrich orders with customer attributes",
  "DataPipelineType": "glue",
  "AccessType": "owner",
  "PipelineStatus": "create_complete",
  "CreatedBy": "user1",
  "CreationTime": "2026-01-15 10:30:00",
  "LastModifiedBy": "user1",
  "LastModifiedTime": "2026-08-01 14:22:00",
  "Keywords": [
    "orders"
  ],
  "MaxConcurrentRuns": 1,
  "Nodes": [
    {
      "ModuleType": "start_node",
      "NodeName": "start"
    },
    {
      "ModuleType": "etl_job",
      "NodeName": "enrich_orders",
      "Resource": {
        "Id": "job-11111111-1111-1111-1111-111111111111",
        "Name": "enrich_orders_job"
      },
      "Arguments": {}
    },
    {
      "ModuleType": "end_node",
      "NodeName": "end"
    }
  ],
  "Graph": {
    "start": {
      "success": [
        "enrich_orders"
      ],
      "failure": []
    },
    "enrich_orders": {
      "success": [
        "end"
      ],
      "failure": []
    },
    "end": {
      "success": [],
      "failure": []
    }
  }
}

AI Lambda node upload URL

{
  "LambdaNodePresignedUrl": {
    "presignedUrl": "https://s3.amazonaws.com/bucket/lambda.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256",
    "s3Location": "s3://bucket/ai-flows/kb_qa_flow/custom_fn.zip"
  }
}

AI Lambda node download URL

{
  "LambdaNodePresignedUrl": {
    "presignedUrl": "https://s3.amazonaws.com/bucket/lambda.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256",
    "s3Location": "s3://bucket/ai-flows/kb_qa_flow/custom_fn.zip"
  }
}

Errors

Documented error codes: DP-1010, AUTH-1001, GE-1046, GE-1044.

HTTP 400

API Gateway request validation (missing required parameters such as role_id). Lambda InvalidInputException from this function is HTTP 403.

Gateway rejected missing required header

{
  "Message": "Invalid request"
}

HTTP 403

Invalid input or unauthorized. dataPipelines maps InvalidInputException and UnauthorizedUserException to HTTP 403.

Script action without node

{
  "Message": "DP-1010 - Query param 'node' is required when action is upload-script/retrieve-script.."
}

Script action on a Glue pipeline

{
  "Message": "DP-1010 - Presigned URL for Lambda node code upload/retrieve is only supported for AI Flow data pipelines.."
}

Node name missing from the pipeline

{
  "Message": "DP-1010 - Node 'custom_fn' not found in this data pipeline.."
}

Node is not LambdaFunction

{
  "Message": "DP-1010 - Presigned URL for code upload/retrieve is only available for Lambda nodes. Node 'input' has type 'Input'.."
}

Missing role_id

{
  "Message": "AUTH-1001 - Missing role information in event header"
}

Unknown pipeline id

{
  "Message": "GE-1046 - Invalid DataPipelineId id received - 00000000-0000-0000-0000-000000000000"
}

HTTP 500

Backend failure (GenericFailureException, InconsistentMetadataException, or unexpected GE-1044).

Unhandled exception

{
  "Message": "GE-1044 - Unexpected error - An unexpected error occurred."
}