#![cfg_attr(any(), rustfmt::skip)]
///////////////////////////////////////////////
// //
// ! //
// This file is automatically generated! //
// Do not directly edit! //
// //
///////////////////////////////////////////////
// http://www.mingweisamuel.com/riotapi-schema/tool/
// Version 31ff4a6ed5162ea6595678b0ba9294f385bc7160
#![allow(missing_docs)]
//! Data transfer structs.
//!
//! Separated into separate modules for each endpoint.
//! Several modules contain structs with the same name, so be sure to use the right ones.
//!
//! Note: these modules are automatically generated.
/// Data structs used by [`AccountV1`](crate::endpoints::AccountV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod account_v1 {
/// `account-v1.AccountDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Account {
/// Encrypted PUUID. Exact length of 78 characters.
#[serde(rename = "puuid")]
pub puuid: String,
/// This field may be excluded from the response if the account doesn't have a gameName.
#[serde(rename = "gameName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_name: Option<String>,
/// This field may be excluded from the response if the account doesn't have a tagLine.
#[serde(rename = "tagLine")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag_line: Option<String>,
}
/// `account-v1.AccountRegionDTO` data object.
/// # Description
/// Account region
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct AccountRegion {
/// Player Universal Unique Identifier. Exact length of 78 characters. (Encrypted)
#[serde(rename = "puuid")]
pub puuid: String,
/// Game to lookup active region
#[serde(rename = "game")]
pub game: String,
/// Player active region
#[serde(rename = "region")]
pub region: String,
}
/// `account-v1.ActiveShardDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ActiveShard {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "game")]
pub game: String,
#[serde(rename = "activeShard")]
pub active_shard: String,
}
}
/// Data structs used by [`ChampionMasteryV4`](crate::endpoints::ChampionMasteryV4).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod champion_mastery_v4 {
/// `champion-mastery-v4.ChampionMasteryDto` data object.
/// # Description
/// This object contains single Champion Mastery information for player and champion combination.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChampionMastery {
/// Player Universal Unique Identifier. Exact length of 78 characters. (Encrypted)
#[serde(rename = "puuid")]
pub puuid: String,
/// Number of points needed to achieve next level. Zero if player reached maximum champion level for this champion.
#[serde(rename = "championPointsUntilNextLevel")]
pub champion_points_until_next_level: i64,
/// Is chest granted for this champion or not in current season.
#[serde(rename = "chestGranted")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chest_granted: Option<bool>,
/// Champion ID for this entry.
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
/// Last time this champion was played by this player - in Unix milliseconds time format.
#[serde(rename = "lastPlayTime")]
pub last_play_time: i64,
/// Champion level for specified player and champion combination.
#[serde(rename = "championLevel")]
pub champion_level: i32,
/// Total number of champion points for this player and champion combination - they are used to determine championLevel.
#[serde(rename = "championPoints")]
pub champion_points: i32,
/// Number of points earned since current level has been achieved.
#[serde(rename = "championPointsSinceLastLevel")]
pub champion_points_since_last_level: i64,
#[serde(rename = "markRequiredForNextLevel")]
pub mark_required_for_next_level: i32,
#[serde(rename = "championSeasonMilestone")]
pub champion_season_milestone: i32,
#[serde(rename = "nextSeasonMilestone")]
pub next_season_milestone: crate::models::champion_mastery_v4::NextSeasonMilestones,
/// The token earned for this champion at the current championLevel. When the championLevel is advanced the tokensEarned resets to 0.
#[serde(rename = "tokensEarned")]
pub tokens_earned: i32,
#[serde(rename = "milestoneGrades")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub milestone_grades: Option<std::vec::Vec<String>>,
}
/// `champion-mastery-v4.NextSeasonMilestonesDto` data object.
/// # Description
/// This object contains required next season milestone information.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct NextSeasonMilestones {
#[serde(rename = "requireGradeCounts")]
pub require_grade_counts: std::collections::HashMap<String, i32>,
/// Reward marks.
#[serde(rename = "rewardMarks")]
pub reward_marks: i32,
/// Bonus.
#[serde(rename = "bonus")]
pub bonus: bool,
/// Reward configuration.
#[serde(rename = "rewardConfig")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reward_config: Option<crate::models::champion_mastery_v4::RewardConfig>,
#[serde(rename = "totalGamesRequires")]
pub total_games_requires: i32,
}
/// `champion-mastery-v4.RewardConfigDto` data object.
/// # Description
/// This object contains required reward config information.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RewardConfig {
/// Reward value
#[serde(rename = "rewardValue")]
pub reward_value: String,
/// Reward type
#[serde(rename = "rewardType")]
pub reward_type: String,
/// Maximun reward
#[serde(rename = "maximumReward")]
pub maximum_reward: i32,
}
}
/// Data structs used by [`ChampionV3`](crate::endpoints::ChampionV3).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod champion_v3 {
/// `champion-v3.ChampionInfo` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChampionInfo {
#[serde(rename = "maxNewPlayerLevel")]
pub max_new_player_level: i32,
#[serde(rename = "freeChampionIdsForNewPlayers")]
pub free_champion_ids_for_new_players: std::vec::Vec<crate::consts::Champion>,
#[serde(rename = "freeChampionIds")]
pub free_champion_ids: std::vec::Vec<crate::consts::Champion>,
}
}
/// Data structs used by [`ClashV1`](crate::endpoints::ClashV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod clash_v1 {
/// `clash-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "teamId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
/// (Legal values: UNSELECTED, FILL, TOP, JUNGLE, MIDDLE, BOTTOM, UTILITY)
#[serde(rename = "position")]
pub position: String,
/// (Legal values: CAPTAIN, MEMBER)
#[serde(rename = "role")]
pub role: String,
}
/// `clash-v1.TeamDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Team {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "tournamentId")]
pub tournament_id: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "iconId")]
pub icon_id: i32,
#[serde(rename = "tier")]
pub tier: i32,
/// Summoner ID of the team captain.
#[serde(rename = "captain")]
pub captain: String,
#[serde(rename = "abbreviation")]
pub abbreviation: String,
/// Team members.
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::clash_v1::Player>,
}
/// `clash-v1.TournamentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Tournament {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "themeId")]
pub theme_id: i32,
#[serde(rename = "nameKey")]
pub name_key: String,
#[serde(rename = "nameKeySecondary")]
pub name_key_secondary: String,
/// Tournament phase.
#[serde(rename = "schedule")]
pub schedule: std::vec::Vec<crate::models::clash_v1::TournamentPhase>,
}
/// `clash-v1.TournamentPhaseDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentPhase {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "registrationTime")]
pub registration_time: i64,
#[serde(rename = "startTime")]
pub start_time: i64,
#[serde(rename = "cancelled")]
pub cancelled: bool,
}
}
/// Data structs used by [`LeagueExpV4`](crate::endpoints::LeagueExpV4).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod league_exp_v4 {
/// `league-exp-v4.LeagueEntryDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueEntry {
#[serde(rename = "leagueId")]
pub league_id: String,
/// Player's summonerId (Encrypted)
#[serde(rename = "summonerId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summoner_id: Option<String>,
/// Player's encrypted puuid.
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "queueType")]
pub queue_type: crate::consts::QueueType,
#[serde(rename = "tier")]
pub tier: crate::consts::Tier,
/// The player's division within a tier.
#[serde(rename = "rank")]
pub rank: crate::consts::Division,
#[serde(rename = "leaguePoints")]
pub league_points: i32,
/// Winning team on Summoners Rift. First placement in Teamfight Tactics.
#[serde(rename = "wins")]
pub wins: i32,
/// Losing team on Summoners Rift. Second through eighth placement in Teamfight Tactics.
#[serde(rename = "losses")]
pub losses: i32,
#[serde(rename = "hotStreak")]
pub hot_streak: bool,
#[serde(rename = "veteran")]
pub veteran: bool,
#[serde(rename = "freshBlood")]
pub fresh_blood: bool,
#[serde(rename = "inactive")]
pub inactive: bool,
#[serde(rename = "miniSeries")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mini_series: Option<crate::models::league_exp_v4::MiniSeries>,
}
/// `league-exp-v4.MiniSeriesDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MiniSeries {
#[serde(rename = "losses")]
pub losses: i32,
#[serde(rename = "progress")]
pub progress: String,
#[serde(rename = "target")]
pub target: i32,
#[serde(rename = "wins")]
pub wins: i32,
}
}
/// Data structs used by [`LeagueV4`](crate::endpoints::LeagueV4).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod league_v4 {
/// `league-v4.LeagueListDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueList {
#[serde(rename = "leagueId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub league_id: Option<String>,
#[serde(rename = "entries")]
pub entries: std::vec::Vec<crate::models::league_v4::LeagueItem>,
#[serde(rename = "tier")]
pub tier: crate::consts::Tier,
#[serde(rename = "name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "queue")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue: Option<crate::consts::QueueType>,
}
/// `league-v4.LeagueItemDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueItem {
#[serde(rename = "freshBlood")]
pub fresh_blood: bool,
/// Winning team on Summoners Rift.
#[serde(rename = "wins")]
pub wins: i32,
#[serde(rename = "miniSeries")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mini_series: Option<crate::models::league_v4::MiniSeries>,
#[serde(rename = "inactive")]
pub inactive: bool,
#[serde(rename = "veteran")]
pub veteran: bool,
#[serde(rename = "hotStreak")]
pub hot_streak: bool,
#[serde(rename = "rank")]
pub rank: crate::consts::Division,
#[serde(rename = "leaguePoints")]
pub league_points: i32,
/// Losing team on Summoners Rift.
#[serde(rename = "losses")]
pub losses: i32,
/// Player's encrypted puuid.
#[serde(rename = "puuid")]
pub puuid: String,
/// Encrypted summoner ID. This field is deprecated and will be removed. Use `puuid` instead.
#[serde(rename = "summonerId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summoner_id: Option<String>,
}
/// `league-v4.MiniSeriesDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MiniSeries {
#[serde(rename = "losses")]
pub losses: i32,
#[serde(rename = "progress")]
pub progress: String,
#[serde(rename = "target")]
pub target: i32,
#[serde(rename = "wins")]
pub wins: i32,
}
/// `league-v4.LeagueEntryDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueEntry {
#[serde(rename = "leagueId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub league_id: Option<String>,
/// Player's encrypted puuid.
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "queueType")]
pub queue_type: crate::consts::QueueType,
#[serde(rename = "tier")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier: Option<crate::consts::Tier>,
/// The player's division within a tier.
#[serde(rename = "rank")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rank: Option<crate::consts::Division>,
#[serde(rename = "leaguePoints")]
pub league_points: i32,
/// Winning team on Summoners Rift.
#[serde(rename = "wins")]
pub wins: i32,
/// Losing team on Summoners Rift.
#[serde(rename = "losses")]
pub losses: i32,
#[serde(rename = "hotStreak")]
pub hot_streak: bool,
#[serde(rename = "veteran")]
pub veteran: bool,
#[serde(rename = "freshBlood")]
pub fresh_blood: bool,
#[serde(rename = "inactive")]
pub inactive: bool,
#[serde(rename = "miniSeries")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mini_series: Option<crate::models::league_v4::MiniSeries>,
/// Encrypted summoner ID. This field is deprecated and will be removed. Use `puuid` instead.
#[serde(rename = "summonerId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summoner_id: Option<String>,
}
}
/// Data structs used by [`LolChallengesV1`](crate::endpoints::LolChallengesV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lol_challenges_v1 {
/// `lol-challenges-v1.ChallengeConfigInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChallengeConfigInfo {
#[serde(rename = "id")]
pub id: i64,
#[serde(rename = "localizedNames")]
pub localized_names: std::collections::HashMap<String, std::collections::HashMap<String, String>>,
/// DISABLED - not visible and not calculated, HIDDEN - not visible, but calculated, ENABLED - visible and calculated, ARCHIVED - visible, but not calculated
#[serde(rename = "state")]
pub state: String,
/// LIFETIME - stats are incremented without reset, SEASON - stats are accumulated by season and reset at the beginning of new season
#[serde(rename = "tracking")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tracking: Option<String>,
#[serde(rename = "startTimestamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_timestamp: Option<i64>,
#[serde(rename = "endTimestamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_timestamp: Option<i64>,
#[serde(rename = "leaderboard")]
pub leaderboard: bool,
#[serde(rename = "thresholds")]
pub thresholds: std::collections::HashMap<String, f64>,
}
/// `lol-challenges-v1.State` data object.
/// # Description
/// DISABLED - not visible and not calculated,<br>
/// HIDDEN - not visible, but calculated,<br>
/// ENABLED - visible and calculated,<br>
/// ARCHIVED - visible, but not calculated
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct State {
}
/// `lol-challenges-v1.Tracking` data object.
/// # Description
/// LIFETIME - stats are incremented without reset,<br>
/// SEASON - stats are accumulated by season and reset at the beginning of new season
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Tracking {
}
/// `lol-challenges-v1.ApexPlayerInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ApexPlayerInfo {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "value")]
pub value: f64,
#[serde(rename = "position")]
pub position: i32,
}
/// `lol-challenges-v1.Level` data object.
/// # Description
/// 0 NONE,<br>
/// 1 IRON,<br>
/// 2 BRONZE,<br>
/// 3 SILVER,<br>
/// 4 GOLD,<br>
/// 5 PLATINUM,<br>
/// 6 DIAMOND,<br>
/// 7 MASTER,<br>
/// 8 GRANDMASTER,<br>
/// 9 CHALLENGER
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Level {
}
/// `lol-challenges-v1.PlayerInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerInfo {
#[serde(rename = "challenges")]
pub challenges: std::vec::Vec<crate::models::lol_challenges_v1::ChallengeInfo>,
#[serde(rename = "preferences")]
pub preferences: crate::models::lol_challenges_v1::PlayerClientPreferences,
#[serde(rename = "totalPoints")]
pub total_points: crate::models::lol_challenges_v1::ChallengePoint,
#[serde(rename = "categoryPoints")]
pub category_points: std::collections::HashMap<String, crate::models::lol_challenges_v1::ChallengePoint>,
}
/// `lol-challenges-v1.ChallengeInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChallengeInfo {
#[serde(rename = "percentile")]
pub percentile: f64,
#[serde(rename = "playersInLevel")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub players_in_level: Option<i32>,
#[serde(rename = "achievedTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub achieved_time: Option<i64>,
#[serde(rename = "value")]
pub value: f64,
#[serde(rename = "challengeId")]
pub challenge_id: i64,
/// (Legal values: NONE, IRON, BRONZE, SILVER, GOLD, PLATINUM, DIAMOND, MASTER, GRANDMASTER, CHALLENGER, HIGHEST_NOT_LEADERBOARD_ONLY, HIGHEST, LOWEST)
#[serde(rename = "level")]
pub level: String,
#[serde(rename = "position")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub position: Option<i32>,
}
/// `lol-challenges-v1.PlayerClientPreferencesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerClientPreferences {
#[serde(rename = "bannerAccent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub banner_accent: Option<String>,
#[serde(rename = "title")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(rename = "challengeIds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub challenge_ids: Option<std::vec::Vec<i64>>,
#[serde(rename = "crestBorder")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub crest_border: Option<String>,
#[serde(rename = "prestigeCrestBorderLevel")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prestige_crest_border_level: Option<i32>,
}
/// `lol-challenges-v1.ChallengePointDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChallengePoint {
#[serde(rename = "level")]
pub level: crate::consts::Tier,
#[serde(rename = "current")]
pub current: i64,
#[serde(rename = "max")]
pub max: i64,
#[serde(rename = "percentile")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub percentile: Option<f64>,
#[serde(rename = "position")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub position: Option<i64>,
}
}
/// Data structs used by [`LolRsoMatchV1`](crate::endpoints::LolRsoMatchV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lol_rso_match_v1 {
/// `lol-rso-match-v1.MatchDto` data object.
/// # Description
/// UNKNOWN TYPE.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
}
/// `lol-rso-match-v1.TimelineDto` data object.
/// # Description
/// UNKNOWN TYPE.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Timeline {
}
}
/// Data structs used by [`LolStatusV4`](crate::endpoints::LolStatusV4).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lol_status_v4 {
/// `lol-status-v4.PlatformDataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlatformData {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "locales")]
pub locales: std::vec::Vec<String>,
#[serde(rename = "maintenances")]
pub maintenances: std::vec::Vec<crate::models::lol_status_v4::Status>,
#[serde(rename = "incidents")]
pub incidents: std::vec::Vec<crate::models::lol_status_v4::Status>,
}
/// `lol-status-v4.StatusDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Status {
#[serde(rename = "id")]
pub id: i32,
/// (Legal values: scheduled, in_progress, complete)
#[serde(rename = "maintenance_status")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maintenance_status: Option<String>,
/// (Legal values: info, warning, critical)
#[serde(rename = "incident_severity")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub incident_severity: Option<String>,
#[serde(rename = "titles")]
pub titles: std::vec::Vec<crate::models::lol_status_v4::Content>,
#[serde(rename = "updates")]
pub updates: std::vec::Vec<crate::models::lol_status_v4::Update>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "archive_at")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub archive_at: Option<String>,
#[serde(rename = "updated_at")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub updated_at: Option<String>,
/// (Legal values: windows, macos, android, ios, ps4, xbone, switch)
#[serde(rename = "platforms")]
pub platforms: std::vec::Vec<String>,
}
/// `lol-status-v4.ContentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Content {
#[serde(rename = "locale")]
pub locale: String,
#[serde(rename = "content")]
pub content: String,
}
/// `lol-status-v4.UpdateDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Update {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "author")]
pub author: String,
#[serde(rename = "publish")]
pub publish: bool,
/// (Legal values: riotclient, riotstatus, game)
#[serde(rename = "publish_locations")]
pub publish_locations: std::vec::Vec<String>,
#[serde(rename = "translations")]
pub translations: std::vec::Vec<crate::models::lol_status_v4::Content>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
}
/// Data structs used by [`LorDeckV1`](crate::endpoints::LorDeckV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lor_deck_v1 {
/// `lor-deck-v1.DeckDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Deck {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "code")]
pub code: String,
}
/// `lor-deck-v1.NewDeckDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct NewDeck {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "code")]
pub code: String,
}
}
/// Data structs used by [`LorInventoryV1`](crate::endpoints::LorInventoryV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lor_inventory_v1 {
/// `lor-inventory-v1.CardDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Card {
#[serde(rename = "code")]
pub code: String,
#[serde(rename = "count")]
pub count: String,
}
}
/// Data structs used by [`LorMatchV1`](crate::endpoints::LorMatchV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lor_match_v1 {
/// `lor-match-v1.MatchDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
/// Match metadata.
#[serde(rename = "metadata")]
pub metadata: crate::models::lor_match_v1::Metadata,
/// Match info.
#[serde(rename = "info")]
pub info: crate::models::lor_match_v1::Info,
}
/// `lor-match-v1.MetadataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Metadata {
/// Match data version.
#[serde(rename = "data_version")]
pub data_version: String,
/// Match id.
#[serde(rename = "match_id")]
pub match_id: String,
/// A list of participant PUUIDs.
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `lor-match-v1.InfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Info {
/// (Legal values: Constructed, Expeditions, Tutorial)
#[serde(rename = "game_mode")]
pub game_mode: String,
/// (Legal values: Ranked, Normal, AI, Tutorial, VanillaTrial, Singleton, StandardGauntlet)
#[serde(rename = "game_type")]
pub game_type: String,
#[serde(rename = "game_start_time_utc")]
pub game_start_time_utc: String,
#[serde(rename = "game_version")]
pub game_version: String,
/// (Legal values: standard, eternal)
#[serde(rename = "game_format")]
pub game_format: String,
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::lor_match_v1::Player>,
/// Total turns taken by both players.
#[serde(rename = "total_turn_count")]
pub total_turn_count: i32,
}
/// `lor-match-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "deck_id")]
pub deck_id: String,
/// Code for the deck played. Refer to LOR documentation for details on deck codes.
#[serde(rename = "deck_code")]
pub deck_code: String,
#[serde(rename = "factions")]
pub factions: std::vec::Vec<String>,
#[serde(rename = "game_outcome")]
pub game_outcome: String,
/// The order in which the players took turns.
#[serde(rename = "order_of_play")]
pub order_of_play: i32,
}
}
/// Data structs used by [`LorRankedV1`](crate::endpoints::LorRankedV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lor_ranked_v1 {
/// `lor-ranked-v1.LeaderboardDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Leaderboard {
/// A list of players in Master tier.
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::lor_ranked_v1::Player>,
}
/// `lor-ranked-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "rank")]
pub rank: i32,
/// League points.
#[serde(rename = "lp")]
pub lp: i32,
}
}
/// Data structs used by [`LorStatusV1`](crate::endpoints::LorStatusV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod lor_status_v1 {
/// `lor-status-v1.PlatformDataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlatformData {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "locales")]
pub locales: std::vec::Vec<String>,
#[serde(rename = "maintenances")]
pub maintenances: std::vec::Vec<crate::models::lor_status_v1::Status>,
#[serde(rename = "incidents")]
pub incidents: std::vec::Vec<crate::models::lor_status_v1::Status>,
}
/// `lor-status-v1.StatusDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Status {
#[serde(rename = "id")]
pub id: i32,
/// (Legal values: scheduled, in_progress, complete)
#[serde(rename = "maintenance_status")]
pub maintenance_status: String,
/// (Legal values: info, warning, critical)
#[serde(rename = "incident_severity")]
pub incident_severity: String,
#[serde(rename = "titles")]
pub titles: std::vec::Vec<crate::models::lor_status_v1::Content>,
#[serde(rename = "updates")]
pub updates: std::vec::Vec<crate::models::lor_status_v1::Update>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "archive_at")]
pub archive_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
/// (Legal values: windows, macos, android, ios, ps4, xbone, switch)
#[serde(rename = "platforms")]
pub platforms: std::vec::Vec<String>,
}
/// `lor-status-v1.ContentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Content {
#[serde(rename = "locale")]
pub locale: String,
#[serde(rename = "content")]
pub content: String,
}
/// `lor-status-v1.UpdateDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Update {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "author")]
pub author: String,
#[serde(rename = "publish")]
pub publish: bool,
/// (Legal values: riotclient, riotstatus, game)
#[serde(rename = "publish_locations")]
pub publish_locations: std::vec::Vec<String>,
#[serde(rename = "translations")]
pub translations: std::vec::Vec<crate::models::lor_status_v1::Content>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
}
/// Data structs used by [`MatchV5`](crate::endpoints::MatchV5).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod match_v5 {
/// `match-v5.ReplayDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Replay {
/// Total of replay files
#[serde(rename = "total")]
pub total: i32,
#[serde(rename = "matchFileURLs")]
pub match_file_urls: std::vec::Vec<String>,
}
/// `match-v5.MatchDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
/// Match metadata.
#[serde(rename = "metadata")]
pub metadata: crate::models::match_v5::Metadata,
/// Match info.
#[serde(rename = "info")]
pub info: crate::models::match_v5::Info,
}
/// `match-v5.MetadataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Metadata {
/// Match data version.
#[serde(rename = "dataVersion")]
pub data_version: String,
/// Match id.
#[serde(rename = "matchId")]
pub match_id: String,
/// A list of participant PUUIDs.
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `match-v5.InfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Info {
/// Refer to indicate if the game ended in termination.
#[serde(rename = "endOfGameResult")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_of_game_result: Option<String>,
/// Unix timestamp for when the game is created on the game server (i.e., the loading screen).
#[serde(rename = "gameCreation")]
pub game_creation: i64,
/// Prior to patch 11.20, this field returns the game length in milliseconds calculated from gameEndTimestamp - gameStartTimestamp. Post patch 11.20, this field returns the max timePlayed of any participant in the game in seconds, which makes the behavior of this field consistent with that of match-v4. The best way to handling the change in this field is to treat the value as milliseconds if the gameEndTimestamp field isn't in the response and to treat the value as seconds if gameEndTimestamp is in the response.
#[serde(rename = "gameDuration")]
pub game_duration: i64,
/// Unix timestamp for when match ends on the game server. This timestamp can occasionally be significantly longer than when the match "ends". The most reliable way of determining the timestamp for the end of the match would be to add the max time played of any participant to the gameStartTimestamp. This field was added to match-v5 in patch 11.20 on Oct 5th, 2021.
#[serde(rename = "gameEndTimestamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_end_timestamp: Option<i64>,
#[serde(rename = "gameId")]
pub game_id: i64,
/// Refer to the Game Constants documentation.
#[serde(rename = "gameMode")]
pub game_mode: crate::consts::GameMode,
#[serde(rename = "gameName")]
pub game_name: String,
/// Unix timestamp for when match starts on the game server.
#[serde(rename = "gameStartTimestamp")]
pub game_start_timestamp: i64,
#[serde(rename = "gameType")]
///
/// Will be `None` if empty string is returned: <https://github.com/RiotGames/developer-relations/issues/898>
#[serde(serialize_with = "crate::consts::serialize_empty_string_none")]
#[serde(deserialize_with = "crate::consts::deserialize_empty_string_none")]
pub game_type: Option<crate::consts::GameType>,
/// The first two parts can be used to determine the patch a game was played on.
#[serde(rename = "gameVersion")]
pub game_version: String,
/// Refer to the Game Constants documentation.
#[serde(rename = "mapId")]
pub map_id: crate::consts::Map,
#[serde(rename = "participants")]
pub participants: std::vec::Vec<crate::models::match_v5::Participant>,
/// Platform where the match was played.
#[serde(rename = "platformId")]
pub platform_id: String,
/// Refer to the Game Constants documentation.
#[serde(rename = "queueId")]
pub queue_id: crate::consts::Queue,
#[serde(rename = "teams")]
pub teams: std::vec::Vec<crate::models::match_v5::Team>,
/// Tournament code used to generate the match. This field was added to match-v5 in patch 11.13 on June 23rd, 2021.
#[serde(rename = "tournamentCode")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tournament_code: Option<String>,
#[serde(rename = "gameModeMutators")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_mode_mutators: Option<std::vec::Vec<String>>,
}
/// `match-v5.ParticipantDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Participant {
/// Yellow crossed swords
#[serde(rename = "allInPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub all_in_pings: Option<i32>,
/// Green flag
#[serde(rename = "assistMePings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assist_me_pings: Option<i32>,
#[serde(rename = "assists")]
pub assists: i32,
#[serde(rename = "baronKills")]
pub baron_kills: i32,
#[serde(rename = "bountyLevel")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bounty_level: Option<i32>,
#[serde(rename = "champExperience")]
pub champ_experience: i32,
#[serde(rename = "champLevel")]
pub champ_level: i32,
/// Prior to patch 11.4, on Feb 18th, 2021, this field returned invalid championIds. We recommend determining the champion based on the championName field for matches played prior to patch 11.4.
#[serde(rename = "championId")]
///
/// Instead use [`Self::champion()`] which checks this field then parses [`Self::champion_name`].
#[deprecated(since = "2.5.0", note = "Use `Participant.champion()` instead. Riot sometimes returns corrupted data for this field: <https://github.com/RiotGames/developer-relations/issues/553>")]
#[serde(serialize_with = "crate::consts::Champion::serialize_result")]
#[serde(deserialize_with = "crate::consts::Champion::deserialize_result")]
pub champion_id: Result<crate::consts::Champion, std::num::TryFromIntError>,
#[serde(rename = "championName")]
pub champion_name: String,
/// Blue generic ping (ALT+click)
#[serde(rename = "commandPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command_pings: Option<i32>,
/// This field is currently only utilized for Kayn's transformations. (Legal values: 0 - None, 1 - Slayer, 2 - Assassin)
#[serde(rename = "championTransform")]
pub champion_transform: i32,
#[serde(rename = "consumablesPurchased")]
pub consumables_purchased: i32,
#[serde(rename = "challenges")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub challenges: Option<crate::models::match_v5::Challenges>,
#[serde(rename = "damageDealtToBuildings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_dealt_to_buildings: Option<i32>,
#[serde(rename = "damageDealtToObjectives")]
pub damage_dealt_to_objectives: i32,
#[serde(rename = "damageDealtToTurrets")]
pub damage_dealt_to_turrets: i32,
#[serde(rename = "damageSelfMitigated")]
pub damage_self_mitigated: i32,
#[serde(rename = "deaths")]
pub deaths: i32,
#[serde(rename = "detectorWardsPlaced")]
pub detector_wards_placed: i32,
#[serde(rename = "doubleKills")]
pub double_kills: i32,
#[serde(rename = "dragonKills")]
pub dragon_kills: i32,
#[serde(rename = "eligibleForProgression")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub eligible_for_progression: Option<bool>,
/// Yellow questionmark
#[serde(rename = "enemyMissingPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enemy_missing_pings: Option<i32>,
/// Red eyeball
#[serde(rename = "enemyVisionPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enemy_vision_pings: Option<i32>,
#[serde(rename = "firstBloodAssist")]
pub first_blood_assist: bool,
#[serde(rename = "firstBloodKill")]
pub first_blood_kill: bool,
#[serde(rename = "firstTowerAssist")]
pub first_tower_assist: bool,
#[serde(rename = "firstTowerKill")]
pub first_tower_kill: bool,
/// This is an offshoot of the OneStone challenge. The code checks if a spell with the same instance ID does the final point of damage to at least 2 Champions. It doesn't matter if they're enemies, but you cannot hurt your friends.
#[serde(rename = "gameEndedInEarlySurrender")]
pub game_ended_in_early_surrender: bool,
#[serde(rename = "gameEndedInSurrender")]
pub game_ended_in_surrender: bool,
#[serde(rename = "holdPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hold_pings: Option<i32>,
/// Yellow circle with horizontal line
#[serde(rename = "getBackPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub get_back_pings: Option<i32>,
#[serde(rename = "goldEarned")]
pub gold_earned: i32,
#[serde(rename = "goldSpent")]
pub gold_spent: i32,
/// Both individualPosition and teamPosition are computed by the game server and are different versions of the most likely position played by a player. The individualPosition is the best guess for which position the player actually played in isolation of anything else. The teamPosition is the best guess for which position the player actually played if we add the constraint that each team must have one top player, one jungle, one middle, etc. Generally the recommendation is to use the teamPosition field over the individualPosition field.
#[serde(rename = "individualPosition")]
pub individual_position: String,
#[serde(rename = "inhibitorKills")]
pub inhibitor_kills: i32,
#[serde(rename = "inhibitorTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inhibitor_takedowns: Option<i32>,
#[serde(rename = "inhibitorsLost")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inhibitors_lost: Option<i32>,
#[serde(rename = "item0")]
pub item0: i32,
#[serde(rename = "item1")]
pub item1: i32,
#[serde(rename = "item2")]
pub item2: i32,
#[serde(rename = "item3")]
pub item3: i32,
#[serde(rename = "item4")]
pub item4: i32,
#[serde(rename = "item5")]
pub item5: i32,
#[serde(rename = "item6")]
pub item6: i32,
#[serde(rename = "itemsPurchased")]
pub items_purchased: i32,
#[serde(rename = "killingSprees")]
pub killing_sprees: i32,
#[serde(rename = "kills")]
pub kills: i32,
#[serde(rename = "lane")]
pub lane: String,
#[serde(rename = "largestCriticalStrike")]
pub largest_critical_strike: i32,
#[serde(rename = "largestKillingSpree")]
pub largest_killing_spree: i32,
#[serde(rename = "largestMultiKill")]
pub largest_multi_kill: i32,
#[serde(rename = "longestTimeSpentLiving")]
pub longest_time_spent_living: i32,
#[serde(rename = "magicDamageDealt")]
pub magic_damage_dealt: i32,
#[serde(rename = "magicDamageDealtToChampions")]
pub magic_damage_dealt_to_champions: i32,
#[serde(rename = "magicDamageTaken")]
pub magic_damage_taken: i32,
#[serde(rename = "missions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub missions: Option<crate::models::match_v5::Missions>,
/// neutralMinionsKilled = mNeutralMinionsKilled, which is incremented on kills of kPet and kJungleMonster
#[serde(rename = "neutralMinionsKilled")]
pub neutral_minions_killed: i32,
/// Green ward
#[serde(rename = "needVisionPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub need_vision_pings: Option<i32>,
#[serde(rename = "nexusKills")]
pub nexus_kills: i32,
#[serde(rename = "nexusTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nexus_takedowns: Option<i32>,
#[serde(rename = "nexusLost")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nexus_lost: Option<i32>,
#[serde(rename = "objectivesStolen")]
pub objectives_stolen: i32,
#[serde(rename = "objectivesStolenAssists")]
pub objectives_stolen_assists: i32,
/// Blue arrow pointing at ground
#[serde(rename = "onMyWayPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub on_my_way_pings: Option<i32>,
#[serde(rename = "participantId")]
pub participant_id: i32,
#[serde(rename = "playerScore0", alias = "PlayerScore0")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score0: Option<f32>,
#[serde(rename = "playerScore1", alias = "PlayerScore1")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score1: Option<f32>,
#[serde(rename = "playerScore2", alias = "PlayerScore2")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score2: Option<f32>,
#[serde(rename = "playerScore3", alias = "PlayerScore3")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score3: Option<f32>,
#[serde(rename = "playerScore4", alias = "PlayerScore4")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score4: Option<f32>,
#[serde(rename = "playerScore5", alias = "PlayerScore5")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score5: Option<f32>,
#[serde(rename = "playerScore6", alias = "PlayerScore6")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score6: Option<f32>,
#[serde(rename = "playerScore7", alias = "PlayerScore7")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score7: Option<f32>,
#[serde(rename = "playerScore8", alias = "PlayerScore8")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score8: Option<f32>,
#[serde(rename = "playerScore9", alias = "PlayerScore9")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score9: Option<f32>,
#[serde(rename = "playerScore10", alias = "PlayerScore10")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score10: Option<f32>,
#[serde(rename = "playerScore11", alias = "PlayerScore11")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score11: Option<f32>,
#[serde(rename = "pentaKills")]
pub penta_kills: i32,
#[serde(rename = "perks")]
pub perks: crate::models::match_v5::Perks,
#[serde(rename = "physicalDamageDealt")]
pub physical_damage_dealt: i32,
#[serde(rename = "physicalDamageDealtToChampions")]
pub physical_damage_dealt_to_champions: i32,
#[serde(rename = "physicalDamageTaken")]
pub physical_damage_taken: i32,
#[serde(rename = "placement")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub placement: Option<i32>,
#[serde(rename = "playerAugment1")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment1: Option<i32>,
#[serde(rename = "playerAugment2")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment2: Option<i32>,
#[serde(rename = "playerAugment3")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment3: Option<i32>,
#[serde(rename = "playerAugment4")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment4: Option<i32>,
#[serde(rename = "playerSubteamId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_subteam_id: Option<i32>,
/// Green minion
#[serde(rename = "pushPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub push_pings: Option<i32>,
#[serde(rename = "profileIcon")]
pub profile_icon: i32,
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "quadraKills")]
pub quadra_kills: i32,
#[serde(rename = "riotIdGameName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id_game_name: Option<String>,
#[serde(rename = "riotIdTagline")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id_tagline: Option<String>,
#[serde(rename = "role")]
pub role: String,
#[serde(rename = "sightWardsBoughtInGame")]
pub sight_wards_bought_in_game: i32,
#[serde(rename = "spell1Casts")]
pub spell1_casts: i32,
#[serde(rename = "spell2Casts")]
pub spell2_casts: i32,
#[serde(rename = "spell3Casts")]
pub spell3_casts: i32,
#[serde(rename = "spell4Casts")]
pub spell4_casts: i32,
#[serde(rename = "subteamPlacement")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub subteam_placement: Option<i32>,
#[serde(rename = "summoner1Casts")]
pub summoner1_casts: i32,
#[serde(rename = "summoner1Id")]
pub summoner1_id: i32,
#[serde(rename = "summoner2Casts")]
pub summoner2_casts: i32,
#[serde(rename = "summoner2Id")]
pub summoner2_id: i32,
#[serde(rename = "summonerId")]
pub summoner_id: String,
#[serde(rename = "summonerLevel")]
pub summoner_level: i32,
#[serde(rename = "summonerName")]
pub summoner_name: String,
#[serde(rename = "teamEarlySurrendered")]
pub team_early_surrendered: bool,
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
/// Both individualPosition and teamPosition are computed by the game server and are different versions of the most likely position played by a player. The individualPosition is the best guess for which position the player actually played in isolation of anything else. The teamPosition is the best guess for which position the player actually played if we add the constraint that each team must have one top player, one jungle, one middle, etc. Generally the recommendation is to use the teamPosition field over the individualPosition field.
#[serde(rename = "teamPosition")]
pub team_position: String,
#[serde(rename = "timeCCingOthers")]
pub time_ccing_others: i32,
#[serde(rename = "timePlayed")]
pub time_played: i32,
#[serde(rename = "totalAllyJungleMinionsKilled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_ally_jungle_minions_killed: Option<i32>,
#[serde(rename = "totalDamageDealt")]
pub total_damage_dealt: i32,
#[serde(rename = "totalDamageDealtToChampions")]
pub total_damage_dealt_to_champions: i32,
#[serde(rename = "totalDamageShieldedOnTeammates")]
pub total_damage_shielded_on_teammates: i32,
#[serde(rename = "totalDamageTaken")]
pub total_damage_taken: i32,
#[serde(rename = "totalEnemyJungleMinionsKilled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_enemy_jungle_minions_killed: Option<i32>,
/// Whenever positive health is applied (which translates to all heals in the game but not things like regeneration), totalHeal is incremented by the amount of health received. This includes healing enemies, jungle monsters, yourself, etc
#[serde(rename = "totalHeal")]
pub total_heal: i32,
/// Whenever positive health is applied (which translates to all heals in the game but not things like regeneration), totalHealsOnTeammates is incremented by the amount of health received. This is post modified, so if you heal someone missing 5 health for 100 you will get +5 totalHealsOnTeammates
#[serde(rename = "totalHealsOnTeammates")]
pub total_heals_on_teammates: i32,
/// totalMillionsKilled = mMinionsKilled, which is only incremented on kills of kTeamMinion, kMeleeLaneMinion, kSuperLaneMinion, kRangedLaneMinion and kSiegeLaneMinion
#[serde(rename = "totalMinionsKilled")]
pub total_minions_killed: i32,
#[serde(rename = "totalTimeCCDealt")]
pub total_time_cc_dealt: i32,
#[serde(rename = "totalTimeSpentDead")]
pub total_time_spent_dead: i32,
#[serde(rename = "totalUnitsHealed")]
pub total_units_healed: i32,
#[serde(rename = "tripleKills")]
pub triple_kills: i32,
#[serde(rename = "trueDamageDealt")]
pub true_damage_dealt: i32,
#[serde(rename = "trueDamageDealtToChampions")]
pub true_damage_dealt_to_champions: i32,
#[serde(rename = "trueDamageTaken")]
pub true_damage_taken: i32,
#[serde(rename = "turretKills")]
pub turret_kills: i32,
#[serde(rename = "turretTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turret_takedowns: Option<i32>,
#[serde(rename = "turretsLost")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turrets_lost: Option<i32>,
#[serde(rename = "unrealKills")]
pub unreal_kills: i32,
#[serde(rename = "visionScore")]
pub vision_score: i32,
#[serde(rename = "visionClearedPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vision_cleared_pings: Option<i32>,
#[serde(rename = "visionWardsBoughtInGame")]
pub vision_wards_bought_in_game: i32,
#[serde(rename = "wardsKilled")]
pub wards_killed: i32,
#[serde(rename = "wardsPlaced")]
pub wards_placed: i32,
#[serde(rename = "win")]
pub win: bool,
#[serde(rename = "baitPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bait_pings: Option<i32>,
/// <https://github.com/RiotGames/developer-relations/issues/870>
#[serde(rename = "dangerPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub danger_pings: Option<i32>,
/// <https://github.com/RiotGames/developer-relations/issues/814>
#[serde(rename = "basicPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub basic_pings: Option<i32>,
#[serde(rename = "playerAugment5")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment5: Option<i32>,
#[serde(rename = "playerAugment6")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_augment6: Option<i32>,
/// Deprecated, use `riotIdGameName`. This field name was briefly used instead of `riotIdGameName`, prior to patch 14.5.
#[serde(rename = "riotIdName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id_name: Option<String>,
/// <https://github.com/RiotGames/developer-relations/issues/814>
#[serde(rename = "retreatPings")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub retreat_pings: Option<i32>,
#[serde(rename = "championSkinId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub champion_skin_id: Option<i32>,
#[serde(rename = "damageDealtToEpicMonsters")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_dealt_to_epic_monsters: Option<i32>,
#[serde(rename = "roleBoundItem")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role_bound_item: Option<i32>,
/// <https://github.com/RiotGames/developer-relations/issues/754#issuecomment-3940157820>
#[serde(rename = "PlayerBehavior")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_behavior: Option<crate::models::match_v5::ParticipantPlayerBehavior>,
}
/// `match-v5.ChallengesDto` data object.
/// # Description
/// Challenges DTO
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Challenges {
#[serde(rename = "12AssistStreakCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub x12_assist_streak_count: Option<i32>,
#[serde(rename = "baronBuffGoldAdvantageOverThreshold")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub baron_buff_gold_advantage_over_threshold: Option<i32>,
#[serde(rename = "controlWardTimeCoverageInRiverOrEnemyHalf")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub control_ward_time_coverage_in_river_or_enemy_half: Option<f32>,
#[serde(rename = "earliestBaron")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub earliest_baron: Option<f64>,
#[serde(rename = "earliestDragonTakedown")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub earliest_dragon_takedown: Option<f64>,
#[serde(rename = "earliestElderDragon")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub earliest_elder_dragon: Option<f64>,
#[serde(rename = "earlyLaningPhaseGoldExpAdvantage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub early_laning_phase_gold_exp_advantage: Option<f64>,
#[serde(rename = "fasterSupportQuestCompletion")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub faster_support_quest_completion: Option<i32>,
#[serde(rename = "fastestLegendary")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fastest_legendary: Option<f64>,
#[serde(rename = "hadAfkTeammate")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub had_afk_teammate: Option<i32>,
#[serde(rename = "highestChampionDamage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub highest_champion_damage: Option<i32>,
#[serde(rename = "highestCrowdControlScore")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub highest_crowd_control_score: Option<i32>,
#[serde(rename = "highestWardKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub highest_ward_kills: Option<i32>,
#[serde(rename = "junglerKillsEarlyJungle")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jungler_kills_early_jungle: Option<i32>,
#[serde(rename = "killsOnLanersEarlyJungleAsJungler")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_on_laners_early_jungle_as_jungler: Option<i32>,
#[serde(rename = "laningPhaseGoldExpAdvantage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub laning_phase_gold_exp_advantage: Option<i32>,
#[serde(rename = "legendaryCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub legendary_count: Option<i32>,
#[serde(rename = "maxCsAdvantageOnLaneOpponent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_cs_advantage_on_lane_opponent: Option<f32>,
#[serde(rename = "maxLevelLeadLaneOpponent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_level_lead_lane_opponent: Option<i32>,
#[serde(rename = "mostWardsDestroyedOneSweeper")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub most_wards_destroyed_one_sweeper: Option<i32>,
#[serde(rename = "mythicItemUsed")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mythic_item_used: Option<i32>,
#[serde(rename = "playedChampSelectPosition")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub played_champ_select_position: Option<i32>,
#[serde(rename = "soloTurretsLategame")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub solo_turrets_lategame: Option<i32>,
#[serde(rename = "takedownsFirst25Minutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_first25_minutes: Option<i32>,
#[serde(rename = "teleportTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub teleport_takedowns: Option<i32>,
#[serde(rename = "thirdInhibitorDestroyedTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub third_inhibitor_destroyed_time: Option<f64>,
#[serde(rename = "threeWardsOneSweeperCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub three_wards_one_sweeper_count: Option<i32>,
#[serde(rename = "visionScoreAdvantageLaneOpponent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vision_score_advantage_lane_opponent: Option<f32>,
#[serde(rename = "InfernalScalePickup")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub infernal_scale_pickup: Option<i32>,
#[serde(rename = "fistBumpParticipation")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fist_bump_participation: Option<i32>,
#[serde(rename = "voidMonsterKill")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub void_monster_kill: Option<i32>,
#[serde(rename = "abilityUses")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability_uses: Option<i32>,
#[serde(rename = "acesBefore15Minutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub aces_before15_minutes: Option<i32>,
#[serde(rename = "alliedJungleMonsterKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allied_jungle_monster_kills: Option<f32>,
#[serde(rename = "baronTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub baron_takedowns: Option<i32>,
#[serde(rename = "blastConeOppositeOpponentCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub blast_cone_opposite_opponent_count: Option<i32>,
#[serde(rename = "bountyGold")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bounty_gold: Option<f64>,
#[serde(rename = "buffsStolen")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub buffs_stolen: Option<i32>,
#[serde(rename = "completeSupportQuestInTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub complete_support_quest_in_time: Option<i32>,
#[serde(rename = "controlWardsPlaced")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub control_wards_placed: Option<i32>,
#[serde(rename = "damagePerMinute")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_per_minute: Option<f32>,
#[serde(rename = "damageTakenOnTeamPercentage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_taken_on_team_percentage: Option<f32>,
#[serde(rename = "dancedWithRiftHerald")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub danced_with_rift_herald: Option<i32>,
#[serde(rename = "deathsByEnemyChamps")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deaths_by_enemy_champs: Option<i32>,
#[serde(rename = "dodgeSkillShotsSmallWindow")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dodge_skill_shots_small_window: Option<i32>,
#[serde(rename = "doubleAces")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub double_aces: Option<i32>,
#[serde(rename = "dragonTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub dragon_takedowns: Option<i32>,
#[serde(rename = "legendaryItemUsed")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub legendary_item_used: Option<std::vec::Vec<i32>>,
#[serde(rename = "effectiveHealAndShielding")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub effective_heal_and_shielding: Option<f32>,
#[serde(rename = "elderDragonKillsWithOpposingSoul")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub elder_dragon_kills_with_opposing_soul: Option<i32>,
#[serde(rename = "elderDragonMultikills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub elder_dragon_multikills: Option<i32>,
#[serde(rename = "enemyChampionImmobilizations")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enemy_champion_immobilizations: Option<i32>,
#[serde(rename = "enemyJungleMonsterKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enemy_jungle_monster_kills: Option<f32>,
#[serde(rename = "epicMonsterKillsNearEnemyJungler")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub epic_monster_kills_near_enemy_jungler: Option<i32>,
#[serde(rename = "epicMonsterKillsWithin30SecondsOfSpawn")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub epic_monster_kills_within30_seconds_of_spawn: Option<i32>,
#[serde(rename = "epicMonsterSteals")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub epic_monster_steals: Option<i32>,
#[serde(rename = "epicMonsterStolenWithoutSmite")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub epic_monster_stolen_without_smite: Option<i32>,
#[serde(rename = "firstTurretKilled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_turret_killed: Option<f64>,
#[serde(rename = "firstTurretKilledTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_turret_killed_time: Option<f32>,
#[serde(rename = "flawlessAces")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub flawless_aces: Option<i32>,
#[serde(rename = "fullTeamTakedown")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub full_team_takedown: Option<i32>,
#[serde(rename = "gameLength")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_length: Option<f32>,
#[serde(rename = "getTakedownsInAllLanesEarlyJungleAsLaner")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub get_takedowns_in_all_lanes_early_jungle_as_laner: Option<i32>,
#[serde(rename = "goldPerMinute")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gold_per_minute: Option<f32>,
#[serde(rename = "hadOpenNexus")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub had_open_nexus: Option<i32>,
#[serde(rename = "immobilizeAndKillWithAlly")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub immobilize_and_kill_with_ally: Option<i32>,
#[serde(rename = "initialBuffCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub initial_buff_count: Option<i32>,
#[serde(rename = "initialCrabCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub initial_crab_count: Option<i32>,
#[serde(rename = "jungleCsBefore10Minutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jungle_cs_before10_minutes: Option<f32>,
#[serde(rename = "junglerTakedownsNearDamagedEpicMonster")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub jungler_takedowns_near_damaged_epic_monster: Option<i32>,
#[serde(rename = "kda")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kda: Option<f32>,
#[serde(rename = "killAfterHiddenWithAlly")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kill_after_hidden_with_ally: Option<i32>,
#[serde(rename = "killedChampTookFullTeamDamageSurvived")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub killed_champ_took_full_team_damage_survived: Option<i32>,
#[serde(rename = "killingSprees")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub killing_sprees: Option<i32>,
#[serde(rename = "killParticipation")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kill_participation: Option<f32>,
#[serde(rename = "killsNearEnemyTurret")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_near_enemy_turret: Option<i32>,
#[serde(rename = "killsOnOtherLanesEarlyJungleAsLaner")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_on_other_lanes_early_jungle_as_laner: Option<i32>,
#[serde(rename = "killsOnRecentlyHealedByAramPack")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_on_recently_healed_by_aram_pack: Option<i32>,
#[serde(rename = "killsUnderOwnTurret")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_under_own_turret: Option<i32>,
#[serde(rename = "killsWithHelpFromEpicMonster")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills_with_help_from_epic_monster: Option<i32>,
#[serde(rename = "knockEnemyIntoTeamAndKill")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub knock_enemy_into_team_and_kill: Option<i32>,
#[serde(rename = "kTurretsDestroyedBeforePlatesFall")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub k_turrets_destroyed_before_plates_fall: Option<i32>,
#[serde(rename = "landSkillShotsEarlyGame")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub land_skill_shots_early_game: Option<i32>,
#[serde(rename = "laneMinionsFirst10Minutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lane_minions_first10_minutes: Option<i32>,
#[serde(rename = "lostAnInhibitor")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lost_an_inhibitor: Option<i32>,
#[serde(rename = "maxKillDeficit")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_kill_deficit: Option<i32>,
#[serde(rename = "mejaisFullStackInTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mejais_full_stack_in_time: Option<i32>,
#[serde(rename = "moreEnemyJungleThanOpponent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub more_enemy_jungle_than_opponent: Option<f32>,
/// This is an offshoot of the OneStone challenge. The code checks if a spell with the same instance ID does the final point of damage to at least 2 Champions. It doesn't matter if they're enemies, but you cannot hurt your friends.
#[serde(rename = "multiKillOneSpell")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_kill_one_spell: Option<i32>,
#[serde(rename = "multikills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multikills: Option<i32>,
#[serde(rename = "multikillsAfterAggressiveFlash")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multikills_after_aggressive_flash: Option<i32>,
#[serde(rename = "multiTurretRiftHeraldCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_turret_rift_herald_count: Option<i32>,
#[serde(rename = "outerTurretExecutesBefore10Minutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outer_turret_executes_before10_minutes: Option<i32>,
#[serde(rename = "outnumberedKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outnumbered_kills: Option<i32>,
#[serde(rename = "outnumberedNexusKill")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub outnumbered_nexus_kill: Option<i32>,
#[serde(rename = "perfectDragonSoulsTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub perfect_dragon_souls_taken: Option<i32>,
#[serde(rename = "perfectGame")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub perfect_game: Option<i32>,
#[serde(rename = "pickKillWithAlly")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pick_kill_with_ally: Option<i32>,
#[serde(rename = "poroExplosions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub poro_explosions: Option<i32>,
#[serde(rename = "quickCleanse")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quick_cleanse: Option<i32>,
#[serde(rename = "quickFirstTurret")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quick_first_turret: Option<i32>,
#[serde(rename = "quickSoloKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quick_solo_kills: Option<i32>,
#[serde(rename = "riftHeraldTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rift_herald_takedowns: Option<i32>,
#[serde(rename = "saveAllyFromDeath")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub save_ally_from_death: Option<i32>,
#[serde(rename = "scuttleCrabKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scuttle_crab_kills: Option<i32>,
#[serde(rename = "shortestTimeToAceFromFirstTakedown")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shortest_time_to_ace_from_first_takedown: Option<f32>,
#[serde(rename = "skillshotsDodged")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skillshots_dodged: Option<i32>,
#[serde(rename = "skillshotsHit")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skillshots_hit: Option<i32>,
#[serde(rename = "snowballsHit")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub snowballs_hit: Option<i32>,
#[serde(rename = "soloBaronKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub solo_baron_kills: Option<i32>,
#[serde(rename = "SWARM_DefeatAatrox")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_defeat_aatrox: Option<i32>,
#[serde(rename = "SWARM_DefeatBriar")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_defeat_briar: Option<i32>,
#[serde(rename = "SWARM_DefeatMiniBosses")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_defeat_mini_bosses: Option<i32>,
#[serde(rename = "SWARM_EvolveWeapon")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_evolve_weapon: Option<i32>,
#[serde(rename = "SWARM_Have3Passives")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_have3_passives: Option<i32>,
#[serde(rename = "SWARM_KillEnemy")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_kill_enemy: Option<i32>,
#[serde(rename = "SWARM_PickupGold")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_pickup_gold: Option<f32>,
#[serde(rename = "SWARM_ReachLevel50")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_reach_level50: Option<i32>,
#[serde(rename = "SWARM_Survive15Min")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_survive15_min: Option<i32>,
#[serde(rename = "SWARM_WinWith5EvolvedWeapons")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub swarm_win_with5_evolved_weapons: Option<i32>,
#[serde(rename = "soloKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub solo_kills: Option<i32>,
#[serde(rename = "stealthWardsPlaced")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stealth_wards_placed: Option<i32>,
#[serde(rename = "survivedSingleDigitHpCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub survived_single_digit_hp_count: Option<i32>,
#[serde(rename = "survivedThreeImmobilizesInFight")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub survived_three_immobilizes_in_fight: Option<i32>,
#[serde(rename = "takedownOnFirstTurret")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedown_on_first_turret: Option<i32>,
#[serde(rename = "takedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns: Option<i32>,
#[serde(rename = "takedownsAfterGainingLevelAdvantage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_after_gaining_level_advantage: Option<i32>,
#[serde(rename = "takedownsBeforeJungleMinionSpawn")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_before_jungle_minion_spawn: Option<i32>,
#[serde(rename = "takedownsFirstXMinutes")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_first_x_minutes: Option<i32>,
#[serde(rename = "takedownsInAlcove")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_in_alcove: Option<i32>,
#[serde(rename = "takedownsInEnemyFountain")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub takedowns_in_enemy_fountain: Option<i32>,
#[serde(rename = "teamBaronKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_baron_kills: Option<i32>,
#[serde(rename = "teamDamagePercentage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_damage_percentage: Option<f32>,
#[serde(rename = "teamElderDragonKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_elder_dragon_kills: Option<i32>,
#[serde(rename = "teamRiftHeraldKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_rift_herald_kills: Option<i32>,
#[serde(rename = "tookLargeDamageSurvived")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub took_large_damage_survived: Option<i32>,
#[serde(rename = "turretPlatesTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turret_plates_taken: Option<i32>,
/// Any player who damages a tower that is destroyed within 30 seconds of a Rift Herald charge will receive credit. A player who does not damage the tower will not receive credit.
#[serde(rename = "turretsTakenWithRiftHerald")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turrets_taken_with_rift_herald: Option<i32>,
#[serde(rename = "turretTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub turret_takedowns: Option<i32>,
#[serde(rename = "twentyMinionsIn3SecondsCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub twenty_minions_in3_seconds_count: Option<i32>,
#[serde(rename = "twoWardsOneSweeperCount")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub two_wards_one_sweeper_count: Option<i32>,
#[serde(rename = "unseenRecalls")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unseen_recalls: Option<i32>,
#[serde(rename = "visionScorePerMinute")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vision_score_per_minute: Option<f32>,
#[serde(rename = "wardsGuarded")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wards_guarded: Option<i32>,
#[serde(rename = "wardTakedowns")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ward_takedowns: Option<i32>,
#[serde(rename = "wardTakedownsBefore20M")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ward_takedowns_before20_m: Option<i32>,
#[serde(rename = "HealFromMapSources")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub heal_from_map_sources: Option<f64>,
}
/// `match-v5.MissionsDto` data object.
/// # Description
/// Missions DTO
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Missions {
#[serde(rename = "playerScore0", alias = "PlayerScore0")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score0: Option<f32>,
#[serde(rename = "playerScore1", alias = "PlayerScore1")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score1: Option<f32>,
#[serde(rename = "playerScore2", alias = "PlayerScore2")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score2: Option<f32>,
#[serde(rename = "playerScore3", alias = "PlayerScore3")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score3: Option<f32>,
#[serde(rename = "playerScore4", alias = "PlayerScore4")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score4: Option<f32>,
#[serde(rename = "playerScore5", alias = "PlayerScore5")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score5: Option<f32>,
#[serde(rename = "playerScore6", alias = "PlayerScore6")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score6: Option<f32>,
#[serde(rename = "playerScore7", alias = "PlayerScore7")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score7: Option<f32>,
#[serde(rename = "playerScore8", alias = "PlayerScore8")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score8: Option<f32>,
#[serde(rename = "playerScore9", alias = "PlayerScore9")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score9: Option<f32>,
#[serde(rename = "playerScore10", alias = "PlayerScore10")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score10: Option<f32>,
#[serde(rename = "playerScore11", alias = "PlayerScore11")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score11: Option<f32>,
}
/// `match-v5.PerksDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Perks {
#[serde(rename = "statPerks")]
pub stat_perks: crate::models::match_v5::PerkStats,
#[serde(rename = "styles")]
pub styles: std::vec::Vec<crate::models::match_v5::PerkStyle>,
}
/// `match-v5.PerkStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PerkStats {
#[serde(rename = "defense")]
pub defense: i32,
#[serde(rename = "flex")]
pub flex: i32,
#[serde(rename = "offense")]
pub offense: i32,
}
/// `match-v5.PerkStyleDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PerkStyle {
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "selections")]
pub selections: std::vec::Vec<crate::models::match_v5::PerkStyleSelection>,
#[serde(rename = "style")]
pub style: i32,
}
/// `match-v5.PerkStyleSelectionDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PerkStyleSelection {
#[serde(rename = "perk")]
pub perk: i32,
#[serde(rename = "var1")]
pub var1: i32,
#[serde(rename = "var2")]
pub var2: i32,
#[serde(rename = "var3")]
pub var3: i32,
}
/// `match-v5.TeamDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Team {
#[serde(rename = "bans")]
pub bans: std::vec::Vec<crate::models::match_v5::Ban>,
#[serde(rename = "objectives")]
pub objectives: crate::models::match_v5::Objectives,
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
#[serde(rename = "win")]
pub win: bool,
#[serde(rename = "feats")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feats: Option<crate::models::match_v5::Feats>,
}
/// `match-v5.BanDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Ban {
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
#[serde(rename = "pickTurn")]
pub pick_turn: i32,
}
/// `match-v5.ObjectivesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Objectives {
#[serde(rename = "baron")]
pub baron: crate::models::match_v5::Objective,
#[serde(rename = "champion")]
pub champion: crate::models::match_v5::Objective,
#[serde(rename = "dragon")]
pub dragon: crate::models::match_v5::Objective,
#[serde(rename = "horde")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub horde: Option<crate::models::match_v5::Objective>,
#[serde(rename = "inhibitor")]
pub inhibitor: crate::models::match_v5::Objective,
#[serde(rename = "riftHerald")]
pub rift_herald: crate::models::match_v5::Objective,
#[serde(rename = "tower")]
pub tower: crate::models::match_v5::Objective,
#[serde(rename = "atakhan")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub atakhan: Option<crate::models::match_v5::Objective>,
}
/// `match-v5.ObjectiveDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Objective {
#[serde(rename = "first")]
pub first: bool,
#[serde(rename = "kills")]
pub kills: i32,
}
/// `match-v5.TimelineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Timeline {
/// Match metadata.
#[serde(rename = "metadata")]
pub metadata: crate::models::match_v5::MetadataTimeLine,
/// Match info.
#[serde(rename = "info")]
pub info: crate::models::match_v5::InfoTimeLine,
}
/// `match-v5.MetadataTimeLineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MetadataTimeLine {
/// Match data version.
#[serde(rename = "dataVersion")]
pub data_version: String,
/// Match id.
#[serde(rename = "matchId")]
pub match_id: String,
/// A list of participant PUUIDs.
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `match-v5.InfoTimeLineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct InfoTimeLine {
/// Refer to indicate if the game ended in termination.
#[serde(rename = "endOfGameResult")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_of_game_result: Option<String>,
#[serde(rename = "frameInterval")]
pub frame_interval: i64,
#[serde(rename = "gameId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_id: Option<i64>,
#[serde(rename = "participants")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub participants: Option<std::vec::Vec<crate::models::match_v5::ParticipantTimeLine>>,
#[serde(rename = "frames")]
pub frames: std::vec::Vec<crate::models::match_v5::FramesTimeLine>,
}
/// `match-v5.ParticipantTimeLineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ParticipantTimeLine {
#[serde(rename = "participantId")]
pub participant_id: i32,
#[serde(rename = "puuid")]
pub puuid: String,
}
/// `match-v5.FramesTimeLineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct FramesTimeLine {
#[serde(rename = "events")]
pub events: std::vec::Vec<crate::models::match_v5::EventsTimeLine>,
#[serde(rename = "participantFrames")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub participant_frames: Option<std::collections::HashMap<i32, crate::models::match_v5::ParticipantFrame>>,
#[serde(rename = "timestamp")]
pub timestamp: i32,
}
/// `match-v5.EventsTimeLineDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct EventsTimeLine {
#[serde(rename = "timestamp")]
pub timestamp: i64,
#[serde(rename = "realTimestamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub real_timestamp: Option<i64>,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "itemId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_id: Option<i32>,
#[serde(rename = "participantId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub participant_id: Option<i32>,
#[serde(rename = "levelUpType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level_up_type: Option<String>,
#[serde(rename = "skillSlot")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_slot: Option<i32>,
#[serde(rename = "creatorId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub creator_id: Option<i32>,
#[serde(rename = "wardType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ward_type: Option<String>,
#[serde(rename = "level")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub level: Option<i32>,
#[serde(rename = "assistingParticipantIds")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assisting_participant_ids: Option<std::vec::Vec<i32>>,
#[serde(rename = "bounty")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bounty: Option<i32>,
#[serde(rename = "killStreakLength")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kill_streak_length: Option<i32>,
#[serde(rename = "killerId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub killer_id: Option<i32>,
#[serde(rename = "position")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub position: Option<crate::models::match_v5::Position>,
#[serde(rename = "victimDamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub victim_damage_dealt: Option<std::vec::Vec<crate::models::match_v5::MatchTimelineVictimDamage>>,
#[serde(rename = "victimDamageReceived")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub victim_damage_received: Option<std::vec::Vec<crate::models::match_v5::MatchTimelineVictimDamage>>,
#[serde(rename = "victimId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub victim_id: Option<i32>,
#[serde(rename = "killType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kill_type: Option<String>,
#[serde(rename = "laneType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub lane_type: Option<String>,
#[serde(rename = "teamId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub team_id: Option<crate::consts::Team>,
#[serde(rename = "multiKillLength")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_kill_length: Option<i32>,
#[serde(rename = "killerTeamId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub killer_team_id: Option<crate::consts::Team>,
#[serde(rename = "monsterType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub monster_type: Option<String>,
#[serde(rename = "monsterSubType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub monster_sub_type: Option<String>,
#[serde(rename = "buildingType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub building_type: Option<String>,
#[serde(rename = "towerType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tower_type: Option<String>,
#[serde(rename = "afterId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub after_id: Option<i32>,
#[serde(rename = "beforeId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub before_id: Option<i32>,
#[serde(rename = "goldGain")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gold_gain: Option<i32>,
#[serde(rename = "gameId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_id: Option<i64>,
#[serde(rename = "winningTeam")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub winning_team: Option<i32>,
#[serde(rename = "transformType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub transform_type: Option<String>,
#[serde(rename = "name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "shutdownBounty")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shutdown_bounty: Option<i32>,
#[serde(rename = "actualStartTime")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub actual_start_time: Option<i64>,
#[serde(rename = "featType")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feat_type: Option<i32>,
#[serde(rename = "featValue")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feat_value: Option<i32>,
#[serde(rename = "victimTeamfightDamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub victim_teamfight_damage_dealt: Option<std::vec::Vec<crate::models::match_v5::MatchTimelineVictimDamage>>,
#[serde(rename = "victimTeamfightDamageReceived")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub victim_teamfight_damage_received: Option<std::vec::Vec<crate::models::match_v5::MatchTimelineVictimDamage>>,
}
/// `match-v5.ParticipantFramesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ParticipantFrames {
/// Key value mapping for each participant
#[serde(rename = "1-9")]
pub x1_9: crate::models::match_v5::ParticipantFrame,
}
/// `match-v5.ParticipantFrameDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ParticipantFrame {
#[serde(rename = "championStats")]
pub champion_stats: crate::models::match_v5::ChampionStats,
#[serde(rename = "currentGold")]
pub current_gold: i32,
#[serde(rename = "damageStats")]
pub damage_stats: crate::models::match_v5::DamageStats,
#[serde(rename = "goldPerSecond")]
pub gold_per_second: i32,
#[serde(rename = "jungleMinionsKilled")]
pub jungle_minions_killed: i32,
#[serde(rename = "level")]
pub level: i32,
#[serde(rename = "minionsKilled")]
pub minions_killed: i32,
#[serde(rename = "participantId")]
pub participant_id: i32,
#[serde(rename = "position")]
pub position: crate::models::match_v5::Position,
#[serde(rename = "timeEnemySpentControlled")]
pub time_enemy_spent_controlled: i32,
#[serde(rename = "totalGold")]
pub total_gold: i32,
#[serde(rename = "xp")]
pub xp: i32,
}
/// `match-v5.ChampionStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ChampionStats {
#[serde(rename = "abilityHaste")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability_haste: Option<i32>,
#[serde(rename = "abilityPower")]
pub ability_power: i32,
#[serde(rename = "armor")]
pub armor: i32,
#[serde(rename = "armorPen")]
pub armor_pen: i32,
#[serde(rename = "armorPenPercent")]
pub armor_pen_percent: i32,
#[serde(rename = "attackDamage")]
pub attack_damage: i32,
#[serde(rename = "attackSpeed")]
pub attack_speed: i32,
#[serde(rename = "bonusArmorPenPercent")]
pub bonus_armor_pen_percent: i32,
#[serde(rename = "bonusMagicPenPercent")]
pub bonus_magic_pen_percent: i32,
#[serde(rename = "ccReduction")]
pub cc_reduction: i32,
#[serde(rename = "cooldownReduction")]
pub cooldown_reduction: i32,
#[serde(rename = "health")]
pub health: i32,
#[serde(rename = "healthMax")]
pub health_max: i32,
#[serde(rename = "healthRegen")]
pub health_regen: i32,
#[serde(rename = "lifesteal")]
pub lifesteal: i32,
#[serde(rename = "magicPen")]
pub magic_pen: i32,
#[serde(rename = "magicPenPercent")]
pub magic_pen_percent: i32,
#[serde(rename = "magicResist")]
pub magic_resist: i32,
#[serde(rename = "movementSpeed")]
pub movement_speed: i32,
#[serde(rename = "omnivamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub omnivamp: Option<i32>,
#[serde(rename = "physicalVamp")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub physical_vamp: Option<i32>,
#[serde(rename = "power")]
pub power: i32,
#[serde(rename = "powerMax")]
pub power_max: i32,
#[serde(rename = "powerRegen")]
pub power_regen: i32,
#[serde(rename = "spellVamp")]
pub spell_vamp: i32,
}
/// `match-v5.DamageStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct DamageStats {
#[serde(rename = "magicDamageDone")]
pub magic_damage_done: i32,
#[serde(rename = "magicDamageDoneToChampions")]
pub magic_damage_done_to_champions: i32,
#[serde(rename = "magicDamageTaken")]
pub magic_damage_taken: i32,
#[serde(rename = "physicalDamageDone")]
pub physical_damage_done: i32,
#[serde(rename = "physicalDamageDoneToChampions")]
pub physical_damage_done_to_champions: i32,
#[serde(rename = "physicalDamageTaken")]
pub physical_damage_taken: i32,
#[serde(rename = "totalDamageDone")]
pub total_damage_done: i32,
#[serde(rename = "totalDamageDoneToChampions")]
pub total_damage_done_to_champions: i32,
#[serde(rename = "totalDamageTaken")]
pub total_damage_taken: i32,
#[serde(rename = "trueDamageDone")]
pub true_damage_done: i32,
#[serde(rename = "trueDamageDoneToChampions")]
pub true_damage_done_to_champions: i32,
#[serde(rename = "trueDamageTaken")]
pub true_damage_taken: i32,
}
/// `match-v5.PositionDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Position {
#[serde(rename = "x")]
pub x: i32,
#[serde(rename = "y")]
pub y: i32,
}
/// `match-v5.ParticipantPlayerBehaviorDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ParticipantPlayerBehavior {
#[serde(rename = "PlayerBehavior_IsHeroInCombat")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_behavior_is_hero_in_combat: Option<i32>,
}
/// `match-v5.FeatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Feats {
#[serde(rename = "EPIC_MONSTER_KILL")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub epic_monster_kill: Option<crate::models::match_v5::Feat>,
#[serde(rename = "FIRST_BLOOD")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_blood: Option<crate::models::match_v5::Feat>,
#[serde(rename = "FIRST_TURRET")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub first_turret: Option<crate::models::match_v5::Feat>,
}
/// `match-v5.MatchTimelineVictimDamage` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MatchTimelineVictimDamage {
#[serde(rename = "basic")]
pub basic: bool,
#[serde(rename = "magicDamage")]
pub magic_damage: i32,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "participantId")]
pub participant_id: i32,
#[serde(rename = "physicalDamage")]
pub physical_damage: i32,
#[serde(rename = "spellName")]
pub spell_name: String,
#[serde(rename = "spellSlot")]
pub spell_slot: i32,
#[serde(rename = "trueDamage")]
pub true_damage: i32,
#[serde(rename = "type")]
pub r#type: String,
}
/// `match-v5.FeatDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Feat {
#[serde(rename = "featState")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feat_state: Option<i32>,
}
}
/// Data structs used by [`RiftboundContentV1`](crate::endpoints::RiftboundContentV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod riftbound_content_v1 {
/// `riftbound-content-v1.RiftboundContentDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RiftboundContent {
/// Game Name
#[serde(rename = "game")]
pub game: String,
/// Content version
#[serde(rename = "version")]
pub version: String,
/// ISO Timestamp of content last update
#[serde(rename = "lastUpdated")]
pub last_updated: String,
#[serde(rename = "sets")]
pub sets: std::vec::Vec<crate::models::riftbound_content_v1::Set>,
}
/// `riftbound-content-v1.SetDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Set {
/// Set ID
#[serde(rename = "id")]
pub id: String,
/// Set Name
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "cards")]
pub cards: std::vec::Vec<crate::models::riftbound_content_v1::Card>,
}
/// `riftbound-content-v1.CardDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Card {
/// Card ID
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "collectorNumber")]
pub collector_number: i64,
#[serde(rename = "set")]
pub set: String,
/// Card Name
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "description")]
pub description: String,
/// Card Type
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "rarity")]
pub rarity: String,
#[serde(rename = "faction")]
pub faction: String,
#[serde(rename = "stats")]
pub stats: crate::models::riftbound_content_v1::CardStats,
#[serde(rename = "keywords")]
pub keywords: std::vec::Vec<String>,
#[serde(rename = "art")]
pub art: crate::models::riftbound_content_v1::CardArt,
#[serde(rename = "flavorText")]
pub flavor_text: String,
#[serde(rename = "tags")]
pub tags: std::vec::Vec<String>,
}
/// `riftbound-content-v1.CardStatsDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CardStats {
#[serde(rename = "energy")]
pub energy: i64,
#[serde(rename = "might")]
pub might: i64,
#[serde(rename = "cost")]
pub cost: i64,
#[serde(rename = "power")]
pub power: i64,
}
/// `riftbound-content-v1.CardArtDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CardArt {
#[serde(rename = "thumbnailURL")]
pub thumbnail_url: String,
#[serde(rename = "fullURL")]
pub full_url: String,
#[serde(rename = "artist")]
pub artist: String,
}
}
/// Data structs used by [`SpectatorTftV5`](crate::endpoints::SpectatorTftV5).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod spectator_tft_v5 {
/// `spectator-tft-v5.CurrentGameInfo` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CurrentGameInfo {
/// The ID of the game
#[serde(rename = "gameId")]
pub game_id: i64,
/// The game type
#[serde(rename = "gameType")]
pub game_type: crate::consts::GameType,
/// The game start time represented in epoch milliseconds
#[serde(rename = "gameStartTime")]
pub game_start_time: i64,
/// The ID of the map
#[serde(rename = "mapId")]
pub map_id: crate::consts::Map,
/// The amount of time in seconds that has passed since the game started
#[serde(rename = "gameLength")]
pub game_length: i64,
/// The ID of the platform on which the game is being played
#[serde(rename = "platformId")]
pub platform_id: String,
/// The game mode
#[serde(rename = "gameMode")]
pub game_mode: crate::consts::GameMode,
/// Banned champion information
#[serde(rename = "bannedChampions")]
pub banned_champions: std::vec::Vec<crate::models::spectator_tft_v5::BannedChampion>,
/// The queue type (queue types are documented on the Game Constants page)
#[serde(rename = "gameQueueConfigId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_queue_config_id: Option<crate::consts::Queue>,
/// The observer information
#[serde(rename = "observers")]
pub observers: crate::models::spectator_tft_v5::Observer,
/// The participant information
#[serde(rename = "participants")]
pub participants: std::vec::Vec<crate::models::spectator_tft_v5::CurrentGameParticipant>,
}
/// `spectator-tft-v5.BannedChampion` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct BannedChampion {
/// The turn during which the champion was banned
#[serde(rename = "pickTurn")]
pub pick_turn: i32,
/// The ID of the banned champion
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
/// The ID of the team that banned the champion
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
}
/// `spectator-tft-v5.Observer` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Observer {
/// Key used to decrypt the spectator grid game data for playback
#[serde(rename = "encryptionKey")]
pub encryption_key: String,
}
/// `spectator-tft-v5.CurrentGameParticipant` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CurrentGameParticipant {
/// The ID of the champion played by this participant
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
/// Perks/Runes Reforged Information
#[serde(rename = "perks")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub perks: Option<crate::models::spectator_tft_v5::Perks>,
/// The ID of the profile icon used by this participant
#[serde(rename = "profileIconId")]
pub profile_icon_id: i64,
/// The team ID of this participant, indicating the participant's team
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
/// The encrypted puuid of this participant. null when the player is anonym.
#[serde(rename = "puuid")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub puuid: Option<String>,
/// The ID of the first summoner spell used by this participant
#[serde(rename = "spell1Id")]
pub spell1_id: i64,
/// The ID of the second summoner spell used by this participant
#[serde(rename = "spell2Id")]
pub spell2_id: i64,
/// List of Game Customizations
#[serde(rename = "gameCustomizationObjects")]
pub game_customization_objects: std::vec::Vec<crate::models::spectator_tft_v5::GameCustomizationObject>,
#[serde(rename = "riotId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id: Option<String>,
}
/// `spectator-tft-v5.Perks` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Perks {
/// IDs of the perks/runes assigned.
#[serde(rename = "perkIds")]
pub perk_ids: std::vec::Vec<i64>,
/// Primary runes path
#[serde(rename = "perkStyle")]
pub perk_style: i64,
/// Secondary runes path
#[serde(rename = "perkSubStyle")]
pub perk_sub_style: i64,
}
/// `spectator-tft-v5.GameCustomizationObject` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct GameCustomizationObject {
/// Category identifier for Game Customization
#[serde(rename = "category")]
pub category: String,
/// Game Customization content
#[serde(rename = "content")]
pub content: String,
}
}
/// Data structs used by [`SpectatorV5`](crate::endpoints::SpectatorV5).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod spectator_v5 {
/// `spectator-v5.CurrentGameInfo` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CurrentGameInfo {
/// The ID of the game
#[serde(rename = "gameId")]
pub game_id: i64,
/// The game type
#[serde(rename = "gameType")]
pub game_type: crate::consts::GameType,
/// The game start time represented in epoch milliseconds
#[serde(rename = "gameStartTime")]
pub game_start_time: i64,
/// The ID of the map
#[serde(rename = "mapId")]
pub map_id: crate::consts::Map,
/// The amount of time in seconds that has passed since the game started
#[serde(rename = "gameLength")]
pub game_length: i64,
/// The ID of the platform on which the game is being played
#[serde(rename = "platformId")]
pub platform_id: String,
/// The game mode
#[serde(rename = "gameMode")]
pub game_mode: crate::consts::GameMode,
/// Banned champion information
#[serde(rename = "bannedChampions")]
pub banned_champions: std::vec::Vec<crate::models::spectator_v5::BannedChampion>,
/// The queue type (queue types are documented on the Game Constants page)
#[serde(rename = "gameQueueConfigId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_queue_config_id: Option<crate::consts::Queue>,
/// The observer information
#[serde(rename = "observers")]
pub observers: crate::models::spectator_v5::Observer,
/// The participant information
#[serde(rename = "participants")]
pub participants: std::vec::Vec<crate::models::spectator_v5::CurrentGameParticipant>,
}
/// `spectator-v5.BannedChampion` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct BannedChampion {
/// The turn during which the champion was banned
#[serde(rename = "pickTurn")]
pub pick_turn: i32,
/// The ID of the banned champion
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
/// The ID of the team that banned the champion
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
}
/// `spectator-v5.Observer` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Observer {
/// Key used to decrypt the spectator grid game data for playback
#[serde(rename = "encryptionKey")]
pub encryption_key: String,
}
/// `spectator-v5.CurrentGameParticipant` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct CurrentGameParticipant {
/// The ID of the champion played by this participant
#[serde(rename = "championId")]
pub champion_id: crate::consts::Champion,
/// Perks/Runes Reforged Information
#[serde(rename = "perks")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub perks: Option<crate::models::spectator_v5::Perks>,
/// The ID of the profile icon used by this participant
#[serde(rename = "profileIconId")]
pub profile_icon_id: i64,
/// Flag indicating whether or not this participant is a bot
#[serde(rename = "bot")]
pub bot: bool,
/// The team ID of this participant, indicating the participant's team
#[serde(rename = "teamId")]
pub team_id: crate::consts::Team,
/// The encrypted puuid of this participant. null when the player is anonym.
#[serde(rename = "puuid")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub puuid: Option<String>,
/// The ID of the first summoner spell used by this participant
#[serde(rename = "spell1Id")]
pub spell1_id: i64,
/// The ID of the second summoner spell used by this participant
#[serde(rename = "spell2Id")]
pub spell2_id: i64,
/// List of Game Customizations
#[serde(rename = "gameCustomizationObjects")]
pub game_customization_objects: std::vec::Vec<crate::models::spectator_v5::GameCustomizationObject>,
#[serde(rename = "riotId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id: Option<String>,
}
/// `spectator-v5.Perks` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Perks {
/// IDs of the perks/runes assigned.
#[serde(rename = "perkIds")]
pub perk_ids: std::vec::Vec<i64>,
/// Primary runes path
#[serde(rename = "perkStyle")]
pub perk_style: i64,
/// Secondary runes path
#[serde(rename = "perkSubStyle")]
pub perk_sub_style: i64,
}
/// `spectator-v5.GameCustomizationObject` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct GameCustomizationObject {
/// Category identifier for Game Customization
#[serde(rename = "category")]
pub category: String,
/// Game Customization content
#[serde(rename = "content")]
pub content: String,
}
}
/// Data structs used by [`SummonerV4`](crate::endpoints::SummonerV4).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod summoner_v4 {
/// `summoner-v4.SummonerDTO` data object.
/// # Description
/// represents a summoner
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Summoner {
/// ID of the summoner icon associated with the summoner.
#[serde(rename = "profileIconId")]
pub profile_icon_id: i32,
/// Date summoner was last modified specified as epoch milliseconds. The following events will update this timestamp: profile icon change, playing the tutorial or advanced tutorial, finishing a game, summoner name change.
#[serde(rename = "revisionDate")]
pub revision_date: i64,
/// Encrypted PUUID. Exact length of 78 characters.
#[serde(rename = "puuid")]
pub puuid: String,
/// Summoner level associated with the summoner.
#[serde(rename = "summonerLevel")]
pub summoner_level: i64,
/// Encrypted summoner ID. This field is deprecated and will be removed. Use `puuid` instead.
#[serde(rename = "id")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
}
/// Data structs used by [`TftLeagueV1`](crate::endpoints::TftLeagueV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tft_league_v1 {
/// `tft-league-v1.LeagueEntryDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueEntry {
/// Player Universal Unique Identifier. Exact length of 78 characters. (Encrypted)
#[serde(rename = "puuid")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub puuid: Option<String>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "leagueId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub league_id: Option<String>,
#[serde(rename = "queueType")]
pub queue_type: crate::consts::QueueType,
/// Only included for the RANKED_TFT_TURBO queueType.<br>
/// (Legal values: ORANGE, PURPLE, BLUE, GREEN, GRAY)
#[serde(rename = "ratedTier")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rated_tier: Option<String>,
/// Only included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "ratedRating")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rated_rating: Option<i32>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "tier")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier: Option<crate::consts::Tier>,
/// The player's division within a tier. Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "rank")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rank: Option<crate::consts::Division>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "leaguePoints")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub league_points: Option<i32>,
/// First placement.
#[serde(rename = "wins")]
pub wins: i32,
/// Second through eighth placement.
#[serde(rename = "losses")]
pub losses: i32,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "hotStreak")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hot_streak: Option<bool>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "veteran")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub veteran: Option<bool>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "freshBlood")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub fresh_blood: Option<bool>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "inactive")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inactive: Option<bool>,
/// Not included for the RANKED_TFT_TURBO queueType.
#[serde(rename = "miniSeries")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mini_series: Option<crate::models::tft_league_v1::MiniSeries>,
}
/// `tft-league-v1.MiniSeriesDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MiniSeries {
#[serde(rename = "losses")]
pub losses: i32,
#[serde(rename = "progress")]
pub progress: String,
#[serde(rename = "target")]
pub target: i32,
#[serde(rename = "wins")]
pub wins: i32,
}
/// `tft-league-v1.LeagueListDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueList {
#[serde(rename = "leagueId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub league_id: Option<String>,
#[serde(rename = "entries")]
pub entries: std::vec::Vec<crate::models::tft_league_v1::LeagueItem>,
#[serde(rename = "tier")]
pub tier: crate::consts::Tier,
#[serde(rename = "name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "queue")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue: Option<crate::consts::QueueType>,
}
/// `tft-league-v1.LeagueItemDTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LeagueItem {
#[serde(rename = "freshBlood")]
pub fresh_blood: bool,
/// First placement.
#[serde(rename = "wins")]
pub wins: i32,
#[serde(rename = "miniSeries")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mini_series: Option<crate::models::tft_league_v1::MiniSeries>,
#[serde(rename = "inactive")]
pub inactive: bool,
#[serde(rename = "veteran")]
pub veteran: bool,
#[serde(rename = "hotStreak")]
pub hot_streak: bool,
#[serde(rename = "rank")]
pub rank: crate::consts::Division,
#[serde(rename = "leaguePoints")]
pub league_points: i32,
/// Second through eighth placement.
#[serde(rename = "losses")]
pub losses: i32,
/// Player's encrypted puuid.
#[serde(rename = "puuid")]
pub puuid: String,
}
/// `tft-league-v1.TopRatedLadderEntryDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TopRatedLadderEntry {
/// Player's encrypted puuid.
#[serde(rename = "puuid")]
pub puuid: String,
/// (Legal values: ORANGE, PURPLE, BLUE, GREEN, GRAY)
#[serde(rename = "ratedTier")]
pub rated_tier: String,
#[serde(rename = "ratedRating")]
pub rated_rating: i32,
/// First placement.
#[serde(rename = "wins")]
pub wins: i32,
#[serde(rename = "previousUpdateLadderPosition")]
pub previous_update_ladder_position: i32,
}
}
/// Data structs used by [`TftMatchV1`](crate::endpoints::TftMatchV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tft_match_v1 {
/// `tft-match-v1.MatchDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
/// Match metadata.
#[serde(rename = "metadata")]
pub metadata: crate::models::tft_match_v1::Metadata,
/// Match info.
#[serde(rename = "info")]
pub info: crate::models::tft_match_v1::Info,
}
/// `tft-match-v1.MetadataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Metadata {
/// Match data version.
#[serde(rename = "data_version")]
pub data_version: String,
/// Match id.
#[serde(rename = "match_id")]
pub match_id: String,
/// A list of participant PUUIDs.
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `tft-match-v1.InfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Info {
#[serde(rename = "endOfGameResult")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_of_game_result: Option<String>,
#[serde(rename = "gameCreation")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_creation: Option<i64>,
#[serde(rename = "gameId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_id: Option<i64>,
/// Unix timestamp.
#[serde(rename = "game_datetime")]
pub game_datetime: i64,
/// Game length in seconds.
#[serde(rename = "game_length")]
pub game_length: f32,
/// Game client version.
#[serde(rename = "game_version")]
pub game_version: String,
/// Deprecated. Game variation key. Game variations documented in TFT static data.
#[serde(rename = "game_variation")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_variation: Option<String>,
#[serde(rename = "mapId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub map_id: Option<i64>,
#[serde(rename = "participants")]
pub participants: std::vec::Vec<crate::models::tft_match_v1::Participant>,
/// Please refer to the League of Legends documentation.
#[serde(rename = "queue_id")]
pub queue_id: crate::consts::Queue,
/// Please refer to the League of Legends documentation.
#[serde(rename = "queueId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub queue_id_: Option<crate::consts::Queue>,
#[serde(rename = "tft_game_type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tft_game_type: Option<String>,
#[serde(rename = "tft_set_core_name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tft_set_core_name: Option<String>,
/// Teamfight Tactics set number.
#[serde(rename = "tft_set_number")]
pub tft_set_number: i32,
}
/// `tft-match-v1.ParticipantDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Participant {
/// Participant's companion.
#[serde(rename = "companion")]
pub companion: crate::models::tft_match_v1::Companion,
/// Gold left after participant was eliminated.
#[serde(rename = "gold_left")]
pub gold_left: i32,
/// The round the participant was eliminated in. Note: If the player was eliminated in stage 2-1 their last_round would be 5.
#[serde(rename = "last_round")]
pub last_round: i32,
/// Participant Little Legend level. Note: This is not the number of active units.
#[serde(rename = "level")]
pub level: i32,
/// Participant placement upon elimination.
#[serde(rename = "placement")]
pub placement: i32,
/// Number of players the participant eliminated.
#[serde(rename = "players_eliminated")]
pub players_eliminated: i32,
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "riotIdGameName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id_game_name: Option<String>,
#[serde(rename = "riotIdTagline")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub riot_id_tagline: Option<String>,
/// The number of seconds before the participant was eliminated.
#[serde(rename = "time_eliminated")]
pub time_eliminated: f32,
/// Damage the participant dealt to other players.
#[serde(rename = "total_damage_to_players")]
pub total_damage_to_players: i32,
/// A complete list of traits for the participant's active units.
#[serde(rename = "traits")]
pub traits: std::vec::Vec<crate::models::tft_match_v1::Trait>,
/// A list of active units for the participant.
#[serde(rename = "units")]
pub units: std::vec::Vec<crate::models::tft_match_v1::Unit>,
#[serde(rename = "win")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub win: Option<bool>,
#[serde(rename = "augments")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub augments: Option<std::vec::Vec<String>>,
#[serde(rename = "partner_group_id")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partner_group_id: Option<i32>,
#[serde(rename = "missions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub missions: Option<crate::models::tft_match_v1::ParticipantMissions>,
#[serde(rename = "skill_tree")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub skill_tree: Option<std::collections::HashMap<String, i32>>,
#[serde(rename = "pve_score")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pve_score: Option<i32>,
#[serde(rename = "pve_wonrun")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub pve_wonrun: Option<bool>,
}
/// `tft-match-v1.CompanionDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Companion {
#[serde(rename = "content_ID")]
pub content_id: String,
#[serde(rename = "item_ID")]
pub item_id: i32,
#[serde(rename = "skin_ID")]
pub skin_id: i32,
#[serde(rename = "species")]
pub species: String,
}
/// `tft-match-v1.TraitDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Trait {
/// Trait name.
#[serde(rename = "name")]
pub name: String,
/// Number of units with this trait.
#[serde(rename = "num_units")]
pub num_units: i32,
/// Current style for this trait. (0 = No style, 1 = Bronze, 2 = Silver, 3 = Gold, 4 = Chromatic)
#[serde(rename = "style")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub style: Option<i32>,
/// Current active tier for the trait.
#[serde(rename = "tier_current")]
pub tier_current: i32,
/// Total tiers for the trait.
#[serde(rename = "tier_total")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier_total: Option<i32>,
}
/// `tft-match-v1.UnitDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Unit {
/// A list of the unit's items. Please refer to the Teamfight Tactics documentation for item ids.
#[serde(rename = "items")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub items: Option<std::vec::Vec<i32>>,
/// This field was introduced in patch 9.22 with data_version 2.
#[serde(rename = "character_id")]
pub character_id: String,
#[serde(rename = "itemNames")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item_names: Option<std::vec::Vec<String>>,
/// If a unit is chosen as part of the Fates set mechanic, the chosen trait will be indicated by this field. Otherwise this field is excluded from the response.
#[serde(rename = "chosen")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub chosen: Option<String>,
/// Unit name. This field is often left blank.
#[serde(rename = "name")]
pub name: String,
/// Unit rarity. This doesn't equate to the unit cost.
#[serde(rename = "rarity")]
pub rarity: i32,
/// Unit tier.
#[serde(rename = "tier")]
pub tier: i32,
}
/// `tft-match-v1.ParticipantMissionsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ParticipantMissions {
#[serde(rename = "Assists")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub assists: Option<i32>,
#[serde(rename = "DamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_dealt: Option<i32>,
#[serde(rename = "DamageDealtToObjectives")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_dealt_to_objectives: Option<i32>,
#[serde(rename = "DamageDealtToTurrets")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_dealt_to_turrets: Option<i32>,
#[serde(rename = "DamageTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub damage_taken: Option<i32>,
#[serde(rename = "DoubleKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub double_kills: Option<i32>,
#[serde(rename = "GoldEarned")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gold_earned: Option<i32>,
#[serde(rename = "GoldSpent")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub gold_spent: Option<i32>,
#[serde(rename = "InhibitorsDestroyed")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub inhibitors_destroyed: Option<i32>,
#[serde(rename = "Kills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kills: Option<i32>,
#[serde(rename = "LargestKillingSpree")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub largest_killing_spree: Option<i32>,
#[serde(rename = "LargestMultiKill")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub largest_multi_kill: Option<i32>,
#[serde(rename = "MagicDamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub magic_damage_dealt: Option<i32>,
#[serde(rename = "MagicDamageDealtToChampions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub magic_damage_dealt_to_champions: Option<i32>,
#[serde(rename = "NeutralMinionsKilledTeamJungle")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub neutral_minions_killed_team_jungle: Option<i32>,
#[serde(rename = "PhysicalDamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub physical_damage_dealt: Option<i32>,
#[serde(rename = "PhysicalDamageTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub physical_damage_taken: Option<i32>,
#[serde(rename = "PlayerScore0")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score0: Option<i32>,
#[serde(rename = "PlayerScore1")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score1: Option<i32>,
#[serde(rename = "PlayerScore2")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score2: Option<i32>,
#[serde(rename = "PlayerScore3")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score3: Option<i32>,
#[serde(rename = "PlayerScore4")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score4: Option<i32>,
#[serde(rename = "PlayerScore5")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score5: Option<i32>,
#[serde(rename = "PlayerScore6")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score6: Option<i32>,
#[serde(rename = "PlayerScore9")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score9: Option<i32>,
#[serde(rename = "PlayerScore10")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score10: Option<i32>,
#[serde(rename = "PlayerScore11")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub player_score11: Option<i32>,
#[serde(rename = "QuadraKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub quadra_kills: Option<i32>,
#[serde(rename = "Spell1Casts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spell1_casts: Option<i32>,
#[serde(rename = "Spell2Casts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spell2_casts: Option<i32>,
#[serde(rename = "Spell3Casts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spell3_casts: Option<i32>,
#[serde(rename = "Spell4Casts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub spell4_casts: Option<i32>,
#[serde(rename = "SummonerSpell1Casts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub summoner_spell1_casts: Option<i32>,
#[serde(rename = "TimeCCOthers")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub time_cc_others: Option<i32>,
#[serde(rename = "TotalMinionsKilled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_minions_killed: Option<i32>,
#[serde(rename = "TrueDamageDealtToChampions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub true_damage_dealt_to_champions: Option<i32>,
#[serde(rename = "UnrealKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unreal_kills: Option<i32>,
#[serde(rename = "VisionScore")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vision_score: Option<i32>,
#[serde(rename = "WardsKilled")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub wards_killed: Option<i32>,
#[serde(rename = "Deaths")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub deaths: Option<i32>,
#[serde(rename = "KillingSprees")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub killing_sprees: Option<i32>,
#[serde(rename = "MagicDamageTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub magic_damage_taken: Option<i32>,
#[serde(rename = "PentaKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub penta_kills: Option<i32>,
#[serde(rename = "PhysicalDamageDealtToChampions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub physical_damage_dealt_to_champions: Option<i32>,
#[serde(rename = "TotalDamageDealtToChampions")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_damage_dealt_to_champions: Option<i32>,
#[serde(rename = "TripleKills")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub triple_kills: Option<i32>,
#[serde(rename = "TrueDamageDealt")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub true_damage_dealt: Option<i32>,
#[serde(rename = "TrueDamageTaken")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub true_damage_taken: Option<i32>,
}
}
/// Data structs used by [`TftStatusV1`](crate::endpoints::TftStatusV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tft_status_v1 {
/// `tft-status-v1.PlatformDataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlatformData {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "locales")]
pub locales: std::vec::Vec<String>,
#[serde(rename = "maintenances")]
pub maintenances: std::vec::Vec<crate::models::tft_status_v1::Status>,
#[serde(rename = "incidents")]
pub incidents: std::vec::Vec<crate::models::tft_status_v1::Status>,
}
/// `tft-status-v1.StatusDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Status {
#[serde(rename = "id")]
pub id: i32,
/// (Legal values: scheduled, in_progress, complete)
#[serde(rename = "maintenance_status")]
pub maintenance_status: String,
/// (Legal values: info, warning, critical)
#[serde(rename = "incident_severity")]
pub incident_severity: String,
#[serde(rename = "titles")]
pub titles: std::vec::Vec<crate::models::tft_status_v1::Content>,
#[serde(rename = "updates")]
pub updates: std::vec::Vec<crate::models::tft_status_v1::Update>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "archive_at")]
pub archive_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
/// (Legal values: windows, macos, android, ios, ps4, xbone, switch)
#[serde(rename = "platforms")]
pub platforms: std::vec::Vec<String>,
}
/// `tft-status-v1.ContentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Content {
#[serde(rename = "locale")]
pub locale: String,
#[serde(rename = "content")]
pub content: String,
}
/// `tft-status-v1.UpdateDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Update {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "author")]
pub author: String,
#[serde(rename = "publish")]
pub publish: bool,
/// (Legal values: riotclient, riotstatus, game)
#[serde(rename = "publish_locations")]
pub publish_locations: std::vec::Vec<String>,
#[serde(rename = "translations")]
pub translations: std::vec::Vec<crate::models::tft_status_v1::Content>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
}
/// Data structs used by [`TftSummonerV1`](crate::endpoints::TftSummonerV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tft_summoner_v1 {
/// `tft-summoner-v1.SummonerDTO` data object.
/// # Description
/// represents a summoner
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Summoner {
/// Encrypted PUUID. Exact length of 78 characters.
#[serde(rename = "puuid")]
pub puuid: String,
/// ID of the summoner icon associated with the summoner.
#[serde(rename = "profileIconId")]
pub profile_icon_id: i32,
/// Date summoner was last modified specified as epoch milliseconds. The following events will update this timestamp: profile icon change, playing the tutorial or advanced tutorial, finishing a game, summoner name change.
#[serde(rename = "revisionDate")]
pub revision_date: i64,
/// Summoner level associated with the summoner.
#[serde(rename = "summonerLevel")]
pub summoner_level: i64,
/// Encrypted summoner ID. This field is deprecated and will be removed. Use `puuid` instead.
#[serde(rename = "id")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
}
/// Data structs used by [`TournamentStubV5`](crate::endpoints::TournamentStubV5).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tournament_stub_v5 {
/// `tournament-stub-v5.TournamentCodeParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentCodeParametersV5 {
/// Optional list of encrypted puuids in order to validate the players eligible to join the lobby. NOTE: We currently do not enforce participants at the team level, but rather the aggregate of teamOne and teamTwo. We may add the ability to enforce at the team level in the future.
#[serde(rename = "allowedParticipants")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_participants: Option<std::vec::Vec<String>>,
/// Optional string that may contain any data in any format, if specified at all. Used to denote any custom information about the game.
#[serde(rename = "metadata")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<String>,
/// The team size of the game. Valid values are 1-5.
#[serde(rename = "teamSize")]
pub team_size: i32,
/// The pick type of the game.<br>
/// (Legal values: BLIND_PICK, DRAFT_MODE, ALL_RANDOM, TOURNAMENT_DRAFT)
#[serde(rename = "pickType")]
pub pick_type: String,
/// The map type of the game.<br>
/// (Legal values: SUMMONERS_RIFT, HOWLING_ABYSS)
#[serde(rename = "mapType")]
pub map_type: String,
/// The spectator type of the game.<br>
/// (Legal values: NONE, LOBBYONLY, ALL)
#[serde(rename = "spectatorType")]
pub spectator_type: String,
/// Checks if allowed participants are enough to make full teams.
#[serde(rename = "enoughPlayers")]
pub enough_players: bool,
}
/// `tournament-stub-v5.TournamentCodeV5DTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentCodeV5 {
/// The tournament code.
#[serde(rename = "code")]
pub code: String,
/// The lobby name for the tournament code game.
#[serde(rename = "lobbyName")]
pub lobby_name: String,
/// The metadata for tournament code.
#[serde(rename = "metaData")]
pub meta_data: String,
/// The password for the tournament code game.
#[serde(rename = "password")]
pub password: String,
/// The team size for the tournament code game.
#[serde(rename = "teamSize")]
pub team_size: i32,
/// The provider's ID.
#[serde(rename = "providerId")]
pub provider_id: i32,
/// The pick mode for tournament code game.
#[serde(rename = "pickType")]
pub pick_type: String,
/// The tournament's ID.
#[serde(rename = "tournamentId")]
pub tournament_id: i32,
/// The tournament code's ID.
#[serde(rename = "id")]
pub id: i32,
/// The tournament code's region.<br>
/// (Legal values: BR, EUNE, EUW, JP, LAN, LAS, NA, OCE, PBE, RU, TR, KR)
#[serde(rename = "region")]
pub region: crate::consts::TournamentRegion,
/// The game map for the tournament code game
#[serde(rename = "map")]
pub map: String,
/// The puuids of the participants (Encrypted)
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `tournament-stub-v5.LobbyEventV5DTOWrapper` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LobbyEventV5Wrapper {
#[serde(rename = "eventList")]
pub event_list: std::vec::Vec<crate::models::tournament_stub_v5::LobbyEventV5>,
}
/// `tournament-stub-v5.LobbyEventV5DTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LobbyEventV5 {
/// Timestamp from the event
#[serde(rename = "timestamp")]
pub timestamp: String,
/// The type of event that was triggered
#[serde(rename = "eventType")]
pub event_type: String,
/// The puuid that triggered the event (Encrypted)
#[serde(rename = "puuid")]
pub puuid: String,
}
/// `tournament-stub-v5.ProviderRegistrationParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ProviderRegistrationParametersV5 {
/// The region in which the provider will be running tournaments.<br>
/// (Legal values: BR, EUNE, EUW, JP, LAN, LAS, NA, OCE, PBE, RU, TR, KR)
#[serde(rename = "region")]
pub region: crate::consts::TournamentRegion,
/// The provider's callback URL to which tournament game results in this region should be posted. The URL must be well-formed, use the http or https protocol, and use the default port for the protocol (http URLs must use port 80, https URLs must use port 443).
#[serde(rename = "url")]
pub url: String,
}
/// `tournament-stub-v5.TournamentRegistrationParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentRegistrationParametersV5 {
/// The provider ID to specify the regional registered provider data to associate this tournament.
#[serde(rename = "providerId")]
pub provider_id: i32,
/// The optional name of the tournament.
#[serde(rename = "name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
}
/// Data structs used by [`TournamentV5`](crate::endpoints::TournamentV5).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod tournament_v5 {
/// `tournament-v5.TournamentCodeParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentCodeParametersV5 {
/// Optional list of encrypted puuids in order to validate the players eligible to join the lobby. NOTE: We currently do not enforce participants at the team level, but rather the aggregate of teamOne and teamTwo. We may add the ability to enforce at the team level in the future.
#[serde(rename = "allowedParticipants")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_participants: Option<std::vec::Vec<String>>,
/// Optional string that may contain any data in any format, if specified at all. Used to denote any custom information about the game.
#[serde(rename = "metadata")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub metadata: Option<String>,
/// The team size of the game. Valid values are 1-5.
#[serde(rename = "teamSize")]
pub team_size: i32,
/// The pick type of the game.<br>
/// (Legal values: BLIND_PICK, DRAFT_MODE, ALL_RANDOM, TOURNAMENT_DRAFT)
#[serde(rename = "pickType")]
pub pick_type: String,
/// The map type of the game.<br>
/// (Legal values: SUMMONERS_RIFT, HOWLING_ABYSS)
#[serde(rename = "mapType")]
pub map_type: String,
/// The spectator type of the game.<br>
/// (Legal values: NONE, LOBBYONLY, ALL)
#[serde(rename = "spectatorType")]
pub spectator_type: String,
/// Checks if allowed participants are enough to make full teams.
#[serde(rename = "enoughPlayers")]
pub enough_players: bool,
}
/// `tournament-v5.TournamentCodeV5DTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentCodeV5 {
/// The tournament code's ID.
#[serde(rename = "id")]
pub id: i32,
/// The provider's ID.
#[serde(rename = "providerId")]
pub provider_id: i32,
/// The tournament's ID.
#[serde(rename = "tournamentId")]
pub tournament_id: i32,
/// The tournament code.
#[serde(rename = "code")]
pub code: String,
/// The tournament code's region.<br>
/// (Legal values: BR, EUNE, EUW, JP, LAN, LAS, NA, OCE, PBE, RU, TR, KR, PH, SG, TH, TW, VN)
#[serde(rename = "region")]
pub region: crate::consts::TournamentRegion,
/// The game map for the tournament code game
#[serde(rename = "map")]
pub map: String,
/// The team size for the tournament code game.
#[serde(rename = "teamSize")]
pub team_size: i32,
/// The spectator mode for the tournament code game.
#[serde(rename = "spectators")]
pub spectators: String,
/// The pick mode for tournament code game.
#[serde(rename = "pickType")]
pub pick_type: String,
/// The lobby name for the tournament code game.
#[serde(rename = "lobbyName")]
pub lobby_name: String,
/// The password for the tournament code game.
#[serde(rename = "password")]
pub password: String,
/// The metadata for tournament code.
#[serde(rename = "metaData")]
pub meta_data: String,
/// The puuids of the participants (Encrypted)
#[serde(rename = "participants")]
pub participants: std::vec::Vec<String>,
}
/// `tournament-v5.TournamentCodeUpdateParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentCodeUpdateParametersV5 {
/// Optional list of encrypted puuids in order to validate the players eligible to join the lobby. NOTE: We currently do not enforce participants at the team level, but rather the aggregate of teamOne and teamTwo. We may add the ability to enforce at the team level in the future.
#[serde(rename = "allowedParticipants")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowed_participants: Option<std::vec::Vec<String>>,
/// The pick type<br>
/// (Legal values: BLIND_PICK, DRAFT_MODE, ALL_RANDOM, TOURNAMENT_DRAFT)
#[serde(rename = "pickType")]
pub pick_type: String,
/// The map type<br>
/// (Legal values: SUMMONERS_RIFT, HOWLING_ABYSS)
#[serde(rename = "mapType")]
pub map_type: String,
/// The spectator type<br>
/// (Legal values: NONE, LOBBYONLY, ALL)
#[serde(rename = "spectatorType")]
pub spectator_type: String,
}
/// `tournament-v5.TournamentGamesV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentGamesV5 {
#[serde(rename = "startTime")]
pub start_time: i64,
#[serde(rename = "winningTeam")]
pub winning_team: std::vec::Vec<crate::models::tournament_v5::TournamentTeamV5>,
#[serde(rename = "losingTeam")]
pub losing_team: std::vec::Vec<crate::models::tournament_v5::TournamentTeamV5>,
/// Tournament Code
#[serde(rename = "shortCode")]
pub short_code: String,
/// Metadata for the TournamentCode
#[serde(rename = "metaData")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub meta_data: Option<String>,
#[serde(rename = "gameId")]
pub game_id: i64,
#[serde(rename = "gameName")]
pub game_name: String,
#[serde(rename = "gameType")]
pub game_type: String,
/// Game Map ID
#[serde(rename = "gameMap")]
pub game_map: i32,
#[serde(rename = "gameMode")]
pub game_mode: String,
/// Region of the game
#[serde(rename = "region")]
pub region: crate::consts::TournamentRegion,
}
/// `tournament-v5.TournamentTeamV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentTeamV5 {
/// Player Unique UUID (Encrypted)
#[serde(rename = "puuid")]
pub puuid: String,
}
/// `tournament-v5.LobbyEventV5DTOWrapper` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LobbyEventV5Wrapper {
#[serde(rename = "eventList")]
pub event_list: std::vec::Vec<crate::models::tournament_v5::LobbyEventV5>,
}
/// `tournament-v5.LobbyEventV5DTO` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LobbyEventV5 {
/// Timestamp from the event
#[serde(rename = "timestamp")]
pub timestamp: String,
/// The type of event that was triggered
#[serde(rename = "eventType")]
pub event_type: String,
/// The puuid that triggered the event (Encrypted)
#[serde(rename = "puuid")]
pub puuid: String,
}
/// `tournament-v5.ProviderRegistrationParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ProviderRegistrationParametersV5 {
/// The region in which the provider will be running tournaments.<br>
/// (Legal values: BR, EUNE, EUW, JP, LAN, LAS, NA, OCE, PBE, RU, TR, KR, PH, SG, TH, TW, VN)
#[serde(rename = "region")]
pub region: crate::consts::TournamentRegion,
/// The provider's callback URL to which tournament game results in this region should be posted. The URL must be well-formed, use the http or https protocol, and use the default port for the protocol (http URLs must use port 80, https URLs must use port 443).
#[serde(rename = "url")]
pub url: String,
}
/// `tournament-v5.TournamentRegistrationParametersV5` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TournamentRegistrationParametersV5 {
/// The provider ID to specify the regional registered provider data to associate this tournament.
#[serde(rename = "providerId")]
pub provider_id: i32,
/// The optional name of the tournament.
#[serde(rename = "name")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
}
/// Data structs used by [`ValConsoleMatchV1`](crate::endpoints::ValConsoleMatchV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_console_match_v1 {
/// `val-console-match-v1.MatchDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
#[serde(rename = "matchInfo")]
pub match_info: crate::models::val_console_match_v1::MatchInfo,
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::val_console_match_v1::Player>,
#[serde(rename = "coaches")]
pub coaches: std::vec::Vec<crate::models::val_console_match_v1::Coach>,
#[serde(rename = "teams")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub teams: Option<std::vec::Vec<crate::models::val_console_match_v1::Team>>,
#[serde(rename = "roundResults")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub round_results: Option<std::vec::Vec<crate::models::val_console_match_v1::RoundResult>>,
}
/// `val-console-match-v1.MatchInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MatchInfo {
#[serde(rename = "matchId")]
pub match_id: String,
#[serde(rename = "mapId")]
pub map_id: String,
#[serde(rename = "gameLengthMillis")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_length_millis: Option<i32>,
#[serde(rename = "gameStartMillis")]
pub game_start_millis: i64,
#[serde(rename = "provisioningFlowId")]
pub provisioning_flow_id: String,
#[serde(rename = "isCompleted")]
pub is_completed: bool,
#[serde(rename = "customGameName")]
pub custom_game_name: String,
#[serde(rename = "queueId")]
pub queue_id: String,
#[serde(rename = "gameMode")]
pub game_mode: String,
#[serde(rename = "isRanked")]
pub is_ranked: bool,
#[serde(rename = "seasonId")]
pub season_id: String,
}
/// `val-console-match-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "gameName")]
pub game_name: String,
#[serde(rename = "tagLine")]
pub tag_line: String,
#[serde(rename = "teamId")]
pub team_id: String,
#[serde(rename = "partyId")]
pub party_id: String,
#[serde(rename = "characterId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub character_id: Option<String>,
#[serde(rename = "stats")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stats: Option<crate::models::val_console_match_v1::PlayerStats>,
#[serde(rename = "competitiveTier")]
pub competitive_tier: i32,
#[serde(rename = "playerCard")]
pub player_card: String,
#[serde(rename = "playerTitle")]
pub player_title: String,
}
/// `val-console-match-v1.PlayerStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerStats {
#[serde(rename = "score")]
pub score: i32,
#[serde(rename = "roundsPlayed")]
pub rounds_played: i32,
#[serde(rename = "kills")]
pub kills: i32,
#[serde(rename = "deaths")]
pub deaths: i32,
#[serde(rename = "assists")]
pub assists: i32,
#[serde(rename = "playtimeMillis")]
pub playtime_millis: i32,
#[serde(rename = "abilityCasts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability_casts: Option<crate::models::val_console_match_v1::AbilityCasts>,
}
/// `val-console-match-v1.AbilityCastsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct AbilityCasts {
#[serde(rename = "grenadeCasts")]
pub grenade_casts: i32,
#[serde(rename = "ability1Casts")]
pub ability1_casts: i32,
#[serde(rename = "ability2Casts")]
pub ability2_casts: i32,
#[serde(rename = "ultimateCasts")]
pub ultimate_casts: i32,
}
/// `val-console-match-v1.CoachDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Coach {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "teamId")]
pub team_id: String,
}
/// `val-console-match-v1.TeamDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Team {
/// This is an arbitrary string. Red and Blue in bomb modes. The puuid of the player in deathmatch.
#[serde(rename = "teamId")]
pub team_id: String,
#[serde(rename = "won")]
pub won: bool,
#[serde(rename = "roundsPlayed")]
pub rounds_played: i32,
#[serde(rename = "roundsWon")]
pub rounds_won: i32,
/// Team points scored. Number of kills in deathmatch.
#[serde(rename = "numPoints")]
pub num_points: i32,
}
/// `val-console-match-v1.RoundResultDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RoundResult {
#[serde(rename = "roundNum")]
pub round_num: i32,
#[serde(rename = "roundResult")]
pub round_result: String,
#[serde(rename = "roundCeremony")]
pub round_ceremony: String,
#[serde(rename = "winningTeam")]
pub winning_team: String,
/// PUUID of player
#[serde(rename = "bombPlanter")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bomb_planter: Option<String>,
/// PUUID of player
#[serde(rename = "bombDefuser")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bomb_defuser: Option<String>,
#[serde(rename = "plantRoundTime")]
pub plant_round_time: i32,
#[serde(rename = "plantPlayerLocations")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plant_player_locations: Option<std::vec::Vec<crate::models::val_console_match_v1::PlayerLocations>>,
#[serde(rename = "plantLocation")]
pub plant_location: crate::models::val_console_match_v1::Location,
#[serde(rename = "plantSite")]
pub plant_site: String,
#[serde(rename = "defuseRoundTime")]
pub defuse_round_time: i32,
#[serde(rename = "defusePlayerLocations")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub defuse_player_locations: Option<std::vec::Vec<crate::models::val_console_match_v1::PlayerLocations>>,
#[serde(rename = "defuseLocation")]
pub defuse_location: crate::models::val_console_match_v1::Location,
#[serde(rename = "playerStats")]
pub player_stats: std::vec::Vec<crate::models::val_console_match_v1::PlayerRoundStats>,
#[serde(rename = "roundResultCode")]
pub round_result_code: String,
}
/// `val-console-match-v1.PlayerLocationsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerLocations {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "viewRadians")]
pub view_radians: f32,
#[serde(rename = "location")]
pub location: crate::models::val_console_match_v1::Location,
}
/// `val-console-match-v1.LocationDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Location {
#[serde(rename = "x")]
pub x: i32,
#[serde(rename = "y")]
pub y: i32,
}
/// `val-console-match-v1.PlayerRoundStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerRoundStats {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "kills")]
pub kills: std::vec::Vec<crate::models::val_console_match_v1::Kill>,
#[serde(rename = "damage")]
pub damage: std::vec::Vec<crate::models::val_console_match_v1::Damage>,
#[serde(rename = "score")]
pub score: i32,
#[serde(rename = "economy")]
pub economy: crate::models::val_console_match_v1::Economy,
#[serde(rename = "ability")]
pub ability: crate::models::val_console_match_v1::Ability,
}
/// `val-console-match-v1.KillDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Kill {
#[serde(rename = "timeSinceGameStartMillis")]
pub time_since_game_start_millis: i32,
#[serde(rename = "timeSinceRoundStartMillis")]
pub time_since_round_start_millis: i32,
/// PUUID
#[serde(rename = "killer")]
pub killer: String,
/// PUUID
#[serde(rename = "victim")]
pub victim: String,
#[serde(rename = "victimLocation")]
pub victim_location: crate::models::val_console_match_v1::Location,
/// List of PUUIDs
#[serde(rename = "assistants")]
pub assistants: std::vec::Vec<String>,
#[serde(rename = "playerLocations")]
pub player_locations: std::vec::Vec<crate::models::val_console_match_v1::PlayerLocations>,
#[serde(rename = "finishingDamage")]
pub finishing_damage: crate::models::val_console_match_v1::FinishingDamage,
}
/// `val-console-match-v1.FinishingDamageDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct FinishingDamage {
#[serde(rename = "damageType")]
pub damage_type: String,
#[serde(rename = "damageItem")]
pub damage_item: String,
#[serde(rename = "isSecondaryFireMode")]
pub is_secondary_fire_mode: bool,
}
/// `val-console-match-v1.DamageDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Damage {
/// PUUID
#[serde(rename = "receiver")]
pub receiver: String,
#[serde(rename = "damage")]
pub damage: i32,
#[serde(rename = "legshots")]
pub legshots: i32,
#[serde(rename = "bodyshots")]
pub bodyshots: i32,
#[serde(rename = "headshots")]
pub headshots: i32,
}
/// `val-console-match-v1.EconomyDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Economy {
#[serde(rename = "loadoutValue")]
pub loadout_value: i32,
#[serde(rename = "weapon")]
pub weapon: String,
#[serde(rename = "armor")]
pub armor: String,
#[serde(rename = "remaining")]
pub remaining: i32,
#[serde(rename = "spent")]
pub spent: i32,
}
/// `val-console-match-v1.AbilityDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Ability {
#[serde(rename = "grenadeEffects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grenade_effects: Option<String>,
#[serde(rename = "ability1Effects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability1_effects: Option<String>,
#[serde(rename = "ability2Effects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability2_effects: Option<String>,
#[serde(rename = "ultimateEffects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ultimate_effects: Option<String>,
}
/// `val-console-match-v1.MatchlistDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Matchlist {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "history")]
pub history: std::vec::Vec<crate::models::val_console_match_v1::MatchlistEntry>,
}
/// `val-console-match-v1.MatchlistEntryDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MatchlistEntry {
#[serde(rename = "matchId")]
pub match_id: String,
#[serde(rename = "gameStartTimeMillis")]
pub game_start_time_millis: i64,
#[serde(rename = "queueId")]
pub queue_id: String,
}
/// `val-console-match-v1.RecentMatchesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RecentMatches {
#[serde(rename = "currentTime")]
pub current_time: i64,
/// A list of recent match ids.
#[serde(rename = "matchIds")]
pub match_ids: std::vec::Vec<String>,
}
}
/// Data structs used by [`ValConsoleRankedV1`](crate::endpoints::ValConsoleRankedV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_console_ranked_v1 {
/// `val-console-ranked-v1.LeaderboardDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Leaderboard {
/// The act id for the given leaderboard. Act ids can be found using the val-content API.
#[serde(rename = "actId")]
pub act_id: String,
/// The total number of players in the leaderboard.
#[serde(rename = "totalPlayers")]
pub total_players: i64,
#[serde(rename = "query")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
/// The shard for the given leaderboard.
#[serde(rename = "shard")]
pub shard: String,
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::val_console_ranked_v1::Player>,
#[serde(rename = "tierDetails")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier_details: Option<std::vec::Vec<crate::models::val_console_ranked_v1::Tier>>,
}
/// `val-console-ranked-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "puuid")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub puuid: Option<String>,
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "gameName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_name: Option<String>,
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "tagLine")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag_line: Option<String>,
#[serde(rename = "leaderboardRank")]
pub leaderboard_rank: i64,
#[serde(rename = "rankedRating")]
pub ranked_rating: i64,
#[serde(rename = "numberOfWins")]
pub number_of_wins: i64,
}
/// `val-console-ranked-v1.TierDto` data object.
/// # Description
/// UNKNOWN TYPE.
///
/// Note: This struct is automatically generated
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Tier {
}
}
/// Data structs used by [`ValContentV1`](crate::endpoints::ValContentV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_content_v1 {
/// `val-content-v1.ContentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Content {
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "characters")]
pub characters: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "maps")]
pub maps: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "chromas")]
pub chromas: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "skins")]
pub skins: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "skinLevels")]
pub skin_levels: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "equips")]
pub equips: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "gameModes")]
pub game_modes: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "sprays")]
pub sprays: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "sprayLevels")]
pub spray_levels: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "charms")]
pub charms: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "charmLevels")]
pub charm_levels: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "playerCards")]
pub player_cards: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "playerTitles")]
pub player_titles: std::vec::Vec<crate::models::val_content_v1::ContentItem>,
#[serde(rename = "acts")]
pub acts: std::vec::Vec<crate::models::val_content_v1::Act>,
#[serde(rename = "ceremonies")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ceremonies: Option<std::vec::Vec<crate::models::val_content_v1::ContentItem>>,
#[serde(rename = "totems")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub totems: Option<std::vec::Vec<crate::models::val_content_v1::ContentItem>>,
}
/// `val-content-v1.ContentItemDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct ContentItem {
#[serde(rename = "name")]
pub name: String,
/// This field is excluded from the response when a locale is set
#[serde(rename = "localizedNames")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub localized_names: Option<crate::models::val_content_v1::LocalizedNames>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "assetName")]
pub asset_name: String,
/// This field is only included for maps and game modes. These values are used in the match response.
#[serde(rename = "assetPath")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub asset_path: Option<String>,
}
/// `val-content-v1.LocalizedNamesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct LocalizedNames {
#[serde(rename = "ar-AE")]
pub ar_ae: String,
#[serde(rename = "de-DE")]
pub de_de: String,
#[serde(rename = "en-GB")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub en_gb: Option<String>,
#[serde(rename = "en-US")]
pub en_us: String,
#[serde(rename = "es-ES")]
pub es_es: String,
#[serde(rename = "es-MX")]
pub es_mx: String,
#[serde(rename = "fr-FR")]
pub fr_fr: String,
#[serde(rename = "id-ID")]
pub id_id: String,
#[serde(rename = "it-IT")]
pub it_it: String,
#[serde(rename = "ja-JP")]
pub ja_jp: String,
#[serde(rename = "ko-KR")]
pub ko_kr: String,
#[serde(rename = "pl-PL")]
pub pl_pl: String,
#[serde(rename = "pt-BR")]
pub pt_br: String,
#[serde(rename = "ru-RU")]
pub ru_ru: String,
#[serde(rename = "th-TH")]
pub th_th: String,
#[serde(rename = "tr-TR")]
pub tr_tr: String,
#[serde(rename = "vi-VN")]
pub vi_vn: String,
#[serde(rename = "zh-CN")]
pub zh_cn: String,
#[serde(rename = "zh-TW")]
pub zh_tw: String,
}
/// `val-content-v1.ActDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Act {
#[serde(rename = "name")]
pub name: String,
/// This field is excluded from the response when a locale is set
#[serde(rename = "localizedNames")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub localized_names: Option<crate::models::val_content_v1::LocalizedNames>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "isActive")]
pub is_active: bool,
#[serde(rename = "parentId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_id: Option<String>,
#[serde(rename = "type")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
}
/// Data structs used by [`ValMatchV1`](crate::endpoints::ValMatchV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_match_v1 {
/// `val-match-v1.MatchDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Match {
#[serde(rename = "matchInfo")]
pub match_info: crate::models::val_match_v1::MatchInfo,
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::val_match_v1::Player>,
#[serde(rename = "coaches")]
pub coaches: std::vec::Vec<crate::models::val_match_v1::Coach>,
#[serde(rename = "teams")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub teams: Option<std::vec::Vec<crate::models::val_match_v1::Team>>,
#[serde(rename = "roundResults")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub round_results: Option<std::vec::Vec<crate::models::val_match_v1::RoundResult>>,
}
/// `val-match-v1.MatchInfoDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MatchInfo {
#[serde(rename = "matchId")]
pub match_id: String,
#[serde(rename = "mapId")]
pub map_id: String,
#[serde(rename = "gameVersion")]
pub game_version: String,
#[serde(rename = "gameLengthMillis")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_length_millis: Option<i32>,
#[serde(rename = "region")]
pub region: String,
#[serde(rename = "gameStartMillis")]
pub game_start_millis: i64,
#[serde(rename = "provisioningFlowId")]
pub provisioning_flow_id: String,
#[serde(rename = "isCompleted")]
pub is_completed: bool,
#[serde(rename = "customGameName")]
pub custom_game_name: String,
#[serde(rename = "queueId")]
pub queue_id: String,
#[serde(rename = "gameMode")]
pub game_mode: String,
#[serde(rename = "isRanked")]
pub is_ranked: bool,
#[serde(rename = "seasonId")]
pub season_id: String,
#[serde(rename = "premierMatchInfo")]
pub premier_match_info: serde_json::Map<String, serde_json::Value>,
}
/// `val-match-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "gameName")]
pub game_name: String,
#[serde(rename = "tagLine")]
pub tag_line: String,
#[serde(rename = "teamId")]
pub team_id: String,
#[serde(rename = "partyId")]
pub party_id: String,
#[serde(rename = "characterId")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub character_id: Option<String>,
#[serde(rename = "stats")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub stats: Option<crate::models::val_match_v1::PlayerStats>,
#[serde(rename = "competitiveTier")]
pub competitive_tier: i32,
#[serde(rename = "isObserver")]
pub is_observer: bool,
#[serde(rename = "playerCard")]
pub player_card: String,
#[serde(rename = "playerTitle")]
pub player_title: String,
#[serde(rename = "accountLevel")]
pub account_level: i32,
}
/// `val-match-v1.PlayerStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerStats {
#[serde(rename = "score")]
pub score: i32,
#[serde(rename = "roundsPlayed")]
pub rounds_played: i32,
#[serde(rename = "kills")]
pub kills: i32,
#[serde(rename = "deaths")]
pub deaths: i32,
#[serde(rename = "assists")]
pub assists: i32,
#[serde(rename = "playtimeMillis")]
pub playtime_millis: i32,
#[serde(rename = "abilityCasts")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability_casts: Option<crate::models::val_match_v1::AbilityCasts>,
}
/// `val-match-v1.AbilityCastsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct AbilityCasts {
#[serde(rename = "grenadeCasts")]
pub grenade_casts: i32,
#[serde(rename = "ability1Casts")]
pub ability1_casts: i32,
#[serde(rename = "ability2Casts")]
pub ability2_casts: i32,
#[serde(rename = "ultimateCasts")]
pub ultimate_casts: i32,
}
/// `val-match-v1.CoachDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Coach {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "teamId")]
pub team_id: String,
}
/// `val-match-v1.TeamDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Team {
/// This is an arbitrary string. Red and Blue in bomb modes. The puuid of the player in deathmatch.
#[serde(rename = "teamId")]
pub team_id: String,
#[serde(rename = "won")]
pub won: bool,
#[serde(rename = "roundsPlayed")]
pub rounds_played: i32,
#[serde(rename = "roundsWon")]
pub rounds_won: i32,
/// Team points scored. Number of kills in deathmatch.
#[serde(rename = "numPoints")]
pub num_points: i32,
}
/// `val-match-v1.RoundResultDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RoundResult {
#[serde(rename = "roundNum")]
pub round_num: i32,
#[serde(rename = "roundResult")]
pub round_result: String,
#[serde(rename = "roundCeremony")]
pub round_ceremony: String,
#[serde(rename = "winningTeam")]
pub winning_team: String,
#[serde(rename = "winningTeamRole")]
pub winning_team_role: String,
/// PUUID of player
#[serde(rename = "bombPlanter")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bomb_planter: Option<String>,
/// PUUID of player
#[serde(rename = "bombDefuser")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bomb_defuser: Option<String>,
#[serde(rename = "plantRoundTime")]
pub plant_round_time: i32,
#[serde(rename = "plantPlayerLocations")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plant_player_locations: Option<std::vec::Vec<crate::models::val_match_v1::PlayerLocations>>,
#[serde(rename = "plantLocation")]
pub plant_location: crate::models::val_match_v1::Location,
#[serde(rename = "plantSite")]
pub plant_site: String,
#[serde(rename = "defuseRoundTime")]
pub defuse_round_time: i32,
#[serde(rename = "defusePlayerLocations")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub defuse_player_locations: Option<std::vec::Vec<crate::models::val_match_v1::PlayerLocations>>,
#[serde(rename = "defuseLocation")]
pub defuse_location: crate::models::val_match_v1::Location,
#[serde(rename = "playerStats")]
pub player_stats: std::vec::Vec<crate::models::val_match_v1::PlayerRoundStats>,
#[serde(rename = "roundResultCode")]
pub round_result_code: String,
}
/// `val-match-v1.PlayerLocationsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerLocations {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "viewRadians")]
pub view_radians: f32,
#[serde(rename = "location")]
pub location: crate::models::val_match_v1::Location,
}
/// `val-match-v1.LocationDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Location {
#[serde(rename = "x")]
pub x: i32,
#[serde(rename = "y")]
pub y: i32,
}
/// `val-match-v1.PlayerRoundStatsDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlayerRoundStats {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "kills")]
pub kills: std::vec::Vec<crate::models::val_match_v1::Kill>,
#[serde(rename = "damage")]
pub damage: std::vec::Vec<crate::models::val_match_v1::Damage>,
#[serde(rename = "score")]
pub score: i32,
#[serde(rename = "economy")]
pub economy: crate::models::val_match_v1::Economy,
#[serde(rename = "ability")]
pub ability: crate::models::val_match_v1::Ability,
}
/// `val-match-v1.KillDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Kill {
#[serde(rename = "timeSinceGameStartMillis")]
pub time_since_game_start_millis: i32,
#[serde(rename = "timeSinceRoundStartMillis")]
pub time_since_round_start_millis: i32,
/// PUUID
#[serde(rename = "killer")]
pub killer: String,
/// PUUID
#[serde(rename = "victim")]
pub victim: String,
#[serde(rename = "victimLocation")]
pub victim_location: crate::models::val_match_v1::Location,
/// List of PUUIDs
#[serde(rename = "assistants")]
pub assistants: std::vec::Vec<String>,
#[serde(rename = "playerLocations")]
pub player_locations: std::vec::Vec<crate::models::val_match_v1::PlayerLocations>,
#[serde(rename = "finishingDamage")]
pub finishing_damage: crate::models::val_match_v1::FinishingDamage,
}
/// `val-match-v1.FinishingDamageDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct FinishingDamage {
#[serde(rename = "damageType")]
pub damage_type: String,
#[serde(rename = "damageItem")]
pub damage_item: String,
#[serde(rename = "isSecondaryFireMode")]
pub is_secondary_fire_mode: bool,
}
/// `val-match-v1.DamageDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Damage {
/// PUUID
#[serde(rename = "receiver")]
pub receiver: String,
#[serde(rename = "damage")]
pub damage: i32,
#[serde(rename = "legshots")]
pub legshots: i32,
#[serde(rename = "bodyshots")]
pub bodyshots: i32,
#[serde(rename = "headshots")]
pub headshots: i32,
}
/// `val-match-v1.EconomyDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Economy {
#[serde(rename = "loadoutValue")]
pub loadout_value: i32,
#[serde(rename = "weapon")]
pub weapon: String,
#[serde(rename = "armor")]
pub armor: String,
#[serde(rename = "remaining")]
pub remaining: i32,
#[serde(rename = "spent")]
pub spent: i32,
}
/// `val-match-v1.AbilityDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Ability {
#[serde(rename = "grenadeEffects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub grenade_effects: Option<String>,
#[serde(rename = "ability1Effects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability1_effects: Option<String>,
#[serde(rename = "ability2Effects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ability2_effects: Option<String>,
#[serde(rename = "ultimateEffects")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ultimate_effects: Option<String>,
}
/// `val-match-v1.MatchlistDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Matchlist {
#[serde(rename = "puuid")]
pub puuid: String,
#[serde(rename = "history")]
pub history: std::vec::Vec<crate::models::val_match_v1::MatchlistEntry>,
}
/// `val-match-v1.MatchlistEntryDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct MatchlistEntry {
#[serde(rename = "matchId")]
pub match_id: String,
#[serde(rename = "gameStartTimeMillis")]
pub game_start_time_millis: i64,
#[serde(rename = "queueId")]
pub queue_id: String,
}
/// `val-match-v1.RecentMatchesDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct RecentMatches {
#[serde(rename = "currentTime")]
pub current_time: i64,
/// A list of recent match ids.
#[serde(rename = "matchIds")]
pub match_ids: std::vec::Vec<String>,
}
}
/// Data structs used by [`ValRankedV1`](crate::endpoints::ValRankedV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_ranked_v1 {
/// `val-ranked-v1.LeaderboardDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Leaderboard {
/// The shard for the given leaderboard.
#[serde(rename = "shard")]
pub shard: String,
/// The act id for the given leaderboard. Act ids can be found using the val-content API.
#[serde(rename = "actId")]
pub act_id: String,
/// The total number of players in the leaderboard.
#[serde(rename = "totalPlayers")]
pub total_players: i64,
#[serde(rename = "players")]
pub players: std::vec::Vec<crate::models::val_ranked_v1::Player>,
#[serde(rename = "immortalStartingPage")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub immortal_starting_page: Option<i64>,
#[serde(rename = "immortalStartingIndex")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub immortal_starting_index: Option<i64>,
#[serde(rename = "topTierRRThreshold")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub top_tier_rr_threshold: Option<i64>,
#[serde(rename = "tierDetails")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tier_details: Option<std::collections::HashMap<i64, crate::models::val_ranked_v1::TierDetail>>,
#[serde(rename = "startIndex")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_index: Option<i64>,
#[serde(rename = "query")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
}
/// `val-ranked-v1.PlayerDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Player {
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "puuid")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub puuid: Option<String>,
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "gameName")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub game_name: Option<String>,
/// This field may be omitted if the player has been anonymized.
#[serde(rename = "tagLine")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag_line: Option<String>,
#[serde(rename = "leaderboardRank")]
pub leaderboard_rank: i64,
#[serde(rename = "rankedRating")]
pub ranked_rating: i64,
#[serde(rename = "numberOfWins")]
pub number_of_wins: i64,
#[serde(rename = "competitiveTier")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub competitive_tier: Option<i64>,
#[serde(rename = "prefix")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(rename = "premierRosterType")]
pub premier_roster_type: String,
}
/// `val-ranked-v1.TierDetailDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct TierDetail {
#[serde(rename = "rankedRatingThreshold")]
pub ranked_rating_threshold: i64,
#[serde(rename = "startingPage")]
pub starting_page: i64,
#[serde(rename = "startingIndex")]
pub starting_index: i64,
}
}
/// Data structs used by [`ValStatusV1`](crate::endpoints::ValStatusV1).
///
/// Note: this module is automatically generated.
#[allow(dead_code)]
pub mod val_status_v1 {
/// `val-status-v1.PlatformDataDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct PlatformData {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "locales")]
pub locales: std::vec::Vec<String>,
#[serde(rename = "maintenances")]
pub maintenances: std::vec::Vec<crate::models::val_status_v1::Status>,
#[serde(rename = "incidents")]
pub incidents: std::vec::Vec<crate::models::val_status_v1::Status>,
}
/// `val-status-v1.StatusDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Status {
#[serde(rename = "id")]
pub id: i32,
/// (Legal values: scheduled, in_progress, complete)
#[serde(rename = "maintenance_status")]
pub maintenance_status: String,
/// (Legal values: info, warning, critical)
#[serde(rename = "incident_severity")]
pub incident_severity: String,
#[serde(rename = "titles")]
pub titles: std::vec::Vec<crate::models::val_status_v1::Content>,
#[serde(rename = "updates")]
pub updates: std::vec::Vec<crate::models::val_status_v1::Update>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "archive_at")]
pub archive_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
/// (Legal values: windows, macos, android, ios, ps4, xbone, switch)
#[serde(rename = "platforms")]
pub platforms: std::vec::Vec<String>,
}
/// `val-status-v1.ContentDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Content {
#[serde(rename = "locale")]
pub locale: String,
#[serde(rename = "content")]
pub content: String,
}
/// `val-status-v1.UpdateDto` data object.
#[derive(Clone, Debug)]
#[derive(serde::Serialize, crate::de::Deserialize)]
#[cfg_attr(feature = "deny-unknown-fields", serde(deny_unknown_fields))]
pub struct Update {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "author")]
pub author: String,
#[serde(rename = "publish")]
pub publish: bool,
/// (Legal values: riotclient, riotstatus, game)
#[serde(rename = "publish_locations")]
pub publish_locations: std::vec::Vec<String>,
#[serde(rename = "translations")]
pub translations: std::vec::Vec<crate::models::val_status_v1::Content>,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
}