declare module PlayFabProgressionModule { export interface IPlayFabProgression { settings: PlayFabModule.IPlayFabSettings; // Creates a new leaderboard definition. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/createleaderboarddefinition CreateLeaderboardDefinition( request: PlayFabProgressionModels.CreateLeaderboardDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Create a new entity statistic definition. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/createstatisticdefinition CreateStatisticDefinition( request: PlayFabProgressionModels.CreateStatisticDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Deletes a leaderboard definition. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/deleteleaderboarddefinition DeleteLeaderboardDefinition( request: PlayFabProgressionModels.DeleteLeaderboardDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Deletes the specified entries from the given leaderboard. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/deleteleaderboardentries DeleteLeaderboardEntries( request: PlayFabProgressionModels.DeleteLeaderboardEntriesRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Delete an entity statistic definition. Will delete all statistics on entity profiles and leaderboards. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/deletestatisticdefinition DeleteStatisticDefinition( request: PlayFabProgressionModels.DeleteStatisticDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Delete statistics on an entity profile. This will remove all rankings from associated leaderboards. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/deletestatistics DeleteStatistics( request: PlayFabProgressionModels.DeleteStatisticsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get the friend leaderboard for the specified entity. A maximum of 25 friend entries are listed in the leaderboard. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getfriendleaderboardforentity GetFriendLeaderboardForEntity( request: PlayFabProgressionModels.GetFriendLeaderboardForEntityRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get the leaderboard for a specific entity type and statistic. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboard GetLeaderboard( request: PlayFabProgressionModels.GetEntityLeaderboardRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get the leaderboard around a specific entity. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboardaroundentity GetLeaderboardAroundEntity( request: PlayFabProgressionModels.GetLeaderboardAroundEntityRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Gets the specified leaderboard definition. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboarddefinition GetLeaderboardDefinition( request: PlayFabProgressionModels.GetLeaderboardDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get the leaderboard limited to a set of entities. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/getleaderboardforentities GetLeaderboardForEntities( request: PlayFabProgressionModels.GetLeaderboardForEntitiesRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get current statistic definition information // https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatisticdefinition GetStatisticDefinition( request: PlayFabProgressionModels.GetStatisticDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Gets statistics for the specified entity. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatistics GetStatistics( request: PlayFabProgressionModels.GetStatisticsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Gets statistics for the specified collection of entities. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/getstatisticsforentities GetStatisticsForEntities( request: PlayFabProgressionModels.GetStatisticsForEntitiesRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Increment a leaderboard version. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/incrementleaderboardversion IncrementLeaderboardVersion( request: PlayFabProgressionModels.IncrementLeaderboardVersionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Increment an entity statistic definition version. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/incrementstatisticversion IncrementStatisticVersion( request: PlayFabProgressionModels.IncrementStatisticVersionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Lists the leaderboard definitions defined for the Title. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/listleaderboarddefinitions ListLeaderboardDefinitions( request: PlayFabProgressionModels.ListLeaderboardDefinitionsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Get all current statistic definitions information // https://docs.microsoft.com/rest/api/playfab/progression/statistics/liststatisticdefinitions ListStatisticDefinitions( request: PlayFabProgressionModels.ListStatisticDefinitionsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Unlinks an aggregation source from a statistic definition. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/unlinkaggregationsourcefromstatistic UnlinkAggregationSourceFromStatistic( request: PlayFabProgressionModels.UnlinkAggregationSourceFromStatisticRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Unlinks a leaderboard definition from it's linked statistic definition. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/unlinkleaderboardfromstatistic UnlinkLeaderboardFromStatistic( request: PlayFabProgressionModels.UnlinkLeaderboardFromStatisticRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Updates a leaderboard definition. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/updateleaderboarddefinition UpdateLeaderboardDefinition( request: PlayFabProgressionModels.UpdateLeaderboardDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Adds or updates entries on the specified leaderboard. // https://docs.microsoft.com/rest/api/playfab/progression/leaderboards/updateleaderboardentries UpdateLeaderboardEntries( request: PlayFabProgressionModels.UpdateLeaderboardEntriesRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Update an existing entity statistic definition. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/updatestatisticdefinition UpdateStatisticDefinition( request: PlayFabProgressionModels.UpdateStatisticDefinitionRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; // Update statistics on an entity profile. Depending on the statistic definition, this may result in entity being ranked on // various leaderboards. // https://docs.microsoft.com/rest/api/playfab/progression/statistics/updatestatistics UpdateStatistics( request: PlayFabProgressionModels.UpdateStatisticsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; } } declare module PlayFabProgressionModels { export interface CreateLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // Leaderboard columns describing the sort directions, cannot be changed after creation. A maximum of 5 columns are // allowed. Columns: LeaderboardColumn[]; // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use // 'external' as the type. EntityType: string; // [In Preview]: The configuration for the events emitted by this leaderboard. If not specified, no events will be emitted. EventEmissionConfig?: LeaderboardEventEmissionConfig; // A name for the leaderboard, unique per title. Name: string; // Maximum number of entries on this leaderboard SizeLimit: number; // The version reset configuration for the leaderboard definition. VersionConfiguration?: VersionConfiguration; } export interface CreateStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // [In Preview]: The list of statistic definition names whose scores must be aggregated towards this stat. If // AggregationSource is specified, the entityType of this definition MUST be Title (making it a CommunityStat). Currently, // only one aggregation source can be specified. AggregationSources?: string[]; // The columns for the statistic defining the aggregation method for each column. A maximum of 5 columns are allowed. Columns?: StatisticColumn[]; // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The entity type allowed to have score(s) for this statistic. EntityType?: string; // [In Preview]: Configurations for different Statistics events that can be emitted by the service. EventEmissionConfig?: StatisticsEventEmissionConfig; // Name of the statistic. Must be less than 150 characters. Restricted to a-Z, 0-9, '(', ')', '_', '-' and '.'. Name: string; // The version reset configuration for the statistic definition. VersionConfiguration?: VersionConfiguration; } export interface DeleteLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The name of the leaderboard definition to delete. Name: string; } export interface DeleteLeaderboardEntriesRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The unique Ids of the entries to delete from the leaderboard. EntityIds?: string[]; // The name of the leaderboard. Name: string; } export interface DeleteStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Name of the statistic to delete. Name: string; } export interface DeleteStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The optional entity to perform this action on. Defaults to the currently logged in entity. Entity?: EntityKey; // Collection of statistics to remove from this entity. Statistics: StatisticDelete[]; } export interface DeleteStatisticsResponse extends PlayFabModule.IPlayFabResultCommon { // The entity id and type. Entity?: EntityKey; } export interface EmptyResponse extends PlayFabModule.IPlayFabResultCommon {} export interface EntityKey { // Unique ID of the entity. Id: string; // Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types Type?: string; } export interface EntityLeaderboardEntry { // Entity's display name. DisplayName?: string; // Entity identifier. Entity?: EntityKey; // The time at which the last update to the entry was recorded on the server. LastUpdated: string; // An opaque blob of data stored on the leaderboard entry. Note that the metadata is not used for ranking purposes. Metadata?: string; // Position on the leaderboard. Rank: number; // Scores for the entry. Scores?: string[]; } export interface EntityStatistics { // The entity for which the statistics are returned. EntityKey?: EntityKey; // The statistics for the given entity key. Statistics?: EntityStatisticValue[]; } export interface EntityStatisticValue { // Metadata associated with the Statistic. Metadata?: string; // Statistic name Name?: string; // Statistic scores Scores?: string[]; // Statistic version Version: number; } type EventType = "None" | "Telemetry" | "PlayStream"; type ExternalFriendSources = "None" | "Steam" | "Facebook" | "Xbox" | "Psn" | "All"; export interface GetEntityLeaderboardRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Name of the leaderboard. LeaderboardName: string; // Maximum number of results to return from the leaderboard. Minimum 1, maximum 100. PageSize: number; // Index position to start from. 1 is beginning of leaderboard. StartingPosition?: number; // Optional version of the leaderboard, defaults to current version. Version?: number; } export interface GetEntityLeaderboardResponse extends PlayFabModule.IPlayFabResultCommon { // Leaderboard columns describing the sort directions. Columns?: LeaderboardColumn[]; // The number of entries on the leaderboard. EntryCount: number; // The time the next scheduled reset will occur. Null if the leaderboard does not reset on a schedule. NextReset?: string; // Individual entity rankings in the leaderboard, in sorted order by rank. Rankings?: EntityLeaderboardEntry[]; // Version of the leaderboard being returned. Version: number; } export interface GetFriendLeaderboardForEntityRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The optional entity to perform this action on. Defaults to the currently logged in entity. Entity?: EntityKey; // Indicates which other platforms' friends should be included in the response. In HTTP, it is represented as a // comma-separated list of platforms. ExternalFriendSources?: string; // Name of the leaderboard. LeaderboardName: string; // Optional version of the leaderboard, defaults to current version. Version?: number; // Xbox token if Xbox friends should be included. Requires Xbox be configured on PlayFab. XboxToken?: string; } export interface GetLeaderboardAroundEntityRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The optional entity to perform this action on. Defaults to the currently logged in entity. Entity?: EntityKey; // Name of the leaderboard. LeaderboardName: string; // Number of surrounding entries to return (in addition to specified entity). In general, the number of ranks above and // below will be split into half. For example, if the specified value is 10, 5 ranks above and 5 ranks below will be // retrieved. However, the numbers will get skewed in either direction when the specified entity is towards the top or // bottom of the leaderboard. Also, the number of entries returned can be lower than the value specified for entries at the // bottom of the leaderboard. MaxSurroundingEntries: number; // Optional version of the leaderboard, defaults to current. Version?: number; } export interface GetLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The name of the leaderboard to retrieve the definition for. Name: string; } export interface GetLeaderboardDefinitionResponse extends PlayFabModule.IPlayFabResultCommon { // Sort direction of the leaderboard columns, cannot be changed after creation. Columns: LeaderboardColumn[]; // Created time, in UTC Created: string; // The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use // 'external' as the type. EntityType: string; // [In Preview]: The configuration for the events emitted by this leaderboard. If not specified, no events will be emitted. EventEmissionConfig?: LeaderboardEventEmissionConfig; // Last time, in UTC, leaderboard version was incremented. LastResetTime?: string; // A name for the leaderboard, unique per title. Name: string; // Maximum number of entries on this leaderboard SizeLimit: number; // Latest Leaderboard version. Version: number; // The version reset configuration for the leaderboard definition. VersionConfiguration: VersionConfiguration; } export interface GetLeaderboardForEntitiesRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Collection of Entity IDs to include in the leaderboard. EntityIds: string[]; // Name of the leaderboard. LeaderboardName: string; // Optional version of the leaderboard, defaults to current. Version?: number; } export interface GetStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Name of the statistic. Must be less than 150 characters. Name: string; } export interface GetStatisticDefinitionResponse extends PlayFabModule.IPlayFabResultCommon { // The list of statistic definitions names this definition aggregates to. AggregationDestinations?: string[]; // The list of statistic definitions names whose values must be aggregated towards this stat. If AggregationSource is // specified, the entityType of this definition MUST be Title (making it a CommunityStat). Currently, only one aggregation // source can be specified. AggregationSources?: string[]; // The columns for the statistic defining the aggregation method for each column. Columns?: StatisticColumn[]; // Created time, in UTC Created: string; // The entity type that can have this statistic. EntityType?: string; // [In Preview]: Configurations for different Statistics events that can be emitted by the service. EventEmissionConfig?: StatisticsEventEmissionConfig; // Last time, in UTC, statistic version was incremented. LastResetTime?: string; // The list of leaderboards that are linked to this statistic definition. LinkedLeaderboardNames?: string[]; // Name of the statistic. Name?: string; // Statistic version. Version: number; // The version reset configuration for the leaderboard definition. VersionConfiguration?: VersionConfiguration; } export interface GetStatisticsForEntitiesRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Collection of Entity IDs to retrieve statistics for. Entities: EntityKey[]; // The list of statistics to return for the user. If set to null, the current version of all statistics are returned. StatisticNames?: string[]; } export interface GetStatisticsForEntitiesResponse extends PlayFabModule.IPlayFabResultCommon { // A mapping of statistic name to the columns defined in the corresponding definition. ColumnDetails?: { [key: string]: StatisticColumnCollection }; // List of entities mapped to their statistics. Only the latest version of a statistic is returned. EntitiesStatistics?: EntityStatistics[]; } export interface GetStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The optional entity to perform this action on. Defaults to the currently logged in entity. Entity?: EntityKey; // The list of statistics to return for the user. If set to null, the current version of all statistics are returned. StatisticNames?: string[]; } export interface GetStatisticsResponse extends PlayFabModule.IPlayFabResultCommon { // A mapping of statistic name to the columns defined in the corresponding definition. ColumnDetails?: { [key: string]: StatisticColumnCollection }; // The entity id and type. Entity?: EntityKey; // List of statistics keyed by Name. Only the latest version of a statistic is returned. Statistics?: { [key: string]: EntityStatisticValue }; } export interface IncrementLeaderboardVersionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The name of the leaderboard to increment the version for. Name: string; } export interface IncrementLeaderboardVersionResponse extends PlayFabModule.IPlayFabResultCommon { // New Leaderboard version. Version: number; } export interface IncrementStatisticVersionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // Name of the statistic to increment the version of. Name: string; } export interface IncrementStatisticVersionResponse extends PlayFabModule.IPlayFabResultCommon { // New statistic version. Version: number; } export interface LeaderboardColumn { // If the value for this column is sourced from a statistic, details of the linked column. Null if the leaderboard is not // linked. LinkedStatisticColumn?: LinkedStatisticColumn; // A name for the leaderboard column, unique per leaderboard definition. Name: string; // The sort direction for this column. SortDirection: string; } export interface LeaderboardDefinition { // Sort direction of the leaderboard columns, cannot be changed after creation. Columns: LeaderboardColumn[]; // Created time, in UTC Created: string; // The entity type being represented on the leaderboard. If it doesn't correspond to the PlayFab entity types, use // 'external' as the type. EntityType: string; // [In Preview]: The configuration for the events emitted by this leaderboard. If not specified, no events will be emitted. EventEmissionConfig?: LeaderboardEventEmissionConfig; // Last time, in UTC, leaderboard version was incremented. LastResetTime?: string; // A name for the leaderboard, unique per title. Name: string; // Maximum number of entries on this leaderboard SizeLimit: number; // Latest Leaderboard version. Version: number; // The version reset configuration for the leaderboard definition. VersionConfiguration: VersionConfiguration; } export interface LeaderboardEntityRankOnVersionEndConfig { // The type of event to emit when the leaderboard version end. EventType: string; // The maximum number of entity to return on leaderboard version end. Range is 1 to 1000. RankLimit: number; } export interface LeaderboardEntryUpdate { // The unique Id for the entry. If using PlayFab Entities, this would be the entityId of the entity. EntityId: string; // Arbitrary metadata to store along side the leaderboard entry, will be returned by all Leaderboard APIs. Metadata?: string; // The scores for the leaderboard. The number of values provided here must match the number of columns in the Leaderboard // definition. Scores?: string[]; } export interface LeaderboardEventEmissionConfig { // This event emits the top ranks of the leaderboard when the leaderboard version end. EntityRankOnVersionEndConfig?: LeaderboardEntityRankOnVersionEndConfig; // This event is emitted when the leaderboard version end. VersionEndConfig?: LeaderboardVersionEndConfig; } type LeaderboardSortDirection = "Descending" | "Ascending"; export interface LeaderboardVersionEndConfig { // The type of event to emit when the leaderboard version end. EventType: string; } export interface LinkedStatisticColumn { // The name of the statistic column that this leaderboard column is sourced from. LinkedStatisticColumnName: string; // The name of the statistic. LinkedStatisticName: string; } export interface ListLeaderboardDefinitionsRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The page size for the request. PageSize?: number; // The skip token for the paged request. SkipToken?: string; } export interface ListLeaderboardDefinitionsResponse extends PlayFabModule.IPlayFabResultCommon { // List of leaderboard definitions for the title. LeaderboardDefinitions?: LeaderboardDefinition[]; // The page size on the response. PageSize: number; // The skip token for the paged response. SkipToken?: string; } export interface ListStatisticDefinitionsRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The page size for the request. PageSize?: number; // The skip token for the paged request. SkipToken?: string; } export interface ListStatisticDefinitionsResponse extends PlayFabModule.IPlayFabResultCommon { // The page size on the response. PageSize: number; // The skip token for the paged response. SkipToken?: string; // List of statistic definitions for the title. StatisticDefinitions?: StatisticDefinition[]; } type ResetInterval = "Manual" | "Hour" | "Day" | "Week" | "Month"; type StatisticAggregationMethod = "Last" | "Min" | "Max" | "Sum"; export interface StatisticColumn { // Aggregation method for calculating new value of a statistic. AggregationMethod: string; // Name of the statistic column, as originally configured. Name: string; } export interface StatisticColumnCollection { // Columns for the statistic defining the aggregation method for each column. Columns?: StatisticColumn[]; } export interface StatisticDefinition { // The list of statistic definitions names this definition aggregates to. AggregationDestinations?: string[]; // The list of statistic definitions names whose values must be aggregated towards this stat. If AggregationSource is // specified, the entityType of this definition MUST be Title (making it a CommunityStat). Currently, only one aggregation // source can be specified. AggregationSources?: string[]; // The columns for the statistic defining the aggregation method for each column. Columns?: StatisticColumn[]; // Created time, in UTC Created: string; // The entity type that can have this statistic. EntityType?: string; // [In Preview]: Configurations for different Statistics events that can be emitted by the service. EventEmissionConfig?: StatisticsEventEmissionConfig; // Last time, in UTC, statistic version was incremented. LastResetTime?: string; // The list of leaderboards that are linked to this statistic definition. LinkedLeaderboardNames?: string[]; // Name of the statistic. Name?: string; // Statistic version. Version: number; // The version reset configuration for the leaderboard definition. VersionConfiguration?: VersionConfiguration; } export interface StatisticDelete { // Name of the statistic, as originally configured. Name: string; } export interface StatisticsEventEmissionConfig { // Emitted when statistics are updated. UpdateEventConfig?: StatisticsUpdateEventConfig; } export interface StatisticsUpdateEventConfig { // The event type to emit when statistics are updated. EventType: string; } export interface StatisticUpdate { // Arbitrary metadata to store along side the statistic, will be returned by all Leaderboard APIs. Metadata?: string; // Name of the statistic, as originally configured. Name: string; // Statistic scores for the entity. This will be used in accordance with the aggregation method configured for the // statistics.The maximum value allowed for each individual score is 9223372036854775807. The minimum value for each // individual score is -9223372036854775807The values are formatted as strings to avoid interop issues with client // libraries unable to handle 64bit integers. Scores?: string[]; // Optional field to indicate the version of the statistic to set. When empty defaults to the statistic's current version. Version?: number; } export interface UnlinkAggregationSourceFromStatisticRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The name of the statistic to unlink. Name: string; // The name of the aggregation source statistic to unlink. SourceStatisticName: string; } export interface UnlinkLeaderboardFromStatisticRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The name of the leaderboard definition to unlink. Name: string; // The name of the statistic definition to unlink. StatisticName: string; } export interface UpdateLeaderboardDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // [In Preview]: The configuration for the events emitted by this leaderboard. If not specified, no events will be emitted. EventEmissionConfig?: LeaderboardEventEmissionConfig; // The name of the leaderboard to update the definition for. Name: string; // Maximum number of entries on this leaderboard SizeLimit?: number; // The version reset configuration for the leaderboard definition. VersionConfiguration?: VersionConfiguration; } export interface UpdateLeaderboardEntriesRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The entries to add or update on the leaderboard. Entries?: LeaderboardEntryUpdate[]; // The name of the leaderboard. LeaderboardName: string; } export interface UpdateStatisticDefinitionRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // [In Preview]: Configurations for different Statistics events that can be emitted by the service. EventEmissionConfig?: StatisticsEventEmissionConfig; // Name of the statistic. Must be less than 150 characters. Restricted to a-Z, 0-9, '(', ')', '_', '-' and '.'. Name: string; // The version reset configuration for the statistic definition. VersionConfiguration?: VersionConfiguration; } export interface UpdateStatisticsRequest extends PlayFabModule.IPlayFabRequestCommon { // The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). CustomTags?: { [key: string]: string | null }; // The optional entity to perform this action on. Defaults to the currently logged in entity. Entity?: EntityKey; // Collection of statistics to update, maximum 50. Statistics: StatisticUpdate[]; // Optional transactionId of this update which can be used to ensure idempotence. TransactionId?: string; } export interface UpdateStatisticsResponse extends PlayFabModule.IPlayFabResultCommon { // A mapping of statistic name to the columns defined in the corresponding definition. ColumnDetails?: { [key: string]: StatisticColumnCollection }; // The entity id and type. Entity?: EntityKey; // Updated entity profile statistics. Statistics?: { [key: string]: EntityStatisticValue }; } export interface VersionConfiguration { // The maximum number of versions of this leaderboard/statistic that can be queried. MaxQueryableVersions: number; // Reset interval that statistics or leaderboards will reset on. When using Manual intervalthe reset can only be increased // by calling the Increase version API. When using Hour interval the resetwill occur at the start of the next hour UTC // time. When using Day interval the reset will occur at thestart of the next day in UTC time. When using the Week interval // the reset will occur at the start ofthe next Monday in UTC time. When using Month interval the reset will occur at the // start of the nextmonth in UTC time. ResetInterval: string; } }