#if ENABLE_PLAYFABADMIN_API using System; using System.Collections.Generic; using PlayFab.SharedModels; namespace PlayFab.AdminModels { /// /// If the task instance has already completed, there will be no-op. /// [Serializable] public class AbortTaskInstanceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// ID of a task instance that is being aborted. /// public string TaskInstanceId; } /// /// The work to be performed on each entity which can only be of one type. /// [Serializable] public class Action : PlayFabBaseModel { /// /// Action content to add inventory item v2 /// public AddInventoryItemV2Content AddInventoryItemV2Content; /// /// Action content to ban player /// public BanPlayerContent BanPlayerContent; /// /// Action content to delete inventory item v2 /// public DeleteInventoryItemV2Content DeleteInventoryItemV2Content; /// /// Action content to delete player /// public DeletePlayerContent DeletePlayerContent; /// /// Action content to execute cloud script /// public ExecuteCloudScriptContent ExecuteCloudScriptContent; /// /// Action content to execute azure function /// public ExecuteFunctionContent ExecuteFunctionContent; /// /// Action content to grant item /// public GrantItemContent GrantItemContent; /// /// Action content to grant virtual currency /// public GrantVirtualCurrencyContent GrantVirtualCurrencyContent; /// /// Action content to increment player statistic /// public IncrementPlayerStatisticContent IncrementPlayerStatisticContent; /// /// Action content to send push notification /// public PushNotificationContent PushNotificationContent; /// /// Action content to send email /// public SendEmailContent SendEmailContent; /// /// Action content to subtract inventory item v2 /// public SubtractInventoryItemV2Content SubtractInventoryItemV2Content; } [Serializable] public class ActionsOnPlayersInSegmentTaskParameter : PlayFabBaseModel { /// /// List of actions to perform on each player in a segment. Each action object can contain only one action type. /// public List Actions; /// /// ID of the segment to perform actions on. /// public string SegmentId; } [Serializable] public class ActionsOnPlayersInSegmentTaskSummary : PlayFabBaseModel { /// /// UTC timestamp when the task completed. /// public DateTime? CompletedAt; /// /// Error message for last processing attempt, if an error occured. /// public string ErrorMessage; /// /// Flag indicating if the error was fatal, if false job will be retried. /// public bool? ErrorWasFatal; /// /// Estimated time remaining in seconds. /// public double? EstimatedSecondsRemaining; /// /// Progress represented as percentage. /// public double? PercentComplete; /// /// If manually scheduled, ID of user who scheduled the task. /// public string ScheduledByUserId; /// /// UTC timestamp when the task started. /// public DateTime StartedAt; /// /// Current status of the task instance. /// public TaskInstanceStatus? Status; /// /// Identifier of the task this instance belongs to. /// public NameIdentifier TaskIdentifier; /// /// ID of the task instance. /// public string TaskInstanceId; /// /// Total players in segment when task was started. /// public int? TotalPlayersInSegment; /// /// Total number of players that have had the actions applied to. /// public int? TotalPlayersProcessed; } [Serializable] public class AdCampaignAttribution : PlayFabBaseModel { /// /// UTC time stamp of attribution /// public DateTime AttributedAt; /// /// Attribution campaign identifier /// public string CampaignId; /// /// Attribution network name /// public string Platform; } [Serializable] public class AdCampaignAttributionModel : PlayFabBaseModel { /// /// UTC time stamp of attribution /// public DateTime AttributedAt; /// /// Attribution campaign identifier /// public string CampaignId; /// /// Attribution network name /// public string Platform; } [Serializable] public class AdCampaignSegmentFilter : PlayFabBaseModel { /// /// Campaign id. /// public string CampaignId; /// /// Campaign source. /// public string CampaignSource; /// /// Campaign comparison. /// public SegmentFilterComparison? Comparison; } [Serializable] public class AddInventoryItemsV2SegmentAction : PlayFabBaseModel { /// /// Amount of the item to be granted to a player /// public int? Amount; /// /// The collection id for where the item will be granted in the player inventory /// public string CollectionId; /// /// The duration in seconds of the subscription to be granted to a player /// public int? DurationInSeconds; /// /// The id of item to be granted to the player /// public string ItemId; /// /// The stack id for where the item will be granted in the player inventory /// public string StackId; } [Serializable] public class AddInventoryItemV2Content : PlayFabBaseModel { /// /// Amount of the item to be granted to a player /// public int? Amount; /// /// The collection id for where the item will be granted in the player inventory /// public string CollectionId; /// /// The duration in seconds of the subscription to be granted to a player /// public int? DurationInSeconds; /// /// The id of item to be granted to the player /// public string ItemId; /// /// The stack id for where the item will be granted in the player inventory /// public string StackId; } [Serializable] public class AddLocalizedNewsRequest : PlayFabRequestCommon { /// /// Localized body text of the news. /// public string Body; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Language of the news item. /// public string Language; /// /// Unique id of the updated news item. /// public string NewsId; /// /// Localized title (headline) of the news item. /// public string Title; } [Serializable] public class AddLocalizedNewsResult : PlayFabResultCommon { } [Serializable] public class AddNewsRequest : PlayFabRequestCommon { /// /// Default body text of the news. /// public string Body; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Time this news was published. If not set, defaults to now. /// public DateTime? Timestamp; /// /// Default title (headline) of the news item. /// public string Title; } [Serializable] public class AddNewsResult : PlayFabResultCommon { /// /// Unique id of the new news item /// public string NewsId; } /// /// 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. /// [Serializable] public class AddPlayerTagRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Unique tag for player profile. /// public string TagName; } [Serializable] public class AddPlayerTagResult : PlayFabResultCommon { } [Serializable] public class AddUserVirtualCurrencyRequest : PlayFabRequestCommon { /// /// 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. /// public int Amount; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// PlayFab unique identifier of the user whose virtual currency balance is to be increased. /// public string PlayFabId; /// /// Name of the virtual currency which is to be incremented. /// public string VirtualCurrency; } /// /// This operation is additive. Any new currencies defined in the array will be added to the set of those available for the /// title, while any CurrencyCode identifiers matching existing ones in the game will be overwritten with the new values. /// [Serializable] public class AddVirtualCurrencyTypesRequest : PlayFabRequestCommon { /// /// List of virtual currencies and their initial deposits (the amount a user is granted when signing in for the first time) /// to the title /// public List VirtualCurrencies; } [Serializable] public class AllPlayersSegmentFilter : PlayFabBaseModel { } [Serializable] public class ApiCondition : PlayFabBaseModel { /// /// Require that API calls contain an RSA encrypted payload or signed headers. /// public Conditionals? HasSignatureOrEncryption; } public enum AuthTokenType { Email } /// /// Contains information for a ban. /// [Serializable] public class BanInfo : PlayFabBaseModel { /// /// The active state of this ban. Expired bans may still have this value set to true but they will have no effect. /// public bool Active; /// /// The unique Ban Id associated with this ban. /// public string BanId; /// /// The time when this ban was applied. /// public DateTime? Created; /// /// The time when this ban expires. Permanent bans do not have expiration date. /// public DateTime? Expires; /// /// The IP address on which the ban was applied. May affect multiple players. /// public string IPAddress; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// The reason why this ban was applied. /// public string Reason; /// /// The family type of the suer that is included in the ban. /// public string UserFamilyType; } [Serializable] public class BanPlayerContent : PlayFabBaseModel { /// /// Duration(in hours) to ban a player. If not provided, the player will be banned permanently. /// public int? BanDurationHours; /// /// Reason to ban a player /// public string BanReason; } [Serializable] public class BanPlayerSegmentAction : PlayFabBaseModel { /// /// Ban hours duration. /// public uint? BanHours; /// /// Reason for ban. /// public string ReasonForBan; } /// /// Represents a single ban request. /// [Serializable] public class BanRequest : PlayFabBaseModel { /// /// The duration in hours for the ban. Leave this blank for a permanent ban. /// public uint? DurationInHours; /// /// IP address to be banned. May affect multiple players. /// public string IPAddress; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// The reason for this ban. Maximum 140 characters. /// public string Reason; /// /// The family type of the user that should be included in the ban if applicable. May affect multiple players. /// public UserFamilyType? UserFamilyType; } /// /// 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. /// [Serializable] public class BanUsersRequest : PlayFabRequestCommon { /// /// List of ban requests to be applied. Maximum 100. /// public List Bans; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class BanUsersResult : PlayFabResultCommon { /// /// Information on the bans that were applied /// public List BanData; } [Serializable] public class BlankResult : PlayFabResultCommon { } /// /// A purchasable item from the item catalog /// [Serializable] public class CatalogItem : PlayFabBaseModel { /// /// defines the bundle properties for the item - bundles are items which contain other items, including random drop tables /// and virtual currencies /// public CatalogItemBundleInfo Bundle; /// /// if true, then an item instance of this type can be used to grant a character to a user. /// public bool CanBecomeCharacter; /// /// catalog version for this item /// public string CatalogVersion; /// /// defines the consumable properties (number of uses, timeout) for the item /// public CatalogItemConsumableInfo Consumable; /// /// 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 /// public CatalogItemContainerInfo Container; /// /// game specific custom data /// public string CustomData; /// /// text description of item, to show in-game /// public string Description; /// /// text name for the item, to show in-game /// public string DisplayName; /// /// 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. /// public int InitialLimitedEditionCount; /// /// BETA: If true, then only a fixed number can ever be granted. /// public bool IsLimitedEdition; /// /// 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 /// public bool IsStackable; /// /// if true, then an item instance of this type can be traded between players using the trading APIs /// public bool IsTradable; /// /// class to which the item belongs /// public string ItemClass; /// /// unique identifier for this item /// public string ItemId; /// /// 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. /// public string ItemImageUrl; /// /// override prices for this item for specific currencies /// public Dictionary RealCurrencyPrices; /// /// list of item tags /// public List Tags; /// /// price of this item in virtual currencies and "RM" (the base Real Money purchase price, in USD pennies) /// public Dictionary VirtualCurrencyPrices; } [Serializable] public class CatalogItemBundleInfo : PlayFabBaseModel { /// /// unique ItemId values for all items which will be added to the player inventory when the bundle is added /// public List BundledItems; /// /// 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) /// public List BundledResultTables; /// /// virtual currency types and balances which will be added to the player inventory when the bundle is added /// public Dictionary BundledVirtualCurrencies; } [Serializable] public class CatalogItemConsumableInfo : PlayFabBaseModel { /// /// number of times this object can be used, after which it will be removed from the player inventory /// public uint? UsageCount; /// /// 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) /// public uint? UsagePeriod; /// /// 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 /// public string UsagePeriodGroup; } /// /// 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. /// [Serializable] public class CatalogItemContainerInfo : PlayFabBaseModel { /// /// unique ItemId values for all items which will be added to the player inventory, once the container has been unlocked /// public List ItemContents; /// /// 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) /// public string KeyItemId; /// /// 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) /// public List ResultTableContents; /// /// virtual currency types and balances which will be added to the player inventory when the container is unlocked /// public Dictionary VirtualCurrencyContents; } /// /// This returns the total number of these items available. /// [Serializable] public class CheckLimitedEditionItemAvailabilityRequest : PlayFabRequestCommon { /// /// Which catalog is being updated. If null, uses the default catalog. /// public string CatalogVersion; /// /// The item to check for. /// public string ItemId; } [Serializable] public class CheckLimitedEditionItemAvailabilityResult : PlayFabResultCommon { /// /// The amount of the specified resource remaining. /// public int Amount; } [Serializable] public class ChurnPredictionSegmentFilter : PlayFabBaseModel { /// /// Comparison /// public SegmentFilterComparison? Comparison; /// /// RiskLevel /// public ChurnRiskLevel? RiskLevel; } public enum ChurnRiskLevel { NoData, LowRisk, MediumRisk, HighRisk } [Serializable] public class CloudScriptFile : PlayFabBaseModel { /// /// Contents of the Cloud Script javascript. Must be string-escaped javascript. /// public string FileContents; /// /// Name of the javascript file. These names are not used internally by the server, they are only for developer /// organizational purposes. /// public string Filename; } [Serializable] public class CloudScriptTaskParameter : PlayFabBaseModel { /// /// Argument to pass to the CloudScript function. /// public object Argument; /// /// Name of the CloudScript function to execute. /// public string FunctionName; } [Serializable] public class CloudScriptTaskSummary : PlayFabBaseModel { /// /// UTC timestamp when the task completed. /// public DateTime? CompletedAt; /// /// Estimated time remaining in seconds. /// public double? EstimatedSecondsRemaining; /// /// Progress represented as percentage. /// public double? PercentComplete; /// /// Result of CloudScript execution /// public ExecuteCloudScriptResult Result; /// /// If manually scheduled, ID of user who scheduled the task. /// public string ScheduledByUserId; /// /// UTC timestamp when the task started. /// public DateTime StartedAt; /// /// Current status of the task instance. /// public TaskInstanceStatus? Status; /// /// Identifier of the task this instance belongs to. /// public NameIdentifier TaskIdentifier; /// /// ID of the task instance. /// public string TaskInstanceId; } [Serializable] public class CloudScriptVersionStatus : PlayFabBaseModel { /// /// Most recent revision for this Cloud Script version /// public int LatestRevision; /// /// Published code revision for this Cloud Script version /// public int PublishedRevision; /// /// Version number /// public int Version; } public enum Conditionals { Any, True, False } [Serializable] public class ContactEmailInfo : PlayFabBaseModel { /// /// The email address /// public string EmailAddress; /// /// The name of the email info data /// public string Name; /// /// The verification status of the email /// public EmailVerificationStatus? VerificationStatus; } [Serializable] public class ContactEmailInfoModel : PlayFabBaseModel { /// /// The email address /// public string EmailAddress; /// /// The name of the email info data /// public string Name; /// /// The verification status of the email /// public EmailVerificationStatus? VerificationStatus; } [Serializable] public class ContentInfo : PlayFabBaseModel { /// /// Key of the content /// public string Key; /// /// Last modified time /// public DateTime LastModified; /// /// Size of the content in bytes /// public double Size; } public enum ContinentCode { AF, AN, AS, EU, NA, OC, SA, Unknown } public enum 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, Unknown } /// /// Task name is unique within a title. Using a task name that's already taken will cause a name conflict error. Too many /// create-task requests within a short time will cause a create conflict error. /// [Serializable] public class CreateActionsOnPlayerSegmentTaskRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Description the task /// public string Description; /// /// Whether the schedule is active. Inactive schedule will not trigger task execution. /// public bool IsActive; /// /// Name of the task. This is a unique identifier for tasks in the title. /// public string Name; /// /// Task details related to segment and action /// public ActionsOnPlayersInSegmentTaskParameter Parameter; /// /// Cron expression for the run schedule of the task. The expression should be in UTC. /// public string Schedule; } /// /// Task name is unique within a title. Using a task name that's already taken will cause a name conflict error. Too many /// create-task requests within a short time will cause a create conflict error. /// [Serializable] public class CreateCloudScriptTaskRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Description the task /// public string Description; /// /// Whether the schedule is active. Inactive schedule will not trigger task execution. /// public bool IsActive; /// /// Name of the task. This is a unique identifier for tasks in the title. /// public string Name; /// /// Task details related to CloudScript /// public CloudScriptTaskParameter Parameter; /// /// Cron expression for the run schedule of the task. The expression should be in UTC. /// public string Schedule; } /// /// Task name is unique within a title. Using a task name that's already taken will cause a name conflict error. Too many /// create-task requests within a short time will cause a create conflict error. /// [Serializable] public class CreateInsightsScheduledScalingTaskRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Description the task /// public string Description; /// /// Whether the schedule is active. Inactive schedule will not trigger task execution. /// public bool IsActive; /// /// Name of the task. This is a unique identifier for tasks in the title. /// public string Name; /// /// Task details related to Insights Scaling /// public InsightsScalingTaskParameter Parameter; /// /// Cron expression for the run schedule of the task. The expression should be in UTC. /// public string Schedule; } [Serializable] public class CreateOpenIdConnectionRequest : PlayFabRequestCommon { /// /// The client ID given by the ID provider. /// public string ClientId; /// /// The client secret given by the ID provider. /// public string ClientSecret; /// /// A name for the connection that identifies it within the title. /// public string ConnectionId; /// /// Ignore 'nonce' claim in identity tokens. /// public bool? IgnoreNonce; /// /// The discovery document URL to read issuer information from. This must be the absolute URL to the JSON OpenId /// Configuration document and must be accessible from the internet. If you don't know it, try your issuer URL followed by /// "/.well-known/openid-configuration". For example, if the issuer is https://example.com, try /// https://example.com/.well-known/openid-configuration /// public string IssuerDiscoveryUrl; /// /// Manually specified information for an OpenID Connect issuer. /// public OpenIdIssuerInformation IssuerInformation; /// /// Override the issuer name for user indexing and lookup. /// public string IssuerOverride; } /// /// Player Shared Secret Keys are used for the call to Client/GetTitlePublicKey, which exchanges the shared secret for an /// RSA CSP blob to be used to encrypt the payload of account creation requests when that API requires a signature header. /// [Serializable] public class CreatePlayerSharedSecretRequest : PlayFabRequestCommon { /// /// Friendly name for this key /// public string FriendlyName; } [Serializable] public class CreatePlayerSharedSecretResult : PlayFabResultCommon { /// /// The player shared secret to use when calling Client/GetTitlePublicKey /// public string SecretKey; } /// /// Statistics are numeric values, with each statistic in the title also generating a leaderboard. The ResetInterval enables /// automatically resetting leaderboards on a specified interval. Upon reset, the statistic updates to a new version with no /// values (effectively removing all players from the leaderboard). The previous version's statistic values are also /// archived for retrieval, if needed (see GetPlayerStatisticVersions). Statistics not created via a call to /// CreatePlayerStatisticDefinition by default have a VersionChangeInterval of Never, meaning they do not reset on a /// schedule, but they can be set to do so via a call to UpdatePlayerStatisticDefinition. Once a statistic has been reset /// (sometimes referred to as versioned or incremented), the now-previous version can still be written to for up a short, /// pre-defined period (currently 10 seconds), to prevent issues with levels completing around the time of the reset. Also, /// once reset, the historical statistics for players in the title may be retrieved using the URL specified in the version /// information (GetPlayerStatisticVersions). The AggregationMethod determines what action is taken when a new statistic /// value is submitted - always update with the new value (Last), use the highest of the old and new values (Max), use the /// smallest (Min), or add them together (Sum). /// [Serializable] public class CreatePlayerStatisticDefinitionRequest : PlayFabRequestCommon { /// /// the aggregation method to use in updating the statistic (defaults to last) /// public StatisticAggregationMethod? AggregationMethod; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// unique name of the statistic /// public string StatisticName; /// /// interval at which the values of the statistic for all players are reset (resets begin at the next interval boundary) /// public StatisticResetIntervalOption? VersionChangeInterval; } [Serializable] public class CreatePlayerStatisticDefinitionResult : PlayFabResultCommon { /// /// created statistic definition /// public PlayerStatisticDefinition Statistic; } /// /// Send all the segment details part of CreateSegmentRequest /// [Serializable] public class CreateSegmentRequest : PlayFabRequestCommon { /// /// Segment model with all of the segment properties data. /// public SegmentModel SegmentModel; } [Serializable] public class CreateSegmentResponse : PlayFabResultCommon { /// /// Error message. /// public string ErrorMessage; /// /// Segment id. /// public string SegmentId; } [Serializable] public class CreateTaskResult : PlayFabResultCommon { /// /// ID of the task /// public string TaskId; } public enum 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 } [Serializable] public class DeleteContentRequest : PlayFabRequestCommon { /// /// Key of the content item to be deleted /// public string Key; } [Serializable] public class DeleteInventoryItemsV2SegmentAction : PlayFabBaseModel { /// /// The collection id for where the item will be removed from the player inventory /// public string CollectionId; /// /// The id of item to be removed from the player /// public string ItemId; /// /// The stack id for where the item will be removed from the player inventory /// public string StackId; } [Serializable] public class DeleteInventoryItemV2Content : PlayFabBaseModel { /// /// The collection id for where the item will be removed from the player inventory /// public string CollectionId; /// /// The id of item to be removed from the player /// public string ItemId; /// /// The stack id for where the item will be removed from the player inventory /// public string StackId; } /// /// Deletes all data associated with the master player account, including data from all titles the player has played, such /// as statistics, custom data, inventory, purchases, virtual currency balances, characters, group memberships, publisher /// data, credential data, account linkages, friends list, PlayStream event data, and telemetry event data. Removes the /// player from all leaderboards and player search indexes. Note, this API queues the player for deletion and returns a /// receipt immediately. Record the receipt ID for future reference. It may take some time before all player data is fully /// deleted. Upon completion of the deletion, an email will be sent to the notification email address configured for the /// title confirming the deletion. 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. It is highly recommended to know the impact of /// the deletion by calling GetPlayedTitleList, before calling this API. /// [Serializable] public class DeleteMasterPlayerAccountRequest : PlayFabRequestCommon { /// /// Developer created string to identify a user without PlayFab ID /// public string MetaData; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class DeleteMasterPlayerAccountResult : PlayFabResultCommon { /// /// A notification email with this job receipt Id will be sent to the title notification email address when deletion is /// complete. /// public string JobReceiptId; /// /// List of titles from which the player's data will be deleted. /// public List TitleIds; } /// /// Deletes any PlayStream or telemetry event associated with the player from PlayFab. Note, this API queues the data for /// asynchronous deletion. It may take some time before the data is deleted. /// [Serializable] public class DeleteMasterPlayerEventDataRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class DeleteMasterPlayerEventDataResult : PlayFabResultCommon { } /// /// This API lets developers delete a membership subscription. /// [Serializable] public class DeleteMembershipSubscriptionRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Id of the membership to apply the override expiration date to. /// public string MembershipId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Id of the subscription that should be deleted from the membership. /// public string SubscriptionId; } [Serializable] public class DeleteMembershipSubscriptionResult : PlayFabResultCommon { } [Serializable] public class DeleteOpenIdConnectionRequest : PlayFabRequestCommon { /// /// unique name of the connection /// public string ConnectionId; } [Serializable] public class DeletePlayerContent : PlayFabBaseModel { } /// /// 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. /// [Serializable] public class DeletePlayerRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class DeletePlayerResult : PlayFabResultCommon { } [Serializable] public class DeletePlayerSegmentAction : PlayFabBaseModel { } /// /// Player Shared Secret Keys are used for the call to Client/GetTitlePublicKey, which exchanges the shared secret for an /// RSA CSP blob to be used to encrypt the payload of account creation requests when that API requires a signature header. /// [Serializable] public class DeletePlayerSharedSecretRequest : PlayFabRequestCommon { /// /// The shared secret key to delete /// public string SecretKey; } [Serializable] public class DeletePlayerSharedSecretResult : PlayFabResultCommon { } [Serializable] public class DeletePlayerStatisticSegmentAction : PlayFabBaseModel { /// /// Statistic name. /// public string StatisticName; } /// /// Send segment id planning to delete part of DeleteSegmentRequest object /// [Serializable] public class DeleteSegmentRequest : PlayFabRequestCommon { /// /// Segment id. /// public string SegmentId; } [Serializable] public class DeleteSegmentsResponse : PlayFabResultCommon { /// /// Error message. /// public string ErrorMessage; } /// /// This non-reversible operation will permanently delete the requested store. /// [Serializable] public class DeleteStoreRequest : PlayFabRequestCommon { /// /// catalog version of the store to delete. If null, uses the default catalog. /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// unqiue identifier for the store which is to be deleted /// public string StoreId; } [Serializable] public class DeleteStoreResult : PlayFabResultCommon { } /// /// After a task is deleted, for tracking purposes, the task instances belonging to this task will still remain. They will /// become orphaned and does not belongs to any task. Executions of any in-progress task instances will continue. If the /// task specified does not exist, the deletion is considered a success. /// [Serializable] public class DeleteTaskRequest : PlayFabRequestCommon { /// /// Specify either the task ID or the name of task to be deleted. /// public NameIdentifier Identifier; } /// /// Will delete all the title data associated with the given override label. /// [Serializable] public class DeleteTitleDataOverrideRequest : PlayFabRequestCommon { /// /// Name of the override. /// public string OverrideLabel; } [Serializable] public class DeleteTitleDataOverrideResult : PlayFabResultCommon { } /// /// Deletes all data associated with the title, including catalog, virtual currencies, leaderboard statistics, Cloud Script /// revisions, segment definitions, event rules, tasks, add-ons, secret keys, data encryption keys, and permission policies. /// Removes the title from its studio and removes all associated developer roles and permissions. Does not delete PlayStream /// event history associated with the title. Note, this API queues the title for deletion and returns immediately. It may /// take several hours or more before all title data is fully deleted. All player accounts in the title must be deleted /// before deleting the title. If any player accounts exist, the API will return a 'TitleContainsUserAccounts' error. Until /// the title data is fully deleted, attempts to call APIs with the title will fail with the 'TitleDeleted' error. /// [Serializable] public class DeleteTitleRequest : PlayFabRequestCommon { } [Serializable] public class DeleteTitleResult : PlayFabResultCommon { } public enum EffectType { Allow, Deny } [Serializable] public class EmailNotificationSegmentAction : PlayFabBaseModel { /// /// Email template id. /// public string EmailTemplateId; /// /// Email template name. /// public string EmailTemplateName; } public enum EmailVerificationStatus { Unverified, Pending, Confirmed } [Serializable] public class EmptyResponse : PlayFabResultCommon { } /// /// Combined entity type and ID structure which uniquely identifies a single entity. /// [Serializable] public class EntityKey : PlayFabBaseModel { /// /// Unique ID of the entity. /// public string Id; /// /// Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types /// public string Type; } [Serializable] public class ExecuteAzureFunctionSegmentAction : PlayFabBaseModel { /// /// Azure function. /// public string AzureFunction; /// /// Azure function parameter. /// public object FunctionParameter; /// /// Generate play stream event. /// public bool GenerateFunctionExecutedEvents; } [Serializable] public class ExecuteCloudScriptContent : PlayFabBaseModel { /// /// Arguments(JSON) to be passed into the cloudscript method /// public string CloudScriptMethodArguments; /// /// Cloudscript method name /// public string CloudScriptMethodName; /// /// Publish cloudscript results as playstream event /// public bool PublishResultsToPlayStream; } [Serializable] public class ExecuteCloudScriptResult : PlayFabBaseModel { /// /// Number of PlayFab API requests issued by the CloudScript function /// public int APIRequestsIssued; /// /// Information about the error, if any, that occurred during execution /// public ScriptExecutionError Error; public double ExecutionTimeSeconds; /// /// The name of the function that executed /// public string FunctionName; /// /// The object returned from the CloudScript function, if any /// public object FunctionResult; /// /// 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. /// public bool? FunctionResultTooLarge; /// /// Number of external HTTP requests issued by the CloudScript function /// public int HttpRequestsIssued; /// /// 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. /// public List Logs; /// /// 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. /// public bool? LogsTooLarge; public uint MemoryConsumedBytes; /// /// Processor time consumed while executing the function. This does not include time spent waiting on API calls or HTTP /// requests. /// public double ProcessorTimeSeconds; /// /// The revision of the CloudScript that executed /// public int Revision; } [Serializable] public class ExecuteCloudScriptSegmentAction : PlayFabBaseModel { /// /// Cloud script function. /// public string CloudScriptFunction; /// /// Generate play stream event. /// public bool CloudScriptPublishResultsToPlayStream; /// /// Cloud script function parameter. /// public object FunctionParameter; /// /// Cloud script function parameter json text. /// public string FunctionParameterJson; } [Serializable] public class ExecuteFunctionContent : PlayFabBaseModel { /// /// Arguments(JSON) to be passed into the cloudscript azure function /// public string CloudScriptFunctionArguments; /// /// Cloudscript azure function name /// public string CloudScriptFunctionName; /// /// Publish results from executing the azure function as playstream event /// public bool PublishResultsToPlayStream; } /// /// Exports all data associated with the master player account, including data from all titles the player has played, such /// as statistics, custom data, inventory, purchases, virtual currency balances, characters, group memberships, publisher /// data, credential data, account linkages, friends list, PlayStream event data, and telemetry event data. Note, this API /// queues the player for export and returns a receipt immediately. Record the receipt ID for future reference. It may take /// some time before the export is available for download. Upon completion of the export, an email containing the URL to /// download the export dump will be sent to the notification email address configured for the title. /// [Serializable] public class ExportMasterPlayerDataRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class ExportMasterPlayerDataResult : PlayFabResultCommon { /// /// An email with this job receipt Id containing the export download link will be sent to the title notification email /// address when the export is complete. /// public string JobReceiptId; } /// /// Request must contain the Segment ID /// [Serializable] public class ExportPlayersInSegmentRequest : PlayFabRequestCommon { /// /// Unique identifier of the requested segment. /// public string SegmentId; } [Serializable] public class ExportPlayersInSegmentResult : PlayFabResultCommon { /// /// Unique identifier of the export for the requested Segment. /// public string ExportId; /// /// Unique identifier of the requested Segment. /// public string SegmentId; } [Serializable] public class FirstLoginDateSegmentFilter : PlayFabBaseModel { /// /// First player login date comparison. /// public SegmentFilterComparison? Comparison; /// /// First player login date. /// public DateTime LogInDate; } [Serializable] public class FirstLoginTimespanSegmentFilter : PlayFabBaseModel { /// /// First player login duration comparison. /// public SegmentFilterComparison? Comparison; /// /// First player login duration. /// public double DurationInMinutes; } public enum 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, AutomationInvalidInput, AutomationInvalidRuleName, AutomationRuleAlreadyExists, AutomationRuleLimitExceeded, InvalidGooglePlayGamesServerAuthCode, PlayStreamConnectionFailed, InvalidEventContents, InsightsV1Deprecated, AnalysisSubscriptionNotFound, AnalysisSubscriptionFailed, AnalysisSubscriptionFoundAlready, AnalysisSubscriptionManagementInvalidInput, InvalidGameCenterId, InvalidNintendoSwitchAccountId, EntityAPIKeysNotSupported, IpAddressBanned, EntityLineageBanned, NamespaceMismatch, InvalidServiceConfiguration, InvalidNamespaceMismatch, LeaderboardColumnLengthMismatch, InvalidStatisticScore, LeaderboardColumnsNotSpecified, LeaderboardMaxSizeTooLarge, InvalidAttributeStatisticsSpecified, LeaderboardNotFound, TokenSigningKeyNotFound, LeaderboardNameConflict, LinkedStatisticColumnMismatch, NoLinkedStatisticToLeaderboard, StatDefinitionAlreadyLinkedToLeaderboard, LinkingStatsNotAllowedForEntityType, LeaderboardCountLimitExceeded, LeaderboardSizeLimitExceeded, LeaderboardDefinitionModificationNotAllowedWhileLinked, StatisticDefinitionModificationNotAllowedWhileLinked, LeaderboardUpdateNotAllowedWhileLinked, CloudScriptAzureFunctionsEventHubRequestError, ExternalEntityNotAllowedForTier, InvalidBaseTimeForInterval, EntityTypeMismatchWithStatDefinition, SpecifiedVersionLeaderboardNotFound, LeaderboardColumnLengthMismatchWithStatDefinition, DuplicateColumnNameFound, LinkedStatisticColumnNotFound, LinkedStatisticColumnRequired, MultipleLinkedStatisticsNotAllowed, DuplicateLinkedStatisticColumnNameFound, AggregationTypeNotAllowedForMultiColumnStatistic, MaxQueryableVersionsValueNotAllowedForTier, StatisticDefinitionHasNullOrEmptyVersionConfiguration, StatisticColumnLengthMismatch, 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, InvalidCatalogItemConfiguration, ExportInvalidStatusUpdate, ExportInvalidPrefix, ExportBlobContainerDoesNotExist, ExportNotFound, ExportCouldNotUpdate, ExportInvalidStorageType, ExportAmazonBucketDoesNotExist, ExportInvalidBlobStorage, ExportKustoException, ExportKustoConnectionFailed, ExportUnknownError, ExportCantEditPendingExport, ExportLimitExports, ExportLimitEvents, ExportInvalidPartitionStatusModification, ExportCouldNotCreate, ExportNoBackingDatabaseFound, ExportCouldNotDelete, ExportCannotDetermineEventQuery, ExportInvalidQuerySchemaModification, ExportQuerySchemaMissingRequiredColumns, ExportCannotParseQuery, ExportControlCommandsNotAllowed, ExportQueryMissingTableReference, ExportInsightsV1Deprecated, ExplorerBasicInvalidQueryName, ExplorerBasicInvalidQueryDescription, ExplorerBasicInvalidQueryConditions, ExplorerBasicInvalidQueryStartDate, ExplorerBasicInvalidQueryEndDate, ExplorerBasicInvalidQueryGroupBy, ExplorerBasicInvalidQueryAggregateType, ExplorerBasicInvalidQueryAggregateProperty, ExplorerBasicLoadQueriesError, ExplorerBasicLoadQueryError, ExplorerBasicCreateQueryError, ExplorerBasicDeleteQueryError, ExplorerBasicUpdateQueryError, ExplorerBasicSavedQueriesLimit, ExplorerBasicSavedQueryNotFound, TenantShardMapperShardNotFound, TitleNotEnabledForParty, PartyVersionNotFound, MultiplayerServerBuildReferencedByMatchmakingQueue, MultiplayerServerBuildReferencedByBuildAlias, MultiplayerServerBuildAliasReferencedByMatchmakingQueue, PartySerializationError, 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, AnalyticsSegmentCountOverLimit, SnapshotNotFound, InventoryApiNotImplemented, LobbyDoesNotExist, LobbyRateLimitExceeded, LobbyPlayerAlreadyJoined, LobbyNotJoinable, LobbyMemberCannotRejoin, LobbyCurrentPlayersMoreThanMaxPlayers, LobbyPlayerNotPresent, LobbyBadRequest, LobbyPlayerMaxLobbyLimitExceeded, LobbyNewOwnerMustBeConnected, LobbyCurrentOwnerStillConnected, LobbyMemberIsNotOwner, LobbyServerMismatch, LobbyServerNotFound, LobbyDifferentServerAlreadyJoined, LobbyServerAlreadyJoined, LobbyIsNotClientOwned, LobbyDoesNotUseConnections, EventSamplingInvalidRatio, EventSamplingInvalidEventNamespace, EventSamplingInvalidEventName, EventSamplingRatioNotFound, TelemetryKeyNotFound, TelemetryKeyInvalidName, TelemetryKeyAlreadyExists, TelemetryKeyInvalid, TelemetryKeyCountOverLimit, TelemetryKeyDeactivated, TelemetryKeyLongInsightsRetentionNotAllowed, EventSinkConnectionInvalid, EventSinkConnectionUnauthorized, EventSinkRegionInvalid, EventSinkLimitExceeded, EventSinkSasTokenInvalid, EventSinkNotFound, EventSinkNameInvalid, EventSinkSasTokenPermissionInvalid, EventSinkSecretInvalid, EventSinkTenantNotFound, EventSinkAadNotFound, EventSinkDatabaseNotFound, EventSinkTitleUnauthorized, EventSinkInsufficientRoleAssignment, EventSinkContainerNotFound, EventSinkTenantIdInvalid, OperationCanceled, InvalidDisplayNameRandomSuffixLength, AllowNonUniquePlayerDisplayNamesDisableNotAllowed, PartitionedEventInvalid, PartitionedEventCountOverLimit, ManageEventNamespaceInvalid, ManageEventNameInvalid, ManagedEventNotFound, ManageEventsInvalidRatio, ManagedEventInvalid, PlayerCustomPropertiesPropertyNameTooLong, PlayerCustomPropertiesPropertyNameIsInvalid, PlayerCustomPropertiesStringPropertyValueTooLong, PlayerCustomPropertiesValueIsInvalidType, PlayerCustomPropertiesVersionMismatch, PlayerCustomPropertiesPropertyCountTooHigh, PlayerCustomPropertiesDuplicatePropertyName, PlayerCustomPropertiesPropertyDoesNotExist, AddonAlreadyExists, AddonDoesntExist, CopilotDisabled, CopilotInvalidRequest, TrueSkillUnauthorized, TrueSkillInvalidTitleId, TrueSkillInvalidScenarioId, TrueSkillInvalidModelId, TrueSkillInvalidModelName, TrueSkillInvalidPlayerIds, TrueSkillInvalidEntityKey, TrueSkillInvalidConditionKey, TrueSkillInvalidConditionValue, TrueSkillInvalidConditionAffinityWeight, TrueSkillInvalidEventName, TrueSkillMatchResultCreated, TrueSkillMatchResultAlreadySubmitted, TrueSkillBadPlayerIdInMatchResult, TrueSkillInvalidBotIdInMatchResult, TrueSkillDuplicatePlayerInMatchResult, TrueSkillNoPlayerInMatchResultTeam, TrueSkillPlayersInMatchResultExceedingLimit, TrueSkillInvalidPreMatchPartyInMatchResult, TrueSkillInvalidTimestampInMatchResult, TrueSkillStartTimeMissingInMatchResult, TrueSkillEndTimeMissingInMatchResult, TrueSkillInvalidPlayerSecondsPlayedInMatchResult, TrueSkillNoTeamInMatchResult, TrueSkillNotEnoughTeamsInMatchResult, TrueSkillInvalidRanksInMatchResult, TrueSkillNoWinnerInMatchResult, TrueSkillMissingRequiredCondition, TrueSkillMissingRequiredEvent, TrueSkillUnknownEventName, TrueSkillInvalidEventCount, TrueSkillUnknownConditionKey, TrueSkillUnknownConditionValue, TrueSkillScenarioConfigDoesNotExist, TrueSkillUnknownModelId, TrueSkillNoModelInScenario, TrueSkillNotSupportedForTitle, TrueSkillModelIsNotActive, TrueSkillUnauthorizedToQueryOtherPlayerSkills, TrueSkillInvalidMaxIterations, TrueSkillEndTimeBeforeStartTime, TrueSkillInvalidJobId, TrueSkillInvalidMetadataId, TrueSkillMissingBuildVerison, TrueSkillJobAlreadyExists, TrueSkillJobNotFound, TrueSkillOperationCanceled, TrueSkillActiveModelLimitExceeded, TrueSkillTotalModelLimitExceeded, TrueSkillUnknownInitialModelId, TrueSkillUnauthorizedForJob, TrueSkillInvalidScenarioName, TrueSkillConditionStateIsRequired, TrueSkillEventStateIsRequired, TrueSkillDuplicateEvent, TrueSkillDuplicateCondition, TrueSkillInvalidAnomalyThreshold, TrueSkillConditionKeyLimitExceeded, TrueSkillConditionValuePerKeyLimitExceeded, TrueSkillInvalidTimestamp, TrueSkillEventLimitExceeded, TrueSkillInvalidPlayers, TrueSkillTrueSkillPlayerNull, TrueSkillInvalidPlayerId, TrueSkillInvalidSquadSize, TrueSkillConditionSetNotInModel, TrueSkillModelStateInvalidForOperation, TrueSkillScenarioContainsActiveModel, GameSaveManifestNotFound, GameSaveManifestVersionAlreadyExists, GameSaveConflictUpdatingManifest, GameSaveManifestUpdatesNotAllowed, GameSaveFileAlreadyExists, GameSaveManifestVersionNotFinalized, GameSaveUnknownFileInManifest, GameSaveFileExceededReportedSize, GameSaveFileNotUploaded, GameSaveBadRequest, GameSaveOperationNotAllowed, StateShareForbidden, StateShareTitleNotInFlight, StateShareStateNotFound, StateShareLinkNotFound, StateShareStateRedemptionLimitExceeded, StateShareStateRedemptionLimitNotUpdated, StateShareCreatedStatesLimitExceeded, StateShareIdMissingOrMalformed } [Serializable] public class GetActionsOnPlayersInSegmentTaskInstanceResult : PlayFabResultCommon { /// /// Parameter of this task instance /// public ActionsOnPlayersInSegmentTaskParameter Parameter; /// /// Status summary of the actions-on-players-in-segment task instance /// public ActionsOnPlayersInSegmentTaskSummary Summary; } /// /// Request has no paramaters. /// [Serializable] public class GetAllSegmentsRequest : PlayFabRequestCommon { } [Serializable] public class GetAllSegmentsResult : PlayFabResultCommon { /// /// Array of segments for this title. /// public List Segments; } [Serializable] public class GetCatalogItemsRequest : PlayFabRequestCommon { /// /// Which catalog is being requested. If null, uses the default catalog. /// public string CatalogVersion; } [Serializable] public class GetCatalogItemsResult : PlayFabResultCommon { /// /// Array of items which can be purchased. /// public List Catalog; } [Serializable] public class GetCloudScriptRevisionRequest : PlayFabRequestCommon { /// /// Revision number. If left null, defaults to the latest revision /// public int? Revision; /// /// Version number. If left null, defaults to the latest version /// public int? Version; } [Serializable] public class GetCloudScriptRevisionResult : PlayFabResultCommon { /// /// Time this revision was created /// public DateTime CreatedAt; /// /// List of Cloud Script files in this revision. /// public List Files; /// /// True if this is the currently published revision /// public bool IsPublished; /// /// Revision number. /// public int Revision; /// /// Version number. /// public int Version; } [Serializable] public class GetCloudScriptTaskInstanceResult : PlayFabResultCommon { /// /// Parameter of this task instance /// public CloudScriptTaskParameter Parameter; /// /// Status summary of the CloudScript task instance /// public CloudScriptTaskSummary Summary; } [Serializable] public class GetCloudScriptVersionsRequest : PlayFabRequestCommon { } [Serializable] public class GetCloudScriptVersionsResult : PlayFabResultCommon { /// /// List of versions /// public List Versions; } [Serializable] public class GetContentListRequest : PlayFabRequestCommon { /// /// Limits the response to keys that begin with the specified prefix. You can use prefixes to list contents under a folder, /// or for a specified version, etc. /// public string Prefix; } [Serializable] public class GetContentListResult : PlayFabResultCommon { /// /// List of content items. /// public List Contents; /// /// Number of content items returned. We currently have a maximum of 1000 items limit. /// public int ItemCount; /// /// The total size of listed contents in bytes. /// public uint TotalSize; } [Serializable] public class GetContentUploadUrlRequest : PlayFabRequestCommon { /// /// A standard MIME type describing the format of the contents. The same MIME type has to be set in the header when /// uploading the content. If not specified, the MIME type is 'binary/octet-stream' by default. /// public string ContentType; /// /// Key of the content item to upload, usually formatted as a path, e.g. images/a.png /// public string Key; } [Serializable] public class GetContentUploadUrlResult : PlayFabResultCommon { /// /// URL for uploading content via HTTP PUT method. The URL requires the 'x-ms-blob-type' header to have the value /// 'BlockBlob'. The URL will expire in approximately one hour. /// public string URL; } /// /// Gets the download URL for the requested report data (in CSV form). The reports available through this API call are those /// available in the Game Manager, in the Analytics->Reports tab. /// [Serializable] public class GetDataReportRequest : PlayFabRequestCommon { /// /// Reporting year (UTC) /// public int Day; /// /// Reporting month (UTC) /// public int Month; /// /// Report name /// public string ReportName; /// /// Reporting year (UTC) /// public int Year; } [Serializable] public class GetDataReportResult : PlayFabResultCommon { /// /// The URL where the requested report can be downloaded. This can be any PlayFab generated reports. The full list of /// reports can be found at: https://docs.microsoft.com/en-us/gaming/playfab/features/analytics/reports/quickstart. /// public string DownloadUrl; } /// /// Useful for identifying titles of which the player's data will be deleted by DeleteMasterPlayer. /// [Serializable] public class GetPlayedTitleListRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetPlayedTitleListResult : PlayFabResultCommon { /// /// List of titles the player has played /// public List TitleIds; } /// /// Gets a player ID from an auth token. The token expires after 30 minutes and cannot be used to look up a player when /// expired. /// [Serializable] public class GetPlayerIdFromAuthTokenRequest : PlayFabRequestCommon { /// /// The auth token of the player requesting the password reset. /// public string Token; /// /// The type of auth token of the player requesting the password reset. /// public AuthTokenType TokenType; } [Serializable] public class GetPlayerIdFromAuthTokenResult : PlayFabResultCommon { /// /// The player ID from the token passed in /// public string PlayFabId; } /// /// 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. /// [Serializable] public class GetPlayerProfileRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// 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. /// public PlayerProfileViewConstraints ProfileConstraints; } [Serializable] public class GetPlayerProfileResult : PlayFabResultCommon { /// /// The profile of the player. This profile is not guaranteed to be up-to-date. For a new player, this profile will not /// exist. /// public PlayerProfileModel PlayerProfile; } [Serializable] public class GetPlayerSegmentsResult : PlayFabResultCommon { /// /// Array of segments the requested player currently belongs to. /// public List Segments; } /// /// Player Shared Secret Keys are used for the call to Client/GetTitlePublicKey, which exchanges the shared secret for an /// RSA CSP blob to be used to encrypt the payload of account creation requests when that API requires a signature header. /// [Serializable] public class GetPlayerSharedSecretsRequest : PlayFabRequestCommon { } [Serializable] public class GetPlayerSharedSecretsResult : PlayFabResultCommon { /// /// The player shared secret to use when calling Client/GetTitlePublicKey /// public List SharedSecrets; } /// /// Request must contain the ExportId /// [Serializable] public class GetPlayersInSegmentExportRequest : PlayFabRequestCommon { /// /// Unique identifier of the export for the requested Segment. /// public string ExportId; } [Serializable] public class GetPlayersInSegmentExportResponse : PlayFabResultCommon { /// /// Url from which the index file can be downloaded. /// public string IndexUrl; /// /// Shows the current status of the export /// public string State; } /// /// 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. /// [Serializable] public class GetPlayersInSegmentRequest : PlayFabRequestCommon { /// /// Continuation token if retrieving subsequent pages of results. /// public string ContinuationToken; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// If set to true, the profiles are loaded asynchronously and the response will include a continuation token and /// approximate profile count until the first batch of profiles is loaded. Use this parameter to help avoid network /// timeouts. /// public bool? GetProfilesAsync; /// /// Maximum is 10,000. The value 0 will prevent loading any profiles and return only the count of profiles matching this /// segment. /// public uint? MaxBatchSize; /// /// 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 5,400 (90 minutes). /// public uint? SecondsToLive; /// /// Unique identifier for this segment. /// public string SegmentId; } [Serializable] public class GetPlayersInSegmentResult : PlayFabResultCommon { /// /// Continuation token to use to retrieve subsequent pages of results. If token returns null there are no more results. /// public string ContinuationToken; /// /// Array of player profiles in this segment. /// public List PlayerProfiles; /// /// Count of profiles matching this segment. /// public int ProfilesInSegment; } [Serializable] public class GetPlayersSegmentsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetPlayerStatisticDefinitionsRequest : PlayFabRequestCommon { } /// /// Statistics are numeric values, with each statistic in the title also generating a leaderboard. The ResetInterval defines /// the period of time at which the leaderboard for the statistic will automatically reset. Upon reset, the statistic /// updates to a new version with no values (effectively removing all players from the leaderboard). The previous version's /// statistic values are also archived for retrieval, if needed (see GetPlayerStatisticVersions). Statistics not created via /// a call to CreatePlayerStatisticDefinition by default have a VersionChangeInterval of Never, meaning they do not reset on /// a schedule, but they can be set to do so via a call to UpdatePlayerStatisticDefinition. Once a statistic has been reset /// (sometimes referred to as versioned or incremented), the previous version can still be written to for up a short, /// pre-defined period (currently 10 seconds), to prevent issues with levels completing around the time of the reset. Also, /// once reset, the historical statistics for players in the title may be retrieved using the URL specified in the version /// information (GetPlayerStatisticVersions). The AggregationMethod defines what action is taken when a new statistic value /// is submitted - always update with the new value (Last), use the highest of the old and new values (Max), use the /// smallest (Min), or add them together (Sum). /// [Serializable] public class GetPlayerStatisticDefinitionsResult : PlayFabResultCommon { /// /// the player statistic definitions for the title /// public List Statistics; } [Serializable] public class GetPlayerStatisticVersionsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// unique name of the statistic /// public string StatisticName; } /// /// Statistics are numeric values, with each statistic in the title also generating a leaderboard. The information returned /// in the results defines the state of a specific version of a statistic, including when it was or will become the /// currently active version, when it will (or did) become a previous version, and its archival state if it is no longer the /// active version. For a statistic which has been reset, once the archival status is Complete, the full set of statistics /// for all players in the leaderboard for that version may be retrieved via the ArchiveDownloadUrl. Statistics which have /// not been reset (incremented/versioned) will only have a single version which is not scheduled to reset. /// [Serializable] public class GetPlayerStatisticVersionsResult : PlayFabResultCommon { /// /// version change history of the statistic /// public List StatisticVersions; } /// /// 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. /// [Serializable] public class GetPlayerTagsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Optional namespace to filter results by /// public string Namespace; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetPlayerTagsResult : PlayFabResultCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Canonical tags (including namespace and tag's name) for the requested user /// public List Tags; } /// /// Views the requested policy. Today, the only supported policy is 'ApiPolicy'. /// [Serializable] public class GetPolicyRequest : PlayFabRequestCommon { /// /// The name of the policy to read. Only supported name is 'ApiPolicy'. /// public string PolicyName; } [Serializable] public class GetPolicyResponse : PlayFabResultCommon { /// /// The name of the policy read. /// public string PolicyName; /// /// Policy version. /// public int PolicyVersion; /// /// The statements in the requested policy. /// public List Statements; } /// /// 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. This AdminAPI call for /// getting title data guarantees no delay in between update and retrieval of newly set data. /// [Serializable] public class GetPublisherDataRequest : PlayFabRequestCommon { /// /// array of keys to get back data from the Publisher data blob, set by the admin tools /// public List Keys; } [Serializable] public class GetPublisherDataResult : PlayFabResultCommon { /// /// a dictionary object of key / value pairs /// public Dictionary Data; } [Serializable] public class GetRandomResultTablesRequest : PlayFabRequestCommon { /// /// catalog version to fetch tables from. Use default catalog version if null /// public string CatalogVersion; } [Serializable] public class GetRandomResultTablesResult : PlayFabResultCommon { /// /// array of random result tables currently available /// public Dictionary Tables; } [Serializable] public class GetSegmentResult : PlayFabBaseModel { /// /// Identifier of the segments AB Test, if it is attached to one. /// public string ABTestParent; /// /// Unique identifier for this segment. /// public string Id; /// /// Segment name. /// public string Name; } /// /// Given input segment ids, return list of segments. /// [Serializable] public class GetSegmentsRequest : PlayFabRequestCommon { /// /// Segment ids to filter title segments. /// public List SegmentIds; } [Serializable] public class GetSegmentsResponse : PlayFabResultCommon { /// /// Error message. /// public string ErrorMessage; /// /// List of title segments. /// public List Segments; } /// /// A store contains an array of references to items defined in the catalog, 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. /// [Serializable] public class GetStoreItemsRequest : PlayFabRequestCommon { /// /// Catalog version to store items from. Use default catalog version if null /// public string CatalogVersion; /// /// Unqiue identifier for the store which is being requested. /// public string StoreId; } [Serializable] public class GetStoreItemsResult : PlayFabResultCommon { /// /// The base catalog that this store is a part of. /// public string CatalogVersion; /// /// Additional data about the store. /// public StoreMarketingModel MarketingData; /// /// How the store was last updated (Admin or a third party). /// public SourceType? Source; /// /// Array of items which can be purchased from this store. /// public List Store; /// /// The ID of this store. /// public string StoreId; } /// /// The result includes detail information that's specific to a CloudScript task. Only CloudScript tasks configured as "Run /// Cloud Script function once" will be retrieved. To get a list of task instances by task, status, or time range, use /// GetTaskInstances. /// [Serializable] public class GetTaskInstanceRequest : PlayFabRequestCommon { /// /// ID of the requested task instance. /// public string TaskInstanceId; } /// /// Only the most recent 100 task instances are returned, ordered by start time descending. The results are generic basic /// information for task instances. To get detail information specific to each task type, use Get*TaskInstance based on its /// corresponding task type. /// [Serializable] public class GetTaskInstancesRequest : PlayFabRequestCommon { /// /// Optional range-from filter for task instances' StartedAt timestamp. /// public DateTime? StartedAtRangeFrom; /// /// Optional range-to filter for task instances' StartedAt timestamp. /// public DateTime? StartedAtRangeTo; /// /// Optional filter for task instances that are of a specific status. /// public TaskInstanceStatus? StatusFilter; /// /// Name or ID of the task whose instances are being queried. If not specified, return all task instances that satisfy /// conditions set by other filters. /// public NameIdentifier TaskIdentifier; } [Serializable] public class GetTaskInstancesResult : PlayFabResultCommon { /// /// Basic status summaries of the queried task instances. Empty If no task instances meets the filter criteria. To get /// detailed status summary, use Get*TaskInstance API according to task type (e.g. /// GetActionsOnPlayersInSegmentTaskInstance). /// public List Summaries; } [Serializable] public class GetTasksRequest : PlayFabRequestCommon { /// /// Provide either the task ID or the task name to get a specific task. If not specified, return all defined tasks. /// public NameIdentifier Identifier; } [Serializable] public class GetTasksResult : PlayFabResultCommon { /// /// Result tasks. Empty if there is no task found. /// public List Tasks; } /// /// This API method is designed to return title specific values which can be read 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 due to caching, there may up to a minute delay in between updating title data and a query returning the newest /// value. /// [Serializable] public class GetTitleDataRequest : PlayFabRequestCommon { /// /// Specific keys to search for in the title data (leave null to get all keys) /// public List Keys; /// /// 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. /// public string OverrideLabel; } [Serializable] public class GetTitleDataResult : PlayFabResultCommon { /// /// a dictionary object of key / value pairs /// public Dictionary Data; } /// /// Get all bans for a user, including inactive and expired bans. /// [Serializable] public class GetUserBansRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetUserBansResult : PlayFabResultCommon { /// /// Information about the bans /// public List BanData; } /// /// 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. /// [Serializable] public class GetUserDataRequest : PlayFabRequestCommon { /// /// 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. /// public uint? IfChangedFromDataVersion; /// /// Specific keys to search for in the custom user data. /// public List Keys; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetUserDataResult : PlayFabResultCommon { /// /// User specific data for this title. /// public Dictionary Data; /// /// 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. /// public uint DataVersion; /// /// PlayFab unique identifier of the user whose custom data is being returned. /// public string PlayFabId; } /// /// 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. There can be a delay of up to a half a second for inventory /// changes to be reflected in the GetUserInventory API response. /// [Serializable] public class GetUserInventoryRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class GetUserInventoryResult : PlayFabResultCommon { /// /// Array of inventory items belonging to the user. /// public List Inventory; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Array of virtual currency balance(s) belonging to the user. /// public Dictionary VirtualCurrency; /// /// Array of remaining times and timestamps for virtual currencies. /// public Dictionary VirtualCurrencyRechargeTimes; } /// /// 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. /// [Serializable] public class GrantedItemInstance : PlayFabBaseModel { /// /// Game specific comment associated with this instance when it was added to the user inventory. /// public string Annotation; /// /// Array of unique items that were awarded when this catalog item was purchased. /// public List BundleContents; /// /// Unique identifier for the parent inventory item, as defined in the catalog, for object which were added from a bundle or /// container. /// public string BundleParent; /// /// Catalog version for the inventory item, when this instance was created. /// public string CatalogVersion; /// /// Unique PlayFab assigned ID for a specific character owned by a user /// public string CharacterId; /// /// 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. /// public Dictionary CustomData; /// /// CatalogItem.DisplayName at the time this item was purchased. /// public string DisplayName; /// /// Timestamp for when this instance will expire. /// public DateTime? Expiration; /// /// Class name for the inventory item, as defined in the catalog. /// public string ItemClass; /// /// Unique identifier for the inventory item, as defined in the catalog. /// public string ItemId; /// /// Unique item identifier for this specific instance of the item. /// public string ItemInstanceId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Timestamp for when this instance was purchased. /// public DateTime? PurchaseDate; /// /// Total number of remaining uses, if this is a consumable item. /// public int? RemainingUses; /// /// Result of this operation. /// public bool Result; /// /// Currency type for the cost of the catalog item. Not available when granting items. /// public string UnitCurrency; /// /// Cost of the catalog item in the given currency. Not available when granting items. /// public uint UnitPrice; /// /// The number of uses that were added or removed to this item in this call. /// public int? UsesIncrementedBy; } [Serializable] public class GrantItemContent : PlayFabBaseModel { /// /// The catalog version of the item to be granted to the player /// public string CatalogVersion; /// /// The id of item to be granted to the player /// public string ItemId; /// /// Quantity of the item to be granted to a player /// public int ItemQuantity; } [Serializable] public class GrantItemSegmentAction : PlayFabBaseModel { /// /// Item catalog id. /// public string CatelogId; /// /// Item id. /// public string ItemId; /// /// Item quantity. /// public uint Quantity; } /// /// 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. /// [Serializable] public class GrantItemsToUsersRequest : PlayFabRequestCommon { /// /// Catalog version from which items are to be granted. /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Array of items to grant and the users to whom the items are to be granted. /// public List ItemGrants; } /// /// Please note that the order of the items in the response may not match the order of items in the request. /// [Serializable] public class GrantItemsToUsersResult : PlayFabResultCommon { /// /// Array of items granted to users. /// public List ItemGrantResults; } [Serializable] public class GrantVirtualCurrencyContent : PlayFabBaseModel { /// /// Amount of currency to be granted to a player /// public int CurrencyAmount; /// /// Code of the currency to be granted to a player /// public string CurrencyCode; } [Serializable] public class GrantVirtualCurrencySegmentAction : PlayFabBaseModel { /// /// Virtual currency amount. /// public int Amount; /// /// Virtual currency code. /// public string CurrencyCode; } /// /// This operation will increment the global counter for the number of these items available. This number cannot be /// decremented, except by actual grants. /// [Serializable] public class IncrementLimitedEditionItemAvailabilityRequest : PlayFabRequestCommon { /// /// Amount to increase availability by. /// public int Amount; /// /// Which catalog is being updated. If null, uses the default catalog. /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The item which needs more availability. /// public string ItemId; } [Serializable] public class IncrementLimitedEditionItemAvailabilityResult : PlayFabResultCommon { } [Serializable] public class IncrementPlayerStatisticContent : PlayFabBaseModel { /// /// Amount(in whole number) to increase the player statistic by /// public int StatisticChangeBy; /// /// Name of the player statistic to be incremented /// public string StatisticName; } [Serializable] public class IncrementPlayerStatisticSegmentAction : PlayFabBaseModel { /// /// Increment value. /// public int IncrementValue; /// /// Statistic name. /// public string StatisticName; } /// /// Statistics are numeric values, with each statistic in the title also generating a leaderboard. When this call is made on /// a given statistic, this forces a reset of that statistic. Upon reset, the statistic updates to a new version with no /// values (effectively removing all players from the leaderboard). The previous version's statistic values are also /// archived for retrieval, if needed (see GetPlayerStatisticVersions). Statistics not created via a call to /// CreatePlayerStatisticDefinition by default have a VersionChangeInterval of Never, meaning they do not reset on a /// schedule, but they can be set to do so via a call to UpdatePlayerStatisticDefinition. Once a statistic has been reset /// (sometimes referred to as versioned or incremented), the now-previous version can still be written to for up a short, /// pre-defined period (currently 10 seconds), to prevent issues with levels completing around the time of the reset. Also, /// once reset, the historical statistics for players in the title may be retrieved using the URL specified in the version /// information (GetPlayerStatisticVersions). /// [Serializable] public class IncrementPlayerStatisticVersionRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// unique name of the statistic /// public string StatisticName; } [Serializable] public class IncrementPlayerStatisticVersionResult : PlayFabResultCommon { /// /// version change history of the statistic /// public PlayerStatisticVersion StatisticVersion; } [Serializable] public class InsightsScalingTaskParameter : PlayFabBaseModel { /// /// Insights Performance Level to scale to. /// public int Level; } [Serializable] public class ItemGrant : PlayFabBaseModel { /// /// String detailing any additional information concerning this operation. /// public string Annotation; /// /// Unique PlayFab assigned ID for a specific character owned by a user /// public string CharacterId; /// /// 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. /// public Dictionary Data; /// /// Unique identifier of the catalog item to be granted to the user. /// public string ItemId; /// /// 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. /// public List KeysToRemove; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } /// /// 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. /// [Serializable] public class ItemInstance : PlayFabBaseModel { /// /// Game specific comment associated with this instance when it was added to the user inventory. /// public string Annotation; /// /// Array of unique items that were awarded when this catalog item was purchased. /// public List BundleContents; /// /// Unique identifier for the parent inventory item, as defined in the catalog, for object which were added from a bundle or /// container. /// public string BundleParent; /// /// Catalog version for the inventory item, when this instance was created. /// public string CatalogVersion; /// /// 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. /// public Dictionary CustomData; /// /// CatalogItem.DisplayName at the time this item was purchased. /// public string DisplayName; /// /// Timestamp for when this instance will expire. /// public DateTime? Expiration; /// /// Class name for the inventory item, as defined in the catalog. /// public string ItemClass; /// /// Unique identifier for the inventory item, as defined in the catalog. /// public string ItemId; /// /// Unique item identifier for this specific instance of the item. /// public string ItemInstanceId; /// /// Timestamp for when this instance was purchased. /// public DateTime? PurchaseDate; /// /// Total number of remaining uses, if this is a consumable item. /// public int? RemainingUses; /// /// Currency type for the cost of the catalog item. Not available when granting items. /// public string UnitCurrency; /// /// Cost of the catalog item in the given currency. Not available when granting items. /// public uint UnitPrice; /// /// The number of uses that were added or removed to this item in this call. /// public int? UsesIncrementedBy; } [Serializable] public class LastLoginDateSegmentFilter : PlayFabBaseModel { /// /// Last player login date comparison. /// public SegmentFilterComparison? Comparison; /// /// Last player login date. /// public DateTime LogInDate; } [Serializable] public class LastLoginTimespanSegmentFilter : PlayFabBaseModel { /// /// Last player login duration comparison. /// public SegmentFilterComparison? Comparison; /// /// Last player login duration. /// public double DurationInMinutes; } [Serializable] public class LinkedPlatformAccountModel : PlayFabBaseModel { /// /// Linked account email of the user on the platform, if available /// public string Email; /// /// Authentication platform /// public LoginIdentityProvider? Platform; /// /// Unique account identifier of the user on the platform /// public string PlatformUserId; /// /// Linked account username of the user on the platform, if available /// public string Username; } [Serializable] public class LinkedUserAccountHasEmailSegmentFilter : PlayFabBaseModel { /// /// Login provider comparison. /// public SegmentFilterComparison? Comparison; /// /// Login provider. /// public SegmentLoginIdentityProvider? LoginProvider; } [Serializable] public class LinkedUserAccountSegmentFilter : PlayFabBaseModel { /// /// Login provider. /// public SegmentLoginIdentityProvider? LoginProvider; } [Serializable] public class ListOpenIdConnectionRequest : PlayFabRequestCommon { } [Serializable] public class ListOpenIdConnectionResponse : PlayFabResultCommon { /// /// The list of Open ID Connections /// public List Connections; } [Serializable] public class ListVirtualCurrencyTypesRequest : PlayFabRequestCommon { } [Serializable] public class ListVirtualCurrencyTypesResult : PlayFabResultCommon { /// /// List of virtual currency names defined for this title /// public List VirtualCurrencies; } [Serializable] public class LocationModel : PlayFabBaseModel { /// /// City name. /// public string City; /// /// The two-character continent code for this location /// public ContinentCode? ContinentCode; /// /// The two-character ISO 3166-1 country code for the country associated with the location /// public CountryCode? CountryCode; /// /// Latitude coordinate of the geographic location. /// public double? Latitude; /// /// Longitude coordinate of the geographic location. /// public double? Longitude; } [Serializable] public class LocationSegmentFilter : PlayFabBaseModel { /// /// Segment country code. /// public SegmentCountryCode? CountryCode; } public enum LoginIdentityProvider { Unknown, PlayFab, Custom, GameCenter, GooglePlay, Steam, XBoxLive, PSN, Kongregate, Facebook, IOSDevice, AndroidDevice, Twitch, WindowsHello, GameServer, CustomServer, NintendoSwitch, FacebookInstantGames, OpenIdConnect, Apple, NintendoSwitchAccount, GooglePlayGames, XboxMobileStore, King } [Serializable] public class LogStatement : PlayFabBaseModel { /// /// Optional object accompanying the message as contextual information /// public object Data; /// /// 'Debug', 'Info', or 'Error' /// public string Level; public string Message; } /// /// 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. /// [Serializable] public class LookupUserAccountInfoRequest : PlayFabRequestCommon { /// /// User email address attached to their account /// public string Email; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Title specific username to match against existing user accounts /// public string TitleDisplayName; /// /// PlayFab username for the account (3-20 characters) /// public string Username; } [Serializable] public class LookupUserAccountInfoResult : PlayFabResultCommon { /// /// User info for the user matching the request /// public UserAccountInfo UserInfo; } [Serializable] public class MembershipModel : PlayFabBaseModel { /// /// Whether this membership is active. That is, whether the MembershipExpiration time has been reached. /// public bool IsActive; /// /// The time this membership expires /// public DateTime MembershipExpiration; /// /// The id of the membership /// public string MembershipId; /// /// Membership expirations can be explicitly overridden (via game manager or the admin api). If this membership has been /// overridden, this will be the new expiration time. /// public DateTime? OverrideExpiration; /// /// The list of subscriptions that this player has for this membership /// public List Subscriptions; } [Serializable] public class ModifyUserVirtualCurrencyResult : PlayFabResultCommon { /// /// Balance of the virtual currency after modification. /// public int Balance; /// /// Amount added or subtracted from the user's virtual currency. Maximum VC balance is Int32 (2,147,483,647). Any increase /// over this value will be discarded. /// public int BalanceChange; /// /// User currency was subtracted from. /// public string PlayFabId; /// /// Name of the virtual currency which was modified. /// public string VirtualCurrency; } /// /// Identifier by either name or ID. Note that a name may change due to renaming, or reused after being deleted. ID is /// immutable and unique. /// [Serializable] public class NameIdentifier : PlayFabBaseModel { /// /// Id Identifier, if present /// public string Id; /// /// Name Identifier, if present /// public string Name; } [Serializable] public class OpenIdConnection : PlayFabBaseModel { /// /// The client ID given by the ID provider. /// public string ClientId; /// /// The client secret given by the ID provider. /// public string ClientSecret; /// /// A name for the connection to identify it within the title. /// public string ConnectionId; /// /// Shows if data about the connection will be loaded from the issuer's discovery document /// public bool DiscoverConfiguration; /// /// Ignore 'nonce' claim in identity tokens. /// public bool? IgnoreNonce; /// /// Information for an OpenID Connect provider. /// public OpenIdIssuerInformation IssuerInformation; /// /// Override the issuer name for user indexing and lookup. /// public string IssuerOverride; } [Serializable] public class OpenIdIssuerInformation : PlayFabBaseModel { /// /// Authorization endpoint URL to direct users to for signin. /// public string AuthorizationUrl; /// /// The URL of the issuer of the tokens. This must match the exact URL of the issuer field in tokens. /// public string Issuer; /// /// JSON Web Key Set for validating the signature of tokens. /// public object JsonWebKeySet; /// /// Token endpoint URL for code verification. /// public string TokenUrl; } [Serializable] public class PermissionStatement : PlayFabBaseModel { /// /// The action this statement effects. The only supported action is 'Execute'. /// public string Action; /// /// Additional conditions to be applied for API Resources. /// public ApiCondition ApiConditions; /// /// A comment about the statement. Intended solely for bookkeeping and debugging. /// public string Comment; /// /// The effect this statement will have. It could be either Allow or Deny /// public EffectType Effect; /// /// The principal this statement will effect. The only supported principal is '*'. /// public string Principal; /// /// The resource this statements effects. The only supported resources look like 'pfrn:api--*' for all apis, or /// 'pfrn:api--/Client/ConfirmPurchase' for specific apis. /// public string Resource; } [Serializable] public class PlayerChurnPredictionSegmentFilter : PlayFabBaseModel { /// /// Comparison /// public SegmentFilterComparison? Comparison; /// /// RiskLevel /// public ChurnRiskLevel? RiskLevel; } [Serializable] public class PlayerChurnPredictionTimeSegmentFilter : PlayFabBaseModel { /// /// Comparison /// public SegmentFilterComparison? Comparison; /// /// DurationInDays /// public double DurationInDays; } [Serializable] public class PlayerChurnPreviousPredictionSegmentFilter : PlayFabBaseModel { /// /// Comparison /// public SegmentFilterComparison? Comparison; /// /// RiskLevel /// public ChurnRiskLevel? RiskLevel; } [Serializable] public class PlayerLinkedAccount : PlayFabBaseModel { /// /// Linked account's email /// public string Email; /// /// Authentication platform /// public LoginIdentityProvider? Platform; /// /// Platform user identifier /// public string PlatformUserId; /// /// Linked account's username /// public string Username; } [Serializable] public class PlayerLocation : PlayFabBaseModel { /// /// City of the player's geographic location. /// public string City; /// /// The two-character continent code for this location /// public ContinentCode ContinentCode; /// /// The two-character ISO 3166-1 country code for the country associated with the location /// public CountryCode CountryCode; /// /// Latitude coordinate of the player's geographic location. /// public double? Latitude; /// /// Longitude coordinate of the player's geographic location. /// public double? Longitude; } [Serializable] public class PlayerProfile : PlayFabBaseModel { /// /// Array of ad campaigns player has been attributed to /// public List AdCampaignAttributions; /// /// Image URL of the player's avatar. /// public string AvatarUrl; /// /// Banned until UTC Date. If permanent ban this is set for 20 years after the original ban date. /// public DateTime? BannedUntil; /// /// The prediction of the player to churn within the next seven days. /// public ChurnRiskLevel? ChurnPrediction; /// /// Array of contact email addresses associated with the player /// public List ContactEmailAddresses; /// /// Player record created /// public DateTime? Created; /// /// Player Display Name /// public string DisplayName; /// /// Last login /// public DateTime? LastLogin; /// /// Array of third party accounts linked to this player /// public List LinkedAccounts; /// /// Dictionary of player's locations by type. /// public Dictionary Locations; /// /// Player account origination /// public LoginIdentityProvider? Origination; /// /// List of player variants for experimentation /// public List PlayerExperimentVariants; /// /// PlayFab Player ID /// public string PlayerId; /// /// Array of player statistics /// public List PlayerStatistics; /// /// Publisher this player belongs to /// public string PublisherId; /// /// Array of configured push notification end points /// public List PushNotificationRegistrations; /// /// Dictionary of player's statistics using only the latest version's value /// public Dictionary Statistics; /// /// List of player's tags for segmentation. /// public List Tags; /// /// Title ID this profile applies to /// public string TitleId; /// /// A sum of player's total purchases in USD across all currencies. /// public uint? TotalValueToDateInUSD; /// /// Dictionary of player's total purchases by currency. /// public Dictionary ValuesToDate; /// /// Dictionary of player's virtual currency balances /// public Dictionary VirtualCurrencyBalances; } [Serializable] public class PlayerProfileModel : PlayFabBaseModel { /// /// List of advertising campaigns the player has been attributed to /// public List AdCampaignAttributions; /// /// URL of the player's avatar image /// public string AvatarUrl; /// /// If the player is currently banned, the UTC Date when the ban expires /// public DateTime? BannedUntil; /// /// List of all contact email info associated with the player account /// public List ContactEmailAddresses; /// /// Player record created /// public DateTime? Created; /// /// Player display name /// public string DisplayName; /// /// List of experiment variants for the player. Note that these variants are not guaranteed to be up-to-date when returned /// during login because the player profile is updated only after login. Instead, use the LoginResult.TreatmentAssignment /// property during login to get the correct variants and variables. /// public List ExperimentVariants; /// /// UTC time when the player most recently logged in to the title /// public DateTime? LastLogin; /// /// List of all authentication systems linked to this player account /// public List LinkedAccounts; /// /// List of geographic locations from which the player has logged in to the title /// public List Locations; /// /// List of memberships for the player, along with whether are expired. /// public List Memberships; /// /// Player account origination /// public LoginIdentityProvider? Origination; /// /// PlayFab player account unique identifier /// public string PlayerId; /// /// Publisher this player belongs to /// public string PublisherId; /// /// List of configured end points registered for sending the player push notifications /// public List PushNotificationRegistrations; /// /// List of leaderboard statistic values for the player /// public List Statistics; /// /// List of player's tags for segmentation /// public List Tags; /// /// Title ID this player profile applies to /// public string TitleId; /// /// Sum of the player's purchases made with real-money currencies, converted to US dollars equivalent and represented as a /// whole number of cents (1/100 USD). For example, 999 indicates nine dollars and ninety-nine cents. /// public uint? TotalValueToDateInUSD; /// /// List of the player's lifetime purchase totals, summed by real-money currency /// public List ValuesToDate; } [Serializable] public class PlayerProfileViewConstraints : PlayFabBaseModel { /// /// Whether to show player's avatar URL. Defaults to false /// public bool ShowAvatarUrl; /// /// Whether to show the banned until time. Defaults to false /// public bool ShowBannedUntil; /// /// Whether to show campaign attributions. Defaults to false /// public bool ShowCampaignAttributions; /// /// Whether to show contact email addresses. Defaults to false /// public bool ShowContactEmailAddresses; /// /// Whether to show the created date. Defaults to false /// public bool ShowCreated; /// /// Whether to show the display name. Defaults to false /// public bool ShowDisplayName; /// /// Whether to show player's experiment variants. Defaults to false /// public bool ShowExperimentVariants; /// /// Whether to show the last login time. Defaults to false /// public bool ShowLastLogin; /// /// Whether to show the linked accounts. Defaults to false /// public bool ShowLinkedAccounts; /// /// Whether to show player's locations. Defaults to false /// public bool ShowLocations; /// /// Whether to show player's membership information. Defaults to false /// public bool ShowMemberships; /// /// Whether to show origination. Defaults to false /// public bool ShowOrigination; /// /// Whether to show push notification registrations. Defaults to false /// public bool ShowPushNotificationRegistrations; /// /// Reserved for future development /// public bool ShowStatistics; /// /// Whether to show tags. Defaults to false /// public bool ShowTags; /// /// Whether to show the total value to date in usd. Defaults to false /// public bool ShowTotalValueToDateInUsd; /// /// Whether to show the values to date. Defaults to false /// public bool ShowValuesToDate; } [Serializable] public class PlayerStatistic : PlayFabBaseModel { /// /// Statistic ID /// public string Id; /// /// Statistic name /// public string Name; /// /// Current statistic value /// public int StatisticValue; /// /// Statistic version (0 if not a versioned statistic) /// public int StatisticVersion; } [Serializable] public class PlayerStatisticDefinition : PlayFabBaseModel { /// /// the aggregation method to use in updating the statistic (defaults to last) /// public StatisticAggregationMethod? AggregationMethod; /// /// current active version of the statistic, incremented each time the statistic resets /// public uint CurrentVersion; /// /// unique name of the statistic /// public string StatisticName; /// /// interval at which the values of the statistic for all players are reset automatically /// public StatisticResetIntervalOption? VersionChangeInterval; } [Serializable] public class PlayerStatisticVersion : PlayFabBaseModel { /// /// time when the statistic version became active /// public DateTime ActivationTime; /// /// URL for the downloadable archive of player statistic values, if available /// public string ArchiveDownloadUrl; /// /// time when the statistic version became inactive due to statistic version incrementing /// public DateTime? DeactivationTime; /// /// time at which the statistic version was scheduled to become active, based on the configured ResetInterval /// public DateTime? ScheduledActivationTime; /// /// time at which the statistic version was scheduled to become inactive, based on the configured ResetInterval /// public DateTime? ScheduledDeactivationTime; /// /// name of the statistic when the version became active /// public string StatisticName; /// /// status of the statistic version /// public StatisticVersionStatus? Status; /// /// version of the statistic /// public uint Version; } [Serializable] public class PushNotificationContent : PlayFabBaseModel { /// /// Text of message to send. /// public string Message; /// /// Id of the push notification template. /// public string PushNotificationTemplateId; /// /// Subject of message to send (may not be displayed in all platforms) /// public string Subject; } public enum PushNotificationPlatform { ApplePushNotificationService, GoogleCloudMessaging } [Serializable] public class PushNotificationRegistration : PlayFabBaseModel { /// /// Notification configured endpoint /// public string NotificationEndpointARN; /// /// Push notification platform /// public PushNotificationPlatform? Platform; } [Serializable] public class PushNotificationRegistrationModel : PlayFabBaseModel { /// /// Notification configured endpoint /// public string NotificationEndpointARN; /// /// Push notification platform /// public PushNotificationPlatform? Platform; } [Serializable] public class PushNotificationSegmentAction : PlayFabBaseModel { /// /// Push notification template id. /// public string PushNotificationTemplateId; } [Serializable] public class PushNotificationSegmentFilter : PlayFabBaseModel { /// /// Push notification device platform. /// public SegmentPushNotificationDevicePlatform? PushNotificationDevicePlatform; } public enum PushSetupPlatform { GCM, APNS, APNS_SANDBOX } [Serializable] public class RandomResultTable : PlayFabBaseModel { /// /// Child nodes that indicate what kind of drop table item this actually is. /// public List Nodes; /// /// Unique name for this drop table /// public string TableId; } [Serializable] public class RandomResultTableListing : PlayFabBaseModel { /// /// Catalog version this table is associated with /// public string CatalogVersion; /// /// Child nodes that indicate what kind of drop table item this actually is. /// public List Nodes; /// /// Unique name for this drop table /// public string TableId; } [Serializable] public class RefundPurchaseRequest : PlayFabRequestCommon { /// /// Unique order ID for the purchase in question. /// public string OrderId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// The Reason parameter should correspond with the payment providers reason field, if they require one such as Facebook. In /// the case of Facebook this must match one of their refund or dispute resolution enums (See: /// https://developers.facebook.com/docs/payments/implementation-guide/handling-disputes-refunds) /// public string Reason; } [Serializable] public class RefundPurchaseResponse : PlayFabResultCommon { /// /// The order's updated purchase status. /// public string PurchaseStatus; } /// /// This API will trigger a player_tag_removed event and remove a tag with the given TagName and PlayFabID from the /// corresponding player profile. TagName can be used for segmentation and it is limited to 256 characters /// [Serializable] public class RemovePlayerTagRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// Unique tag for player profile. /// public string TagName; } [Serializable] public class RemovePlayerTagResult : PlayFabResultCommon { } /// /// Virtual currencies to be removed cannot have entries in any catalog nor store for the title. Note that this operation /// will not remove player balances for the removed currencies; if a deleted currency is recreated at any point, user /// balances will be in an undefined state. /// [Serializable] public class RemoveVirtualCurrencyTypesRequest : PlayFabRequestCommon { /// /// List of virtual currencies to delete /// public List VirtualCurrencies; } /// /// Note that this action cannot be un-done. All statistics for this character will be deleted, removing the user from all /// leaderboards for the game. /// [Serializable] public class ResetCharacterStatisticsRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID for a specific character owned by a user /// public string CharacterId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class ResetCharacterStatisticsResult : PlayFabResultCommon { } /// /// Resets a player's password taking in a new password based and validating the user based off of a token sent to the /// playerto their email. The token expires after 30 minutes. /// [Serializable] public class ResetPasswordRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The new password for the player. /// public string Password; /// /// The token of the player requesting the password reset. /// public string Token; } [Serializable] public class ResetPasswordResult : PlayFabResultCommon { } /// /// Note that this action cannot be un-done. All statistics for this user will be deleted, removing the user from all /// leaderboards for the game. /// [Serializable] public class ResetUserStatisticsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class ResetUserStatisticsResult : PlayFabResultCommon { } public enum ResolutionOutcome { Revoke, Reinstate, Manual } [Serializable] public class ResolvePurchaseDisputeRequest : PlayFabRequestCommon { /// /// Unique order ID for the purchase in question. /// public string OrderId; /// /// Enum for the desired purchase result state after notifying the payment provider. Valid values are Revoke, Reinstate and /// Manual. Manual will cause no change to the order state. /// public ResolutionOutcome Outcome; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; /// /// The Reason parameter should correspond with the payment providers reason field, if they require one such as Facebook. In /// the case of Facebook this must match one of their refund or dispute resolution enums (See: /// https://developers.facebook.com/docs/payments/implementation-guide/handling-disputes-refunds) /// public string Reason; } [Serializable] public class ResolvePurchaseDisputeResponse : PlayFabResultCommon { /// /// The order's updated purchase status. /// public string PurchaseStatus; } [Serializable] public class ResultTableNode : PlayFabBaseModel { /// /// Either an ItemId, or the TableId of another random result table /// public string ResultItem; /// /// Whether this entry in the table is an item or a link to another table /// public ResultTableNodeType ResultItemType; /// /// How likely this is to be rolled - larger numbers add more weight /// public int Weight; } public enum ResultTableNodeType { ItemId, TableId } /// /// Setting the active state of all non-expired bans for a user to Inactive. Expired bans with an Active state will be /// ignored, however. Returns information about applied updates only. /// [Serializable] public class RevokeAllBansForUserRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class RevokeAllBansForUserResult : PlayFabResultCommon { /// /// Information on the bans that were revoked. /// public List BanData; } /// /// Setting the active state of all bans requested to Inactive regardless of whether that ban has already expired. BanIds /// that do not exist will be skipped. Returns information about applied updates only. /// [Serializable] public class RevokeBansRequest : PlayFabRequestCommon { /// /// Ids of the bans to be revoked. Maximum 100. /// public List BanIds; } [Serializable] public class RevokeBansResult : PlayFabResultCommon { /// /// Information on the bans that were revoked /// public List BanData; } [Serializable] public class RevokeInventoryItem : PlayFabBaseModel { /// /// Unique PlayFab assigned ID for a specific character owned by a user /// public string CharacterId; /// /// Unique PlayFab assigned instance identifier of the item /// public string ItemInstanceId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } /// /// In cases where the inventory item in question is a "crate", and the items it contained have already been dispensed, this /// will not revoke access or otherwise remove the items which were dispensed. /// [Serializable] public class RevokeInventoryItemRequest : PlayFabRequestCommon { /// /// Unique PlayFab assigned ID for a specific character owned by a user /// public string CharacterId; /// /// Unique PlayFab assigned instance identifier of the item /// public string ItemInstanceId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } /// /// In cases where the inventory item in question is a "crate", and the items it contained have already been dispensed, this /// will not revoke access or otherwise remove the items which were dispensed. /// [Serializable] public class RevokeInventoryItemsRequest : PlayFabRequestCommon { /// /// Array of player items to revoke, between 1 and 25 items. /// public List Items; } [Serializable] public class RevokeInventoryItemsResult : PlayFabResultCommon { /// /// Collection of any errors that occurred during processing. /// public List Errors; } [Serializable] public class RevokeInventoryResult : PlayFabResultCommon { } [Serializable] public class RevokeItemError : PlayFabBaseModel { /// /// Specific error that was encountered. /// public GenericErrorCodes? Error; /// /// Item information that failed to be revoked. /// public RevokeInventoryItem Item; } /// /// The returned task instance ID can be used to query for task execution status. /// [Serializable] public class RunTaskRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Provide either the task ID or the task name to run a task. /// public NameIdentifier Identifier; } [Serializable] public class RunTaskResult : PlayFabResultCommon { /// /// ID of the task instance that is started. This can be used in Get*TaskInstance (e.g. GetCloudScriptTaskInstance) API call /// to retrieve status for the task instance. /// public string TaskInstanceId; } [Serializable] public class ScheduledTask : PlayFabBaseModel { /// /// Description the task /// public string Description; /// /// Whether the schedule is active. Inactive schedule will not trigger task execution. /// public bool IsActive; /// /// UTC time of last run /// public DateTime? LastRunTime; /// /// Name of the task. This is a unique identifier for tasks in the title. /// public string Name; /// /// UTC time of next run /// public DateTime? NextRunTime; /// /// Task parameter. Different types of task have different parameter structure. See each task type's create API /// documentation for the details. /// public object Parameter; /// /// Cron expression for the run schedule of the task. The expression should be in UTC. /// public string Schedule; /// /// ID of the task /// public string TaskId; /// /// Task type. /// public ScheduledTaskType? Type; } public enum ScheduledTaskType { CloudScript, ActionsOnPlayerSegment, CloudScriptAzureFunctions, InsightsScheduledScaling } [Serializable] public class ScriptExecutionError : PlayFabBaseModel { /// /// Error code, such as CloudScriptNotFound, JavascriptException, CloudScriptFunctionArgumentSizeExceeded, /// CloudScriptAPIRequestCountExceeded, CloudScriptAPIRequestError, or CloudScriptHTTPRequestError /// public string Error; /// /// Details about the error /// public string Message; /// /// Point during the execution of the script at which the error occurred, if any /// public string StackTrace; } [Serializable] public class SegmentAndDefinition : PlayFabBaseModel { /// /// Filter property for ad campaign filter. /// public AdCampaignSegmentFilter AdCampaignFilter; /// /// property for all player filter. /// public AllPlayersSegmentFilter AllPlayersFilter; /// /// Filter property for player churn risk level. /// public ChurnPredictionSegmentFilter ChurnPredictionFilter; /// /// Filter property for first login date. /// public FirstLoginDateSegmentFilter FirstLoginDateFilter; /// /// Filter property for first login timespan. /// public FirstLoginTimespanSegmentFilter FirstLoginFilter; /// /// Filter property for last login date. /// public LastLoginDateSegmentFilter LastLoginDateFilter; /// /// Filter property for last login timespan. /// public LastLoginTimespanSegmentFilter LastLoginFilter; /// /// Filter property for linked in user account. /// public LinkedUserAccountSegmentFilter LinkedUserAccountFilter; /// /// Filter property for linked in user account has email. /// public LinkedUserAccountHasEmailSegmentFilter LinkedUserAccountHasEmailFilter; /// /// Filter property for location. /// public LocationSegmentFilter LocationFilter; /// /// Filter property for current player churn value. /// public PlayerChurnPredictionSegmentFilter PlayerChurnPredictionFilter; /// /// Filter property for player churn timespan. /// public PlayerChurnPredictionTimeSegmentFilter PlayerChurnPredictionTimeFilter; /// /// Filter property for previous player churn value. /// public PlayerChurnPreviousPredictionSegmentFilter PlayerChurnPreviousPredictionFilter; /// /// Filter property for push notification. /// public PushNotificationSegmentFilter PushNotificationFilter; /// /// Filter property for statistics. /// public StatisticSegmentFilter StatisticFilter; /// /// Filter property for tags. /// public TagSegmentFilter TagFilter; /// /// Filter property for total value to date in USD. /// public TotalValueToDateInUSDSegmentFilter TotalValueToDateInUSDFilter; /// /// Filter property for user origination. /// public UserOriginationSegmentFilter UserOriginationFilter; /// /// Filter property for value to date. /// public ValueToDateSegmentFilter ValueToDateFilter; /// /// Filter property for virtual currency. /// public VirtualCurrencyBalanceSegmentFilter VirtualCurrencyBalanceFilter; } public enum SegmentCountryCode { 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 } public enum SegmentCurrency { 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 } public enum SegmentFilterComparison { GreaterThan, LessThan, EqualTo, NotEqualTo, GreaterThanOrEqual, LessThanOrEqual, Exists, Contains, NotContains } public enum SegmentLoginIdentityProvider { Unknown, PlayFab, Custom, GameCenter, GooglePlay, Steam, XBoxLive, PSN, Kongregate, Facebook, IOSDevice, AndroidDevice, Twitch, WindowsHello, GameServer, CustomServer, NintendoSwitch, FacebookInstantGames, OpenIdConnect, Apple, NintendoSwitchAccount, GooglePlayGames } [Serializable] public class SegmentModel : PlayFabBaseModel { /// /// Segment description. /// public string Description; /// /// Segment actions for current entered segment players. /// public List EnteredSegmentActions; /// /// Segment last updated date time. /// public DateTime LastUpdateTime; /// /// Segment actions for current left segment players. /// public List LeftSegmentActions; /// /// Segment name. /// public string Name; /// /// Segment id in hex. /// public string SegmentId; /// /// Segment or definitions. This includes segment and definitions and filters. /// public List SegmentOrDefinitions; } [Serializable] public class SegmentOrDefinition : PlayFabBaseModel { /// /// List of segment and definitions. /// public List SegmentAndDefinitions; } public enum SegmentPushNotificationDevicePlatform { ApplePushNotificationService, GoogleCloudMessaging } [Serializable] public class SegmentTrigger : PlayFabBaseModel { /// /// Add inventory item v2 segment trigger action. /// public AddInventoryItemsV2SegmentAction AddInventoryItemsV2Action; /// /// Ban player segment trigger action. /// public BanPlayerSegmentAction BanPlayerAction; /// /// Delete inventory item v2 segment trigger action. /// public DeleteInventoryItemsV2SegmentAction DeleteInventoryItemsV2Action; /// /// Delete player segment trigger action. /// public DeletePlayerSegmentAction DeletePlayerAction; /// /// Delete player statistic segment trigger action. /// public DeletePlayerStatisticSegmentAction DeletePlayerStatisticAction; /// /// Email notification segment trigger action. /// public EmailNotificationSegmentAction EmailNotificationAction; /// /// Execute azure function segment trigger action. /// public ExecuteAzureFunctionSegmentAction ExecuteAzureFunctionAction; /// /// Execute cloud script segment trigger action. /// public ExecuteCloudScriptSegmentAction ExecuteCloudScriptAction; /// /// Grant item segment trigger action. /// public GrantItemSegmentAction GrantItemAction; /// /// Grant virtual currency segment trigger action. /// public GrantVirtualCurrencySegmentAction GrantVirtualCurrencyAction; /// /// Increment player statistic segment trigger action. /// public IncrementPlayerStatisticSegmentAction IncrementPlayerStatisticAction; /// /// Push notification segment trigger action. /// public PushNotificationSegmentAction PushNotificationAction; /// /// Subtract inventory item v2 segment trigger action. /// public SubtractInventoryItemsV2SegmentAction SubtractInventoryItemsV2Action; } /// /// If the account in question is a "temporary" account (for example, one that was created via a call to /// LoginFromIOSDeviceID), thisfunction will have no effect. Only PlayFab accounts which have valid email addresses will be /// able to receive a password reset email using this API. /// [Serializable] public class SendAccountRecoveryEmailRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// User email address attached to their account /// public string Email; /// /// The email template id of the account recovery email template to send. /// public string EmailTemplateId; } [Serializable] public class SendAccountRecoveryEmailResult : PlayFabResultCommon { } [Serializable] public class SendEmailContent : PlayFabBaseModel { /// /// The email template id of the email template to send. /// public string EmailTemplateId; } /// /// This API lets developers set overrides for membership expirations, independent of any subscriptions setting it. /// [Serializable] public class SetMembershipOverrideRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Expiration time for the membership in DateTime format, will override any subscription expirations. /// public DateTime ExpirationTime; /// /// Id of the membership to apply the override expiration date to. /// public string MembershipId; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class SetMembershipOverrideResult : PlayFabResultCommon { } /// /// APIs that require signatures require that the player have a configured Player Secret Key that is used to sign all /// requests. Players that don't have a secret will be blocked from making API calls until it is configured. To create a /// signature header add a SHA256 hashed string containing UTF8 encoded JSON body as it will be sent to the server, the /// current time in UTC formatted to ISO 8601, and the players secret formatted as 'body.date.secret'. Place the resulting /// hash into the header X-PlayFab-Signature, along with a header X-PlayFab-Timestamp of the same UTC timestamp used in the /// signature. /// [Serializable] public class SetPlayerSecretRequest : PlayFabRequestCommon { /// /// Player secret that is used to verify API request signatures (Enterprise Only). /// public string PlayerSecret; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class SetPlayerSecretResult : PlayFabResultCommon { } [Serializable] public class SetPublishedRevisionRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Revision to make the current published revision /// public int Revision; /// /// Version number /// public int Version; } [Serializable] public class SetPublishedRevisionResult : PlayFabResultCommon { } /// /// This API is designed to store 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. This operation is additive. If a Key does not exist in the current dataset, it /// will be added with the specified Value. If it already exists, the Value for that key will be overwritten with the new /// Value. For more information email helloplayfab@microsoft.com /// [Serializable] public class SetPublisherDataRequest : PlayFabRequestCommon { /// /// key we want to set a value on (note, this is additive - will only replace an existing key's value if they are the same /// name.) Keys are trimmed of whitespace. Keys may not begin with the '!' character. /// public string Key; /// /// new value to set. Set to null to remove a value /// public string Value; } [Serializable] public class SetPublisherDataResult : PlayFabResultCommon { } /// /// Will set the given key values in the specified override or the primary title data based on whether the label is provided /// or not. /// [Serializable] public class SetTitleDataAndOverridesRequest : PlayFabRequestCommon { /// /// List of titleData key-value pairs to set/delete. Use an empty value to delete an existing key; use a non-empty value to /// create/update a key. /// public List KeyValues; /// /// Name of the override. /// public string OverrideLabel; } [Serializable] public class SetTitleDataAndOverridesResult : PlayFabResultCommon { } /// /// This operation is additive. If a Key does not exist in the current dataset, it will be added with the specified Value. /// If it already exists, the Value for that key will be overwritten with the new Value. /// [Serializable] public class SetTitleDataRequest : PlayFabRequestCommon { /// /// key we want to set a value on (note, this is additive - will only replace an existing key's value if they are the same /// name.) Keys are trimmed of whitespace. Keys may not begin with the '!' character. /// public string Key; /// /// new value to set. Set to null to remove a value /// public string Value; } [Serializable] public class SetTitleDataResult : PlayFabResultCommon { } /// /// When using the Apple Push Notification service (APNS) or the development version (APNS_SANDBOX), the APNS Private Key /// should be used as the Credential in this call. With Google Cloud Messaging (GCM), the Android API Key should be used. /// The current ARN (if one exists) can be overwritten by setting the OverwriteOldARN boolean to true. /// [Serializable] public class SetupPushNotificationRequest : PlayFabRequestCommon { /// /// Credential is the Private Key for APNS/APNS_SANDBOX, and the API Key for GCM /// public string Credential; /// /// for APNS, this is the PlatformPrincipal (SSL Certificate) /// public string Key; /// /// This field is deprecated and any usage of this will cause the API to fail. /// public string Name; /// /// replace any existing ARN with the newly generated one. If this is set to false, an error will be returned if /// notifications have already setup for this platform. /// public bool OverwriteOldARN; /// /// supported notification platforms are Apple Push Notification Service (APNS and APNS_SANDBOX) for iOS and Google Cloud /// Messaging (GCM) for Android /// public PushSetupPlatform Platform; } [Serializable] public class SetupPushNotificationResult : PlayFabResultCommon { /// /// Amazon Resource Name for the created notification topic. /// public string ARN; } [Serializable] public class SharedSecret : PlayFabBaseModel { /// /// Flag to indicate if this key is disabled /// public bool Disabled; /// /// Friendly name for this key /// public string FriendlyName; /// /// The player shared secret to use when calling Client/GetTitlePublicKey /// public string SecretKey; } public enum SourceType { Admin, BackEnd, GameClient, GameServer, Partner, Custom, API } public enum StatisticAggregationMethod { Last, Min, Max, Sum } [Serializable] public class StatisticModel : PlayFabBaseModel { /// /// Statistic name /// public string Name; /// /// Statistic value /// public int Value; /// /// Statistic version (0 if not a versioned statistic) /// public int Version; } public enum StatisticResetIntervalOption { Never, Hour, Day, Week, Month } [Serializable] public class StatisticSegmentFilter : PlayFabBaseModel { /// /// Statistic filter comparison. /// public SegmentFilterComparison? Comparison; /// /// Statistic filter value. /// public string FilterValue; /// /// Statistic name. /// public string Name; /// /// Use current version of statistic? /// public bool? UseCurrentVersion; /// /// Statistic version. /// public int? Version; } public enum StatisticVersionArchivalStatus { NotScheduled, Scheduled, Queued, InProgress, Complete } public enum StatisticVersionStatus { Active, SnapshotPending, Snapshot, ArchivalPending, Archived } /// /// A store entry that list a catalog item at a particular price /// [Serializable] public class StoreItem : PlayFabBaseModel { /// /// Store specific custom data. The data only exists as part of this store; it is not transferred to item instances /// public object CustomData; /// /// Intended display position for this item. Note that 0 is the first position /// public uint? DisplayPosition; /// /// Unique identifier of the item as it exists in the catalog - note that this must exactly match the ItemId from the /// catalog /// public string ItemId; /// /// Override prices for this item for specific currencies /// public Dictionary RealCurrencyPrices; /// /// Override prices for this item in virtual currencies and "RM" (the base Real Money purchase price, in USD pennies) /// public Dictionary VirtualCurrencyPrices; } /// /// Marketing data about a specific store /// [Serializable] public class StoreMarketingModel : PlayFabBaseModel { /// /// Tagline for a store. /// public string Description; /// /// Display name of a store as it will appear to users. /// public string DisplayName; /// /// Custom data about a store. /// public object Metadata; } [Serializable] public class SubscriptionModel : PlayFabBaseModel { /// /// When this subscription expires. /// public DateTime Expiration; /// /// The time the subscription was orignially purchased /// public DateTime InitialSubscriptionTime; /// /// Whether this subscription is currently active. That is, if Expiration > now. /// public bool IsActive; /// /// The status of this subscription, according to the subscription provider. /// public SubscriptionProviderStatus? Status; /// /// The id for this subscription /// public string SubscriptionId; /// /// The item id for this subscription from the primary catalog /// public string SubscriptionItemId; /// /// The provider for this subscription. Apple or Google Play are supported today. /// public string SubscriptionProvider; } public enum SubscriptionProviderStatus { NoError, Cancelled, UnknownError, BillingError, ProductUnavailable, CustomerDidNotAcceptPriceChange, FreeTrial, PaymentPending } [Serializable] public class SubtractInventoryItemsV2SegmentAction : PlayFabBaseModel { /// /// Amount of the item to removed from the player /// public int? Amount; /// /// The collection id for where the item will be removed from the player inventory /// public string CollectionId; /// /// The duration in seconds to be removed from the subscription in the players inventory /// public int? DurationInSeconds; /// /// The id of item to be removed from the player /// public string ItemId; /// /// The stack id for where the item will be removed from the player inventory /// public string StackId; } [Serializable] public class SubtractInventoryItemV2Content : PlayFabBaseModel { /// /// Amount of the item to removed from the player /// public int? Amount; /// /// The collection id for where the item will be removed from the player inventory /// public string CollectionId; /// /// The duration in seconds to be removed from the subscription in the players inventory /// public int? DurationInSeconds; /// /// The id of item to be removed from the player /// public string ItemId; /// /// The stack id for where the item will be removed from the player inventory /// public string StackId; } [Serializable] public class SubtractUserVirtualCurrencyRequest : PlayFabRequestCommon { /// /// Amount to be subtracted from the user balance of the specified virtual currency. /// public int Amount; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// PlayFab unique identifier of the user whose virtual currency balance is to be decreased. /// public string PlayFabId; /// /// Name of the virtual currency which is to be decremented. /// public string VirtualCurrency; } [Serializable] public class TagModel : PlayFabBaseModel { /// /// Full value of the tag, including namespace /// public string TagValue; } [Serializable] public class TagSegmentFilter : PlayFabBaseModel { /// /// Tag comparison. /// public SegmentFilterComparison? Comparison; /// /// Tag value. /// public string TagValue; } [Serializable] public class TaskInstanceBasicSummary : PlayFabBaseModel { /// /// UTC timestamp when the task completed. /// public DateTime? CompletedAt; /// /// Error message for last processing attempt, if an error occured. /// public string ErrorMessage; /// /// Estimated time remaining in seconds. /// public double? EstimatedSecondsRemaining; /// /// Progress represented as percentage. /// public double? PercentComplete; /// /// If manually scheduled, ID of user who scheduled the task. /// public string ScheduledByUserId; /// /// UTC timestamp when the task started. /// public DateTime StartedAt; /// /// Current status of the task instance. /// public TaskInstanceStatus? Status; /// /// Identifier of the task this instance belongs to. /// public NameIdentifier TaskIdentifier; /// /// ID of the task instance. /// public string TaskInstanceId; /// /// Type of the task. /// public ScheduledTaskType? Type; } public enum TaskInstanceStatus { Succeeded, Starting, InProgress, Failed, Aborted, Stalled } public enum TitleActivationStatus { None, ActivatedTitleKey, PendingSteam, ActivatedSteam, RevokedSteam } [Serializable] public class TitleDataKeyValue : PlayFabBaseModel { /// /// Key we want to set a value on (note, this is additive - will only replace an existing key's value if they are the same /// name.) Keys are trimmed of whitespace. Keys may not begin with the '!' character. /// public string Key; /// /// New value to set. Set to null to remove a value /// public string Value; } [Serializable] public class TotalValueToDateInUSDSegmentFilter : PlayFabBaseModel { /// /// Total value to date USD amount. /// public string Amount; /// /// Total value to date USD comparison. /// public SegmentFilterComparison? Comparison; } /// /// Represents a single update ban request. /// [Serializable] public class UpdateBanRequest : PlayFabBaseModel { /// /// The updated active state for the ban. Null for no change. /// public bool? Active; /// /// The id of the ban to be updated. /// public string BanId; /// /// The updated expiration date for the ban. Null for no change. /// public DateTime? Expires; /// /// The updated IP address for the ban. Null for no change. /// public string IPAddress; /// /// Whether to make this ban permanent. Set to true to make this ban permanent. This will not modify Active state. /// public bool? Permanent; /// /// The updated reason for the ban to be updated. Maximum 140 characters. Null for no change. /// public string Reason; /// /// The updated family type of the user that should be included in the ban. Null for no change. /// public UserFamilyType? UserFamilyType; } /// /// For each ban, only updates the values that are set. Leave any value to null for no change. If a ban could not be found, /// the rest are still applied. Returns information about applied updates only. /// [Serializable] public class UpdateBansRequest : PlayFabRequestCommon { /// /// List of bans to be updated. Maximum 100. /// public List Bans; } [Serializable] public class UpdateBansResult : PlayFabResultCommon { /// /// Information on the bans that were updated /// public List BanData; } /// /// When used for SetCatalogItems, this operation is not additive. Using it will cause the indicated catalog version to be /// created from scratch. If there is an existing catalog with the version number in question, it will be deleted and /// replaced with only the items specified in this call. When used for UpdateCatalogItems, this operation is additive. Items /// with ItemId values not currently in the catalog will be added, while those with ItemId values matching items currently /// in the catalog will overwrite those items with the given values. /// [Serializable] public class UpdateCatalogItemsRequest : PlayFabRequestCommon { /// /// Array of catalog items to be submitted. Note that while CatalogItem has a parameter for CatalogVersion, it is not /// required and ignored in this call. /// public List Catalog; /// /// Which catalog is being updated. If null, uses the default catalog. /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Should this catalog be set as the default catalog. Defaults to true. If there is currently no default catalog, this will /// always set it. /// public bool? SetAsDefaultCatalog; } [Serializable] public class UpdateCatalogItemsResult : PlayFabResultCommon { } [Serializable] public class UpdateCloudScriptRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// PlayFab user ID of the developer initiating the request. /// public string DeveloperPlayFabId; /// /// List of Cloud Script files to upload to create the new revision. Must have at least one file. /// public List Files; /// /// Immediately publish the new revision /// public bool Publish; } [Serializable] public class UpdateCloudScriptResult : PlayFabResultCommon { /// /// New revision number created /// public int Revision; /// /// Cloud Script version updated /// public int Version; } [Serializable] public class UpdateOpenIdConnectionRequest : PlayFabRequestCommon { /// /// The client ID given by the ID provider. /// public string ClientId; /// /// The client secret given by the ID provider. /// public string ClientSecret; /// /// A name for the connection that identifies it within the title. /// public string ConnectionId; /// /// Ignore 'nonce' claim in identity tokens. /// public bool? IgnoreNonce; /// /// The issuer URL or discovery document URL to read issuer information from /// public string IssuerDiscoveryUrl; /// /// Manually specified information for an OpenID Connect issuer. /// public OpenIdIssuerInformation IssuerInformation; /// /// Override the issuer name for user indexing and lookup. /// public string IssuerOverride; } /// /// Player Shared Secret Keys are used for the call to Client/GetTitlePublicKey, which exchanges the shared secret for an /// RSA CSP blob to be used to encrypt the payload of account creation requests when that API requires a signature header. /// [Serializable] public class UpdatePlayerSharedSecretRequest : PlayFabRequestCommon { /// /// Disable or Enable this key /// public bool Disabled; /// /// Friendly name for this key /// public string FriendlyName; /// /// The shared secret key to update /// public string SecretKey; } [Serializable] public class UpdatePlayerSharedSecretResult : PlayFabResultCommon { } /// /// Statistics are numeric values, with each statistic in the title also generating a leaderboard. The ResetInterval enables /// automatically resetting leaderboards on a specified interval. Upon reset, the statistic updates to a new version with no /// values (effectively removing all players from the leaderboard). The previous version's statistic values are also /// archived for retrieval, if needed (see GetPlayerStatisticVersions). Statistics not created via a call to /// CreatePlayerStatisticDefinition by default have a VersionChangeInterval of Never, meaning they do not reset on a /// schedule, but they can be set to do so via a call to UpdatePlayerStatisticDefinition. Once a statistic has been reset /// (sometimes referred to as versioned or incremented), the now-previous version can still be written to for up a short, /// pre-defined period (currently 10 seconds), to prevent issues with levels completing around the time of the reset. Also, /// once reset, the historical statistics for players in the title may be retrieved using the URL specified in the version /// information (GetPlayerStatisticVersions). The AggregationMethod determines what action is taken when a new statistic /// value is submitted - always update with the new value (Last), use the highest of the old and new values (Max), use the /// smallest (Min), or add them together (Sum). /// [Serializable] public class UpdatePlayerStatisticDefinitionRequest : PlayFabRequestCommon { /// /// the aggregation method to use in updating the statistic (defaults to last) /// public StatisticAggregationMethod? AggregationMethod; /// /// unique name of the statistic /// public string StatisticName; /// /// interval at which the values of the statistic for all players are reset (changes are effective at the next occurance of /// the new interval boundary) /// public StatisticResetIntervalOption? VersionChangeInterval; } [Serializable] public class UpdatePlayerStatisticDefinitionResult : PlayFabResultCommon { /// /// updated statistic definition /// public PlayerStatisticDefinition Statistic; } /// /// Updates permissions for your title. Policies affect what is allowed to happen on your title. Your policy is a collection /// of statements that, together, govern particular area for your title. Today, the only allowed policy is called /// 'ApiPolicy' and it governs what API calls are allowed. To verify that you have the latest version always download the /// current policy from GetPolicy before uploading a new policy. PlayFab updates the base policy periodically and will /// automatically apply it to the uploaded policy. Overwriting the combined policy blindly may result in unexpected API /// errors. /// [Serializable] public class UpdatePolicyRequest : PlayFabRequestCommon { /// /// Whether to overwrite or append to the existing policy. /// public bool OverwritePolicy; /// /// The name of the policy being updated. Only supported name is 'ApiPolicy' /// public string PolicyName; /// /// Version of the policy to update. Must be the latest (as returned by GetPolicy). /// public int PolicyVersion; /// /// The new statements to include in the policy. /// public List Statements; } [Serializable] public class UpdatePolicyResponse : PlayFabResultCommon { /// /// The name of the policy that was updated. /// public string PolicyName; /// /// The statements included in the new version of the policy. /// public List Statements; } /// /// This operation is additive. Tables with TableId values not currently defined will be added, while those with TableId /// values matching Tables currently in the catalog will be overwritten with the given values. /// [Serializable] public class UpdateRandomResultTablesRequest : PlayFabRequestCommon { /// /// which catalog is being updated. If null, update the current default catalog version /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// array of random result tables to make available (Note: specifying an existing TableId will result in overwriting that /// table, while any others will be added to the available set) /// public List Tables; } [Serializable] public class UpdateRandomResultTablesResult : PlayFabResultCommon { } /// /// Update segment properties data which are planning to update /// [Serializable] public class UpdateSegmentRequest : PlayFabRequestCommon { /// /// Segment model with all of the segment properties data. /// public SegmentModel SegmentModel; } [Serializable] public class UpdateSegmentResponse : PlayFabResultCommon { /// /// Error message. /// public string ErrorMessage; /// /// Segment id. /// public string SegmentId; } /// /// When used for SetStoreItems, this operation is not additive. Using it will cause the indicated virtual store to be /// created from scratch. If there is an existing store with the same storeId, it will be deleted and replaced with only the /// items specified in this call. When used for UpdateStoreItems, this operation is additive. Items with ItemId values not /// currently in the store will be added, while those with ItemId values matching items currently in the catalog will /// overwrite those items with the given values. In both cases, a store contains an array of references to items defined in /// the catalog, 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. /// [Serializable] public class UpdateStoreItemsRequest : PlayFabRequestCommon { /// /// Catalog version of the store to update. If null, uses the default catalog. /// public string CatalogVersion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Additional data about the store /// public StoreMarketingModel MarketingData; /// /// Array of store items - references to catalog items, with specific pricing - to be added /// public List Store; /// /// Unique identifier for the store which is to be updated /// public string StoreId; } [Serializable] public class UpdateStoreItemsResult : PlayFabResultCommon { } /// /// Note that when calling this API, all properties of the task have to be provided, including properties that you do not /// want to change. Parameters not specified would be set to default value. If the task name in the update request is new, a /// task rename operation will be executed before updating other fields of the task. WARNING: Renaming of a task may break /// logics where the task name is used as an identifier. /// [Serializable] public class UpdateTaskRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Description the task /// public string Description; /// /// Specify either the task ID or the name of the task to be updated. /// public NameIdentifier Identifier; /// /// Whether the schedule is active. Inactive schedule will not trigger task execution. /// public bool IsActive; /// /// Name of the task. This is a unique identifier for tasks in the title. /// public string Name; /// /// Parameter object specific to the task type. See each task type's create API documentation for details. /// public object Parameter; /// /// Cron expression for the run schedule of the task. The expression should be in UTC. /// public string Schedule; /// /// Task type. /// public ScheduledTaskType Type; } /// /// This function performs an additive update of the arbitrary JSON object containing the custom data for the user. In /// updating the custom data object, keys which already exist in the object will have their values overwritten, while keys /// with null values will be removed. No other key-value pairs will be changed apart from those specified in the call. /// [Serializable] public class UpdateUserDataRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// 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. /// public Dictionary Data; /// /// 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. /// public List KeysToRemove; /// /// Permission to be applied to all user data keys written in this request. Defaults to "private" if not set. /// public UserDataPermission? Permission; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } [Serializable] public class UpdateUserDataResult : PlayFabResultCommon { /// /// 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. /// public uint DataVersion; } /// /// This function performs an additive update of the arbitrary JSON object containing the custom data for the user. In /// updating the custom data object, keys which already exist in the object will have their values overwritten, keys with /// null values will be removed. No other key-value pairs will be changed apart from those specified in the call. /// [Serializable] public class UpdateUserInternalDataRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// 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. /// public Dictionary Data; /// /// 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. /// public List KeysToRemove; /// /// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// public string PlayFabId; } /// /// In addition to the PlayFab username, titles can make use of a DisplayName which is also a unique identifier, but /// specific to the title. This allows for unique names which more closely match the theme or genre of a title, for example. /// This API enables changing that name, whether due to a customer request, an offensive name choice, etc. /// [Serializable] public class UpdateUserTitleDisplayNameRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// New title display name for the user - must be between 3 and 25 characters /// public string DisplayName; /// /// PlayFab unique identifier of the user whose title specific display name is to be changed /// public string PlayFabId; } [Serializable] public class UpdateUserTitleDisplayNameResult : PlayFabResultCommon { /// /// current title display name for the user (this will be the original display name if the rename attempt failed) /// public string DisplayName; } [Serializable] public class UserAccountInfo : PlayFabBaseModel { /// /// User Android device information, if an Android device has been linked /// public UserAndroidDeviceInfo AndroidDeviceInfo; /// /// Sign in with Apple account information, if an Apple account has been linked /// public UserAppleIdInfo AppleAccountInfo; /// /// Timestamp indicating when the user account was created /// public DateTime Created; /// /// Custom ID information, if a custom ID has been assigned /// public UserCustomIdInfo CustomIdInfo; /// /// User Facebook information, if a Facebook account has been linked /// public UserFacebookInfo FacebookInfo; /// /// Facebook Instant Games account information, if a Facebook Instant Games account has been linked /// public UserFacebookInstantGamesIdInfo FacebookInstantGamesIdInfo; /// /// User Gamecenter information, if a Gamecenter account has been linked /// public UserGameCenterInfo GameCenterInfo; /// /// User Google account information, if a Google account has been linked /// public UserGoogleInfo GoogleInfo; /// /// User Google Play Games account information, if a Google Play Games account has been linked /// public UserGooglePlayGamesInfo GooglePlayGamesInfo; /// /// User iOS device information, if an iOS device has been linked /// public UserIosDeviceInfo IosDeviceInfo; /// /// User Kongregate account information, if a Kongregate account has been linked /// public UserKongregateInfo KongregateInfo; /// /// Nintendo Switch account information, if a Nintendo Switch account has been linked /// public UserNintendoSwitchAccountIdInfo NintendoSwitchAccountInfo; /// /// Nintendo Switch device information, if a Nintendo Switch device has been linked /// public UserNintendoSwitchDeviceIdInfo NintendoSwitchDeviceIdInfo; /// /// OpenID Connect information, if any OpenID Connect accounts have been linked /// public List OpenIdInfo; /// /// Unique identifier for the user account /// public string PlayFabId; /// /// Personal information for the user which is considered more sensitive /// public UserPrivateAccountInfo PrivateInfo; /// /// User PlayStation :tm: Network account information, if a PlayStation :tm: Network account has been linked /// public UserPsnInfo PsnInfo; /// /// Server Custom ID information, if a server custom ID has been assigned /// public UserServerCustomIdInfo ServerCustomIdInfo; /// /// User Steam information, if a Steam account has been linked /// public UserSteamInfo SteamInfo; /// /// Title-specific information for the user account /// public UserTitleInfo TitleInfo; /// /// User Twitch account information, if a Twitch account has been linked /// public UserTwitchInfo TwitchInfo; /// /// User account name in the PlayFab service /// public string Username; /// /// User XBox account information, if a XBox account has been linked /// public UserXboxInfo XboxInfo; } [Serializable] public class UserAndroidDeviceInfo : PlayFabBaseModel { /// /// Android device ID /// public string AndroidDeviceId; } [Serializable] public class UserAppleIdInfo : PlayFabBaseModel { /// /// Apple subject ID /// public string AppleSubjectId; } [Serializable] public class UserCustomIdInfo : PlayFabBaseModel { /// /// Custom ID /// public string CustomId; } /// /// Indicates whether a given data key is private (readable only by the player) or public (readable by all players). When a /// player makes a GetUserData request about another player, only keys marked Public will be returned. /// public enum UserDataPermission { Private, Public } [Serializable] public class UserDataRecord : PlayFabBaseModel { /// /// Timestamp for when this data was last updated. /// public DateTime LastUpdated; /// /// Indicates whether this data can be read by all users (public) or only the user (private). This is used for GetUserData /// requests being made by one player about another player. /// public UserDataPermission? Permission; /// /// Data stored for the specified user data key. /// public string Value; } [Serializable] public class UserFacebookInfo : PlayFabBaseModel { /// /// Facebook identifier /// public string FacebookId; /// /// Facebook full name /// public string FullName; } [Serializable] public class UserFacebookInstantGamesIdInfo : PlayFabBaseModel { /// /// Facebook Instant Games ID /// public string FacebookInstantGamesId; } public enum UserFamilyType { None, Xbox, Steam } [Serializable] public class UserGameCenterInfo : PlayFabBaseModel { /// /// Gamecenter identifier /// public string GameCenterId; } [Serializable] public class UserGoogleInfo : PlayFabBaseModel { /// /// Email address of the Google account /// public string GoogleEmail; /// /// Gender information of the Google account /// public string GoogleGender; /// /// Google ID /// public string GoogleId; /// /// Locale of the Google account /// public string GoogleLocale; /// /// Name of the Google account user /// public string GoogleName; } [Serializable] public class UserGooglePlayGamesInfo : PlayFabBaseModel { /// /// Avatar image url of the Google Play Games player /// public string GooglePlayGamesPlayerAvatarImageUrl; /// /// Display name of the Google Play Games player /// public string GooglePlayGamesPlayerDisplayName; /// /// Google Play Games player ID /// public string GooglePlayGamesPlayerId; } [Serializable] public class UserIosDeviceInfo : PlayFabBaseModel { /// /// iOS device ID /// public string IosDeviceId; } [Serializable] public class UserKongregateInfo : PlayFabBaseModel { /// /// Kongregate ID /// public string KongregateId; /// /// Kongregate Username /// public string KongregateName; } [Serializable] public class UserNintendoSwitchAccountIdInfo : PlayFabBaseModel { /// /// Nintendo Switch account subject ID /// public string NintendoSwitchAccountSubjectId; } [Serializable] public class UserNintendoSwitchDeviceIdInfo : PlayFabBaseModel { /// /// Nintendo Switch Device ID /// public string NintendoSwitchDeviceId; } [Serializable] public class UserOpenIdInfo : PlayFabBaseModel { /// /// OpenID Connection ID /// public string ConnectionId; /// /// OpenID Issuer /// public string Issuer; /// /// OpenID Subject /// public string Subject; } public enum UserOrigination { Organic, Steam, Google, Amazon, Facebook, Kongregate, GamersFirst, Unknown, IOS, LoadTest, Android, PSN, GameCenter, CustomId, XboxLive, Parse, Twitch, ServerCustomId, NintendoSwitchDeviceId, FacebookInstantGamesId, OpenIdConnect, Apple, NintendoSwitchAccount, GooglePlayGames, XboxMobileStore, King } [Serializable] public class UserOriginationSegmentFilter : PlayFabBaseModel { /// /// User login provider. /// public SegmentLoginIdentityProvider? LoginProvider; } [Serializable] public class UserPrivateAccountInfo : PlayFabBaseModel { /// /// user email address /// public string Email; } [Serializable] public class UserPsnInfo : PlayFabBaseModel { /// /// PlayStation :tm: Network account ID /// public string PsnAccountId; /// /// PlayStation :tm: Network online ID /// public string PsnOnlineId; } [Serializable] public class UserServerCustomIdInfo : PlayFabBaseModel { /// /// Custom ID /// public string CustomId; } [Serializable] public class UserSteamInfo : PlayFabBaseModel { /// /// what stage of game ownership the user is listed as being in, from Steam /// public TitleActivationStatus? SteamActivationStatus; /// /// the country in which the player resides, from Steam data /// public string SteamCountry; /// /// currency type set in the user Steam account /// public Currency? SteamCurrency; /// /// Steam identifier /// public string SteamId; /// /// Steam display name /// public string SteamName; } [Serializable] public class UserTitleInfo : PlayFabBaseModel { /// /// URL to the player's avatar. /// public string AvatarUrl; /// /// timestamp indicating when the user was first associated with this game (this can differ significantly from when the user /// first registered with PlayFab) /// public DateTime Created; /// /// name of the user, as it is displayed in-game /// public string DisplayName; /// /// timestamp indicating when the user first signed into this game (this can differ from the Created timestamp, as other /// events, such as issuing a beta key to the user, can associate the title to the user) /// public DateTime? FirstLogin; /// /// boolean indicating whether or not the user is currently banned for a title /// public bool? isBanned; /// /// timestamp for the last user login for this title /// public DateTime? LastLogin; /// /// source by which the user first joined the game, if known /// public UserOrigination? Origination; /// /// Title player account entity for this user /// public EntityKey TitlePlayerAccount; } [Serializable] public class UserTwitchInfo : PlayFabBaseModel { /// /// Twitch ID /// public string TwitchId; /// /// Twitch Username /// public string TwitchUserName; } [Serializable] public class UserXboxInfo : PlayFabBaseModel { /// /// XBox user ID /// public string XboxUserId; /// /// XBox user sandbox /// public string XboxUserSandbox; } [Serializable] public class ValueToDateModel : PlayFabBaseModel { /// /// ISO 4217 code of the currency used in the purchases /// public string Currency; /// /// Total value of the purchases in a whole number of 1/100 monetary units. For example, 999 indicates nine dollars and /// ninety-nine cents when Currency is 'USD') /// public uint TotalValue; /// /// Total value of the purchases in a string representation of decimal monetary units. For example, '9.99' indicates nine /// dollars and ninety-nine cents when Currency is 'USD'. /// public string TotalValueAsDecimal; } [Serializable] public class ValueToDateSegmentFilter : PlayFabBaseModel { /// /// Value to date amount. /// public string Amount; /// /// Value to date comparison. /// public SegmentFilterComparison? Comparison; /// /// Currency using for filter. /// public SegmentCurrency? Currency; } [Serializable] public class VirtualCurrencyBalanceSegmentFilter : PlayFabBaseModel { /// /// Total amount. /// public int Amount; /// /// Amount comparison. /// public SegmentFilterComparison? Comparison; /// /// Currency code. /// public string CurrencyCode; } [Serializable] public class VirtualCurrencyData : PlayFabBaseModel { /// /// unique two-character identifier for this currency type (e.g.: "CC") /// public string CurrencyCode; /// /// friendly name to show in the developer portal, reports, etc. /// public string DisplayName; /// /// amount to automatically grant users upon first login to the title /// public int? InitialDeposit; /// /// maximum amount to which the currency will recharge (cannot exceed MaxAmount, but can be less) /// public int? RechargeMax; /// /// rate at which the currency automatically be added to over time, in units per day (24 hours) /// public int? RechargeRate; } [Serializable] public class VirtualCurrencyRechargeTime : PlayFabBaseModel { /// /// Maximum value to which the regenerating currency will automatically increment. Note that it can exceed this value /// through use of the AddUserVirtualCurrency API call. However, it will not regenerate automatically until it has fallen /// below this value. /// public int RechargeMax; /// /// Server timestamp in UTC indicating the next time the virtual currency will be incremented. /// public DateTime RechargeTime; /// /// Time remaining (in seconds) before the next recharge increment of the virtual currency. /// public int SecondsToRecharge; } } #endif