#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