models.py•8.71 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-06-29T02:10:59+00:00
from __future__ import annotations
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel, Field
class AchievementType(Enum):
ACHIEVEMENT_TYPE_UNSPECIFIED = 'ACHIEVEMENT_TYPE_UNSPECIFIED'
STANDARD = 'STANDARD'
INCREMENTAL = 'INCREMENTAL'
class InitialState(Enum):
INITIAL_STATE_UNSPECIFIED = 'INITIAL_STATE_UNSPECIFIED'
HIDDEN = 'HIDDEN'
REVEALED = 'REVEALED'
class NumberFormatType(Enum):
NUMBER_FORMAT_TYPE_UNSPECIFIED = 'NUMBER_FORMAT_TYPE_UNSPECIFIED'
NUMERIC = 'NUMERIC'
TIME_DURATION = 'TIME_DURATION'
CURRENCY = 'CURRENCY'
class ScoreOrder(Enum):
SCORE_ORDER_UNSPECIFIED = 'SCORE_ORDER_UNSPECIFIED'
LARGER_IS_BETTER = 'LARGER_IS_BETTER'
SMALLER_IS_BETTER = 'SMALLER_IS_BETTER'
class LocalizedString(BaseModel):
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedString`.',
)
locale: Optional[str] = Field(None, description='The locale string.')
value: Optional[str] = Field(None, description='The string value.')
class LocalizedStringBundle(BaseModel):
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#localizedStringBundle`.',
)
translations: Optional[List[LocalizedString]] = Field(
None, description='The locale strings.'
)
class FieldXgafv(Enum):
field_1 = '1'
field_2 = '2'
class Alt(Enum):
json = 'json'
media = 'media'
proto = 'proto'
class AchievementConfigurationDetail(BaseModel):
description: Optional[LocalizedStringBundle] = Field(
None, description='Localized strings for the achievement description.'
)
iconUrl: Optional[str] = Field(
None,
description='The icon url of this achievement. Writes to this field are ignored.',
)
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfigurationDetail`.',
)
name: Optional[LocalizedStringBundle] = Field(
None, description='Localized strings for the achievement name.'
)
pointValue: Optional[int] = Field(
None, description='Point value for the achievement.'
)
sortRank: Optional[int] = Field(
None,
description='The sort rank of this achievement. Writes to this field are ignored.',
)
class GamesNumberAffixConfiguration(BaseModel):
few: Optional[LocalizedStringBundle] = Field(
None,
description='When the language requires special treatment of "small" numbers (as with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12, 13, or 14 in Polish).',
)
many: Optional[LocalizedStringBundle] = Field(
None,
description='When the language requires special treatment of "large" numbers (as with numbers ending 11-99 in Maltese).',
)
one: Optional[LocalizedStringBundle] = Field(
None,
description='When the language requires special treatment of numbers like one (as with the number 1 in English and most other languages; in Russian, any number ending in 1 but not ending in 11 is in this class).',
)
other: Optional[LocalizedStringBundle] = Field(
None,
description='When the language does not require special treatment of the given quantity (as with all numbers in Chinese, or 42 in English).',
)
two: Optional[LocalizedStringBundle] = Field(
None,
description='When the language requires special treatment of numbers like two (as with 2 in Welsh, or 102 in Slovenian).',
)
zero: Optional[LocalizedStringBundle] = Field(
None,
description='When the language requires special treatment of the number 0 (as in Arabic).',
)
class GamesNumberFormatConfiguration(BaseModel):
currencyCode: Optional[str] = Field(
None, description='The curreny code string. Only used for CURRENCY format type.'
)
numDecimalPlaces: Optional[int] = Field(
None,
description='The number of decimal places for number. Only used for NUMERIC format type.',
)
numberFormatType: Optional[NumberFormatType] = Field(
None, description='The formatting for the number.'
)
suffix: Optional[GamesNumberAffixConfiguration] = Field(
None,
description='An optional suffix for the NUMERIC format type. These strings follow the same plural rules as all Android string resources.',
)
class LeaderboardConfigurationDetail(BaseModel):
iconUrl: Optional[str] = Field(
None,
description='The icon url of this leaderboard. Writes to this field are ignored.',
)
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationDetail`.',
)
name: Optional[LocalizedStringBundle] = Field(
None, description='Localized strings for the leaderboard name.'
)
scoreFormat: Optional[GamesNumberFormatConfiguration] = Field(
None, description='The score formatting for the leaderboard.'
)
sortRank: Optional[int] = Field(
None,
description='The sort rank of this leaderboard. Writes to this field are ignored.',
)
class AchievementConfiguration(BaseModel):
achievementType: Optional[AchievementType] = Field(
None, description='The type of the achievement.'
)
draft: Optional[AchievementConfigurationDetail] = Field(
None, description='The draft data of the achievement.'
)
id: Optional[str] = Field(None, description='The ID of the achievement.')
initialState: Optional[InitialState] = Field(
None, description='The initial state of the achievement.'
)
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfiguration`.',
)
published: Optional[AchievementConfigurationDetail] = Field(
None, description='The read-only published data of the achievement.'
)
stepsToUnlock: Optional[int] = Field(
None,
description='Steps to unlock. Only applicable to incremental achievements.',
)
token: Optional[str] = Field(None, description='The token for this resource.')
class AchievementConfigurationListResponse(BaseModel):
items: Optional[List[AchievementConfiguration]] = Field(
None, description='The achievement configurations.'
)
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#achievementConfigurationListResponse`.',
)
nextPageToken: Optional[str] = Field(
None, description='The pagination token for the next page of results.'
)
class LeaderboardConfiguration(BaseModel):
draft: Optional[LeaderboardConfigurationDetail] = Field(
None, description='The draft data of the leaderboard.'
)
id: Optional[str] = Field(None, description='The ID of the leaderboard.')
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfiguration`.',
)
published: Optional[LeaderboardConfigurationDetail] = Field(
None, description='The read-only published data of the leaderboard.'
)
scoreMax: Optional[str] = Field(
None, description='Maximum score that can be posted to this leaderboard.'
)
scoreMin: Optional[str] = Field(
None, description='Minimum score that can be posted to this leaderboard.'
)
scoreOrder: Optional[ScoreOrder] = None
token: Optional[str] = Field(None, description='The token for this resource.')
class LeaderboardConfigurationListResponse(BaseModel):
items: Optional[List[LeaderboardConfiguration]] = Field(
None, description='The leaderboard configurations.'
)
kind: Optional[str] = Field(
None,
description='Uniquely identifies the type of this resource. Value is always the fixed string `gamesConfiguration#leaderboardConfigurationListResponse`.',
)
nextPageToken: Optional[str] = Field(
None, description='The pagination token for the next page of results.'
)