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