Skip to content

Instantly share code, notes, and snippets.

@cowboy
Last active March 10, 2025 18:20
Show Gist options
  • Save cowboy/bb1480dd6568a4731ea0e1ab34b3068a to your computer and use it in GitHub Desktop.
Save cowboy/bb1480dd6568a4731ea0e1ab34b3068a to your computer and use it in GitHub Desktop.
test
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"definitions": {
"EventApiResponseMeta": {
"additionalProperties": false,
"description": "An object that represents metadata related to this event.",
"properties": {
"apiVersion": {
"description": "Api version.",
"type": "string"
},
"environment": {
"description": "The name of the environment this API was deployed to.",
"type": "string"
},
"eventId": {
"description": "The eventId parameter value from the path, as in `/event/{eventId}`.",
"type": "string"
},
"generatedOn": {
"description": "When this response was generated, in the [Date Time String Format](https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date-time-string-format).",
"type": "string"
}
},
"required": [
"apiVersion",
"environment",
"generatedOn",
"eventId"
],
"title": "Metadata",
"type": "object"
},
"RaidTrain": {
"additionalProperties": false,
"description": "An object representing a list of sets in chronological order. Equivalent to the concept of a \"stage\" at a festival, where artists play sets sequentially. Just like a festival may contain multiple stages, an event may have multiple raid trains.",
"properties": {
"end": {
"description": "End time for the raid train in Unix Time format (seconds since Jan 1, 1970 midnight UTC). This will be the same value as the raid train's last set `end` value.",
"type": "integer"
},
"name": {
"description": "Name of the raid train.",
"type": "string"
},
"schedule": {
"description": "An array of sets, in chronological order, for the raid train.",
"items": {
"$ref": "#/definitions/Set"
},
"type": "array"
},
"start": {
"description": "Start time for the raid train in Unix Time format (seconds since Jan 1, 1970 midnight UTC). This will be the same value as the raid train's first set `start` value.",
"type": "integer"
}
},
"required": [
"name",
"start",
"end",
"schedule"
],
"type": "object"
},
"Set": {
"additionalProperties": false,
"description": "An object representing the smallest unit of an event, describing the who is playing where, at any given time.",
"properties": {
"artist": {
"description": "Artist name in plain english, eg. `The Entire Robot`.",
"type": "string"
},
"avatarUrl": {
"description": "Absolute URL for the artist's twitch avatar.",
"type": "string"
},
"end": {
"description": "End time for the set in Unix Time format (seconds since Jan 1, 1970 midnight UTC).",
"type": "integer"
},
"location": {
"description": "Location name in plain english, eg. `Boston, Massachusetts USA`.",
"type": "string"
},
"numSlots": {
"description": "Number of slots this set takes, ie. `(end - start) / slotSize`.",
"type": "integer"
},
"start": {
"description": "Start time for the set in Unix Time format (seconds since Jan 1, 1970 midnight UTC).",
"type": "integer"
},
"twitchName": {
"description": "Twitch name as it appears in the URL, eg. `TheEntireRobot` in the case of `https://twitch.tv/TheEntireRobot`.",
"type": "string"
}
},
"required": [
"start",
"end",
"numSlots"
],
"type": "object"
}
},
"description": "An object that represents all the details of an event.",
"properties": {
"assetBaseUrl": {
"type": "string"
},
"callout": {
"type": "string"
},
"description": {
"type": "string"
},
"end": {
"type": "number"
},
"meta": {
"$ref": "#/definitions/EventApiResponseMeta"
},
"raidTrains": {
"items": {
"$ref": "#/definitions/RaidTrain"
},
"type": "array"
},
"slotSize": {
"type": "number"
},
"start": {
"type": "number"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"urlSlug": {
"type": "string"
}
},
"required": [
"meta",
"title",
"description",
"callout",
"url",
"urlSlug",
"assetBaseUrl",
"slotSize",
"start",
"end",
"raidTrains"
],
"title": "Event",
"type": "object"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment