Xeonr Developer Docs

UpsertPipeline

POST
/uplim.api.v1.PipelineAdminService/UpsertPipeline

Create-or-update by (integration_id, content_type_urn, resource_kind). Steps are replaced atomically — the request's pipeline.steps is the new full list, ordered by their position in the array.

AuthorizationBearer <token>

JWT access token obtained via OAuth2 flow or service account

In: header

Header Parameters

Connect-Protocol-Version*number

Define the version of the Connect protocol

Value in1
Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

pipeline?

The pipeline to write. id may be empty for create. integration_id, content_type_urn, and resource_kind together identify the row; those three are immutable post-create (changing them = new pipeline). version, status, created_at, updated_at, published_at are server-controlled and ignored on writes. steps is the full ordered list — replaces any prior steps atomically.

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.PipelineAdminService/UpsertPipeline" \  -H "Connect-Protocol-Version: 1" \  -H "Content-Type: application/json" \  -d '{}'
{
  "pipeline": {
    "id": "string",
    "integrationId": "string",
    "contentTypeUrn": "string",
    "resourceKind": "PIPELINE_RESOURCE_KIND_UNSPECIFIED",
    "version": 0,
    "status": "PIPELINE_STATUS_UNSPECIFIED",
    "steps": [
      {
        "stepId": "string",
        "kind": "PIPELINE_STEP_KIND_UNSPECIFIED",
        "exec": {
          "ref": "string",
          "inputs": {
            "property1": "string",
            "property2": "string"
          },
          "configJson": "string",
          "outputs": [
            {
              "slot": "string",
              "required": true,
              "blob": {
                "name": "string",
                "mimeHint": "string",
                "maxSizeBytes": 0
              }
            }
          ],
          "secrets": [
            {
              "name": "string",
              "from": "string"
            }
          ]
        }
      }
    ],
    "policy": {
      "maxRetriesPerStep": 5,
      "stepTimeoutSec": 1,
      "pipelineTimeoutSec": 0
    },
    "createdAt": "2023-01-15T01:30:15.01Z",
    "updatedAt": "2023-01-15T01:30:15.01Z",
    "publishedAt": "2023-01-15T01:30:15.01Z"
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}