Topic Payloads
===
# SNS Topic
## TwitchChatEvent
**Attributes**
* `channel`
* `user`
* `eventType`
**Payload**
```js
```
## GameStats
**Attributes**
None for the beginning, as we bundle multiple games in one message to save actions on the SNS and SQS.
**Payload**
Multiple gamestat objects bundled in a message. (Note: Message should be below 64kbs)
```json
{
"stats": [
{
"name": "RocketLeague", //game name
"gameId": "3456", //twitch's gameId of the game
"viewers": 133700, //count of viewers
"channels": 234, //count of channels
"date": "2007-08-31T16:47+00:00" //date of scraping
}
]
}
```
---
:::danger
From here on :arrow_down: only old GCP stuff.
:::
## Subscriptions:
### Events
* RESUBSCRIPTION
* SUBSCRIPTION
* SUBSCRIPTION_GIFT
### PubSub Topic
`twitchSubscription`
### DATA:
OBJECT with the following properties
- twitchMessageId: `string`
- receivingUserId: `string`
- channel: `string` Twitch Channel
- tier: `string` ['1000', '2000', '3000', 'Prime']
- payingUserId: `string`
- months: `number`
- gifted: `bool`
- date: `date`
## Cheers
### Events
* CHEER
### PubSubTopic
`twitchCheer`
### DATA:
OBJECT with the following properties
- twitchMessageId: `string`
- channel: `string` Twitch Channel
- bits: `number`
- payingUserId: `string`
- date: `date`
## Raw
Events: ALL
### PubSub Topic
`twitchRaw`
### DATA:
Just a `string` with the raw data from twitch chat.
## Game stats
### PubSub Topic
`twitchGameStats`
### DATA:
OBJECT with the following properties
- name: `string`
- gameId: `number`
- viewers: `number`
- channels: `number`
- date: `date`
## Dead letter
### PubSubTopic
`deadLetter`
### DATA:
OBJECT with the following properties
- topic: `string` - the original pubsub topic the message was sent to
- publishTime: `datetime` - the publishTime of the original message
- data: `string` - the stringified base64 encoded data of the original message
- resolved: `bool` - if the dead letter is resolved by us (maybe for future use)
- error: `string` - stringified error object, why the message got dead
- subscriptionName: `string` - name of the subscription the original message was delivered to or the function/service which received it, as the subscriptionName is not available in CloudFunctions
- attributes: `string` - stringified attributes object of the original message
- messageId: `string` - the original message's messageId