#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