arazzo: 1.0.1 info: title: Oracle GoldenGate Tear Down Extract summary: Stop an Extract, wait until it is stopped, then delete it. description: >- Decommissions an Extract safely. It issues a STOP command, polls the runtime status until the process reports stopped, and only then deletes the Extract so it is never removed while still running. 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: goldengateApi url: ../openapi/oracle-goldengate-rest-api-openapi.yml type: openapi workflows: - workflowId: teardown-extract summary: Stop and confirm an Extract is stopped before deleting it. description: >- Issues STOP, polls until the Extract is stopped, then deletes the process. inputs: type: object required: - authorization - extract properties: authorization: type: string description: HTTP Basic Authorization header value. extract: type: string description: Name of the Extract process to tear down. steps: - stepId: stopExtract description: Issue a STOP command to the Extract before deletion. operationId: issueExtractCommand parameters: - name: Authorization in: header value: $inputs.authorization - name: extract in: path value: $inputs.extract requestBody: contentType: application/json payload: action: stop successCriteria: - condition: $statusCode == 200 outputs: commandMessage: $response.body#/response/message - stepId: pollStopped description: >- Poll the Extract status until it reports stopped, looping while it is still running. operationId: getExtractStatus parameters: - name: Authorization in: header value: $inputs.authorization - name: extract in: path value: $inputs.extract successCriteria: - condition: $statusCode == 200 outputs: status: $response.body#/status onSuccess: - name: stillRunning type: goto stepId: pollStopped criteria: - context: $response.body condition: $.status == "running" type: jsonpath - name: stopped type: goto stepId: deleteExtract criteria: - context: $response.body condition: $.status == "stopped" type: jsonpath - stepId: deleteExtract description: Delete the Extract process now that it is confirmed stopped. operationId: deleteExtract parameters: - name: Authorization in: header value: $inputs.authorization - name: extract in: path value: $inputs.extract successCriteria: - condition: $statusCode == 204 outputs: deletedExtract: $inputs.extract outputs: deletedExtract: $steps.deleteExtract.outputs.deletedExtract