syntax = "proto3";
package POGOProtos.Data;

import public "POGOProtos.Enums.proto";
import public "POGOProtos.Data.Player.proto";
import public "POGOProtos.Inventory.Item.proto";
import public "POGOProtos.Data.Redeem.proto";

message AssetDigestEntry {
	string asset_id = 1;
	string bundle_name = 2;
	int64 version = 3;
	fixed32 checksum = 4;
	int32 size = 5;
	bytes key = 6;
}
message BackgroundToken {
	bytes token = 1;
	int64 expiration_time = 2;
	bytes iv = 3;
}
message BuddyPokemon {
	fixed64 id = 1;
	double start_km_walked = 2;
	double last_km_awarded = 3;
}
message ClientVersion {
	string min_version = 1;
}
message DownloadUrlEntry {
	string asset_id = 1;
	string url = 2;
	int32 size = 3;
	fixed32 checksum = 4;
}
message PlayerBadge {
	.POGOProtos.Enums.BadgeType badge_type = 1;
	int32 rank = 2;
	int32 start_value = 3;
	int32 end_value = 4;
	double current_value = 5;
}
message PlayerData {
	int64 creation_timestamp_ms = 1;
	string username = 2;
	.POGOProtos.Enums.TeamColor team = 5;
	repeated .POGOProtos.Enums.TutorialState tutorial_state = 7 [packed = true];
	.POGOProtos.Data.Player.PlayerAvatar avatar = 8;
	int32 max_pokemon_storage = 9;
	int32 max_item_storage = 10;
	.POGOProtos.Data.Player.DailyBonus daily_bonus = 11;
	.POGOProtos.Data.Player.EquippedBadge equipped_badge = 12;
	.POGOProtos.Data.Player.ContactSettings contact_settings = 13;
	repeated .POGOProtos.Data.Player.Currency currencies = 14;
	int32 remaining_codename_claims = 15;
	.POGOProtos.Data.BuddyPokemon buddy_pokemon = 16;
	int64 battle_lockout_end_ms = 17;
	.POGOProtos.Data.Player.PlayerAvatar secondary_player_avatar = 18;
	bool name_is_blacklisted = 19;
}
message PokedexEntry {
	.POGOProtos.Enums.PokemonId pokemon_id = 1;
	int32 times_encountered = 2;
	int32 times_captured = 3;
	int32 evolution_stone_pieces = 4;
	int32 evolution_stones = 5;
	repeated .POGOProtos.Enums.Costume captured_costumes = 6;
	repeated .POGOProtos.Enums.Form captured_forms = 7;
	repeated .POGOProtos.Enums.Gender captured_genders = 8;
	bool captured_shiny = 9;
	repeated .POGOProtos.Enums.Costume encountered_costumes = 10;
	repeated .POGOProtos.Enums.Form encountered_forms = 11;
	repeated .POGOProtos.Enums.Gender encountered_genders = 12;
	bool encountered_shiny = 13;
}
message PokemonData {
	fixed64 id = 1;
	.POGOProtos.Enums.PokemonId pokemon_id = 2;
	int32 cp = 3;
	int32 stamina = 4;
	int32 stamina_max = 5;
	.POGOProtos.Enums.PokemonMove move_1 = 6;
	.POGOProtos.Enums.PokemonMove move_2 = 7;
	string deployed_fort_id = 8;
	string owner_name = 9;
	bool is_egg = 10;
	double egg_km_walked_target = 11;
	double egg_km_walked_start = 12;
	int32 origin = 14;
	float height_m = 15;
	float weight_kg = 16;
	int32 individual_attack = 17;
	int32 individual_defense = 18;
	int32 individual_stamina = 19;
	float cp_multiplier = 20;
	.POGOProtos.Inventory.Item.ItemId pokeball = 21;
	uint64 captured_cell_id = 22;
	int32 battles_attacked = 23;
	int32 battles_defended = 24;
	string egg_incubator_id = 25;
	uint64 creation_time_ms = 26;
	int32 num_upgrades = 27;
	float additional_cp_multiplier = 28;
	int32 favorite = 29;
	string nickname = 30;
	int32 from_fort = 31;
	int32 buddy_candy_awarded = 32;
	float buddy_total_km_walked = 33;
	int32 display_pokemon_id = 34;
	int32 display_cp = 35;
	.POGOProtos.Data.PokemonDisplay pokemon_display = 36;
}
message PokemonDisplay {
	.POGOProtos.Enums.Costume costume = 1;
	.POGOProtos.Enums.Gender gender = 2;
	bool shiny = 3;
	.POGOProtos.Enums.Form form = 4;
}
message RedeemPasscodeReward {
	repeated .POGOProtos.Data.Redeem.RedeemedItem items = 1;
	repeated .POGOProtos.Data.Redeem.RedeemedAvatarItem avatar_items = 2;
	repeated .POGOProtos.Data.PokemonData egg_pokemon = 3;
	repeated .POGOProtos.Data.PokemonData pokemon = 4;
	repeated .POGOProtos.Data.Redeem.PokeCandy poke_candy = 5;
	int32 stardust = 6;
	int32 pokecoins = 7;
}
