Cross-Provider Workflow

Provision RDS Instance with Email Notice

Version 1.0.0

Create an Amazon RDS database instance, then email the team via SendGrid.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

amazon-rds sendgrid

Workflows

provision-instance-email
Create an RDS instance and email a provisioning notice.
Creates a new Amazon RDS DB instance, then emails an infrastructure team a provisioning confirmation via SendGrid Mail Send.
2 steps inputs: dbInstanceClass, dbInstanceIdentifier, engine, teamEmail outputs: createStatus, emailStatus
1
create-instance
$sourceDescriptions.amazonRdsApi.createDBInstance
Create a new Amazon RDS database instance.
2
email-team
$sourceDescriptions.sendgridApi.SendMail
Email the infrastructure team the provisioning notice.

Source API Descriptions

Arazzo Workflow Specification

geo-amazon-rds-create-instance-sendgrid.yml Raw ↑
arazzo: 1.0.1
info:
  title: Provision RDS Instance with Email Notice
  summary: Create an Amazon RDS database instance, then email the team via SendGrid.
  description: >-
    A high-value cross-domain provisioning workflow that creates a new Amazon RDS
    database instance and emails an infrastructure team to confirm the provisioning
    through SendGrid's Mail Send API. Demonstrates pairing a managed database provider
    with an email provider for provisioning notifications.
  version: 1.0.0
sourceDescriptions:
  - name: amazonRdsApi
    url: https://raw.githubusercontent.com/api-evangelist/amazon-rds/refs/heads/main/openapi/amazon-rds-openapi.yml
    type: openapi
  - name: sendgridApi
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: provision-instance-email
    summary: Create an RDS instance and email a provisioning notice.
    description: >-
      Creates a new Amazon RDS DB instance, then emails an infrastructure team a
      provisioning confirmation via SendGrid Mail Send.
    inputs:
      type: object
      properties:
        dbInstanceIdentifier:
          type: string
        dbInstanceClass:
          type: string
        engine:
          type: string
        teamEmail:
          type: string
    steps:
      - stepId: create-instance
        description: Create a new Amazon RDS database instance.
        operationId: $sourceDescriptions.amazonRdsApi.createDBInstance
        parameters:
          - name: DBInstanceIdentifier
            in: query
            value: $inputs.dbInstanceIdentifier
          - name: DBInstanceClass
            in: query
            value: $inputs.dbInstanceClass
          - name: Engine
            in: query
            value: $inputs.engine
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          createStatus: $statusCode
      - stepId: email-team
        description: Email the infrastructure team the provisioning notice.
        operationId: $sourceDescriptions.sendgridApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.teamEmail
                subject: RDS instance provisioned
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: A new Amazon RDS database instance has been provisioned.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          emailStatus: $statusCode
    outputs:
      createStatus: $steps.create-instance.outputs.createStatus
      emailStatus: $steps.email-team.outputs.emailStatus