Chick-fil-A Identity API

IAM users and roles across accounts.

OpenAPI Specification

chickfila-identity-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Chick-fil-A BOVINE Accounts Identity 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: Identity
  description: IAM users and roles across accounts.
paths:
  /api/users:
    get:
      operationId: getUsers
      summary: Chick-fil-A List IAM Users
      description: Lists IAM users for a given account.
      tags:
      - Identity
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      responses:
        '200':
          description: IAM users returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IamUserSummary'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/user:
    get:
      operationId: getUser
      summary: Chick-fil-A Get IAM User
      description: Returns detailed IAM user information including managed policies and access keys for a given account and user.
      tags:
      - Identity
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      - name: user
        in: query
        required: true
        description: The IAM username to look up.
        schema:
          type: string
        example: jsmith
      responses:
        '200':
          description: IAM user detail returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IamUserDetail'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /api/roles:
    get:
      operationId: getRoles
      summary: Chick-fil-A List IAM Roles
      description: Lists IAM roles for a given account.
      tags:
      - Identity
      parameters:
      - $ref: '#/components/parameters/AccountParam'
      responses:
        '200':
          description: IAM roles returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IamRole'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    IamRole:
      type: object
      description: An IAM role record for an account.
      properties:
        Name:
          type: string
          description: The IAM role name.
          example: platform-deploy-role
    IamUserSummary:
      type: object
      description: A summary IAM user record for an account.
      properties:
        Account:
          type: object
          properties:
            accountNum:
              type: string
              example: '123456789012'
        Username:
          type: string
          description: The IAM username.
          example: jsmith
    IamUserDetail:
      type: object
      description: Detailed IAM user record including policies and access keys.
      properties:
        Account:
          type: object
          properties:
            accountNum:
              type: string
              example: '123456789012'
        User:
          type: object
          properties:
            Username:
              type: string
              example: jsmith
            ManagedPolicies:
              type: array
              description: Attached managed policies.
              items:
                type: object
                properties:
                  ManagedPolicy:
                    type: string
                    example: AdministratorAccess
            AccessKeys:
              type: array
              description: Access keys associated with the user.
              items:
                type: object
                properties:
                  AccessKeyId:
                    type: string
                    example: AKIAEXAMPLE1234567
                  Status:
                    type: string
                    example: Active
  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'