openapi: 3.0.1
servers:
  - url: https://www.thebluealliance.com/api/v3
info:
  description: |-
    # Overview 

     Information and statistics about FIRST Robotics Competition teams and events. 

    # Authentication 

    All endpoints require an Auth Key to be passed in the header `X-TBA-Auth-Key`. If you do not have an auth key yet, you can obtain one from your [Account Page](/account).
  title: The Blue Alliance API v3
  version: 3.8.2
  x-apisguru-categories:
    - open_data
  x-changes: "3.8.1-3.8.2: Replace `If-Modified-Since` with `If-None-Match` and `Last-Modified` with `ETag`. 3.8.0-3.8.1: Added Webcast date field. 3.7.0-3.8.0: Added 2020 Match Breakdown. 3.6.0-3.7.0: Added Zebra MotionWorks endpoints and models. 3.5.2-3.6.0: Added `school_name` to the Team model. 3.5.1-3.5.2: Removed `key` from the Media object, set `foreign_key` as a required property. 3.5-3.5.1: Fixed api clients crashing when requesting simple matches resulting in ties. 3.04.1 - 3.5: Updated the spec to follow OpenAPI standards. 3.04.0 - 3.04.1: Team motto will now return null. 3.03.1 - 3.04.0: Add direct_url and view_url to the Media model. 3.03.0 - 3.03.1: Fix model of /team/{team_key}/robots to match API, add min and max for year and add min for page_num. 3.02.1 - 3.03.0: Added Timeseries models and endpoints. 3.02.0 - 3.02.1: Fixed the model for `/team/{team_key}/districts` to match return from API. 3.1.0 - 3.02.0: Added `tba_gameData` to score breakdown and a leading zero to the minor version number to allow for easier sorting later. 3.0.5 - 3.1.0: Version bump for 2018 added fields and endpoints. Models Updated: `Team_Event_Status`, `Media`, 2018 Score Breakdowns. Endpoints Added: `/team/{team_key}/events/{year}/statuses`, `/event/{event_key}/teams/statuses` 3.0.4 - 3.0.5: Minor spelling fixes. Remove 2016 fields from `Match_Score_Breakdown_2017_Alliance` model. Fix `first_event_id` in `Event` model to correct type. Update `Media`.`type` enum. --- 3.0.3 - 3.0.4: Correct syntax in `Team_Event_Status_playoff` object, include descriptions in `Event_District_Points` and fix the path in `Team_Event_Status_playoff.properties.record` in order to more closely match Swagger spec. Fix syntax of `Match.video` to be correct and accurately reflect what is returned by the API. --- 3.0.2 - 3.0.3: `extra_stats` and `extra_stats_info` added to `Event_Ranking` model. Corrected match video property claiming to use the `Media` model, which it doesn't. Added `first_event_code` to the `Event` model. Added `/team/{team_key}/media/tag/{media_tag}` and year endpoints. Added `dq_team_keys` to `Match_alliance` model.  --- 3.0.1 - 3.0.2: `Team_Event_Status` and `Event_Ranking` model documentation changed to reflect actual API return. Changes involved W-L-T and ranking properties. --- 3.0.0 - 3.0.1: Descriptions updated to clarify some terms and improve grammar. The `district` property on the `Event` object now points to the `District_List` model, which was identical. `Required` fields on fully documented models now represent fields that may not be `null`. `District_Ranking` model documented."
  x-logo:
    url: https://thebluealliance.com/icons/apple-touch-icon.png
  x-origin:
    - format: openapi
      url: https://www.thebluealliance.com/swagger/api_v3.json
      version: "3.0"
  x-providerName: thebluealliance.com
  x-version-info: Versions of the API follow the format X.Y.Z, with X being a major version, Y denoting the minor version, and Z the point release. Changes to the spec or API that result in a major version change will significantly impact implementations. Changes to the minor version indicate paths and/or fields in existing models may be added, and any breaking changes will be confined to paths or models listed as in-development in the prior minor version. Changes to the point release indicate no format or structure changes to the paths or models, but updated or clarified documentation. Note that changes to paths and models refer to the actual result from the API, not the documentation.
tags:
  - description: Calls that expose TBA internals or status.
    name: TBA
  - description: Calls that return a list of records.
    name: list
  - description: Calls that return team or team-specific information.
    name: team
  - description: Calls that return event, or event-specific information.
    name: event
  - description: Calls that return match, or match-specific information.
    name: match
  - description: Calls that return district, or district-related information.
    name: district
