Amazon Well-Architected Tool · Arazzo Workflow

Amazon Well-Architected Tool Create Workload

Version 1.0.0

Create a workload, confirm it, and list the lens reviews it generated.

1 workflow 1 source API 1 provider
View Spec View on GitHub ArchitectureBest PracticesCloud GovernanceWell-ArchitectedWorkloadsArazzoWorkflows

Provider

amazon-well-architected-tool

Workflows

create-workload
Create a workload, fetch it, and enumerate its lens reviews.
Creates a new workload from the supplied name, description, environment, and lens aliases, retrieves the created workload to confirm it persisted, and lists the lens reviews so downstream review work can begin.
3 steps inputs: AwsRegions, ClientRequestToken, Description, Environment, Lenses, ReviewOwner, WorkloadName outputs: lensReviewSummaries, workloadArn, workloadId
1
createWorkload
CreateWorkload
Create the workload with its required name, description, environment, review owner, and lenses.
2
getWorkload
GetWorkload
Read the workload back using the returned WorkloadId to confirm it was created and persisted.
3
listLensReviews
ListLensReviews
List the lens reviews created for the workload so the caller knows which lenses can be answered.

Source API Descriptions

Arazzo Workflow Specification

amazon-well-architected-tool-create-workload-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Well-Architected Tool Create Workload
  summary: Create a workload, confirm it, and list the lens reviews it generated.
  description: >-
    Stand up a new Well-Architected workload and verify it is ready for review.
    The workflow creates the workload with its required name, description,
    environment, and lenses, reads the workload back to confirm its metadata,
    and then lists the lens reviews that were created so the caller knows which
    lenses are available to answer. 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: wellArchitectedApi
  url: ../openapi/amazon-well-architected-tool-openapi-original.yaml
  type: openapi
workflows:
- workflowId: create-workload
  summary: Create a workload, fetch it, and enumerate its lens reviews.
  description: >-
    Creates a new workload from the supplied name, description, environment, and
    lens aliases, retrieves the created workload to confirm it persisted, and
    lists the lens reviews so downstream review work can begin.
  inputs:
    type: object
    required:
    - WorkloadName
    - Description
    - Environment
    - Lenses
    - ReviewOwner
    - ClientRequestToken
    properties:
      WorkloadName:
        type: string
        description: The unique name of the workload (3-100 characters).
      Description:
        type: string
        description: The description for the workload (3-250 characters).
      Environment:
        type: string
        description: The environment for the workload (PRODUCTION or PREPRODUCTION).
      Lenses:
        type: array
        description: The list of lens aliases to associate with the workload.
        items:
          type: string
      ReviewOwner:
        type: string
        description: The review owner of the workload.
      AwsRegions:
        type: array
        description: The list of AWS Regions associated with the workload.
        items:
          type: string
      ClientRequestToken:
        type: string
        description: Idempotency token for the create request.
  steps:
  - stepId: createWorkload
    description: >-
      Create the workload with its required name, description, environment,
      review owner, and lenses.
    operationId: CreateWorkload
    requestBody:
      contentType: application/json
      payload:
        WorkloadName: $inputs.WorkloadName
        Description: $inputs.Description
        Environment: $inputs.Environment
        Lenses: $inputs.Lenses
        ReviewOwner: $inputs.ReviewOwner
        AwsRegions: $inputs.AwsRegions
        ClientRequestToken: $inputs.ClientRequestToken
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workloadId: $response.body#/WorkloadId
      workloadArn: $response.body#/WorkloadArn
  - stepId: getWorkload
    description: >-
      Read the workload back using the returned WorkloadId to confirm it was
      created and persisted.
    operationId: GetWorkload
    parameters:
    - name: WorkloadId
      in: path
      value: $steps.createWorkload.outputs.workloadId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      workload: $response.body#/Workload
  - stepId: listLensReviews
    description: >-
      List the lens reviews created for the workload so the caller knows which
      lenses can be answered.
    operationId: ListLensReviews
    parameters:
    - name: WorkloadId
      in: path
      value: $steps.createWorkload.outputs.workloadId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      lensReviewSummaries: $response.body#/LensReviewSummaries
  outputs:
    workloadId: $steps.createWorkload.outputs.workloadId
    workloadArn: $steps.createWorkload.outputs.workloadArn
    lensReviewSummaries: $steps.listLensReviews.outputs.lensReviewSummaries