Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
/** Static object you add your CloudScript endpoints to */
declare var handlers: IPlayFabHandlers;
interface IPlayFabHandlers {
[handlerId:string]: (args?:any, context?:IPlayFabContext) => any;
}
/** The playfab id for the user who called into CloudScript */
declare var currentPlayerId: string;
/**
* Static object containing cloudscript logging functions
* debug(message: string, exc?: any): void,
* error(message: string, exc?: any): void,
* info(message: string, exc?: any): void,
*/
declare var log: Logger;
interface Logger {
debug(message: string, exc?: any): void,
error(message: string, exc?: any): void,
info(message: string, exc?: any): void,
}
/**
* Static object containing cloudscript external request functions
* request(url: string, method?: string, content?: string, contentType?: string): string
*/
declare var http: IPlayFabHttp;
interface IPlayFabHttp {
request(url: string, method?: string, content?: string, contentType?: string, headers?: { [key: string]: string }): string
}
interface ITriggeredByTask {
Name: string;
Id: string;
}
interface IPlayFabContext {
playStreamEvent: PlayStreamModels.IBasePlayStreamEvent;
playerProfile: IPlayFabPlayerProfile;
triggeredByTask: ITriggeredByTask;
}
interface IPlayFabPlayerProfile {
PlayerId: string;
DisplayName: string;
}
declare var script: IPlayFabEnvironment;
interface IPlayFabEnvironment {
revision: number;
titleId: string;
}
interface IPlayFabError {
cloudScriptErrorCode : string;
stack : string;
apiErrorInfo?: IApiErrorInfo;
}
interface IApiErrorInfo {
api : string;
request : any;
result : any;
apiError?: IApiError;
}
interface IApiError {
code : number;
status : string;
error : string;
errorCode : number;
errorMessage : string;
errorDetails?: { [index:string] : { message: string[] } };
}
/** Static object which allows access to PlayFab Classic Server API calls */
declare var server: IPlayFabServerAPI;
/** Static object which allows access to PlayFab Entity API calls */
declare var entity: IPlayFabEntityAPI;
/** ServerAPI.Models as interfaces */
declare namespace PlayFabServerModels {
interface AdCampaignAttribution {
/** UTC time stamp of attribution */
AttributedAt: string,
/** Attribution campaign identifier */
CampaignId?: string,
/** Attribution network name */
Platform?: string,
}
interface AdCampaignAttributionModel {
/** UTC time stamp of attribution */
AttributedAt: string,
/** Attribution campaign identifier */
CampaignId?: string,
/** Attribution network name */
Platform?: string,
}
interface AddCharacterVirtualCurrencyRequest {
/**
* Amount to be added to the character balance of the specified virtual currency. Maximum VC balance is Int32
* (2,147,483,647). Any increase over this value will be discarded.
*/
Amount: number,
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** PlayFab unique identifier of the user whose virtual currency balance is to be incremented. */
PlayFabId: string,
/** Name of the virtual currency which is to be incremented. */
VirtualCurrency: string,
}
interface AddFriendRequest {
/** Email address of the user being added. */
FriendEmail?: string,
/** The PlayFab identifier of the user being added. */
FriendPlayFabId?: string,
/** Title-specific display name of the user to being added. */
FriendTitleDisplayName?: string,
/** The PlayFab username of the user being added */
FriendUsername?: string,
/** PlayFab identifier of the player to add a new friend. */
PlayFabId: string,
}
interface AddGenericIDRequest {
/** Generic service identifier to add to the player account. */
GenericId: GenericServiceId,
/** PlayFabId of the user to link. */
PlayFabId: string,
}
/**
* This API will trigger a player_tag_added event and add a tag with the given TagName and PlayFabID to the corresponding
* player profile. TagName can be used for segmentation and it is limited to 256 characters. Also there is a limit on the
* number of tags a title can have.
*/
interface AddPlayerTagRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** Unique tag for player profile. */
TagName: string,
}
interface AddPlayerTagResult {
}
interface AddSharedGroupMembersRequest {
/** An array of unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabIds: string[],
/** Unique identifier for the shared group. */
SharedGroupId: string,
}
interface AddSharedGroupMembersResult {
}
interface AddUserVirtualCurrencyRequest {
/**
* Amount to be added to the user balance of the specified virtual currency. Maximum VC balance is Int32 (2,147,483,647).
* Any increase over this value will be discarded.
*/
Amount: number,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** PlayFab unique identifier of the user whose virtual currency balance is to be increased. */
PlayFabId: string,
/** Name of the virtual currency which is to be incremented. */
VirtualCurrency: string,
}
interface AdvancedPushPlatformMsg {
/**
* Stops GoogleCloudMessaging notifications from including both notification and data properties and instead only sends the
* data property.
*/
GCMDataOnly?: boolean,
/** The Json the platform should receive. */
Json: string,
/** The platform that should receive the Json. */
Platform: PushNotificationPlatform,
}
/**
* Note that data returned may be Personally Identifying Information (PII), such as email address, and so care should be
* taken in how this data is stored and managed. Since this call will always return the relevant information for users who
* have accessed the title, the recommendation is to not store this data locally.
*/
interface AuthenticateSessionTicketRequest {
/** Session ticket as issued by a PlayFab client login API. */
SessionTicket: string,
}
interface AuthenticateSessionTicketResult {
/** Indicates if token was expired at request time. */
IsSessionTicketExpired?: boolean,
/** Account info for the user whose session ticket was supplied. */
UserInfo?: UserAccountInfo,
}
interface AwardSteamAchievementItem {
/** Unique Steam achievement name. */
AchievementName: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** Result of the award attempt (only valid on response, not on request). */
Result: boolean,
}
interface AwardSteamAchievementRequest {
/** Array of achievements to grant and the users to whom they are to be granted. */
Achievements: AwardSteamAchievementItem[],
}
interface AwardSteamAchievementResult {
/** Array of achievements granted. */
AchievementResults?: AwardSteamAchievementItem[],
}
/** Contains information for a ban. */
interface BanInfo {
/** The active state of this ban. Expired bans may still have this value set to true but they will have no effect. */
Active: boolean,
/** The unique Ban Id associated with this ban. */
BanId?: string,
/** The time when this ban was applied. */
Created?: string,
/** The time when this ban expires. Permanent bans do not have expiration date. */
Expires?: string,
/** The IP address on which the ban was applied. May affect multiple players. */
IPAddress?: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
/** The reason why this ban was applied. */
Reason?: string,
}
/** Represents a single ban request. */
interface BanRequest {
/** The duration in hours for the ban. Leave this blank for a permanent ban. */
DurationInHours?: number,
/** IP address to be banned. May affect multiple players. */
IPAddress?: string,
/** MAC address to be banned. May affect multiple players. */
MACAddress?: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** The reason for this ban. Maximum 140 characters. */
Reason?: string,
}
/**
* The existence of each user will not be verified. When banning by IP or MAC address, multiple players may be affected, so
* use this feature with caution. Returns information about the new bans.
*/
interface BanUsersRequest {
/** List of ban requests to be applied. Maximum 100. */
Bans: BanRequest[],
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
}
interface BanUsersResult {
/** Information on the bans that were applied */
BanData?: BanInfo[],
}
/** A purchasable item from the item catalog */
interface CatalogItem {
/**
* defines the bundle properties for the item - bundles are items which contain other items, including random drop tables
* and virtual currencies
*/
Bundle?: CatalogItemBundleInfo,
/** if true, then an item instance of this type can be used to grant a character to a user. */
CanBecomeCharacter: boolean,
/** catalog version for this item */
CatalogVersion?: string,
/** defines the consumable properties (number of uses, timeout) for the item */
Consumable?: CatalogItemConsumableInfo,
/**
* defines the container properties for the item - what items it contains, including random drop tables and virtual
* currencies, and what item (if any) is required to open it via the UnlockContainerItem API
*/
Container?: CatalogItemContainerInfo,
/** game specific custom data */
CustomData?: string,
/** text description of item, to show in-game */
Description?: string,
/** text name for the item, to show in-game */
DisplayName?: string,
/**
* If the item has IsLImitedEdition set to true, and this is the first time this ItemId has been defined as a limited
* edition item, this value determines the total number of instances to allocate for the title. Once this limit has been
* reached, no more instances of this ItemId can be created, and attempts to purchase or grant it will return a Result of
* false for that ItemId. If the item has already been defined to have a limited edition count, or if this value is less
* than zero, it will be ignored.
*/
InitialLimitedEditionCount: number,
/** BETA: If true, then only a fixed number can ever be granted. */
IsLimitedEdition: boolean,
/**
* if true, then only one item instance of this type will exist and its remaininguses will be incremented instead.
* RemainingUses will cap out at Int32.Max (2,147,483,647). All subsequent increases will be discarded
*/
IsStackable: boolean,
/** if true, then an item instance of this type can be traded between players using the trading APIs */
IsTradable: boolean,
/** class to which the item belongs */
ItemClass?: string,
/** unique identifier for this item */
ItemId: string,
/**
* URL to the item image. For Facebook purchase to display the image on the item purchase page, this must be set to an HTTP
* URL.
*/
ItemImageUrl?: string,
/** override prices for this item for specific currencies */
RealCurrencyPrices?: { [key: string]: number },
/** list of item tags */
Tags?: string[],
/** price of this item in virtual currencies and "RM" (the base Real Money purchase price, in USD pennies) */
VirtualCurrencyPrices?: { [key: string]: number },
}
interface CatalogItemBundleInfo {
/** unique ItemId values for all items which will be added to the player inventory when the bundle is added */
BundledItems?: string[],
/**
* unique TableId values for all RandomResultTable objects which are part of the bundle (random tables will be resolved and
* add the relevant items to the player inventory when the bundle is added)
*/
BundledResultTables?: string[],
/** virtual currency types and balances which will be added to the player inventory when the bundle is added */
BundledVirtualCurrencies?: { [key: string]: number },
}
interface CatalogItemConsumableInfo {
/** number of times this object can be used, after which it will be removed from the player inventory */
UsageCount?: number,
/**
* duration in seconds for how long the item will remain in the player inventory - once elapsed, the item will be removed
* (recommended minimum value is 5 seconds, as lower values can cause the item to expire before operations depending on
* this item's details have completed)
*/
UsagePeriod?: number,
/**
* all inventory item instances in the player inventory sharing a non-null UsagePeriodGroup have their UsagePeriod values
* added together, and share the result - when that period has elapsed, all the items in the group will be removed
*/
UsagePeriodGroup?: string,
}
/**
* Containers are inventory items that can hold other items defined in the catalog, as well as virtual currency, which is
* added to the player inventory when the container is unlocked, using the UnlockContainerItem API. The items can be
* anything defined in the catalog, as well as RandomResultTable objects which will be resolved when the container is
* unlocked. Containers and their keys should be defined as Consumable (having a limited number of uses) in their catalog
* defintiions, unless the intent is for the player to be able to re-use them infinitely.
*/
interface CatalogItemContainerInfo {
/** unique ItemId values for all items which will be added to the player inventory, once the container has been unlocked */
ItemContents?: string[],
/**
* ItemId for the catalog item used to unlock the container, if any (if not specified, a call to UnlockContainerItem will
* open the container, adding the contents to the player inventory and currency balances)
*/
KeyItemId?: string,
/**
* unique TableId values for all RandomResultTable objects which are part of the container (once unlocked, random tables
* will be resolved and add the relevant items to the player inventory)
*/
ResultTableContents?: string[],
/** virtual currency types and balances which will be added to the player inventory when the container is unlocked */
VirtualCurrencyContents?: { [key: string]: number },
}
interface CharacterInventory {
/** The id of this character. */
CharacterId?: string,
/** The inventory of this character. */
Inventory?: ItemInstance[],
}
interface CharacterLeaderboardEntry {
/** PlayFab unique identifier of the character that belongs to the user for this leaderboard entry. */
CharacterId?: string,
/** Title-specific display name of the character for this leaderboard entry. */
CharacterName?: string,
/** Name of the character class for this entry. */
CharacterType?: string,
/** Title-specific display name of the user for this leaderboard entry. */
DisplayName?: string,
/** PlayFab unique identifier of the user for this leaderboard entry. */
PlayFabId?: string,
/** User's overall position in the leaderboard. */
Position: number,
/** Specific value of the user's statistic. */
StatValue: number,
}
interface CharacterResult {
/** The id for this character on this player. */
CharacterId?: string,
/** The name of this character. */
CharacterName?: string,
/** The type-string that was given to this character on creation. */
CharacterType?: string,
}
type CloudScriptRevisionOption = "Live"
| "Latest"
| "Specific";
interface ConsumeItemRequest {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId?: string,
/** Number of uses to consume from the item. */
ConsumeCount: number,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique instance identifier of the item to be consumed. */
ItemInstanceId: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface ConsumeItemResult {
/** Unique instance identifier of the item with uses consumed. */
ItemInstanceId?: string,
/** Number of uses remaining on the item. */
RemainingUses: number,
}
interface ContactEmailInfo {
/** The email address */
EmailAddress?: string,
/** The name of the email info data */
Name?: string,
/** The verification status of the email */
VerificationStatus?: EmailVerificationStatus,
}
interface ContactEmailInfoModel {
/** The email address */
EmailAddress?: string,
/** The name of the email info data */
Name?: string,
/** The verification status of the email */
VerificationStatus?: EmailVerificationStatus,
}
type ContinentCode = "AF"
| "AN"
| "AS"
| "EU"
| "NA"
| "OC"
| "SA";
type CountryCode = "AF"
| "AX"
| "AL"
| "DZ"
| "AS"
| "AD"
| "AO"
| "AI"
| "AQ"
| "AG"
| "AR"
| "AM"
| "AW"
| "AU"
| "AT"
| "AZ"
| "BS"
| "BH"
| "BD"
| "BB"
| "BY"
| "BE"
| "BZ"
| "BJ"
| "BM"
| "BT"
| "BO"
| "BQ"
| "BA"
| "BW"
| "BV"
| "BR"
| "IO"
| "BN"
| "BG"
| "BF"
| "BI"
| "KH"
| "CM"
| "CA"
| "CV"
| "KY"
| "CF"
| "TD"
| "CL"
| "CN"
| "CX"
| "CC"
| "CO"
| "KM"
| "CG"
| "CD"
| "CK"
| "CR"
| "CI"
| "HR"
| "CU"
| "CW"
| "CY"
| "CZ"
| "DK"
| "DJ"
| "DM"
| "DO"
| "EC"
| "EG"
| "SV"
| "GQ"
| "ER"
| "EE"
| "ET"
| "FK"
| "FO"
| "FJ"
| "FI"
| "FR"
| "GF"
| "PF"
| "TF"
| "GA"
| "GM"
| "GE"
| "DE"
| "GH"
| "GI"
| "GR"
| "GL"
| "GD"
| "GP"
| "GU"
| "GT"
| "GG"
| "GN"
| "GW"
| "GY"
| "HT"
| "HM"
| "VA"
| "HN"
| "HK"
| "HU"
| "IS"
| "IN"
| "ID"
| "IR"
| "IQ"
| "IE"
| "IM"
| "IL"
| "IT"
| "JM"
| "JP"
| "JE"
| "JO"
| "KZ"
| "KE"
| "KI"
| "KP"
| "KR"
| "KW"
| "KG"
| "LA"
| "LV"
| "LB"
| "LS"
| "LR"
| "LY"
| "LI"
| "LT"
| "LU"
| "MO"
| "MK"
| "MG"
| "MW"
| "MY"
| "MV"
| "ML"
| "MT"
| "MH"
| "MQ"
| "MR"
| "MU"
| "YT"
| "MX"
| "FM"
| "MD"
| "MC"
| "MN"
| "ME"
| "MS"
| "MA"
| "MZ"
| "MM"
| "NA"
| "NR"
| "NP"
| "NL"
| "NC"
| "NZ"
| "NI"
| "NE"
| "NG"
| "NU"
| "NF"
| "MP"
| "NO"
| "OM"
| "PK"
| "PW"
| "PS"
| "PA"
| "PG"
| "PY"
| "PE"
| "PH"
| "PN"
| "PL"
| "PT"
| "PR"
| "QA"
| "RE"
| "RO"
| "RU"
| "RW"
| "BL"
| "SH"
| "KN"
| "LC"
| "MF"
| "PM"
| "VC"
| "WS"
| "SM"
| "ST"
| "SA"
| "SN"
| "RS"
| "SC"
| "SL"
| "SG"
| "SX"
| "SK"
| "SI"
| "SB"
| "SO"
| "ZA"
| "GS"
| "SS"
| "ES"
| "LK"
| "SD"
| "SR"
| "SJ"
| "SZ"
| "SE"
| "CH"
| "SY"
| "TW"
| "TJ"
| "TZ"
| "TH"
| "TL"
| "TG"
| "TK"
| "TO"
| "TT"
| "TN"
| "TR"
| "TM"
| "TC"
| "TV"
| "UG"
| "UA"
| "AE"
| "GB"
| "US"
| "UM"
| "UY"
| "UZ"
| "VU"
| "VE"
| "VN"
| "VG"
| "VI"
| "WF"
| "EH"
| "YE"
| "ZM"
| "ZW";
/**
* If SharedGroupId is specified, the service will attempt to create a group with that identifier, and will return an error
* if it is already in use. If no SharedGroupId is specified, a random identifier will be assigned.
*/
interface CreateSharedGroupRequest {
/** Unique identifier for the shared group (a random identifier will be assigned, if one is not specified). */
SharedGroupId?: string,
}
interface CreateSharedGroupResult {
/** Unique identifier for the shared group. */
SharedGroupId?: string,
}
type Currency = "AED"
| "AFN"
| "ALL"
| "AMD"
| "ANG"
| "AOA"
| "ARS"
| "AUD"
| "AWG"
| "AZN"
| "BAM"
| "BBD"
| "BDT"
| "BGN"
| "BHD"
| "BIF"
| "BMD"
| "BND"
| "BOB"
| "BRL"
| "BSD"
| "BTN"
| "BWP"
| "BYR"
| "BZD"
| "CAD"
| "CDF"
| "CHF"
| "CLP"
| "CNY"
| "COP"
| "CRC"
| "CUC"
| "CUP"
| "CVE"
| "CZK"
| "DJF"
| "DKK"
| "DOP"
| "DZD"
| "EGP"
| "ERN"
| "ETB"
| "EUR"
| "FJD"
| "FKP"
| "GBP"
| "GEL"
| "GGP"
| "GHS"
| "GIP"
| "GMD"
| "GNF"
| "GTQ"
| "GYD"
| "HKD"
| "HNL"
| "HRK"
| "HTG"
| "HUF"
| "IDR"
| "ILS"
| "IMP"
| "INR"
| "IQD"
| "IRR"
| "ISK"
| "JEP"
| "JMD"
| "JOD"
| "JPY"
| "KES"
| "KGS"
| "KHR"
| "KMF"
| "KPW"
| "KRW"
| "KWD"
| "KYD"
| "KZT"
| "LAK"
| "LBP"
| "LKR"
| "LRD"
| "LSL"
| "LYD"
| "MAD"
| "MDL"
| "MGA"
| "MKD"
| "MMK"
| "MNT"
| "MOP"
| "MRO"
| "MUR"
| "MVR"
| "MWK"
| "MXN"
| "MYR"
| "MZN"
| "NAD"
| "NGN"
| "NIO"
| "NOK"
| "NPR"
| "NZD"
| "OMR"
| "PAB"
| "PEN"
| "PGK"
| "PHP"
| "PKR"
| "PLN"
| "PYG"
| "QAR"
| "RON"
| "RSD"
| "RUB"
| "RWF"
| "SAR"
| "SBD"
| "SCR"
| "SDG"
| "SEK"
| "SGD"
| "SHP"
| "SLL"
| "SOS"
| "SPL"
| "SRD"
| "STD"
| "SVC"
| "SYP"
| "SZL"
| "THB"
| "TJS"
| "TMT"
| "TND"
| "TOP"
| "TRY"
| "TTD"
| "TVD"
| "TWD"
| "TZS"
| "UAH"
| "UGX"
| "USD"
| "UYU"
| "UZS"
| "VEF"
| "VND"
| "VUV"
| "WST"
| "XAF"
| "XCD"
| "XDR"
| "XOF"
| "XPF"
| "YER"
| "ZAR"
| "ZMW"
| "ZWD";
/**
* This function will delete the specified character from the list allowed by the user, and will also delete any inventory
* or VC currently held by that character. It will NOT delete any statistics associated for this character, in order to
* preserve leaderboard integrity.
*/
interface DeleteCharacterFromUserRequest {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/**
* If true, the character's inventory will be transferred up to the owning user; otherwise, this request will purge those
* items.
*/
SaveCharacterInventory: boolean,
}
interface DeleteCharacterFromUserResult {
}
/**
* Deletes all data associated with the player, including statistics, custom data, inventory, purchases, virtual currency
* balances, characters and shared group memberships. Removes the player from all leaderboards and player search indexes.
* Does not delete PlayStream event history associated with the player. Does not delete the publisher user account that
* created the player in the title nor associated data such as username, password, email address, account linkages, or
* friends list. Note, this API queues the player for deletion and returns immediately. It may take several minutes or more
* before all player data is fully deleted. Until the player data is fully deleted, attempts to recreate the player with
* the same user account in the same title will fail with the 'AccountDeleted' error. This API must be enabled for use as
* an option in the game manager website. It is disabled by default.
*/
interface DeletePlayerRequest {
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface DeletePlayerResult {
}
/** Represents the request to delete a push notification template. */
interface DeletePushNotificationTemplateRequest {
/** Id of the push notification template to be deleted. */
PushNotificationTemplateId: string,
}
interface DeletePushNotificationTemplateResult {
}
interface DeleteSharedGroupRequest {
/** Unique identifier for the shared group. */
SharedGroupId: string,
}
interface DeregisterGameRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique identifier for the Game Server Instance that is being deregistered. */
LobbyId: string,
}
interface DeregisterGameResponse {
}
type EmailVerificationStatus = "Unverified"
| "Pending"
| "Confirmed";
interface EmptyResponse {
}
interface EmptyResult {
}
/** Combined entity type and ID structure which uniquely identifies a single entity. */
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,
}
interface EntityTokenResponse {
/** The entity id and type. */
Entity?: EntityKey,
/** The token used to set X-EntityToken for all entity based API calls. */
EntityToken?: string,
/** The time the token will expire, if it is an expiring token, in UTC. */
TokenExpiration?: string,
}
interface EvaluateRandomResultTableRequest {
/**
* Specifies the catalog version that should be used to evaluate the Random Result Table. If unspecified, uses
* default/primary catalog.
*/
CatalogVersion?: string,
/** The unique identifier of the Random Result Table to use. */
TableId: string,
}
/**
* Note that if the Random Result Table contains no entries, or does not exist for the catalog specified (the Primary
* catalog if one is not specified), an InvalidDropTable error will be returned.
*/
interface EvaluateRandomResultTableResult {
/** Unique identifier for the item returned from the Random Result Table evaluation, for the given catalog. */
ResultItemId?: string,
}
interface ExecuteCloudScriptResult {
/** Number of PlayFab API requests issued by the CloudScript function */
APIRequestsIssued: number,
/** Information about the error, if any, that occurred during execution */
Error?: ScriptExecutionError,
ExecutionTimeSeconds: number,
/** The name of the function that executed */
FunctionName?: string,
/** The object returned from the CloudScript function, if any */
FunctionResult?: any,
/**
* Flag indicating if the FunctionResult was too large and was subsequently dropped from this event. This only occurs if
* the total event size is larger than 350KB.
*/
FunctionResultTooLarge?: boolean,
/** Number of external HTTP requests issued by the CloudScript function */
HttpRequestsIssued: number,
/**
* Entries logged during the function execution. These include both entries logged in the function code using log.info()
* and log.error() and error entries for API and HTTP request failures.
*/
Logs?: LogStatement[],
/**
* Flag indicating if the logs were too large and were subsequently dropped from this event. This only occurs if the total
* event size is larger than 350KB after the FunctionResult was removed.
*/
LogsTooLarge?: boolean,
MemoryConsumedBytes: number,
/**
* Processor time consumed while executing the function. This does not include time spent waiting on API calls or HTTP
* requests.
*/
ProcessorTimeSeconds: number,
/** The revision of the CloudScript that executed */
Revision: number,
}
interface ExecuteCloudScriptServerRequest {
/** 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 CloudScript function to execute */
FunctionName: string,
/** Object that is passed in to the function as the first argument */
FunctionParameter?: any,
/**
* Generate a 'player_executed_cloudscript' PlayStream event containing the results of the function execution and other
* contextual information. This event will show up in the PlayStream debugger console for the player in Game Manager.
*/
GeneratePlayStreamEvent?: boolean,
/** The unique user identifier for the player on whose behalf the script is being run */
PlayFabId: string,
/**
* Option for which revision of the CloudScript to execute. 'Latest' executes the most recently created revision, 'Live'
* executes the current live, published revision, and 'Specific' executes the specified revision. The default value is
* 'Specific', if the SpeificRevision parameter is specified, otherwise it is 'Live'.
*/
RevisionSelection?: CloudScriptRevisionOption,
/** The specivic revision to execute, when RevisionSelection is set to 'Specific' */
SpecificRevision?: number,
}
interface FacebookInstantGamesPlayFabIdPair {
/** Unique Facebook Instant Games identifier for a user. */
FacebookInstantGamesId?: string,
/** Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Facebook Instant Games identifier. */
PlayFabId?: string,
}
interface FacebookPlayFabIdPair {
/** Unique Facebook identifier for a user. */
FacebookId?: string,
/** Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the Facebook identifier. */
PlayFabId?: string,
}
interface FriendInfo {
/** Available Facebook information (if the user and PlayFab friend are also connected in Facebook). */
FacebookInfo?: UserFacebookInfo,
/** PlayFab unique identifier for this friend. */
FriendPlayFabId?: string,
/** Available Game Center information (if the user and PlayFab friend are also connected in Game Center). */
GameCenterInfo?: UserGameCenterInfo,
/** The profile of the user, if requested. */
Profile?: PlayerProfileModel,
/** Available PSN information, if the user and PlayFab friend are both connected to PSN. */
PSNInfo?: UserPsnInfo,
/** Available Steam information (if the user and PlayFab friend are also connected in Steam). */
SteamInfo?: UserSteamInfo,
/** Tags which have been associated with this friend. */
Tags?: string[],
/** Title-specific display name for this friend. */
TitleDisplayName?: string,
/** PlayFab unique username for this friend. */
Username?: string,
/** Available Xbox information, if the user and PlayFab friend are both connected to Xbox Live. */
XboxInfo?: UserXboxInfo,
}
type GameInstanceState = "Open"
| "Closed";
type GenericErrorCodes = "Success"
| "UnkownError"
| "InvalidParams"
| "AccountNotFound"
| "AccountBanned"
| "InvalidUsernameOrPassword"
| "InvalidTitleId"
| "InvalidEmailAddress"
| "EmailAddressNotAvailable"
| "InvalidUsername"
| "InvalidPassword"
| "UsernameNotAvailable"
| "InvalidSteamTicket"
| "AccountAlreadyLinked"
| "LinkedAccountAlreadyClaimed"
| "InvalidFacebookToken"
| "AccountNotLinked"
| "FailedByPaymentProvider"
| "CouponCodeNotFound"
| "InvalidContainerItem"
| "ContainerNotOwned"
| "KeyNotOwned"
| "InvalidItemIdInTable"
| "InvalidReceipt"
| "ReceiptAlreadyUsed"
| "ReceiptCancelled"
| "GameNotFound"
| "GameModeNotFound"
| "InvalidGoogleToken"
| "UserIsNotPartOfDeveloper"
| "InvalidTitleForDeveloper"
| "TitleNameConflicts"
| "UserisNotValid"
| "ValueAlreadyExists"
| "BuildNotFound"
| "PlayerNotInGame"
| "InvalidTicket"
| "InvalidDeveloper"
| "InvalidOrderInfo"
| "RegistrationIncomplete"
| "InvalidPlatform"
| "UnknownError"
| "SteamApplicationNotOwned"
| "WrongSteamAccount"
| "TitleNotActivated"
| "RegistrationSessionNotFound"
| "NoSuchMod"
| "FileNotFound"
| "DuplicateEmail"
| "ItemNotFound"
| "ItemNotOwned"
| "ItemNotRecycleable"
| "ItemNotAffordable"
| "InvalidVirtualCurrency"
| "WrongVirtualCurrency"
| "WrongPrice"
| "NonPositiveValue"
| "InvalidRegion"
| "RegionAtCapacity"
| "ServerFailedToStart"
| "NameNotAvailable"
| "InsufficientFunds"
| "InvalidDeviceID"
| "InvalidPushNotificationToken"
| "NoRemainingUses"
| "InvalidPaymentProvider"
| "PurchaseInitializationFailure"
| "DuplicateUsername"
| "InvalidBuyerInfo"
| "NoGameModeParamsSet"
| "BodyTooLarge"
| "ReservedWordInBody"
| "InvalidTypeInBody"
| "InvalidRequest"
| "ReservedEventName"
| "InvalidUserStatistics"
| "NotAuthenticated"
| "StreamAlreadyExists"
| "ErrorCreatingStream"
| "StreamNotFound"
| "InvalidAccount"
| "PurchaseDoesNotExist"
| "InvalidPurchaseTransactionStatus"
| "APINotEnabledForGameClientAccess"
| "NoPushNotificationARNForTitle"
| "BuildAlreadyExists"
| "BuildPackageDoesNotExist"
| "CustomAnalyticsEventsNotEnabledForTitle"
| "InvalidSharedGroupId"
| "NotAuthorized"
| "MissingTitleGoogleProperties"
| "InvalidItemProperties"
| "InvalidPSNAuthCode"
| "InvalidItemId"
| "PushNotEnabledForAccount"
| "PushServiceError"
| "ReceiptDoesNotContainInAppItems"
| "ReceiptContainsMultipleInAppItems"
| "InvalidBundleID"
| "JavascriptException"
| "InvalidSessionTicket"
| "UnableToConnectToDatabase"
| "InternalServerError"
| "InvalidReportDate"
| "ReportNotAvailable"
| "DatabaseThroughputExceeded"
| "InvalidGameTicket"
| "ExpiredGameTicket"
| "GameTicketDoesNotMatchLobby"
| "LinkedDeviceAlreadyClaimed"
| "DeviceAlreadyLinked"
| "DeviceNotLinked"
| "PartialFailure"
| "PublisherNotSet"
| "ServiceUnavailable"
| "VersionNotFound"
| "RevisionNotFound"
| "InvalidPublisherId"
| "DownstreamServiceUnavailable"
| "APINotIncludedInTitleUsageTier"
| "DAULimitExceeded"
| "APIRequestLimitExceeded"
| "InvalidAPIEndpoint"
| "BuildNotAvailable"
| "ConcurrentEditError"
| "ContentNotFound"
| "CharacterNotFound"
| "CloudScriptNotFound"
| "ContentQuotaExceeded"
| "InvalidCharacterStatistics"
| "PhotonNotEnabledForTitle"
| "PhotonApplicationNotFound"
| "PhotonApplicationNotAssociatedWithTitle"
| "InvalidEmailOrPassword"
| "FacebookAPIError"
| "InvalidContentType"
| "KeyLengthExceeded"
| "DataLengthExceeded"
| "TooManyKeys"
| "FreeTierCannotHaveVirtualCurrency"
| "MissingAmazonSharedKey"
| "AmazonValidationError"
| "InvalidPSNIssuerId"
| "PSNInaccessible"
| "ExpiredAuthToken"
| "FailedToGetEntitlements"
| "FailedToConsumeEntitlement"
| "TradeAcceptingUserNotAllowed"
| "TradeInventoryItemIsAssignedToCharacter"
| "TradeInventoryItemIsBundle"
| "TradeStatusNotValidForCancelling"
| "TradeStatusNotValidForAccepting"
| "TradeDoesNotExist"
| "TradeCancelled"
| "TradeAlreadyFilled"
| "TradeWaitForStatusTimeout"
| "TradeInventoryItemExpired"
| "TradeMissingOfferedAndAcceptedItems"
| "TradeAcceptedItemIsBundle"
| "TradeAcceptedItemIsStackable"
| "TradeInventoryItemInvalidStatus"
| "TradeAcceptedCatalogItemInvalid"
| "TradeAllowedUsersInvalid"
| "TradeInventoryItemDoesNotExist"
| "TradeInventoryItemIsConsumed"
| "TradeInventoryItemIsStackable"
| "TradeAcceptedItemsMismatch"
| "InvalidKongregateToken"
| "FeatureNotConfiguredForTitle"
| "NoMatchingCatalogItemForReceipt"
| "InvalidCurrencyCode"
| "NoRealMoneyPriceForCatalogItem"
| "TradeInventoryItemIsNotTradable"
| "TradeAcceptedCatalogItemIsNotTradable"
| "UsersAlreadyFriends"
| "LinkedIdentifierAlreadyClaimed"
| "CustomIdNotLinked"
| "TotalDataSizeExceeded"
| "DeleteKeyConflict"
| "InvalidXboxLiveToken"
| "ExpiredXboxLiveToken"
| "ResettableStatisticVersionRequired"
| "NotAuthorizedByTitle"
| "NoPartnerEnabled"
| "InvalidPartnerResponse"
| "APINotEnabledForGameServerAccess"
| "StatisticNotFound"
| "StatisticNameConflict"
| "StatisticVersionClosedForWrites"
| "StatisticVersionInvalid"
| "APIClientRequestRateLimitExceeded"
| "InvalidJSONContent"
| "InvalidDropTable"
| "StatisticVersionAlreadyIncrementedForScheduledInterval"
| "StatisticCountLimitExceeded"
| "StatisticVersionIncrementRateExceeded"
| "ContainerKeyInvalid"
| "CloudScriptExecutionTimeLimitExceeded"
| "NoWritePermissionsForEvent"
| "CloudScriptFunctionArgumentSizeExceeded"
| "CloudScriptAPIRequestCountExceeded"
| "CloudScriptAPIRequestError"
| "CloudScriptHTTPRequestError"
| "InsufficientGuildRole"
| "GuildNotFound"
| "OverLimit"
| "EventNotFound"
| "InvalidEventField"
| "InvalidEventName"
| "CatalogNotConfigured"
| "OperationNotSupportedForPlatform"
| "SegmentNotFound"
| "StoreNotFound"
| "InvalidStatisticName"
| "TitleNotQualifiedForLimit"
| "InvalidServiceLimitLevel"
| "ServiceLimitLevelInTransition"
| "CouponAlreadyRedeemed"
| "GameServerBuildSizeLimitExceeded"
| "GameServerBuildCountLimitExceeded"
| "VirtualCurrencyCountLimitExceeded"
| "VirtualCurrencyCodeExists"
| "TitleNewsItemCountLimitExceeded"
| "InvalidTwitchToken"
| "TwitchResponseError"
| "ProfaneDisplayName"
| "UserAlreadyAdded"
| "InvalidVirtualCurrencyCode"
| "VirtualCurrencyCannotBeDeleted"
| "IdentifierAlreadyClaimed"
| "IdentifierNotLinked"
| "InvalidContinuationToken"
| "ExpiredContinuationToken"
| "InvalidSegment"
| "InvalidSessionId"
| "SessionLogNotFound"
| "InvalidSearchTerm"
| "TwoFactorAuthenticationTokenRequired"
| "GameServerHostCountLimitExceeded"
| "PlayerTagCountLimitExceeded"
| "RequestAlreadyRunning"
| "ActionGroupNotFound"
| "MaximumSegmentBulkActionJobsRunning"
| "NoActionsOnPlayersInSegmentJob"
| "DuplicateStatisticName"
| "ScheduledTaskNameConflict"
| "ScheduledTaskCreateConflict"
| "InvalidScheduledTaskName"
| "InvalidTaskSchedule"
| "SteamNotEnabledForTitle"
| "LimitNotAnUpgradeOption"
| "NoSecretKeyEnabledForCloudScript"
| "TaskNotFound"
| "TaskInstanceNotFound"
| "InvalidIdentityProviderId"
| "MisconfiguredIdentityProvider"
| "InvalidScheduledTaskType"
| "BillingInformationRequired"
| "LimitedEditionItemUnavailable"
| "InvalidAdPlacementAndReward"
| "AllAdPlacementViewsAlreadyConsumed"
| "GoogleOAuthNotConfiguredForTitle"
| "GoogleOAuthError"
| "UserNotFriend"
| "InvalidSignature"
| "InvalidPublicKey"
| "GoogleOAuthNoIdTokenIncludedInResponse"
| "StatisticUpdateInProgress"
| "LeaderboardVersionNotAvailable"
| "StatisticAlreadyHasPrizeTable"
| "PrizeTableHasOverlappingRanks"
| "PrizeTableHasMissingRanks"
| "PrizeTableRankStartsAtZero"
| "InvalidStatistic"
| "ExpressionParseFailure"
| "ExpressionInvokeFailure"
| "ExpressionTooLong"
| "DataUpdateRateExceeded"
| "RestrictedEmailDomain"
| "EncryptionKeyDisabled"
| "EncryptionKeyMissing"
| "EncryptionKeyBroken"
| "NoSharedSecretKeyConfigured"
| "SecretKeyNotFound"
| "PlayerSecretAlreadyConfigured"
| "APIRequestsDisabledForTitle"
| "InvalidSharedSecretKey"
| "PrizeTableHasNoRanks"
| "ProfileDoesNotExist"
| "ContentS3OriginBucketNotConfigured"
| "InvalidEnvironmentForReceipt"
| "EncryptedRequestNotAllowed"
| "SignedRequestNotAllowed"
| "RequestViewConstraintParamsNotAllowed"
| "BadPartnerConfiguration"
| "XboxBPCertificateFailure"
| "XboxXASSExchangeFailure"
| "InvalidEntityId"
| "StatisticValueAggregationOverflow"
| "EmailMessageFromAddressIsMissing"
| "EmailMessageToAddressIsMissing"
| "SmtpServerAuthenticationError"
| "SmtpServerLimitExceeded"
| "SmtpServerInsufficientStorage"
| "SmtpServerCommunicationError"
| "SmtpServerGeneralFailure"
| "EmailClientTimeout"
| "EmailClientCanceledTask"
| "EmailTemplateMissing"
| "InvalidHostForTitleId"
| "EmailConfirmationTokenDoesNotExist"
| "EmailConfirmationTokenExpired"
| "AccountDeleted"
| "PlayerSecretNotConfigured"
| "InvalidSignatureTime"
| "NoContactEmailAddressFound"
| "InvalidAuthToken"
| "AuthTokenDoesNotExist"
| "AuthTokenExpired"
| "AuthTokenAlreadyUsedToResetPassword"
| "MembershipNameTooLong"
| "MembershipNotFound"
| "GoogleServiceAccountInvalid"
| "GoogleServiceAccountParseFailure"
| "EntityTokenMissing"
| "EntityTokenInvalid"
| "EntityTokenExpired"
| "EntityTokenRevoked"
| "InvalidProductForSubscription"
| "XboxInaccessible"
| "SubscriptionAlreadyTaken"
| "SmtpAddonNotEnabled"
| "APIConcurrentRequestLimitExceeded"
| "XboxRejectedXSTSExchangeRequest"
| "VariableNotDefined"
| "TemplateVersionNotDefined"
| "FileTooLarge"
| "TitleDeleted"
| "TitleContainsUserAccounts"
| "TitleDeletionPlayerCleanupFailure"
| "EntityFileOperationPending"
| "NoEntityFileOperationPending"
| "EntityProfileVersionMismatch"
| "TemplateVersionTooOld"
| "MembershipDefinitionInUse"
| "PaymentPageNotConfigured"
| "FailedLoginAttemptRateLimitExceeded"
| "EntityBlockedByGroup"
| "RoleDoesNotExist"
| "EntityIsAlreadyMember"
| "DuplicateRoleId"
| "GroupInvitationNotFound"
| "GroupApplicationNotFound"
| "OutstandingInvitationAcceptedInstead"
| "OutstandingApplicationAcceptedInstead"
| "RoleIsGroupDefaultMember"
| "RoleIsGroupAdmin"
| "RoleNameNotAvailable"
| "GroupNameNotAvailable"
| "EmailReportAlreadySent"
| "EmailReportRecipientBlacklisted"
| "EventNamespaceNotAllowed"
| "EventEntityNotAllowed"
| "InvalidEntityType"
| "NullTokenResultFromAad"
| "InvalidTokenResultFromAad"
| "NoValidCertificateForAad"
| "InvalidCertificateForAad"
| "DuplicateDropTableId"
| "MultiplayerServerError"
| "MultiplayerServerTooManyRequests"
| "MultiplayerServerNoContent"
| "MultiplayerServerBadRequest"
| "MultiplayerServerUnauthorized"
| "MultiplayerServerForbidden"
| "MultiplayerServerNotFound"
| "MultiplayerServerConflict"
| "MultiplayerServerInternalServerError"
| "MultiplayerServerUnavailable"
| "ExplicitContentDetected"
| "PIIContentDetected"
| "InvalidScheduledTaskParameter"
| "PerEntityEventRateLimitExceeded"
| "TitleDefaultLanguageNotSet"
| "EmailTemplateMissingDefaultVersion"
| "FacebookInstantGamesIdNotLinked"
| "InvalidFacebookInstantGamesSignature"
| "FacebookInstantGamesAuthNotConfiguredForTitle"
| "EntityProfileConstraintValidationFailed"
| "TelemetryIngestionKeyPending"
| "TelemetryIngestionKeyNotFound"
| "StatisticChildNameInvalid"
| "DataIntegrityError"
| "VirtualCurrencyCannotBeSetToOlderVersion"
| "VirtualCurrencyMustBeWithinIntegerRange"
| "EmailTemplateInvalidSyntax"
| "EmailTemplateMissingCallback"
| "PushNotificationTemplateInvalidPayload"
| "InvalidLocalizedPushNotificationLanguage"
| "MissingLocalizedPushNotificationMessage"
| "PushNotificationTemplateMissingPlatformPayload"
| "PushNotificationTemplatePayloadContainsInvalidJson"
| "PushNotificationTemplateContainsInvalidIosPayload"
| "PushNotificationTemplateContainsInvalidAndroidPayload"
| "PushNotificationTemplateIosPayloadMissingNotificationBody"
| "PushNotificationTemplateAndroidPayloadMissingNotificationBody"
| "PushNotificationTemplateNotFound"
| "PushNotificationTemplateMissingDefaultVersion"
| "PushNotificationTemplateInvalidSyntax"
| "PushNotificationTemplateNoCustomPayloadForV1"
| "NoLeaderboardForStatistic"
| "TitleNewsMissingDefaultLanguage"
| "TitleNewsNotFound"
| "TitleNewsDuplicateLanguage"
| "TitleNewsMissingTitleOrBody"
| "TitleNewsInvalidLanguage"
| "EmailRecipientBlacklisted"
| "InvalidGameCenterAuthRequest"
| "GameCenterAuthenticationFailed"
| "CannotEnablePartiesForTitle"
| "PartyError"
| "PartyRequests"
| "PartyNoContent"
| "PartyBadRequest"
| "PartyUnauthorized"
| "PartyForbidden"
| "PartyNotFound"
| "PartyConflict"
| "PartyInternalServerError"
| "PartyUnavailable"
| "PartyTooManyRequests"
| "PushNotificationTemplateMissingName"
| "CannotEnableMultiplayerServersForTitle"
| "WriteAttemptedDuringExport"
| "MultiplayerServerTitleQuotaCoresExceeded"
| "AutomationRuleNotFound"
| "EntityAPIKeyLimitExceeded"
| "EntityAPIKeyNotFound"
| "EntityAPIKeyOrSecretInvalid"
| "EconomyServiceUnavailable"
| "EconomyServiceInternalError"
| "QueryRateLimitExceeded"
| "EntityAPIKeyCreationDisabledForEntity"
| "ForbiddenByEntityPolicy"
| "UpdateInventoryRateLimitExceeded"
| "StudioCreationRateLimited"
| "StudioCreationInProgress"
| "DuplicateStudioName"
| "StudioNotFound"
| "StudioDeleted"
| "StudioDeactivated"
| "StudioActivated"
| "TitleCreationRateLimited"
| "TitleCreationInProgress"
| "DuplicateTitleName"
| "TitleActivationRateLimited"
| "TitleActivationInProgress"
| "TitleDeactivated"
| "TitleActivated"
| "CloudScriptAzureFunctionsExecutionTimeLimitExceeded"
| "CloudScriptAzureFunctionsArgumentSizeExceeded"
| "CloudScriptAzureFunctionsReturnSizeExceeded"
| "CloudScriptAzureFunctionsHTTPRequestError"
| "VirtualCurrencyBetaGetError"
| "VirtualCurrencyBetaCreateError"
| "VirtualCurrencyBetaInitialDepositSaveError"
| "VirtualCurrencyBetaSaveError"
| "VirtualCurrencyBetaDeleteError"
| "VirtualCurrencyBetaRestoreError"
| "VirtualCurrencyBetaSaveConflict"
| "VirtualCurrencyBetaUpdateError"
| "InsightsManagementDatabaseNotFound"
| "InsightsManagementOperationNotFound"
| "InsightsManagementErrorPendingOperationExists"
| "InsightsManagementSetPerformanceLevelInvalidParameter"
| "InsightsManagementSetStorageRetentionInvalidParameter"
| "InsightsManagementGetStorageUsageInvalidParameter"
| "InsightsManagementGetOperationStatusInvalidParameter"
| "DuplicatePurchaseTransactionId"
| "EvaluationModePlayerCountExceeded"
| "GetPlayersInSegmentRateLimitExceeded"
| "CloudScriptFunctionNameSizeExceeded"
| "PaidInsightsFeaturesNotEnabled"
| "CloudScriptAzureFunctionsQueueRequestError"
| "EvaluationModeTitleCountExceeded"
| "InsightsManagementTitleNotInFlight"
| "LimitNotFound"
| "LimitNotAvailableViaAPI"
| "InsightsManagementSetStorageRetentionBelowMinimum"
| "InsightsManagementSetStorageRetentionAboveMaximum"
| "AppleNotEnabledForTitle"
| "InsightsManagementNewActiveEventExportLimitInvalid"
| "InsightsManagementSetPerformanceRateLimited"
| "PartyRequestsThrottledFromRateLimiter"
| "XboxServiceTooManyRequests"
| "NintendoSwitchNotEnabledForTitle"
| "RequestMultiplayerServersThrottledFromRateLimiter"
| "TitleDataOverrideNotFound"
| "DuplicateKeys"
| "WasNotCreatedWithCloudRoot"
| "LegacyMultiplayerServersDeprecated"
| "VirtualCurrencyCurrentlyUnavailable"
| "SteamUserNotFound"
| "ElasticSearchOperationFailed"
| "NotImplemented"
| "PublisherNotFound"
| "PublisherDeleted"
| "ApiDisabledForMigration"
| "ResourceNameUpdateNotAllowed"
| "ApiNotEnabledForTitle"
| "DuplicateTitleNameForPublisher"
| "AzureTitleCreationInProgress"
| "TitleConstraintsPublisherDeletion"
| "InvalidPlayerAccountPoolId"
| "PlayerAccountPoolNotFound"
| "PlayerAccountPoolDeleted"
| "TitleCleanupInProgress"
| "AzureResourceConcurrentOperationInProgress"
| "TitlePublisherUpdateNotAllowed"
| "AzureResourceManagerNotSupportedInStamp"
| "ApiNotIncludedInAzurePlayFabFeatureSet"
| "GoogleServiceAccountFailedAuth"
| "GoogleAPIServiceUnavailable"
| "GoogleAPIServiceUnknownError"
| "NoValidIdentityForAad"
| "PlayerIdentityLinkNotFound"
| "PhotonApplicationIdAlreadyInUse"
| "CloudScriptUnableToDeleteProductionRevision"
| "CustomIdNotFound"
| "MatchmakingEntityInvalid"
| "MatchmakingPlayerAttributesInvalid"
| "MatchmakingQueueNotFound"
| "MatchmakingMatchNotFound"
| "MatchmakingTicketNotFound"
| "MatchmakingAlreadyJoinedTicket"
| "MatchmakingTicketAlreadyCompleted"
| "MatchmakingQueueConfigInvalid"
| "MatchmakingMemberProfileInvalid"
| "NintendoSwitchDeviceIdNotLinked"
| "MatchmakingNotEnabled"
| "MatchmakingPlayerAttributesTooLarge"
| "MatchmakingNumberOfPlayersInTicketTooLarge"
| "MatchmakingAttributeInvalid"
| "MatchmakingPlayerHasNotJoinedTicket"
| "MatchmakingRateLimitExceeded"
| "MatchmakingTicketMembershipLimitExceeded"
| "MatchmakingUnauthorized"
| "MatchmakingQueueLimitExceeded"
| "MatchmakingRequestTypeMismatch"
| "MatchmakingBadRequest"
| "PubSubFeatureNotEnabledForTitle"
| "PubSubTooManyRequests"
| "PubSubConnectionNotFoundForEntity"
| "PubSubConnectionHandleInvalid"
| "PubSubSubscriptionLimitExceeded"
| "TitleConfigNotFound"
| "TitleConfigUpdateConflict"
| "TitleConfigSerializationError"
| "CatalogApiNotImplemented"
| "CatalogEntityInvalid"
| "CatalogTitleIdMissing"
| "CatalogPlayerIdMissing"
| "CatalogClientIdentityInvalid"
| "CatalogOneOrMoreFilesInvalid"
| "CatalogItemMetadataInvalid"
| "CatalogItemIdInvalid"
| "CatalogSearchParameterInvalid"
| "CatalogFeatureDisabled"
| "CatalogConfigInvalid"
| "CatalogItemTypeInvalid"
| "CatalogBadRequest"
| "CatalogTooManyRequests"
| "ExportInvalidStatusUpdate"
| "ExportInvalidPrefix"
| "ExportBlobContainerDoesNotExist"
| "ExportNotFound"
| "ExportCouldNotUpdate"
| "ExportInvalidStorageType"
| "ExportAmazonBucketDoesNotExist"
| "ExportInvalidBlobStorage"
| "ExportKustoException"
| "ExportKustoConnectionFailed"
| "ExportUnknownError"
| "ExportCantEditPendingExport"
| "ExportLimitExports"
| "ExportLimitEvents"
| "ExportInvalidPartitionStatusModification"
| "ExportCouldNotCreate"
| "ExportNoBackingDatabaseFound"
| "ExportCouldNotDelete"
| "ExportCannotDetermineEventQuery"
| "ExportInvalidQuerySchemaModification"
| "ExportQuerySchemaMissingRequiredColumns"
| "ExportCannotParseQuery"
| "ExportControlCommandsNotAllowed"
| "ExportQueryMissingTableReference"
| "ExplorerBasicInvalidQueryName"
| "ExplorerBasicInvalidQueryDescription"
| "ExplorerBasicInvalidQueryConditions"
| "ExplorerBasicInvalidQueryStartDate"
| "ExplorerBasicInvalidQueryEndDate"
| "ExplorerBasicInvalidQueryGroupBy"
| "ExplorerBasicInvalidQueryAggregateType"
| "ExplorerBasicInvalidQueryAggregateProperty"
| "ExplorerBasicLoadQueriesError"
| "ExplorerBasicLoadQueryError"
| "ExplorerBasicCreateQueryError"
| "ExplorerBasicDeleteQueryError"
| "ExplorerBasicUpdateQueryError"
| "ExplorerBasicSavedQueriesLimit"
| "ExplorerBasicSavedQueryNotFound"
| "TenantShardMapperShardNotFound"
| "TitleNotEnabledForParty"
| "PartyVersionNotFound"
| "MultiplayerServerBuildReferencedByMatchmakingQueue"
| "MultiplayerServerBuildReferencedByBuildAlias"
| "ExperimentationExperimentStopped"
| "ExperimentationExperimentRunning"
| "ExperimentationExperimentNotFound"
| "ExperimentationExperimentNeverStarted"
| "ExperimentationExperimentDeleted"
| "ExperimentationClientTimeout"
| "ExperimentationInvalidVariantConfiguration"
| "ExperimentationInvalidVariableConfiguration"
| "ExperimentInvalidId"
| "ExperimentationNoScorecard"
| "ExperimentationTreatmentAssignmentFailed"
| "ExperimentationTreatmentAssignmentDisabled"
| "ExperimentationInvalidDuration"
| "ExperimentationMaxExperimentsReached"
| "ExperimentationExperimentSchedulingInProgress"
| "ExperimentationInvalidEndDate"
| "ExperimentationInvalidStartDate"
| "ExperimentationMaxDurationExceeded"
| "ExperimentationExclusionGroupNotFound"
| "ExperimentationExclusionGroupInsufficientCapacity"
| "ExperimentationExclusionGroupCannotDelete"
| "ExperimentationExclusionGroupInvalidTrafficAllocation"
| "ExperimentationExclusionGroupInvalidName"
| "MaxActionDepthExceeded"
| "TitleNotOnUpdatedPricingPlan"
| "SegmentManagementTitleNotInFlight"
| "SegmentManagementNoExpressionTree"
| "SegmentManagementTriggerActionCountOverLimit"
| "SegmentManagementSegmentCountOverLimit"
| "SegmentManagementInvalidSegmentId"
| "SegmentManagementInvalidInput"
| "SegmentManagementInvalidSegmentName"
| "DeleteSegmentRateLimitExceeded"
| "CreateSegmentRateLimitExceeded"
| "UpdateSegmentRateLimitExceeded"
| "GetSegmentsRateLimitExceeded"
| "AsyncExportNotInFlight"
| "AsyncExportNotFound"
| "AsyncExportRateLimitExceeded"
| "SnapshotNotFound"
| "InventoryApiNotImplemented"
| "LobbyDoesNotExist"
| "LobbyRateLimitExceeded"
| "LobbyPlayerAlreadyJoined"
| "LobbyNotJoinable"
| "LobbyMemberCannotRejoin"
| "LobbyCurrentPlayersMoreThanMaxPlayers"
| "LobbyPlayerNotPresent"
| "LobbyBadRequest"
| "LobbyPlayerMaxLobbyLimitExceeded"
| "LobbyNewOwnerMustBeConnected"
| "LobbyCurrentOwnerStillConnected"
| "LobbyMemberIsNotOwner"
| "EventSamplingInvalidRatio"
| "EventSamplingInvalidEventNamespace"
| "EventSamplingInvalidEventName"
| "EventSamplingRatioNotFound"
| "EventSinkConnectionInvalid"
| "EventSinkConnectionUnauthorized"
| "EventSinkRegionInvalid"
| "EventSinkLimitExceeded"
| "EventSinkSasTokenInvalid"
| "EventSinkNotFound"
| "EventSinkNameInvalid"
| "EventSinkSasTokenPermissionInvalid"
| "EventSinkSecretInvalid"
| "OperationCanceled"
| "InvalidDisplayNameRandomSuffixLength"
| "AllowNonUniquePlayerDisplayNamesDisableNotAllowed";
interface GenericPlayFabIdPair {
/** Unique generic service identifier for a user. */
GenericId?: GenericServiceId,
/** Unique PlayFab identifier for a user, or null if no PlayFab account is linked to the given generic identifier. */
PlayFabId?: string,
}
interface GenericServiceId {
/** Name of the service for which the player has a unique identifier. */
ServiceName: string,
/** Unique identifier of the player in that service. */
UserId: string,
}
/** Request has no paramaters. */
interface GetAllSegmentsRequest {
}
interface GetAllSegmentsResult {
/** Array of segments for this title. */
Segments?: GetSegmentResult[],
}
interface GetCatalogItemsRequest {
/** Which catalog is being requested. If null, uses the default catalog. */
CatalogVersion?: string,
}
interface GetCatalogItemsResult {
/** Array of items which can be purchased. */
Catalog?: CatalogItem[],
}
/**
* Data is stored as JSON key-value pairs. If the Keys parameter is provided, the data object returned will only contain
* the data specific to the indicated Keys. Otherwise, the full set of custom user data will be returned.
*/
interface GetCharacterDataRequest {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/**
* The version that currently exists according to the caller. The call will return the data for all of the keys if the
* version in the system is greater than this.
*/
IfChangedFromDataVersion?: number,
/** Specific keys to search for in the custom user data. */
Keys?: string[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetCharacterDataResult {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId?: string,
/** User specific data for this title. */
Data?: { [key: string]: UserDataRecord },
/**
* Indicates the current version of the data that has been set. This is incremented with every set call for that type of
* data (read-only, internal, etc). This version can be provided in Get calls to find updated data.
*/
DataVersion: number,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
}
/**
* All items currently in the character inventory will be returned, irrespective of how they were acquired (via purchasing,
* grants, coupons, etc.). Items that are expired, fully consumed, or are no longer valid are not considered to be in the
* user's current inventory, and so will not be not included. Also returns their virtual currency balances.
*/
interface GetCharacterInventoryRequest {
/** Used to limit results to only those from a specific catalog version. */
CatalogVersion?: string,
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetCharacterInventoryResult {
/** Unique identifier of the character for this inventory. */
CharacterId?: string,
/** Array of inventory items belonging to the character. */
Inventory?: ItemInstance[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
/** Array of virtual currency balance(s) belonging to the character. */
VirtualCurrency?: { [key: string]: number },
/** Array of remaining times and timestamps for virtual currencies. */
VirtualCurrencyRechargeTimes?: { [key: string]: VirtualCurrencyRechargeTime },
}
interface GetCharacterLeaderboardRequest {
/** Optional character type on which to filter the leaderboard entries. */
CharacterType?: string,
/** Maximum number of entries to retrieve. */
MaxResultsCount: number,
/** First entry in the leaderboard to be retrieved. */
StartPosition: number,
/** Unique identifier for the title-specific statistic for the leaderboard. */
StatisticName: string,
}
/** Note that the Position of the character in the results is for the overall leaderboard. */
interface GetCharacterLeaderboardResult {
/** Ordered list of leaderboard entries. */
Leaderboard?: CharacterLeaderboardEntry[],
}
/**
* Character statistics are similar to user statistics in that they are numeric values which may only be updated by a
* server operation, in order to minimize the opportunity for unauthorized changes. In addition to being available for use
* by the title, the statistics are used for all leaderboard operations in PlayFab.
*/
interface GetCharacterStatisticsRequest {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetCharacterStatisticsResult {
/** Unique identifier of the character for the statistics. */
CharacterId?: string,
/** Character statistics for the requested user. */
CharacterStatistics?: { [key: string]: number },
/** PlayFab unique identifier of the user whose character statistics are being returned. */
PlayFabId?: string,
}
interface GetContentDownloadUrlRequest {
/** HTTP method to fetch item - GET or HEAD. Use HEAD when only fetching metadata. Default is GET. */
HttpMethod?: string,
/** Key of the content item to fetch, usually formatted as a path, e.g. images/a.png */
Key: string,
/**
* True to download through CDN. CDN provides higher download bandwidth and lower latency. However, if you want the latest,
* non-cached version of the content during development, set this to false. Default is true.
*/
ThruCDN?: boolean,
}
interface GetContentDownloadUrlResult {
/** URL for downloading content via HTTP GET or HEAD method. The URL will expire in approximately one hour. */
URL?: string,
}
interface GetFriendLeaderboardRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Indicates whether Facebook friends should be included in the response. Default is true. */
IncludeFacebookFriends?: boolean,
/** Indicates whether Steam service friends should be included in the response. Default is true. */
IncludeSteamFriends?: boolean,
/** Maximum number of entries to retrieve. */
MaxResultsCount: number,
/** The player whose friend leaderboard to get */
PlayFabId: string,
/**
* If non-null, this determines which properties of the resulting player profiles to return. For API calls from the client,
* only the allowed client profile properties for the title may be requested. These allowed properties are configured in
* the Game Manager "Client Profile Options" tab in the "Settings" section.
*/
ProfileConstraints?: PlayerProfileViewConstraints,
/** Position in the leaderboard to start this listing (defaults to the first entry). */
StartPosition: number,
/** Statistic used to rank friends for this leaderboard. */
StatisticName: string,
/** The version of the leaderboard to get. */
Version?: number,
/** Xbox token if Xbox friends should be included. Requires Xbox be configured on PlayFab. */
XboxToken?: string,
}
interface GetFriendsListRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Indicates whether Facebook friends should be included in the response. Default is true. */
IncludeFacebookFriends?: boolean,
/** Indicates whether Steam service friends should be included in the response. Default is true. */
IncludeSteamFriends?: boolean,
/** PlayFab identifier of the player whose friend list to get. */
PlayFabId: string,
/**
* If non-null, this determines which properties of the resulting player profiles to return. For API calls from the client,
* only the allowed client profile properties for the title may be requested. These allowed properties are configured in
* the Game Manager "Client Profile Options" tab in the "Settings" section.
*/
ProfileConstraints?: PlayerProfileViewConstraints,
/** Xbox token if Xbox friends should be included. Requires Xbox be configured on PlayFab. */
XboxToken?: string,
}
/**
* If any additional services are queried for the user's friends, those friends who also have a PlayFab account registered
* for the title will be returned in the results. For Facebook, user has to have logged into the title's Facebook app
* recently, and only friends who also plays this game will be included. For Xbox Live, user has to have logged into the
* Xbox Live recently, and only friends who also play this game will be included.
*/
interface GetFriendsListResult {
/** Array of friends found. */
Friends?: FriendInfo[],
}
interface GetLeaderboardAroundCharacterRequest {
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** Optional character type on which to filter the leaderboard entries. */
CharacterType?: string,
/** Maximum number of entries to retrieve. */
MaxResultsCount: number,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** Unique identifier for the title-specific statistic for the leaderboard. */
StatisticName: string,
}
/**
* Note: When calling 'GetLeaderboardAround...' APIs, the position of the character defaults to 0 when the character does
* not have the corresponding statistic.
*/
interface GetLeaderboardAroundCharacterResult {
/** Ordered list of leaderboard entries. */
Leaderboard?: CharacterLeaderboardEntry[],
}
interface GetLeaderboardAroundUserRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Maximum number of entries to retrieve. */
MaxResultsCount: number,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/**
* If non-null, this determines which properties of the resulting player profiles to return. For API calls from the client,
* only the allowed client profile properties for the title may be requested. These allowed properties are configured in
* the Game Manager "Client Profile Options" tab in the "Settings" section.
*/
ProfileConstraints?: PlayerProfileViewConstraints,
/** Unique identifier for the title-specific statistic for the leaderboard. */
StatisticName: string,
/** The version of the leaderboard to get. */
Version?: number,
}
/**
* Note: When calling 'GetLeaderboardAround...' APIs, the position of the user defaults to 0 when the user does not have
* the corresponding statistic.
*/
interface GetLeaderboardAroundUserResult {
/** Ordered listing of users and their positions in the requested leaderboard. */
Leaderboard?: PlayerLeaderboardEntry[],
/** The time the next scheduled reset will occur. Null if the leaderboard does not reset on a schedule. */
NextReset?: string,
/** The version of the leaderboard returned. */
Version: number,
}
interface GetLeaderboardForUsersCharactersRequest {
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** Unique identifier for the title-specific statistic for the leaderboard. */
StatisticName: string,
}
/**
* NOTE: The position of the character in the results is relative to the other characters for that specific user. This mean
* the values will always be between 0 and one less than the number of characters returned regardless of the size of the
* actual leaderboard.
*/
interface GetLeaderboardForUsersCharactersResult {
/** Ordered list of leaderboard entries. */
Leaderboard?: CharacterLeaderboardEntry[],
}
interface GetLeaderboardRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Maximum number of entries to retrieve. */
MaxResultsCount: number,
/**
* If non-null, this determines which properties of the resulting player profiles to return. For API calls from the client,
* only the allowed client profile properties for the title may be requested. These allowed properties are configured in
* the Game Manager "Client Profile Options" tab in the "Settings" section.
*/
ProfileConstraints?: PlayerProfileViewConstraints,
/** First entry in the leaderboard to be retrieved. */
StartPosition: number,
/** Unique identifier for the title-specific statistic for the leaderboard. */
StatisticName: string,
/** The version of the leaderboard to get. */
Version?: number,
}
/** Note that the Position of the user in the results is for the overall leaderboard. */
interface GetLeaderboardResult {
/** Ordered listing of users and their positions in the requested leaderboard. */
Leaderboard?: PlayerLeaderboardEntry[],
/** The time the next scheduled reset will occur. Null if the leaderboard does not reset on a schedule. */
NextReset?: string,
/** The version of the leaderboard returned. */
Version: number,
}
interface GetPlayerCombinedInfoRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Flags for which pieces of info to return for the user. */
InfoRequestParameters: GetPlayerCombinedInfoRequestParams,
/** PlayFabId of the user whose data will be returned */
PlayFabId: string,
}
interface GetPlayerCombinedInfoRequestParams {
/** Whether to get character inventories. Defaults to false. */
GetCharacterInventories: boolean,
/** Whether to get the list of characters. Defaults to false. */
GetCharacterList: boolean,
/** Whether to get player profile. Defaults to false. Has no effect for a new player. */
GetPlayerProfile: boolean,
/** Whether to get player statistics. Defaults to false. */
GetPlayerStatistics: boolean,
/** Whether to get title data. Defaults to false. */
GetTitleData: boolean,
/** Whether to get the player's account Info. Defaults to false */
GetUserAccountInfo: boolean,
/** Whether to get the player's custom data. Defaults to false */
GetUserData: boolean,
/** Whether to get the player's inventory. Defaults to false */
GetUserInventory: boolean,
/** Whether to get the player's read only data. Defaults to false */
GetUserReadOnlyData: boolean,
/** Whether to get the player's virtual currency balances. Defaults to false */
GetUserVirtualCurrency: boolean,
/** Specific statistics to retrieve. Leave null to get all keys. Has no effect if GetPlayerStatistics is false */
PlayerStatisticNames?: string[],
/** Specifies the properties to return from the player profile. Defaults to returning the player's display name. */
ProfileConstraints?: PlayerProfileViewConstraints,
/** Specific keys to search for in the custom data. Leave null to get all keys. Has no effect if GetTitleData is false */
TitleDataKeys?: string[],
/** Specific keys to search for in the custom data. Leave null to get all keys. Has no effect if GetUserData is false */
UserDataKeys?: string[],
/**
* Specific keys to search for in the custom data. Leave null to get all keys. Has no effect if GetUserReadOnlyData is
* false
*/
UserReadOnlyDataKeys?: string[],
}
interface GetPlayerCombinedInfoResult {
/** Results for requested info. */
InfoResultPayload?: GetPlayerCombinedInfoResultPayload,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
}
interface GetPlayerCombinedInfoResultPayload {
/** Account information for the user. This is always retrieved. */
AccountInfo?: UserAccountInfo,
/** Inventories for each character for the user. */
CharacterInventories?: CharacterInventory[],
/** List of characters for the user. */
CharacterList?: CharacterResult[],
/**
* The profile of the players. This profile is not guaranteed to be up-to-date. For a new player, this profile will not
* exist.
*/
PlayerProfile?: PlayerProfileModel,
/** List of statistics for this player. */
PlayerStatistics?: StatisticValue[],
/** Title data for this title. */
TitleData?: { [key: string]: string | null },
/** User specific custom data. */
UserData?: { [key: string]: UserDataRecord },
/** The version of the UserData that was returned. */
UserDataVersion: number,
/** Array of inventory items in the user's current inventory. */
UserInventory?: ItemInstance[],
/** User specific read-only data. */
UserReadOnlyData?: { [key: string]: UserDataRecord },
/** The version of the Read-Only UserData that was returned. */
UserReadOnlyDataVersion: number,
/** Dictionary of virtual currency balance(s) belonging to the user. */
UserVirtualCurrency?: { [key: string]: number },
/** Dictionary of remaining times and timestamps for virtual currencies. */
UserVirtualCurrencyRechargeTimes?: { [key: string]: VirtualCurrencyRechargeTime },
}
/**
* This API allows for access to details regarding a user in the PlayFab service, usually for purposes of customer support.
* Note that data returned may be Personally Identifying Information (PII), such as email address, and so care should be
* taken in how this data is stored and managed. Since this call will always return the relevant information for users who
* have accessed the title, the recommendation is to not store this data locally.
*/
interface GetPlayerProfileRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/**
* If non-null, this determines which properties of the resulting player profiles to return. For API calls from the client,
* only the allowed client profile properties for the title may be requested. These allowed properties are configured in
* the Game Manager "Client Profile Options" tab in the "Settings" section.
*/
ProfileConstraints?: PlayerProfileViewConstraints,
}
interface GetPlayerProfileResult {
/**
* The profile of the player. This profile is not guaranteed to be up-to-date. For a new player, this profile will not
* exist.
*/
PlayerProfile?: PlayerProfileModel,
}
interface GetPlayerSegmentsResult {
/** Array of segments the requested player currently belongs to. */
Segments?: GetSegmentResult[],
}
/**
* Initial request must contain at least a Segment ID. Subsequent requests must contain the Segment ID as well as the
* Continuation Token. Failure to send the Continuation Token will result in a new player segment list being generated.
* Each time the Continuation Token is passed in the length of the Total Seconds to Live is refreshed. If too much time
* passes between requests to the point that a subsequent request is past the Total Seconds to Live an error will be
* returned and paging will be terminated. This API is resource intensive and should not be used in scenarios which might
* generate high request volumes. Only one request to this API at a time should be made per title. Concurrent requests to
* the API may be rejected with the APIConcurrentRequestLimitExceeded error.
*/
interface GetPlayersInSegmentRequest {
/** Continuation token if retrieving subsequent pages of results. */
ContinuationToken?: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Maximum number of profiles to load. Default is 1,000. Maximum is 10,000. */
MaxBatchSize?: number,
/**
* Number of seconds to keep the continuation token active. After token expiration it is not possible to continue paging
* results. Default is 300 (5 minutes). Maximum is 1,800 (30 minutes).
*/
SecondsToLive?: number,
/** Unique identifier for this segment. */
SegmentId: string,
}
interface GetPlayersInSegmentResult {
/** Continuation token to use to retrieve subsequent pages of results. If token returns null there are no more results. */
ContinuationToken?: string,
/** Array of player profiles in this segment. */
PlayerProfiles?: PlayerProfile[],
/** Count of profiles matching this segment. */
ProfilesInSegment: number,
}
interface GetPlayersSegmentsRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetPlayerStatisticsRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** user for whom statistics are being requested */
PlayFabId: string,
/** statistics to return */
StatisticNames?: string[],
/**
* statistics to return, if StatisticNames is not set (only statistics which have a version matching that provided will be
* returned)
*/
StatisticNameVersions?: StatisticNameVersion[],
}
/** In addition to being available for use by the title, the statistics are used for all leaderboard operations in PlayFab. */
interface GetPlayerStatisticsResult {
/** PlayFab unique identifier of the user whose statistics are being returned */
PlayFabId?: string,
/** User statistics for the requested user. */
Statistics?: StatisticValue[],
}
interface GetPlayerStatisticVersionsRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** unique name of the statistic */
StatisticName?: string,
}
interface GetPlayerStatisticVersionsResult {
/** version change history of the statistic */
StatisticVersions?: PlayerStatisticVersion[],
}
/**
* This API will return a list of canonical tags which includes both namespace and tag's name. If namespace is not
* provided, the result is a list of all canonical tags. TagName can be used for segmentation and Namespace is limited to
* 128 characters.
*/
interface GetPlayerTagsRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Optional namespace to filter results by */
Namespace?: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetPlayerTagsResult {
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
/** Canonical tags (including namespace and tag's name) for the requested user */
Tags: string[],
}
interface GetPlayFabIDsFromFacebookIDsRequest {
/** Array of unique Facebook identifiers for which the title needs to get PlayFab identifiers. */
FacebookIDs: string[],
}
/** For Facebook identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromFacebookIDsResult {
/** Mapping of Facebook identifiers to PlayFab identifiers. */
Data?: FacebookPlayFabIdPair[],
}
interface GetPlayFabIDsFromFacebookInstantGamesIdsRequest {
/** Array of unique Facebook Instant Games identifiers for which the title needs to get PlayFab identifiers. */
FacebookInstantGamesIds: string[],
}
/** For Facebook Instant Games identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromFacebookInstantGamesIdsResult {
/** Mapping of Facebook Instant Games identifiers to PlayFab identifiers. */
Data?: FacebookInstantGamesPlayFabIdPair[],
}
interface GetPlayFabIDsFromGenericIDsRequest {
/**
* Array of unique generic service identifiers for which the title needs to get PlayFab identifiers. Currently limited to a
* maximum of 10 in a single request.
*/
GenericIDs: GenericServiceId[],
}
/** For generic service identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromGenericIDsResult {
/** Mapping of generic service identifiers to PlayFab identifiers. */
Data?: GenericPlayFabIdPair[],
}
interface GetPlayFabIDsFromNintendoServiceAccountIdsRequest {
/** Array of unique Nintendo Switch Account identifiers for which the title needs to get PlayFab identifiers. */
NintendoAccountIds: string[],
}
/** For Nintendo Service Account identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromNintendoServiceAccountIdsResult {
/** Mapping of Nintendo Switch Service Account identifiers to PlayFab identifiers. */
Data?: NintendoServiceAccountPlayFabIdPair[],
}
interface GetPlayFabIDsFromNintendoSwitchDeviceIdsRequest {
/** Array of unique Nintendo Switch Device identifiers for which the title needs to get PlayFab identifiers. */
NintendoSwitchDeviceIds: string[],
}
/** For Nintendo Switch Device identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromNintendoSwitchDeviceIdsResult {
/** Mapping of Nintendo Switch Device identifiers to PlayFab identifiers. */
Data?: NintendoSwitchPlayFabIdPair[],
}
interface GetPlayFabIDsFromPSNAccountIDsRequest {
/** Id of the PSN issuer environment. If null, defaults to production environment. */
IssuerId?: number,
/** Array of unique PlayStation Network identifiers for which the title needs to get PlayFab identifiers. */
PSNAccountIDs: string[],
}
/** For PlayStation Network identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromPSNAccountIDsResult {
/** Mapping of PlayStation Network identifiers to PlayFab identifiers. */
Data?: PSNAccountPlayFabIdPair[],
}
interface GetPlayFabIDsFromSteamIDsRequest {
/** Array of unique Steam identifiers (Steam profile IDs) for which the title needs to get PlayFab identifiers. */
SteamStringIDs?: string[],
}
/** For Steam identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromSteamIDsResult {
/** Mapping of Steam identifiers to PlayFab identifiers. */
Data?: SteamPlayFabIdPair[],
}
interface GetPlayFabIDsFromXboxLiveIDsRequest {
/** The ID of Xbox Live sandbox. */
Sandbox?: string,
/** Array of unique Xbox Live account identifiers for which the title needs to get PlayFab identifiers. */
XboxLiveAccountIDs: string[],
}
/** For XboxLive identifiers which have not been linked to PlayFab accounts, null will be returned. */
interface GetPlayFabIDsFromXboxLiveIDsResult {
/** Mapping of PlayStation Network identifiers to PlayFab identifiers. */
Data?: XboxLiveAccountPlayFabIdPair[],
}
/**
* This API is designed to return publisher-specific values which can be read, but not written to, by the client. This data
* is shared across all titles assigned to a particular publisher, and can be used for cross-game coordination. Only titles
* assigned to a publisher can use this API. For more information email helloplayfab@microsoft.com. Note that there may up
* to a minute delay in between updating title data and this API call returning the newest value.
*/
interface GetPublisherDataRequest {
/** array of keys to get back data from the Publisher data blob, set by the admin tools */
Keys: string[],
}
interface GetPublisherDataResult {
/** a dictionary object of key / value pairs */
Data?: { [key: string]: string | null },
}
interface GetRandomResultTablesRequest {
/**
* Specifies the catalog version that should be used to retrieve the Random Result Tables. If unspecified, uses
* default/primary catalog.
*/
CatalogVersion?: string,
/** The unique identifier of the Random Result Table to use. */
TableIDs: string[],
}
/**
* Note that if a specified Random Result Table contains no entries, or does not exist in the catalog, an InvalidDropTable
* error will be returned.
*/
interface GetRandomResultTablesResult {
/** array of random result tables currently available */
Tables?: { [key: string]: RandomResultTableListing },
}
interface GetSegmentResult {
/** Identifier of the segments AB Test, if it is attached to one. */
ABTestParent?: string,
/** Unique identifier for this segment. */
Id: string,
/** Segment name. */
Name?: string,
}
interface GetServerCustomIDsFromPlayFabIDsRequest {
/**
* Array of unique PlayFab player identifiers for which the title needs to get server custom identifiers. Cannot contain
* more than 25 identifiers.
*/
PlayFabIDs: string[],
}
/** For a PlayFab account that isn't associated with a server custom identity, ServerCustomId will be null. */
interface GetServerCustomIDsFromPlayFabIDsResult {
/** Mapping of server custom player identifiers to PlayFab identifiers. */
Data?: ServerCustomIDPlayFabIDPair[],
}
interface GetSharedGroupDataRequest {
/** If true, return the list of all members of the shared group. */
GetMembers?: boolean,
/**
* Specific keys to retrieve from the shared group (if not specified, all keys will be returned, while an empty array
* indicates that no keys should be returned).
*/
Keys?: string[],
/** Unique identifier for the shared group. */
SharedGroupId: string,
}
interface GetSharedGroupDataResult {
/** Data for the requested keys. */
Data?: { [key: string]: SharedGroupDataRecord },
/** List of PlayFabId identifiers for the members of this group, if requested. */
Members?: string[],
}
interface GetStoreItemsResult {
/** The base catalog that this store is a part of. */
CatalogVersion?: string,
/** Additional data about the store. */
MarketingData?: StoreMarketingModel,
/** How the store was last updated (Admin or a third party). */
Source?: SourceType,
/** Array of items which can be purchased from this store. */
Store?: StoreItem[],
/** The ID of this store. */
StoreId?: string,
}
/**
* A store contains an array of references to items defined in one or more catalog versions of the game, along with the
* prices for the item, in both real world and virtual currencies. These prices act as an override to any prices defined in
* the catalog. In this way, the base definitions of the items may be defined in the catalog, with all associated
* properties, while the pricing can be set for each store, as needed. This allows for subsets of goods to be defined for
* different purposes (in order to simplify showing some, but not all catalog items to users, based upon different
* characteristics), along with unique prices. Note that all prices defined in the catalog and store definitions for the
* item are considered valid, and that a compromised client can be made to send a request for an item based upon any of
* these definitions. If no price is specified in the store for an item, the price set in the catalog should be displayed
* to the user.
*/
interface GetStoreItemsServerRequest {
/** Catalog version to store items from. Use default catalog version if null */
CatalogVersion?: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/**
* Optional identifier for the player to use in requesting the store information - if used, segment overrides will be
* applied
*/
PlayFabId?: string,
/** Unqiue identifier for the store which is being requested */
StoreId: string,
}
/**
* This query retrieves the current time from one of the servers in PlayFab. Please note that due to clock drift between
* servers, there is a potential variance of up to 5 seconds.
*/
interface GetTimeRequest {
}
/** Time is always returned as Coordinated Universal Time (UTC). */
interface GetTimeResult {
/** Current server time when the request was received, in UTC */
Time: string,
}
/**
* This API is designed to return title specific values which can be read, but not written to, by the client. For example,
* a developer could choose to store values which modify the user experience, such as enemy spawn rates, weapon strengths,
* movement speeds, etc. This allows a developer to update the title without the need to create, test, and ship a new
* build. If an override label is specified in the request, the overrides are applied automatically and returned with the
* title data. Note that there may up to a minute delay in between updating title data and this API call returning the
* newest value.
*/
interface GetTitleDataRequest {
/** Specific keys to search for in the title data (leave null to get all keys) */
Keys?: string[],
/**
* Optional field that specifies the name of an override. This value is ignored when used by the game client; otherwise,
* the overrides are applied automatically to the title data.
*/
OverrideLabel?: string,
}
interface GetTitleDataResult {
/** a dictionary object of key / value pairs */
Data?: { [key: string]: string | null },
}
interface GetTitleNewsRequest {
/** Limits the results to the last n entries. Defaults to 10 if not set. */
Count?: number,
}
interface GetTitleNewsResult {
/** Array of localized news items. */
News?: TitleNewsItem[],
}
/**
* This API allows for access to details regarding a user in the PlayFab service, usually for purposes of customer support.
* Note that data returned may be Personally Identifying Information (PII), such as email address, and so care should be
* taken in how this data is stored and managed. Since this call will always return the relevant information for users who
* have accessed the title, the recommendation is to not store this data locally.
*/
interface GetUserAccountInfoRequest {
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetUserAccountInfoResult {
/** Account details for the user whose information was requested. */
UserInfo?: UserAccountInfo,
}
/** Get all bans for a user, including inactive and expired bans. */
interface GetUserBansRequest {
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetUserBansResult {
/** Information about the bans */
BanData?: BanInfo[],
}
/**
* Data is stored as JSON key-value pairs. If the Keys parameter is provided, the data object returned will only contain
* the data specific to the indicated Keys. Otherwise, the full set of custom user data will be returned.
*/
interface GetUserDataRequest {
/**
* The version that currently exists according to the caller. The call will return the data for all of the keys if the
* version in the system is greater than this.
*/
IfChangedFromDataVersion?: number,
/** Specific keys to search for in the custom user data. */
Keys?: string[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetUserDataResult {
/** User specific data for this title. */
Data?: { [key: string]: UserDataRecord },
/**
* Indicates the current version of the data that has been set. This is incremented with every set call for that type of
* data (read-only, internal, etc). This version can be provided in Get calls to find updated data.
*/
DataVersion: number,
/** PlayFab unique identifier of the user whose custom data is being returned. */
PlayFabId?: string,
}
/**
* All items currently in the user inventory will be returned, irrespective of how they were acquired (via purchasing,
* grants, coupons, etc.). Items that are expired, fully consumed, or are no longer valid are not considered to be in the
* user's current inventory, and so will not be not included.
*/
interface GetUserInventoryRequest {
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GetUserInventoryResult {
/** Array of inventory items belonging to the user. */
Inventory?: ItemInstance[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
/** Array of virtual currency balance(s) belonging to the user. */
VirtualCurrency?: { [key: string]: number },
/** Array of remaining times and timestamps for virtual currencies. */
VirtualCurrencyRechargeTimes?: { [key: string]: VirtualCurrencyRechargeTime },
}
/** Grants a character to the user of the type and name specified in the request. */
interface GrantCharacterToUserRequest {
/** Non-unique display name of the character being granted (1-40 characters in length). */
CharacterName: string,
/** Type of the character being granted; statistics can be sliced based on this value. */
CharacterType: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GrantCharacterToUserResult {
/** Unique identifier tagged to this character. */
CharacterId?: string,
}
/**
* Result of granting an item to a user. Note, to retrieve additional information for an item such as Tags, Description
* that are the same across all instances of the item, a call to GetCatalogItems is required. The ItemID of can be matched
* to a catalog entry, which contains the additional information. Also note that Custom Data is only set when the User's
* specific instance has updated the CustomData via a call to UpdateUserInventoryItemCustomData. Other fields such as
* UnitPrice and UnitCurrency are only set when the item was granted via a purchase.
*/
interface GrantedItemInstance {
/** Game specific comment associated with this instance when it was added to the user inventory. */
Annotation?: string,
/** Array of unique items that were awarded when this catalog item was purchased. */
BundleContents?: string[],
/**
* Unique identifier for the parent inventory item, as defined in the catalog, for object which were added from a bundle or
* container.
*/
BundleParent?: string,
/** Catalog version for the inventory item, when this instance was created. */
CatalogVersion?: string,
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId?: string,
/**
* A set of custom key-value pairs on the instance of the inventory item, which is not to be confused with the catalog
* item's custom data.
*/
CustomData?: { [key: string]: string | null },
/** CatalogItem.DisplayName at the time this item was purchased. */
DisplayName?: string,
/** Timestamp for when this instance will expire. */
Expiration?: string,
/** Class name for the inventory item, as defined in the catalog. */
ItemClass?: string,
/** Unique identifier for the inventory item, as defined in the catalog. */
ItemId?: string,
/** Unique item identifier for this specific instance of the item. */
ItemInstanceId?: string,
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId?: string,
/** Timestamp for when this instance was purchased. */
PurchaseDate?: string,
/** Total number of remaining uses, if this is a consumable item. */
RemainingUses?: number,
/** Result of this operation. */
Result: boolean,
/** Currency type for the cost of the catalog item. Not available when granting items. */
UnitCurrency?: string,
/** Cost of the catalog item in the given currency. Not available when granting items. */
UnitPrice: number,
/** The number of uses that were added or removed to this item in this call. */
UsesIncrementedBy?: number,
}
/**
* This function directly adds inventory items to the character's inventories. As a result of this operations, the user
* will not be charged any transaction fee, regardless of the inventory item catalog definition. Please note that the
* processing time for inventory grants and purchases increases fractionally the more items are in the inventory, and the
* more items are in the grant/purchase operation.
*/
interface GrantItemsToCharacterRequest {
/** String detailing any additional information concerning this operation. */
Annotation?: string,
/** Catalog version from which items are to be granted. */
CatalogVersion?: string,
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Array of itemIds to grant to the user. */
ItemIds?: string[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
interface GrantItemsToCharacterResult {
/** Array of items granted to users. */
ItemGrantResults?: GrantedItemInstance[],
}
/**
* This function directly adds inventory items to the user's inventories. As a result of this operations, the user will not
* be charged any transaction fee, regardless of the inventory item catalog definition. Please note that the processing
* time for inventory grants and purchases increases fractionally the more items are in the inventory, and the more items
* are in the grant/purchase operation.
*/
interface GrantItemsToUserRequest {
/** String detailing any additional information concerning this operation. */
Annotation?: string,
/** Catalog version from which items are to be granted. */
CatalogVersion?: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Array of itemIds to grant to the user. */
ItemIds: string[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
/** Please note that the order of the items in the response may not match the order of items in the request. */
interface GrantItemsToUserResult {
/** Array of items granted to users. */
ItemGrantResults?: GrantedItemInstance[],
}
/**
* This function directly adds inventory items to user inventories. As a result of this operations, the user will not be
* charged any transaction fee, regardless of the inventory item catalog definition. Please note that the processing time
* for inventory grants and purchases increases fractionally the more items are in the inventory, and the more items are in
* the grant/purchase operation.
*/
interface GrantItemsToUsersRequest {
/** Catalog version from which items are to be granted. */
CatalogVersion?: string,
/** The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). */
CustomTags?: { [key: string]: string | null },
/** Array of items to grant and the users to whom the items are to be granted. */
ItemGrants: ItemGrant[],
}
/** Please note that the order of the items in the response may not match the order of items in the request. */
interface GrantItemsToUsersResult {
/** Array of items granted to users. */
ItemGrantResults?: GrantedItemInstance[],
}
interface ItemGrant {
/** String detailing any additional information concerning this operation. */
Annotation?: string,
/** Unique PlayFab assigned ID for a specific character owned by a user */
CharacterId?: string,
/**
* Key-value pairs to be written to the custom data. Note that keys are trimmed of whitespace, are limited in size, and may
* not begin with a '!' character or be null.
*/
Data?: { [key: string]: string | null },
/** Unique identifier of the catalog item to be granted to the user. */
ItemId: string,
/**
* Optional list of Data-keys to remove from UserData. Some SDKs cannot insert null-values into Data due to language
* constraints. Use this to delete the keys directly.
*/
KeysToRemove?: string[],
/** Unique PlayFab assigned ID of the user on whom the operation will be performed. */
PlayFabId: string,
}
/**
* A unique instance of an item in a user's inventory. Note, to retrieve additional information for an item such as Tags,
* Description that are the same across all instances of the item, a call to GetCatalogItems is required. The ItemID of can
* be matched to a catalog entry, which contains the additional information. Also note that Custom Data is only set when
* the User's specific instance has updated the CustomData via a call to UpdateUserInventoryItemCustomData. Other fields
* such as UnitPrice and UnitCurrency are only set when the item was granted via a purchase.
*/
interface ItemInstance {
/** Game specific comment associated with this instance when it was added to the user inventory. */
Annotation?: string,
/** Array of unique items that were awarded when this catalog item was purchased. */
BundleContents?: string[],
/**
* Unique identifier for the parent inventory item, as defined in the catalog, for object which were added from a bundle or
* container.
*/
BundleParent?: string,
/** Catalog version for the inventory item, when this instance was created. */
CatalogVersion?: string,
/**
* A set of custom key-value pairs on the instance of the inventory item, which is not to be confused with the catalog
* item's custom data.
*/
CustomData?: { [key: string]: string | null },
/** CatalogItem.DisplayName at the time this item was purchased. */
DisplayName?: string,
/** Timestamp for when this instance will expire. */
Expiration?: string,
/** Class name for the inventory item, as defined in the catalog. */
ItemClass?: string,
/** Unique identifier for the inventory item, as defined in the catalog. */
ItemId?: string,
/** Unique item identifier for this specific instance of the item. */
ItemInstanceId?: