Pipeline

post
Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
siteIdinteger · uint64Optional
deployPipelinebooleanOptional
Responses
200

A successful response.

application/json
post
/gateway/v1/deserialize-pipeline
POST /gateway/v1/deserialize-pipeline HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2779

{
  "siteId": 1,
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  },
  "pipelineGraph": {
    "version": 1,
    "pipelineId": 1,
    "edges": {
      "ANY_ADDITIONAL_PROPERTY": {
        "nodeIds": [
          1
        ]
      }
    },
    "created": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "metaInfo": {
      "omissions": [
        {
          "omitted": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          },
          "patch": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          }
        }
      ]
    }
  },
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  },
  "destinations": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "templateName": "text",
      "name": "text",
      "description": "text",
      "config": {},
      "status": "NS_DEFAULT",
      "sourceId": 1,
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "type": "DEFAULT_TYPE",
      "origin": "NODE_ORIGIN_DEFAULT",
      "usageType": "UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "transforms": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "name": "text",
      "description": "text",
      "pipelineId": 1,
      "config": {},
      "status": "NS_DEFAULT",
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "isTransformGroup": true,
      "origin": "NODE_ORIGIN_DEFAULT",
      "templateName": "text",
      "processorType": "PROCESSOR_TYPE_UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "archivalDestination": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "sourceId": 1,
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "usageType": "UNSPECIFIED",
    "siteFilenames": [
      "text"
    ],
    "userVisible": true
  },
  "deployPipeline": true
}
{
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  },
  "pipelineGraph": {
    "version": 1,
    "pipelineId": 1,
    "edges": {
      "ANY_ADDITIONAL_PROPERTY": {
        "nodeIds": [
          1
        ]
      }
    },
    "created": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "metaInfo": {
      "omissions": [
        {
          "omitted": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          },
          "patch": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          }
        }
      ]
    }
  },
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  },
  "destinations": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "templateName": "text",
      "name": "text",
      "description": "text",
      "config": {},
      "status": "NS_DEFAULT",
      "sourceId": 1,
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "type": "DEFAULT_TYPE",
      "origin": "NODE_ORIGIN_DEFAULT",
      "usageType": "UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "transforms": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "name": "text",
      "description": "text",
      "pipelineId": 1,
      "config": {},
      "status": "NS_DEFAULT",
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "isTransformGroup": true,
      "origin": "NODE_ORIGIN_DEFAULT",
      "templateName": "text",
      "processorType": "PROCESSOR_TYPE_UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "archivalDestination": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "sourceId": 1,
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "usageType": "UNSPECIFIED",
    "siteFilenames": [
      "text"
    ],
    "userVisible": true
  },
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

Given a list of node IDs, this function returns a map that associates each node ID with a list of pipeline IDs it is connected to. If no results are found, an empty map is returned. If the pipeline status field is empty in the request, all pipeline statuses will be considered by default. Similarly, if the pipeline type field is empty in the request, all pipeline types will be considered by default. Please note that node IDs are required for this function to work properly.

get

Fetch mapping of nodes to pipeline IDs.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
nodeIdsinteger · uint64[]Optional
Responses
200

A successful response.

application/json
get
/gateway/v1/node-pipelineids
GET /gateway/v1/node-pipelineids HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "nodePipelineIds": {
    "ANY_ADDITIONAL_PROPERTY": {
      "pipelineIds": [
        1
      ]
    }
  },
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

Add a new pipeline with the given site_id, display_name and description. This returns the pipeline object with fields like id, status, created_at, updated_at.

post

Create a new pipeline.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
Responses
200

A successful response.

application/json
post
/gateway/v1/pipeline
POST /gateway/v1/pipeline HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 415

{
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  }
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  }
}

Update the pipeline for the given id with the provided site_id, display_name, description and status. If any change has happened on the object in between, this call should fail. previous_update_time must be set to the last available site's update time. This ensures that the object hasn't updated in between.

