Chick-fil-A Summary API

Aggregate counts across accounts.

OpenAPI Specification

chickfila-summary-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chick-fil-A BOVINE Accounts Summary 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: Summary
  description: Aggregate counts across accounts.
paths:
  /api/summary/accountcount:
    get:
      operationId: getAccountCount
      summary: Chick-fil-A Get Account Count
      description: Returns the total number of AWS accounts tracked in BOVINE.
      tags:
      - Summary
      responses:
        '200':
          description: Account count returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountSummary'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/summary/usercount:
    get:
      operationId: getUserCount
      summary: Chick-fil-A Get User Count
      description: Returns aggregate IAM user counts across accounts, optionally scoped to a single account.
      tags:
      - Summary
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      responses:
        '200':
          description: User count returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountSummary'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/summary/instancecount:
    get:
      operationId: getInstanceCount
      summary: Chick-fil-A Get Instance Count
      description: Returns aggregate EC2 instance counts across accounts, optionally scoped to a single account.
      tags:
      - Summary
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      responses:
        '200':
          description: Instance count returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountSummary'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    CountSummary:
      type: object
      description: A summary count wrapper returned by the count endpoints.
      properties:
        Summary:
          type: object
          description: The aggregate count payload.
          properties:
            AccountsCount:
              type: integer
              description: Count of accounts.
              example: 42
            UsersCount:
              type: integer
              description: Count of IAM users.
              example: 127
            InstancesCount:
              type: integer
              description: Count of EC2 instances.
              example: 318
        Time:
          type: number
          format: double
          description: Elapsed time in seconds to compute the count.
          example: 1.42
  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'