#![allow(dead_code)]
use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use time::OffsetDateTime;
use super::{
EndpointStability, EventSubChatMessage, EventSubChatMessageDeleted,
EventSubSubscriptionDefinition,
};
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct GenericEventSubPayload {
#[serde(flatten)]
pub fields: BTreeMap<String, serde_json::Value>,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedBitsVoting {
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub amount_per_vote: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedChannelPointsVoting {
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub amount_per_vote: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedChoice {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits_votes: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_votes: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub votes: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedCustomPowerUp {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub prompt: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub begin: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedGlobalCooldown {
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub seconds: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedImage {
#[serde(default, deserialize_with = "super::null_default")]
pub url_1x: String,
#[serde(default, deserialize_with = "super::null_default")]
pub url_2x: String,
#[serde(default, deserialize_with = "super::null_default")]
pub url_4x: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedMaxPerStream {
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedMaxPerUserPerStream {
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emotes: Vec<SharedEmote>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedOutcome {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub color: String,
#[serde(default, deserialize_with = "super::null_default")]
pub users: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub top_predictors: Vec<SharedTopPredictor>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedProduct {
#[serde(default, deserialize_with = "super::null_default")]
pub name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub sku: String,
#[serde(default, deserialize_with = "super::null_default")]
pub in_development: bool,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedReward {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cost: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub prompt: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct SharedTopPredictor {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_won: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_used: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: AutomodMessageHold1EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub category: String,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub held_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<AutomodMessageHold1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: AutomodMessageHold1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: AutomodMessageHold1EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
impl super::HasSourceTimestamp for AutomodMessageHold1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: AutomodMessageHold2EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub held_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub automod: AutomodMessageHold2EventAutomod,
#[serde(default, deserialize_with = "super::null_default")]
pub blocked_term: AutomodMessageHold2EventBlockedTerm,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<AutomodMessageHold2EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: AutomodMessageHold2EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: AutomodMessageHold2EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventAutomod {
#[serde(default, deserialize_with = "super::null_default")]
pub category: String,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub boundaries: Vec<AutomodMessageHold2EventAutomodBoundaries>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventAutomodBoundaries {
#[serde(default, deserialize_with = "super::null_default")]
pub start_pos: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end_pos: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventBlockedTerm {
#[serde(default, deserialize_with = "super::null_default")]
pub terms_found: Vec<AutomodMessageHold2EventBlockedTermTermsFound>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventBlockedTermTermsFound {
#[serde(default, deserialize_with = "super::null_default")]
pub term_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub boundary: AutomodMessageHold2EventBlockedTermTermsFoundBoundary,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageHold2EventBlockedTermTermsFoundBoundary {
#[serde(default, deserialize_with = "super::null_default")]
pub start_pos: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end_pos: i64,
}
impl super::HasSourceTimestamp for AutomodMessageHold2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: AutomodMessageUpdate1EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub category: String,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub held_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<AutomodMessageUpdate1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: AutomodMessageUpdate1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: AutomodMessageUpdate1EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
impl super::HasSourceTimestamp for AutomodMessageUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: AutomodMessageUpdate2EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub held_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub automod: AutomodMessageUpdate2EventAutomod,
#[serde(default, deserialize_with = "super::null_default")]
pub blocked_term: AutomodMessageUpdate2EventBlockedTerm,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<AutomodMessageUpdate2EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: AutomodMessageUpdate2EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: AutomodMessageUpdate2EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventAutomod {
#[serde(default, deserialize_with = "super::null_default")]
pub category: String,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub boundaries: Vec<AutomodMessageUpdate2EventAutomodBoundaries>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventAutomodBoundaries {
#[serde(default, deserialize_with = "super::null_default")]
pub start_pos: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end_pos: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventBlockedTerm {
#[serde(default, deserialize_with = "super::null_default")]
pub terms_found: Vec<AutomodMessageUpdate2EventBlockedTermTermsFound>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventBlockedTermTermsFound {
#[serde(default, deserialize_with = "super::null_default")]
pub term_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub boundary: AutomodMessageUpdate2EventBlockedTermTermsFoundBoundary,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_broadcaster_user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodMessageUpdate2EventBlockedTermTermsFoundBoundary {
#[serde(default, deserialize_with = "super::null_default")]
pub start_pos: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end_pos: i64,
}
impl super::HasSourceTimestamp for AutomodMessageUpdate2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodSettingsUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bullying: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub overall_level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub disability: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub race_ethnicity_or_religion: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub misogyny: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub sexuality_sex_or_gender: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub aggression: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub sex_based_terms: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub swearing: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for AutomodSettingsUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct AutomodTermsUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub action: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_automod: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub terms: Vec<String>,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for AutomodTermsUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelBitsUse1EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub power_up: ChannelBitsUse1EventPowerUp,
#[serde(default, deserialize_with = "super::null_default")]
pub custom_power_up: ChannelBitsUse1EventCustomPowerUp,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelBitsUse1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelBitsUse1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: ChannelBitsUse1EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub format: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventPowerUp {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelBitsUse1EventPowerUpEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub message_effect_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventPowerUpEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBitsUse1EventCustomPowerUp {
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reward_id: String,
}
impl super::HasSourceTimestamp for ChannelBitsUse1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelUpdate2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub language: String,
#[serde(default, deserialize_with = "super::null_default")]
pub category_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub category_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub content_classification_labels: Vec<String>,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelUpdate2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelFollow2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub followed_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelFollow2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelAdBreakBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub duration_seconds: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_automatic: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub requester_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub requester_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub requester_user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelAdBreakBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatClear1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChatClear1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatClearUserMessages1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub target_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub target_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub target_user_login: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChatClearUserMessages1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub chatter_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub chatter_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub chatter_is_anonymous: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub color: String,
#[serde(default, deserialize_with = "super::null_default")]
pub badges: Vec<ChannelChatNotification1EventBadges>,
#[serde(default, deserialize_with = "super::null_default")]
pub system_message: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelChatNotification1EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub notice_type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub sub: ChannelChatNotification1EventSub,
#[serde(default, deserialize_with = "super::null_default")]
pub resub: ChannelChatNotification1EventResub,
#[serde(default, deserialize_with = "super::null_default")]
pub sub_gift: ChannelChatNotification1EventSubGift,
#[serde(default, deserialize_with = "super::null_default")]
pub community_sub_gift: ChannelChatNotification1EventCommunitySubGift,
#[serde(default, deserialize_with = "super::null_default")]
pub gift_paid_upgrade: ChannelChatNotification1EventGiftPaidUpgrade,
#[serde(default, deserialize_with = "super::null_default")]
pub prime_paid_upgrade: ChannelChatNotification1EventPrimePaidUpgrade,
#[serde(default, deserialize_with = "super::null_default")]
pub pay_it_forward: ChannelChatNotification1EventPayItForward,
#[serde(default, deserialize_with = "super::null_default")]
pub raid: ChannelChatNotification1EventRaid,
#[serde(default, deserialize_with = "super::null_default")]
pub unraid: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub announcement: ChannelChatNotification1EventAnnouncement,
#[serde(default, deserialize_with = "super::null_default")]
pub bits_badge_tier: ChannelChatNotification1EventBitsBadgeTier,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_donation: ChannelChatNotification1EventCharityDonation,
#[serde(default, deserialize_with = "super::null_default")]
pub watch_streak: ChannelChatNotification1EventWatchStreak,
#[serde(default, deserialize_with = "super::null_default")]
pub modiversary: ChannelChatNotification1EventModiversary,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_badges: ChannelChatNotification1EventSourceBadges,
#[serde(default, deserialize_with = "super::null_default")]
pub is_source_only: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_sub: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_resub: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_sub_gift: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_community_sub_gift: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_gift_paid_upgrade: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_prime_paid_upgrade: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_pay_it_forward: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_raid: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_announcement: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_modiversary: serde_json::Value,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventBadges {
#[serde(default, deserialize_with = "super::null_default")]
pub set_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub info: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelChatNotification1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: ChannelChatNotification1EventMessageFragmentsCheermote,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelChatNotification1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub mention: ChannelChatNotification1EventMessageFragmentsMention,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub owner_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub format: Vec<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventMessageFragmentsMention {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventSub {
#[serde(default, deserialize_with = "super::null_default")]
pub sub_tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_prime: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub duration_months: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventResub {
#[serde(default, deserialize_with = "super::null_default")]
pub cumulative_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub duration_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub streak_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub sub_tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_prime: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_gift: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_is_anonymous: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_login: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventSubGift {
#[serde(default, deserialize_with = "super::null_default")]
pub duration_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub cumulative_total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub recipient_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub recipient_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub recipient_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub sub_tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub community_gift_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventCommunitySubGift {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub sub_tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cumulative_total: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventGiftPaidUpgrade {
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_is_anonymous: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventPrimePaidUpgrade {
#[serde(default, deserialize_with = "super::null_default")]
pub sub_tier: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventPayItForward {
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_is_anonymous: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub gifter_user_login: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventRaid {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewer_count: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub profile_image_url: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventAnnouncement {
#[serde(default, deserialize_with = "super::null_default")]
pub color: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventBitsBadgeTier {
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventCharityDonation {
#[serde(default, deserialize_with = "super::null_default")]
pub charity_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub amount: ChannelChatNotification1EventCharityDonationAmount,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventCharityDonationAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_place: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventWatchStreak {
#[serde(default, deserialize_with = "super::null_default")]
pub streak_count: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_awarded: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventModiversary {
#[serde(default, deserialize_with = "super::null_default")]
pub months: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatNotification1EventSourceBadges {
#[serde(default, deserialize_with = "super::null_default")]
pub set_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub info: String,
}
impl super::HasSourceTimestamp for ChannelChatNotification1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatSettingsUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_mode: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub follower_mode: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub follower_mode_duration_minutes: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub slow_mode: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub slow_mode_wait_time_seconds: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub subscriber_mode: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub unique_chat_mode: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChatSettingsUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageHold1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelChatUserMessageHold1EventMessage,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageHold1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelChatUserMessageHold1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageHold1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelChatUserMessageHold1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: ChannelChatUserMessageHold1EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageHold1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageHold1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
impl super::HasSourceTimestamp for ChannelChatUserMessageHold1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelChatUserMessageUpdate1EventMessage,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageUpdate1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelChatUserMessageUpdate1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageUpdate1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelChatUserMessageUpdate1EventMessageFragmentsEmote,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: ChannelChatUserMessageUpdate1EventMessageFragmentsCheermote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageUpdate1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChatUserMessageUpdate1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: i64,
}
impl super::HasSourceTimestamp for ChannelChatUserMessageUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSharedChatBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub participants: ChannelSharedChatBegin1EventParticipants,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSharedChatBegin1EventParticipants {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
}
impl super::HasSourceTimestamp for ChannelSharedChatBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSharedChatUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub participants: ChannelSharedChatUpdate1EventParticipants,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSharedChatUpdate1EventParticipants {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
}
impl super::HasSourceTimestamp for ChannelSharedChatUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSharedChatEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_broadcaster_user_login: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSharedChatEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSubscribe1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_gift: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSubscribe1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSubscriptionEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_gift: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSubscriptionEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSubscriptionGift1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cumulative_total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub is_anonymous: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSubscriptionGift1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSubscriptionMessage1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: SharedMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub cumulative_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub streak_months: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub duration_months: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSubscriptionMessage1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCheer1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub is_anonymous: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelCheer1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelRaid1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewers: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelRaid1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelBan1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub banned_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ends_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_permanent: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelBan1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelUnban1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelUnban1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelUnbanRequestCreate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub created_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelUnbanRequestCreate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelUnbanRequestResolve1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub resolution_text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelUnbanRequestResolve1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub action: String,
#[serde(default, deserialize_with = "super::null_default")]
pub followers: ChannelModerate1EventFollowers,
#[serde(default, deserialize_with = "super::null_default")]
pub slow: ChannelModerate1EventSlow,
#[serde(default, deserialize_with = "super::null_default")]
pub vip: ChannelModerate1EventVip,
#[serde(default, deserialize_with = "super::null_default")]
pub unvip: ChannelModerate1EventUnvip,
#[serde(default, deserialize_with = "super::null_default")]
pub r#mod: ChannelModerate1EventMod,
#[serde(default, deserialize_with = "super::null_default")]
pub unmod: ChannelModerate1EventUnmod,
#[serde(default, deserialize_with = "super::null_default")]
pub ban: ChannelModerate1EventBan,
#[serde(default, deserialize_with = "super::null_default")]
pub unban: ChannelModerate1EventUnban,
#[serde(default, deserialize_with = "super::null_default")]
pub timeout: ChannelModerate1EventTimeout,
#[serde(default, deserialize_with = "super::null_default")]
pub untimeout: ChannelModerate1EventUntimeout,
#[serde(default, deserialize_with = "super::null_default")]
pub raid: ChannelModerate1EventRaid,
#[serde(default, deserialize_with = "super::null_default")]
pub unraid: ChannelModerate1EventUnraid,
#[serde(default, deserialize_with = "super::null_default")]
pub delete: ChannelModerate1EventDelete,
#[serde(default, deserialize_with = "super::null_default")]
pub automod_terms: ChannelModerate1EventAutomodTerms,
#[serde(default, deserialize_with = "super::null_default")]
pub unban_request: ChannelModerate1EventUnbanRequest,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_ban: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_unban: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_timeout: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_untimeout: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_delete: serde_json::Value,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventFollowers {
#[serde(default, deserialize_with = "super::null_default")]
pub follow_duration_minutes: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventSlow {
#[serde(default, deserialize_with = "super::null_default")]
pub wait_time_seconds: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventVip {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUnvip {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventMod {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUnmod {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventBan {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUnban {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventTimeout {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub expires_at: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUntimeout {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventRaid {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewer_count: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUnraid {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventDelete {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_body: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventAutomodTerms {
#[serde(default, deserialize_with = "super::null_default")]
pub action: String,
#[serde(default, deserialize_with = "super::null_default")]
pub list: String,
#[serde(default, deserialize_with = "super::null_default")]
pub terms: Vec<String>,
#[serde(default, deserialize_with = "super::null_default")]
pub from_automod: bool,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate1EventUnbanRequest {
#[serde(default, deserialize_with = "super::null_default")]
pub is_approved: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_message: String,
}
impl super::HasSourceTimestamp for ChannelModerate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub source_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub action: String,
#[serde(default, deserialize_with = "super::null_default")]
pub followers: ChannelModerate2EventFollowers,
#[serde(default, deserialize_with = "super::null_default")]
pub slow: ChannelModerate2EventSlow,
#[serde(default, deserialize_with = "super::null_default")]
pub vip: ChannelModerate2EventVip,
#[serde(default, deserialize_with = "super::null_default")]
pub unvip: ChannelModerate2EventUnvip,
#[serde(default, deserialize_with = "super::null_default")]
pub r#mod: ChannelModerate2EventMod,
#[serde(default, deserialize_with = "super::null_default")]
pub unmod: ChannelModerate2EventUnmod,
#[serde(default, deserialize_with = "super::null_default")]
pub ban: ChannelModerate2EventBan,
#[serde(default, deserialize_with = "super::null_default")]
pub unban: ChannelModerate2EventUnban,
#[serde(default, deserialize_with = "super::null_default")]
pub timeout: ChannelModerate2EventTimeout,
#[serde(default, deserialize_with = "super::null_default")]
pub untimeout: ChannelModerate2EventUntimeout,
#[serde(default, deserialize_with = "super::null_default")]
pub raid: ChannelModerate2EventRaid,
#[serde(default, deserialize_with = "super::null_default")]
pub unraid: ChannelModerate2EventUnraid,
#[serde(default, deserialize_with = "super::null_default")]
pub delete: ChannelModerate2EventDelete,
#[serde(default, deserialize_with = "super::null_default")]
pub automod_terms: ChannelModerate2EventAutomodTerms,
#[serde(default, deserialize_with = "super::null_default")]
pub unban_request: ChannelModerate2EventUnbanRequest,
#[serde(default, deserialize_with = "super::null_default")]
pub warn: ChannelModerate2EventWarn,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_ban: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_unban: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_timeout: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_untimeout: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_chat_delete: serde_json::Value,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventFollowers {
#[serde(default, deserialize_with = "super::null_default")]
pub follow_duration_minutes: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventSlow {
#[serde(default, deserialize_with = "super::null_default")]
pub wait_time_seconds: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventVip {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUnvip {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventMod {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUnmod {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventBan {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUnban {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventTimeout {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub expires_at: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUntimeout {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventRaid {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewer_count: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUnraid {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventDelete {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message_body: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventAutomodTerms {
#[serde(default, deserialize_with = "super::null_default")]
pub action: String,
#[serde(default, deserialize_with = "super::null_default")]
pub list: String,
#[serde(default, deserialize_with = "super::null_default")]
pub terms: Vec<String>,
#[serde(default, deserialize_with = "super::null_default")]
pub from_automod: bool,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventUnbanRequest {
#[serde(default, deserialize_with = "super::null_default")]
pub is_approved: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_message: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModerate2EventWarn {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub chat_rules_cited: Vec<String>,
}
impl super::HasSourceTimestamp for ChannelModerate2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModeratorAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelModeratorAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelModeratorRemove1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelModeratorRemove1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGuestStarSessionBeginBetaEvent {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGuestStarSessionBeginBetaEvent {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGuestStarSessionEndBetaEvent {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_login: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGuestStarSessionEndBetaEvent {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGuestStarGuestUpdateBetaEvent {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub guest_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub guest_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub guest_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub slot_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub state: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub host_video_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub host_audio_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub host_volume: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGuestStarGuestUpdateBetaEvent {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGuestStarSettingsUpdateBetaEvent {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_moderator_send_live_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub slot_count: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub is_browser_source_audio_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub group_layout: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGuestStarSettingsUpdateBetaEvent {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reward: ChannelChannelPointsAutomaticRewardRedemptionAdd1EventReward,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelChannelPointsAutomaticRewardRedemptionAdd1EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub user_input: String,
#[serde(default, deserialize_with = "super::null_default")]
pub redeemed_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd1EventReward {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cost: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub unlocked_emote: ChannelChannelPointsAutomaticRewardRedemptionAdd1EventRewardUnlockedEmote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd1EventRewardUnlockedEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emotes: Vec<ChannelChannelPointsAutomaticRewardRedemptionAdd1EventMessageEmotes>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd1EventMessageEmotes {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub begin: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub end: i64,
}
impl super::HasSourceTimestamp for ChannelChannelPointsAutomaticRewardRedemptionAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reward: ChannelChannelPointsAutomaticRewardRedemptionAdd2EventReward,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessage,
#[serde(default, deserialize_with = "super::null_default")]
pub redeemed_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2EventReward {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelChannelPointsAutomaticRewardRedemptionAdd2EventRewardEmote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2EventRewardEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub name: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessageFragmentsEmote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsAutomaticRewardRedemptionAdd2EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
}
impl super::HasSourceTimestamp for ChannelChannelPointsAutomaticRewardRedemptionAdd2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsCustomRewardAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_paused: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_in_stock: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cost: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub prompt: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_user_input_required: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub should_redemptions_skip_request_queue: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_stream: SharedMaxPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_user_per_stream: SharedMaxPerUserPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub background_color: String,
#[serde(default, deserialize_with = "super::null_default")]
pub image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub default_image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub global_cooldown: SharedGlobalCooldown,
#[serde(default, deserialize_with = "super::null_default")]
pub cooldown_expires_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub redemptions_redeemed_current_stream: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChannelPointsCustomRewardAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsCustomRewardUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_paused: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_in_stock: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cost: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub prompt: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_user_input_required: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub should_redemptions_skip_request_queue: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_stream: SharedMaxPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_user_per_stream: SharedMaxPerUserPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub background_color: String,
#[serde(default, deserialize_with = "super::null_default")]
pub image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub default_image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub global_cooldown: SharedGlobalCooldown,
#[serde(default, deserialize_with = "super::null_default")]
pub cooldown_expires_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub redemptions_redeemed_current_stream: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChannelPointsCustomRewardUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsCustomRewardRemove1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_enabled: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_paused: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub is_in_stock: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cost: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub prompt: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_user_input_required: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub should_redemptions_skip_request_queue: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_stream: SharedMaxPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub max_per_user_per_stream: SharedMaxPerUserPerStream,
#[serde(default, deserialize_with = "super::null_default")]
pub background_color: String,
#[serde(default, deserialize_with = "super::null_default")]
pub image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub default_image: SharedImage,
#[serde(default, deserialize_with = "super::null_default")]
pub global_cooldown: SharedGlobalCooldown,
#[serde(default, deserialize_with = "super::null_default")]
pub cooldown_expires_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub redemptions_redeemed_current_stream: i64,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChannelPointsCustomRewardRemove1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsCustomRewardRedemptionAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_input: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub redeemed_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reward: SharedReward,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChannelPointsCustomRewardRedemptionAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelChannelPointsCustomRewardRedemptionUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_input: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reward: SharedReward,
#[serde(default, deserialize_with = "super::null_default")]
pub redeemed_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelChannelPointsCustomRewardRedemptionUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCustomPowerUpRedemptionAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_input: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub custom_power_up: SharedCustomPowerUp,
#[serde(default, deserialize_with = "super::null_default")]
pub redeemed_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelCustomPowerUpRedemptionAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPollBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub choices: Vec<SharedChoice>,
#[serde(default, deserialize_with = "super::null_default")]
pub bits_voting: SharedBitsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_voting: SharedChannelPointsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ends_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPollBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPollProgress1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub choices: Vec<SharedChoice>,
#[serde(default, deserialize_with = "super::null_default")]
pub bits_voting: SharedBitsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_voting: SharedChannelPointsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ends_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPollProgress1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPollEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub choices: Vec<SharedChoice>,
#[serde(default, deserialize_with = "super::null_default")]
pub bits_voting: SharedBitsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub channel_points_voting: SharedChannelPointsVoting,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPollEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPredictionBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub outcomes: Vec<SharedOutcome>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub locks_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPredictionBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPredictionProgress1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub outcomes: Vec<SharedOutcome>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub locks_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPredictionProgress1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPredictionLock1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub outcomes: Vec<SharedOutcome>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub locked_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPredictionLock1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelPredictionEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub title: String,
#[serde(default, deserialize_with = "super::null_default")]
pub winning_outcome_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub outcomes: Vec<SharedOutcome>,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelPredictionEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserMessage1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub low_trust_status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_ban_channel_ids: Vec<String>,
#[serde(default, deserialize_with = "super::null_default")]
pub types: Vec<String>,
#[serde(default, deserialize_with = "super::null_default")]
pub ban_evasion_evaluation: String,
#[serde(default, deserialize_with = "super::null_default")]
pub message: ChannelSuspiciousUserMessage1EventMessage,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserMessage1EventMessage {
#[serde(default, deserialize_with = "super::null_default")]
pub message_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub fragments: Vec<ChannelSuspiciousUserMessage1EventMessageFragments>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserMessage1EventMessageFragments {
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cheermote: ChannelSuspiciousUserMessage1EventMessageFragmentsCheermote,
#[serde(default, deserialize_with = "super::null_default")]
pub emote: ChannelSuspiciousUserMessage1EventMessageFragmentsEmote,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserMessage1EventMessageFragmentsCheermote {
#[serde(default, deserialize_with = "super::null_default")]
pub prefix: String,
#[serde(default, deserialize_with = "super::null_default")]
pub bits: String,
#[serde(default, deserialize_with = "super::null_default")]
pub tier: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserMessage1EventMessageFragmentsEmote {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub emote_set_id: String,
}
impl super::HasSourceTimestamp for ChannelSuspiciousUserMessage1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelSuspiciousUserUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub low_trust_status: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelSuspiciousUserUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelVipAdd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelVipAdd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelVipRemove1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelVipRemove1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelWarningAcknowledge1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelWarningAcknowledge1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelWarningSend1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub reason: String,
#[serde(default, deserialize_with = "super::null_default")]
pub chat_rules_cited: Vec<String>,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelWarningSend1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignDonate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub campaign_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_logo: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_website: String,
#[serde(default, deserialize_with = "super::null_default")]
pub amount: ChannelCharityCampaignDonate1EventAmount,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignDonate1EventAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
impl super::HasSourceTimestamp for ChannelCharityCampaignDonate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStart1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_logo: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_website: String,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: ChannelCharityCampaignStart1EventCurrentAmount,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: ChannelCharityCampaignStart1EventTargetAmount,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStart1EventCurrentAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStart1EventTargetAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
impl super::HasSourceTimestamp for ChannelCharityCampaignStart1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignProgress1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_logo: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_website: String,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: ChannelCharityCampaignProgress1EventCurrentAmount,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: ChannelCharityCampaignProgress1EventTargetAmount,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignProgress1EventCurrentAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignProgress1EventTargetAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
impl super::HasSourceTimestamp for ChannelCharityCampaignProgress1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStop1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_logo: String,
#[serde(default, deserialize_with = "super::null_default")]
pub charity_website: String,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: ChannelCharityCampaignStop1EventCurrentAmount,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: ChannelCharityCampaignStop1EventTargetAmount,
#[serde(default, deserialize_with = "super::null_default")]
pub stopped_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStop1EventCurrentAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelCharityCampaignStop1EventTargetAmount {
#[serde(default, deserialize_with = "super::null_default")]
pub value: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub decimal_places: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub currency: String,
}
impl super::HasSourceTimestamp for ChannelCharityCampaignStop1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ConduitShardDisabled1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub conduit_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub shard_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub status: String,
#[serde(default, deserialize_with = "super::null_default")]
pub transport: serde_json::Value,
#[serde(default, deserialize_with = "super::null_default")]
pub method: String,
#[serde(default, deserialize_with = "super::null_default")]
pub callback: String,
#[serde(default, deserialize_with = "super::null_default")]
pub session_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub connected_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub disconnected_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ConduitShardDisabled1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct DropEntitlementGrant1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub data: Vec<serde_json::Value>,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for DropEntitlementGrant1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ExtensionBitsTransactionCreate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub extension_client_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub product: SharedProduct,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ExtensionBitsTransactionCreate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGoalBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_achieved: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGoalBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGoalProgress1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_achieved: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGoalProgress1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelGoalEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub description: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_achieved: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub current_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub target_amount: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelGoalEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainBegin2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub progress: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub goal: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub top_contributions: Vec<ChannelHypeTrainBegin2EventTopContributions>,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub all_time_high_level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub all_time_high_total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_train_participants: Vec<ChannelHypeTrainBegin2EventSharedTrainParticipants>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub expires_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_shared_train: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainBegin2EventTopContributions {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainBegin2EventSharedTrainParticipants {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
}
impl super::HasSourceTimestamp for ChannelHypeTrainBegin2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainProgress2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub progress: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub goal: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub top_contributions: Vec<ChannelHypeTrainProgress2EventTopContributions>,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_train_participants: Vec<ChannelHypeTrainProgress2EventSharedTrainParticipants>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub expires_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_shared_train: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainProgress2EventTopContributions {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainProgress2EventSharedTrainParticipants {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
}
impl super::HasSourceTimestamp for ChannelHypeTrainProgress2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainEnd2Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub top_contributions: Vec<ChannelHypeTrainEnd2EventTopContributions>,
#[serde(default, deserialize_with = "super::null_default")]
pub level: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub shared_train_participants: Vec<ChannelHypeTrainEnd2EventSharedTrainParticipants>,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cooldown_ends_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub is_shared_train: bool,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainEnd2EventTopContributions {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub total: i64,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelHypeTrainEnd2EventSharedTrainParticipants {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
}
impl super::HasSourceTimestamp for ChannelHypeTrainEnd2Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelShieldModeBegin1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelShieldModeBegin1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelShieldModeEnd1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub ended_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelShieldModeEnd1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelShoutoutCreate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub moderator_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewer_count: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub cooldown_ends_at: String,
#[serde(default, deserialize_with = "super::null_default")]
pub target_cooldown_ends_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelShoutoutCreate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct ChannelShoutoutReceive1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub viewer_count: i64,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for ChannelShoutoutReceive1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct StreamOnline1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub r#type: String,
#[serde(default, deserialize_with = "super::null_default")]
pub started_at: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for StreamOnline1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct StreamOffline1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub broadcaster_user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for StreamOffline1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct UserAuthorizationGrant1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub client_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for UserAuthorizationGrant1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct UserAuthorizationRevoke1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub client_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for UserAuthorizationRevoke1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct UserUpdate1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub email: String,
#[serde(default, deserialize_with = "super::null_default")]
pub email_verified: bool,
#[serde(default, deserialize_with = "super::null_default")]
pub description: String,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
impl super::HasSourceTimestamp for UserUpdate1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct UserWhisperMessage1Event {
#[serde(default, deserialize_with = "super::null_default")]
pub from_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub from_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_user_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_user_name: String,
#[serde(default, deserialize_with = "super::null_default")]
pub to_user_login: String,
#[serde(default, deserialize_with = "super::null_default")]
pub whisper_id: String,
#[serde(default, deserialize_with = "super::null_default")]
pub whisper: UserWhisperMessage1EventWhisper,
#[serde(skip)]
pub source_timestamp: Option<OffsetDateTime>,
}
#[derive(Clone, Debug, Default, PartialEq, Serialize, Deserialize)]
pub struct UserWhisperMessage1EventWhisper {
#[serde(default, deserialize_with = "super::null_default")]
pub text: String,
}
impl super::HasSourceTimestamp for UserWhisperMessage1Event {
fn set_source_timestamp(&mut self, source_timestamp: Option<OffsetDateTime>) {
self.source_timestamp = source_timestamp;
}
}
#[allow(clippy::large_enum_variant)]
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub enum KnownEventSubPayload {
AutomodMessageHold1(AutomodMessageHold1Event),
AutomodMessageHold2(AutomodMessageHold2Event),
AutomodMessageUpdate1(AutomodMessageUpdate1Event),
AutomodMessageUpdate2(AutomodMessageUpdate2Event),
AutomodSettingsUpdate1(AutomodSettingsUpdate1Event),
AutomodTermsUpdate1(AutomodTermsUpdate1Event),
ChannelBitsUse1(ChannelBitsUse1Event),
ChannelUpdate2(ChannelUpdate2Event),
ChannelFollow2(ChannelFollow2Event),
ChannelAdBreakBegin1(ChannelAdBreakBegin1Event),
ChannelChatClear1(ChannelChatClear1Event),
ChannelChatClearUserMessages1(ChannelChatClearUserMessages1Event),
ChannelChatMessage1(EventSubChatMessage),
ChannelChatMessageDelete1(EventSubChatMessageDeleted),
ChannelChatNotification1(ChannelChatNotification1Event),
ChannelChatSettingsUpdate1(ChannelChatSettingsUpdate1Event),
ChannelChatUserMessageHold1(ChannelChatUserMessageHold1Event),
ChannelChatUserMessageUpdate1(ChannelChatUserMessageUpdate1Event),
ChannelSharedChatBegin1(ChannelSharedChatBegin1Event),
ChannelSharedChatUpdate1(ChannelSharedChatUpdate1Event),
ChannelSharedChatEnd1(ChannelSharedChatEnd1Event),
ChannelSubscribe1(ChannelSubscribe1Event),
ChannelSubscriptionEnd1(ChannelSubscriptionEnd1Event),
ChannelSubscriptionGift1(ChannelSubscriptionGift1Event),
ChannelSubscriptionMessage1(ChannelSubscriptionMessage1Event),
ChannelCheer1(ChannelCheer1Event),
ChannelRaid1(ChannelRaid1Event),
ChannelBan1(ChannelBan1Event),
ChannelUnban1(ChannelUnban1Event),
ChannelUnbanRequestCreate1(ChannelUnbanRequestCreate1Event),
ChannelUnbanRequestResolve1(ChannelUnbanRequestResolve1Event),
ChannelModerate1(ChannelModerate1Event),
ChannelModerate2(ChannelModerate2Event),
ChannelModeratorAdd1(ChannelModeratorAdd1Event),
ChannelModeratorRemove1(ChannelModeratorRemove1Event),
ChannelGuestStarSessionBeginBeta(ChannelGuestStarSessionBeginBetaEvent),
ChannelGuestStarSessionEndBeta(ChannelGuestStarSessionEndBetaEvent),
ChannelGuestStarGuestUpdateBeta(ChannelGuestStarGuestUpdateBetaEvent),
ChannelGuestStarSettingsUpdateBeta(ChannelGuestStarSettingsUpdateBetaEvent),
ChannelChannelPointsAutomaticRewardRedemptionAdd1(
ChannelChannelPointsAutomaticRewardRedemptionAdd1Event,
),
ChannelChannelPointsAutomaticRewardRedemptionAdd2(
ChannelChannelPointsAutomaticRewardRedemptionAdd2Event,
),
ChannelChannelPointsCustomRewardAdd1(ChannelChannelPointsCustomRewardAdd1Event),
ChannelChannelPointsCustomRewardUpdate1(ChannelChannelPointsCustomRewardUpdate1Event),
ChannelChannelPointsCustomRewardRemove1(ChannelChannelPointsCustomRewardRemove1Event),
ChannelChannelPointsCustomRewardRedemptionAdd1(
ChannelChannelPointsCustomRewardRedemptionAdd1Event,
),
ChannelChannelPointsCustomRewardRedemptionUpdate1(
ChannelChannelPointsCustomRewardRedemptionUpdate1Event,
),
ChannelCustomPowerUpRedemptionAdd1(ChannelCustomPowerUpRedemptionAdd1Event),
ChannelPollBegin1(ChannelPollBegin1Event),
ChannelPollProgress1(ChannelPollProgress1Event),
ChannelPollEnd1(ChannelPollEnd1Event),
ChannelPredictionBegin1(ChannelPredictionBegin1Event),
ChannelPredictionProgress1(ChannelPredictionProgress1Event),
ChannelPredictionLock1(ChannelPredictionLock1Event),
ChannelPredictionEnd1(ChannelPredictionEnd1Event),
ChannelSuspiciousUserMessage1(ChannelSuspiciousUserMessage1Event),
ChannelSuspiciousUserUpdate1(ChannelSuspiciousUserUpdate1Event),
ChannelVipAdd1(ChannelVipAdd1Event),
ChannelVipRemove1(ChannelVipRemove1Event),
ChannelWarningAcknowledge1(ChannelWarningAcknowledge1Event),
ChannelWarningSend1(ChannelWarningSend1Event),
ChannelCharityCampaignDonate1(ChannelCharityCampaignDonate1Event),
ChannelCharityCampaignStart1(ChannelCharityCampaignStart1Event),
ChannelCharityCampaignProgress1(ChannelCharityCampaignProgress1Event),
ChannelCharityCampaignStop1(ChannelCharityCampaignStop1Event),
ConduitShardDisabled1(ConduitShardDisabled1Event),
DropEntitlementGrant1(DropEntitlementGrant1Event),
ExtensionBitsTransactionCreate1(ExtensionBitsTransactionCreate1Event),
ChannelGoalBegin1(ChannelGoalBegin1Event),
ChannelGoalProgress1(ChannelGoalProgress1Event),
ChannelGoalEnd1(ChannelGoalEnd1Event),
ChannelHypeTrainBegin2(ChannelHypeTrainBegin2Event),
ChannelHypeTrainProgress2(ChannelHypeTrainProgress2Event),
ChannelHypeTrainEnd2(ChannelHypeTrainEnd2Event),
ChannelShieldModeBegin1(ChannelShieldModeBegin1Event),
ChannelShieldModeEnd1(ChannelShieldModeEnd1Event),
ChannelShoutoutCreate1(ChannelShoutoutCreate1Event),
ChannelShoutoutReceive1(ChannelShoutoutReceive1Event),
StreamOnline1(StreamOnline1Event),
StreamOffline1(StreamOffline1Event),
UserAuthorizationGrant1(UserAuthorizationGrant1Event),
UserAuthorizationRevoke1(UserAuthorizationRevoke1Event),
UserUpdate1(UserUpdate1Event),
UserWhisperMessage1(UserWhisperMessage1Event),
}
pub static ALL_SUBSCRIPTIONS: &[EventSubSubscriptionDefinition] = &[
EventSubSubscriptionDefinition {
id: "automod_message_hold_1",
name: "Automod Message Hold",
subscription_type: "automod.message.hold",
version: "1",
stability: EndpointStability::Ga,
description: "A user is notified if a message is caught by automod for review.",
},
EventSubSubscriptionDefinition {
id: "automod_message_hold_2",
name: "Automod Message Hold V2",
subscription_type: "automod.message.hold",
version: "2",
stability: EndpointStability::Ga,
description: "A user is notified if a message is caught by automod for review. Only public blocked terms trigger notifications, not private ones.",
},
EventSubSubscriptionDefinition {
id: "automod_message_update_1",
name: "Automod Message Update",
subscription_type: "automod.message.update",
version: "1",
stability: EndpointStability::Ga,
description: "A message in the automod queue had its status changed.",
},
EventSubSubscriptionDefinition {
id: "automod_message_update_2",
name: "Automod Message Update V2",
subscription_type: "automod.message.update",
version: "2",
stability: EndpointStability::Ga,
description: "A message in the automod queue had its status changed. Only public blocked terms trigger notifications, not private ones.",
},
EventSubSubscriptionDefinition {
id: "automod_settings_update_1",
name: "Automod Settings Update",
subscription_type: "automod.settings.update",
version: "1",
stability: EndpointStability::Ga,
description: "A notification is sent when a broadcaster’s automod settings are updated.",
},
EventSubSubscriptionDefinition {
id: "automod_terms_update_1",
name: "Automod Terms Update",
subscription_type: "automod.terms.update",
version: "1",
stability: EndpointStability::Ga,
description: "A notification is sent when a broadcaster’s automod terms are updated. Changes to private terms are not sent.",
},
EventSubSubscriptionDefinition {
id: "channel_bits_use_1",
name: "Channel Bits Use\nNEW",
subscription_type: "channel.bits.use",
version: "1",
stability: EndpointStability::New,
description: "A notification is sent whenever Bits are used on a channel.",
},
EventSubSubscriptionDefinition {
id: "channel_update_2",
name: "Channel Update",
subscription_type: "channel.update",
version: "2",
stability: EndpointStability::Ga,
description: "A broadcaster updates their channel properties e.g., category, title, content classification labels, broadcast, or language.",
},
EventSubSubscriptionDefinition {
id: "channel_follow_2",
name: "Channel Follow",
subscription_type: "channel.follow",
version: "2",
stability: EndpointStability::Ga,
description: "A specified channel receives a follow.",
},
EventSubSubscriptionDefinition {
id: "channel_ad_break_begin_1",
name: "Channel Ad Break Begin",
subscription_type: "channel.ad_break.begin",
version: "1",
stability: EndpointStability::Ga,
description: "A midroll commercial break has started running.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_clear_1",
name: "Channel Chat Clear",
subscription_type: "channel.chat.clear",
version: "1",
stability: EndpointStability::Ga,
description: "A moderator or bot has cleared all messages from the chat room.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_clear_user_messages_1",
name: "Channel Chat Clear User Messages",
subscription_type: "channel.chat.clear_user_messages",
version: "1",
stability: EndpointStability::Ga,
description: "A moderator or bot has cleared all messages from a specific user.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_message_1",
name: "Channel Chat Message",
subscription_type: "channel.chat.message",
version: "1",
stability: EndpointStability::Ga,
description: "Any user sends a message to a specific chat room.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_message_delete_1",
name: "Channel Chat Message Delete",
subscription_type: "channel.chat.message_delete",
version: "1",
stability: EndpointStability::Ga,
description: "A moderator has removed a specific message.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_notification_1",
name: "Channel Chat Notification",
subscription_type: "channel.chat.notification",
version: "1",
stability: EndpointStability::Ga,
description: "A notification for when an event that appears in chat has occurred.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_settings_update_1",
name: "Channel Chat Settings Update",
subscription_type: "channel.chat_settings.update",
version: "1",
stability: EndpointStability::Ga,
description: "A notification for when a broadcaster’s chat settings are updated.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_user_message_hold_1",
name: "Channel Chat User Message Hold",
subscription_type: "channel.chat.user_message_hold",
version: "1",
stability: EndpointStability::Ga,
description: "A user is notified if their message is caught by automod.",
},
EventSubSubscriptionDefinition {
id: "channel_chat_user_message_update_1",
name: "Channel Chat User Message Update",
subscription_type: "channel.chat.user_message_update",
version: "1",
stability: EndpointStability::Ga,
description: "A user is notified if their message’s automod status is updated.",
},
EventSubSubscriptionDefinition {
id: "channel_shared_chat_begin_1",
name: "Channel Shared Chat Session Begin",
subscription_type: "channel.shared_chat.begin",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when a channel becomes active in an active shared chat session.",
},
EventSubSubscriptionDefinition {
id: "channel_shared_chat_update_1",
name: "Channel Shared Chat Session Update",
subscription_type: "channel.shared_chat.update",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when the active shared chat session the channel is in changes.",
},
EventSubSubscriptionDefinition {
id: "channel_shared_chat_end_1",
name: "Channel Shared Chat Session End",
subscription_type: "channel.shared_chat.end",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when a channel leaves a shared chat session or the session ends.",
},
EventSubSubscriptionDefinition {
id: "channel_subscribe_1",
name: "Channel Subscribe",
subscription_type: "channel.subscribe",
version: "1",
stability: EndpointStability::Ga,
description: "A notification is sent when a specified channel receives a subscriber. This does not include resubscribes.",
},
EventSubSubscriptionDefinition {
id: "channel_subscription_end_1",
name: "Channel Subscription End",
subscription_type: "channel.subscription.end",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when a subscription to the specified channel ends.",
},
EventSubSubscriptionDefinition {
id: "channel_subscription_gift_1",
name: "Channel Subscription Gift",
subscription_type: "channel.subscription.gift",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when a viewer gives a gift subscription to one or more users in the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_subscription_message_1",
name: "Channel Subscription Message",
subscription_type: "channel.subscription.message",
version: "1",
stability: EndpointStability::Ga,
description: "A notification when a user sends a resubscription chat message in a specific channel.",
},
EventSubSubscriptionDefinition {
id: "channel_cheer_1",
name: "Channel Cheer",
subscription_type: "channel.cheer",
version: "1",
stability: EndpointStability::Ga,
description: "A user cheers on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_raid_1",
name: "Channel Raid",
subscription_type: "channel.raid",
version: "1",
stability: EndpointStability::Ga,
description: "A broadcaster raids another broadcaster’s channel.",
},
EventSubSubscriptionDefinition {
id: "channel_ban_1",
name: "Channel Ban",
subscription_type: "channel.ban",
version: "1",
stability: EndpointStability::Ga,
description: "A viewer is banned from the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_unban_1",
name: "Channel Unban",
subscription_type: "channel.unban",
version: "1",
stability: EndpointStability::Ga,
description: "A viewer is unbanned from the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_unban_request_create_1",
name: "Channel Unban Request Create",
subscription_type: "channel.unban_request.create",
version: "1",
stability: EndpointStability::Ga,
description: "A user creates an unban request.",
},
EventSubSubscriptionDefinition {
id: "channel_unban_request_resolve_1",
name: "Channel Unban Request Resolve",
subscription_type: "channel.unban_request.resolve",
version: "1",
stability: EndpointStability::Ga,
description: "An unban request has been resolved.",
},
EventSubSubscriptionDefinition {
id: "channel_moderate_1",
name: "Channel Moderate",
subscription_type: "channel.moderate",
version: "1",
stability: EndpointStability::Ga,
description: "A moderator performs a moderation action in a channel.",
},
EventSubSubscriptionDefinition {
id: "channel_moderate_2",
name: "Channel Moderate V2",
subscription_type: "channel.moderate",
version: "2",
stability: EndpointStability::Ga,
description: "A moderator performs a moderation action in a channel. Includes warnings.",
},
EventSubSubscriptionDefinition {
id: "channel_moderator_add_1",
name: "Channel Moderator Add",
subscription_type: "channel.moderator.add",
version: "1",
stability: EndpointStability::Ga,
description: "Moderator privileges were added to a user on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_moderator_remove_1",
name: "Channel Moderator Remove",
subscription_type: "channel.moderator.remove",
version: "1",
stability: EndpointStability::Ga,
description: "Moderator privileges were removed from a user on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_guest_star_session_begin_beta",
name: "Channel Guest Star Session Begin\nBETA",
subscription_type: "channel.guest_star_session.begin",
version: "beta",
stability: EndpointStability::Beta,
description: "The host began a new Guest Star session.",
},
EventSubSubscriptionDefinition {
id: "channel_guest_star_session_end_beta",
name: "Channel Guest Star Session End\nBETA",
subscription_type: "channel.guest_star_session.end",
version: "beta",
stability: EndpointStability::Beta,
description: "A running Guest Star session has ended.",
},
EventSubSubscriptionDefinition {
id: "channel_guest_star_guest_update_beta",
name: "Channel Guest Star Guest Update\nBETA",
subscription_type: "channel.guest_star_guest.update",
version: "beta",
stability: EndpointStability::Beta,
description: "A guest or a slot is updated in an active Guest Star session.",
},
EventSubSubscriptionDefinition {
id: "channel_guest_star_settings_update_beta",
name: "Channel Guest Star Settings Update\nBETA",
subscription_type: "channel.guest_star_settings.update",
version: "beta",
stability: EndpointStability::Beta,
description: "The host preferences for Guest Star have been updated.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_automatic_reward_redemption_add_1",
name: "Channel Points Automatic Reward Redemption Add",
subscription_type: "channel.channel_points_automatic_reward_redemption.add",
version: "1",
stability: EndpointStability::Ga,
description: "A viewer has redeemed an automatic channel points reward on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_automatic_reward_redemption_add_2",
name: "Channel Points Automatic Reward Redemption Add V2",
subscription_type: "channel.channel_points_automatic_reward_redemption.add",
version: "2",
stability: EndpointStability::Ga,
description: "A viewer has redeemed an automatic channel points reward on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_custom_reward_add_1",
name: "Channel Points Custom Reward Add",
subscription_type: "channel.channel_points_custom_reward.add",
version: "1",
stability: EndpointStability::Ga,
description: "A custom channel points reward has been created for the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_custom_reward_update_1",
name: "Channel Points Custom Reward Update",
subscription_type: "channel.channel_points_custom_reward.update",
version: "1",
stability: EndpointStability::Ga,
description: "A custom channel points reward has been updated for the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_custom_reward_remove_1",
name: "Channel Points Custom Reward Remove",
subscription_type: "channel.channel_points_custom_reward.remove",
version: "1",
stability: EndpointStability::Ga,
description: "A custom channel points reward has been removed from the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_custom_reward_redemption_add_1",
name: "Channel Points Custom Reward Redemption Add",
subscription_type: "channel.channel_points_custom_reward_redemption.add",
version: "1",
stability: EndpointStability::Ga,
description: "A viewer has redeemed a custom channel points reward on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_channel_points_custom_reward_redemption_update_1",
name: "Channel Points Custom Reward Redemption Update",
subscription_type: "channel.channel_points_custom_reward_redemption.update",
version: "1",
stability: EndpointStability::Ga,
description: "A redemption of a channel points custom reward has been updated for the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_custom_power_up_redemption_add_1",
name: "Channel Custom Power-ups Redemption Add\nNEW",
subscription_type: "channel.custom_power_up_redemption.add",
version: "1",
stability: EndpointStability::New,
description: "A viewer has redeemed a custom Power-up on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_poll_begin_1",
name: "Channel Poll Begin",
subscription_type: "channel.poll.begin",
version: "1",
stability: EndpointStability::Ga,
description: "A poll started on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_poll_progress_1",
name: "Channel Poll Progress",
subscription_type: "channel.poll.progress",
version: "1",
stability: EndpointStability::Ga,
description: "Users respond to a poll on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_poll_end_1",
name: "Channel Poll End",
subscription_type: "channel.poll.end",
version: "1",
stability: EndpointStability::Ga,
description: "A poll ended on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_prediction_begin_1",
name: "Channel Prediction Begin",
subscription_type: "channel.prediction.begin",
version: "1",
stability: EndpointStability::Ga,
description: "A Prediction started on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_prediction_progress_1",
name: "Channel Prediction Progress",
subscription_type: "channel.prediction.progress",
version: "1",
stability: EndpointStability::Ga,
description: "Users participated in a Prediction on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_prediction_lock_1",
name: "Channel Prediction Lock",
subscription_type: "channel.prediction.lock",
version: "1",
stability: EndpointStability::Ga,
description: "A Prediction was locked on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_prediction_end_1",
name: "Channel Prediction End",
subscription_type: "channel.prediction.end",
version: "1",
stability: EndpointStability::Ga,
description: "A Prediction ended on a specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_suspicious_user_message_1",
name: "Channel Suspicious User Message\nNEW",
subscription_type: "channel.suspicious_user.message",
version: "1",
stability: EndpointStability::New,
description: "A chat message has been sent by a suspicious user.",
},
EventSubSubscriptionDefinition {
id: "channel_suspicious_user_update_1",
name: "Channel Suspicious User Update\nNEW",
subscription_type: "channel.suspicious_user.update",
version: "1",
stability: EndpointStability::New,
description: "A suspicious user has been updated.",
},
EventSubSubscriptionDefinition {
id: "channel_vip_add_1",
name: "Channel VIP Add",
subscription_type: "channel.vip.add",
version: "1",
stability: EndpointStability::Ga,
description: "A VIP is added to the channel.",
},
EventSubSubscriptionDefinition {
id: "channel_vip_remove_1",
name: "Channel VIP Remove",
subscription_type: "channel.vip.remove",
version: "1",
stability: EndpointStability::Ga,
description: "A VIP is removed from the channel.",
},
EventSubSubscriptionDefinition {
id: "channel_warning_acknowledge_1",
name: "Channel Warning Acknowledgement",
subscription_type: "channel.warning.acknowledge",
version: "1",
stability: EndpointStability::Ga,
description: "A user acknowledges a warning. Broadcasters and moderators can see the warning’s details.",
},
EventSubSubscriptionDefinition {
id: "channel_warning_send_1",
name: "Channel Warning Send\nNEW",
subscription_type: "channel.warning.send",
version: "1",
stability: EndpointStability::New,
description: "A user is sent a warning. Broadcasters and moderators can see the warning’s details.",
},
EventSubSubscriptionDefinition {
id: "channel_charity_campaign_donate_1",
name: "Charity Donation",
subscription_type: "channel.charity_campaign.donate",
version: "1",
stability: EndpointStability::Ga,
description: "Sends an event notification when a user donates to the broadcaster’s charity campaign.",
},
EventSubSubscriptionDefinition {
id: "channel_charity_campaign_start_1",
name: "Charity Campaign Start",
subscription_type: "channel.charity_campaign.start",
version: "1",
stability: EndpointStability::Ga,
description: "Sends an event notification when the broadcaster starts a charity campaign.",
},
EventSubSubscriptionDefinition {
id: "channel_charity_campaign_progress_1",
name: "Charity Campaign Progress",
subscription_type: "channel.charity_campaign.progress",
version: "1",
stability: EndpointStability::Ga,
description: "Sends an event notification when progress is made towards the campaign’s goal or when the broadcaster changes the fundraising goal.",
},
EventSubSubscriptionDefinition {
id: "channel_charity_campaign_stop_1",
name: "Charity Campaign Stop",
subscription_type: "channel.charity_campaign.stop",
version: "1",
stability: EndpointStability::Ga,
description: "Sends an event notification when the broadcaster stops a charity campaign.",
},
EventSubSubscriptionDefinition {
id: "conduit_shard_disabled_1",
name: "Conduit Shard Disabled\nNEW",
subscription_type: "conduit.shard.disabled",
version: "1",
stability: EndpointStability::New,
description: "Sends a notification when EventSub disables a shard due to the status of the underlying transport changing.",
},
EventSubSubscriptionDefinition {
id: "drop_entitlement_grant_1",
name: "Drop Entitlement Grant",
subscription_type: "drop.entitlement.grant",
version: "1",
stability: EndpointStability::Ga,
description: "An entitlement for a Drop is granted to a user.",
},
EventSubSubscriptionDefinition {
id: "extension_bits_transaction_create_1",
name: "Extension Bits Transaction Create",
subscription_type: "extension.bits_transaction.create",
version: "1",
stability: EndpointStability::Ga,
description: "A Bits transaction occurred for a specified Twitch Extension.",
},
EventSubSubscriptionDefinition {
id: "channel_goal_begin_1",
name: "Goal Begin",
subscription_type: "channel.goal.begin",
version: "1",
stability: EndpointStability::Ga,
description: "Get notified when a broadcaster begins a goal.",
},
EventSubSubscriptionDefinition {
id: "channel_goal_progress_1",
name: "Goal Progress",
subscription_type: "channel.goal.progress",
version: "1",
stability: EndpointStability::Ga,
description: "Get notified when progress (either positive or negative) is made towards a broadcaster’s goal.",
},
EventSubSubscriptionDefinition {
id: "channel_goal_end_1",
name: "Goal End",
subscription_type: "channel.goal.end",
version: "1",
stability: EndpointStability::Ga,
description: "Get notified when a broadcaster ends a goal.",
},
EventSubSubscriptionDefinition {
id: "channel_hype_train_begin_2",
name: "Hype Train Begin",
subscription_type: "channel.hype_train.begin",
version: "2",
stability: EndpointStability::Ga,
description: "A Hype Train begins on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_hype_train_progress_2",
name: "Hype Train Progress",
subscription_type: "channel.hype_train.progress",
version: "2",
stability: EndpointStability::Ga,
description: "A Hype Train makes progress on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_hype_train_end_2",
name: "Hype Train End",
subscription_type: "channel.hype_train.end",
version: "2",
stability: EndpointStability::Ga,
description: "A Hype Train ends on the specified channel.",
},
EventSubSubscriptionDefinition {
id: "channel_shield_mode_begin_1",
name: "Shield Mode Begin",
subscription_type: "channel.shield_mode.begin",
version: "1",
stability: EndpointStability::Ga,
description: "Sends a notification when the broadcaster activates Shield Mode.",
},
EventSubSubscriptionDefinition {
id: "channel_shield_mode_end_1",
name: "Shield Mode End",
subscription_type: "channel.shield_mode.end",
version: "1",
stability: EndpointStability::Ga,
description: "Sends a notification when the broadcaster deactivates Shield Mode.",
},
EventSubSubscriptionDefinition {
id: "channel_shoutout_create_1",
name: "Shoutout Create",
subscription_type: "channel.shoutout.create",
version: "1",
stability: EndpointStability::Ga,
description: "Sends a notification when the specified broadcaster sends a Shoutout.",
},
EventSubSubscriptionDefinition {
id: "channel_shoutout_receive_1",
name: "Shoutout Received",
subscription_type: "channel.shoutout.receive",
version: "1",
stability: EndpointStability::Ga,
description: "Sends a notification when the specified broadcaster receives a Shoutout.",
},
EventSubSubscriptionDefinition {
id: "stream_online_1",
name: "Stream Online",
subscription_type: "stream.online",
version: "1",
stability: EndpointStability::Ga,
description: "The specified broadcaster starts a stream.",
},
EventSubSubscriptionDefinition {
id: "stream_offline_1",
name: "Stream Offline",
subscription_type: "stream.offline",
version: "1",
stability: EndpointStability::Ga,
description: "The specified broadcaster stops a stream.",
},
EventSubSubscriptionDefinition {
id: "user_authorization_grant_1",
name: "User Authorization Grant",
subscription_type: "user.authorization.grant",
version: "1",
stability: EndpointStability::Ga,
description: "A user’s authorization has been granted to your client id.",
},
EventSubSubscriptionDefinition {
id: "user_authorization_revoke_1",
name: "User Authorization Revoke",
subscription_type: "user.authorization.revoke",
version: "1",
stability: EndpointStability::Ga,
description: "A user’s authorization has been revoked for your client id.",
},
EventSubSubscriptionDefinition {
id: "user_update_1",
name: "User Update",
subscription_type: "user.update",
version: "1",
stability: EndpointStability::Ga,
description: "A user has updated their account.",
},
EventSubSubscriptionDefinition {
id: "user_whisper_message_1",
name: "Whisper Received\nNEW",
subscription_type: "user.whisper.message",
version: "1",
stability: EndpointStability::New,
description: "A user receives a whisper.",
},
];
pub(crate) fn decode_known_payload(
subscription_type: &str,
version: Option<&str>,
event: Option<serde_json::Value>,
source_timestamp: Option<OffsetDateTime>,
) -> Option<KnownEventSubPayload> {
match (subscription_type, version) {
("automod.message.hold", Some("1")) => {
decode_typed_event::<AutomodMessageHold1Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodMessageHold1)
}
("automod.message.hold", Some("2")) => {
decode_typed_event::<AutomodMessageHold2Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodMessageHold2)
}
("automod.message.update", Some("1")) => {
decode_typed_event::<AutomodMessageUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodMessageUpdate1)
}
("automod.message.update", Some("2")) => {
decode_typed_event::<AutomodMessageUpdate2Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodMessageUpdate2)
}
("automod.settings.update", Some("1")) => {
decode_typed_event::<AutomodSettingsUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodSettingsUpdate1)
}
("automod.terms.update", Some("1")) => {
decode_typed_event::<AutomodTermsUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::AutomodTermsUpdate1)
}
("channel.bits.use", Some("1")) => {
decode_typed_event::<ChannelBitsUse1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelBitsUse1)
}
("channel.update", Some("2")) => {
decode_typed_event::<ChannelUpdate2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelUpdate2)
}
("channel.follow", Some("2")) => {
decode_typed_event::<ChannelFollow2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelFollow2)
}
("channel.ad_break.begin", Some("1")) => {
decode_typed_event::<ChannelAdBreakBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelAdBreakBegin1)
}
("channel.chat.clear", Some("1")) => {
decode_typed_event::<ChannelChatClear1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatClear1)
}
("channel.chat.clear_user_messages", Some("1")) => {
decode_typed_event::<ChannelChatClearUserMessages1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatClearUserMessages1)
}
("channel.chat.message", Some("1")) => {
decode_typed_event::<EventSubChatMessage>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatMessage1)
}
("channel.chat.message_delete", Some("1")) => {
decode_typed_event::<EventSubChatMessageDeleted>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatMessageDelete1)
}
("channel.chat.notification", Some("1")) => {
decode_typed_event::<ChannelChatNotification1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatNotification1)
}
("channel.chat_settings.update", Some("1")) => {
decode_typed_event::<ChannelChatSettingsUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatSettingsUpdate1)
}
("channel.chat.user_message_hold", Some("1")) => {
decode_typed_event::<ChannelChatUserMessageHold1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatUserMessageHold1)
}
("channel.chat.user_message_update", Some("1")) => {
decode_typed_event::<ChannelChatUserMessageUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChatUserMessageUpdate1)
}
("channel.shared_chat.begin", Some("1")) => {
decode_typed_event::<ChannelSharedChatBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSharedChatBegin1)
}
("channel.shared_chat.update", Some("1")) => {
decode_typed_event::<ChannelSharedChatUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSharedChatUpdate1)
}
("channel.shared_chat.end", Some("1")) => {
decode_typed_event::<ChannelSharedChatEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSharedChatEnd1)
}
("channel.subscribe", Some("1")) => {
decode_typed_event::<ChannelSubscribe1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSubscribe1)
}
("channel.subscription.end", Some("1")) => {
decode_typed_event::<ChannelSubscriptionEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSubscriptionEnd1)
}
("channel.subscription.gift", Some("1")) => {
decode_typed_event::<ChannelSubscriptionGift1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSubscriptionGift1)
}
("channel.subscription.message", Some("1")) => {
decode_typed_event::<ChannelSubscriptionMessage1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSubscriptionMessage1)
}
("channel.cheer", Some("1")) => {
decode_typed_event::<ChannelCheer1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCheer1)
}
("channel.raid", Some("1")) => {
decode_typed_event::<ChannelRaid1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelRaid1)
}
("channel.ban", Some("1")) => {
decode_typed_event::<ChannelBan1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelBan1)
}
("channel.unban", Some("1")) => {
decode_typed_event::<ChannelUnban1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelUnban1)
}
("channel.unban_request.create", Some("1")) => {
decode_typed_event::<ChannelUnbanRequestCreate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelUnbanRequestCreate1)
}
("channel.unban_request.resolve", Some("1")) => {
decode_typed_event::<ChannelUnbanRequestResolve1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelUnbanRequestResolve1)
}
("channel.moderate", Some("1")) => {
decode_typed_event::<ChannelModerate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelModerate1)
}
("channel.moderate", Some("2")) => {
decode_typed_event::<ChannelModerate2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelModerate2)
}
("channel.moderator.add", Some("1")) => {
decode_typed_event::<ChannelModeratorAdd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelModeratorAdd1)
}
("channel.moderator.remove", Some("1")) => {
decode_typed_event::<ChannelModeratorRemove1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelModeratorRemove1)
}
("channel.guest_star_session.begin", Some("beta")) => {
decode_typed_event::<ChannelGuestStarSessionBeginBetaEvent>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGuestStarSessionBeginBeta)
}
("channel.guest_star_session.end", Some("beta")) => {
decode_typed_event::<ChannelGuestStarSessionEndBetaEvent>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGuestStarSessionEndBeta)
}
("channel.guest_star_guest.update", Some("beta")) => {
decode_typed_event::<ChannelGuestStarGuestUpdateBetaEvent>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGuestStarGuestUpdateBeta)
}
("channel.guest_star_settings.update", Some("beta")) => {
decode_typed_event::<ChannelGuestStarSettingsUpdateBetaEvent>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGuestStarSettingsUpdateBeta)
}
("channel.channel_points_automatic_reward_redemption.add", Some("1")) => {
decode_typed_event::<ChannelChannelPointsAutomaticRewardRedemptionAdd1Event>(
event,
source_timestamp,
)
.map(KnownEventSubPayload::ChannelChannelPointsAutomaticRewardRedemptionAdd1)
}
("channel.channel_points_automatic_reward_redemption.add", Some("2")) => {
decode_typed_event::<ChannelChannelPointsAutomaticRewardRedemptionAdd2Event>(
event,
source_timestamp,
)
.map(KnownEventSubPayload::ChannelChannelPointsAutomaticRewardRedemptionAdd2)
}
("channel.channel_points_custom_reward.add", Some("1")) => {
decode_typed_event::<ChannelChannelPointsCustomRewardAdd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelChannelPointsCustomRewardAdd1)
}
("channel.channel_points_custom_reward.update", Some("1")) => decode_typed_event::<
ChannelChannelPointsCustomRewardUpdate1Event,
>(
event, source_timestamp
)
.map(KnownEventSubPayload::ChannelChannelPointsCustomRewardUpdate1),
("channel.channel_points_custom_reward.remove", Some("1")) => decode_typed_event::<
ChannelChannelPointsCustomRewardRemove1Event,
>(
event, source_timestamp
)
.map(KnownEventSubPayload::ChannelChannelPointsCustomRewardRemove1),
("channel.channel_points_custom_reward_redemption.add", Some("1")) => {
decode_typed_event::<ChannelChannelPointsCustomRewardRedemptionAdd1Event>(
event,
source_timestamp,
)
.map(KnownEventSubPayload::ChannelChannelPointsCustomRewardRedemptionAdd1)
}
("channel.channel_points_custom_reward_redemption.update", Some("1")) => {
decode_typed_event::<ChannelChannelPointsCustomRewardRedemptionUpdate1Event>(
event,
source_timestamp,
)
.map(KnownEventSubPayload::ChannelChannelPointsCustomRewardRedemptionUpdate1)
}
("channel.custom_power_up_redemption.add", Some("1")) => {
decode_typed_event::<ChannelCustomPowerUpRedemptionAdd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCustomPowerUpRedemptionAdd1)
}
("channel.poll.begin", Some("1")) => {
decode_typed_event::<ChannelPollBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPollBegin1)
}
("channel.poll.progress", Some("1")) => {
decode_typed_event::<ChannelPollProgress1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPollProgress1)
}
("channel.poll.end", Some("1")) => {
decode_typed_event::<ChannelPollEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPollEnd1)
}
("channel.prediction.begin", Some("1")) => {
decode_typed_event::<ChannelPredictionBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPredictionBegin1)
}
("channel.prediction.progress", Some("1")) => {
decode_typed_event::<ChannelPredictionProgress1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPredictionProgress1)
}
("channel.prediction.lock", Some("1")) => {
decode_typed_event::<ChannelPredictionLock1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPredictionLock1)
}
("channel.prediction.end", Some("1")) => {
decode_typed_event::<ChannelPredictionEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelPredictionEnd1)
}
("channel.suspicious_user.message", Some("1")) => {
decode_typed_event::<ChannelSuspiciousUserMessage1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSuspiciousUserMessage1)
}
("channel.suspicious_user.update", Some("1")) => {
decode_typed_event::<ChannelSuspiciousUserUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelSuspiciousUserUpdate1)
}
("channel.vip.add", Some("1")) => {
decode_typed_event::<ChannelVipAdd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelVipAdd1)
}
("channel.vip.remove", Some("1")) => {
decode_typed_event::<ChannelVipRemove1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelVipRemove1)
}
("channel.warning.acknowledge", Some("1")) => {
decode_typed_event::<ChannelWarningAcknowledge1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelWarningAcknowledge1)
}
("channel.warning.send", Some("1")) => {
decode_typed_event::<ChannelWarningSend1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelWarningSend1)
}
("channel.charity_campaign.donate", Some("1")) => {
decode_typed_event::<ChannelCharityCampaignDonate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCharityCampaignDonate1)
}
("channel.charity_campaign.start", Some("1")) => {
decode_typed_event::<ChannelCharityCampaignStart1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCharityCampaignStart1)
}
("channel.charity_campaign.progress", Some("1")) => {
decode_typed_event::<ChannelCharityCampaignProgress1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCharityCampaignProgress1)
}
("channel.charity_campaign.stop", Some("1")) => {
decode_typed_event::<ChannelCharityCampaignStop1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelCharityCampaignStop1)
}
("conduit.shard.disabled", Some("1")) => {
decode_typed_event::<ConduitShardDisabled1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ConduitShardDisabled1)
}
("drop.entitlement.grant", Some("1")) => {
decode_typed_event::<DropEntitlementGrant1Event>(event, source_timestamp)
.map(KnownEventSubPayload::DropEntitlementGrant1)
}
("extension.bits_transaction.create", Some("1")) => {
decode_typed_event::<ExtensionBitsTransactionCreate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ExtensionBitsTransactionCreate1)
}
("channel.goal.begin", Some("1")) => {
decode_typed_event::<ChannelGoalBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGoalBegin1)
}
("channel.goal.progress", Some("1")) => {
decode_typed_event::<ChannelGoalProgress1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGoalProgress1)
}
("channel.goal.end", Some("1")) => {
decode_typed_event::<ChannelGoalEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelGoalEnd1)
}
("channel.hype_train.begin", Some("2")) => {
decode_typed_event::<ChannelHypeTrainBegin2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelHypeTrainBegin2)
}
("channel.hype_train.progress", Some("2")) => {
decode_typed_event::<ChannelHypeTrainProgress2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelHypeTrainProgress2)
}
("channel.hype_train.end", Some("2")) => {
decode_typed_event::<ChannelHypeTrainEnd2Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelHypeTrainEnd2)
}
("channel.shield_mode.begin", Some("1")) => {
decode_typed_event::<ChannelShieldModeBegin1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelShieldModeBegin1)
}
("channel.shield_mode.end", Some("1")) => {
decode_typed_event::<ChannelShieldModeEnd1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelShieldModeEnd1)
}
("channel.shoutout.create", Some("1")) => {
decode_typed_event::<ChannelShoutoutCreate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelShoutoutCreate1)
}
("channel.shoutout.receive", Some("1")) => {
decode_typed_event::<ChannelShoutoutReceive1Event>(event, source_timestamp)
.map(KnownEventSubPayload::ChannelShoutoutReceive1)
}
("stream.online", Some("1")) => {
decode_typed_event::<StreamOnline1Event>(event, source_timestamp)
.map(KnownEventSubPayload::StreamOnline1)
}
("stream.offline", Some("1")) => {
decode_typed_event::<StreamOffline1Event>(event, source_timestamp)
.map(KnownEventSubPayload::StreamOffline1)
}
("user.authorization.grant", Some("1")) => {
decode_typed_event::<UserAuthorizationGrant1Event>(event, source_timestamp)
.map(KnownEventSubPayload::UserAuthorizationGrant1)
}
("user.authorization.revoke", Some("1")) => {
decode_typed_event::<UserAuthorizationRevoke1Event>(event, source_timestamp)
.map(KnownEventSubPayload::UserAuthorizationRevoke1)
}
("user.update", Some("1")) => {
decode_typed_event::<UserUpdate1Event>(event, source_timestamp)
.map(KnownEventSubPayload::UserUpdate1)
}
("user.whisper.message", Some("1")) => {
decode_typed_event::<UserWhisperMessage1Event>(event, source_timestamp)
.map(KnownEventSubPayload::UserWhisperMessage1)
}
_ => None,
}
}
fn decode_typed_event<T: serde::de::DeserializeOwned + super::HasSourceTimestamp>(
event: Option<serde_json::Value>,
source_timestamp: Option<OffsetDateTime>,
) -> Option<T> {
let mut payload: T = serde_json::from_value(event?).ok()?;
payload.set_source_timestamp(source_timestamp);
Some(payload)
}
fn decode_generic_event(
event: Option<serde_json::Value>,
source_timestamp: Option<OffsetDateTime>,
) -> Option<GenericEventSubPayload> {
let mut payload: GenericEventSubPayload = serde_json::from_value(event?).ok()?;
payload.source_timestamp = source_timestamp;
Some(payload)
}