patch

Create a new pipeline.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
lastUpdatedstring · date-timeOptional
Responses
200

A successful response.

application/json
patch
/gateway/v1/pipeline
PATCH /gateway/v1/pipeline HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 456

{
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  },
  "lastUpdated": "2025-11-27T04:35:25.542Z"
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  }
}

Replace pipeline graph for the given pipeline_id with the given edges. A new graph is created on every update request and linked to the pipeline with it's the next_graph_version field. It returns the graph object. If no version exists in the request, a new graph is created.

put

Upload or replace a pipeline graph.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
pipelineIdinteger · uint64Optional
lastUpdatedstring · date-timeOptional
disableAnalyticsbooleanOptional

Disable analytics is a hack to prevent pipeline-graph creation API from dereferencing SSA / PE nodes that are under construction. SSA and PE nodes are created within a txn and RPC to create pipeline-subgraph and deploy it is issued midway thru the txn. Because we attach analytics subgraph in more complex topologies now such as on-the-sink-dummy (and not just on the source node) the augmentation algorithm needs to know the identity of nodes. With our current (broken) design with nodes and edges of the graph being managed by different services, we either need to abandon txn or use this hack so we prevent pipeline-service from trying to augment the analytics subgraph being made for source-analytics. Once we merge pipeline-manager and site-manager, we'll be ready to remove this hack. We use disable and not enable here because this helps contain the hack within pipeline and site-manager (which would eventually merge and allow removal of this hack). Making it enable would require UI to be aware of it and that would be worse.

Responses
200

A successful response.

application/json
put
/gateway/v1/pipeline-graph
PUT /gateway/v1/pipeline-graph HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 483

{
  "pipelineId": 1,
  "edges": {
    "ANY_ADDITIONAL_PROPERTY": {
      "nodeIds": [
        1
      ]
    }
  },
  "lastUpdated": "2025-11-27T04:35:25.542Z",
  "versionInfo": {
    "pipelineId": 1,
    "version": 1,
    "name": "text",
    "description": "text",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deployedAt": "2025-11-27T04:35:25.542Z",
    "updatedBy": "text"
  },
  "metaInfo": {
    "omissions": [
      {
        "omitted": {
          "ANY_ADDITIONAL_PROPERTY": {
            "nodeIds": [
              1
            ]
          }
        },
        "patch": {
          "ANY_ADDITIONAL_PROPERTY": {
            "nodeIds": [
              1
            ]
          }
        }
      }
    ]
  },
  "disableAnalytics": true
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "graph": {
    "version": 1,
    "pipelineId": 1,
    "edges": {
      "ANY_ADDITIONAL_PROPERTY": {
        "nodeIds": [
          1
        ]
      }
    },
    "created": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "metaInfo": {
      "omissions": [
        {
          "omitted": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          },
          "patch": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          }
        }
      ]
    }
  },
  "versionInfo": {
    "pipelineId": 1,
    "version": 1,
    "name": "text",
    "description": "text",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deployedAt": "2025-11-27T04:35:25.542Z",
    "updatedBy": "text"
  }
}

List all pipeline ids and names for the given site(s).

get

List all pipeline names across sites.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
siteIdsinteger · uint64[]Optional
Responses
200

A successful response.

application/json
get
/gateway/v1/pipeline-names
GET /gateway/v1/pipeline-names HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "sitePipelineNames": {
    "ANY_ADDITIONAL_PROPERTY": {
      "pipelineNames": [
        {
          "id": 1,
          "name": "text",
          "status": "DEFAULT"
        }
      ]
    }
  },
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

List all pipeline status types valid for given site(s). If no sites provided, all possible statuses are returned.

get

List all possible pipeline status types.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
siteIdsinteger · uint64[]Optional
Responses
200

A successful response.

application/json
get
/gateway/v1/pipeline-status-types
GET /gateway/v1/pipeline-status-types HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "pipelineStatusTypes": [
    {
      "status": "DEFAULT",
      "name": "text"
    }
  ],
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

