arazzo: 1.0.1 info: title: Adobe Launch Republish a Library's Latest Build summary: Find a library's most recent build, republish it, and poll until the republish completes. description: >- Republishing pushes an already-compiled Adobe Experience Platform Launch (Tags) build back out to its environment without recompiling. This workflow confirms the library, lists its builds to resolve the most recent build id, triggers a republish, and polls the build until it leaves the pending state, branching on success. Each request is written inline; the build status enum of pending, succeeded, and failed drives the poll loop. version: 1.0.0 sourceDescriptions: - name: reactorApi url: ../openapi/reactor-api.yml type: openapi workflows: - workflowId: republish-latest-build summary: Resolve a library's latest build, republish it, and wait for completion. description: >- Lists builds for a library, republishes the first returned build, and polls the build status until it is succeeded or failed. inputs: type: object required: - accessToken - apiKey - imsOrgId - libraryId properties: accessToken: type: string description: OAuth 2.0 Server-to-Server bearer access token from Adobe Developer Console. apiKey: type: string description: Client ID credential sent as the x-api-key header. imsOrgId: type: string description: Adobe Organization ID sent as the x-gw-ims-org-id header. libraryId: type: string description: Id of the library whose latest build should be republished. steps: - stepId: getLibrary description: Confirm the library exists before republishing. operationId: getLibrary parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: libraryId in: path value: $inputs.libraryId successCriteria: - condition: $statusCode == 200 outputs: libraryName: $response.body#/data/attributes/name - stepId: listBuilds description: List the library's builds, newest first, to resolve a build id. operationId: listBuildsForLibrary parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: libraryId in: path value: $inputs.libraryId successCriteria: - condition: $statusCode == 200 outputs: latestBuildId: $response.body#/data/0/id - stepId: republishBuild description: Republish the resolved build back to its environment. operationId: republishBuild parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: buildId in: path value: $steps.listBuilds.outputs.latestBuildId successCriteria: - condition: $statusCode == 200 outputs: buildId: $response.body#/data/id - stepId: pollBuild description: >- Retrieve the build and retry while it is still pending; end once the republish succeeds. operationId: getBuild parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: x-gw-ims-org-id in: header value: $inputs.imsOrgId - name: buildId in: path value: $steps.republishBuild.outputs.buildId successCriteria: - condition: $statusCode == 200 outputs: buildStatus: $response.body#/data/attributes/status onSuccess: - name: stillBuilding type: retry retryAfter: 5 retryLimit: 30 criteria: - context: $response.body condition: $.data.attributes.status == "pending" type: jsonpath - name: republishSucceeded type: end criteria: - context: $response.body condition: $.data.attributes.status == "succeeded" type: jsonpath outputs: libraryName: $steps.getLibrary.outputs.libraryName buildId: $steps.republishBuild.outputs.buildId buildStatus: $steps.pollBuild.outputs.buildStatus