AWS SAR Publish Application

Version 1.0.0

Create a new serverless application, add a version to it, then confirm the published result.

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

Provider

amazon-serverless-application-repository

Workflows

publish-application
Create an application, publish a version, and read it back.
Creates an application owned by the requester, creates a new application version from a packaged SAM template, and reads the application back to verify the published version.
3 steps inputs: author, description, homePageUrl, name, semanticVersion, sourceCodeUrl, templateBody outputs: applicationId, publishedVersion, version
1
createApplication
CreateApplication
Create a new application owned by the requester using the supplied name, author, and description.
2
createVersion
CreateApplicationVersion
Publish a new semantic version onto the newly created application using the supplied packaged SAM template.
3
getApplication
GetApplication
Read the application back, requesting the specific semantic version just published, to confirm it is attached.

Source API Descriptions

Arazzo Workflow Specification

amazon-serverless-application-repository-publish-application-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: AWS SAR Publish Application
  summary: Create a new serverless application, add a version to it, then confirm the published result.
  description: >-
    Walks the core publishing path for the AWS Serverless Application
    Repository. The workflow creates a brand new application, publishes a
    specific semantic version onto that application from a packaged AWS SAM
    template, and finally reads the application back to confirm the published
    version is attached. 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: publish-application
  summary: Create an application, publish a version, and read it back.
  description: >-
    Creates an application owned by the requester, creates a new application
    version from a packaged SAM template, and reads the application back to
    verify the published version.
  inputs:
    type: object
    required:
    - name
    - author
    - description
    - semanticVersion
    properties:
      name:
        type: string
        description: The name of the application to create.
      author:
        type: string
        description: The name of the author publishing the app.
      description:
        type: string
        description: The description of the application.
      homePageUrl:
        type: string
        description: A URL with more information about the application.
      semanticVersion:
        type: string
        description: The semantic version of the new application version (e.g. 1.0.0).
      templateBody:
        type: string
        description: The raw packaged AWS SAM template of your application.
      sourceCodeUrl:
        type: string
        description: A link to a public repository for the source code of your application.
  steps:
  - stepId: createApplication
    description: >-
      Create a new application owned by the requester using the supplied name,
      author, and description.
    operationId: CreateApplication
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        author: $inputs.author
        description: $inputs.description
        homePageUrl: $inputs.homePageUrl
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      applicationId: $response.body#/applicationId
  - stepId: createVersion
    description: >-
      Publish a new semantic version onto the newly created application using
      the supplied packaged SAM template.
    operationId: CreateApplicationVersion
    parameters:
    - name: applicationId
      in: path
      value: $steps.createApplication.outputs.applicationId
    requestBody:
      contentType: application/json
      payload:
        semanticVersion: $inputs.semanticVersion
        templateBody: $inputs.templateBody
        sourceCodeUrl: $inputs.sourceCodeUrl
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      semanticVersion: $response.body#/semanticVersion
      creationTime: $response.body#/creationTime
  - stepId: getApplication
    description: >-
      Read the application back, requesting the specific semantic version just
      published, to confirm it is attached.
    operationId: GetApplication
    parameters:
    - name: applicationId
      in: path
      value: $steps.createApplication.outputs.applicationId
    - name: semanticVersion
      in: query
      value: $steps.createVersion.outputs.semanticVersion
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      applicationId: $response.body#/applicationId
      version: $response.body#/version
  outputs:
    applicationId: $steps.getApplication.outputs.applicationId
    publishedVersion: $steps.createVersion.outputs.semanticVersion
    version: $steps.getApplication.outputs.version