PerformPipelineAction allows clients to perform actions on a pipeline.

patch

Perform actions on pipeline (pause, resume, etc).

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Body
pipelineIdinteger · uint64Optional
graphVersioninteger · int64Optional

Graph version.

actionstring · enumOptional
  • NOP: No operation.
  • DEPLOY: Deploy the pipeline.
  • DELETE: Delete the pipeline.
  • PAUSE: Pause the pipeline.
  • BYPASS: Bypass the pipeline.
  • CANCEL: Cancel the pending action.
Default: NOPPossible values:
Responses
200

A successful response.

application/json
patch
/gateway/v1/pipeline/action
PATCH /gateway/v1/pipeline/action HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 263

{
  "pipelineId": 1,
  "graphVersion": 1,
  "action": "NOP",
  "versionInfo": {
    "pipelineId": 1,
    "version": 1,
    "name": "text",
    "description": "text",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deployedAt": "2025-11-27T04:35:25.542Z",
    "updatedBy": "text"
  }
}
{
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "requestId": "text"
}

List all pipelines for the given sites. Can be filtered by pipeline_ids, source_ids and statuses. This is a paginated API with values from [offset, offset + page_size).

get

List all deployed pipelines.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
siteIdsinteger · uint64[]Optional

Optional. Pipelines will be filtered on site_ids, if present else no filtering on this.

pipelineIdsinteger · uint64[]Optional

Optional. Pipelines will be filtered on ids, if present else no filtering on this.

sourceIdsinteger · uint64[]Optional
pagination.offsetinteger · int64Optional
pagination.limitinteger · int64Optional
pagination.totalCountinteger · int64Optional
pagination.ordering.fieldNamestringOptional
pagination.ordering.descendingbooleanOptional
sinkIdsinteger · uint64[]Optional

Optional. Sink ids of the pipelines, if present else no filtering on this.

namesstring[]Optional

Optional. Pipeline names of the pipelines, if present else no filtering on this.

Responses
200

A successful response.

application/json
get
/gateway/v1/pipelines
GET /gateway/v1/pipelines HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "pipelines": [
    {
      "id": 1,
      "siteId": 1,
      "name": "text",
      "description": "text",
      "status": "DEFAULT",
      "createdAt": "2025-11-27T04:35:25.542Z",
      "updatedAt": "2025-11-27T04:35:25.542Z",
      "deletedAt": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "deployedGraphVersion": 1,
      "pendingGraphVersion": 1,
      "latestGraphVersion": 1,
      "sourceId": 1,
      "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
      "pendingAction": "NOP",
      "analytics": [
        "SinkSSA"
      ]
    }
  ],
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  },
  "pagination": {
    "offset": 1,
    "limit": 1,
    "totalCount": 1,
    "ordering": {
      "fieldName": "text",
      "descending": true
    }
  }
}
get

Download a serialized pipeline specification.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Query parameters
siteIdinteger · uint64Optional
pipelineIdinteger · uint64Optional

ID here represents the ID of the pipeline in DB.

pipelineVersioninteger · int64Optional

TODO: Default to latest pipeline if not specified

Responses
200

A successful response.

