Viam · Arazzo Workflow

Viam Data Pipeline Lifecycle

Version 1.0.0

Create a scheduled MQL pipeline, resolve it, enable it, and list its runs.

1 workflow 1 source API 1 provider
View Spec View on GitHub RoboticsEdge AIFleet ManagementComputer VisionMachine LearningIoTEmbeddedgRPCArazzoWorkflows

Provider

viam

Workflows

data-pipeline-lifecycle
Create an MQL pipeline, resolve its id, enable it, and list runs.
Creates a scheduled MQL data pipeline, lists pipelines to resolve the new id, enables it, and retrieves its run history.
4 steps inputs: apiKey, mqlBinary, organizationId, pipelineName, schedule outputs: pipelineId
1
createPipeline
createDataPipeline
Create a scheduled MQL data pipeline in the organization.
2
resolvePipeline
listDataPipelines
List pipelines in the organization to resolve the new pipeline id.
3
enablePipeline
enableDataPipeline
Enable the newly created pipeline so it begins running on schedule.
4
listRuns
listDataPipelineRuns
Retrieve the run history for the enabled pipeline.

Source API Descriptions

Arazzo Workflow Specification

viam-data-pipeline-lifecycle-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Viam Data Pipeline Lifecycle
  summary: Create a scheduled MQL pipeline, resolve it, enable it, and list its runs.
  description: >-
    Data pipelines are scheduled MQL aggregations over captured machine data.
    This flow creates a pipeline on a cron schedule, lists pipelines to resolve
    the new id, enables it, and reads its run history. Each request body is
    inlined so the lifecycle can be executed directly against the Viam Data
    Pipelines API.
  version: 1.0.0
sourceDescriptions:
- name: dataPipelinesApi
  url: ../openapi/viam-data-pipelines-api-openapi.yml
  type: openapi
workflows:
- workflowId: data-pipeline-lifecycle
  summary: Create an MQL pipeline, resolve its id, enable it, and list runs.
  description: >-
    Creates a scheduled MQL data pipeline, lists pipelines to resolve the new id,
    enables it, and retrieves its run history.
  inputs:
    type: object
    required:
    - apiKey
    - organizationId
    - pipelineName
    - mqlBinary
    - schedule
    properties:
      apiKey:
        type: string
        description: Viam API key value sent in the key header.
      organizationId:
        type: string
        description: The organization the pipeline belongs to.
      pipelineName:
        type: string
        description: Name for the new data pipeline.
      mqlBinary:
        type: array
        description: The MQL pipeline stages encoded as a byte array.
        items:
          type: string
      schedule:
        type: string
        description: Cron expression that schedules the pipeline.
  steps:
  - stepId: createPipeline
    description: Create a scheduled MQL data pipeline in the organization.
    operationId: createDataPipeline
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
        name: $inputs.pipelineName
        mql_binary: $inputs.mqlBinary
        schedule: $inputs.schedule
    successCriteria:
    - condition: $statusCode == 200
  - stepId: resolvePipeline
    description: List pipelines in the organization to resolve the new pipeline id.
    operationId: listDataPipelines
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pipelineId: $response.body#/data_pipelines/0/id
  - stepId: enablePipeline
    description: Enable the newly created pipeline so it begins running on schedule.
    operationId: enableDataPipeline
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        id: $steps.resolvePipeline.outputs.pipelineId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: listRuns
    description: Retrieve the run history for the enabled pipeline.
    operationId: listDataPipelineRuns
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        id: $steps.resolvePipeline.outputs.pipelineId
        page_size: 10
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    pipelineId: $steps.resolvePipeline.outputs.pipelineId