arazzo: 1.0.1 info: title: Adobe Creative Cloud PDF Export to Format summary: Upload a PDF, export it to another format, then retrieve the converted result download URI. description: >- Converts an Adobe PDF to a Word, Excel, PowerPoint, RTF, or image format. The workflow creates an upload asset for the source PDF, submits the export-PDF job for it with the requested target format, and captures the 201 Location header that points at the opaque job status URL. That status URL is not modeled as an operation in the description, so once the job has completed the workflow retrieves a presigned download URI for the converted result asset. Every step spells out its request inline, including the bearer token and x-api-key, so the flow can be read and run without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: pdfServicesApi url: ../openapi/adobe-pdf-services-api-openapi-original.yml type: openapi workflows: - workflowId: pdf-export-to-format summary: Export an uploaded PDF to another format and get the download URI. description: >- Creates an upload asset for a PDF, submits an export job to the requested target format, and retrieves the converted result asset download URI. inputs: type: object required: - accessToken - apiKey - targetFormat - resultAssetID properties: accessToken: type: string description: OAuth 2.0 bearer access token from the Adobe IMS token endpoint. apiKey: type: string description: Client ID (x-api-key) from the Adobe Developer Console. targetFormat: type: string description: Target export format (docx, doc, pptx, rtf, xlsx, jpeg, or png). resultAssetID: type: string description: Asset ID of the converted result asset to fetch a download URI for. steps: - stepId: createUploadAsset description: >- Create an upload asset for the source PDF, obtaining an asset ID and a presigned upload URI. operationId: createAsset parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey requestBody: contentType: application/json payload: mediaType: application/pdf successCriteria: - condition: $statusCode == 200 outputs: assetID: $response.body#/assetID uploadUri: $response.body#/uploadUri - stepId: submitExport description: >- Submit the export-PDF job referencing the uploaded asset and the target format. Responds 201 with a Location header for job status. operationId: exportPdf parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey requestBody: contentType: application/json payload: assetID: $steps.createUploadAsset.outputs.assetID targetFormat: $inputs.targetFormat successCriteria: - condition: $statusCode == 201 outputs: jobLocation: $response.headers.Location - stepId: getResultDownloadUri description: >- Retrieve the presigned download URI for the converted result asset once the export job has completed. operationId: getAsset parameters: - name: Authorization in: header value: "Bearer $inputs.accessToken" - name: x-api-key in: header value: $inputs.apiKey - name: assetID in: path value: $inputs.resultAssetID successCriteria: - condition: $statusCode == 200 outputs: downloadUri: $response.body#/downloadUri outputs: sourceAssetID: $steps.createUploadAsset.outputs.assetID jobLocation: $steps.submitExport.outputs.jobLocation downloadUri: $steps.getResultDownloadUri.outputs.downloadUri