Amazon EventBridge Pipes · Arazzo Workflow

EventBridge Pipes Create, Start and Confirm

Version 1.0.0

Create a pipe in the STOPPED state, explicitly start it, then describe it to confirm the running configuration.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesEvent-DrivenIntegrationMessagingServerlessArazzoWorkflows

Provider

amazon-eventbridge-pipes

Workflows

create-start-describe
Create a stopped pipe, start it, then describe it to confirm.
Creates a pipe in the STOPPED state, issues StartPipe to begin processing, and reads the pipe back with DescribePipe to surface its current and desired state plus its full source/target configuration.
3 steps inputs: description, name, roleArn, source, target outputs: confirmedState, pipeArn, startedState
1
createStopped
CreatePipe
Create the pipe with DesiredState STOPPED so it is provisioned but does not begin processing events until explicitly started.
2
startPipe
StartPipe
Request that the newly created pipe transition to the RUNNING state so it begins reading from the source and delivering to the target.
3
confirmPipe
DescribePipe
Read the pipe back to confirm its reported state and surface its full source, target, and enrichment configuration.

Source API Descriptions

Arazzo Workflow Specification

amazon-eventbridge-pipes-create-start-describe-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: EventBridge Pipes Create, Start and Confirm
  summary: Create a pipe in the STOPPED state, explicitly start it, then describe it to confirm the running configuration.
  description: >-
    A common operational pattern is to provision a pipe in a paused (STOPPED)
    state so its configuration can be reviewed, then deliberately start it when
    ready. This workflow creates a pipe with DesiredState STOPPED, calls
    StartPipe to request the RUNNING state, and finally calls DescribePipe to
    confirm the pipe's reported state and read back its full configuration. Each
    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: pipesApi
  url: ../openapi/amazon-eventbridge-pipes-openapi.yml
  type: openapi
workflows:
- workflowId: create-start-describe
  summary: Create a stopped pipe, start it, then describe it to confirm.
  description: >-
    Creates a pipe in the STOPPED state, issues StartPipe to begin processing,
    and reads the pipe back with DescribePipe to surface its current and desired
    state plus its full source/target configuration.
  inputs:
    type: object
    required:
    - name
    - roleArn
    - source
    - target
    properties:
      name:
        type: string
        description: The name of the pipe to create (1-64 chars, ^[\.\-_A-Za-z0-9]+$).
      roleArn:
        type: string
        description: The ARN of the IAM role that allows the pipe to send data to the target.
      source:
        type: string
        description: The ARN of the source resource for the pipe.
      target:
        type: string
        description: The ARN of the target resource for the pipe.
      description:
        type: string
        description: An optional description of the pipe.
  steps:
  - stepId: createStopped
    description: >-
      Create the pipe with DesiredState STOPPED so it is provisioned but does
      not begin processing events until explicitly started.
    operationId: CreatePipe
    parameters:
    - name: Name
      in: path
      value: $inputs.name
    requestBody:
      contentType: application/json
      payload:
        RoleArn: $inputs.roleArn
        Source: $inputs.source
        Target: $inputs.target
        Description: $inputs.description
        DesiredState: STOPPED
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pipeArn: $response.body#/Arn
      currentState: $response.body#/CurrentState
      desiredState: $response.body#/DesiredState
  - stepId: startPipe
    description: >-
      Request that the newly created pipe transition to the RUNNING state so it
      begins reading from the source and delivering to the target.
    operationId: StartPipe
    parameters:
    - name: Name
      in: path
      value: $inputs.name
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      currentState: $response.body#/CurrentState
      desiredState: $response.body#/DesiredState
      lastModifiedTime: $response.body#/LastModifiedTime
  - stepId: confirmPipe
    description: >-
      Read the pipe back to confirm its reported state and surface its full
      source, target, and enrichment configuration.
    operationId: DescribePipe
    parameters:
    - name: Name
      in: path
      value: $inputs.name
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      currentState: $response.body#/CurrentState
      desiredState: $response.body#/DesiredState
      source: $response.body#/Source
      target: $response.body#/Target
      stateReason: $response.body#/StateReason
  outputs:
    pipeArn: $steps.createStopped.outputs.pipeArn
    startedState: $steps.startPipe.outputs.currentState
    confirmedState: $steps.confirmPipe.outputs.currentState