paths:
  "/district/{district_key}/events":
    get:
      description: Gets a list of events in the given district.
      operationId: getDistrictEvents
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - event
        - list
  "/district/{district_key}/events/keys":
    get:
      description: Gets a list of event keys for events in the given district.
      operationId: getDistrictEventsKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Event Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - event
        - list
  "/district/{district_key}/events/simple":
    get:
      description: Gets a short-form list of events in the given district.
      operationId: getDistrictEventsSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - description: TBA District Key, eg `2016fim`
          in: path
          name: district_key
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - event
        - list
  "/district/{district_key}/rankings":
    get:
      description: Gets a list of team district rankings for the given district.
      operationId: getDistrictRankings
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/District_Ranking"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - team
        - list
  "/district/{district_key}/teams":
    get:
      description: Gets a list of `Team` objects that competed in events in the given district.
      operationId: getDistrictTeams
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - team
        - list
  "/district/{district_key}/teams/keys":
    get:
      description: Gets a list of `Team` objects that competed in events in the given district.
      operationId: getDistrictTeamsKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Team Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - team
        - list
  "/district/{district_key}/teams/simple":
    get:
      description: Gets a short-form list of `Team` objects that competed in events in the given district.
      operationId: getDistrictTeamsSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/district_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
        - team
        - list
  "/districts/{year}":
    get:
      description: Gets a list of districts and their corresponding district key, for the given year.
      operationId: getDistrictsByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/District_List"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - district
  "/event/{event_key}":
    get:
      description: Gets an Event.
      operationId: getEvent
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/alliances":
    get:
      description: Gets a list of Elimination Alliances for the given Event.
      operationId: getEventAlliances
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Elimination_Alliance"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/awards":
    get:
      description: Gets a list of awards from the given event.
      operationId: getEventAwards
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Award"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/district_points":
    get:
      description: Gets a list of team rankings for the Event.
      operationId: getEventDistrictPoints
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_District_Points"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - district
  "/event/{event_key}/insights":
    get:
      description: Gets a set of Event-specific insights for the given Event.
      operationId: getEventInsights
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_Insights"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/matches":
    get:
      description: Gets a list of matches for the given event.
      operationId: getEventMatches
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - match
  "/event/{event_key}/matches/keys":
    get:
      description: Gets a list of match keys for the given event.
      operationId: getEventMatchesKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Match Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - match
  "/event/{event_key}/matches/simple":
    get:
      description: Gets a short-form list of matches for the given event.
      operationId: getEventMatchesSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - match
  "/event/{event_key}/matches/timeseries":
    get:
      description: |-
        Gets an array of Match Keys for the given event key that have timeseries data. Returns an empty array if no matches have timeseries data.
        *WARNING:* This is *not* official data, and is subject to a significant possibility of error, or missing data. Do not rely on this data for any purpose. In fact, pretend we made it up.
        *WARNING:* This endpoint and corresponding data models are under *active development* and may change at any time, including in breaking ways.
      operationId: getEventMatchTimeseries
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  description: Match Key
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - match
  "/event/{event_key}/oprs":
    get:
      description: Gets a set of Event OPRs (including OPR, DPR, and CCWM) for the given Event.
      operationId: getEventOPRs
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_OPRs"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/predictions":
    get:
      description: Gets information on TBA-generated predictions for the given Event. Contains year-specific information. *WARNING* This endpoint is currently under development and may change at any time.
      operationId: getEventPredictions
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_Predictions"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/rankings":
    get:
      description: Gets a list of team rankings for the Event.
      operationId: getEventRankings
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_Ranking"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/simple":
    get:
      description: Gets a short-form Event.
      operationId: getEventSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Event_Simple"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
  "/event/{event_key}/teams":
    get:
      description: Gets a list of `Team` objects that competed in the given event.
      operationId: getEventTeams
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - team
        - list
  "/event/{event_key}/teams/keys":
    get:
      description: Gets a list of `Team` keys that competed in the given event.
      operationId: getEventTeamsKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Team Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - team
        - list
  "/event/{event_key}/teams/simple":
    get:
      description: Gets a short-form list of `Team` objects that competed in the given event.
      operationId: getEventTeamsSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - team
        - list
  "/event/{event_key}/teams/statuses":
    get:
      description: Gets a key-value list of the event statuses for teams competing at the given event.
      operationId: getEventTeamsStatuses
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: "#/components/schemas/Team_Event_Status"
                description: A key-value pair of `Team_Event_Status` objects with the event key as the key.
                type: object
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - team
        - list
  "/events/{year}":
    get:
      description: Gets a list of events in the given year.
      operationId: getEventsByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - list
  "/events/{year}/keys":
    get:
      description: Gets a list of event keys in the given year.
      operationId: getEventsByYearKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Event Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - list
  "/events/{year}/simple":
    get:
      description: Gets a short-form list of events in the given year.
      operationId: getEventsByYearSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - event
        - list
  "/match/{match_key}":
    get:
      description: Gets a `Match` object for the given match key.
      operationId: getMatch
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/match_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Match"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - match
  "/match/{match_key}/simple":
    get:
      description: Gets a short-form `Match` object for the given match key.
      operationId: getMatchSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/match_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Match_Simple"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - match
  "/match/{match_key}/timeseries":
    get:
      description: |-
        Gets an array of game-specific Match Timeseries objects for the given match key or an empty array if not available.
        *WARNING:* This is *not* official data, and is subject to a significant possibility of error, or missing data. Do not rely on this data for any purpose. In fact, pretend we made it up.
        *WARNING:* This endpoint and corresponding data models are under *active development* and may change at any time, including in breaking ways.
      operationId: getMatchTimeseries
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/match_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  properties: {}
                  type: object
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - match
  "/match/{match_key}/zebra_motionworks":
    get:
      description: Gets Zebra MotionWorks data for a Match for the given match key.
      operationId: getMatchZebra
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/match_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Zebra"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - match
  /status:
    get:
      description: Returns API status, and TBA status information.
      operationId: getStatus
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API_Status"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - TBA
  "/team/{team_key}":
    get:
      description: Gets a `Team` object for the team referenced by the given key.
      operationId: getTeam
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Team"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/awards":
    get:
      description: Gets a list of awards the given team has won.
      operationId: getTeamAwards
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Award"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/awards/{year}":
    get:
      description: Gets a list of awards the given team has won in a given year.
      operationId: getTeamAwardsByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Award"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/districts":
    get:
      description: Gets an array of districts representing each year the team was in a district. Will return an empty array if the team was never in a district.
      operationId: getTeamDistricts
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/District_List"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - district
  "/team/{team_key}/event/{event_key}/awards":
    get:
      description: Gets a list of awards the given team won at the given event.
      operationId: getTeamEventAwards
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Award"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/event/{event_key}/matches":
    get:
      description: Gets a list of matches for the given team and event.
      operationId: getTeamEventMatches
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
        - match
  "/team/{team_key}/event/{event_key}/matches/keys":
    get:
      description: Gets a list of match keys for matches for the given team and event.
      operationId: getTeamEventMatchesKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Match Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
        - match
  "/team/{team_key}/event/{event_key}/matches/simple":
    get:
      description: Gets a short-form list of matches for the given team and event.
      operationId: getTeamEventMatchesSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
        - match
  "/team/{team_key}/event/{event_key}/status":
    get:
      description: Gets the competition rank and status of the team at the given event.
      operationId: getTeamEventStatus
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/event_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Team_Event_Status"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events":
    get:
      description: Gets a list of all events this team has competed at.
      operationId: getTeamEvents
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/keys":
    get:
      description: Gets a list of the event keys for all events this team has competed at.
      operationId: getTeamEventsKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Event Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/simple":
    get:
      description: Gets a short-form list of all events this team has competed at.
      operationId: getTeamEventsSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/{year}":
    get:
      description: Gets a list of events this team has competed at in the given year.
      operationId: getTeamEventsByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/{year}/keys":
    get:
      description: Gets a list of the event keys for events this team has competed at in the given year.
      operationId: getTeamEventsByYearKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Event Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/{year}/simple":
    get:
      description: Gets a short-form list of events this team has competed at in the given year.
      operationId: getTeamEventsByYearSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Event_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - event
  "/team/{team_key}/events/{year}/statuses":
    get:
      description: Gets a key-value list of the event statuses for events this team has competed at in the given year.
      operationId: getTeamEventsStatusesByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: "#/components/schemas/Team_Event_Status"
                description: A key-value pair of `Team_Event_Status` objects with the event key as the key.
                type: object
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - list
        - team
        - event
  "/team/{team_key}/matches/{year}":
    get:
      description: Gets a list of matches for the given team and year.
      operationId: getTeamMatchesByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - match
  "/team/{team_key}/matches/{year}/keys":
    get:
      description: Gets a list of match keys for matches for the given team and year.
      operationId: getTeamMatchesByYearKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Match Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - match
  "/team/{team_key}/matches/{year}/simple":
    get:
      description: Gets a short-form list of matches for the given team and year.
      operationId: getTeamMatchesByYearSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Match_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - match
  "/team/{team_key}/media/tag/{media_tag}":
    get:
      description: Gets a list of Media (videos / pictures) for the given team and tag.
      operationId: getTeamMediaByTag
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/media_tag"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Media"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/media/tag/{media_tag}/{year}":
    get:
      description: Gets a list of Media (videos / pictures) for the given team, tag and year.
      operationId: getTeamMediaByTagYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/media_tag"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Media"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/media/{year}":
    get:
      description: Gets a list of Media (videos / pictures) for the given team and year.
      operationId: getTeamMediaByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
        - $ref: "#/components/parameters/year"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Media"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/robots":
    get:
      description: Gets a list of year and robot name pairs for each year that a robot name was provided. Will return an empty array if the team has never named a robot.
      operationId: getTeamRobots
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team_Robot"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/simple":
    get:
      description: Gets a `Team_Simple` object for the team referenced by the given key.
      operationId: getTeamSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Team_Simple"
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/social_media":
    get:
      description: Gets a list of Media (social media) for the given team.
      operationId: getTeamSocialMedia
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Media"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/team/{team_key}/years_participated":
    get:
      description: Gets a list of years in which the team participated in at least one competition.
      operationId: getTeamYearsParticipated
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/team_key"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: integer
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
  "/teams/{page_num}":
    get:
      description: Gets a list of `Team` objects, paginated in groups of 500.
      operationId: getTeams
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
  "/teams/{page_num}/keys":
    get:
      description: Gets a list of Team keys, paginated in groups of 500. (Note, each page will not have 500 teams, but will include the teams within that range of 500.)
      operationId: getTeamsKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
  "/teams/{page_num}/simple":
    get:
      description: Gets a list of short form `Team_Simple` objects, paginated in groups of 500.
      operationId: getTeamsSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
    x-comment: Simple (non-full) responses need a separate path definition. See also https://github.com/OAI/OpenAPI-Specification/issues/270
  "/teams/{year}/{page_num}":
    get:
      description: Gets a list of `Team` objects that competed in the given year, paginated in groups of 500.
      operationId: getTeamsByYear
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
  "/teams/{year}/{page_num}/keys":
    get:
      description: Gets a list Team Keys that competed in the given year, paginated in groups of 500.
      operationId: getTeamsByYearKeys
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                description: Array of Team Keys
                items:
                  type: string
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
  "/teams/{year}/{page_num}/simple":
    get:
      description: Gets a list of short form `Team_Simple` objects that competed in the given year, paginated in groups of 500.
      operationId: getTeamsByYearSimple
      parameters:
        - $ref: "#/components/parameters/If-None-Match"
        - $ref: "#/components/parameters/year"
        - $ref: "#/components/parameters/page_num"
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Team_Simple"
                type: array
          description: Successful response
          headers:
            Cache-Control:
              description: The `Cache-Control` header, in particular the `max-age` value, contains the number of seconds the result should be considered valid for. During this time subsequent calls should return from the local cache directly.
              schema:
                type: string
            ETag:
              description: Specifies the version of the most recent response. Used by clients in the `If-None-Match` request header.
              schema:
                type: string
        "304":
          $ref: "#/components/responses/NotModified"
        "401":
          $ref: "#/components/responses/Unauthorized"
      security:
        - apiKey: []
      tags:
        - team
        - list
