#if !DISABLE_PLAYFABENTITY_API
using System;
using System.Collections.Generic;
using PlayFab.SharedModels;
namespace PlayFab.EconomyModels
{
[Serializable]
public class AddInventoryItemsOperation : PlayFabBaseModel
{
///
/// The amount to add to the current item amount.
///
public int? Amount;
///
/// The duration to add to the current item expiration date.
///
public double? DurationInSeconds;
///
/// The inventory item the operation applies to.
///
public InventoryItemReference Item;
///
/// The values to apply to a stack newly created by this operation.
///
public InitialValues NewStackValues;
}
///
/// Given an entity type, entity identifier and container details, will add the specified inventory items.
///
[Serializable]
public class AddInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The amount to add for the current item.
///
public int? Amount;
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The duration to add to the current item expiration date.
///
public double? DurationInSeconds;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The inventory item the request applies to.
///
public InventoryItemReference Item;
///
/// The values to apply to a stack newly created by this request.
///
public InitialValues NewStackValues;
}
[Serializable]
public class AddInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of transactions that occurred as a result of the request.
///
public List TransactionIds;
}
[Serializable]
public class AlternateId : PlayFabBaseModel
{
///
/// Type of the alternate ID.
///
public string Type;
///
/// Value of the alternate ID.
///
public string Value;
}
[Serializable]
public class CatalogAlternateId : PlayFabBaseModel
{
///
/// Type of the alternate ID.
///
public string Type;
///
/// Value of the alternate ID.
///
public string Value;
}
[Serializable]
public class CatalogConfig : PlayFabBaseModel
{
///
/// A list of player entity keys that will have admin permissions. There is a maximum of 64 entities that can be added.
///
public List AdminEntities;
///
/// The set of configuration that only applies to catalog items.
///
public CatalogSpecificConfig Catalog;
///
/// A list of deep link formats. Up to 10 can be added.
///
public List DeepLinkFormats;
///
/// A list of display properties to index. Up to 5 mappings can be added per Display Property Type. More info on display
/// properties can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/content-types-tags-and-properties#displayproperties
///
public List DisplayPropertyIndexInfos;
///
/// The set of configuration that only applies to Files.
///
public FileConfig File;
///
/// The set of configuration that only applies to Images.
///
public ImageConfig Image;
///
/// Flag defining whether catalog is enabled.
///
public bool IsCatalogEnabled;
///
/// A list of Platforms that can be applied to catalog items. Each platform can have a maximum character length of 40 and up
/// to 128 platforms can be listed.
///
public List Platforms;
///
/// The set of configuration that only applies to Ratings and Reviews.
///
public ReviewConfig Review;
///
/// A set of player entity keys that are allowed to review content. There is a maximum of 128 entities that can be added.
///
public List ReviewerEntities;
///
/// The set of configuration that only applies to user generated contents.
///
public UserGeneratedContentSpecificConfig UserGeneratedContent;
}
[Serializable]
public class CatalogItem : PlayFabBaseModel
{
///
/// The alternate IDs associated with this item. An alternate ID can be set to 'FriendlyId' or any of the supported
/// marketplace names.
///
public List AlternateIds;
///
/// The set of content/files associated with this item. Up to 100 files can be added to an item.
///
public List Contents;
///
/// The client-defined type of the item.
///
public string ContentType;
///
/// The date and time when this item was created.
///
public DateTime? CreationDate;
///
/// The ID of the creator of this catalog item.
///
public EntityKey CreatorEntity;
///
/// The set of platform specific deep links for this item.
///
public List DeepLinks;
///
/// The Stack Id that will be used as default for this item in Inventory when an explicit one is not provided. This
/// DefaultStackId can be a static stack id or '{guid}', which will generate a unique stack id for the item. If null,
/// Inventory's default stack id will be used.
///
public string DefaultStackId;
///
/// A dictionary of localized descriptions. Key is language code and localized string is the value. The NEUTRAL locale is
/// required. Descriptions have a 10000 character limit per country code.
///
public Dictionary Description;
///
/// Game specific properties for display purposes. This is an arbitrary JSON blob. The Display Properties field has a 10000
/// byte limit per item.
///
public object DisplayProperties;
///
/// The user provided version of the item for display purposes. Maximum character length of 50.
///
public string DisplayVersion;
///
/// The date of when the item will cease to be available. If not provided then the product will be available indefinitely.
///
public DateTime? EndDate;
///
/// The current ETag value that can be used for optimistic concurrency in the If-None-Match header.
///
public string ETag;
///
/// The unique ID of the item.
///
public string Id;
///
/// The images associated with this item. Images can be thumbnails or screenshots. Up to 100 images can be added to an item.
/// Only .png, .jpg, .gif, and .bmp file types can be uploaded
///
public List Images;
///
/// Indicates if the item is hidden.
///
public bool? IsHidden;
///
/// The item references associated with this item. For example, the items in a Bundle/Store/Subscription. Every item can
/// have up to 50 item references.
///
public List ItemReferences;
///
/// A dictionary of localized keywords. Key is language code and localized list of keywords is the value. Keywords have a 50
/// character limit per keyword and up to 32 keywords can be added per country code.
///
public Dictionary Keywords;
///
/// The date and time this item was last updated.
///
public DateTime? LastModifiedDate;
///
/// The moderation state for this item.
///
public ModerationState Moderation;
///
/// The platforms supported by this item.
///
public List Platforms;
///
/// The prices the item can be purchased for.
///
public CatalogPriceOptions PriceOptions;
///
/// Rating summary for this item.
///
public Rating Rating;
///
/// The date of when the item will be available. If not provided then the product will appear immediately.
///
public DateTime? StartDate;
///
/// Optional details for stores items.
///
public StoreDetails StoreDetails;
///
/// The list of tags that are associated with this item. Up to 32 tags can be added to an item.
///
public List Tags;
///
/// A dictionary of localized titles. Key is language code and localized string is the value. The NEUTRAL locale is
/// required. Titles have a 512 character limit per country code.
///
public Dictionary Title;
///
/// The high-level type of the item. The following item types are supported: bundle, catalogItem, currency, store, ugc,
/// subscription.
///
public string Type;
}
[Serializable]
public class CatalogItemReference : PlayFabBaseModel
{
///
/// The amount of the catalog item.
///
public int? Amount;
///
/// The unique ID of the catalog item.
///
public string Id;
///
/// The prices the catalog item can be purchased for.
///
public CatalogPriceOptions PriceOptions;
}
[Serializable]
public class CatalogPrice : PlayFabBaseModel
{
///
/// The amounts of the catalog item price. Each price can have up to 15 item amounts.
///
public List Amounts;
///
/// The per-unit amount this price can be used to purchase.
///
public int? UnitAmount;
///
/// The per-unit duration this price can be used to purchase. The maximum duration is 100 years.
///
public double? UnitDurationInSeconds;
}
[Serializable]
public class CatalogPriceAmount : PlayFabBaseModel
{
///
/// The amount of the price.
///
public int Amount;
///
/// The Item Id of the price.
///
public string ItemId;
}
[Serializable]
public class CatalogPriceAmountOverride : PlayFabBaseModel
{
///
/// The exact value that should be utilized in the override.
///
public int? FixedValue;
///
/// The id of the item this override should utilize.
///
public string ItemId;
///
/// The multiplier that will be applied to the base Catalog value to determine what value should be utilized in the
/// override.
///
public double? Multiplier;
}
[Serializable]
public class CatalogPriceOptions : PlayFabBaseModel
{
///
/// Prices of the catalog item. An item can have up to 15 prices
///
public List Prices;
}
[Serializable]
public class CatalogPriceOptionsOverride : PlayFabBaseModel
{
///
/// The prices utilized in the override.
///
public List Prices;
}
[Serializable]
public class CatalogPriceOverride : PlayFabBaseModel
{
///
/// The currency amounts utilized in the override for a singular price.
///
public List Amounts;
}
[Serializable]
public class CatalogSpecificConfig : PlayFabBaseModel
{
///
/// The set of content types that will be used for validation. Each content type can have a maximum character length of 40
/// and up to 128 types can be listed.
///
public List ContentTypes;
///
/// The set of tags that will be used for validation. Each tag can have a maximum character length of 32 and up to 1024 tags
/// can be listed.
///
public List Tags;
}
[Serializable]
public class CategoryRatingConfig : PlayFabBaseModel
{
///
/// Name of the category.
///
public string Name;
}
public enum ConcernCategory
{
None,
OffensiveContent,
ChildExploitation,
MalwareOrVirus,
PrivacyConcerns,
MisleadingApp,
PoorPerformance,
ReviewResponse,
SpamAdvertising,
Profanity
}
[Serializable]
public class Content : PlayFabBaseModel
{
///
/// The content unique ID.
///
public string Id;
///
/// The maximum client version that this content is compatible with. Client Versions can be up to 3 segments separated by
/// periods(.) and each segment can have a maximum value of 65535.
///
public string MaxClientVersion;
///
/// The minimum client version that this content is compatible with. Client Versions can be up to 3 segments separated by
/// periods(.) and each segment can have a maximum value of 65535.
///
public string MinClientVersion;
///
/// The list of tags that are associated with this content. Tags must be defined in the Catalog Config before being used in
/// content.
///
public List Tags;
///
/// The client-defined type of the content. Content Types must be defined in the Catalog Config before being used.
///
public string Type;
///
/// The Azure CDN URL for retrieval of the catalog item binary content.
///
public string Url;
}
[Serializable]
public class ContentFeed : PlayFabBaseModel
{
}
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
}
///
/// The item will not be published to the public catalog until the PublishItem API is called for the item.
///
[Serializable]
public class CreateDraftItemRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Metadata describing the new catalog item to be created.
///
public CatalogItem Item;
///
/// Whether the item should be published immediately. This value is optional, defaults to false.
///
public bool Publish;
}
[Serializable]
public class CreateDraftItemResponse : PlayFabResultCommon
{
///
/// Updated metadata describing the catalog item just created.
///
public CatalogItem Item;
}
///
/// Upload URLs point to Azure Blobs; clients must follow the Microsoft Azure Storage Blob Service REST API pattern for
/// uploading content. The response contains upload URLs and IDs for each file. The IDs and URLs returned must be added to
/// the item metadata and committed using the CreateDraftItem or UpdateDraftItem Item APIs.
///
[Serializable]
public class CreateUploadUrlsRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Description of the files to be uploaded by the client.
///
public List Files;
}
[Serializable]
public class CreateUploadUrlsResponse : PlayFabResultCommon
{
///
/// List of URLs metadata for the files to be uploaded by the client.
///
public List UploadUrls;
}
[Serializable]
public class DeepLink : PlayFabBaseModel
{
///
/// Target platform for this deep link.
///
public string Platform;
///
/// The deep link for this platform.
///
public string Url;
}
[Serializable]
public class DeepLinkFormat : PlayFabBaseModel
{
///
/// The format of the deep link to return. The format should contain '{id}' to represent where the item ID should be placed.
///
public string Format;
///
/// The target platform for the deep link.
///
public string Platform;
}
[Serializable]
public class DeleteEntityItemReviewsRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
}
[Serializable]
public class DeleteEntityItemReviewsResponse : PlayFabResultCommon
{
}
///
/// Delete an Inventory Collection by the specified Id for an Entity
///
[Serializable]
public class DeleteInventoryCollectionRequest : PlayFabRequestCommon
{
///
/// The inventory collection id the request applies to.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity the request is about. Set to the caller by default.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
}
[Serializable]
public class DeleteInventoryCollectionResponse : PlayFabResultCommon
{
}
[Serializable]
public class DeleteInventoryItemsOperation : PlayFabBaseModel
{
///
/// The inventory item the operation applies to.
///
public InventoryItemReference Item;
}
///
/// Given an entity type, entity identifier and container details, will delete the entity's inventory items
///
[Serializable]
public class DeleteInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The inventory item the request applies to.
///
public InventoryItemReference Item;
}
[Serializable]
public class DeleteInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources.
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of transactions that occurred as a result of the request.
///
public List TransactionIds;
}
[Serializable]
public class DeleteItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class DeleteItemResponse : PlayFabResultCommon
{
}
[Serializable]
public class DisplayPropertyIndexInfo : PlayFabBaseModel
{
///
/// The property name in the 'DisplayProperties' property to be indexed.
///
public string Name;
///
/// The type of the property to be indexed.
///
public DisplayPropertyType? Type;
}
public enum DisplayPropertyType
{
None,
QueryDateTime,
QueryDouble,
QueryString,
SearchString
}
///
/// 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;
}
///
/// Execute a list of Inventory Operations for an Entity
///
[Serializable]
public class ExecuteInventoryOperationsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The operations to run transactionally. The operations will be executed in-order sequentially and will succeed or fail as
/// a batch. Up to 50 operations can be added.
///
public List Operations;
}
[Serializable]
public class ExecuteInventoryOperationsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of the transactions that occurred as a result of the request.
///
public List TransactionIds;
}
///
/// Transfer the specified list of inventory items of an entity's container Id to another entity's container Id.
///
[Serializable]
public class ExecuteTransferOperationsRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The inventory collection id the request is transferring from. (Default="default")
///
public string GivingCollectionId;
///
/// The entity the request is transferring from. Set to the caller by default.
///
public EntityKey GivingEntity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string GivingETag;
///
/// The idempotency id for the request.
///
public string IdempotencyId;
///
/// The transfer operations to run transactionally. The operations will be executed in-order sequentially and will succeed
/// or fail as a batch. Up to 50 operations can be added.
///
public List Operations;
///
/// The inventory collection id the request is transferring to. (Default="default")
///
public string ReceivingCollectionId;
///
/// The entity the request is transferring to. Set to the caller by default.
///
public EntityKey ReceivingEntity;
}
[Serializable]
public class ExecuteTransferOperationsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources (before transferring from). This value will be empty if
/// the operation has not completed yet. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string GivingETag;
///
/// The ids of transactions that occurred as a result of the request's giving action.
///
public List GivingTransactionIds;
///
/// The Idempotency ID for this request.
///
public string IdempotencyId;
///
/// The transfer operation status. Possible values are 'InProgress' or 'Completed'. If the operation has completed, the
/// response code will be 200. Otherwise, it will be 202.
///
public string OperationStatus;
///
/// The token that can be used to get the status of the transfer operation. This will only have a value if OperationStatus
/// is 'InProgress'.
///
public string OperationToken;
///
/// ETags are used for concurrency checking when updating resources (before transferring to). This value will be empty if
/// the operation has not completed yet.
///
public string ReceivingETag;
///
/// The ids of transactions that occurred as a result of the request's receiving action.
///
public List ReceivingTransactionIds;
}
[Serializable]
public class FileConfig : PlayFabBaseModel
{
///
/// The set of content types that will be used for validation. Each content type can have a maximum character length of 40
/// and up to 128 types can be listed.
///
public List ContentTypes;
///
/// The set of tags that will be used for validation. Each tag can have a maximum character length of 32 and up to 1024 tags
/// can be listed.
///
public List Tags;
}
[Serializable]
public class FilterOptions : PlayFabBaseModel
{
///
/// The OData filter utilized. Mutually exclusive with 'IncludeAllItems'. More info about Filter Complexity limits can be
/// found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/search#limits
///
public string Filter;
///
/// The flag that overrides the filter and allows for returning all catalog items. Mutually exclusive with 'Filter'.
///
public bool? IncludeAllItems;
}
[Serializable]
public class GetCatalogConfigRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
}
[Serializable]
public class GetCatalogConfigResponse : PlayFabResultCommon
{
///
/// The catalog configuration.
///
public CatalogConfig Config;
}
[Serializable]
public class GetDraftItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetDraftItemResponse : PlayFabResultCommon
{
///
/// Full metadata of the catalog item requested.
///
public CatalogItem Item;
}
[Serializable]
public class GetDraftItemsRequest : PlayFabRequestCommon
{
///
/// List of item alternate IDs.
///
public List AlternateIds;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// List of Item Ids.
///
public List Ids;
}
[Serializable]
public class GetDraftItemsResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// A set of items created by the entity.
///
public List Items;
}
[Serializable]
public class GetEntityDraftItemsRequest : PlayFabRequestCommon
{
///
/// An opaque token used to retrieve the next page of items created by the caller, if any are available. Should be null on
/// initial request.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. Default value is 10.
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// OData Filter to refine the items returned. CatalogItem properties 'type' can be used in the filter. For example: "type
/// eq 'ugc'"
///
public string Filter;
}
[Serializable]
public class GetEntityDraftItemsResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// A set of items created by the entity.
///
public List Items;
}
[Serializable]
public class GetEntityItemReviewRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetEntityItemReviewResponse : PlayFabResultCommon
{
///
/// The review the entity submitted for the requested item.
///
public Review Review;
}
///
/// Get a list of Inventory Collection Ids for the specified Entity
///
[Serializable]
public class GetInventoryCollectionIdsRequest : PlayFabRequestCommon
{
///
/// An opaque token used to retrieve the next page of collection ids, if any are available.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. The default value is 10
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity the request is about. Set to the caller by default.
///
public EntityKey Entity;
}
[Serializable]
public class GetInventoryCollectionIdsResponse : PlayFabResultCommon
{
///
/// The requested inventory collection ids.
///
public List CollectionIds;
///
/// An opaque token used to retrieve the next page of collection ids, if any are available.
///
public string ContinuationToken;
}
///
/// Given an entity type, entity identifier and container details, will get the entity's inventory items.
///
[Serializable]
public class GetInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// An opaque token used to retrieve the next page of items in the inventory, if any are available. Should be null on
/// initial request.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. Maximum page size is 50. The default value is 10
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// OData Filter to refine the items returned. InventoryItem properties 'type', 'id', and 'stackId' can be used in the
/// filter. For example: "type eq 'currency'"
///
public string Filter;
}
[Serializable]
public class GetInventoryItemsResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The requested inventory items.
///
public List Items;
}
///
/// Get the status of an Inventory Operation using an OperationToken.
///
[Serializable]
public class GetInventoryOperationStatusRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
}
[Serializable]
public class GetInventoryOperationStatusResponse : PlayFabResultCommon
{
///
/// The inventory operation status.
///
public string OperationStatus;
}
///
/// Given an item, return a set of bundles and stores containing the item.
///
[Serializable]
public class GetItemContainersRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// An opaque token used to retrieve the next page of items in the inventory, if any are available. Should be null on
/// initial request.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. Default value is 10.
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetItemContainersResponse : PlayFabResultCommon
{
///
/// List of Bundles and Stores containing the requested items.
///
public List Containers;
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
}
[Serializable]
public class GetItemModerationStateRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetItemModerationStateResponse : PlayFabResultCommon
{
///
/// The current moderation state for the requested item.
///
public ModerationState State;
}
[Serializable]
public class GetItemPublishStatusRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetItemPublishStatusResponse : PlayFabResultCommon
{
///
/// High level status of the published item.
///
public PublishResult? Result;
///
/// Descriptive message about the current status of the publish.
///
public string StatusMessage;
}
[Serializable]
public class GetItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
}
///
/// Get item result.
///
[Serializable]
public class GetItemResponse : PlayFabResultCommon
{
///
/// The item result.
///
public CatalogItem Item;
}
[Serializable]
public class GetItemReviewsRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. Default value is 10.
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The unique ID of the item.
///
public string Id;
///
/// An OData orderBy used to order the results of the query. Possible values are Helpfulness, Rating, and Submitted (For
/// example: "Submitted desc")
///
public string OrderBy;
}
[Serializable]
public class GetItemReviewsResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// The paginated set of results.
///
public List Reviews;
}
[Serializable]
public class GetItemReviewSummaryRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class GetItemReviewSummaryResponse : PlayFabResultCommon
{
///
/// The least favorable review for this item.
///
public Review LeastFavorableReview;
///
/// The most favorable review for this item.
///
public Review MostFavorableReview;
///
/// The summary of ratings associated with this item.
///
public Rating Rating;
///
/// The total number of reviews associated with this item.
///
public int ReviewsCount;
}
[Serializable]
public class GetItemsRequest : PlayFabRequestCommon
{
///
/// List of item alternate IDs.
///
public List AlternateIds;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// List of Item Ids.
///
public List Ids;
}
[Serializable]
public class GetItemsResponse : PlayFabResultCommon
{
///
/// Metadata of set of items.
///
public List Items;
}
///
/// Gets the access tokens for Microsoft Store authentication.
///
[Serializable]
public class GetMicrosoftStoreAccessTokensRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
}
[Serializable]
public class GetMicrosoftStoreAccessTokensResponse : PlayFabResultCommon
{
///
/// The collections access token for calling https://onestore.microsoft.com/b2b/keys/create/collections to obtain a
/// CollectionsIdKey for the user
///
public string CollectionsAccessToken;
///
/// The date the collections access token expires
///
public DateTime CollectionsAccessTokenExpirationDate;
}
///
/// Get transaction history for specified entity and collection.
///
[Serializable]
public class GetTransactionHistoryRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// An opaque token used to retrieve the next page of items, if any are available. Should be null on initial request.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. The default value is 10
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// An OData filter used to refine the TransactionHistory. Transaction properties 'timestamp', 'transactionid', 'apiname'
/// and 'operationtype' can be used in the filter. Properties 'transactionid', 'apiname', and 'operationtype' cannot be used
/// together in a single request. The 'timestamp' property can be combined with 'apiname' or 'operationtype' in a single
/// request. For example: "timestamp ge 2023-06-20T23:30Z" or "transactionid eq '10'" or "(timestamp ge 2023-06-20T23:30Z)
/// and (apiname eq 'AddInventoryItems')". By default, a 6 month timespan from the current date is used.
///
public string Filter;
///
/// An OData orderby to order TransactionHistory results. The only supported values are 'timestamp asc' or 'timestamp desc'.
/// Default orderby is 'timestamp asc'
///
public string OrderBy;
}
[Serializable]
public class GetTransactionHistoryResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available. Should be null on initial request.
///
public string ContinuationToken;
///
/// The requested inventory transactions.
///
public List Transactions;
}
[Serializable]
public class GooglePlayProductPurchase : PlayFabBaseModel
{
///
/// The Product ID (SKU) of the InApp product purchased from the Google Play store.
///
public string ProductId;
///
/// The token provided to the player's device when the product was purchased
///
public string Token;
}
public enum HelpfulnessVote
{
None,
UnHelpful,
Helpful
}
[Serializable]
public class Image : PlayFabBaseModel
{
///
/// The image unique ID.
///
public string Id;
///
/// The client-defined tag associated with this image. Tags must be defined in the Catalog Config before being used in
/// images
///
public string Tag;
///
/// Images can be defined as either a "thumbnail" or "screenshot". There can only be one "thumbnail" image per item.
///
public string Type;
///
/// The URL for retrieval of the image.
///
public string Url;
}
[Serializable]
public class ImageConfig : PlayFabBaseModel
{
///
/// The set of tags that will be used for validation. Each tag can have a maximum character length of 32 and up to 1024 tags
/// can be listed.
///
public List Tags;
}
[Serializable]
public class InitialValues : PlayFabBaseModel
{
///
/// Game specific properties for display purposes. The Display Properties field has a 1000 byte limit.
///
public object DisplayProperties;
}
[Serializable]
public class InventoryItem : PlayFabBaseModel
{
///
/// The amount of the item.
///
public int? Amount;
///
/// Game specific properties for display purposes. This is an arbitrary JSON blob. The Display Properties field has a 1000
/// byte limit.
///
public object DisplayProperties;
///
/// Only used for subscriptions. The date of when the item will expire in UTC.
///
public DateTime? ExpirationDate;
///
/// The id of the item. This should correspond to the item id in the catalog.
///
public string Id;
///
/// The stack id of the item.
///
public string StackId;
///
/// The type of the item. This should correspond to the item type in the catalog.
///
public string Type;
}
[Serializable]
public class InventoryItemReference : PlayFabBaseModel
{
///
/// The inventory item alternate id the request applies to.
///
public AlternateId AlternateId;
///
/// The inventory item id the request applies to.
///
public string Id;
///
/// The inventory stack id the request should redeem to. (Default="default")
///
public string StackId;
}
[Serializable]
public class InventoryOperation : PlayFabBaseModel
{
///
/// The add operation.
///
public AddInventoryItemsOperation Add;
///
/// The delete operation.
///
public DeleteInventoryItemsOperation Delete;
///
/// The purchase operation.
///
public PurchaseInventoryItemsOperation Purchase;
///
/// The subtract operation.
///
public SubtractInventoryItemsOperation Subtract;
///
/// The transfer operation.
///
public TransferInventoryItemsOperation Transfer;
///
/// The update operation.
///
public UpdateInventoryItemsOperation Update;
}
[Serializable]
public class KeywordSet : PlayFabBaseModel
{
///
/// A list of localized keywords.
///
public List Values;
}
[Serializable]
public class ModerationState : PlayFabBaseModel
{
///
/// The date and time this moderation state was last updated.
///
public DateTime? LastModifiedDate;
///
/// The current stated reason for the associated item being moderated.
///
public string Reason;
///
/// The current moderation status for the associated item.
///
public ModerationStatus? Status;
}
public enum ModerationStatus
{
Unknown,
AwaitingModeration,
Approved,
Rejected
}
[Serializable]
public class PayoutDetails : PlayFabBaseModel
{
}
[Serializable]
public class Permissions : PlayFabBaseModel
{
///
/// The list of ids of Segments that the a player can be in to purchase from the store. When a value is provided, the player
/// must be in at least one of the segments listed for the purchase to be allowed.
///
public List SegmentIds;
}
///
/// The call kicks off a workflow to publish the item to the public catalog. The Publish Status API should be used to
/// monitor the publish job.
///
[Serializable]
public class PublishDraftItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETag of the catalog item to published from the working catalog to the public catalog. Used for optimistic concurrency.
/// If the provided ETag does not match the ETag in the current working catalog, the request will be rejected. If not
/// provided, the current version of the document in the working catalog will be published.
///
public string ETag;
///
/// The unique ID of the item.
///
public string Id;
}
[Serializable]
public class PublishDraftItemResponse : PlayFabResultCommon
{
}
public enum PublishResult
{
Unknown,
Pending,
Succeeded,
Failed,
Canceled
}
[Serializable]
public class PurchaseInventoryItemsOperation : PlayFabBaseModel
{
///
/// The amount to purchase.
///
public int? Amount;
///
/// Indicates whether stacks reduced to an amount of 0 during the operation should be deleted from the inventory. (Default =
/// false)
///
public bool DeleteEmptyStacks;
///
/// The duration to purchase.
///
public double? DurationInSeconds;
///
/// The inventory item the operation applies to.
///
public InventoryItemReference Item;
///
/// The values to apply to a stack newly created by this operation.
///
public InitialValues NewStackValues;
///
/// The per-item price the item is expected to be purchased at. This must match a value configured in the Catalog or
/// specified Store.
///
public List PriceAmounts;
///
/// The id of the Store to purchase the item from.
///
public string StoreId;
}
///
/// Purchase a single item or bundle, paying the associated price.
///
[Serializable]
public class PurchaseInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The amount to purchase.
///
public int? Amount;
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Indicates whether stacks reduced to an amount of 0 during the request should be deleted from the inventory.
/// (Default=false)
///
public bool DeleteEmptyStacks;
///
/// The duration to purchase.
///
public double? DurationInSeconds;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The inventory item the request applies to.
///
public InventoryItemReference Item;
///
/// The values to apply to a stack newly created by this request.
///
public InitialValues NewStackValues;
///
/// The per-item price the item is expected to be purchased at. This must match a value configured in the Catalog or
/// specified Store.
///
public List PriceAmounts;
///
/// The id of the Store to purchase the item from.
///
public string StoreId;
}
[Serializable]
public class PurchaseInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of transactions that occurred as a result of the request.
///
public List TransactionIds;
}
[Serializable]
public class PurchaseOverride : PlayFabBaseModel
{
}
[Serializable]
public class PurchaseOverridesInfo : PlayFabBaseModel
{
}
[Serializable]
public class PurchasePriceAmount : PlayFabBaseModel
{
///
/// The amount of the inventory item to use in the purchase .
///
public int Amount;
///
/// The inventory item id to use in the purchase .
///
public string ItemId;
///
/// The inventory stack id the to use in the purchase. Set to "default" by default
///
public string StackId;
}
[Serializable]
public class Rating : PlayFabBaseModel
{
///
/// The average rating for this item.
///
public float? Average;
///
/// The total count of 1 star ratings for this item.
///
public int? Count1Star;
///
/// The total count of 2 star ratings for this item.
///
public int? Count2Star;
///
/// The total count of 3 star ratings for this item.
///
public int? Count3Star;
///
/// The total count of 4 star ratings for this item.
///
public int? Count4Star;
///
/// The total count of 5 star ratings for this item.
///
public int? Count5Star;
///
/// The total count of ratings for this item.
///
public int? TotalCount;
}
[Serializable]
public class RealMoneyPriceDetails : PlayFabBaseModel
{
}
///
/// Redeem items from the Apple App Store.
///
[Serializable]
public class RedeemAppleAppStoreInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The receipt provided by the Apple marketplace upon successful purchase.
///
public string Receipt;
}
[Serializable]
public class RedeemAppleAppStoreInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
///
/// Redeem items from the Google Play Store.
///
[Serializable]
public class RedeemGooglePlayInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The list of purchases to redeem
///
public List Purchases;
}
[Serializable]
public class RedeemGooglePlayInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
///
/// Redeem items from the Microsoft Store.
///
[Serializable]
public class RedeemMicrosoftStoreInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The OneStore Collections Id Key used for AAD authentication.
///
public string CollectionsIdKey;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// Xbox Token used for delegated business partner authentication. Token provided by the Xbox Live SDK method
/// GetTokenAndSignatureAsync("POST", "https://playfabapi.com/", "").
///
public string XboxToken;
}
[Serializable]
public class RedeemMicrosoftStoreInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
///
/// Redeem items from the Nintendo EShop.
///
[Serializable]
public class RedeemNintendoEShopInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The Nintendo provided token authorizing redemption
///
public string NintendoServiceAccountIdToken;
}
[Serializable]
public class RedeemNintendoEShopInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
///
/// Redeem items from the PlayStation Store.
///
[Serializable]
public class RedeemPlayStationStoreInventoryItemsRequest : PlayFabRequestCommon
{
///
/// Auth code returned by PlayStation :tm: Network OAuth system.
///
public string AuthorizationCode;
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// Redirect URI supplied to PlayStation :tm: Network when requesting an auth code.
///
public string RedirectUri;
///
/// Optional Service Label to pass into the request.
///
public string ServiceLabel;
}
[Serializable]
public class RedeemPlayStationStoreInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
///
/// Redeem inventory items from Steam.
///
[Serializable]
public class RedeemSteamInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default")
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
}
[Serializable]
public class RedeemSteamInventoryItemsResponse : PlayFabResultCommon
{
///
/// The list of failed redemptions from the external marketplace.
///
public List Failed;
///
/// The list of successful redemptions from the external marketplace.
///
public List Succeeded;
///
/// The Transaction IDs associated with the inventory modifications
///
public List TransactionIds;
}
[Serializable]
public class RedemptionFailure : PlayFabBaseModel
{
///
/// The marketplace failure code.
///
public string FailureCode;
///
/// The marketplace error details explaining why the offer failed to redeem.
///
public string FailureDetails;
///
/// The Marketplace Alternate ID being redeemed.
///
public string MarketplaceAlternateId;
///
/// The transaction id in the external marketplace.
///
public string MarketplaceTransactionId;
}
[Serializable]
public class RedemptionSuccess : PlayFabBaseModel
{
///
/// The Marketplace Alternate ID being redeemed.
///
public string MarketplaceAlternateId;
///
/// The transaction id in the external marketplace.
///
public string MarketplaceTransactionId;
///
/// The timestamp for when the redeem was completed.
///
public DateTime SuccessTimestamp;
}
[Serializable]
public class ReportItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// Category of concern for this report.
///
public ConcernCategory? ConcernCategory;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
///
/// The string reason for this report.
///
public string Reason;
}
[Serializable]
public class ReportItemResponse : PlayFabResultCommon
{
}
///
/// Submit a report for an inappropriate review, allowing the submitting user to specify their concern.
///
[Serializable]
public class ReportItemReviewRequest : PlayFabRequestCommon
{
///
/// An alternate ID of the item associated with the review.
///
public CatalogAlternateId AlternateId;
///
/// The reason this review is being reported.
///
public ConcernCategory? ConcernCategory;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The string ID of the item associated with the review.
///
public string ItemId;
///
/// The string reason for this report.
///
public string Reason;
///
/// The ID of the review to submit a report for.
///
public string ReviewId;
}
[Serializable]
public class ReportItemReviewResponse : PlayFabResultCommon
{
}
[Serializable]
public class Review : PlayFabBaseModel
{
///
/// The star rating associated with each selected category in this review.
///
public Dictionary CategoryRatings;
///
/// The number of negative helpfulness votes for this review.
///
public int HelpfulNegative;
///
/// The number of positive helpfulness votes for this review.
///
public int HelpfulPositive;
///
/// Indicates whether the review author has the item installed.
///
public bool IsInstalled;
///
/// The ID of the item being reviewed.
///
public string ItemId;
///
/// The version of the item being reviewed.
///
public string ItemVersion;
///
/// The locale for which this review was submitted in.
///
public string Locale;
///
/// Star rating associated with this review.
///
public int Rating;
///
/// The ID of the author of the review.
///
public EntityKey ReviewerEntity;
///
/// Deprecated. Use ReviewerEntity instead. This property will be removed in a future release.
///
public string ReviewerId;
///
/// The ID of the review.
///
public string ReviewId;
///
/// The full text of this review.
///
public string ReviewText;
///
/// The date and time this review was last submitted.
///
public DateTime Submitted;
///
/// The title of this review.
///
public string Title;
}
[Serializable]
public class ReviewConfig : PlayFabBaseModel
{
///
/// A set of categories that can be applied toward ratings and reviews.
///
public List CategoryRatings;
}
[Serializable]
public class ReviewItemRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The unique ID of the item.
///
public string Id;
///
/// The review to submit.
///
public Review Review;
}
[Serializable]
public class ReviewItemResponse : PlayFabResultCommon
{
}
[Serializable]
public class ReviewTakedown : PlayFabBaseModel
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The ID of the item associated with the review to take down.
///
public string ItemId;
///
/// The ID of the review to take down.
///
public string ReviewId;
}
[Serializable]
public class ScanResult : PlayFabBaseModel
{
///
/// The URL of the item which failed the scan.
///
public string Url;
}
[Serializable]
public class SearchItemsRequest : PlayFabRequestCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// Number of items to retrieve. This value is optional. Maximum page size is 50. Default value is 10.
///
public int Count;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// An OData filter used to refine the search query (For example: "type eq 'ugc'"). More info about Filter Complexity limits
/// can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/search#limits
///
public string Filter;
///
/// The locale to be returned in the result.
///
public string Language;
///
/// An OData orderBy used to order the results of the search query. For example: "rating/average asc"
///
public string OrderBy;
///
/// The text to search for.
///
public string Search;
///
/// An OData select query option used to augment the search results. If not defined, the default search result metadata will
/// be returned.
///
public string Select;
///
/// The store to restrict the search request to.
///
public StoreReference Store;
}
[Serializable]
public class SearchItemsResponse : PlayFabResultCommon
{
///
/// An opaque token used to retrieve the next page of items, if any are available.
///
public string ContinuationToken;
///
/// The paginated set of results for the search query.
///
public List Items;
}
[Serializable]
public class SetItemModerationStateRequest : PlayFabRequestCommon
{
///
/// An alternate ID associated with this item.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The unique ID of the item.
///
public string Id;
///
/// The reason for the moderation state change for the associated item.
///
public string Reason;
///
/// The status to set for the associated item.
///
public ModerationStatus? Status;
}
[Serializable]
public class SetItemModerationStateResponse : PlayFabResultCommon
{
}
[Serializable]
public class StoreDetails : PlayFabBaseModel
{
///
/// The options for the filter in filter-based stores. These options are mutually exclusive with item references.
///
public FilterOptions FilterOptions;
///
/// The permissions that control which players can purchase from the store.
///
public Permissions Permissions;
///
/// The global prices utilized in the store. These options are mutually exclusive with price options in item references.
///
public CatalogPriceOptionsOverride PriceOptionsOverride;
}
[Serializable]
public class StoreReference : PlayFabBaseModel
{
///
/// An alternate ID of the store.
///
public CatalogAlternateId AlternateId;
///
/// The unique ID of the store.
///
public string Id;
}
[Serializable]
public class SubmitItemReviewVoteRequest : PlayFabRequestCommon
{
///
/// An alternate ID of the item associated with the review.
///
public CatalogAlternateId AlternateId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// The string ID of the item associated with the review.
///
public string ItemId;
///
/// The ID of the review to submit a helpfulness vote for.
///
public string ReviewId;
///
/// The helpfulness vote of the review.
///
public HelpfulnessVote? Vote;
}
[Serializable]
public class SubmitItemReviewVoteResponse : PlayFabResultCommon
{
}
[Serializable]
public class SubscriptionDetails : PlayFabBaseModel
{
///
/// The length of time that the subscription will last in seconds.
///
public double DurationInSeconds;
}
[Serializable]
public class SubtractInventoryItemsOperation : PlayFabBaseModel
{
///
/// The amount to subtract from the current item amount.
///
public int? Amount;
///
/// Indicates whether stacks reduced to an amount of 0 during the request should be deleted from the inventory. (Default =
/// false).
///
public bool DeleteEmptyStacks;
///
/// The duration to subtract from the current item expiration date.
///
public double? DurationInSeconds;
///
/// The inventory item the operation applies to.
///
public InventoryItemReference Item;
}
///
/// Given an entity type, entity identifier and container details, will subtract the specified inventory items.
///
[Serializable]
public class SubtractInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The amount to subtract for the current item.
///
public int? Amount;
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Indicates whether stacks reduced to an amount of 0 during the request should be deleted from the inventory.
/// (Default=false)
///
public bool DeleteEmptyStacks;
///
/// The duration to subtract from the current item expiration date.
///
public double? DurationInSeconds;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The inventory item the request applies to.
///
public InventoryItemReference Item;
}
[Serializable]
public class SubtractInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of transactions that occurred as a result of the request.
///
public List TransactionIds;
}
///
/// Submit a request to takedown one or more reviews, removing them from public view. Authors will still be able to see
/// their reviews after being taken down.
///
[Serializable]
public class TakedownItemReviewsRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The set of reviews to take down.
///
public List Reviews;
}
[Serializable]
public class TakedownItemReviewsResponse : PlayFabResultCommon
{
}
[Serializable]
public class Transaction : PlayFabBaseModel
{
///
/// The API call that caused this transaction.
///
public string ApiName;
///
/// The type of item that the the operation occurred on.
///
public string ItemType;
///
/// The operations that occurred.
///
public List Operations;
///
/// The type of operation that was run.
///
public string OperationType;
///
/// Additional details about the transaction. Null if it was not a purchase operation.
///
public TransactionPurchaseDetails PurchaseDetails;
///
/// Additional details about the transaction. Null if it was not a redeem operation.
///
public TransactionRedeemDetails RedeemDetails;
///
/// The time this transaction occurred in UTC.
///
public DateTime Timestamp;
///
/// The id of the transaction. This should be treated like an opaque token.
///
public string TransactionId;
///
/// Additional details about the transaction. Null if it was not a transfer operation.
///
public TransactionTransferDetails TransferDetails;
}
[Serializable]
public class TransactionOperation : PlayFabBaseModel
{
///
/// The amount of items in this transaction.
///
public int? Amount;
///
/// The duration modified in this transaction.
///
public double? DurationInSeconds;
///
/// The friendly id of the items in this transaction.
///
public string ItemFriendlyId;
///
/// The item id of the items in this transaction.
///
public string ItemId;
///
/// The type of item that the operation occurred on.
///
public string ItemType;
///
/// The stack id of the items in this transaction.
///
public string StackId;
///
/// The type of the operation that occurred.
///
public string Type;
}
[Serializable]
public class TransactionPurchaseDetails : PlayFabBaseModel
{
///
/// The friendly id of the Store the item was purchased from or null.
///
public string StoreFriendlyId;
///
/// The id of the Store the item was purchased from or null.
///
public string StoreId;
}
[Serializable]
public class TransactionRedeemDetails : PlayFabBaseModel
{
///
/// The marketplace that the offer is being redeemed from.
///
public string Marketplace;
///
/// The transaction Id returned from the marketplace.
///
public string MarketplaceTransactionId;
///
/// The offer Id of the item being redeemed.
///
public string OfferId;
}
[Serializable]
public class TransactionTransferDetails : PlayFabBaseModel
{
///
/// The collection id the items were transferred from or null if it was the current collection.
///
public string GivingCollectionId;
///
/// The entity the items were transferred from or null if it was the current entity.
///
public EntityKey GivingEntity;
///
/// The collection id the items were transferred to or null if it was the current collection.
///
public string ReceivingCollectionId;
///
/// The entity the items were transferred to or null if it was the current entity.
///
public EntityKey ReceivingEntity;
///
/// The id of the transfer that occurred.
///
public string TransferId;
}
[Serializable]
public class TransferInventoryItemsOperation : PlayFabBaseModel
{
///
/// The amount to transfer.
///
public int? Amount;
///
/// Indicates whether stacks reduced to an amount of 0 during the operation should be deleted from the inventory. (Default =
/// false)
///
public bool DeleteEmptyStacks;
///
/// The inventory item the operation is transferring from.
///
public InventoryItemReference GivingItem;
///
/// The values to apply to a stack newly created by this operation.
///
public InitialValues NewStackValues;
///
/// The inventory item the operation is transferring to.
///
public InventoryItemReference ReceivingItem;
}
///
/// Transfer the specified inventory items of an entity's container Id to another entity's container Id.
///
[Serializable]
public class TransferInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The amount to transfer .
///
public int? Amount;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Indicates whether stacks reduced to an amount of 0 during the request should be deleted from the inventory. (Default =
/// false)
///
public bool DeleteEmptyStacks;
///
/// The inventory collection id the request is transferring from. (Default="default")
///
public string GivingCollectionId;
///
/// The entity the request is transferring from. Set to the caller by default.
///
public EntityKey GivingEntity;
///
/// ETags are used for concurrency checking when updating resources (before transferring from). More information about using
/// ETags can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string GivingETag;
///
/// The inventory item the request is transferring from.
///
public InventoryItemReference GivingItem;
///
/// The idempotency id for the request.
///
public string IdempotencyId;
///
/// The values to apply to a stack newly created by this request.
///
public InitialValues NewStackValues;
///
/// The inventory collection id the request is transferring to. (Default="default")
///
public string ReceivingCollectionId;
///
/// The entity the request is transferring to. Set to the caller by default.
///
public EntityKey ReceivingEntity;
///
/// The inventory item the request is transferring to.
///
public InventoryItemReference ReceivingItem;
}
[Serializable]
public class TransferInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources (after transferring from). More information about using
/// ETags can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string GivingETag;
///
/// The ids of transactions that occurred as a result of the request's giving action.
///
public List GivingTransactionIds;
///
/// The idempotency id for the request.
///
public string IdempotencyId;
///
/// The transfer operation status. Possible values are 'InProgress' or 'Completed'. If the operation has completed, the
/// response code will be 200. Otherwise, it will be 202.
///
public string OperationStatus;
///
/// The token that can be used to get the status of the transfer operation. This will only have a value if OperationStatus
/// is 'InProgress'.
///
public string OperationToken;
///
/// The ids of transactions that occurred as a result of the request's receiving action.
///
public List ReceivingTransactionIds;
}
[Serializable]
public class UpdateCatalogConfigRequest : PlayFabRequestCommon
{
///
/// The updated catalog configuration.
///
public CatalogConfig Config;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
}
[Serializable]
public class UpdateCatalogConfigResponse : PlayFabResultCommon
{
}
[Serializable]
public class UpdateDraftItemRequest : PlayFabRequestCommon
{
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// Updated metadata describing the catalog item to be updated.
///
public CatalogItem Item;
///
/// Whether the item should be published immediately. This value is optional, defaults to false.
///
public bool Publish;
}
[Serializable]
public class UpdateDraftItemResponse : PlayFabResultCommon
{
///
/// Updated metadata describing the catalog item just updated.
///
public CatalogItem Item;
}
[Serializable]
public class UpdateInventoryItemsOperation : PlayFabBaseModel
{
///
/// The inventory item to update with the specified values.
///
public InventoryItem Item;
}
///
/// Given an entity type, entity identifier and container details, will update the entity's inventory items
///
[Serializable]
public class UpdateInventoryItemsRequest : PlayFabRequestCommon
{
///
/// The id of the entity's collection to perform this action on. (Default="default"). The number of inventory collections is
/// unlimited.
///
public string CollectionId;
///
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
///
public Dictionary CustomTags;
///
/// The entity to perform this action on.
///
public EntityKey Entity;
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The Idempotency ID for this request. Idempotency IDs can be used to prevent operation replay in the medium term but will
/// be garbage collected eventually.
///
public string IdempotencyId;
///
/// The inventory item to update with the specified values.
///
public InventoryItem Item;
}
[Serializable]
public class UpdateInventoryItemsResponse : PlayFabResultCommon
{
///
/// ETags are used for concurrency checking when updating resources. More information about using ETags can be found here:
/// https://learn.microsoft.com/en-us/gaming/playfab/features/economy-v2/catalog/etags
///
public string ETag;
///
/// The idempotency id used in the request.
///
public string IdempotencyId;
///
/// The ids of transactions that occurred as a result of the request.
///
public List TransactionIds;
}
[Serializable]
public class UploadInfo : PlayFabBaseModel
{
///
/// Name of the file to be uploaded.
///
public string FileName;
}
[Serializable]
public class UploadUrlMetadata : PlayFabBaseModel
{
///
/// Name of the file for which this upload URL was requested.
///
public string FileName;
///
/// Unique ID for the binary content to be uploaded to the target URL.
///
public string Id;
///
/// URL for the binary content to be uploaded to.
///
public string Url;
}
[Serializable]
public class UserGeneratedContentSpecificConfig : PlayFabBaseModel
{
///
/// The set of content types that will be used for validation.
///
public List ContentTypes;
///
/// The set of tags that will be used for validation.
///
public List Tags;
}
}
#endif