Chick-fil-A Databases API

RDS, DynamoDB, and Redshift inventory.

OpenAPI Specification

chickfila-databases-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chick-fil-A BOVINE Accounts Databases API
  description: BOVI(n)E — Building Operational Visibility Into (n) Environments — is a serverless, single-page application open-sourced by Chick-fil-A (github.com/chick-fil-a/bovine) that provides a "10,000 foot view" across all of an enterprise's AWS accounts in a multi-account strategy. The backend runs on AWS Lambda behind AWS API Gateway, with data stored in DynamoDB and audit reports in S3. The API surfaces account inventory, IAM users and roles, EC2 instances, public IPs, security groups, load balancers, RDS/DynamoDB/ Redshift databases, S3 buckets, and compliance audit reports for security and governance teams. This specification was generated from the project's serverless.yml route definitions and Python Lambda handlers.
  version: '1.0'
  x-generated-from: documentation
  x-source-url: https://github.com/chick-fil-a/bovine
  x-last-validated: '2026-06-02'
  contact:
    name: Kin Lane
    email: kin@apievangelist.com
  license:
    name: See repository
    url: https://github.com/chick-fil-a/bovine
servers:
- url: https://api.example.com
  description: Deployment-specific AWS API Gateway endpoint. BOVINE is self-hosted; the host is configured per-deployment via the serverless domainName setting.
tags:
- name: Databases
  description: RDS, DynamoDB, and Redshift inventory.
paths:
  /api/databases:
    get:
      operationId: getDatabases
      summary: Chick-fil-A List RDS Databases
      description: Lists RDS database instances for a given account and region.
      tags:
      - Databases
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - $ref: '#/components/parameters/RegionParam'
      responses:
        '200':
          description: RDS databases returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RdsDatabase'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/dynamotables:
    get:
      operationId: getDynamoTables
      summary: Chick-fil-A List DynamoDB Tables
      description: Lists DynamoDB tables for a given account and region.
      tags:
      - Databases
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - $ref: '#/components/parameters/RegionParam'
      responses:
        '200':
          description: DynamoDB tables returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamoTableList'
        '404':
          description: Account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/redshiftclusters:
    get:
      operationId: getRedshiftClusters
      summary: Chick-fil-A List Redshift Clusters
      description: Lists Redshift clusters for a given account and region.
      tags:
      - Databases
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - $ref: '#/components/parameters/RegionParam'
      responses:
        '200':
          description: Redshift clusters returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedshiftClusterList'
        '404':
          description: Account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    RdsDatabase:
      type: object
      description: An RDS database instance record.
      properties:
        Region:
          type: string
          example: us-east-1
        DBName:
          type: string
          example: orders
        Endpoint:
          type: object
          description: The RDS endpoint descriptor.
          properties:
            Address:
              type: string
              example: orders.abc123.us-east-1.rds.amazonaws.com
            Port:
              type: integer
              example: 5432
        CreateDate:
          type: string
          description: The instance creation timestamp.
          example: '2025-01-15T10:00:00Z'
        AccountAlias:
          type: string
          example: prod-platform
    MessageResponse:
      type: object
      description: Generic message wrapper used for not-found and informational responses.
      properties:
        Message:
          type: string
          description: A human-readable message.
          example: Account not found.
    DynamoTableList:
      type: object
      description: A list of DynamoDB tables for an account.
      properties:
        Tables:
          type: array
          items:
            $ref: '#/components/schemas/DynamoTable'
    RedshiftCluster:
      type: object
      description: A Redshift cluster record.
      properties:
        Region:
          type: string
          example: us-east-1
        ClusterIdentifier:
          type: string
          example: analytics-prod
        AccountAlias:
          type: string
          example: prod-platform
    DynamoTable:
      type: object
      description: A DynamoDB table record.
      properties:
        Region:
          type: string
          example: us-east-1
        TableName:
          type: string
          example: AWS-Accounts-Table
    RedshiftClusterList:
      type: object
      description: A list of Redshift clusters for an account.
      properties:
        Clusters:
          type: array
          items:
            $ref: '#/components/schemas/RedshiftCluster'
  parameters:
    AccountParam:
      name: account
      in: query
      required: true
      description: The AWS account number (12-digit) or account alias to scope the request to.
      schema:
        type: string
      example: '123456789012'
    RegionParam:
      name: region
      in: query
      required: false
      description: The AWS region to scope the request to.
      schema:
        type: string
        default: us-east-1
      example: us-east-1