AWS SAR Browse And Inspect Applications

Version 1.0.0

List owned applications, inspect the first one in detail, and enumerate its published versions.

1 workflow 1 source API 1 provider
View Spec View on GitHub Application RepositoryLambdaSAMServerlessArazzoWorkflows

Provider

amazon-serverless-application-repository

Workflows

browse-applications
List applications, then inspect the first one and its versions.
Lists owned applications and, when at least one exists, reads the first application's details and lists its versions.
3 steps inputs: maxItems, nextToken outputs: applications, inspectedApplicationId, versions
1
listApplications
ListApplications
List the applications owned by the requester, paginated by the supplied maxItems and nextToken.
2
getApplication
GetApplication
Read the full details of the first application returned by the list.
3
listVersions
ListApplicationVersions
Enumerate the published versions of the inspected application.

Source API Descriptions

Arazzo Workflow Specification

amazon-serverless-application-repository-browse-applications-workflow.yml Raw ↑
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