arazzo: 1.0.1 info: title: Oracle GoldenGate Stop Replicat Gracefully summary: Capture a Replicat's status, issue a STOP command, and poll until stopped. description: >- Brings a Replicat down cleanly. It records the current runtime status, issues a STOP command, then polls the status until the process reports stopped. 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: stop-replicat-gracefully summary: Stop a running Replicat and confirm it reaches a stopped state. description: >- Reads current status, issues STOP, and polls until the Replicat is stopped. inputs: type: object required: - authorization - replicat properties: authorization: type: string description: HTTP Basic Authorization header value. replicat: type: string description: Name of the Replicat process to stop. steps: - stepId: getStatus description: Capture the current runtime status of the Replicat before stopping it. operationId: getReplicatStatus parameters: - name: Authorization in: header value: $inputs.authorization - name: replicat in: path value: $inputs.replicat successCriteria: - condition: $statusCode == 200 outputs: startingStatus: $response.body#/status - stepId: stopReplicat description: Issue a STOP command to the Replicat process. operationId: issueReplicatCommand parameters: - name: Authorization in: header value: $inputs.authorization - name: replicat in: path value: $inputs.replicat requestBody: contentType: application/json payload: action: stop successCriteria: - condition: $statusCode == 200 outputs: commandMessage: $response.body#/response/message - stepId: pollStopped description: >- Poll the Replicat status until it reports stopped, looping while it is still running. operationId: getReplicatStatus parameters: - name: Authorization in: header value: $inputs.authorization - name: replicat in: path value: $inputs.replicat 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 outputs: finalStatus: $steps.pollStopped.outputs.status