Chick-fil-A Storage API

S3 bucket inventory and object listing.

OpenAPI Specification

chickfila-storage-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chick-fil-A BOVINE Accounts Storage 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: Storage
  description: S3 bucket inventory and object listing.
paths:
  /api/s3:
    get:
      operationId: getS3Buckets
      summary: Chick-fil-A List S3 Buckets
      description: Lists S3 buckets for a given account, flagging globally accessible buckets.
      tags:
      - Storage
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - $ref: '#/components/parameters/RegionParam'
      responses:
        '200':
          description: S3 buckets returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/S3Bucket'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/bucket:
    get:
      operationId: getS3Bucket
      summary: Chick-fil-A Get S3 Bucket
      description: Returns detailed information and object listing for a single S3 bucket.
      tags:
      - Storage
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - name: bucket
        in: query
        required: true
        description: The S3 bucket name to look up.
        schema:
          type: string
        example: my-app-logs-bucket
      - $ref: '#/components/parameters/RegionParam'
      responses:
        '200':
          description: S3 bucket detail returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/S3BucketDetail'
        '404':
          description: Bucket or account not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  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
  schemas:
    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.
    S3Bucket:
      type: object
      description: An S3 bucket record, flagged if globally accessible.
      properties:
        BucketName:
          type: string
          example: my-app-logs-bucket
        Global:
          type: boolean
          description: Whether the bucket is globally (publicly) accessible.
          example: false
        AccountAlias:
          type: string
          example: prod-platform
    S3BucketDetail:
      type: object
      description: Detailed S3 bucket information including object listing.
      properties:
        Bucket:
          type: object
          properties:
            BucketName:
              type: string
              example: my-app-logs-bucket
            Objects:
              type: array
              items:
                type: object
                properties:
                  Key:
                    type: string
                    example: logs/2026-06-01.json
                  Encryption:
                    type: string
                    example: AES256
                  StorageType:
                    type: string
                    example: STANDARD