arazzo: 1.0.1 info: title: AWS SAR Browse And Inspect Applications summary: List owned applications, inspect the first one in detail, and enumerate its published versions. description: >- A discovery flow for the AWS Serverless Application Repository. The workflow lists the applications owned by the requester, branches on whether any applications were returned, and for the first application reads its full details and then enumerates its published versions. 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: serverlessRepoApi url: ../openapi/amazon-serverless-application-repository-openapi.yml type: openapi workflows: - workflowId: browse-applications summary: List applications, then inspect the first one and its versions. description: >- Lists owned applications and, when at least one exists, reads the first application's details and lists its versions. inputs: type: object properties: maxItems: type: integer description: The total number of applications to return. nextToken: type: string description: A token to specify where to start paginating. steps: - stepId: listApplications description: >- List the applications owned by the requester, paginated by the supplied maxItems and nextToken. operationId: ListApplications parameters: - name: maxItems in: query value: $inputs.maxItems - name: nextToken in: query value: $inputs.nextToken successCriteria: - condition: $statusCode == 200 outputs: applications: $response.body#/applications firstApplicationId: $response.body#/applications/0/applicationId nextToken: $response.body#/nextToken onSuccess: - name: hasApplications type: goto stepId: getApplication criteria: - context: $response.body condition: $.applications.length > 0 type: jsonpath - name: noApplications type: end criteria: - context: $response.body condition: $.applications.length == 0 type: jsonpath - stepId: getApplication description: >- Read the full details of the first application returned by the list. operationId: GetApplication parameters: - name: applicationId in: path value: $steps.listApplications.outputs.firstApplicationId successCriteria: - condition: $statusCode == 200 outputs: applicationId: $response.body#/applicationId name: $response.body#/name author: $response.body#/author - stepId: listVersions description: >- Enumerate the published versions of the inspected application. operationId: ListApplicationVersions parameters: - name: applicationId in: path value: $steps.getApplication.outputs.applicationId successCriteria: - condition: $statusCode == 200 outputs: versions: $response.body#/versions outputs: applications: $steps.listApplications.outputs.applications inspectedApplicationId: $steps.getApplication.outputs.applicationId versions: $steps.listVersions.outputs.versions