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