Amazon RDS · Arazzo Workflow

Amazon RDS Provision an Aurora DB Cluster

Version 1.0.0

Create an Aurora DB cluster and poll until it reports the available status.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud DatabasesDatabase ServiceDBaaSManaged DatabasesRelational DatabasesArazzoWorkflows

Provider

amazon-rds

Workflows

provision-aurora-cluster
Create an Aurora DB cluster and wait for it to become available.
Creates an Aurora DB cluster with the supplied engine and master credentials, then polls DescribeDBClusters until the cluster status is available.
2 steps inputs: databaseName, dbClusterIdentifier, engine, masterUserPassword, masterUsername outputs: clusterId, endpoint, readerEndpoint, status
1
createCluster
createDBCluster
Submit the request to create the Aurora DB cluster with the supplied engine and master credentials.
2
pollCluster
describeDBClusters
Describe the DB cluster and inspect its status. While the cluster is still creating the workflow loops back to poll again; once it is available the flow ends.

Source API Descriptions

Arazzo Workflow Specification

amazon-rds-provision-aurora-cluster-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon RDS Provision an Aurora DB Cluster
  summary: Create an Aurora DB cluster and poll until it reports the available status.
  description: >-
    Provisions a new Amazon Aurora DB cluster and waits for it to come online.
    The workflow submits the create-cluster request with the engine and master
    credentials, captures the cluster identifier and endpoints, and polls
    DescribeDBClusters until the cluster status reaches available, looping while
    it is still creating. 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: amazonRdsApi
  url: ../openapi/amazon-rds-openapi.yml
  type: openapi
workflows:
- workflowId: provision-aurora-cluster
  summary: Create an Aurora DB cluster and wait for it to become available.
  description: >-
    Creates an Aurora DB cluster with the supplied engine and master
    credentials, then polls DescribeDBClusters until the cluster status is
    available.
  inputs:
    type: object
    required:
    - dbClusterIdentifier
    - engine
    - masterUsername
    - masterUserPassword
    properties:
      dbClusterIdentifier:
        type: string
        description: The unique identifier for the new Aurora DB cluster.
      engine:
        type: string
        description: The Aurora engine to use (aurora-mysql, aurora-postgresql).
      masterUsername:
        type: string
        description: The name for the master database user.
      masterUserPassword:
        type: string
        description: The password for the master database user.
      databaseName:
        type: string
        description: An optional name for an initial database in the cluster.
  steps:
  - stepId: createCluster
    description: >-
      Submit the request to create the Aurora DB cluster with the supplied
      engine and master credentials.
    operationId: createDBCluster
    parameters:
    - name: DBClusterIdentifier
      in: query
      value: $inputs.dbClusterIdentifier
    - name: Engine
      in: query
      value: $inputs.engine
    - name: MasterUsername
      in: query
      value: $inputs.masterUsername
    - name: MasterUserPassword
      in: query
      value: $inputs.masterUserPassword
    - name: DatabaseName
      in: query
      value: $inputs.databaseName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      clusterId: $response.body#/dBCluster/dBClusterIdentifier
      initialStatus: $response.body#/dBCluster/status
  - stepId: pollCluster
    description: >-
      Describe the DB cluster and inspect its status. While the cluster is still
      creating the workflow loops back to poll again; once it is available the
      flow ends.
    operationId: describeDBClusters
    parameters:
    - name: DBClusterIdentifier
      in: query
      value: $inputs.dbClusterIdentifier
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/dBClusters/0/status
      endpoint: $response.body#/dBClusters/0/endpoint
      readerEndpoint: $response.body#/dBClusters/0/readerEndpoint
    onSuccess:
    - name: stillCreating
      type: goto
      stepId: pollCluster
      criteria:
      - context: $response.body
        condition: $.dBClusters[0].status != 'available'
        type: jsonpath
    - name: available
      type: end
      criteria:
      - context: $response.body
        condition: $.dBClusters[0].status == 'available'
        type: jsonpath
  outputs:
    clusterId: $steps.createCluster.outputs.clusterId
    status: $steps.pollCluster.outputs.status
    endpoint: $steps.pollCluster.outputs.endpoint
    readerEndpoint: $steps.pollCluster.outputs.readerEndpoint