Zuplo · Arazzo Workflow

Zuplo Provision a Secure Tunnel

Version 1.0.0

Create a tunnel and read it back to retrieve the connection token.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI GatewayAPI ManagementGatewaysPlatformArazzoWorkflows

Provider

zuplo

Workflows

provision-tunnel
Create a tunnel and read its connection token.
Creates a tunnel for the account, then reads it back to surface the tunnel id and the token used to connect the tunnel agent.
2 steps inputs: accountName, apiKey, name outputs: token, tunnelId
1
createTunnel
TunnelService_create
Create the tunnel for the account.
2
readTunnel
TunnelService_read
Read the tunnel back to retrieve the token used to connect the tunnel agent.

Source API Descriptions

Arazzo Workflow Specification

zuplo-provision-tunnel-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Zuplo Provision a Secure Tunnel
  summary: Create a tunnel and read it back to retrieve the connection token.
  description: >-
    Tunnels expose services running on bare metal, on-premises, or non-cloud
    providers to the Zuplo platform. This workflow creates a tunnel for the
    account and reads it back to retrieve the token that the tunnel agent uses
    to connect. Every step spells out its request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: zuploApi
  url: ../openapi/zuplo-openapi.yml
  type: openapi
workflows:
- workflowId: provision-tunnel
  summary: Create a tunnel and read its connection token.
  description: >-
    Creates a tunnel for the account, then reads it back to surface the tunnel
    id and the token used to connect the tunnel agent.
  inputs:
    type: object
    required:
    - accountName
    - apiKey
    - name
    properties:
      accountName:
        type: string
        description: The Zuplo account name (Settings > Project Information).
      apiKey:
        type: string
        description: The Zuplo Developer API key, sent as a Bearer token.
      name:
        type: string
        description: A friendly name for the tunnel, matching ^[a-zA-Z0-9-]{3,24}$.
  steps:
  - stepId: createTunnel
    description: Create the tunnel for the account.
    operationId: TunnelService_create
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: accountName
      in: path
      value: $inputs.accountName
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      tunnelId: $response.body#/tunnelId
  - stepId: readTunnel
    description: >-
      Read the tunnel back to retrieve the token used to connect the tunnel
      agent.
    operationId: TunnelService_read
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: accountName
      in: path
      value: $inputs.accountName
    - name: tunnelId
      in: path
      value: $steps.createTunnel.outputs.tunnelId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      tunnelId: $response.body#/tunnelId
      name: $response.body#/name
      token: $response.body#/token
  outputs:
    tunnelId: $steps.readTunnel.outputs.tunnelId
    token: $steps.readTunnel.outputs.token