arazzo: 1.0.1 info: title: Oracle GoldenGate Provision Deployment summary: Create a GoldenGate deployment and poll until it reports running. description: >- Provisions a new GoldenGate deployment from an Oracle GoldenGate home and then polls the deployment record until its status reports 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: provision-deployment summary: Create a deployment and confirm it reaches a running state. description: >- Creates a deployment with auto-start enabled, then polls the deployment record until it reports running. inputs: type: object required: - authorization - deployment - oggHome properties: authorization: type: string description: HTTP Basic Authorization header value. deployment: type: string description: Name of the deployment to create. oggHome: type: string description: Oracle GoldenGate home directory path. description: type: string description: Human-readable description of the deployment. steps: - stepId: createDeployment description: Create the deployment with auto-start enabled. operationId: createDeployment parameters: - name: Authorization in: header value: $inputs.authorization - name: deployment in: path value: $inputs.deployment requestBody: contentType: application/json payload: oggHome: $inputs.oggHome description: $inputs.description autoStart: true successCriteria: - condition: $statusCode == 201 outputs: deploymentName: $response.body#/name deploymentStatus: $response.body#/status - stepId: pollDeployment description: >- Poll the deployment record until it reports running, looping while it is still stopped. operationId: getDeployment parameters: - name: Authorization in: header value: $inputs.authorization - name: deployment in: path value: $inputs.deployment successCriteria: - condition: $statusCode == 200 outputs: status: $response.body#/status oggVersion: $response.body#/oggVersion onSuccess: - name: stillStopped type: goto stepId: pollDeployment criteria: - context: $response.body condition: $.status == "stopped" type: jsonpath outputs: deploymentName: $steps.createDeployment.outputs.deploymentName finalStatus: $steps.pollDeployment.outputs.status oggVersion: $steps.pollDeployment.outputs.oggVersion