application/json
get
/gateway/v1/serialize-pipeline
GET /gateway/v1/serialize-pipeline HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "pipeline": {
    "id": 1,
    "siteId": 1,
    "name": "text",
    "description": "text",
    "status": "DEFAULT",
    "createdAt": "2025-11-27T04:35:25.542Z",
    "updatedAt": "2025-11-27T04:35:25.542Z",
    "deletedAt": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "deployedGraphVersion": 1,
    "pendingGraphVersion": 1,
    "latestGraphVersion": 1,
    "sourceId": 1,
    "pipelineType": "PIPELINE_TYPE_UNSPECIFIED",
    "pendingAction": "NOP",
    "analytics": [
      "SinkSSA"
    ]
  },
  "pipelineGraph": {
    "version": 1,
    "pipelineId": 1,
    "edges": {
      "ANY_ADDITIONAL_PROPERTY": {
        "nodeIds": [
          1
        ]
      }
    },
    "created": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "metaInfo": {
      "omissions": [
        {
          "omitted": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          },
          "patch": {
            "ANY_ADDITIONAL_PROPERTY": {
              "nodeIds": [
                1
              ]
            }
          }
        }
      ]
    }
  },
  "source": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "archivalInfo": {
      "sinkId": 1,
      "sinkName": "text",
      "sinkType": "DEFAULT_TYPE",
      "pipelineId": 1,
      "pipelineName": "text",
      "pipelineStatus": "DEFAULT"
    },
    "logFormat": "LOG_FORMAT_UNSPECIFIED",
    "preprocessorConfig": {},
    "port": 1,
    "pushBased": true,
    "pushSourceAddress": "text",
    "k8sInternalSvcUrl": "text",
    "siteFilenames": [
      "text"
    ],
    "sourceConfigs": [
      {
        "id": 1,
        "sourceId": 1,
        "templateId": 1,
        "templateName": "text",
        "category": "DEFAULT",
        "config": {},
        "position": 1,
        "templateVersion": 1
      }
    ],
    "userVisible": true
  },
  "destinations": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "templateName": "text",
      "name": "text",
      "description": "text",
      "config": {},
      "status": "NS_DEFAULT",
      "sourceId": 1,
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "type": "DEFAULT_TYPE",
      "origin": "NODE_ORIGIN_DEFAULT",
      "usageType": "UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "transforms": [
    {
      "id": 1,
      "siteId": 1,
      "templateId": 1,
      "templateVersion": 1,
      "name": "text",
      "description": "text",
      "pipelineId": 1,
      "config": {},
      "status": "NS_DEFAULT",
      "created": "2025-11-27T04:35:25.542Z",
      "updated": "2025-11-27T04:35:25.542Z",
      "createdBy": "text",
      "updatedBy": "text",
      "isTransformGroup": true,
      "origin": "NODE_ORIGIN_DEFAULT",
      "templateName": "text",
      "processorType": "PROCESSOR_TYPE_UNSPECIFIED",
      "siteFilenames": [
        "text"
      ],
      "userVisible": true
    }
  ],
  "archivalDestination": {
    "id": 1,
    "siteId": 1,
    "templateId": 1,
    "templateVersion": 1,
    "templateName": "text",
    "name": "text",
    "description": "text",
    "config": {},
    "status": "NS_DEFAULT",
    "sourceId": 1,
    "created": "2025-11-27T04:35:25.542Z",
    "updated": "2025-11-27T04:35:25.542Z",
    "createdBy": "text",
    "updatedBy": "text",
    "type": "DEFAULT_TYPE",
    "origin": "NODE_ORIGIN_DEFAULT",
    "usageType": "UNSPECIFIED",
    "siteFilenames": [
      "text"
    ],
    "userVisible": true
  },
  "status": {
    "code": "OK",
    "errorMessage": "text",
    "userMessageCode": "DEFAULT"
  }
}

Delete a pipeline by ID

delete

Deprecated: Use PerformPipelineAction instead.

Deletes the pipeline with the specified ID.

Authorizations
authorizationstringRequired

JWT Authorization header using the Bearer scheme. Example: 'Bearer {token}'

Path parameters
pipelineIdinteger · uint64Required

ID of the pipeline to delete

Responses
200

Pipeline deleted successfully

application/json
delete
/gateway/v1/pipeline/{pipelineId}
DELETE /gateway/v1/pipeline/{pipelineId} HTTP/1.1
Host: p01-api.observo.ai
authorization: YOUR_API_KEY
Accept: */*
{
  "code": "OK",
  "errorMessage": "text",
  "userMessageCode": "DEFAULT"
}

Last updated

Was this helpful?