Amazon Elastic Load Balancing · Arazzo Workflow

Amazon Elastic Load Balancing Decommission a Load Balancer

Version 1.0.0

Resolve a load balancer by name, inventory its listeners, then delete it.

1 workflow 1 source API 1 provider
View Spec View on GitHub Amazon Web ServicesHigh AvailabilityLoad BalancingNetworkingScalabilityArazzoWorkflows

Provider

amazon-elastic-load-balancing

Workflows

decommission-load-balancer
Inventory a load balancer's listeners and then delete the load balancer.
Chains describeLoadBalancers, describeListeners, deleteLoadBalancer, and a confirming describeLoadBalancers so a named load balancer is removed and its absence verified.
4 steps inputs: loadBalancerName outputs: deletedListeners, deletedLoadBalancerArn
1
findLoadBalancer
describeLoadBalancers
Resolve the load balancer ARN from its name.
2
inventoryListeners
describeListeners
List the listeners that will be deleted along with the load balancer for the decommission record.
3
deleteLoadBalancer
deleteLoadBalancer
Delete the load balancer, which also deletes its listeners.
4
confirmGone
describeLoadBalancers
Confirm the deleted load balancer no longer appears in the account.

Source API Descriptions

Arazzo Workflow Specification

amazon-elastic-load-balancing-decommission-load-balancer-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Elastic Load Balancing Decommission a Load Balancer
  summary: Resolve a load balancer by name, inventory its listeners, then delete it.
  description: >-
    Tears down a load balancer cleanly. It resolves the load balancer by name,
    inventories the listeners that will be removed alongside it for the audit
    trail, deletes the load balancer, and confirms it no longer appears. Each
    step spells out its request inline so the flow can be read and executed
    without opening the underlying OpenAPI description. The Elastic Load
    Balancing v2 API uses the AWS query protocol, so every operation is a GET
    whose inputs are carried as query parameters rather than a request body.
  version: 1.0.0
sourceDescriptions:
- name: elbv2Api
  url: ../openapi/amazon-elastic-load-balancing-openapi.yml
  type: openapi
workflows:
- workflowId: decommission-load-balancer
  summary: Inventory a load balancer's listeners and then delete the load balancer.
  description: >-
    Chains describeLoadBalancers, describeListeners, deleteLoadBalancer, and a
    confirming describeLoadBalancers so a named load balancer is removed and its
    absence verified.
  inputs:
    type: object
    required:
    - loadBalancerName
    properties:
      loadBalancerName:
        type: string
        description: The name of the load balancer to decommission.
  steps:
  - stepId: findLoadBalancer
    description: Resolve the load balancer ARN from its name.
    operationId: describeLoadBalancers
    parameters:
    - name: Names
      in: query
      value: $inputs.loadBalancerName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      loadBalancerArn: $response.body#/loadBalancers/0/loadBalancerArn
  - stepId: inventoryListeners
    description: >-
      List the listeners that will be deleted along with the load balancer for
      the decommission record.
    operationId: describeListeners
    parameters:
    - name: LoadBalancerArn
      in: query
      value: $steps.findLoadBalancer.outputs.loadBalancerArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      listeners: $response.body#/listeners
  - stepId: deleteLoadBalancer
    description: Delete the load balancer, which also deletes its listeners.
    operationId: deleteLoadBalancer
    parameters:
    - name: LoadBalancerArn
      in: query
      value: $steps.findLoadBalancer.outputs.loadBalancerArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deleted: $statusCode
  - stepId: confirmGone
    description: Confirm the deleted load balancer no longer appears in the account.
    operationId: describeLoadBalancers
    parameters:
    - name: Names
      in: query
      value: $inputs.loadBalancerName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      remaining: $response.body#/loadBalancers
  outputs:
    deletedLoadBalancerArn: $steps.findLoadBalancer.outputs.loadBalancerArn
    deletedListeners: $steps.inventoryListeners.outputs.listeners