Viam · Arazzo Workflow

Viam Onboard an Organization Member

Version 1.0.0

Verify an organization, invite a new member, and confirm the pending invite.

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

Provider

viam

Workflows

onboard-org-member
Confirm an org, invite a member with authorizations, and verify the invite.
Reads the organization to confirm it exists, creates an organization invite for the supplied email with authorizations, and lists members to confirm the pending invite appears.
3 steps inputs: apiKey, authorizations, email, organizationId outputs: organizationId
1
confirmOrg
getOrganization
Read the organization by id to confirm it exists before inviting.
2
inviteMember
createOrganizationInvite
Invite the supplied email to the organization with authorizations.
3
confirmInvite
listOrganizationMembers
List organization members and invites to confirm the pending invite.

Source API Descriptions

Arazzo Workflow Specification

viam-onboard-org-member-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Viam Onboard an Organization Member
  summary: Verify an organization, invite a new member, and confirm the pending invite.
  description: >-
    Adds a teammate to a Viam organization with role-based authorizations. The
    flow confirms the organization exists, sends an invite to the supplied email
    with the requested authorizations, and re-reads the member list so the
    pending invite can be confirmed. Each request body is inlined so the
    onboarding can be executed directly against the Viam Fleet Management API.
  version: 1.0.0
sourceDescriptions:
- name: fleetManagementApi
  url: ../openapi/viam-fleet-management-api-openapi.yml
  type: openapi
workflows:
- workflowId: onboard-org-member
  summary: Confirm an org, invite a member with authorizations, and verify the invite.
  description: >-
    Reads the organization to confirm it exists, creates an organization invite
    for the supplied email with authorizations, and lists members to confirm the
    pending invite appears.
  inputs:
    type: object
    required:
    - apiKey
    - organizationId
    - email
    - authorizations
    properties:
      apiKey:
        type: string
        description: Viam API key value sent in the key header.
      organizationId:
        type: string
        description: The organization to add the member to.
      email:
        type: string
        description: Email address of the person being invited.
      authorizations:
        type: array
        description: Authorization objects granting the member roles on resources.
        items:
          type: object
  steps:
  - stepId: confirmOrg
    description: Read the organization by id to confirm it exists before inviting.
    operationId: getOrganization
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      organizationId: $response.body#/organization/id
  - stepId: inviteMember
    description: Invite the supplied email to the organization with authorizations.
    operationId: createOrganizationInvite
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
        email: $inputs.email
        authorizations: $inputs.authorizations
    successCriteria:
    - condition: $statusCode == 200
  - stepId: confirmInvite
    description: List organization members and invites to confirm the pending invite.
    operationId: listOrganizationMembers
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    organizationId: $steps.confirmOrg.outputs.organizationId