arazzo: 1.0.1
info:
title: AWS API Gateway Decommission an HTTP API
summary: Confirm an HTTP API, check for published stages, and delete the API when it is safe to remove.
description: >-
A guarded teardown of an Amazon API Gateway V2 API. The workflow confirms the
API exists, lists its stages, and branches: when no stages are published it
deletes the API, and when stages still exist it stops at the inventory so an
operator can decide. Because getStages collides with the V1 description it is
addressed through the V2 source. 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: apisApi
url: ../openapi/aws-api-gateway-apis-api-openapi.yml
type: openapi
- name: stagesApi
url: ../openapi/aws-api-gateway-stages-api-openapi.yml
type: openapi
workflows:
- workflowId: decommission-http-api
summary: Delete an API only when it has no published stages.
description: >-
Confirms an API, lists its stages, and branches to delete the API when no
stages are present.
inputs:
type: object
required:
- apiId
properties:
apiId:
type: string
description: Identifier of the API to decommission.
steps:
- stepId: confirmApi
description: Confirm the API exists before attempting teardown.
operationId: getApi
parameters:
- name: api_id
in: path
value: $inputs.apiId
successCriteria:
- condition: $statusCode == 200
outputs:
apiName: $response.body#/Name
- stepId: listStages
description: List stages to decide whether the API is safe to delete.
operationId: $sourceDescriptions.stagesApi.getStages
parameters:
- name: api_id
in: path
value: $inputs.apiId
successCriteria:
- condition: $statusCode == 200
outputs:
stages: $response.body#/Items
onSuccess:
- name: noStages
type: goto
stepId: deleteApi
criteria:
- context: $response.body
condition: $.Items.length == 0
type: jsonpath
- name: stagesExist
type: end
criteria:
- context: $response.body
condition: $.Items.length > 0
type: jsonpath
- stepId: deleteApi
description: Delete the API now that no stages remain.
operationId: deleteApi
parameters:
- name: api_id
in: path
value: $inputs.apiId
successCriteria:
- condition: $statusCode == 204
outputs:
statusCode: $statusCode
outputs:
apiName: $steps.confirmApi.outputs.apiName
stages: $steps.listStages.outputs.stages
deleteStatus: $steps.deleteApi.outputs.statusCode
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.