arazzo: 1.0.1 info: title: Adobe Launch Register a Build Callback Webhook summary: Register a callback on a property to receive build notifications, then read it back. description: >- Callbacks are the webhook mechanism in Adobe Experience Platform Launch (Tags); they POST notifications to a URL when subscribed events (such as build completion) occur. This workflow registers a callback on a property with a target URL and an event subscription, then retrieves the callback by id to confirm it persisted. Each request is written inline using the JSON:API document shapes these endpoints require. version: 1.0.0 sourceDescriptions: - name: reactorApi url: ../openapi/reactor-api.yml type: openapi workflows: - workflowId: register-callback summary: Create a callback on a property and verify it by reading it back. description: >- Registers a callback subscription on the property and retrieves it to confirm the URL and subscription were stored. inputs: type: object required: - accessToken - apiKey - imsOrgId - propertyId - callbackUrl - subscription 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. propertyId: type: string description: The property the callback is registered on. callbackUrl: type: string description: The URL that callback notifications are POSTed to. subscription: type: string description: The event subscription string the callback listens for. steps: - stepId: createCallback description: Register a callback on the property with a URL and subscription. operationId: createCallback 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: propertyId in: path value: $inputs.propertyId requestBody: contentType: application/vnd.api+json payload: data: type: callbacks attributes: url: $inputs.callbackUrl subscriptions: - $inputs.subscription successCriteria: - condition: $statusCode == 201 outputs: callbackId: $response.body#/data/id - stepId: getCallback description: Read the callback back by id to confirm it persisted. operationId: getCallback 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: callbackId in: path value: $steps.createCallback.outputs.callbackId successCriteria: - condition: $statusCode == 200 outputs: callbackId: $response.body#/data/id url: $response.body#/data/attributes/url outputs: callbackId: $steps.getCallback.outputs.callbackId url: $steps.getCallback.outputs.url