components:
  parameters:
    If-None-Match:
      description: Value of the `ETag` header in the most recently cached response by the client.
      in: header
      name: If-None-Match
      schema:
        type: string
    district_key:
      description: TBA District Key, eg `2016fim`
      in: path
      name: district_key
      required: true
      schema:
        type: string
    event_key:
      description: TBA Event Key, eg `2016nytr`
      in: path
      name: event_key
      required: true
      schema:
        type: string
    match_key:
      description: TBA Match Key, eg `2016nytr_qm1`
      in: path
      name: match_key
      required: true
      schema:
        type: string
    media_tag:
      description: Media Tag which describes the Media.
      in: path
      name: media_tag
      required: true
      schema:
        type: string
    page_num:
      description: Page number of results to return, zero-indexed
      in: path
      name: page_num
      required: true
      schema:
        type: integer
    team_key:
      description: TBA Team Key, eg `frc254`
      in: path
      name: team_key
      required: true
      schema:
        type: string
    year:
      description: Competition Year (or Season). Must be 4 digits.
      in: path
      name: year
      required: true
      schema:
        type: integer
  responses:
    NotModified:
      description: Not Modified - Use Local Cached Value
    Unauthorized:
      description: ""
  schemas:
    API_Status:
      properties:
        android:
          $ref: "#/components/schemas/API_Status_App_Version"
        current_season:
          description: Year of the current FRC season.
          type: integer
        down_events:
          description: An array of strings containing event keys of any active events that are no longer updating.
          items:
            type: string
          type: array
        ios:
          $ref: "#/components/schemas/API_Status_App_Version"
        is_datafeed_down:
          description: True if the entire FMS API provided by FIRST is down.
          type: boolean
        max_season:
          description: Maximum FRC season year for valid queries.
          type: integer
      required:
        - android
        - current_season
        - down_events
        - ios
        - is_datafeed_down
        - max_season
      type: object
    API_Status_App_Version:
      properties:
        latest_app_version:
          description: Internal use - Latest application version available.
          type: integer
        min_app_version:
          description: Internal use - Minimum application version required to correctly connect and process data.
          type: integer
      required:
        - latest_app_version
        - min_app_version
      type: object
    Award:
      properties:
        award_type:
          description: Type of award given. See https://github.com/the-blue-alliance/the-blue-alliance/blob/master/consts/award_type.py#L6
          type: integer
        event_key:
          description: The event_key of the event the award was won at.
          type: string
        name:
          description: The name of the award as provided by FIRST. May vary for the same award type.
          type: string
        recipient_list:
          description: A list of recipients of the award at the event. May have either a team_key or an awardee, both, or neither (in the case the award wasn't awarded at the event).
          items:
            $ref: "#/components/schemas/Award_Recipient"
          type: array
        year:
          description: The year this award was won.
          type: integer
      required:
        - award_type
        - event_key
        - name
        - recipient_list
        - year
      type: object
    Award_Recipient:
      description: An `Award_Recipient` object represents the team and/or person who received an award at an event.
      properties:
        awardee:
          description: The name of the individual given the award. May be null.
          type: string
        team_key:
          description: The TBA team key for the team that was given the award. May be null.
          type: string
      type: object
    District_List:
      properties:
        abbreviation:
          description: The short identifier for the district.
          type: string
        display_name:
          description: The long name for the district.
          type: string
        key:
          description: Key for this district, e.g. `2016ne`.
          type: string
        year:
          description: Year this district participated.
          type: integer
      required:
        - abbreviation
        - display_name
        - key
        - year
      type: object
    District_Ranking:
      description: Rank of a team in a district.
      properties:
        event_points:
          description: List of events that contributed to the point total for the team.
          items:
            properties:
              alliance_points:
                description: Points awarded for alliance selection.
                type: integer
              award_points:
                description: Points awarded for event awards.
                type: integer
              district_cmp:
                description: "`true` if this event is a District Championship event."
                type: boolean
              elim_points:
                description: Points awarded for elimination match performance.
                type: integer
              event_key:
                description: TBA Event key for this event.
                type: string
              qual_points:
                description: Points awarded for qualification match performance.
                type: integer
              total:
                description: Total points awarded at this event.
                type: integer
            required:
              - alliance_points
              - award_points
              - district_cmp
              - elim_points
              - event_key
              - qual_points
              - total
            type: object
          type: array
        point_total:
          description: Total district points for the team.
          type: integer
        rank:
          description: Numerical rank of the team, 1 being top rank.
          type: integer
        rookie_bonus:
          description: Any points added to a team as a result of the rookie bonus.
          type: integer
        team_key:
          description: TBA team key for the team.
          type: string
      required:
        - point_total
        - rank
        - team_key
      type: object
    Elimination_Alliance:
      properties:
        backup:
          description: Backup team called in, may be null.
          properties:
            in:
              description: Team key that was called in as the backup.
              type: string
            out:
              description: Team key that was replaced by the backup team.
              type: string
          type: object
        declines:
          description: List of teams that declined the alliance.
          items:
            description: Team key that declined the alliance.
            type: string
          type: array
        name:
          description: Alliance name, may be null.
          type: string
        picks:
          description: List of team keys picked for the alliance. First pick is captain.
          items:
            description: Team key picked for the alliance.
            type: string
          type: array
        status:
          properties:
            current_level_record:
              $ref: "#/components/schemas/WLT_Record"
            level:
              type: string
            playoff_average:
              format: double
              type: number
            record:
              $ref: "#/components/schemas/WLT_Record"
            status:
              type: string
          type: object
      required:
        - picks
      type: object
    Event:
      properties:
        address:
          description: Address of the event's venue, if available.
          type: string
        city:
          description: City, town, village, etc. the event is located in.
          type: string
        country:
          description: Country the event is located in.
          type: string
        district:
          $ref: "#/components/schemas/District_List"
        division_keys:
          description: An array of event keys for the divisions at this event.
          items:
            type: string
          type: array
        end_date:
          description: Event end date in `yyyy-mm-dd` format.
          format: date
          type: string
        event_code:
          description: Event short code, as provided by FIRST.
          type: string
        event_type:
          description: "Event Type, as defined here: https://github.com/the-blue-alliance/the-blue-alliance/blob/master/consts/event_type.py#L2"
          type: integer
        event_type_string:
          description: Event Type, eg Regional, District, or Offseason.
          type: string
        first_event_code:
          description: Public facing event code used by FIRST (on frc-events.firstinspires.org, for example)
          type: string
        first_event_id:
          description: The FIRST internal Event ID, used to link to the event on the FRC webpage.
          type: string
        gmaps_place_id:
          description: Google Maps Place ID for the event address.
          type: string
        gmaps_url:
          description: Link to address location on Google Maps.
          format: url
          type: string
        key:
          description: TBA event key with the format yyyy[EVENT_CODE], where yyyy is the year, and EVENT_CODE is the event code of the event.
          type: string
        lat:
          description: Latitude for the event address.
          format: double
          type: number
        lng:
          description: Longitude for the event address.
          format: double
          type: number
        location_name:
          description: Name of the location at the address for the event, eg. Blue Alliance High School.
          type: string
        name:
          description: Official name of event on record either provided by FIRST or organizers of offseason event.
          type: string
        parent_event_key:
          description: The TBA Event key that represents the event's parent. Used to link back to the event from a division event. It is also the inverse relation of `divison_keys`.
          type: string
        playoff_type:
          description: "Playoff Type, as defined here: https://github.com/the-blue-alliance/the-blue-alliance/blob/master/consts/playoff_type.py#L4, or null."
          type: integer
        playoff_type_string:
          description: String representation of the `playoff_type`, or null.
          type: string
        postal_code:
          description: Postal code from the event address.
          type: string
        short_name:
          description: Same as `name` but doesn't include event specifiers, such as 'Regional' or 'District'. May be null.
          type: string
        start_date:
          description: Event start date in `yyyy-mm-dd` format.
          format: date
          type: string
        state_prov:
          description: State or Province the event is located in.
          type: string
        timezone:
          description: Timezone name.
          type: string
        webcasts:
          items:
            $ref: "#/components/schemas/Webcast"
          type: array
        website:
          description: The event's website, if any.
          type: string
        week:
          description: Week of the event relative to the first official season event, zero-indexed. Only valid for Regionals, Districts, and District Championships. Null otherwise. (Eg. A season with a week 0 'preseason' event does not count, and week 1 events will show 0 here. Seasons with a week 0.5 regional event will show week 0 for those event(s) and week 1 for week 1 events and so on.)
          type: integer
        year:
          description: Year the event data is for.
          type: integer
      required:
        - end_date
        - event_code
        - event_type
        - event_type_string
        - key
        - name
        - start_date
        - year
      type: object
    Event_District_Points:
      properties:
        points:
          additionalProperties:
            properties:
              alliance_points:
                description: Points awarded for alliance selection
                type: integer
              award_points:
                description: Points awarded for event awards.
                type: integer
              elim_points:
                description: Points awarded for elimination match performance.
                type: integer
              qual_points:
                description: Points awarded for qualification match performance.
                type: integer
              total:
                description: Total points awarded at this event.
                type: integer
            required:
              - alliance_points
              - award_points
              - elim_points
              - qual_points
              - total
            type: object
          description: Points gained for each team at the event. Stored as a key-value pair with the team key as the key, and an object describing the points as its value.
          type: object
        tiebreakers:
          additionalProperties:
            properties:
              highest_qual_scores:
                items:
                  type: integer
                type: array
              qual_wins:
                type: integer
            type: object
          description: Tiebreaker values for each team at the event. Stored as a key-value pair with the team key as the key, and an object describing the tiebreaker elements as its value.
          type: object
      required:
        - points
      type: object
    Event_Insights:
      description: A year-specific event insight object expressed as a JSON string, separated in to `qual` and `playoff` fields. See also Event_Insights_2016, Event_Insights_2017, etc.
      properties:
        playoff:
          description: Insights for the playoff round of an event
          properties: {}
          type: object
        qual:
          description: Inights for the qualification round of an event
          properties: {}
          type: object
      type: object
    Event_Insights_2016:
      description: Insights for FIRST Stronghold qualification and elimination matches.
      properties:
        A_ChevalDeFrise:
          description: For the Cheval De Frise - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        A_Portcullis:
          description: For the Portcullis - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        B_Moat:
          description: For the Moat - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        B_Ramparts:
          description: For the Ramparts - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        C_Drawbridge:
          description: For the Drawbridge - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        C_SallyPort:
          description: For the Sally Port - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        D_RockWall:
          description: For the Rock Wall - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        D_RoughTerrain:
          description: For the Rough Terrain - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        LowBar:
          description: For the Low Bar - An array with three values, number of times damaged, number of opportunities to damage, and percentage.
          items:
            format: float
            type: number
          type: array
        average_auto_score:
          description: Average autonomous score.
          format: float
          type: number
        average_boulder_score:
          description: Average boulder score.
          format: float
          type: number
        average_crossing_score:
          description: Average crossing score.
          format: float
          type: number
        average_foul_score:
          description: Average foul score.
          format: float
          type: number
        average_high_goals:
          description: Average number of high goals scored.
          format: float
          type: number
        average_low_goals:
          description: Average number of low goals scored.
          format: float
          type: number
        average_score:
          description: Average total score.
          format: float
          type: number
        average_tower_score:
          description: Average tower score.
          format: float
          type: number
        average_win_margin:
          description: Average margin of victory.
          format: float
          type: number
        average_win_score:
          description: Average winning score.
          format: float
          type: number
        breaches:
          description: An array with three values, number of times breached, number of opportunities to breach, and percentage.
          items:
            format: float
            type: number
          type: array
        captures:
          description: An array with three values, number of times captured, number of opportunities to capture, and percentage.
          items:
            format: float
            type: number
          type: array
        challenges:
          description: An array with three values, number of times challenged, number of opportunities to challenge, and percentage.
          items:
            format: float
            type: number
          type: array
        high_score:
          description: An array with three values, high score, match key from the match with the high score, and the name of the match.
          items:
            type: string
          type: array
        scales:
          description: An array with three values, number of times scaled, number of opportunities to scale, and percentage.
          items:
            format: float
            type: number
          type: array
      required:
        - A_ChevalDeFrise
        - A_Portcullis
        - B_Moat
        - B_Ramparts
        - C_Drawbridge
        - C_SallyPort
        - D_RockWall
        - D_RoughTerrain
        - LowBar
        - average_auto_score
        - average_boulder_score
        - average_crossing_score
        - average_foul_score
        - average_high_goals
        - average_low_goals
        - average_score
        - average_tower_score
        - average_win_margin
        - average_win_score
        - breaches
        - captures
        - challenges
        - high_score
        - scales
      type: object
    Event_Insights_2017:
      description: Insights for FIRST STEAMWORKS qualification and elimination matches.
      properties:
        average_foul_score:
          description: Average foul score.
          format: float
          type: number
        average_fuel_points:
          description: Average fuel points scored.
          format: float
          type: number
        average_fuel_points_auto:
          description: Average fuel points scored during auto.
          format: float
          type: number
        average_fuel_points_teleop:
          description: Average fuel points scored during teleop.
          format: float
          type: number
        average_high_goals:
          description: Average points scored in the high goal.
          format: float
          type: number
        average_high_goals_auto:
          description: Average points scored in the high goal during auto.
          format: float
          type: number
        average_high_goals_teleop:
          description: Average points scored in the high goal during teleop.
          format: float
          type: number
        average_low_goals:
          description: Average points scored in the low goal.
          format: float
          type: number
        average_low_goals_auto:
          description: Average points scored in the low goal during auto.
          format: float
          type: number
        average_low_goals_teleop:
          description: Average points scored in the low goal during teleop.
          format: float
          type: number
        average_mobility_points_auto:
          description: Average mobility points scored during auto.
          format: float
          type: number
        average_points_auto:
          description: Average points scored during auto.
          format: float
          type: number
        average_points_teleop:
          description: Average points scored during teleop.
          format: float
          type: number
        average_rotor_points:
          description: Average rotor points scored.
          format: float
          type: number
        average_rotor_points_auto:
          description: Average rotor points scored during auto.
          format: float
          type: number
        average_rotor_points_teleop:
          description: Average rotor points scored during teleop.
          format: float
          type: number
        average_score:
          description: Average score.
          format: float
          type: number
        average_takeoff_points_teleop:
          description: Average takeoff points scored during teleop.
          format: float
          type: number
        average_win_margin:
          description: Average margin of victory.
          format: float
          type: number
        average_win_score:
          description: Average winning score.
          format: float
          type: number
        high_kpa:
          description: An array with three values, kPa scored, match key from the match with the high kPa, and the name of the match
          items:
            type: string
          type: array
        high_score:
          description: An array with three values, high score, match key from the match with the high score, and the name of the match
          items:
            type: string
          type: array
        kpa_achieved:
          description: An array with three values, number of times kPa bonus achieved, number of opportunities to bonus, and percentage.
          items:
            format: float
            type: number
          type: array
        mobility_counts:
          description: An array with three values, number of times mobility bonus achieved, number of opportunities to bonus, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_1_engaged:
          description: An array with three values, number of times rotor 1 engaged, number of opportunities to engage, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_1_engaged_auto:
          description: An array with three values, number of times rotor 1 engaged in auto, number of opportunities to engage in auto, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_2_engaged:
          description: An array with three values, number of times rotor 2 engaged, number of opportunities to engage, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_2_engaged_auto:
          description: An array with three values, number of times rotor 2 engaged in auto, number of opportunities to engage in auto, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_3_engaged:
          description: An array with three values, number of times rotor 3 engaged, number of opportunities to engage, and percentage.
          items:
            format: float
            type: number
          type: array
        rotor_4_engaged:
          description: An array with three values, number of times rotor 4 engaged, number of opportunities to engage, and percentage.
          items:
            format: float
            type: number
          type: array
        takeoff_counts:
          description: An array with three values, number of times takeoff was counted, number of opportunities to takeoff, and percentage.
          items:
            format: float
            type: number
          type: array
        unicorn_matches:
          description: An array with three values, number of times a unicorn match (Win + kPa & Rotor Bonuses) occured, number of opportunities to have a unicorn match, and percentage.
          items:
            format: float
            type: number
          type: array
      required:
        - average_foul_score
        - average_fuel_points
        - average_fuel_points_auto
        - average_fuel_points_teleop
        - average_high_goals
        - average_high_goals_auto
        - average_high_goals_teleop
        - average_low_goals
        - average_low_goals_auto
        - average_low_goals_teleop
        - average_mobility_points_auto
        - average_points_auto
        - average_points_teleop
        - average_rotor_points
        - average_rotor_points_auto
        - average_rotor_points_teleop
        - average_score
        - average_takeoff_points_teleop
        - average_win_margin
        - average_win_score
        - high_kpa
        - high_score
        - kpa_achieved
        - mobility_counts
        - rotor_1_engaged
        - rotor_1_engaged_auto
        - rotor_2_engaged
        - rotor_2_engaged_auto
        - rotor_3_engaged
        - rotor_4_engaged
        - takeoff_counts
        - unicorn_matches
      type: object
    Event_Insights_2018:
      description: Insights for FIRST Power Up qualification and elimination matches.
      properties:
        auto_quest_achieved:
          description: An array with three values, number of times auto quest was completed, number of opportunities to complete the auto quest, and percentage.
          items:
            format: float
            type: number
          type: array
        average_boost_played:
          description: Average number of boost power up scored (out of 3).
          format: float
          type: number
        average_endgame_points:
          description: Average endgame points.
          format: float
          type: number
        average_force_played:
          description: Average number of force power up scored (out of 3).
          format: float
          type: number
        average_foul_score:
          description: Average foul score.
          format: float
          type: number
        average_points_auto:
          description: Average points scored during auto.
          format: float
          type: number
        average_points_teleop:
          description: Average points scored during teleop.
          format: float
          type: number
        average_run_points_auto:
          description: Average mobility points scored during auto.
          format: float
          type: number
        average_scale_ownership_points:
          description: Average scale ownership points scored.
          format: float
          type: number
        average_scale_ownership_points_auto:
          description: Average scale ownership points scored during auto.
          format: float
          type: number
        average_scale_ownership_points_teleop:
          description: Average scale ownership points scored during teleop.
          format: float
          type: number
        average_score:
          description: Average score.
          format: float
          type: number
        average_switch_ownership_points:
          description: Average switch ownership points scored.
          format: float
          type: number
        average_switch_ownership_points_auto:
          description: Average switch ownership points scored during auto.
          format: float
          type: number
        average_switch_ownership_points_teleop:
          description: Average switch ownership points scored during teleop.
          format: float
          type: number
        average_vault_points:
          description: Average value points scored.
          format: float
          type: number
        average_win_margin:
          description: Average margin of victory.
          format: float
          type: number
        average_win_score:
          description: Average winning score.
          format: float
          type: number
        boost_played_counts:
          description: An array with three values, number of times a boost power up was played, number of opportunities to play a boost power up, and percentage.
          items:
            format: float
            type: number
          type: array
        climb_counts:
          description: An array with three values, number of times a climb occurred, number of opportunities to climb, and percentage.
          items:
            format: float
            type: number
          type: array
        face_the_boss_achieved:
          description: An array with three values, number of times an alliance faced the boss, number of opportunities to face the boss, and percentage.
          items:
            format: float
            type: number
          type: array
        force_played_counts:
          description: An array with three values, number of times a force power up was played, number of opportunities to play a force power up, and percentage.
          items:
            format: float
            type: number
          type: array
        high_score:
          description: An array with three values, high score, match key from the match with the high score, and the name of the match
          items:
            type: string
          type: array
        levitate_played_counts:
          description: An array with three values, number of times a levitate power up was played, number of opportunities to play a levitate power up, and percentage.
          items:
            format: float
            type: number
          type: array
        run_counts_auto:
          description: An array with three values, number of times a team scored mobility points in auto, number of opportunities to score mobility points in auto, and percentage.
          items:
            format: float
            type: number
          type: array
        scale_neutral_percentage:
          description: Average scale neutral percentage.
          format: float
          type: number
        scale_neutral_percentage_auto:
          description: Average scale neutral percentage during auto.
          format: float
          type: number
        scale_neutral_percentage_teleop:
          description: Average scale neutral percentage during teleop.
          format: float
          type: number
        switch_owned_counts_auto:
          description: An array with three values, number of times a switch was owned during auto, number of opportunities to own a switch during auto, and percentage.
          items:
            format: float
            type: number
          type: array
        unicorn_matches:
          description: An array with three values, number of times a unicorn match (Win + Auto Quest + Face the Boss) occurred, number of opportunities to have a unicorn match, and percentage.
          items:
            format: float
            type: number
          type: array
        winning_opp_switch_denial_percentage_teleop:
          description: Average opposing switch denail percentage for the winning alliance during teleop.
          format: float
          type: number
        winning_own_switch_ownership_percentage:
          description: Average own switch ownership percentage for the winning alliance.
          format: float
          type: number
        winning_own_switch_ownership_percentage_auto:
          description: Average own switch ownership percentage for the winning alliance during auto.
          format: float
          type: number
        winning_own_switch_ownership_percentage_teleop:
          description: Average own switch ownership percentage for the winning alliance during teleop.
          format: float
          type: number
        winning_scale_ownership_percentage:
          description: Average scale ownership percentage for the winning alliance.
          format: float
          type: number
        winning_scale_ownership_percentage_auto:
          description: Average scale ownership percentage for the winning alliance during auto.
          format: float
          type: number
        winning_scale_ownership_percentage_teleop:
          description: Average scale ownership percentage for the winning alliance during teleop.
          format: float
          type: number
      required:
        - auto_quest_achieved
        - average_boost_played
        - average_endgame_points
        - average_force_played
        - average_foul_score
        - average_points_auto
        - average_points_teleop
        - average_run_points_auto
        - average_scale_ownership_points
        - average_scale_ownership_points_auto
        - average_scale_ownership_points_teleop
        - average_score
        - average_switch_ownership_points
        - average_switch_ownership_points_auto
        - average_switch_ownership_points_teleop
        - average_vault_points
        - average_win_margin
        - average_win_score
        - boost_played_counts
        - climb_counts
        - face_the_boss_achieved
        - force_played_counts
        - high_score
        - levitate_played_counts
        - run_counts_auto
        - scale_neutral_percentage
        - scale_neutral_percentage_auto
        - scale_neutral_percentage_teleop
        - switch_owned_counts_auto
        - unicorn_matches
        - winning_opp_switch_denial_percentage_teleop
        - winning_own_switch_ownership_percentage
        - winning_own_switch_ownership_percentage_auto
        - winning_own_switch_ownership_percentage_teleop
        - winning_scale_ownership_percentage
        - winning_scale_ownership_percentage_auto
        - winning_scale_ownership_percentage_teleop
      type: object
    Event_OPRs:
      description: OPR, DPR, and CCWM for teams at the event.
      properties:
        ccwms:
          additionalProperties:
            description: CCWM for team.
            format: float
            type: number
          description: A key-value pair with team key (eg `frc254`) as key and CCWM as value.
          type: object
        dprs:
          additionalProperties:
            description: DPR for team.
            format: float
            type: number
          description: A key-value pair with team key (eg `frc254`) as key and DPR as value.
          type: object
        oprs:
          additionalProperties:
            description: OPR for team.
            format: float
            type: number
          description: A key-value pair with team key (eg `frc254`) as key and OPR as value.
          type: object
      type: object
    Event_Predictions:
      description: JSON Object containing prediction information for the event. Contains year-specific information and is subject to change.
      type: object
    Event_Ranking:
      properties:
        extra_stats_info:
          description: List of special TBA-generated values provided in the `extra_stats` array for each item.
          items:
            properties:
              name:
                description: Name of the field used in the `extra_stats` array.
                type: string
              precision:
                description: Integer expressing the number of digits of precision in the number provided in `sort_orders`.
                type: number
            required:
              - name
              - precision
            type: object
          type: array
        rankings:
          description: List of rankings at the event.
          items:
            properties:
              dq:
                description: Number of times disqualified.
                type: integer
              extra_stats:
                description: Additional special data on the team's performance calculated by TBA.
                items:
                  type: number
                type: array
              matches_played:
                description: Number of matches played by this team.
                type: integer
              qual_average:
                description: The average match score during qualifications. Year specific. May be null if not relevant for a given year.
                type: integer
              rank:
                description: The team's rank at the event as provided by FIRST.
                type: integer
              record:
                $ref: "#/components/schemas/WLT_Record"
              sort_orders:
                description: Additional year-specific information, may be null. See parent `sort_order_info` for details.
                items:
                  type: number
                type: array
              team_key:
                description: The team with this rank.
                type: string
            required:
              - dq
              - matches_played
              - rank
              - record
              - team_key
            type: object
          type: array
        sort_order_info:
          description: List of year-specific values provided in the `sort_orders` array for each team.
          items:
            properties:
              name:
                description: Name of the field used in the `sort_order` array.
                type: string
              precision:
                description: Integer expressing the number of digits of precision in the number provided in `sort_orders`.
                type: integer
            required:
              - name
              - precision
            type: object
          type: array
      required:
        - rankings
        - sort_order_info
      type: object
    Event_Simple:
      properties:
        city:
          description: City, town, village, etc. the event is located in.
          type: string
        country:
          description: Country the event is located in.
          type: string
        district:
          $ref: "#/components/schemas/District_List"
        end_date:
          description: Event end date in `yyyy-mm-dd` format.
          format: date
          type: string
        event_code:
          description: Event short code, as provided by FIRST.
          type: string
        event_type:
          description: "Event Type, as defined here: https://github.com/the-blue-alliance/the-blue-alliance/blob/master/consts/event_type.py#L2"
          type: integer
        key:
          description: TBA event key with the format yyyy[EVENT_CODE], where yyyy is the year, and EVENT_CODE is the event code of the event.
          type: string
        name:
          description: Official name of event on record either provided by FIRST or organizers of offseason event.
          type: string
        start_date:
          description: Event start date in `yyyy-mm-dd` format.
          format: date
          type: string
        state_prov:
          description: State or Province the event is located in.
          type: string
        year:
          description: Year the event data is for.
          type: integer
      required:
        - end_date
        - event_code
        - event_type
        - key
        - name
        - start_date
        - year
      type: object
    Match:
      properties:
        actual_time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of actual match start time.
          format: int64
          type: integer
        alliances:
          description: A list of alliances, the teams on the alliances, and their score.
          properties:
            blue:
              $ref: "#/components/schemas/Match_alliance"
            red:
              $ref: "#/components/schemas/Match_alliance"
          type: object
        comp_level:
          description: The competition level the match was played at.
          enum:
            - qm
            - ef
            - qf
            - sf
            - f
          type: string
        event_key:
          description: Event key of the event the match was played at.
          type: string
        key:
          description: TBA match key with the format `yyyy[EVENT_CODE]_[COMP_LEVEL]m[MATCH_NUMBER]`, where `yyyy` is the year, and `EVENT_CODE` is the event code of the event, `COMP_LEVEL` is (qm, ef, qf, sf, f), and `MATCH_NUMBER` is the match number in the competition level. A set number may be appended to the competition level if more than one match in required per set.
          type: string
        match_number:
          description: The match number of the match in the competition level.
          type: integer
        post_result_time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) when the match result was posted.
          format: int64
          type: integer
        predicted_time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of the TBA predicted match start time.
          format: int64
          type: integer
        score_breakdown:
          description: Score breakdown for auto, teleop, etc. points. Varies from year to year. May be null.
          properties: {}
          type: object
        set_number:
          description: The set number in a series of matches where more than one match is required in the match series.
          type: integer
        time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of the scheduled match time, as taken from the published schedule.
          format: int64
          type: integer
        videos:
          description: Array of video objects associated with this match.
          items:
            properties:
              key:
                description: Unique key representing this video
                type: string
              type:
                description: Can be one of 'youtube' or 'tba'
                type: string
            type: object
          type: array
        winning_alliance:
          description: The color (red/blue) of the winning alliance. Will contain an empty string in the event of no winner, or a tie.
          enum:
            - red
            - blue
            - ""
          type: string
      required:
        - comp_level
        - event_key
        - key
        - match_number
        - set_number
      type: object
    Match_Score_Breakdown_2015:
      description: See the 2015 FMS API documentation for a description of each value
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2015_Alliance"
        coopertition:
          enum:
            - None
            - Unknown
            - Stack
          type: string
        coopertition_points:
          type: integer
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2015_Alliance"
      type: object
    Match_Score_Breakdown_2015_Alliance:
      properties:
        adjust_points:
          type: integer
        auto_points:
          type: integer
        container_count_level1:
          type: integer
        container_count_level2:
          type: integer
        container_count_level3:
          type: integer
        container_count_level4:
          type: integer
        container_count_level5:
          type: integer
        container_count_level6:
          type: integer
        container_points:
          type: integer
        container_set:
          type: boolean
        foul_count:
          type: integer
        foul_points:
          type: integer
        litter_count_container:
          type: integer
        litter_count_landfill:
          type: integer
        litter_count_unprocessed:
          type: integer
        litter_points:
          type: integer
        robot_set:
          type: boolean
        teleop_points:
          type: integer
        total_points:
          type: integer
        tote_count_far:
          type: integer
        tote_count_near:
          type: integer
        tote_points:
          type: integer
        tote_set:
          type: boolean
        tote_stack:
          type: boolean
      type: object
    Match_Score_Breakdown_2016:
      description: See the 2016 FMS API documentation for a description of each value.
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2016_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2016_Alliance"
      type: object
    Match_Score_Breakdown_2016_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoBoulderPoints:
          type: integer
        autoBouldersHigh:
          type: integer
        autoBouldersLow:
          type: integer
        autoCrossingPoints:
          type: integer
        autoPoints:
          type: integer
        autoReachPoints:
          type: integer
        breachPoints:
          type: integer
        capturePoints:
          type: integer
        foulCount:
          type: integer
        foulPoints:
          type: integer
        position1crossings:
          type: integer
        position2:
          type: string
        position2crossings:
          type: integer
        position3:
          type: string
        position3crossings:
          type: integer
        position4:
          type: string
        position4crossings:
          type: integer
        position5:
          type: string
        position5crossings:
          type: integer
        robot1Auto:
          enum:
            - Crossed
            - Reached
            - None
          type: string
        robot2Auto:
          enum:
            - Crossed
            - Reached
            - None
          type: string
        robot3Auto:
          enum:
            - Crossed
            - Reached
            - None
          type: string
        techFoulCount:
          type: integer
        teleopBoulderPoints:
          type: integer
        teleopBouldersHigh:
          type: integer
        teleopBouldersLow:
          type: integer
        teleopChallengePoints:
          type: integer
        teleopCrossingPoints:
          type: integer
        teleopDefensesBreached:
          type: boolean
        teleopPoints:
          type: integer
        teleopScalePoints:
          type: integer
        teleopTowerCaptured:
          type: integer
        totalPoints:
          type: integer
        towerEndStrength:
          type: integer
        towerFaceA:
          type: string
        towerFaceB:
          type: string
        towerFaceC:
          type: string
      type: object
    Match_Score_Breakdown_2017:
      description: See the 2017 FMS API documentation for a description of each value.
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2017_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2017_Alliance"
      type: object
    Match_Score_Breakdown_2017_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoFuelHigh:
          type: integer
        autoFuelLow:
          type: integer
        autoFuelPoints:
          type: integer
        autoMobilityPoints:
          type: integer
        autoPoints:
          type: integer
        autoRotorPoints:
          type: integer
        foulCount:
          type: integer
        foulPoints:
          type: integer
        kPaBonusPoints:
          type: integer
        kPaRankingPointAchieved:
          type: boolean
        robot1Auto:
          enum:
            - Unknown
            - Mobility
            - None
          type: string
        robot2Auto:
          enum:
            - Unknown
            - Mobility
            - None
          type: string
        robot3Auto:
          enum:
            - Unknown
            - Mobility
            - None
          type: string
        rotor1Auto:
          type: boolean
        rotor1Engaged:
          type: boolean
        rotor2Auto:
          type: boolean
        rotor2Engaged:
          type: boolean
        rotor3Engaged:
          type: boolean
        rotor4Engaged:
          type: boolean
        rotorBonusPoints:
          type: integer
        rotorRankingPointAchieved:
          type: boolean
        techFoulCount:
          type: integer
        teleopFuelHigh:
          type: integer
        teleopFuelLow:
          type: integer
        teleopFuelPoints:
          type: integer
        teleopPoints:
          type: integer
        teleopRotorPoints:
          type: integer
        teleopTakeoffPoints:
          type: integer
        totalPoints:
          type: integer
        touchpadFar:
          type: string
        touchpadMiddle:
          type: string
        touchpadNear:
          type: string
      type: object
    Match_Score_Breakdown_2018:
      description: See the 2018 FMS API documentation for a description of each value. https://frcevents2.docs.apiary.io/#/reference/match-results/score-details
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2018_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2018_Alliance"
      type: object
    Match_Score_Breakdown_2018_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoOwnershipPoints:
          type: integer
        autoPoints:
          type: integer
        autoQuestRankingPoint:
          type: boolean
        autoRobot1:
          type: string
        autoRobot2:
          type: string
        autoRobot3:
          type: string
        autoRunPoints:
          type: integer
        autoScaleOwnershipSec:
          type: integer
        autoSwitchAtZero:
          type: boolean
        autoSwitchOwnershipSec:
          type: integer
        endgamePoints:
          type: integer
        endgameRobot1:
          type: string
        endgameRobot2:
          type: string
        endgameRobot3:
          type: string
        faceTheBossRankingPoint:
          type: boolean
        foulCount:
          type: integer
        foulPoints:
          type: integer
        rp:
          type: integer
        tba_gameData:
          description: Unofficial TBA-computed value of the FMS provided GameData given to the alliance teams at the start of the match. 3 Character String containing `L` and `R` only. The first character represents the near switch, the 2nd the scale, and the 3rd the far, opposing, switch from the alliance's perspective. An `L` in a position indicates the platform on the left will be lit for the alliance while an `R` will indicate the right platform will be lit for the alliance. See also [WPI Screen Steps](https://wpilib.screenstepslive.com/s/currentCS/m/getting_started/l/826278-2018-game-data-details).
          type: string
        techFoulCount:
          type: integer
        teleopOwnershipPoints:
          type: integer
        teleopPoints:
          type: integer
        teleopScaleBoostSec:
          type: integer
        teleopScaleForceSec:
          type: integer
        teleopScaleOwnershipSec:
          type: integer
        teleopSwitchBoostSec:
          type: integer
        teleopSwitchForceSec:
          type: integer
        teleopSwitchOwnershipSec:
          type: integer
        totalPoints:
          type: integer
        vaultBoostPlayed:
          type: integer
        vaultBoostTotal:
          type: integer
        vaultForcePlayed:
          type: integer
        vaultForceTotal:
          type: integer
        vaultLevitatePlayed:
          type: integer
        vaultLevitateTotal:
          type: integer
        vaultPoints:
          type: integer
      type: object
    Match_Score_Breakdown_2019:
      description: See the 2019 FMS API documentation for a description of each value. https://frcevents2.docs.apiary.io/#/reference/match-results/score-details
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2019_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2019_Alliance"
      type: object
    Match_Score_Breakdown_2019_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoPoints:
          type: integer
        bay1:
          type: string
        bay2:
          type: string
        bay3:
          type: string
        bay4:
          type: string
        bay5:
          type: string
        bay6:
          type: string
        bay7:
          type: string
        bay8:
          type: string
        cargoPoints:
          type: integer
        completeRocketRankingPoint:
          type: boolean
        completedRocketFar:
          type: boolean
        completedRocketNear:
          type: boolean
        endgameRobot1:
          type: string
        endgameRobot2:
          type: string
        endgameRobot3:
          type: string
        foulCount:
          type: integer
        foulPoints:
          type: integer
        habClimbPoints:
          type: integer
        habDockingRankingPoint:
          type: boolean
        habLineRobot1:
          type: string
        habLineRobot2:
          type: string
        habLineRobot3:
          type: string
        hatchPanelPoints:
          type: integer
        lowLeftRocketFar:
          type: string
        lowLeftRocketNear:
          type: string
        lowRightRocketFar:
          type: string
        lowRightRocketNear:
          type: string
        midLeftRocketFar:
          type: string
        midLeftRocketNear:
          type: string
        midRightRocketFar:
          type: string
        midRightRocketNear:
          type: string
        preMatchBay1:
          type: string
        preMatchBay2:
          type: string
        preMatchBay3:
          type: string
        preMatchBay6:
          type: string
        preMatchBay7:
          type: string
        preMatchBay8:
          type: string
        preMatchLevelRobot1:
          type: string
        preMatchLevelRobot2:
          type: string
        preMatchLevelRobot3:
          type: string
        rp:
          type: integer
        sandStormBonusPoints:
          type: integer
        techFoulCount:
          type: integer
        teleopPoints:
          type: integer
        topLeftRocketFar:
          type: string
        topLeftRocketNear:
          type: string
        topRightRocketFar:
          type: string
        topRightRocketNear:
          type: string
        totalPoints:
          type: integer
      type: object
    Match_Score_Breakdown_2020:
      description: See the 2020 FMS API documentation for a description of each value. https://frcevents2.docs.apiary.io/#/reference/match-results/score-details
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2020_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2020_Alliance"
      type: object
    Match_Score_Breakdown_2020_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoCellPoints:
          type: integer
        autoCellsBottom:
          type: integer
        autoCellsInner:
          type: integer
        autoCellsOuter:
          type: integer
        autoInitLinePoints:
          type: integer
        autoPoints:
          type: integer
        controlPanelPoints:
          type: integer
        endgamePoints:
          type: integer
        endgameRobot1:
          type: string
        endgameRobot2:
          type: string
        endgameRobot3:
          type: string
        endgameRungIsLevel:
          type: string
        foulCount:
          type: integer
        foulPoints:
          type: integer
        initLineRobot1:
          type: string
        initLineRobot2:
          type: string
        initLineRobot3:
          type: string
        rp:
          type: integer
        shieldEnergizedRankingPoint:
          type: boolean
        shieldOperationalRankingPoint:
          type: boolean
        stage1Activated:
          type: boolean
        stage2Activated:
          type: boolean
        stage3Activated:
          type: boolean
        stage3TargetColor:
          type: string
        tba_numRobotsHanging:
          description: Unofficial TBA-computed value that counts the number of robots who were hanging at the end of the match.
          type: integer
        tba_shieldEnergizedRankingPointFromFoul:
          description: Unofficial TBA-computed value that indicates whether the shieldEnergizedRankingPoint was earned normally or awarded due to a foul.
          type: boolean
        techFoulCount:
          type: integer
        teleopCellPoints:
          type: integer
        teleopCellsBottom:
          type: integer
        teleopCellsInner:
          type: integer
        teleopCellsOuter:
          type: integer
        teleopPoints:
          type: integer
        totalPoints:
          type: integer
      type: object
    Match_Score_Breakdown_2022:
      description: See the 2022 FMS API documentation for a description of each value. https://frc-api-docs.firstinspires.org
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2022_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2022_Alliance"
      type: object
    Match_Score_Breakdown_2022_Alliance:
      properties:
        adjustPoints:
          type: integer
        autoCargoLowerBlue:
          type: integer
        autoCargoLowerFar:
          type: integer
        autoCargoLowerNear:
          type: integer
        autoCargoLowerRed:
          type: integer
        autoCargoPoints:
          type: integer
        autoCargoTotal:
          type: integer
        autoCargoUpperBlue:
          type: integer
        autoCargoUpperFar:
          type: integer
        autoCargoUpperNear:
          type: integer
        autoCargoUpperRed:
          type: integer
        autoPoints:
          type: integer
        autoTaxiPoints:
          type: integer
        cargoBonusRankingPoint:
          type: boolean
        endgamePoints:
          type: integer
        endgameRobot1:
          enum:
            - Traversal
            - High
            - Mid
            - Low
            - None
          type: string
        endgameRobot2:
          enum:
            - Traversal
            - High
            - Mid
            - Low
            - None
          type: string
        endgameRobot3:
          enum:
            - Traversal
            - High
            - Mid
            - Low
            - None
          type: string
        foulCount:
          type: integer
        foulPoints:
          type: integer
        hangarBonusRankingPoint:
          type: boolean
        matchCargoTotal:
          type: integer
        quintetAchieved:
          type: boolean
        rp:
          type: integer
        taxiRobot1:
          enum:
            - Yes
            - No
          type: string
        taxiRobot2:
          enum:
            - Yes
            - No
          type: string
        taxiRobot3:
          enum:
            - Yes
            - No
          type: string
        techFoulCount:
          type: integer
        teleopCargoLowerBlue:
          type: integer
        teleopCargoLowerFar:
          type: integer
        teleopCargoLowerNear:
          type: integer
        teleopCargoLowerRed:
          type: integer
        teleopCargoPoints:
          type: integer
        teleopCargoTotal:
          type: integer
        teleopCargoUpperBlue:
          type: integer
        teleopCargoUpperFar:
          type: integer
        teleopCargoUpperNear:
          type: integer
        teleopCargoUpperRed:
          type: integer
        teleopPoints:
          type: integer
        totalPoints:
          type: integer
      type: object
    Match_Score_Breakdown_2023:
      description: See the 2023 FMS API documentation for a description of each value. https://frc-api-docs.firstinspires.org
      properties:
        blue:
          $ref: "#/components/schemas/Match_Score_Breakdown_2023_Alliance"
        red:
          $ref: "#/components/schemas/Match_Score_Breakdown_2023_Alliance"
      type: object
    Match_Score_Breakdown_2023_Alliance:
      properties:
        activationBonusAchieved:
          type: boolean
        adjustPoints:
          type: integer
        autoBridgeState:
          enum:
            - NotLevel
            - Level
          type: string
        autoChargeStationPoints:
          type: integer
        autoChargeStationRobot1:
          enum:
            - None
            - Docked
          type: string
        autoChargeStationRobot2:
          enum:
            - None
            - Docked
          type: string
        autoChargeStationRobot3:
          enum:
            - None
            - Docked
          type: string
        autoCommunity:
          properties:
            B:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
            M:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
            T:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
          type: object
        autoDocked:
          type: boolean
        autoGamePieceCount:
          type: integer
        autoGamePiecePoints:
          type: integer
        autoMobilityPoints:
          type: integer
        autoPoints:
          type: integer
        coopGamePieceCount:
          type: integer
        coopertitionCriteriaMet:
          type: boolean
        endGameBridgeState:
          enum:
            - NotLevel
            - Level
          type: string
        endGameChargeStationPoints:
          type: integer
        endGameChargeStationRobot1:
          enum:
            - None
            - Docked
          type: string
        endGameChargeStationRobot2:
          enum:
            - None
            - Docked
          type: string
        endGameChargeStationRobot3:
          enum:
            - None
            - Docked
          type: string
        endGameParkPoints:
          type: integer
        extraGamePieceCount:
          type: integer
        foulCount:
          type: integer
        foulPoints:
          type: integer
        linkPoints:
          type: integer
        links:
          items:
            properties:
              nodes:
                items:
                  enum:
                    - None
                    - Cone
                    - Cube
                  type: string
                type: array
              row:
                enum:
                  - Bottom
                  - Mid
                  - Top
                type: string
            type: object
          type: array
        mobilityRobot1:
          enum:
            - Yes
            - No
          type: string
        mobilityRobot2:
          enum:
            - Yes
            - No
          type: string
        mobilityRobot3:
          enum:
            - Yes
            - No
          type: string
        rp:
          type: integer
        sustainabilityBonusAchieved:
          type: boolean
        techFoulCount:
          type: integer
        teleopCommunity:
          properties:
            B:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
            M:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
            T:
              items:
                enum:
                  - None
                  - Cone
                  - Cube
                type: string
              type: array
          type: object
        teleopGamePieceCount:
          type: integer
        teleopGamePiecePoints:
          type: integer
        teleopPoints:
          type: integer
        totalChargeStationPoints:
          type: integer
        totalPoints:
          type: integer
      type: object
    Match_Simple:
      properties:
        actual_time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of actual match start time.
          format: int64
          type: integer
        alliances:
          description: A list of alliances, the teams on the alliances, and their score.
          properties:
            blue:
              $ref: "#/components/schemas/Match_alliance"
            red:
              $ref: "#/components/schemas/Match_alliance"
          type: object
        comp_level:
          description: The competition level the match was played at.
          enum:
            - qm
            - ef
            - qf
            - sf
            - f
          type: string
        event_key:
          description: Event key of the event the match was played at.
          type: string
        key:
          description: TBA match key with the format `yyyy[EVENT_CODE]_[COMP_LEVEL]m[MATCH_NUMBER]`, where `yyyy` is the year, and `EVENT_CODE` is the event code of the event, `COMP_LEVEL` is (qm, ef, qf, sf, f), and `MATCH_NUMBER` is the match number in the competition level. A set number may append the competition level if more than one match in required per set.
          type: string
        match_number:
          description: The match number of the match in the competition level.
          type: integer
        predicted_time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of the TBA predicted match start time.
          format: int64
          type: integer
        set_number:
          description: The set number in a series of matches where more than one match is required in the match series.
          type: integer
        time:
          description: UNIX timestamp (seconds since 1-Jan-1970 00:00:00) of the scheduled match time, as taken from the published schedule.
          format: int64
          type: integer
        winning_alliance:
          description: The color (red/blue) of the winning alliance. Will contain an empty string in the event of no winner, or a tie.
          enum:
            - red
            - blue
            - ""
          type: string
      required:
        - comp_level
        - event_key
        - key
        - match_number
        - set_number
      type: object
    Match_Timeseries_2018:
      description: |-
        Timeseries data for the 2018 game *FIRST* POWER UP.
        *WARNING:* This is *not* official data, and is subject to a significant possibility of error, or missing data. Do not rely on this data for any purpose. In fact, pretend we made it up.
        *WARNING:* This model is currently under active development and may change at any time, including in breaking ways.
      properties:
        blue_auto_quest:
          description: 1 if the blue alliance is credited with the AUTO QUEST, 0 if not.
          type: integer
        blue_boost_count:
          description: Number of POWER CUBES in the BOOST section of the blue alliance VAULT.
          type: integer
        blue_boost_played:
          description: Returns 1 if the blue alliance BOOST was played, or 0 if not played.
          type: integer
        blue_current_powerup:
          description: Name of the current blue alliance POWER UP being played, or `null`.
          type: string
        blue_face_the_boss:
          description: 1 if the blue alliance is credited with FACING THE BOSS, 0 if not.
          type: integer
        blue_force_count:
          description: Number of POWER CUBES in the FORCE section of the blue alliance VAULT.
          type: integer
        blue_force_played:
          description: Returns 1 if the blue alliance FORCE was played, or 0 if not played.
          type: integer
        blue_levitate_count:
          description: Number of POWER CUBES in the LEVITATE section of the blue alliance VAULT.
          type: integer
        blue_levitate_played:
          description: Returns 1 if the blue alliance LEVITATE was played, or 0 if not played.
          type: integer
        blue_powerup_time_remaining:
          description: Number of seconds remaining in the blue alliance POWER UP time, or 0 if none is active.
          type: string
        blue_scale_owned:
          description: 1 if the blue alliance owns the SCALE, 0 if not.
          type: integer
        blue_score:
          description: Current score for the blue alliance.
          type: integer
        blue_switch_owned:
          description: 1 if the blue alliance owns their SWITCH, 0 if not.
          type: integer
        event_key:
          description: TBA event key with the format yyyy[EVENT_CODE], where yyyy is the year, and EVENT_CODE is the event code of the event.
          type: string
        match_id:
          description: Match ID consisting of the level, match number, and set number, eg `qm45` or `f1m1`.
          type: string
        mode:
          description: Current mode of play, can be `pre_match`, `auto`, `telop`, or `post_match`.
          type: string
        play:
          type: integer
        red_auto_quest:
          description: 1 if the red alliance is credited with the AUTO QUEST, 0 if not.
          type: integer
        red_boost_count:
          description: Number of POWER CUBES in the BOOST section of the red alliance VAULT.
          type: integer
        red_boost_played:
          description: Returns 1 if the red alliance BOOST was played, or 0 if not played.
          type: integer
        red_current_powerup:
          description: Name of the current red alliance POWER UP being played, or `null`.
          type: string
        red_face_the_boss:
          description: 1 if the red alliance is credited with FACING THE BOSS, 0 if not.
          type: integer
        red_force_count:
          description: Number of POWER CUBES in the FORCE section of the red alliance VAULT.
          type: integer
        red_force_played:
          description: Returns 1 if the red alliance FORCE was played, or 0 if not played.
          type: integer
        red_levitate_count:
          description: Number of POWER CUBES in the LEVITATE section of the red alliance VAULT.
          type: integer
        red_levitate_played:
          description: Returns 1 if the red alliance LEVITATE was played, or 0 if not played.
          type: integer
        red_powerup_time_remaining:
          description: Number of seconds remaining in the red alliance POWER UP time, or 0 if none is active.
          type: string
        red_scale_owned:
          description: 1 if the red alliance owns the SCALE, 0 if not.
          type: integer
        red_score:
          description: Current score for the red alliance.
          type: integer
        red_switch_owned:
          description: 1 if the red alliance owns their SWITCH, 0 if not.
          type: integer
        time_remaining:
          description: Amount of time remaining in the match, only valid during `auto` and `teleop` modes.
          type: integer
      type: object
    Match_alliance:
      properties:
        dq_team_keys:
          description: TBA team keys (eg `frc254`) of any disqualified teams.
          items:
            description: Team key of a disqualified team.
            type: string
          type: array
        score:
          description: Score for this alliance. Will be null or -1 for an unplayed match.
          type: integer
        surrogate_team_keys:
          description: TBA team keys (eg `frc254`) of any teams playing as a surrogate.
          items:
            description: Team key of a surrogate team.
            type: string
          type: array
        team_keys:
          items:
            description: TBA Team keys (eg `frc254`) for teams on this alliance.
            type: string
          type: array
      required:
        - score
        - team_keys
      type: object
    Media:
      description: The `Media` object contains a reference for most any media associated with a team or event on TBA.
      properties:
        details:
          description: If required, a JSON dict of additional media information.
          properties: {}
          type: object
        direct_url:
          description: Direct URL to the media.
          type: string
        foreign_key:
          description: The key used to identify this media on the media site.
          type: string
        preferred:
          description: True if the media is of high quality.
          type: boolean
        type:
          description: String type of the media element.
          enum:
            - youtube
            - cdphotothread
            - imgur
            - facebook-profile
            - youtube-channel
            - twitter-profile
            - github-profile
            - instagram-profile
            - periscope-profile
            - grabcad
            - instagram-image
            - external-link
            - avatar
          type: string
        view_url:
          description: The URL that leads to the full web page for the media, if one exists.
          type: string
      required:
        - type
        - foreign_key
      type: object
    Team:
      properties:
        address:
          description: Will be NULL, for future development.
          type: string
        city:
          description: City of team derived from parsing the address registered with FIRST.
          type: string
        country:
          description: Country of team derived from parsing the address registered with FIRST.
          type: string
        gmaps_place_id:
          description: Will be NULL, for future development.
          type: string
        gmaps_url:
          description: Will be NULL, for future development.
          format: url
          type: string
        home_championship:
          description: Location of the team's home championship each year as a key-value pair. The year (as a string) is the key, and the city is the value.
          properties: {}
          type: object
        key:
          description: TBA team key with the format `frcXXXX` with `XXXX` representing the team number.
          type: string
        lat:
          description: Will be NULL, for future development.
          format: double
          type: number
        lng:
          description: Will be NULL, for future development.
          format: double
          type: number
        location_name:
          description: Will be NULL, for future development.
          type: string
        motto:
          description: Team's motto as provided by FIRST. This field is deprecated and will return null - will be removed at end-of-season in 2019.
          type: string
        name:
          description: Official long name registered with FIRST.
          type: string
        nickname:
          description: Team nickname provided by FIRST.
          type: string
        postal_code:
          description: Postal code from the team address.
          type: string
        rookie_year:
          description: First year the team officially competed.
          type: integer
        school_name:
          description: Name of team school or affilited group registered with FIRST.
          type: string
        state_prov:
          description: State of team derived from parsing the address registered with FIRST.
          type: string
        team_number:
          description: Official team number issued by FIRST.
          type: integer
        website:
          description: Official website associated with the team.
          format: url
          type: string
      required:
        - key
        - name
        - team_number
      type: object
    Team_Event_Status:
      properties:
        alliance:
          $ref: "#/components/schemas/Team_Event_Status_alliance"
        alliance_status_str:
          description: An HTML formatted string suitable for display to the user containing the team's alliance pick status.
          type: string
        last_match_key:
          description: TBA match key for the last match the team played in at this event, or null.
          type: string
        next_match_key:
          description: TBA match key for the next match the team is scheduled to play in at this event, or null.
          type: string
        overall_status_str:
          description: An HTML formatted string suitable for display to the user containing the team's overall status summary of the event.
          type: string
        playoff:
          $ref: "#/components/schemas/Team_Event_Status_playoff"
        playoff_status_str:
          description: An HTML formatter string suitable for display to the user containing the team's playoff status.
          type: string
        qual:
          $ref: "#/components/schemas/Team_Event_Status_rank"
      type: object
    Team_Event_Status_alliance:
      properties:
        backup:
          $ref: "#/components/schemas/Team_Event_Status_alliance_backup"
        name:
          description: Alliance name, may be null.
          type: string
        number:
          description: Alliance number.
          type: integer
        pick:
          description: Order the team was picked in the alliance from 0-2, with 0 being alliance captain.
          type: integer
      required:
        - number
        - pick
      type: object
    Team_Event_Status_alliance_backup:
      description: Backup status, may be null.
      properties:
        in:
          description: TBA key for the backup team called in.
          type: string
        out:
          description: TBA key for the team replaced by the backup.
          type: string
      type: object
    Team_Event_Status_playoff:
      description: Playoff status for this team, may be null if the team did not make playoffs, or playoffs have not begun.
      properties:
        current_level_record:
          $ref: "#/components/schemas/WLT_Record"
        level:
          description: The highest playoff level the team reached.
          enum:
            - qm
            - ef
            - qf
            - sf
            - f
          type: string
        playoff_average:
          description: The average match score during playoffs. Year specific. May be null if not relevant for a given year.
          type: integer
        record:
          $ref: "#/components/schemas/WLT_Record"
        status:
          description: Current competition status for the playoffs.
          enum:
            - won
            - eliminated
            - playing
          type: string
      type: object
    Team_Event_Status_rank:
      properties:
        num_teams:
          description: Number of teams ranked.
          type: integer
        ranking:
          properties:
            dq:
              description: Number of matches the team was disqualified for.
              type: integer
            matches_played:
              description: Number of matches played.
              type: integer
            qual_average:
              description: For some years, average qualification score. Can be null.
              format: double
              type: number
            rank:
              description: Relative rank of this team.
              type: integer
            record:
              $ref: "#/components/schemas/WLT_Record"
            sort_orders:
              description: Ordered list of values used to determine the rank. See the `sort_order_info` property for the name of each value.
              items:
                type: number
              type: array
            team_key:
              description: TBA team key for this rank.
              type: string
          type: object
        sort_order_info:
          description: Ordered list of names corresponding to the elements of the `sort_orders` array.
          items:
            properties:
              name:
                description: The descriptive name of the value used to sort the ranking.
                type: string
              precision:
                description: The number of digits of precision used for this value, eg `2` would correspond to a value of `101.11` while `0` would correspond to `101`.
                type: integer
            type: object
          type: array
        status:
          type: string
      type: object
    Team_Robot:
      properties:
        key:
          description: Internal TBA identifier for this robot.
          type: string
        robot_name:
          description: Name of the robot as provided by the team.
          type: string
        team_key:
          description: TBA team key for this robot.
          type: string
        year:
          description: Year this robot competed in.
          type: integer
      required:
        - key
        - robot_name
        - team_key
        - year
      type: object
    Team_Simple:
      properties:
        city:
          description: City of team derived from parsing the address registered with FIRST.
          type: string
        country:
          description: Country of team derived from parsing the address registered with FIRST.
          type: string
        key:
          description: TBA team key with the format `frcXXXX` with `XXXX` representing the team number.
          type: string
        name:
          description: Official long name registered with FIRST.
          type: string
        nickname:
          description: Team nickname provided by FIRST.
          type: string
        state_prov:
          description: State of team derived from parsing the address registered with FIRST.
          type: string
        team_number:
          description: Official team number issued by FIRST.
          type: integer
      required:
        - key
        - name
        - team_number
      type: object
    WLT_Record:
      description: A Win-Loss-Tie record for a team, or an alliance.
      properties:
        losses:
          description: Number of losses.
          type: integer
        ties:
          description: Number of ties.
          type: integer
        wins:
          description: Number of wins.
          type: integer
      required:
        - losses
        - ties
        - wins
      type: object
    Webcast:
      properties:
        channel:
          description: Type specific channel information. May be the YouTube stream, or Twitch channel name. In the case of iframe types, contains HTML to embed the stream in an HTML iframe.
          type: string
        date:
          description: The date for the webcast in `yyyy-mm-dd` format. May be null.
          type: string
        file:
          description: File identification as may be required for some types. May be null.
          type: string
        type:
          description: Type of webcast, typically descriptive of the streaming provider.
          enum:
            - youtube
            - twitch
            - ustream
            - iframe
            - html5
            - rtmp
            - livestream
            - direct_link
            - mms
            - justin
            - stemtv
            - dacast
          type: string
      required:
        - channel
        - type
      type: object
    Zebra:
      properties:
        alliances:
          properties:
            blue:
              description: Zebra data for teams on the blue alliance
              items:
                $ref: "#/components/schemas/Zebra_team"
              type: array
            red:
              description: Zebra MotionWorks data for teams on the red alliance
              items:
                $ref: "#/components/schemas/Zebra_team"
              type: array
          type: object
        key:
          description: TBA match key with the format `yyyy[EVENT_CODE]_[COMP_LEVEL]m[MATCH_NUMBER]`, where `yyyy` is the year, and `EVENT_CODE` is the event code of the event, `COMP_LEVEL` is (qm, ef, qf, sf, f), and `MATCH_NUMBER` is the match number in the competition level. A set number may be appended to the competition level if more than one match in required per set.
          type: string
        times:
          description: A list of relative timestamps for each data point. Each timestamp will correspond to the X and Y value at the same index in a team xs and ys arrays. `times`, all teams `xs` and all teams `ys` are guarenteed to be the same length.
          items:
            example:
              - 0
              - 0.1
              - 0.2
            format: double
            type: number
          type: array
      required:
        - key
        - times
        - alliances
      type: object
    Zebra_team:
      properties:
        team_key:
          description: The TBA team key for the Zebra MotionWorks data.
          example: frc7332
          type: string
        xs:
          description: A list containing doubles and nulls representing a teams X position in feet at the corresponding timestamp. A null value represents no tracking data for a given timestamp.
          items:
            example:
              - 2.73
              - 2.7
              - null
            format: double
            type: number
          type: array
        ys:
          description: A list containing doubles and nulls representing a teams Y position in feet at the corresponding timestamp. A null value represents no tracking data for a given timestamp.
          items:
            example:
              - 2.73
              - 2.7
              - null
            format: double
            type: number
          type: array
      required:
        - team_key
        - xs
        - ys
      type: object
  securitySchemes:
    apiKey:
      description: Your TBA v3 API Key can be obtained from your [Account Page](/account) on the TBA website.
      in: header
      name: X-TBA-Auth-Key
      type: apiKey
