games.accesstokens.generatePlayGroupingApiToken

valid {
    input.Qs.packageName == STRING
    input.Qs.persona == STRING
    input.ProviderMetadata.Region == STRING
}

games.accesstokens.generateRecallPlayGroupingApiToken

valid {
    input.Qs.packageName == STRING
    input.Qs.persona == STRING
    input.Qs.recallSessionId == STRING
    input.ProviderMetadata.Region == STRING
}

games.achievementDefinitions.list

valid {
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.achievements.increment

valid {
    input.ReqMap.achievementId == STRING
    input.Qs.requestId == STRING
    input.Qs.stepsToIncrement == INTEGER
    input.ProviderMetadata.Region == STRING
}

games.achievements.list

enum_StateParameter := [ "ALL", "HIDDEN", "REVEALED", "UNLOCKED" ]

valid {
    input.ReqMap.playerId == STRING
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.state == enum_StateParameter[_]
    input.ProviderMetadata.Region == STRING
}

games.achievements.reveal

valid {
    input.ReqMap.achievementId == STRING
    input.ProviderMetadata.Region == STRING
}

games.achievements.setStepsAtLeast

valid {
    input.ReqMap.achievementId == STRING
    input.Qs.steps == INTEGER
    input.ProviderMetadata.Region == STRING
}

games.achievements.unlock

valid {
    input.ReqMap.achievementId == STRING
    input.ProviderMetadata.Region == STRING
}

games.achievements.updateMultiple

enum_AchievementUpdateRequestUpdateType := [ "REVEAL", "UNLOCK", "INCREMENT", "SET_STEPS_AT_LEAST" ]

valid {
    input.Body.kind == STRING
    input.Body.updates[_].achievementId == STRING
    input.Body.updates[_].incrementPayload.kind == STRING
    input.Body.updates[_].incrementPayload.requestId == STRING
    input.Body.updates[_].incrementPayload.steps == INTEGER
    input.Body.updates[_].kind == STRING
    input.Body.updates[_].setStepsAtLeastPayload.kind == STRING
    input.Body.updates[_].setStepsAtLeastPayload.steps == INTEGER
    input.Body.updates[_].updateType == enum_AchievementUpdateRequestUpdateType[_]
    input.ProviderMetadata.Region == STRING
}

games.applications.get

enum_PlatformTypeParameter := [ "ANDROID", "IOS", "WEB_APP" ]

valid {
    input.ReqMap.applicationId == STRING
    input.Qs.language == STRING
    input.Qs.platformType == enum_PlatformTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

games.applications.getEndPoint

enum_EndPointTypeParameter := [ "PROFILE_CREATION", "PROFILE_SETTINGS" ]

valid {
    input.Qs.applicationId == STRING
    input.Qs.endPointType == enum_EndPointTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

games.applications.played

valid {
    input.ProviderMetadata.Region == STRING
}

games.applications.verify

valid {
    input.ReqMap.applicationId == STRING
    input.ProviderMetadata.Region == STRING
}

games.events.listByPlayer

valid {
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.events.listDefinitions

valid {
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.events.record

valid {
    input.Body.currentTimeMillis == STRING
    input.Body.kind == STRING
    input.Body.requestId == STRING
    input.Body.timePeriods[_].kind == STRING
    input.Body.timePeriods[_].timePeriod.kind == STRING
    input.Body.timePeriods[_].timePeriod.periodEndMillis == STRING
    input.Body.timePeriods[_].timePeriod.periodStartMillis == STRING
    input.Body.timePeriods[_].updates[_].definitionId == STRING
    input.Body.timePeriods[_].updates[_].kind == STRING
    input.Body.timePeriods[_].updates[_].updateCount == STRING
    input.Qs.language == STRING
    input.ProviderMetadata.Region == STRING
}

games.leaderboards.get

valid {
    input.ReqMap.leaderboardId == STRING
    input.Qs.language == STRING
    input.ProviderMetadata.Region == STRING
}

games.leaderboards.list

valid {
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.metagame.getMetagameConfig

valid {
    input.ProviderMetadata.Region == STRING
}

games.metagame.listCategoriesByPlayer

enum_CollectionParameter := [ "ALL" ]

valid {
    input.ReqMap.collection == enum_CollectionParameter[_]
    input.ReqMap.playerId == STRING
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.players.get

valid {
    input.ReqMap.playerId == STRING
    input.Qs.language == STRING
    input.Qs.playerIdConsistencyToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.players.getMultipleApplicationPlayerIds

valid {
    input.Qs.applicationIds == STRING
    input.ProviderMetadata.Region == STRING
}

games.players.getScopedPlayerIds

valid {
    input.ProviderMetadata.Region == STRING
}

games.players.list

enum_CollectionParameter := [ "CONNECTED", "VISIBLE", "FRIENDS_ALL" ]

valid {
    input.ReqMap.collection == enum_CollectionParameter[_]
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.gamesPlayerTokens

valid {
    input.ReqMap.sessionId == STRING
    input.Qs.applicationIds == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.lastTokenFromAllDeveloperGames

valid {
    input.ReqMap.sessionId == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.linkPersona

enum_LinkPersonaRequestCardinalityConstraint := [ "ONE_PERSONA_TO_ONE_PLAYER" ]
enum_LinkPersonaRequestConflictingLinksResolutionPolicy := [ "KEEP_EXISTING_LINKS", "CREATE_NEW_LINK" ]

valid {
    input.Body.cardinalityConstraint == enum_LinkPersonaRequestCardinalityConstraint[_]
    input.Body.conflictingLinksResolutionPolicy == enum_LinkPersonaRequestConflictingLinksResolutionPolicy[_]
    input.Body.expireTime == STRING
    input.Body.persona == STRING
    input.Body.sessionId == STRING
    input.Body.token == STRING
    input.Body.ttl == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.resetPersona

valid {
    input.Body.persona == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.retrieveTokens

valid {
    input.ReqMap.sessionId == STRING
    input.ProviderMetadata.Region == STRING
}

games.recall.unlinkPersona

valid {
    input.Body.persona == STRING
    input.Body.sessionId == STRING
    input.Body.token == STRING
    input.ProviderMetadata.Region == STRING
}

games.revisions.check

valid {
    input.Qs.clientRevision == STRING
    input.ProviderMetadata.Region == STRING
}

games.scores.get

enum_IncludeRankTypeParameter := [ "ALL", "PUBLIC", "SOCIAL", "FRIENDS" ]
enum_TimeSpanParameter := [ "ALL", "ALL_TIME", "WEEKLY", "DAILY" ]

valid {
    input.ReqMap.leaderboardId == STRING
    input.ReqMap.playerId == STRING
    input.ReqMap.timeSpan == enum_TimeSpanParameter[_]
    input.Qs.includeRankType == enum_IncludeRankTypeParameter[_]
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.scores.list

enum_CollectionParameter := [ "PUBLIC", "SOCIAL", "FRIENDS" ]
enum_TimeSpanParameter := [ "ALL_TIME", "WEEKLY", "DAILY" ]

valid {
    input.ReqMap.collection == enum_CollectionParameter[_]
    input.ReqMap.leaderboardId == STRING
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.timeSpan == enum_TimeSpanParameter[_]
    input.ProviderMetadata.Region == STRING
}

games.scores.listWindow

enum_CollectionParameter := [ "PUBLIC", "SOCIAL", "FRIENDS" ]
enum_TimeSpanParameter := [ "ALL_TIME", "WEEKLY", "DAILY" ]

valid {
    input.ReqMap.collection == enum_CollectionParameter[_]
    input.ReqMap.leaderboardId == STRING
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.resultsAbove == INTEGER
    input.Qs.returnTopIfAbsent == BOOLEAN
    input.Qs.timeSpan == enum_TimeSpanParameter[_]
    input.ProviderMetadata.Region == STRING
}

games.scores.submit

valid {
    input.ReqMap.leaderboardId == STRING
    input.Qs.language == STRING
    input.Qs.score == STRING
    input.Qs.scoreTag == STRING
    input.ProviderMetadata.Region == STRING
}

games.scores.submitMultiple

valid {
    input.Body.kind == STRING
    input.Body.scores[_].kind == STRING
    input.Body.scores[_].leaderboardId == STRING
    input.Body.scores[_].score == STRING
    input.Body.scores[_].scoreTag == STRING
    input.Body.scores[_].signature == STRING
    input.Qs.language == STRING
    input.ProviderMetadata.Region == STRING
}

games.snapshots.get

valid {
    input.ReqMap.snapshotId == STRING
    input.Qs.language == STRING
    input.ProviderMetadata.Region == STRING
}

games.snapshots.list

valid {
    input.ReqMap.playerId == STRING
    input.Qs.language == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

games.stats.get

valid {
    input.ProviderMetadata.Region == STRING
}