#if ENABLE_PLAYFABSERVER_API using System; using System.Collections.Generic; using PlayFab.SharedModels; namespace PlayFab.MatchmakerModels { /// /// This API allows the external match-making service to confirm that the user has a valid Session Ticket for the title, in /// order to securely enable match-making. The client passes the user's Session Ticket to the external match-making service, /// which then passes the Session Ticket in as the AuthorizationTicket in this call. /// [Serializable] public class AuthUserRequest : PlayFabRequestCommon { /// /// Session Ticket provided by the client. /// public string AuthorizationTicket; } [Serializable] public class AuthUserResponse : PlayFabResultCommon { /// /// Boolean indicating if the user has been authorized to use the external match-making service. /// public bool Authorized; /// /// PlayFab unique identifier of the account that has been authorized. /// 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 PlayerJoinedRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique identifier of the Game Server Instance the user is joining. This must be a Game Server Instance started with the /// Matchmaker/StartGame API. /// public string LobbyId; /// /// PlayFab unique identifier for the player joining. /// public string PlayFabId; } [Serializable] public class PlayerJoinedResponse : PlayFabResultCommon { } [Serializable] public class PlayerLeftRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Unique identifier of the Game Server Instance the user is leaving. This must be a Game Server Instance started with the /// Matchmaker/StartGame API. /// public string LobbyId; /// /// PlayFab unique identifier for the player leaving. /// public string PlayFabId; } [Serializable] public class PlayerLeftResponse : PlayFabResultCommon { } [Serializable] public class UserInfoRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Minimum catalog version for which data is requested (filters the results to only contain inventory items which have a /// catalog version of this or higher). /// public int MinCatalogVersion; /// /// PlayFab unique identifier of the user whose information is being requested. /// public string PlayFabId; } [Serializable] public class UserInfoResponse : PlayFabResultCommon { /// /// Array of inventory items in the user's current inventory. /// public List Inventory; /// /// Boolean indicating whether the user is a developer. /// public bool IsDeveloper; /// /// PlayFab unique identifier of the user whose information was requested. /// public string PlayFabId; /// /// Steam unique identifier, if the user has an associated Steam account. /// public string SteamId; /// /// Title specific display name, if set. /// public string TitleDisplayName; /// /// PlayFab unique user name. /// public string Username; /// /// 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; } [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