class MerakiCDNSchema:
LolChampionModifier = TypedDict("LolChampionModifier", {
"values": list[float],
"units": list[str]
})
LolChampionAbilityEffectLeveling = TypedDict("LolChampionAbilityEffectLeveling", {
"attribute": str,
"modifiers": list[LolChampionModifier]
})
LolChampionAbilityEffect = TypedDict("LolChampionAbilityEffect", {
"description": str,
"leveling": list[LolChampionAbilityEffectLeveling]
})
LolChampionAbilityCost = TypedDict("LolChampionAbilityCost", {
"modifiers": list[LolChampionModifier],
})
LolChampionAbilityCooldown = TypedDict("LolChampionAbilityCooldown", {
"modifiers": list[LolChampionModifier],
"affectedByCdr": bool
})
LolChampionAbility = TypedDict("LolChampionAbility", {
"name": str,
"icon": str,
"effects": list[LolChampionAbilityEffect],
"cost": LolChampionAbilityCost | None,
"cooldown": LolChampionAbilityCooldown | None,
"targeting": str,
"affects": str,
"spellshieldable": str | None,
"resource": str | None,
"damageType": str | None,
"spellEffects": str | None,
"projectile": str | None,
"onHitEffects": str | None,
"occurrence": str | None,
"notes": str,
"blurb": str,
"missileSpeed": str | None,
"rechargeRate": list[int] | None,
"collisionRadius": str | None,
"tetherRadius": str | None,
"onTargetCdStatic": str | None,
"innerRadius": str | None,
"speed": str | None,
"width": str | None,
"angle": str | None,
"castTime": str | None,
"effectRadius": str | None,
"targetRange": str | None
})
LolChampionStat = TypedDict("LolChampionStat", {
"flat": float,
"percent": float,
"perLevel": float,
"percentPerLevel": float
})
LolChampionStats = TypedDict("LolChampionStats", {
"health": LolChampionStat,
"healthRegen": LolChampionStat,
"mana": LolChampionStat,
"manaRegen": LolChampionStat,
"armor": LolChampionStat,
"magicResistance": LolChampionStat,
"attackDamage": LolChampionStat,
"movespeed": LolChampionStat,
"acquisitionRadius": LolChampionStat,
"selectionRadius": LolChampionStat,
"pathingRadius": LolChampionStat,
"gameplayRadius": LolChampionStat,
"criticalStrikeDamage": LolChampionStat,
"criticalStrikeDamageModifier": LolChampionStat,
"attackSpeed": LolChampionStat,
"attackSpeedRatio": LolChampionStat,
"attackCastTime": LolChampionStat,
"attackTotalTime": LolChampionStat,
"attackDelayOffset": LolChampionStat,
"attackRange": LolChampionStat,
"aramDamageTaken": LolChampionStat,
"aramDamageDealt": LolChampionStat,
"aramHealing": LolChampionStat,
"aramShielding": LolChampionStat,
"urfDamageTaken": LolChampionStat,
"urfDamageDealt": LolChampionStat,
"urfHealing": LolChampionStat,
"urfShielding": LolChampionStat,
"aramAbilityHaste": LolChampionStat,
"aramAttackSpeed": LolChampionStat,
"aramEnergyRegen": LolChampionStat,
"aramTenacity": LolChampionStat,
})
LolChampionAttributeRatings = TypedDict("LolChampionAttributeRatings", {
"attack": NotRequired[int],
"damage": int,
"defense": NotRequired[int],
"magic": NotRequired[int],
"toughness": int,
"control": int,
"mobility": int,
"utility": int,
"abilityReliance": int,
"difficulty": int
})
LolChampionAbilities = TypedDict("LolChampionAbilities", {
"P": list[LolChampionAbility],
"Q": list[LolChampionAbility],
"W": list[LolChampionAbility],
"E": list[LolChampionAbility],
"R": list[LolChampionAbility]
})
LolChampionPrice = TypedDict("LolChampionPrice", {
"blueEssence": int,
"rp": int,
"saleRp": int
})
LolChampionSkinChromaDescription = TypedDict("LolChampionSkinChromaDescription", {
"description": str | None,
"region": str | None
})
LolChampionSkinChromaRarity = TypedDict("LolChampionSkinChromaRarity", {
"rarity": int | None,
"region": str | None
})
LolChampionSkinChroma = TypedDict("LolChampionSkinChroma", {
"name": str,
"id": int,
"chromaPath": str,
"colors": list[str],
"descriptions": list[LolChampionSkinChromaDescription],
"rarities": list[LolChampionSkinChromaRarity]
})
LolChampionSkin = TypedDict("LolChampionSkin", {
"name": str,
"id": int,
"isBase": bool,
"availability": str,
"formatName": str,
"lootEligible": bool,
"cost": int | str,
"sale": int,
"distribution": str | None,
"rarity": str,
"chromas": list[LolChampionSkinChroma],
"lore": str,
"release": str,
"set": list[str],
"splashPath": str,
"uncenteredSplashPath": str,
"tilePath": str,
"loadScreenPath": str,
"loadScreenVintagePath": str | None,
"newEffects": bool,
"newAnimations": bool,
"newRecall": bool,
"newVoice": bool,
"newQuotes": bool,
"voiceActor": list[str],
"splashArtist": list[str]
})
LolChampion = TypedDict("LolChampion", {
"id": int,
"key": str,
"name": str,
"title": str,
"fullName": str,
"icon": str,
"resource": str,
"attackType": str,
"adaptiveType": str,
"stats": LolChampionStats,
"positions": list[str],
"roles": list[str],
"attributeRatings": LolChampionAttributeRatings,
"abilities": LolChampionAbilities,
"releaseDate": str,
"releasePatch": str,
"patchLastChanged": str,
"price": LolChampionPrice,
"lore": str,
"faction": str,
"skins": list[LolChampionSkin]
})
LolItemStat = TypedDict("LolItemStat", {
"flat": float,
"percent": float,
"perLevel": float,
"percentPerLevel": float,
"percentBase": float,
"percentBonus": float
})
LolItemStats = TypedDict("Stats", {
"abilityPower": LolItemStat,
"armor": LolItemStat,
"armorPenetration": LolItemStat,
"attackDamage": LolItemStat,
"attackSpeed": LolItemStat,
"cooldownReduction": LolItemStat,
"criticalStrikeChance": LolItemStat,
"goldPer10": LolItemStat,
"healAndShieldPower": LolItemStat,
"health": LolItemStat,
"healthRegen": LolItemStat,
"lethality": LolItemStat,
"lifesteal": LolItemStat,
"magicPenetration": LolItemStat,
"magicResistance": LolItemStat,
"mana": LolItemStat,
"manaRegen": LolItemStat,
"movespeed": LolItemStat,
"abilityHaste": LolItemStat,
"omnivamp": LolItemStat,
"tenacity": LolItemStat
})
LolItemPassive = TypedDict("LolItemPassive", {
"unique": bool,
"mythic": bool,
"name": str,
"effects": str | None,
"range": int | None,
"cooldown": int | None,
"stats": LolItemStats
})
LolItemActive = TypedDict("LolItemActive", {
"unique": bool,
"name": str,
"effects": str | None,
"range": int | None,
"cooldown": int | None
})
LolItemShopPrices = TypedDict("LolItemShopPrices", {
"total": int,
"combined": int,
"sell": int
})
LolItemShop = TypedDict("LolItemShop", {
"prices": LolItemShopPrices,
"purchasable": bool,
"tags": list[str]
})
LolItem = TypedDict("LolItem", {
"name": str,
"id": int,
"tier": int,
"rank": list[str],
"buildsFrom": list[int],
"buildsInto": list[int],
"specialRecipe": int,
"noEffects": bool,
"removed": bool,
"requiredChampion": str,
"requiredAlly": str,
"icon": str,
"simpleDescription": str | None,
"nicknames": list[str],
"passives": list[LolItemPassive],
"active": list[LolItemActive],
"stats": LolItemStats,
"shop": LolItemShop,
"iconOverlay": bool
})
LolPlayRate = TypedDict("LolPlayRate", {"playRate": float})
LolChampionRate = TypedDict("LolChampionRate", {
"TOP": LolPlayRate,
"JUNGLE": LolPlayRate,
"MIDDLE": LolPlayRate,
"BOTTOM": LolPlayRate,
"UTILITY": LolPlayRate,
})
LolChampionRates = TypedDict("LolChampionRates", {
"data": dict[str, LolChampionRate],
"patch": str
})