{
 "openapi": "3.0.3",
 "info": {
  "title": "FedCredIQ Trust Center API",
  "version": "1",
  "description": "Programmatic access to FedCredIQ FedRAMP certification data (CDS-TRC-PAC). Keys are per user and every call is logged (CDS-TRC-ACL)."
 },
 "servers": [
  {
   "url": "https://trust.fedcrediq.com"
  }
 ],
 "components": {
  "securitySchemes": {
   "ApiKeyAuth": {
    "type": "apiKey",
    "in": "header",
    "name": "X-Api-Key"
   }
  }
 },
 "paths": {
  "/public/cpo.json": {
   "get": {
    "summary": "Public package overview (JSON)",
    "responses": {
     "200": {
      "description": "FedRAMP Certification Package Overview"
     }
    }
   }
  },
  "/public/cpo.md": {
   "get": {
    "summary": "Public package overview (Markdown)",
    "responses": {
     "200": {
      "description": "Markdown"
     }
    }
   }
  },
  "/announcements.json": {
   "get": {
    "summary": "Announcements (public; all with auth)",
    "responses": {
     "200": {
      "description": "List"
     }
    }
   }
  },
  "/secure-configuration-guide.json": {
   "get": {
    "summary": "Secure configuration guide (machine-readable)",
    "responses": {
     "200": {
      "description": "JSON"
     }
    }
   }
  },
  "/api/package": {
   "get": {
    "summary": "Current package version manifest",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "Manifest with artifacts, sizes, SHA-256 and paths"
     },
     "401": {
      "description": "Missing or invalid key"
     }
    }
   }
  },
  "/api/package/versions": {
   "get": {
    "summary": "All package versions",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "List of versions"
     }
    }
   }
  },
  "/api/package/{version}": {
   "get": {
    "summary": "A version's manifest",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "parameters": [
     {
      "name": "version",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Manifest"
     },
     "404": {
      "description": "Unknown version"
     }
    }
   }
  },
  "/api/package/{version}/{artifact}": {
   "get": {
    "summary": "Download an artifact",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "parameters": [
     {
      "name": "version",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "artifact",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "The artifact, JSON or Markdown as published"
     },
     "404": {
      "description": "Unknown artifact"
     }
    }
   }
  },
  "/api/me": {
   "get": {
    "summary": "The authenticated user",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "email, party, via"
     }
    }
   }
  },
  "/api/me/access": {
   "get": {
    "summary": "The authenticated user's recent access events",
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "List"
     }
    }
   }
  }
 }
}