pyke.models.match_v5
1# generated by datamodel-codegen: 2# filename: schema.json 3# timestamp: 2025-10-19T17:24:31+00:00 4 5from __future__ import annotations 6 7from enum import Enum 8from typing import Dict, List, Optional 9 10from pydantic import BaseModel, Field 11 12 13class MetadataDto(BaseModel): 14 """@public""" 15 16 data_version: str = Field( 17 ..., alias="dataVersion", description="Match data version." 18 ) 19 match_id: str = Field(..., alias="matchId", description="Match id.") 20 participants: List[str] = Field(..., description="A list of participant PUUIDs.") 21 22 23class FasterSupportQuestCompletion(Enum): 24 """@public""" 25 26 integer_0 = 0 27 integer_1 = 1 28 29 30class HadAfkTeammate(Enum): 31 """@public""" 32 33 integer_0 = 0 34 integer_1 = 1 35 36 37class HighestCrowdControlScore(Enum): 38 """@public""" 39 40 integer_0 = 0 41 integer_1 = 1 42 43 44class HighestWardKills(Enum): 45 """@public""" 46 47 integer_0 = 0 48 integer_1 = 1 49 50 51class LaningPhaseGoldExpAdvantage(Enum): 52 """@public""" 53 54 integer_0 = 0 55 integer_1 = 1 56 57 58class PlayedChampSelectPosition(Enum): 59 """@public""" 60 61 integer_0 = 0 62 integer_1 = 1 63 64 65class ChallengesDto(BaseModel): 66 """@public""" 67 68 field_12_assist_streak_count: Optional[int] = Field( 69 None, alias="12AssistStreakCount" 70 ) 71 baron_buff_gold_advantage_over_threshold: Optional[int] = Field( 72 None, alias="baronBuffGoldAdvantageOverThreshold" 73 ) 74 control_ward_time_coverage_in_river_or_enemy_half: Optional[float] = Field( 75 None, alias="controlWardTimeCoverageInRiverOrEnemyHalf" 76 ) 77 earliest_baron: Optional[float] = Field(None, alias="earliestBaron") 78 earliest_dragon_takedown: Optional[float] = Field( 79 None, alias="earliestDragonTakedown" 80 ) 81 earliest_elder_dragon: Optional[float] = Field(None, alias="earliestElderDragon") 82 early_laning_phase_gold_exp_advantage: Optional[float] = Field( 83 None, alias="earlyLaningPhaseGoldExpAdvantage" 84 ) 85 faster_support_quest_completion: Optional[FasterSupportQuestCompletion] = Field( 86 None, alias="fasterSupportQuestCompletion" 87 ) 88 fastest_legendary: Optional[float] = Field(None, alias="fastestLegendary") 89 had_afk_teammate: Optional[HadAfkTeammate] = Field(None, alias="hadAfkTeammate") 90 highest_champion_damage: Optional[int] = Field(None, alias="highestChampionDamage") 91 highest_crowd_control_score: Optional[HighestCrowdControlScore] = Field( 92 None, alias="highestCrowdControlScore" 93 ) 94 highest_ward_kills: Optional[HighestWardKills] = Field( 95 None, alias="highestWardKills" 96 ) 97 jungler_kills_early_jungle: Optional[int] = Field( 98 None, alias="junglerKillsEarlyJungle" 99 ) 100 kills_on_laners_early_jungle_as_jungler: Optional[int] = Field( 101 None, alias="killsOnLanersEarlyJungleAsJungler" 102 ) 103 laning_phase_gold_exp_advantage: Optional[LaningPhaseGoldExpAdvantage] = Field( 104 None, alias="laningPhaseGoldExpAdvantage" 105 ) 106 legendary_count: Optional[int] = Field(None, alias="legendaryCount") 107 max_cs_advantage_on_lane_opponent: Optional[float] = Field( 108 None, alias="maxCsAdvantageOnLaneOpponent" 109 ) 110 max_level_lead_lane_opponent: Optional[int] = Field( 111 None, alias="maxLevelLeadLaneOpponent" 112 ) 113 most_wards_destroyed_one_sweeper: Optional[int] = Field( 114 None, alias="mostWardsDestroyedOneSweeper" 115 ) 116 mythic_item_used: Optional[int] = Field(None, alias="mythicItemUsed") 117 played_champ_select_position: Optional[PlayedChampSelectPosition] = Field( 118 None, alias="playedChampSelectPosition" 119 ) 120 solo_turrets_lategame: Optional[int] = Field(None, alias="soloTurretsLategame") 121 takedowns_first25_minutes: Optional[int] = Field( 122 None, alias="takedownsFirst25Minutes" 123 ) 124 teleport_takedowns: Optional[int] = Field(None, alias="teleportTakedowns") 125 third_inhibitor_destroyed_time: Optional[float] = Field( 126 None, alias="thirdInhibitorDestroyedTime" 127 ) 128 three_wards_one_sweeper_count: Optional[int] = Field( 129 None, alias="threeWardsOneSweeperCount" 130 ) 131 vision_score_advantage_lane_opponent: Optional[float] = Field( 132 None, alias="visionScoreAdvantageLaneOpponent" 133 ) 134 infernal_scale_pickup: Optional[int] = Field(None, alias="InfernalScalePickup") 135 fist_bump_participation: Optional[int] = Field(None, alias="fistBumpParticipation") 136 void_monster_kill: Optional[int] = Field(None, alias="voidMonsterKill") 137 ability_uses: Optional[int] = Field(None, alias="abilityUses") 138 aces_before15_minutes: Optional[int] = Field(None, alias="acesBefore15Minutes") 139 allied_jungle_monster_kills: Optional[float] = Field( 140 None, alias="alliedJungleMonsterKills" 141 ) 142 baron_takedowns: Optional[int] = Field(None, alias="baronTakedowns") 143 blast_cone_opposite_opponent_count: Optional[int] = Field( 144 None, alias="blastConeOppositeOpponentCount" 145 ) 146 bounty_gold: Optional[float] = Field(None, alias="bountyGold") 147 buffs_stolen: Optional[int] = Field(None, alias="buffsStolen") 148 complete_support_quest_in_time: Optional[int] = Field( 149 None, alias="completeSupportQuestInTime" 150 ) 151 control_wards_placed: Optional[int] = Field(None, alias="controlWardsPlaced") 152 damage_per_minute: Optional[float] = Field(None, alias="damagePerMinute") 153 damage_taken_on_team_percentage: Optional[float] = Field( 154 None, alias="damageTakenOnTeamPercentage" 155 ) 156 danced_with_rift_herald: Optional[int] = Field(None, alias="dancedWithRiftHerald") 157 deaths_by_enemy_champs: Optional[int] = Field(None, alias="deathsByEnemyChamps") 158 dodge_skill_shots_small_window: Optional[int] = Field( 159 None, alias="dodgeSkillShotsSmallWindow" 160 ) 161 double_aces: Optional[int] = Field(None, alias="doubleAces") 162 dragon_takedowns: Optional[int] = Field(None, alias="dragonTakedowns") 163 legendary_item_used: Optional[List[int]] = Field(None, alias="legendaryItemUsed") 164 effective_heal_and_shielding: Optional[float] = Field( 165 None, alias="effectiveHealAndShielding" 166 ) 167 elder_dragon_kills_with_opposing_soul: Optional[int] = Field( 168 None, alias="elderDragonKillsWithOpposingSoul" 169 ) 170 elder_dragon_multikills: Optional[int] = Field(None, alias="elderDragonMultikills") 171 enemy_champion_immobilizations: Optional[int] = Field( 172 None, alias="enemyChampionImmobilizations" 173 ) 174 enemy_jungle_monster_kills: Optional[float] = Field( 175 None, alias="enemyJungleMonsterKills" 176 ) 177 epic_monster_kills_near_enemy_jungler: Optional[int] = Field( 178 None, alias="epicMonsterKillsNearEnemyJungler" 179 ) 180 epic_monster_kills_within30_seconds_of_spawn: Optional[int] = Field( 181 None, alias="epicMonsterKillsWithin30SecondsOfSpawn" 182 ) 183 epic_monster_steals: Optional[int] = Field(None, alias="epicMonsterSteals") 184 epic_monster_stolen_without_smite: Optional[int] = Field( 185 None, alias="epicMonsterStolenWithoutSmite" 186 ) 187 first_turret_killed: Optional[float] = Field(None, alias="firstTurretKilled") 188 first_turret_killed_time: Optional[float] = Field( 189 None, alias="firstTurretKilledTime" 190 ) 191 flawless_aces: Optional[int] = Field(None, alias="flawlessAces") 192 full_team_takedown: Optional[int] = Field(None, alias="fullTeamTakedown") 193 game_length: Optional[float] = Field(None, alias="gameLength") 194 get_takedowns_in_all_lanes_early_jungle_as_laner: Optional[int] = Field( 195 None, alias="getTakedownsInAllLanesEarlyJungleAsLaner" 196 ) 197 gold_per_minute: Optional[float] = Field(None, alias="goldPerMinute") 198 had_open_nexus: Optional[int] = Field(None, alias="hadOpenNexus") 199 immobilize_and_kill_with_ally: Optional[int] = Field( 200 None, alias="immobilizeAndKillWithAlly" 201 ) 202 initial_buff_count: Optional[int] = Field(None, alias="initialBuffCount") 203 initial_crab_count: Optional[int] = Field(None, alias="initialCrabCount") 204 jungle_cs_before10_minutes: Optional[float] = Field( 205 None, alias="jungleCsBefore10Minutes" 206 ) 207 jungler_takedowns_near_damaged_epic_monster: Optional[int] = Field( 208 None, alias="junglerTakedownsNearDamagedEpicMonster" 209 ) 210 kda: Optional[float] = None 211 kill_after_hidden_with_ally: Optional[int] = Field( 212 None, alias="killAfterHiddenWithAlly" 213 ) 214 killed_champ_took_full_team_damage_survived: Optional[int] = Field( 215 None, alias="killedChampTookFullTeamDamageSurvived" 216 ) 217 killing_sprees: Optional[int] = Field(None, alias="killingSprees") 218 kill_participation: Optional[float] = Field(None, alias="killParticipation") 219 kills_near_enemy_turret: Optional[int] = Field(None, alias="killsNearEnemyTurret") 220 kills_on_other_lanes_early_jungle_as_laner: Optional[int] = Field( 221 None, alias="killsOnOtherLanesEarlyJungleAsLaner" 222 ) 223 kills_on_recently_healed_by_aram_pack: Optional[int] = Field( 224 None, alias="killsOnRecentlyHealedByAramPack" 225 ) 226 kills_under_own_turret: Optional[int] = Field(None, alias="killsUnderOwnTurret") 227 kills_with_help_from_epic_monster: Optional[int] = Field( 228 None, alias="killsWithHelpFromEpicMonster" 229 ) 230 knock_enemy_into_team_and_kill: Optional[int] = Field( 231 None, alias="knockEnemyIntoTeamAndKill" 232 ) 233 k_turrets_destroyed_before_plates_fall: Optional[int] = Field( 234 None, alias="kTurretsDestroyedBeforePlatesFall" 235 ) 236 land_skill_shots_early_game: Optional[int] = Field( 237 None, alias="landSkillShotsEarlyGame" 238 ) 239 lane_minions_first10_minutes: Optional[int] = Field( 240 None, alias="laneMinionsFirst10Minutes" 241 ) 242 lost_an_inhibitor: Optional[int] = Field(None, alias="lostAnInhibitor") 243 max_kill_deficit: Optional[int] = Field(None, alias="maxKillDeficit") 244 mejais_full_stack_in_time: Optional[int] = Field( 245 None, alias="mejaisFullStackInTime" 246 ) 247 more_enemy_jungle_than_opponent: Optional[float] = Field( 248 None, alias="moreEnemyJungleThanOpponent" 249 ) 250 multi_kill_one_spell: Optional[int] = Field( 251 None, 252 alias="multiKillOneSpell", 253 description="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.", 254 ) 255 multikills: Optional[int] = None 256 multikills_after_aggressive_flash: Optional[int] = Field( 257 None, alias="multikillsAfterAggressiveFlash" 258 ) 259 multi_turret_rift_herald_count: Optional[int] = Field( 260 None, alias="multiTurretRiftHeraldCount" 261 ) 262 outer_turret_executes_before10_minutes: Optional[int] = Field( 263 None, alias="outerTurretExecutesBefore10Minutes" 264 ) 265 outnumbered_kills: Optional[int] = Field(None, alias="outnumberedKills") 266 outnumbered_nexus_kill: Optional[int] = Field(None, alias="outnumberedNexusKill") 267 perfect_dragon_souls_taken: Optional[int] = Field( 268 None, alias="perfectDragonSoulsTaken" 269 ) 270 perfect_game: Optional[int] = Field(None, alias="perfectGame") 271 pick_kill_with_ally: Optional[int] = Field(None, alias="pickKillWithAlly") 272 poro_explosions: Optional[int] = Field(None, alias="poroExplosions") 273 quick_cleanse: Optional[int] = Field(None, alias="quickCleanse") 274 quick_first_turret: Optional[int] = Field(None, alias="quickFirstTurret") 275 quick_solo_kills: Optional[int] = Field(None, alias="quickSoloKills") 276 rift_herald_takedowns: Optional[int] = Field(None, alias="riftHeraldTakedowns") 277 save_ally_from_death: Optional[int] = Field(None, alias="saveAllyFromDeath") 278 scuttle_crab_kills: Optional[int] = Field(None, alias="scuttleCrabKills") 279 shortest_time_to_ace_from_first_takedown: Optional[float] = Field( 280 None, alias="shortestTimeToAceFromFirstTakedown" 281 ) 282 skillshots_dodged: Optional[int] = Field(None, alias="skillshotsDodged") 283 skillshots_hit: Optional[int] = Field(None, alias="skillshotsHit") 284 snowballs_hit: Optional[int] = Field(None, alias="snowballsHit") 285 solo_baron_kills: Optional[int] = Field(None, alias="soloBaronKills") 286 swarm_defeat_aatrox: Optional[int] = Field(None, alias="SWARM_DefeatAatrox") 287 swarm_defeat_briar: Optional[int] = Field(None, alias="SWARM_DefeatBriar") 288 swarm_defeat_mini_bosses: Optional[int] = Field( 289 None, alias="SWARM_DefeatMiniBosses" 290 ) 291 swarm_evolve_weapon: Optional[int] = Field(None, alias="SWARM_EvolveWeapon") 292 swarm_have3_passives: Optional[int] = Field(None, alias="SWARM_Have3Passives") 293 swarm_kill_enemy: Optional[int] = Field(None, alias="SWARM_KillEnemy") 294 swarm_pickup_gold: Optional[float] = Field(None, alias="SWARM_PickupGold") 295 swarm_reach_level50: Optional[int] = Field(None, alias="SWARM_ReachLevel50") 296 swarm_survive15_min: Optional[int] = Field(None, alias="SWARM_Survive15Min") 297 swarm_win_with5_evolved_weapons: Optional[int] = Field( 298 None, alias="SWARM_WinWith5EvolvedWeapons" 299 ) 300 solo_kills: Optional[int] = Field(None, alias="soloKills") 301 stealth_wards_placed: Optional[int] = Field(None, alias="stealthWardsPlaced") 302 survived_single_digit_hp_count: Optional[int] = Field( 303 None, alias="survivedSingleDigitHpCount" 304 ) 305 survived_three_immobilizes_in_fight: Optional[int] = Field( 306 None, alias="survivedThreeImmobilizesInFight" 307 ) 308 takedown_on_first_turret: Optional[int] = Field(None, alias="takedownOnFirstTurret") 309 takedowns: Optional[int] = None 310 takedowns_after_gaining_level_advantage: Optional[int] = Field( 311 None, alias="takedownsAfterGainingLevelAdvantage" 312 ) 313 takedowns_before_jungle_minion_spawn: Optional[int] = Field( 314 None, alias="takedownsBeforeJungleMinionSpawn" 315 ) 316 takedowns_first_x_minutes: Optional[int] = Field( 317 None, alias="takedownsFirstXMinutes" 318 ) 319 takedowns_in_alcove: Optional[int] = Field(None, alias="takedownsInAlcove") 320 takedowns_in_enemy_fountain: Optional[int] = Field( 321 None, alias="takedownsInEnemyFountain" 322 ) 323 team_baron_kills: Optional[int] = Field(None, alias="teamBaronKills") 324 team_damage_percentage: Optional[float] = Field(None, alias="teamDamagePercentage") 325 team_elder_dragon_kills: Optional[int] = Field(None, alias="teamElderDragonKills") 326 team_rift_herald_kills: Optional[int] = Field(None, alias="teamRiftHeraldKills") 327 took_large_damage_survived: Optional[int] = Field( 328 None, alias="tookLargeDamageSurvived" 329 ) 330 turret_plates_taken: Optional[int] = Field(None, alias="turretPlatesTaken") 331 turrets_taken_with_rift_herald: Optional[int] = Field( 332 None, 333 alias="turretsTakenWithRiftHerald", 334 description="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.", 335 ) 336 turret_takedowns: Optional[int] = Field(None, alias="turretTakedowns") 337 twenty_minions_in3_seconds_count: Optional[int] = Field( 338 None, alias="twentyMinionsIn3SecondsCount" 339 ) 340 two_wards_one_sweeper_count: Optional[int] = Field( 341 None, alias="twoWardsOneSweeperCount" 342 ) 343 unseen_recalls: Optional[int] = Field(None, alias="unseenRecalls") 344 vision_score_per_minute: Optional[float] = Field(None, alias="visionScorePerMinute") 345 wards_guarded: Optional[int] = Field(None, alias="wardsGuarded") 346 ward_takedowns: Optional[int] = Field(None, alias="wardTakedowns") 347 ward_takedowns_before20_m: Optional[int] = Field( 348 None, alias="wardTakedownsBefore20M" 349 ) 350 heal_from_map_sources: Optional[float] = Field(None, alias="HealFromMapSources") 351 352 353class MissionsDto(BaseModel): 354 """@public""" 355 356 player_score0: Optional[float] = Field(None, alias="playerScore0") 357 player_score1: Optional[float] = Field(None, alias="playerScore1") 358 player_score2: Optional[float] = Field(None, alias="playerScore2") 359 player_score3: Optional[float] = Field(None, alias="playerScore3") 360 player_score4: Optional[float] = Field(None, alias="playerScore4") 361 player_score5: Optional[float] = Field(None, alias="playerScore5") 362 player_score6: Optional[float] = Field(None, alias="playerScore6") 363 player_score7: Optional[float] = Field(None, alias="playerScore7") 364 player_score8: Optional[float] = Field(None, alias="playerScore8") 365 player_score9: Optional[float] = Field(None, alias="playerScore9") 366 player_score10: Optional[float] = Field(None, alias="playerScore10") 367 player_score11: Optional[float] = Field(None, alias="playerScore11") 368 369 370class PerkStatsDto(BaseModel): 371 """@public""" 372 373 defense: int 374 flex: int 375 offense: int 376 377 378class PerkStyleSelectionDto(BaseModel): 379 """@public""" 380 381 perk: int 382 var1: int 383 var2: int 384 var3: int 385 386 387class BanDto(BaseModel): 388 """@public""" 389 390 champion_id: int = Field(..., alias="championId") 391 pick_turn: int = Field(..., alias="pickTurn") 392 393 394class ObjectiveDto(BaseModel): 395 """@public""" 396 397 first: bool 398 kills: int 399 400 401class MetadataTimeLineDto(BaseModel): 402 """@public""" 403 404 data_version: str = Field( 405 ..., alias="dataVersion", description="Match data version." 406 ) 407 match_id: str = Field(..., alias="matchId", description="Match id.") 408 participants: List[str] = Field(..., description="A list of participant PUUIDs.") 409 410 411class ParticipantTimeLineDto(BaseModel): 412 """@public""" 413 414 participant_id: int = Field(..., alias="participantId") 415 puuid: str 416 417 418class ChampionStatsDto(BaseModel): 419 """@public""" 420 421 ability_haste: Optional[int] = Field(None, alias="abilityHaste") 422 ability_power: int = Field(..., alias="abilityPower") 423 armor: int 424 armor_pen: int = Field(..., alias="armorPen") 425 armor_pen_percent: int = Field(..., alias="armorPenPercent") 426 attack_damage: int = Field(..., alias="attackDamage") 427 attack_speed: int = Field(..., alias="attackSpeed") 428 bonus_armor_pen_percent: int = Field(..., alias="bonusArmorPenPercent") 429 bonus_magic_pen_percent: int = Field(..., alias="bonusMagicPenPercent") 430 cc_reduction: int = Field(..., alias="ccReduction") 431 cooldown_reduction: int = Field(..., alias="cooldownReduction") 432 health: int 433 health_max: int = Field(..., alias="healthMax") 434 health_regen: int = Field(..., alias="healthRegen") 435 lifesteal: int 436 magic_pen: int = Field(..., alias="magicPen") 437 magic_pen_percent: int = Field(..., alias="magicPenPercent") 438 magic_resist: int = Field(..., alias="magicResist") 439 movement_speed: int = Field(..., alias="movementSpeed") 440 omnivamp: Optional[int] = None 441 physical_vamp: Optional[int] = Field(None, alias="physicalVamp") 442 power: int 443 power_max: int = Field(..., alias="powerMax") 444 power_regen: int = Field(..., alias="powerRegen") 445 spell_vamp: int = Field(..., alias="spellVamp") 446 447 448class DamageStatsDto(BaseModel): 449 """@public""" 450 451 magic_damage_done: int = Field(..., alias="magicDamageDone") 452 magic_damage_done_to_champions: int = Field(..., alias="magicDamageDoneToChampions") 453 magic_damage_taken: int = Field(..., alias="magicDamageTaken") 454 physical_damage_done: int = Field(..., alias="physicalDamageDone") 455 physical_damage_done_to_champions: int = Field( 456 ..., alias="physicalDamageDoneToChampions" 457 ) 458 physical_damage_taken: int = Field(..., alias="physicalDamageTaken") 459 total_damage_done: int = Field(..., alias="totalDamageDone") 460 total_damage_done_to_champions: int = Field(..., alias="totalDamageDoneToChampions") 461 total_damage_taken: int = Field(..., alias="totalDamageTaken") 462 true_damage_done: int = Field(..., alias="trueDamageDone") 463 true_damage_done_to_champions: int = Field(..., alias="trueDamageDoneToChampions") 464 true_damage_taken: int = Field(..., alias="trueDamageTaken") 465 466 467class PositionDto(BaseModel): 468 """@public""" 469 470 x: int 471 y: int 472 473 474class MatchTimelineVictimDamage(BaseModel): 475 """@public""" 476 477 basic: bool 478 magic_damage: int = Field(..., alias="magicDamage") 479 name: str 480 participant_id: int = Field(..., alias="participantId") 481 physical_damage: int = Field(..., alias="physicalDamage") 482 spell_name: str = Field(..., alias="spellName") 483 spell_slot: int = Field(..., alias="spellSlot") 484 true_damage: int = Field(..., alias="trueDamage") 485 type: str 486 487 488class FeatDto(BaseModel): 489 """@public""" 490 491 feat_state: Optional[int] = Field(None, alias="featState") 492 493 494class PerkStyleDto(BaseModel): 495 """@public""" 496 497 description: str 498 selections: List[PerkStyleSelectionDto] 499 style: int 500 501 502class ObjectivesDto(BaseModel): 503 """@public""" 504 505 baron: ObjectiveDto 506 champion: ObjectiveDto 507 dragon: ObjectiveDto 508 horde: Optional[ObjectiveDto] = None 509 inhibitor: ObjectiveDto 510 rift_herald: ObjectiveDto = Field(..., alias="riftHerald") 511 tower: ObjectiveDto 512 atakhan: Optional[ObjectiveDto] = None 513 514 515class EventsTimeLineDto(BaseModel): 516 """@public""" 517 518 timestamp: int 519 real_timestamp: Optional[int] = Field(None, alias="realTimestamp") 520 type: str 521 item_id: Optional[int] = Field(None, alias="itemId") 522 participant_id: Optional[int] = Field(None, alias="participantId") 523 level_up_type: Optional[str] = Field(None, alias="levelUpType") 524 skill_slot: Optional[int] = Field(None, alias="skillSlot") 525 creator_id: Optional[int] = Field(None, alias="creatorId") 526 ward_type: Optional[str] = Field(None, alias="wardType") 527 level: Optional[int] = None 528 assisting_participant_ids: Optional[List[int]] = Field( 529 None, alias="assistingParticipantIds" 530 ) 531 bounty: Optional[int] = None 532 kill_streak_length: Optional[int] = Field(None, alias="killStreakLength") 533 killer_id: Optional[int] = Field(None, alias="killerId") 534 position: Optional[PositionDto] = None 535 victim_damage_dealt: Optional[List[MatchTimelineVictimDamage]] = Field( 536 None, alias="victimDamageDealt" 537 ) 538 victim_damage_received: Optional[List[MatchTimelineVictimDamage]] = Field( 539 None, alias="victimDamageReceived" 540 ) 541 victim_id: Optional[int] = Field(None, alias="victimId") 542 kill_type: Optional[str] = Field(None, alias="killType") 543 lane_type: Optional[str] = Field(None, alias="laneType") 544 team_id: Optional[int] = Field(None, alias="teamId") 545 multi_kill_length: Optional[int] = Field(None, alias="multiKillLength") 546 killer_team_id: Optional[int] = Field(None, alias="killerTeamId") 547 monster_type: Optional[str] = Field(None, alias="monsterType") 548 monster_sub_type: Optional[str] = Field(None, alias="monsterSubType") 549 building_type: Optional[str] = Field(None, alias="buildingType") 550 tower_type: Optional[str] = Field(None, alias="towerType") 551 after_id: Optional[int] = Field(None, alias="afterId") 552 before_id: Optional[int] = Field(None, alias="beforeId") 553 gold_gain: Optional[int] = Field(None, alias="goldGain") 554 game_id: Optional[int] = Field(None, alias="gameId") 555 winning_team: Optional[int] = Field(None, alias="winningTeam") 556 transform_type: Optional[str] = Field(None, alias="transformType") 557 name: Optional[str] = None 558 shutdown_bounty: Optional[int] = Field(None, alias="shutdownBounty") 559 actual_start_time: Optional[int] = Field(None, alias="actualStartTime") 560 feat_type: Optional[int] = Field(None, alias="featType") 561 feat_value: Optional[int] = Field(None, alias="featValue") 562 563 564class ParticipantFrameDto(BaseModel): 565 """@public""" 566 567 champion_stats: ChampionStatsDto = Field(..., alias="championStats") 568 current_gold: int = Field(..., alias="currentGold") 569 damage_stats: DamageStatsDto = Field(..., alias="damageStats") 570 gold_per_second: int = Field(..., alias="goldPerSecond") 571 jungle_minions_killed: int = Field(..., alias="jungleMinionsKilled") 572 level: int 573 minions_killed: int = Field(..., alias="minionsKilled") 574 participant_id: int = Field(..., alias="participantId") 575 position: PositionDto 576 time_enemy_spent_controlled: int = Field(..., alias="timeEnemySpentControlled") 577 total_gold: int = Field(..., alias="totalGold") 578 xp: int 579 580 581class FeatsDto(BaseModel): 582 """@public""" 583 584 epic_monster_kill: Optional[FeatDto] = Field(None, alias="EPIC_MONSTER_KILL") 585 first_blood: Optional[FeatDto] = Field(None, alias="FIRST_BLOOD") 586 first_turret: Optional[FeatDto] = Field(None, alias="FIRST_TURRET") 587 588 589class PerksDto(BaseModel): 590 """@public""" 591 592 stat_perks: PerkStatsDto = Field(..., alias="statPerks") 593 styles: List[PerkStyleDto] 594 595 596class TeamDto(BaseModel): 597 """@public""" 598 599 bans: List[BanDto] 600 objectives: ObjectivesDto 601 team_id: int = Field(..., alias="teamId") 602 win: bool 603 feats: Optional[FeatsDto] = None 604 605 606class FramesTimeLineDto(BaseModel): 607 """@public""" 608 609 events: List[EventsTimeLineDto] 610 participant_frames: Optional[Dict[str, ParticipantFrameDto]] = Field( 611 None, alias="participantFrames" 612 ) 613 timestamp: int 614 615 616class ParticipantFramesDto(BaseModel): 617 """@public""" 618 619 field_1_9: ParticipantFrameDto = Field( 620 ..., alias="1-9", description="Key value mapping for each participant" 621 ) 622 623 624class ParticipantDto(BaseModel): 625 """@public""" 626 627 all_in_pings: Optional[int] = Field( 628 None, alias="allInPings", description="Yellow crossed swords" 629 ) 630 assist_me_pings: Optional[int] = Field( 631 None, alias="assistMePings", description="Green flag" 632 ) 633 assists: int 634 baron_kills: int = Field(..., alias="baronKills") 635 bounty_level: Optional[int] = Field(None, alias="bountyLevel") 636 champ_experience: int = Field(..., alias="champExperience") 637 champ_level: int = Field(..., alias="champLevel") 638 champion_id: int = Field( 639 ..., 640 alias="championId", 641 description="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.", 642 ) 643 champion_name: str = Field(..., alias="championName") 644 command_pings: Optional[int] = Field( 645 None, alias="commandPings", description="Blue generic ping (ALT+click)" 646 ) 647 champion_transform: int = Field( 648 ..., 649 alias="championTransform", 650 description="This field is currently only utilized for Kayn's transformations. (Legal values: 0 - None, 1 - Slayer, 2 - Assassin)", 651 ) 652 consumables_purchased: int = Field(..., alias="consumablesPurchased") 653 challenges: Optional[ChallengesDto] = None 654 damage_dealt_to_buildings: Optional[int] = Field( 655 None, alias="damageDealtToBuildings" 656 ) 657 damage_dealt_to_objectives: int = Field(..., alias="damageDealtToObjectives") 658 damage_dealt_to_turrets: int = Field(..., alias="damageDealtToTurrets") 659 damage_self_mitigated: int = Field(..., alias="damageSelfMitigated") 660 deaths: int 661 detector_wards_placed: int = Field(..., alias="detectorWardsPlaced") 662 double_kills: int = Field(..., alias="doubleKills") 663 dragon_kills: int = Field(..., alias="dragonKills") 664 eligible_for_progression: Optional[bool] = Field( 665 None, alias="eligibleForProgression" 666 ) 667 enemy_missing_pings: Optional[int] = Field( 668 None, alias="enemyMissingPings", description="Yellow questionmark" 669 ) 670 enemy_vision_pings: Optional[int] = Field( 671 None, alias="enemyVisionPings", description="Red eyeball" 672 ) 673 first_blood_assist: bool = Field(..., alias="firstBloodAssist") 674 first_blood_kill: bool = Field(..., alias="firstBloodKill") 675 first_tower_assist: bool = Field(..., alias="firstTowerAssist") 676 first_tower_kill: bool = Field(..., alias="firstTowerKill") 677 game_ended_in_early_surrender: bool = Field( 678 ..., 679 alias="gameEndedInEarlySurrender", 680 description="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.", 681 ) 682 game_ended_in_surrender: bool = Field(..., alias="gameEndedInSurrender") 683 hold_pings: Optional[int] = Field(None, alias="holdPings") 684 get_back_pings: Optional[int] = Field( 685 None, alias="getBackPings", description="Yellow circle with horizontal line" 686 ) 687 gold_earned: int = Field(..., alias="goldEarned") 688 gold_spent: int = Field(..., alias="goldSpent") 689 individual_position: str = Field( 690 ..., 691 alias="individualPosition", 692 description="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.", 693 ) 694 inhibitor_kills: int = Field(..., alias="inhibitorKills") 695 inhibitor_takedowns: Optional[int] = Field(None, alias="inhibitorTakedowns") 696 inhibitors_lost: Optional[int] = Field(None, alias="inhibitorsLost") 697 item0: int 698 item1: int 699 item2: int 700 item3: int 701 item4: int 702 item5: int 703 item6: int 704 items_purchased: int = Field(..., alias="itemsPurchased") 705 killing_sprees: int = Field(..., alias="killingSprees") 706 kills: int 707 lane: str 708 largest_critical_strike: int = Field(..., alias="largestCriticalStrike") 709 largest_killing_spree: int = Field(..., alias="largestKillingSpree") 710 largest_multi_kill: int = Field(..., alias="largestMultiKill") 711 longest_time_spent_living: int = Field(..., alias="longestTimeSpentLiving") 712 magic_damage_dealt: int = Field(..., alias="magicDamageDealt") 713 magic_damage_dealt_to_champions: int = Field( 714 ..., alias="magicDamageDealtToChampions" 715 ) 716 magic_damage_taken: int = Field(..., alias="magicDamageTaken") 717 missions: Optional[MissionsDto] = None 718 neutral_minions_killed: int = Field( 719 ..., 720 alias="neutralMinionsKilled", 721 description="neutralMinionsKilled = mNeutralMinionsKilled, which is incremented on kills of kPet and kJungleMonster", 722 ) 723 need_vision_pings: Optional[int] = Field( 724 None, alias="needVisionPings", description="Green ward" 725 ) 726 nexus_kills: int = Field(..., alias="nexusKills") 727 nexus_takedowns: Optional[int] = Field(None, alias="nexusTakedowns") 728 nexus_lost: Optional[int] = Field(None, alias="nexusLost") 729 objectives_stolen: int = Field(..., alias="objectivesStolen") 730 objectives_stolen_assists: int = Field(..., alias="objectivesStolenAssists") 731 on_my_way_pings: Optional[int] = Field( 732 None, alias="onMyWayPings", description="Blue arrow pointing at ground" 733 ) 734 participant_id: int = Field(..., alias="participantId") 735 player_score0: Optional[float] = Field(None, alias="playerScore0") 736 player_score1: Optional[float] = Field(None, alias="playerScore1") 737 player_score2: Optional[float] = Field(None, alias="playerScore2") 738 player_score3: Optional[float] = Field(None, alias="playerScore3") 739 player_score4: Optional[float] = Field(None, alias="playerScore4") 740 player_score5: Optional[float] = Field(None, alias="playerScore5") 741 player_score6: Optional[float] = Field(None, alias="playerScore6") 742 player_score7: Optional[float] = Field(None, alias="playerScore7") 743 player_score8: Optional[float] = Field(None, alias="playerScore8") 744 player_score9: Optional[float] = Field(None, alias="playerScore9") 745 player_score10: Optional[float] = Field(None, alias="playerScore10") 746 player_score11: Optional[float] = Field(None, alias="playerScore11") 747 penta_kills: int = Field(..., alias="pentaKills") 748 perks: PerksDto 749 physical_damage_dealt: int = Field(..., alias="physicalDamageDealt") 750 physical_damage_dealt_to_champions: int = Field( 751 ..., alias="physicalDamageDealtToChampions" 752 ) 753 physical_damage_taken: int = Field(..., alias="physicalDamageTaken") 754 placement: Optional[int] = None 755 player_augment1: Optional[int] = Field(None, alias="playerAugment1") 756 player_augment2: Optional[int] = Field(None, alias="playerAugment2") 757 player_augment3: Optional[int] = Field(None, alias="playerAugment3") 758 player_augment4: Optional[int] = Field(None, alias="playerAugment4") 759 player_subteam_id: Optional[int] = Field(None, alias="playerSubteamId") 760 push_pings: Optional[int] = Field( 761 None, alias="pushPings", description="Green minion" 762 ) 763 profile_icon: int = Field(..., alias="profileIcon") 764 puuid: str 765 quadra_kills: int = Field(..., alias="quadraKills") 766 riot_id_game_name: Optional[str] = Field(None, alias="riotIdGameName") 767 riot_id_tagline: Optional[str] = Field(None, alias="riotIdTagline") 768 role: str 769 sight_wards_bought_in_game: int = Field(..., alias="sightWardsBoughtInGame") 770 spell1_casts: int = Field(..., alias="spell1Casts") 771 spell2_casts: int = Field(..., alias="spell2Casts") 772 spell3_casts: int = Field(..., alias="spell3Casts") 773 spell4_casts: int = Field(..., alias="spell4Casts") 774 subteam_placement: Optional[int] = Field(None, alias="subteamPlacement") 775 summoner1_casts: int = Field(..., alias="summoner1Casts") 776 summoner1_id: int = Field(..., alias="summoner1Id") 777 summoner2_casts: int = Field(..., alias="summoner2Casts") 778 summoner2_id: int = Field(..., alias="summoner2Id") 779 summoner_id: str = Field(..., alias="summonerId") 780 summoner_level: int = Field(..., alias="summonerLevel") 781 summoner_name: str = Field(..., alias="summonerName") 782 team_early_surrendered: bool = Field(..., alias="teamEarlySurrendered") 783 team_id: int = Field(..., alias="teamId") 784 team_position: str = Field( 785 ..., 786 alias="teamPosition", 787 description="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.", 788 ) 789 time_c_cing_others: int = Field(..., alias="timeCCingOthers") 790 time_played: int = Field(..., alias="timePlayed") 791 total_ally_jungle_minions_killed: Optional[int] = Field( 792 None, alias="totalAllyJungleMinionsKilled" 793 ) 794 total_damage_dealt: int = Field(..., alias="totalDamageDealt") 795 total_damage_dealt_to_champions: int = Field( 796 ..., alias="totalDamageDealtToChampions" 797 ) 798 total_damage_shielded_on_teammates: int = Field( 799 ..., alias="totalDamageShieldedOnTeammates" 800 ) 801 total_damage_taken: int = Field(..., alias="totalDamageTaken") 802 total_enemy_jungle_minions_killed: Optional[int] = Field( 803 None, alias="totalEnemyJungleMinionsKilled" 804 ) 805 total_heal: int = Field( 806 ..., 807 alias="totalHeal", 808 description="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", 809 ) 810 total_heals_on_teammates: int = Field( 811 ..., 812 alias="totalHealsOnTeammates", 813 description="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", 814 ) 815 total_minions_killed: int = Field( 816 ..., 817 alias="totalMinionsKilled", 818 description="totalMillionsKilled = mMinionsKilled, which is only incremented on kills of kTeamMinion, kMeleeLaneMinion, kSuperLaneMinion, kRangedLaneMinion and kSiegeLaneMinion", 819 ) 820 total_time_cc_dealt: int = Field(..., alias="totalTimeCCDealt") 821 total_time_spent_dead: int = Field(..., alias="totalTimeSpentDead") 822 total_units_healed: int = Field(..., alias="totalUnitsHealed") 823 triple_kills: int = Field(..., alias="tripleKills") 824 true_damage_dealt: int = Field(..., alias="trueDamageDealt") 825 true_damage_dealt_to_champions: int = Field(..., alias="trueDamageDealtToChampions") 826 true_damage_taken: int = Field(..., alias="trueDamageTaken") 827 turret_kills: int = Field(..., alias="turretKills") 828 turret_takedowns: Optional[int] = Field(None, alias="turretTakedowns") 829 turrets_lost: Optional[int] = Field(None, alias="turretsLost") 830 unreal_kills: int = Field(..., alias="unrealKills") 831 vision_score: int = Field(..., alias="visionScore") 832 vision_cleared_pings: Optional[int] = Field(None, alias="visionClearedPings") 833 vision_wards_bought_in_game: int = Field(..., alias="visionWardsBoughtInGame") 834 wards_killed: int = Field(..., alias="wardsKilled") 835 wards_placed: int = Field(..., alias="wardsPlaced") 836 win: bool 837 bait_pings: Optional[int] = Field(None, alias="baitPings") 838 danger_pings: Optional[int] = Field( 839 None, 840 alias="dangerPings", 841 description="https://github.com/RiotGames/developer-relations/issues/870", 842 ) 843 basic_pings: Optional[int] = Field( 844 None, 845 alias="basicPings", 846 description="https://github.com/RiotGames/developer-relations/issues/814", 847 ) 848 player_augment5: Optional[int] = Field(None, alias="playerAugment5") 849 player_augment6: Optional[int] = Field(None, alias="playerAugment6") 850 riot_id_name: Optional[str] = Field( 851 None, 852 alias="riotIdName", 853 description="Deprecated, use `riotIdGameName`. This field name was briefly used instead of `riotIdGameName`, prior to patch 14.5.", 854 ) 855 retreat_pings: Optional[int] = Field( 856 None, 857 alias="retreatPings", 858 description="https://github.com/RiotGames/developer-relations/issues/814", 859 ) 860 champion_skin_id: Optional[int] = Field(None, alias="championSkinId") 861 862 863class InfoTimeLineDto(BaseModel): 864 """@public""" 865 866 end_of_game_result: Optional[str] = Field( 867 None, 868 alias="endOfGameResult", 869 description="Refer to indicate if the game ended in termination.", 870 ) 871 frame_interval: int = Field(..., alias="frameInterval") 872 game_id: Optional[int] = Field(None, alias="gameId") 873 participants: Optional[List[ParticipantTimeLineDto]] = None 874 frames: List[FramesTimeLineDto] 875 876 877class InfoDto(BaseModel): 878 """@public""" 879 880 end_of_game_result: Optional[str] = Field( 881 None, 882 alias="endOfGameResult", 883 description="Refer to indicate if the game ended in termination.", 884 ) 885 game_creation: int = Field( 886 ..., 887 alias="gameCreation", 888 description="Unix timestamp for when the game is created on the game server (i.e., the loading screen).", 889 ) 890 game_duration: int = Field( 891 ..., 892 alias="gameDuration", 893 description="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.", 894 ) 895 game_end_timestamp: Optional[int] = Field( 896 None, 897 alias="gameEndTimestamp", 898 description='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.', 899 ) 900 game_id: int = Field(..., alias="gameId") 901 game_mode: str = Field( 902 ..., alias="gameMode", description="Refer to the Game Constants documentation." 903 ) 904 game_name: str = Field(..., alias="gameName") 905 game_start_timestamp: int = Field( 906 ..., 907 alias="gameStartTimestamp", 908 description="Unix timestamp for when match starts on the game server.", 909 ) 910 game_type: str = Field(..., alias="gameType") 911 game_version: str = Field( 912 ..., 913 alias="gameVersion", 914 description="The first two parts can be used to determine the patch a game was played on.", 915 ) 916 map_id: int = Field( 917 ..., alias="mapId", description="Refer to the Game Constants documentation." 918 ) 919 participants: List[ParticipantDto] 920 platform_id: str = Field( 921 ..., alias="platformId", description="Platform where the match was played." 922 ) 923 queue_id: int = Field( 924 ..., alias="queueId", description="Refer to the Game Constants documentation." 925 ) 926 teams: List[TeamDto] 927 tournament_code: Optional[str] = Field( 928 None, 929 alias="tournamentCode", 930 description="Tournament code used to generate the match. This field was added to match-v5 in patch 11.13 on June 23rd, 2021.", 931 ) 932 game_mode_mutators: Optional[List[str]] = Field(None, alias="gameModeMutators") 933 934 935class TimelineDto(BaseModel): 936 """@public""" 937 938 metadata: MetadataTimeLineDto = Field(..., description="Match metadata.") 939 info: InfoTimeLineDto = Field(..., description="Match info.") 940 941 942class MatchDto(BaseModel): 943 """@public""" 944 945 metadata: MetadataDto = Field(..., description="Match metadata.") 946 info: InfoDto = Field(..., description="Match info.")
class
MetadataDto(pydantic.main.BaseModel):
14class MetadataDto(BaseModel): 15 """@public""" 16 17 data_version: str = Field( 18 ..., alias="dataVersion", description="Match data version." 19 ) 20 match_id: str = Field(..., alias="matchId", description="Match id.") 21 participants: List[str] = Field(..., description="A list of participant PUUIDs.")
class
FasterSupportQuestCompletion(enum.Enum):
integer_0 =
<FasterSupportQuestCompletion.integer_0: 0>
integer_1 =
<FasterSupportQuestCompletion.integer_1: 1>
class
HadAfkTeammate(enum.Enum):
integer_0 =
<HadAfkTeammate.integer_0: 0>
integer_1 =
<HadAfkTeammate.integer_1: 1>
class
HighestCrowdControlScore(enum.Enum):
integer_0 =
<HighestCrowdControlScore.integer_0: 0>
integer_1 =
<HighestCrowdControlScore.integer_1: 1>
class
HighestWardKills(enum.Enum):
integer_0 =
<HighestWardKills.integer_0: 0>
integer_1 =
<HighestWardKills.integer_1: 1>
class
LaningPhaseGoldExpAdvantage(enum.Enum):
integer_0 =
<LaningPhaseGoldExpAdvantage.integer_0: 0>
integer_1 =
<LaningPhaseGoldExpAdvantage.integer_1: 1>
class
PlayedChampSelectPosition(enum.Enum):
integer_0 =
<PlayedChampSelectPosition.integer_0: 0>
integer_1 =
<PlayedChampSelectPosition.integer_1: 1>
class
ChallengesDto(pydantic.main.BaseModel):
66class ChallengesDto(BaseModel): 67 """@public""" 68 69 field_12_assist_streak_count: Optional[int] = Field( 70 None, alias="12AssistStreakCount" 71 ) 72 baron_buff_gold_advantage_over_threshold: Optional[int] = Field( 73 None, alias="baronBuffGoldAdvantageOverThreshold" 74 ) 75 control_ward_time_coverage_in_river_or_enemy_half: Optional[float] = Field( 76 None, alias="controlWardTimeCoverageInRiverOrEnemyHalf" 77 ) 78 earliest_baron: Optional[float] = Field(None, alias="earliestBaron") 79 earliest_dragon_takedown: Optional[float] = Field( 80 None, alias="earliestDragonTakedown" 81 ) 82 earliest_elder_dragon: Optional[float] = Field(None, alias="earliestElderDragon") 83 early_laning_phase_gold_exp_advantage: Optional[float] = Field( 84 None, alias="earlyLaningPhaseGoldExpAdvantage" 85 ) 86 faster_support_quest_completion: Optional[FasterSupportQuestCompletion] = Field( 87 None, alias="fasterSupportQuestCompletion" 88 ) 89 fastest_legendary: Optional[float] = Field(None, alias="fastestLegendary") 90 had_afk_teammate: Optional[HadAfkTeammate] = Field(None, alias="hadAfkTeammate") 91 highest_champion_damage: Optional[int] = Field(None, alias="highestChampionDamage") 92 highest_crowd_control_score: Optional[HighestCrowdControlScore] = Field( 93 None, alias="highestCrowdControlScore" 94 ) 95 highest_ward_kills: Optional[HighestWardKills] = Field( 96 None, alias="highestWardKills" 97 ) 98 jungler_kills_early_jungle: Optional[int] = Field( 99 None, alias="junglerKillsEarlyJungle" 100 ) 101 kills_on_laners_early_jungle_as_jungler: Optional[int] = Field( 102 None, alias="killsOnLanersEarlyJungleAsJungler" 103 ) 104 laning_phase_gold_exp_advantage: Optional[LaningPhaseGoldExpAdvantage] = Field( 105 None, alias="laningPhaseGoldExpAdvantage" 106 ) 107 legendary_count: Optional[int] = Field(None, alias="legendaryCount") 108 max_cs_advantage_on_lane_opponent: Optional[float] = Field( 109 None, alias="maxCsAdvantageOnLaneOpponent" 110 ) 111 max_level_lead_lane_opponent: Optional[int] = Field( 112 None, alias="maxLevelLeadLaneOpponent" 113 ) 114 most_wards_destroyed_one_sweeper: Optional[int] = Field( 115 None, alias="mostWardsDestroyedOneSweeper" 116 ) 117 mythic_item_used: Optional[int] = Field(None, alias="mythicItemUsed") 118 played_champ_select_position: Optional[PlayedChampSelectPosition] = Field( 119 None, alias="playedChampSelectPosition" 120 ) 121 solo_turrets_lategame: Optional[int] = Field(None, alias="soloTurretsLategame") 122 takedowns_first25_minutes: Optional[int] = Field( 123 None, alias="takedownsFirst25Minutes" 124 ) 125 teleport_takedowns: Optional[int] = Field(None, alias="teleportTakedowns") 126 third_inhibitor_destroyed_time: Optional[float] = Field( 127 None, alias="thirdInhibitorDestroyedTime" 128 ) 129 three_wards_one_sweeper_count: Optional[int] = Field( 130 None, alias="threeWardsOneSweeperCount" 131 ) 132 vision_score_advantage_lane_opponent: Optional[float] = Field( 133 None, alias="visionScoreAdvantageLaneOpponent" 134 ) 135 infernal_scale_pickup: Optional[int] = Field(None, alias="InfernalScalePickup") 136 fist_bump_participation: Optional[int] = Field(None, alias="fistBumpParticipation") 137 void_monster_kill: Optional[int] = Field(None, alias="voidMonsterKill") 138 ability_uses: Optional[int] = Field(None, alias="abilityUses") 139 aces_before15_minutes: Optional[int] = Field(None, alias="acesBefore15Minutes") 140 allied_jungle_monster_kills: Optional[float] = Field( 141 None, alias="alliedJungleMonsterKills" 142 ) 143 baron_takedowns: Optional[int] = Field(None, alias="baronTakedowns") 144 blast_cone_opposite_opponent_count: Optional[int] = Field( 145 None, alias="blastConeOppositeOpponentCount" 146 ) 147 bounty_gold: Optional[float] = Field(None, alias="bountyGold") 148 buffs_stolen: Optional[int] = Field(None, alias="buffsStolen") 149 complete_support_quest_in_time: Optional[int] = Field( 150 None, alias="completeSupportQuestInTime" 151 ) 152 control_wards_placed: Optional[int] = Field(None, alias="controlWardsPlaced") 153 damage_per_minute: Optional[float] = Field(None, alias="damagePerMinute") 154 damage_taken_on_team_percentage: Optional[float] = Field( 155 None, alias="damageTakenOnTeamPercentage" 156 ) 157 danced_with_rift_herald: Optional[int] = Field(None, alias="dancedWithRiftHerald") 158 deaths_by_enemy_champs: Optional[int] = Field(None, alias="deathsByEnemyChamps") 159 dodge_skill_shots_small_window: Optional[int] = Field( 160 None, alias="dodgeSkillShotsSmallWindow" 161 ) 162 double_aces: Optional[int] = Field(None, alias="doubleAces") 163 dragon_takedowns: Optional[int] = Field(None, alias="dragonTakedowns") 164 legendary_item_used: Optional[List[int]] = Field(None, alias="legendaryItemUsed") 165 effective_heal_and_shielding: Optional[float] = Field( 166 None, alias="effectiveHealAndShielding" 167 ) 168 elder_dragon_kills_with_opposing_soul: Optional[int] = Field( 169 None, alias="elderDragonKillsWithOpposingSoul" 170 ) 171 elder_dragon_multikills: Optional[int] = Field(None, alias="elderDragonMultikills") 172 enemy_champion_immobilizations: Optional[int] = Field( 173 None, alias="enemyChampionImmobilizations" 174 ) 175 enemy_jungle_monster_kills: Optional[float] = Field( 176 None, alias="enemyJungleMonsterKills" 177 ) 178 epic_monster_kills_near_enemy_jungler: Optional[int] = Field( 179 None, alias="epicMonsterKillsNearEnemyJungler" 180 ) 181 epic_monster_kills_within30_seconds_of_spawn: Optional[int] = Field( 182 None, alias="epicMonsterKillsWithin30SecondsOfSpawn" 183 ) 184 epic_monster_steals: Optional[int] = Field(None, alias="epicMonsterSteals") 185 epic_monster_stolen_without_smite: Optional[int] = Field( 186 None, alias="epicMonsterStolenWithoutSmite" 187 ) 188 first_turret_killed: Optional[float] = Field(None, alias="firstTurretKilled") 189 first_turret_killed_time: Optional[float] = Field( 190 None, alias="firstTurretKilledTime" 191 ) 192 flawless_aces: Optional[int] = Field(None, alias="flawlessAces") 193 full_team_takedown: Optional[int] = Field(None, alias="fullTeamTakedown") 194 game_length: Optional[float] = Field(None, alias="gameLength") 195 get_takedowns_in_all_lanes_early_jungle_as_laner: Optional[int] = Field( 196 None, alias="getTakedownsInAllLanesEarlyJungleAsLaner" 197 ) 198 gold_per_minute: Optional[float] = Field(None, alias="goldPerMinute") 199 had_open_nexus: Optional[int] = Field(None, alias="hadOpenNexus") 200 immobilize_and_kill_with_ally: Optional[int] = Field( 201 None, alias="immobilizeAndKillWithAlly" 202 ) 203 initial_buff_count: Optional[int] = Field(None, alias="initialBuffCount") 204 initial_crab_count: Optional[int] = Field(None, alias="initialCrabCount") 205 jungle_cs_before10_minutes: Optional[float] = Field( 206 None, alias="jungleCsBefore10Minutes" 207 ) 208 jungler_takedowns_near_damaged_epic_monster: Optional[int] = Field( 209 None, alias="junglerTakedownsNearDamagedEpicMonster" 210 ) 211 kda: Optional[float] = None 212 kill_after_hidden_with_ally: Optional[int] = Field( 213 None, alias="killAfterHiddenWithAlly" 214 ) 215 killed_champ_took_full_team_damage_survived: Optional[int] = Field( 216 None, alias="killedChampTookFullTeamDamageSurvived" 217 ) 218 killing_sprees: Optional[int] = Field(None, alias="killingSprees") 219 kill_participation: Optional[float] = Field(None, alias="killParticipation") 220 kills_near_enemy_turret: Optional[int] = Field(None, alias="killsNearEnemyTurret") 221 kills_on_other_lanes_early_jungle_as_laner: Optional[int] = Field( 222 None, alias="killsOnOtherLanesEarlyJungleAsLaner" 223 ) 224 kills_on_recently_healed_by_aram_pack: Optional[int] = Field( 225 None, alias="killsOnRecentlyHealedByAramPack" 226 ) 227 kills_under_own_turret: Optional[int] = Field(None, alias="killsUnderOwnTurret") 228 kills_with_help_from_epic_monster: Optional[int] = Field( 229 None, alias="killsWithHelpFromEpicMonster" 230 ) 231 knock_enemy_into_team_and_kill: Optional[int] = Field( 232 None, alias="knockEnemyIntoTeamAndKill" 233 ) 234 k_turrets_destroyed_before_plates_fall: Optional[int] = Field( 235 None, alias="kTurretsDestroyedBeforePlatesFall" 236 ) 237 land_skill_shots_early_game: Optional[int] = Field( 238 None, alias="landSkillShotsEarlyGame" 239 ) 240 lane_minions_first10_minutes: Optional[int] = Field( 241 None, alias="laneMinionsFirst10Minutes" 242 ) 243 lost_an_inhibitor: Optional[int] = Field(None, alias="lostAnInhibitor") 244 max_kill_deficit: Optional[int] = Field(None, alias="maxKillDeficit") 245 mejais_full_stack_in_time: Optional[int] = Field( 246 None, alias="mejaisFullStackInTime" 247 ) 248 more_enemy_jungle_than_opponent: Optional[float] = Field( 249 None, alias="moreEnemyJungleThanOpponent" 250 ) 251 multi_kill_one_spell: Optional[int] = Field( 252 None, 253 alias="multiKillOneSpell", 254 description="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.", 255 ) 256 multikills: Optional[int] = None 257 multikills_after_aggressive_flash: Optional[int] = Field( 258 None, alias="multikillsAfterAggressiveFlash" 259 ) 260 multi_turret_rift_herald_count: Optional[int] = Field( 261 None, alias="multiTurretRiftHeraldCount" 262 ) 263 outer_turret_executes_before10_minutes: Optional[int] = Field( 264 None, alias="outerTurretExecutesBefore10Minutes" 265 ) 266 outnumbered_kills: Optional[int] = Field(None, alias="outnumberedKills") 267 outnumbered_nexus_kill: Optional[int] = Field(None, alias="outnumberedNexusKill") 268 perfect_dragon_souls_taken: Optional[int] = Field( 269 None, alias="perfectDragonSoulsTaken" 270 ) 271 perfect_game: Optional[int] = Field(None, alias="perfectGame") 272 pick_kill_with_ally: Optional[int] = Field(None, alias="pickKillWithAlly") 273 poro_explosions: Optional[int] = Field(None, alias="poroExplosions") 274 quick_cleanse: Optional[int] = Field(None, alias="quickCleanse") 275 quick_first_turret: Optional[int] = Field(None, alias="quickFirstTurret") 276 quick_solo_kills: Optional[int] = Field(None, alias="quickSoloKills") 277 rift_herald_takedowns: Optional[int] = Field(None, alias="riftHeraldTakedowns") 278 save_ally_from_death: Optional[int] = Field(None, alias="saveAllyFromDeath") 279 scuttle_crab_kills: Optional[int] = Field(None, alias="scuttleCrabKills") 280 shortest_time_to_ace_from_first_takedown: Optional[float] = Field( 281 None, alias="shortestTimeToAceFromFirstTakedown" 282 ) 283 skillshots_dodged: Optional[int] = Field(None, alias="skillshotsDodged") 284 skillshots_hit: Optional[int] = Field(None, alias="skillshotsHit") 285 snowballs_hit: Optional[int] = Field(None, alias="snowballsHit") 286 solo_baron_kills: Optional[int] = Field(None, alias="soloBaronKills") 287 swarm_defeat_aatrox: Optional[int] = Field(None, alias="SWARM_DefeatAatrox") 288 swarm_defeat_briar: Optional[int] = Field(None, alias="SWARM_DefeatBriar") 289 swarm_defeat_mini_bosses: Optional[int] = Field( 290 None, alias="SWARM_DefeatMiniBosses" 291 ) 292 swarm_evolve_weapon: Optional[int] = Field(None, alias="SWARM_EvolveWeapon") 293 swarm_have3_passives: Optional[int] = Field(None, alias="SWARM_Have3Passives") 294 swarm_kill_enemy: Optional[int] = Field(None, alias="SWARM_KillEnemy") 295 swarm_pickup_gold: Optional[float] = Field(None, alias="SWARM_PickupGold") 296 swarm_reach_level50: Optional[int] = Field(None, alias="SWARM_ReachLevel50") 297 swarm_survive15_min: Optional[int] = Field(None, alias="SWARM_Survive15Min") 298 swarm_win_with5_evolved_weapons: Optional[int] = Field( 299 None, alias="SWARM_WinWith5EvolvedWeapons" 300 ) 301 solo_kills: Optional[int] = Field(None, alias="soloKills") 302 stealth_wards_placed: Optional[int] = Field(None, alias="stealthWardsPlaced") 303 survived_single_digit_hp_count: Optional[int] = Field( 304 None, alias="survivedSingleDigitHpCount" 305 ) 306 survived_three_immobilizes_in_fight: Optional[int] = Field( 307 None, alias="survivedThreeImmobilizesInFight" 308 ) 309 takedown_on_first_turret: Optional[int] = Field(None, alias="takedownOnFirstTurret") 310 takedowns: Optional[int] = None 311 takedowns_after_gaining_level_advantage: Optional[int] = Field( 312 None, alias="takedownsAfterGainingLevelAdvantage" 313 ) 314 takedowns_before_jungle_minion_spawn: Optional[int] = Field( 315 None, alias="takedownsBeforeJungleMinionSpawn" 316 ) 317 takedowns_first_x_minutes: Optional[int] = Field( 318 None, alias="takedownsFirstXMinutes" 319 ) 320 takedowns_in_alcove: Optional[int] = Field(None, alias="takedownsInAlcove") 321 takedowns_in_enemy_fountain: Optional[int] = Field( 322 None, alias="takedownsInEnemyFountain" 323 ) 324 team_baron_kills: Optional[int] = Field(None, alias="teamBaronKills") 325 team_damage_percentage: Optional[float] = Field(None, alias="teamDamagePercentage") 326 team_elder_dragon_kills: Optional[int] = Field(None, alias="teamElderDragonKills") 327 team_rift_herald_kills: Optional[int] = Field(None, alias="teamRiftHeraldKills") 328 took_large_damage_survived: Optional[int] = Field( 329 None, alias="tookLargeDamageSurvived" 330 ) 331 turret_plates_taken: Optional[int] = Field(None, alias="turretPlatesTaken") 332 turrets_taken_with_rift_herald: Optional[int] = Field( 333 None, 334 alias="turretsTakenWithRiftHerald", 335 description="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.", 336 ) 337 turret_takedowns: Optional[int] = Field(None, alias="turretTakedowns") 338 twenty_minions_in3_seconds_count: Optional[int] = Field( 339 None, alias="twentyMinionsIn3SecondsCount" 340 ) 341 two_wards_one_sweeper_count: Optional[int] = Field( 342 None, alias="twoWardsOneSweeperCount" 343 ) 344 unseen_recalls: Optional[int] = Field(None, alias="unseenRecalls") 345 vision_score_per_minute: Optional[float] = Field(None, alias="visionScorePerMinute") 346 wards_guarded: Optional[int] = Field(None, alias="wardsGuarded") 347 ward_takedowns: Optional[int] = Field(None, alias="wardTakedowns") 348 ward_takedowns_before20_m: Optional[int] = Field( 349 None, alias="wardTakedownsBefore20M" 350 ) 351 heal_from_map_sources: Optional[float] = Field(None, alias="HealFromMapSources")
faster_support_quest_completion: Optional[FasterSupportQuestCompletion]
had_afk_teammate: Optional[HadAfkTeammate]
highest_crowd_control_score: Optional[HighestCrowdControlScore]
highest_ward_kills: Optional[HighestWardKills]
laning_phase_gold_exp_advantage: Optional[LaningPhaseGoldExpAdvantage]
played_champ_select_position: Optional[PlayedChampSelectPosition]
class
MissionsDto(pydantic.main.BaseModel):
354class MissionsDto(BaseModel): 355 """@public""" 356 357 player_score0: Optional[float] = Field(None, alias="playerScore0") 358 player_score1: Optional[float] = Field(None, alias="playerScore1") 359 player_score2: Optional[float] = Field(None, alias="playerScore2") 360 player_score3: Optional[float] = Field(None, alias="playerScore3") 361 player_score4: Optional[float] = Field(None, alias="playerScore4") 362 player_score5: Optional[float] = Field(None, alias="playerScore5") 363 player_score6: Optional[float] = Field(None, alias="playerScore6") 364 player_score7: Optional[float] = Field(None, alias="playerScore7") 365 player_score8: Optional[float] = Field(None, alias="playerScore8") 366 player_score9: Optional[float] = Field(None, alias="playerScore9") 367 player_score10: Optional[float] = Field(None, alias="playerScore10") 368 player_score11: Optional[float] = Field(None, alias="playerScore11")
class
PerkStatsDto(pydantic.main.BaseModel):
371class PerkStatsDto(BaseModel): 372 """@public""" 373 374 defense: int 375 flex: int 376 offense: int
class
PerkStyleSelectionDto(pydantic.main.BaseModel):
379class PerkStyleSelectionDto(BaseModel): 380 """@public""" 381 382 perk: int 383 var1: int 384 var2: int 385 var3: int
class
BanDto(pydantic.main.BaseModel):
388class BanDto(BaseModel): 389 """@public""" 390 391 champion_id: int = Field(..., alias="championId") 392 pick_turn: int = Field(..., alias="pickTurn")
class
ObjectiveDto(pydantic.main.BaseModel):
class
MetadataTimeLineDto(pydantic.main.BaseModel):
402class MetadataTimeLineDto(BaseModel): 403 """@public""" 404 405 data_version: str = Field( 406 ..., alias="dataVersion", description="Match data version." 407 ) 408 match_id: str = Field(..., alias="matchId", description="Match id.") 409 participants: List[str] = Field(..., description="A list of participant PUUIDs.")
class
ParticipantTimeLineDto(pydantic.main.BaseModel):
412class ParticipantTimeLineDto(BaseModel): 413 """@public""" 414 415 participant_id: int = Field(..., alias="participantId") 416 puuid: str
class
ChampionStatsDto(pydantic.main.BaseModel):
419class ChampionStatsDto(BaseModel): 420 """@public""" 421 422 ability_haste: Optional[int] = Field(None, alias="abilityHaste") 423 ability_power: int = Field(..., alias="abilityPower") 424 armor: int 425 armor_pen: int = Field(..., alias="armorPen") 426 armor_pen_percent: int = Field(..., alias="armorPenPercent") 427 attack_damage: int = Field(..., alias="attackDamage") 428 attack_speed: int = Field(..., alias="attackSpeed") 429 bonus_armor_pen_percent: int = Field(..., alias="bonusArmorPenPercent") 430 bonus_magic_pen_percent: int = Field(..., alias="bonusMagicPenPercent") 431 cc_reduction: int = Field(..., alias="ccReduction") 432 cooldown_reduction: int = Field(..., alias="cooldownReduction") 433 health: int 434 health_max: int = Field(..., alias="healthMax") 435 health_regen: int = Field(..., alias="healthRegen") 436 lifesteal: int 437 magic_pen: int = Field(..., alias="magicPen") 438 magic_pen_percent: int = Field(..., alias="magicPenPercent") 439 magic_resist: int = Field(..., alias="magicResist") 440 movement_speed: int = Field(..., alias="movementSpeed") 441 omnivamp: Optional[int] = None 442 physical_vamp: Optional[int] = Field(None, alias="physicalVamp") 443 power: int 444 power_max: int = Field(..., alias="powerMax") 445 power_regen: int = Field(..., alias="powerRegen") 446 spell_vamp: int = Field(..., alias="spellVamp")
class
DamageStatsDto(pydantic.main.BaseModel):
449class DamageStatsDto(BaseModel): 450 """@public""" 451 452 magic_damage_done: int = Field(..., alias="magicDamageDone") 453 magic_damage_done_to_champions: int = Field(..., alias="magicDamageDoneToChampions") 454 magic_damage_taken: int = Field(..., alias="magicDamageTaken") 455 physical_damage_done: int = Field(..., alias="physicalDamageDone") 456 physical_damage_done_to_champions: int = Field( 457 ..., alias="physicalDamageDoneToChampions" 458 ) 459 physical_damage_taken: int = Field(..., alias="physicalDamageTaken") 460 total_damage_done: int = Field(..., alias="totalDamageDone") 461 total_damage_done_to_champions: int = Field(..., alias="totalDamageDoneToChampions") 462 total_damage_taken: int = Field(..., alias="totalDamageTaken") 463 true_damage_done: int = Field(..., alias="trueDamageDone") 464 true_damage_done_to_champions: int = Field(..., alias="trueDamageDoneToChampions") 465 true_damage_taken: int = Field(..., alias="trueDamageTaken")
class
PositionDto(pydantic.main.BaseModel):
class
MatchTimelineVictimDamage(pydantic.main.BaseModel):
475class MatchTimelineVictimDamage(BaseModel): 476 """@public""" 477 478 basic: bool 479 magic_damage: int = Field(..., alias="magicDamage") 480 name: str 481 participant_id: int = Field(..., alias="participantId") 482 physical_damage: int = Field(..., alias="physicalDamage") 483 spell_name: str = Field(..., alias="spellName") 484 spell_slot: int = Field(..., alias="spellSlot") 485 true_damage: int = Field(..., alias="trueDamage") 486 type: str
class
FeatDto(pydantic.main.BaseModel):
489class FeatDto(BaseModel): 490 """@public""" 491 492 feat_state: Optional[int] = Field(None, alias="featState")
class
PerkStyleDto(pydantic.main.BaseModel):
495class PerkStyleDto(BaseModel): 496 """@public""" 497 498 description: str 499 selections: List[PerkStyleSelectionDto] 500 style: int
selections: List[PerkStyleSelectionDto]
class
ObjectivesDto(pydantic.main.BaseModel):
503class ObjectivesDto(BaseModel): 504 """@public""" 505 506 baron: ObjectiveDto 507 champion: ObjectiveDto 508 dragon: ObjectiveDto 509 horde: Optional[ObjectiveDto] = None 510 inhibitor: ObjectiveDto 511 rift_herald: ObjectiveDto = Field(..., alias="riftHerald") 512 tower: ObjectiveDto 513 atakhan: Optional[ObjectiveDto] = None
baron: ObjectiveDto
champion: ObjectiveDto
dragon: ObjectiveDto
horde: Optional[ObjectiveDto]
inhibitor: ObjectiveDto
rift_herald: ObjectiveDto
tower: ObjectiveDto
atakhan: Optional[ObjectiveDto]
class
EventsTimeLineDto(pydantic.main.BaseModel):
516class EventsTimeLineDto(BaseModel): 517 """@public""" 518 519 timestamp: int 520 real_timestamp: Optional[int] = Field(None, alias="realTimestamp") 521 type: str 522 item_id: Optional[int] = Field(None, alias="itemId") 523 participant_id: Optional[int] = Field(None, alias="participantId") 524 level_up_type: Optional[str] = Field(None, alias="levelUpType") 525 skill_slot: Optional[int] = Field(None, alias="skillSlot") 526 creator_id: Optional[int] = Field(None, alias="creatorId") 527 ward_type: Optional[str] = Field(None, alias="wardType") 528 level: Optional[int] = None 529 assisting_participant_ids: Optional[List[int]] = Field( 530 None, alias="assistingParticipantIds" 531 ) 532 bounty: Optional[int] = None 533 kill_streak_length: Optional[int] = Field(None, alias="killStreakLength") 534 killer_id: Optional[int] = Field(None, alias="killerId") 535 position: Optional[PositionDto] = None 536 victim_damage_dealt: Optional[List[MatchTimelineVictimDamage]] = Field( 537 None, alias="victimDamageDealt" 538 ) 539 victim_damage_received: Optional[List[MatchTimelineVictimDamage]] = Field( 540 None, alias="victimDamageReceived" 541 ) 542 victim_id: Optional[int] = Field(None, alias="victimId") 543 kill_type: Optional[str] = Field(None, alias="killType") 544 lane_type: Optional[str] = Field(None, alias="laneType") 545 team_id: Optional[int] = Field(None, alias="teamId") 546 multi_kill_length: Optional[int] = Field(None, alias="multiKillLength") 547 killer_team_id: Optional[int] = Field(None, alias="killerTeamId") 548 monster_type: Optional[str] = Field(None, alias="monsterType") 549 monster_sub_type: Optional[str] = Field(None, alias="monsterSubType") 550 building_type: Optional[str] = Field(None, alias="buildingType") 551 tower_type: Optional[str] = Field(None, alias="towerType") 552 after_id: Optional[int] = Field(None, alias="afterId") 553 before_id: Optional[int] = Field(None, alias="beforeId") 554 gold_gain: Optional[int] = Field(None, alias="goldGain") 555 game_id: Optional[int] = Field(None, alias="gameId") 556 winning_team: Optional[int] = Field(None, alias="winningTeam") 557 transform_type: Optional[str] = Field(None, alias="transformType") 558 name: Optional[str] = None 559 shutdown_bounty: Optional[int] = Field(None, alias="shutdownBounty") 560 actual_start_time: Optional[int] = Field(None, alias="actualStartTime") 561 feat_type: Optional[int] = Field(None, alias="featType") 562 feat_value: Optional[int] = Field(None, alias="featValue")
position: Optional[PositionDto]
victim_damage_dealt: Optional[List[MatchTimelineVictimDamage]]
victim_damage_received: Optional[List[MatchTimelineVictimDamage]]
class
ParticipantFrameDto(pydantic.main.BaseModel):
565class ParticipantFrameDto(BaseModel): 566 """@public""" 567 568 champion_stats: ChampionStatsDto = Field(..., alias="championStats") 569 current_gold: int = Field(..., alias="currentGold") 570 damage_stats: DamageStatsDto = Field(..., alias="damageStats") 571 gold_per_second: int = Field(..., alias="goldPerSecond") 572 jungle_minions_killed: int = Field(..., alias="jungleMinionsKilled") 573 level: int 574 minions_killed: int = Field(..., alias="minionsKilled") 575 participant_id: int = Field(..., alias="participantId") 576 position: PositionDto 577 time_enemy_spent_controlled: int = Field(..., alias="timeEnemySpentControlled") 578 total_gold: int = Field(..., alias="totalGold") 579 xp: int
champion_stats: ChampionStatsDto
damage_stats: DamageStatsDto
position: PositionDto
class
FeatsDto(pydantic.main.BaseModel):
582class FeatsDto(BaseModel): 583 """@public""" 584 585 epic_monster_kill: Optional[FeatDto] = Field(None, alias="EPIC_MONSTER_KILL") 586 first_blood: Optional[FeatDto] = Field(None, alias="FIRST_BLOOD") 587 first_turret: Optional[FeatDto] = Field(None, alias="FIRST_TURRET")
epic_monster_kill: Optional[FeatDto]
first_blood: Optional[FeatDto]
first_turret: Optional[FeatDto]
class
PerksDto(pydantic.main.BaseModel):
590class PerksDto(BaseModel): 591 """@public""" 592 593 stat_perks: PerkStatsDto = Field(..., alias="statPerks") 594 styles: List[PerkStyleDto]
stat_perks: PerkStatsDto
styles: List[PerkStyleDto]
class
TeamDto(pydantic.main.BaseModel):
597class TeamDto(BaseModel): 598 """@public""" 599 600 bans: List[BanDto] 601 objectives: ObjectivesDto 602 team_id: int = Field(..., alias="teamId") 603 win: bool 604 feats: Optional[FeatsDto] = None
bans: List[BanDto]
objectives: ObjectivesDto
feats: Optional[FeatsDto]
class
FramesTimeLineDto(pydantic.main.BaseModel):
607class FramesTimeLineDto(BaseModel): 608 """@public""" 609 610 events: List[EventsTimeLineDto] 611 participant_frames: Optional[Dict[str, ParticipantFrameDto]] = Field( 612 None, alias="participantFrames" 613 ) 614 timestamp: int
events: List[EventsTimeLineDto]
participant_frames: Optional[Dict[str, ParticipantFrameDto]]
class
ParticipantFramesDto(pydantic.main.BaseModel):
617class ParticipantFramesDto(BaseModel): 618 """@public""" 619 620 field_1_9: ParticipantFrameDto = Field( 621 ..., alias="1-9", description="Key value mapping for each participant" 622 )
field_1_9: ParticipantFrameDto
class
ParticipantDto(pydantic.main.BaseModel):
625class ParticipantDto(BaseModel): 626 """@public""" 627 628 all_in_pings: Optional[int] = Field( 629 None, alias="allInPings", description="Yellow crossed swords" 630 ) 631 assist_me_pings: Optional[int] = Field( 632 None, alias="assistMePings", description="Green flag" 633 ) 634 assists: int 635 baron_kills: int = Field(..., alias="baronKills") 636 bounty_level: Optional[int] = Field(None, alias="bountyLevel") 637 champ_experience: int = Field(..., alias="champExperience") 638 champ_level: int = Field(..., alias="champLevel") 639 champion_id: int = Field( 640 ..., 641 alias="championId", 642 description="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.", 643 ) 644 champion_name: str = Field(..., alias="championName") 645 command_pings: Optional[int] = Field( 646 None, alias="commandPings", description="Blue generic ping (ALT+click)" 647 ) 648 champion_transform: int = Field( 649 ..., 650 alias="championTransform", 651 description="This field is currently only utilized for Kayn's transformations. (Legal values: 0 - None, 1 - Slayer, 2 - Assassin)", 652 ) 653 consumables_purchased: int = Field(..., alias="consumablesPurchased") 654 challenges: Optional[ChallengesDto] = None 655 damage_dealt_to_buildings: Optional[int] = Field( 656 None, alias="damageDealtToBuildings" 657 ) 658 damage_dealt_to_objectives: int = Field(..., alias="damageDealtToObjectives") 659 damage_dealt_to_turrets: int = Field(..., alias="damageDealtToTurrets") 660 damage_self_mitigated: int = Field(..., alias="damageSelfMitigated") 661 deaths: int 662 detector_wards_placed: int = Field(..., alias="detectorWardsPlaced") 663 double_kills: int = Field(..., alias="doubleKills") 664 dragon_kills: int = Field(..., alias="dragonKills") 665 eligible_for_progression: Optional[bool] = Field( 666 None, alias="eligibleForProgression" 667 ) 668 enemy_missing_pings: Optional[int] = Field( 669 None, alias="enemyMissingPings", description="Yellow questionmark" 670 ) 671 enemy_vision_pings: Optional[int] = Field( 672 None, alias="enemyVisionPings", description="Red eyeball" 673 ) 674 first_blood_assist: bool = Field(..., alias="firstBloodAssist") 675 first_blood_kill: bool = Field(..., alias="firstBloodKill") 676 first_tower_assist: bool = Field(..., alias="firstTowerAssist") 677 first_tower_kill: bool = Field(..., alias="firstTowerKill") 678 game_ended_in_early_surrender: bool = Field( 679 ..., 680 alias="gameEndedInEarlySurrender", 681 description="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.", 682 ) 683 game_ended_in_surrender: bool = Field(..., alias="gameEndedInSurrender") 684 hold_pings: Optional[int] = Field(None, alias="holdPings") 685 get_back_pings: Optional[int] = Field( 686 None, alias="getBackPings", description="Yellow circle with horizontal line" 687 ) 688 gold_earned: int = Field(..., alias="goldEarned") 689 gold_spent: int = Field(..., alias="goldSpent") 690 individual_position: str = Field( 691 ..., 692 alias="individualPosition", 693 description="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.", 694 ) 695 inhibitor_kills: int = Field(..., alias="inhibitorKills") 696 inhibitor_takedowns: Optional[int] = Field(None, alias="inhibitorTakedowns") 697 inhibitors_lost: Optional[int] = Field(None, alias="inhibitorsLost") 698 item0: int 699 item1: int 700 item2: int 701 item3: int 702 item4: int 703 item5: int 704 item6: int 705 items_purchased: int = Field(..., alias="itemsPurchased") 706 killing_sprees: int = Field(..., alias="killingSprees") 707 kills: int 708 lane: str 709 largest_critical_strike: int = Field(..., alias="largestCriticalStrike") 710 largest_killing_spree: int = Field(..., alias="largestKillingSpree") 711 largest_multi_kill: int = Field(..., alias="largestMultiKill") 712 longest_time_spent_living: int = Field(..., alias="longestTimeSpentLiving") 713 magic_damage_dealt: int = Field(..., alias="magicDamageDealt") 714 magic_damage_dealt_to_champions: int = Field( 715 ..., alias="magicDamageDealtToChampions" 716 ) 717 magic_damage_taken: int = Field(..., alias="magicDamageTaken") 718 missions: Optional[MissionsDto] = None 719 neutral_minions_killed: int = Field( 720 ..., 721 alias="neutralMinionsKilled", 722 description="neutralMinionsKilled = mNeutralMinionsKilled, which is incremented on kills of kPet and kJungleMonster", 723 ) 724 need_vision_pings: Optional[int] = Field( 725 None, alias="needVisionPings", description="Green ward" 726 ) 727 nexus_kills: int = Field(..., alias="nexusKills") 728 nexus_takedowns: Optional[int] = Field(None, alias="nexusTakedowns") 729 nexus_lost: Optional[int] = Field(None, alias="nexusLost") 730 objectives_stolen: int = Field(..., alias="objectivesStolen") 731 objectives_stolen_assists: int = Field(..., alias="objectivesStolenAssists") 732 on_my_way_pings: Optional[int] = Field( 733 None, alias="onMyWayPings", description="Blue arrow pointing at ground" 734 ) 735 participant_id: int = Field(..., alias="participantId") 736 player_score0: Optional[float] = Field(None, alias="playerScore0") 737 player_score1: Optional[float] = Field(None, alias="playerScore1") 738 player_score2: Optional[float] = Field(None, alias="playerScore2") 739 player_score3: Optional[float] = Field(None, alias="playerScore3") 740 player_score4: Optional[float] = Field(None, alias="playerScore4") 741 player_score5: Optional[float] = Field(None, alias="playerScore5") 742 player_score6: Optional[float] = Field(None, alias="playerScore6") 743 player_score7: Optional[float] = Field(None, alias="playerScore7") 744 player_score8: Optional[float] = Field(None, alias="playerScore8") 745 player_score9: Optional[float] = Field(None, alias="playerScore9") 746 player_score10: Optional[float] = Field(None, alias="playerScore10") 747 player_score11: Optional[float] = Field(None, alias="playerScore11") 748 penta_kills: int = Field(..., alias="pentaKills") 749 perks: PerksDto 750 physical_damage_dealt: int = Field(..., alias="physicalDamageDealt") 751 physical_damage_dealt_to_champions: int = Field( 752 ..., alias="physicalDamageDealtToChampions" 753 ) 754 physical_damage_taken: int = Field(..., alias="physicalDamageTaken") 755 placement: Optional[int] = None 756 player_augment1: Optional[int] = Field(None, alias="playerAugment1") 757 player_augment2: Optional[int] = Field(None, alias="playerAugment2") 758 player_augment3: Optional[int] = Field(None, alias="playerAugment3") 759 player_augment4: Optional[int] = Field(None, alias="playerAugment4") 760 player_subteam_id: Optional[int] = Field(None, alias="playerSubteamId") 761 push_pings: Optional[int] = Field( 762 None, alias="pushPings", description="Green minion" 763 ) 764 profile_icon: int = Field(..., alias="profileIcon") 765 puuid: str 766 quadra_kills: int = Field(..., alias="quadraKills") 767 riot_id_game_name: Optional[str] = Field(None, alias="riotIdGameName") 768 riot_id_tagline: Optional[str] = Field(None, alias="riotIdTagline") 769 role: str 770 sight_wards_bought_in_game: int = Field(..., alias="sightWardsBoughtInGame") 771 spell1_casts: int = Field(..., alias="spell1Casts") 772 spell2_casts: int = Field(..., alias="spell2Casts") 773 spell3_casts: int = Field(..., alias="spell3Casts") 774 spell4_casts: int = Field(..., alias="spell4Casts") 775 subteam_placement: Optional[int] = Field(None, alias="subteamPlacement") 776 summoner1_casts: int = Field(..., alias="summoner1Casts") 777 summoner1_id: int = Field(..., alias="summoner1Id") 778 summoner2_casts: int = Field(..., alias="summoner2Casts") 779 summoner2_id: int = Field(..., alias="summoner2Id") 780 summoner_id: str = Field(..., alias="summonerId") 781 summoner_level: int = Field(..., alias="summonerLevel") 782 summoner_name: str = Field(..., alias="summonerName") 783 team_early_surrendered: bool = Field(..., alias="teamEarlySurrendered") 784 team_id: int = Field(..., alias="teamId") 785 team_position: str = Field( 786 ..., 787 alias="teamPosition", 788 description="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.", 789 ) 790 time_c_cing_others: int = Field(..., alias="timeCCingOthers") 791 time_played: int = Field(..., alias="timePlayed") 792 total_ally_jungle_minions_killed: Optional[int] = Field( 793 None, alias="totalAllyJungleMinionsKilled" 794 ) 795 total_damage_dealt: int = Field(..., alias="totalDamageDealt") 796 total_damage_dealt_to_champions: int = Field( 797 ..., alias="totalDamageDealtToChampions" 798 ) 799 total_damage_shielded_on_teammates: int = Field( 800 ..., alias="totalDamageShieldedOnTeammates" 801 ) 802 total_damage_taken: int = Field(..., alias="totalDamageTaken") 803 total_enemy_jungle_minions_killed: Optional[int] = Field( 804 None, alias="totalEnemyJungleMinionsKilled" 805 ) 806 total_heal: int = Field( 807 ..., 808 alias="totalHeal", 809 description="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", 810 ) 811 total_heals_on_teammates: int = Field( 812 ..., 813 alias="totalHealsOnTeammates", 814 description="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", 815 ) 816 total_minions_killed: int = Field( 817 ..., 818 alias="totalMinionsKilled", 819 description="totalMillionsKilled = mMinionsKilled, which is only incremented on kills of kTeamMinion, kMeleeLaneMinion, kSuperLaneMinion, kRangedLaneMinion and kSiegeLaneMinion", 820 ) 821 total_time_cc_dealt: int = Field(..., alias="totalTimeCCDealt") 822 total_time_spent_dead: int = Field(..., alias="totalTimeSpentDead") 823 total_units_healed: int = Field(..., alias="totalUnitsHealed") 824 triple_kills: int = Field(..., alias="tripleKills") 825 true_damage_dealt: int = Field(..., alias="trueDamageDealt") 826 true_damage_dealt_to_champions: int = Field(..., alias="trueDamageDealtToChampions") 827 true_damage_taken: int = Field(..., alias="trueDamageTaken") 828 turret_kills: int = Field(..., alias="turretKills") 829 turret_takedowns: Optional[int] = Field(None, alias="turretTakedowns") 830 turrets_lost: Optional[int] = Field(None, alias="turretsLost") 831 unreal_kills: int = Field(..., alias="unrealKills") 832 vision_score: int = Field(..., alias="visionScore") 833 vision_cleared_pings: Optional[int] = Field(None, alias="visionClearedPings") 834 vision_wards_bought_in_game: int = Field(..., alias="visionWardsBoughtInGame") 835 wards_killed: int = Field(..., alias="wardsKilled") 836 wards_placed: int = Field(..., alias="wardsPlaced") 837 win: bool 838 bait_pings: Optional[int] = Field(None, alias="baitPings") 839 danger_pings: Optional[int] = Field( 840 None, 841 alias="dangerPings", 842 description="https://github.com/RiotGames/developer-relations/issues/870", 843 ) 844 basic_pings: Optional[int] = Field( 845 None, 846 alias="basicPings", 847 description="https://github.com/RiotGames/developer-relations/issues/814", 848 ) 849 player_augment5: Optional[int] = Field(None, alias="playerAugment5") 850 player_augment6: Optional[int] = Field(None, alias="playerAugment6") 851 riot_id_name: Optional[str] = Field( 852 None, 853 alias="riotIdName", 854 description="Deprecated, use `riotIdGameName`. This field name was briefly used instead of `riotIdGameName`, prior to patch 14.5.", 855 ) 856 retreat_pings: Optional[int] = Field( 857 None, 858 alias="retreatPings", 859 description="https://github.com/RiotGames/developer-relations/issues/814", 860 ) 861 champion_skin_id: Optional[int] = Field(None, alias="championSkinId")
challenges: Optional[ChallengesDto]
missions: Optional[MissionsDto]
perks: PerksDto
class
InfoTimeLineDto(pydantic.main.BaseModel):
864class InfoTimeLineDto(BaseModel): 865 """@public""" 866 867 end_of_game_result: Optional[str] = Field( 868 None, 869 alias="endOfGameResult", 870 description="Refer to indicate if the game ended in termination.", 871 ) 872 frame_interval: int = Field(..., alias="frameInterval") 873 game_id: Optional[int] = Field(None, alias="gameId") 874 participants: Optional[List[ParticipantTimeLineDto]] = None 875 frames: List[FramesTimeLineDto]
participants: Optional[List[ParticipantTimeLineDto]]
frames: List[FramesTimeLineDto]
class
InfoDto(pydantic.main.BaseModel):
878class InfoDto(BaseModel): 879 """@public""" 880 881 end_of_game_result: Optional[str] = Field( 882 None, 883 alias="endOfGameResult", 884 description="Refer to indicate if the game ended in termination.", 885 ) 886 game_creation: int = Field( 887 ..., 888 alias="gameCreation", 889 description="Unix timestamp for when the game is created on the game server (i.e., the loading screen).", 890 ) 891 game_duration: int = Field( 892 ..., 893 alias="gameDuration", 894 description="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.", 895 ) 896 game_end_timestamp: Optional[int] = Field( 897 None, 898 alias="gameEndTimestamp", 899 description='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.', 900 ) 901 game_id: int = Field(..., alias="gameId") 902 game_mode: str = Field( 903 ..., alias="gameMode", description="Refer to the Game Constants documentation." 904 ) 905 game_name: str = Field(..., alias="gameName") 906 game_start_timestamp: int = Field( 907 ..., 908 alias="gameStartTimestamp", 909 description="Unix timestamp for when match starts on the game server.", 910 ) 911 game_type: str = Field(..., alias="gameType") 912 game_version: str = Field( 913 ..., 914 alias="gameVersion", 915 description="The first two parts can be used to determine the patch a game was played on.", 916 ) 917 map_id: int = Field( 918 ..., alias="mapId", description="Refer to the Game Constants documentation." 919 ) 920 participants: List[ParticipantDto] 921 platform_id: str = Field( 922 ..., alias="platformId", description="Platform where the match was played." 923 ) 924 queue_id: int = Field( 925 ..., alias="queueId", description="Refer to the Game Constants documentation." 926 ) 927 teams: List[TeamDto] 928 tournament_code: Optional[str] = Field( 929 None, 930 alias="tournamentCode", 931 description="Tournament code used to generate the match. This field was added to match-v5 in patch 11.13 on June 23rd, 2021.", 932 ) 933 game_mode_mutators: Optional[List[str]] = Field(None, alias="gameModeMutators")
participants: List[ParticipantDto]
teams: List[TeamDto]
class
TimelineDto(pydantic.main.BaseModel):
936class TimelineDto(BaseModel): 937 """@public""" 938 939 metadata: MetadataTimeLineDto = Field(..., description="Match metadata.") 940 info: InfoTimeLineDto = Field(..., description="Match info.")
metadata: MetadataTimeLineDto
info: InfoTimeLineDto
class
MatchDto(pydantic.main.BaseModel):
943class MatchDto(BaseModel): 944 """@public""" 945 946 metadata: MetadataDto = Field(..., description="Match metadata.") 947 info: InfoDto = Field(..., description="Match info.")
metadata: MetadataDto
info: InfoDto