Viam · Arazzo Workflow

Viam Roll Out a Configuration Fragment

Version 1.0.0

Create a reusable config fragment and restart a machine part to adopt it.

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

Provider

viam

Workflows

fragment-rollout
Create a fragment, verify it, and restart a part to adopt the new config.
Creates a configuration fragment in the organization, lists fragments to resolve the new fragment id, reads it back to confirm, and marks the target machine part for restart.
4 steps inputs: apiKey, config, fragmentName, organizationId, partId outputs: fragmentId
1
createFragment
createFragment
Create a private configuration fragment in the organization.
2
resolveFragment
listFragments
List fragments in the organization to resolve the new fragment id.
3
verifyFragment
getFragment
Read the fragment back by id to confirm it was created.
4
restartPart
markPartForRestart
Mark the target machine part for restart so it adopts the new config.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Viam Roll Out a Configuration Fragment
  summary: Create a reusable config fragment and restart a machine part to adopt it.
  description: >-
    Fragments are versioned, reusable machine-configuration snippets. This flow
    creates a fragment in an organization, confirms it by reading it back, then
    marks a target machine part for restart so it can pick up the new
    configuration. Each request body is inlined so the rollout can be read and
    executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: fleetManagementApi
  url: ../openapi/viam-fleet-management-api-openapi.yml
  type: openapi
workflows:
- workflowId: fragment-rollout
  summary: Create a fragment, verify it, and restart a part to adopt the new config.
  description: >-
    Creates a configuration fragment in the organization, lists fragments to
    resolve the new fragment id, reads it back to confirm, and marks the target
    machine part for restart.
  inputs:
    type: object
    required:
    - apiKey
    - organizationId
    - fragmentName
    - config
    - partId
    properties:
      apiKey:
        type: string
        description: Viam API key value sent in the key header.
      organizationId:
        type: string
        description: The organization the fragment belongs to.
      fragmentName:
        type: string
        description: Name for the new fragment.
      config:
        type: object
        description: The machine configuration object captured by the fragment.
      partId:
        type: string
        description: The machine part id that should restart to adopt the fragment.
  steps:
  - stepId: createFragment
    description: Create a private configuration fragment in the organization.
    operationId: createFragment
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.fragmentName
        organization_id: $inputs.organizationId
        config: $inputs.config
        visibility: private
    successCriteria:
    - condition: $statusCode == 200
  - stepId: resolveFragment
    description: List fragments in the organization to resolve the new fragment id.
    operationId: listFragments
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
        show_public: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      fragmentId: $response.body#/fragments/0/id
  - stepId: verifyFragment
    description: Read the fragment back by id to confirm it was created.
    operationId: getFragment
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        id: $steps.resolveFragment.outputs.fragmentId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: restartPart
    description: Mark the target machine part for restart so it adopts the new config.
    operationId: markPartForRestart
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        part_id: $inputs.partId
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    fragmentId: $steps.resolveFragment.outputs.fragmentId

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/viam-fragment-rollout-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.