From fcb2c454d2a7233cf805b0a6314ec1e923351f40 Mon Sep 17 00:00:00 2001 From: PlayFab Jenkins Bot Date: Mon, 18 May 2020 21:24:32 +0000 Subject: [PATCH] https://docs.microsoft.com/en-us/gaming/playfab/release-notes/#200518 --- PlayFabSdk/Scripts/PlayFab/PlayFab.js | 6 +- .../Scripts/PlayFab/PlayFabMultiplayer.js | 56 +++ .../Scripts/typings/PlayFab/PlayFabAdmin.d.ts | 3 + .../typings/PlayFab/PlayFabClient.d.ts | 6 +- .../PlayFab/PlayFabExperimentation.d.ts | 2 + .../typings/PlayFab/PlayFabMultiplayer.d.ts | 404 +++++++++++++++++- .../typings/PlayFab/PlayFabServer.d.ts | 3 + PlayFabSdk/package-lock.json | 2 +- PlayFabSdk/package.json | 2 +- 9 files changed, 468 insertions(+), 16 deletions(-) diff --git a/PlayFabSdk/Scripts/PlayFab/PlayFab.js b/PlayFabSdk/Scripts/PlayFab/PlayFab.js index 786fdfc1..38cb4ee8 100644 --- a/PlayFabSdk/Scripts/PlayFab/PlayFab.js +++ b/PlayFabSdk/Scripts/PlayFab/PlayFab.js @@ -3,8 +3,8 @@ var url = require("url"); var https = require("https"); -exports.sdk_version = "2.46.200422"; -exports.buildIdentifier = "jbuild_nodesdk__sdk-genericslave-3_0"; +exports.sdk_version = "2.47.200518"; +exports.buildIdentifier = "jbuild_nodesdk__sdk-genericslave-3_2"; var settings = (exports.settings = { productionUrl: ".playfabapi.com", @@ -27,7 +27,7 @@ var _internalSettings = (exports._internalSettings = { entityToken: null, sessionTicket: null, requestGetParams: { - sdk: "JavaScriptSDK-2.46.200422", + sdk: "JavaScriptSDK-2.47.200518", }, }); diff --git a/PlayFabSdk/Scripts/PlayFab/PlayFabMultiplayer.js b/PlayFabSdk/Scripts/PlayFab/PlayFabMultiplayer.js index cd52e0b8..f2ef90bc 100644 --- a/PlayFabSdk/Scripts/PlayFab/PlayFabMultiplayer.js +++ b/PlayFabSdk/Scripts/PlayFab/PlayFabMultiplayer.js @@ -340,6 +340,20 @@ exports.GetMatch = function (request, callback) { ); }; +exports.GetMatchmakingQueue = function (request, callback) { + PlayFab.MakeRequest( + PlayFab.GetServerUrl() + "/Match/GetMatchmakingQueue", + request, + "X-EntityToken", + PlayFab._internalSettings.entityToken, + function (error, result) { + if (callback != null) { + callback(error, result); + } + }, + ); +}; + exports.GetMatchmakingTicket = function (request, callback) { PlayFab.MakeRequest( PlayFab.GetServerUrl() + "/Match/GetMatchmakingTicket", @@ -578,6 +592,20 @@ exports.ListContainerImageTags = function (request, callback) { ); }; +exports.ListMatchmakingQueues = function (request, callback) { + PlayFab.MakeRequest( + PlayFab.GetServerUrl() + "/Match/ListMatchmakingQueues", + request, + "X-EntityToken", + PlayFab._internalSettings.entityToken, + function (error, result) { + if (callback != null) { + callback(error, result); + } + }, + ); +}; + exports.ListMatchmakingTicketsForPlayer = function (request, callback) { PlayFab.MakeRequest( PlayFab.GetServerUrl() + "/Match/ListMatchmakingTicketsForPlayer", @@ -679,6 +707,20 @@ exports.ListVirtualMachineSummaries = function (request, callback) { ); }; +exports.RemoveMatchmakingQueue = function (request, callback) { + PlayFab.MakeRequest( + PlayFab.GetServerUrl() + "/Match/RemoveMatchmakingQueue", + request, + "X-EntityToken", + PlayFab._internalSettings.entityToken, + function (error, result) { + if (callback != null) { + callback(error, result); + } + }, + ); +}; + exports.RequestMultiplayerServer = function (request, callback) { PlayFab.MakeRequest( PlayFab.GetServerUrl() + "/MultiplayerServer/RequestMultiplayerServer", @@ -707,6 +749,20 @@ exports.RolloverContainerRegistryCredentials = function (request, callback) { ); }; +exports.SetMatchmakingQueue = function (request, callback) { + PlayFab.MakeRequest( + PlayFab.GetServerUrl() + "/Match/SetMatchmakingQueue", + request, + "X-EntityToken", + PlayFab._internalSettings.entityToken, + function (error, result) { + if (callback != null) { + callback(error, result); + } + }, + ); +}; + exports.ShutdownMultiplayerServer = function (request, callback) { PlayFab.MakeRequest( PlayFab.GetServerUrl() + "/MultiplayerServer/ShutdownMultiplayerServer", diff --git a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabAdmin.d.ts b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabAdmin.d.ts index e93d16f4..4a3766f5 100644 --- a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabAdmin.d.ts +++ b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabAdmin.d.ts @@ -2199,6 +2199,8 @@ declare module PlayFabAdminModels { | "XboxServiceTooManyRequests" | "NintendoSwitchNotEnabledForTitle" | "RequestMultiplayerServersThrottledFromRateLimiter" + | "TitleDataInstanceNotFound" + | "DuplicateTitleDataOverrideInstanceName" | "MatchmakingEntityInvalid" | "MatchmakingPlayerAttributesInvalid" | "MatchmakingQueueNotFound" @@ -2279,6 +2281,7 @@ declare module PlayFabAdminModels { | "ExperimentationInvalidDuration" | "ExperimentationMaxExperimentsReached" | "ExperimentationExperimentSchedulingInProgress" + | "ExperimentationExistingCodelessScheduled" | "MaxActionDepthExceeded" | "TitleNotOnUpdatedPricingPlan" | "SnapshotNotFound"; diff --git a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabClient.d.ts b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabClient.d.ts index 6d49345c..8fe70452 100644 --- a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabClient.d.ts +++ b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabClient.d.ts @@ -4371,7 +4371,11 @@ declare module PlayFabClientModels { export interface UnlinkSteamAccountResult extends PlayFabModule.IPlayFabResultCommon {} - export interface UnlinkTwitchAccountRequest extends PlayFabModule.IPlayFabRequestCommon {} + export interface UnlinkTwitchAccountRequest extends PlayFabModule.IPlayFabRequestCommon { + // Valid token issued by Twitch. Used to specify which twitch account to unlink from the profile. By default it uses the + // one that is present on the profile. + AccessToken?: string; + } export interface UnlinkTwitchAccountResult extends PlayFabModule.IPlayFabResultCommon {} diff --git a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabExperimentation.d.ts b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabExperimentation.d.ts index 66811380..76665f86 100644 --- a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabExperimentation.d.ts +++ b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabExperimentation.d.ts @@ -274,6 +274,8 @@ declare module PlayFabExperimentationModels { IsControl: boolean; // Name of the variant. Name: string; + // Id of the TitleDataOverrideGroup to use with this variant. + TitleDataOverrideId?: string; // Percentage of target audience traffic that will see this variant. TrafficPercentage: number; // Variables returned by this variant. diff --git a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabMultiplayer.d.ts b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabMultiplayer.d.ts index fba68ec9..43f15b2e 100644 --- a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabMultiplayer.d.ts +++ b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabMultiplayer.d.ts @@ -148,6 +148,12 @@ declare module PlayFabMultiplayerModule { request: PlayFabMultiplayerModels.GetMatchRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; + // SDK support is limited to C# and Java for this API. Get a matchmaking queue configuration. + // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking-admin/getmatchmakingqueue + GetMatchmakingQueue( + request: PlayFabMultiplayerModels.GetMatchmakingQueueRequest | null, + callback: PlayFabModule.ApiCallback | null, + ): void; // Get a matchmaking ticket by ticket Id. // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking/getmatchmakingticket GetMatchmakingTicket( @@ -252,6 +258,12 @@ declare module PlayFabMultiplayerModule { request: PlayFabMultiplayerModels.ListContainerImageTagsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; + // SDK support is limited to C# and Java for this API. List all matchmaking queue configs. + // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking-admin/listmatchmakingqueues + ListMatchmakingQueues( + request: PlayFabMultiplayerModels.ListMatchmakingQueuesRequest | null, + callback: PlayFabModule.ApiCallback | null, + ): void; // List all matchmaking ticket Ids the user is a member of. // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking/listmatchmakingticketsforplayer ListMatchmakingTicketsForPlayer( @@ -294,6 +306,12 @@ declare module PlayFabMultiplayerModule { request: PlayFabMultiplayerModels.ListVirtualMachineSummariesRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; + // SDK support is limited to C# and Java for this API. Remove a matchmaking queue config. + // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking-admin/removematchmakingqueue + RemoveMatchmakingQueue( + request: PlayFabMultiplayerModels.RemoveMatchmakingQueueRequest | null, + callback: PlayFabModule.ApiCallback | null, + ): void; // Request a multiplayer server session. Accepts tokens for title and if game client access is enabled, allows game client // to request a server with player entity token. // https://docs.microsoft.com/rest/api/playfab/multiplayer/multiplayerserver/requestmultiplayerserver @@ -307,6 +325,12 @@ declare module PlayFabMultiplayerModule { request: PlayFabMultiplayerModels.RolloverContainerRegistryCredentialsRequest | null, callback: PlayFabModule.ApiCallback | null, ): void; + // SDK support is limited to C# and Java for this API. Create or update a matchmaking queue configuration. + // https://docs.microsoft.com/rest/api/playfab/multiplayer/matchmaking-admin/setmatchmakingqueue + SetMatchmakingQueue( + request: PlayFabMultiplayerModels.SetMatchmakingQueueRequest | null, + callback: PlayFabModule.ApiCallback | null, + ): void; // Shuts down a multiplayer server session. // https://docs.microsoft.com/rest/api/playfab/multiplayer/multiplayerserver/shutdownmultiplayerserver ShutdownMultiplayerServer( @@ -369,6 +393,16 @@ declare module PlayFabMultiplayerModels { Metadata?: { [key: string]: string | null }; } + type AttributeMergeFunction = "Min" + | "Max" + | "Average"; + + type AttributeNotSpecifiedBehavior = "UseDefault" + | "MatchAny"; + + type AttributeSource = "User" + | "PlayerEntity"; + type AzureRegion = "AustraliaEast" | "AustraliaSoutheast" | "BrazilSouth" @@ -394,15 +428,23 @@ declare module PlayFabMultiplayerModels { | "F" | "Fsv2"; - type AzureVmSize = "Standard_D1_v2" - | "Standard_D2_v2" - | "Standard_D3_v2" - | "Standard_D4_v2" - | "Standard_D5_v2" + type AzureVmSize = "Standard_A1" + | "Standard_A2" + | "Standard_A3" + | "Standard_A4" | "Standard_A1_v2" | "Standard_A2_v2" | "Standard_A4_v2" | "Standard_A8_v2" + | "Standard_D1_v2" + | "Standard_D2_v2" + | "Standard_D3_v2" + | "Standard_D4_v2" + | "Standard_D5_v2" + | "Standard_D2_v3" + | "Standard_D4_v3" + | "Standard_D8_v3" + | "Standard_D16_v3" | "Standard_F1" | "Standard_F2" | "Standard_F4" @@ -411,11 +453,7 @@ declare module PlayFabMultiplayerModels { | "Standard_F2s_v2" | "Standard_F4s_v2" | "Standard_F8s_v2" - | "Standard_F16s_v2" - | "Standard_A1" - | "Standard_A2" - | "Standard_A3" - | "Standard_A4"; + | "Standard_F16s_v2"; export interface BuildAliasDetailsResponse extends PlayFabModule.IPlayFabResultCommon { // The guid string alias Id of the alias to be created or updated. @@ -770,6 +808,41 @@ declare module PlayFabMultiplayerModels { Total: number; } + export interface CustomDifferenceRuleExpansion { + // Manually specify the values to use for each expansion interval (this overrides Difference, Delta, and MaxDifference). + DifferenceOverrides: OverrideDouble[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface CustomRegionSelectionRuleExpansion { + // Manually specify the maximum latency to use for each expansion interval. + MaxLatencyOverrides: OverrideUnsignedInt[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface CustomSetIntersectionRuleExpansion { + // Manually specify the values to use for each expansion interval. + MinIntersectionSizeOverrides: OverrideUnsignedInt[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface CustomTeamDifferenceRuleExpansion { + // Manually specify the team difference value to use for each expansion interval. + DifferenceOverrides: OverrideDouble[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface CustomTeamSizeBalanceRuleExpansion { + // Manually specify the team size difference to use for each expansion interval. + DifferenceOverrides: OverrideUnsignedInt[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + export interface DeleteAssetRequest extends PlayFabModule.IPlayFabRequestCommon { // The filename of the asset to delete. FileName: string; @@ -813,6 +886,33 @@ declare module PlayFabMultiplayerModels { VmId: string; } + export interface DifferenceRule { + // Description of the attribute used by this rule to match tickets. + Attribute: QueueRuleAttribute; + // Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity + // profile. + AttributeNotSpecifiedBehavior: string; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. When this + // is set, Difference is ignored. + CustomExpansion?: CustomDifferenceRuleExpansion; + // The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that + // AttributeNotSpecifiedBehavior is false). Optional. + DefaultAttributeValue?: number; + // The allowed difference between any two tickets at the start of matchmaking. + Difference: number; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. + LinearExpansion?: LinearDifferenceRuleExpansion; + // How values are treated when there are multiple players in a single ticket. + MergeFunction: string; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + // The relative weight of this rule compared to others. + Weight: number; + } + export interface DynamicStandbySettings { // List of auto standing by trigger values and corresponding standing by multiplier. Defaults to 1.5X at 50%, 3X at 25%, // and 4X at 5% @@ -941,6 +1041,16 @@ declare module PlayFabMultiplayerModels { Username?: string; } + export interface GetMatchmakingQueueRequest extends PlayFabModule.IPlayFabRequestCommon { + // The Id of the matchmaking queue to retrieve. + QueueName?: string; + } + + export interface GetMatchmakingQueueResult extends PlayFabModule.IPlayFabResultCommon { + // The matchmaking queue config. + MatchmakingQueue?: MatchmakingQueueConfig; + } + export interface GetMatchmakingTicketRequest extends PlayFabModule.IPlayFabRequestCommon { // Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON // object. @@ -1138,6 +1248,49 @@ declare module PlayFabMultiplayerModels { export interface JoinMatchmakingTicketResult extends PlayFabModule.IPlayFabResultCommon {} + export interface LinearDifferenceRuleExpansion { + // This value gets added to Difference at every expansion interval. + Delta: number; + // Once the total difference reaches this value, expansion stops. Optional. + Limit?: number; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface LinearRegionSelectionRuleExpansion { + // This value gets added to MaxLatency at every expansion interval. + Delta: number; + // Once the max Latency reaches this value, expansion stops. + Limit: number; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface LinearSetIntersectionRuleExpansion { + // This value gets added to MinIntersectionSize at every expansion interval. + Delta: number; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface LinearTeamDifferenceRuleExpansion { + // This value gets added to Difference at every expansion interval. + Delta: number; + // Once the total difference reaches this value, expansion stops. Optional. + Limit?: number; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface LinearTeamSizeBalanceRuleExpansion { + // This value gets added to Difference at every expansion interval. + Delta: number; + // Once the total difference reaches this value, expansion stops. Optional. + Limit?: number; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + export interface ListAssetSummariesRequest extends PlayFabModule.IPlayFabRequestCommon { // The page size for the request. PageSize?: number; @@ -1217,6 +1370,13 @@ declare module PlayFabMultiplayerModels { Tags?: string[]; } + export interface ListMatchmakingQueuesRequest extends PlayFabModule.IPlayFabRequestCommon {} + + export interface ListMatchmakingQueuesResult extends PlayFabModule.IPlayFabResultCommon { + // The list of matchmaking queue configs for this title. + MatchMakingQueues?: MatchmakingQueueConfig[]; + } + export interface ListMatchmakingTicketsForPlayerRequest extends PlayFabModule.IPlayFabRequestCommon { // The entity key for which to find the ticket Ids. Entity?: EntityKey; @@ -1341,6 +1501,77 @@ declare module PlayFabMultiplayerModels { TeamId?: string; } + export interface MatchmakingQueueConfig { + // This is the buildId that will be used to allocate the multiplayer server for the match. + BuildId?: string; + // List of difference rules used to find an optimal match. + DifferenceRules?: DifferenceRule[]; + // List of match total rules used to find an optimal match. + MatchTotalRules?: MatchTotalRule[]; + // Maximum number of players in a match. + MaxMatchSize: number; + // Maximum number of players in a ticket. Optional. + MaxTicketSize?: number; + // Minimum number of players in a match. + MinMatchSize: number; + // Unique identifier for a Queue. Chosen by the developer. + Name: string; + // Region selection rule used to find an optimal match. + RegionSelectionRule?: RegionSelectionRule; + // Boolean flag to enable server allocation for the queue. + ServerAllocationEnabled: boolean; + // List of set intersection rules used to find an optimal match. + SetIntersectionRules?: SetIntersectionRule[]; + // Controls which statistics are visible to players. + StatisticsVisibilityToPlayers?: StatisticsVisibilityToPlayers; + // List of string equality rules used to find an optimal match. + StringEqualityRules?: StringEqualityRule[]; + // List of team difference rules used to find an optimal match. + TeamDifferenceRules?: TeamDifferenceRule[]; + // The team configuration for a match. This may be null if there are no teams. + Teams?: MatchmakingQueueTeam[]; + // Team size balance rule used to find an optimal match. + TeamSizeBalanceRule?: TeamSizeBalanceRule; + // Team ticket size similarity rule used to find an optimal match. + TeamTicketSizeSimilarityRule?: TeamTicketSizeSimilarityRule; + } + + export interface MatchmakingQueueTeam { + // The maximum number of players required for the team. + MaxTeamSize: number; + // The minimum number of players required for the team. + MinTeamSize: number; + // A name to identify the team. This is case insensitive. + Name: string; + } + + export interface MatchTotalRule { + // Description of the attribute used by this rule to match tickets. + Attribute: QueueRuleAttribute; + // Collection of fields relating to expanding this rule at set intervals. + Expansion?: MatchTotalRuleExpansion; + // The maximum total value for a group. Must be >= Min. + Max: number; + // The minimum total value for a group. Must be >=2. + Min: number; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + // The relative weight of this rule compared to others. + Weight: number; + } + + export interface MatchTotalRuleExpansion { + // Manually specify the values to use for each expansion interval. When this is set, Max is ignored. + MaxOverrides?: OverrideDouble[]; + // Manually specify the values to use for each expansion interval. When this is set, Min is ignored. + MinOverrides?: OverrideDouble[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + export interface MultiplayerEmptyRequest extends PlayFabModule.IPlayFabRequestCommon {} export interface MultiplayerServerSummary { @@ -1363,6 +1594,16 @@ declare module PlayFabMultiplayerModels { type OsPlatform = "Windows" | "Linux"; + export interface OverrideDouble { + // The custom expansion value. + Value: number; + } + + export interface OverrideUnsignedInt { + // The custom expansion value. + Value: number; + } + export interface Port { // The name for the port. Name: string; @@ -1382,6 +1623,39 @@ declare module PlayFabMultiplayerModels { ServerUrl?: string; } + export interface QueueRuleAttribute { + // Specifies which attribute in a ticket to use. + Path: string; + // Specifies which source the attribute comes from. + Source: string; + } + + export interface RegionSelectionRule { + // Controls how the Max Latency parameter expands over time. Only one expansion can be set per rule. When this is set, + // MaxLatency is ignored. + CustomExpansion?: CustomRegionSelectionRuleExpansion; + // Controls how the Max Latency parameter expands over time. Only one expansion can be set per rule. + LinearExpansion?: LinearRegionSelectionRuleExpansion; + // Specifies the maximum latency that is allowed between the client and the selected server. The value is in milliseconds. + MaxLatency: number; + // Friendly name chosen by developer. + Name: string; + // Specifies which attribute in a ticket to use. + Path: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + // The relative weight of this rule compared to others. + Weight: number; + } + + export interface RemoveMatchmakingQueueRequest extends PlayFabModule.IPlayFabRequestCommon { + // The Id of the matchmaking queue to remove. + QueueName?: string; + } + + export interface RemoveMatchmakingQueueResult extends PlayFabModule.IPlayFabResultCommon {} + export interface RequestMultiplayerServerRequest extends PlayFabModule.IPlayFabRequestCommon { // The identifiers of the build alias to use for the request. BuildAliasParams?: BuildAliasParams; @@ -1446,6 +1720,38 @@ declare module PlayFabMultiplayerModels { type ServerType = "Container" | "Process"; + export interface SetIntersectionRule { + // Description of the attribute used by this rule to match tickets. + Attribute: QueueRuleAttribute; + // Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity + // profile. + AttributeNotSpecifiedBehavior: string; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. When this + // is set, MinIntersectionSize is ignored. + CustomExpansion?: CustomSetIntersectionRuleExpansion; + // The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that + // AttributeNotSpecifiedBehavior is UseDefault). Values must be unique. + DefaultAttributeValue?: string[]; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. + LinearExpansion?: LinearSetIntersectionRuleExpansion; + // The minimum number of values that must match between sets. + MinIntersectionSize: number; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + // The relative weight of this rule compared to others. + Weight: number; + } + + export interface SetMatchmakingQueueRequest extends PlayFabModule.IPlayFabRequestCommon { + // The matchmaking queue config. + MatchmakingQueue?: MatchmakingQueueConfig; + } + + export interface SetMatchmakingQueueResult extends PlayFabModule.IPlayFabResultCommon {} + export interface ShutdownMultiplayerServerRequest extends PlayFabModule.IPlayFabRequestCommon { // The guid string build ID of the multiplayer server to delete. BuildId: string; @@ -1466,6 +1772,84 @@ declare module PlayFabMultiplayerModels { Percentile99: number; } + export interface StatisticsVisibilityToPlayers { + // Whether to allow players to view the current number of players in the matchmaking queue. + ShowNumberOfPlayersMatching: boolean; + // Whether to allow players to view statistics representing the time it takes for tickets to find a match. + ShowTimeToMatch: boolean; + } + + export interface StringEqualityRule { + // Description of the attribute used by this rule to match tickets. + Attribute: QueueRuleAttribute; + // Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity + // profile. + AttributeNotSpecifiedBehavior: string; + // The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that + // AttributeNotSpecifiedBehavior is false). + DefaultAttributeValue?: string; + // Collection of fields relating to expanding this rule at set intervals. For StringEqualityRules, this is limited to + // turning the rule off or on during different intervals. + Expansion?: StringEqualityRuleExpansion; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + // The relative weight of this rule compared to others. + Weight: number; + } + + export interface StringEqualityRuleExpansion { + // List of bools specifying whether the rule is applied during this expansion. + EnabledOverrides: boolean[]; + // How many seconds before this rule is expanded. + SecondsBetweenExpansions: number; + } + + export interface TeamDifferenceRule { + // Description of the attribute used by this rule to match teams. + Attribute: QueueRuleAttribute; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. When this + // is set, Difference is ignored. + CustomExpansion?: CustomTeamDifferenceRuleExpansion; + // The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that + // AttributeNotSpecifiedBehavior is false). + DefaultAttributeValue: number; + // The allowed difference between any two teams at the start of matchmaking. + Difference: number; + // Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. + LinearExpansion?: LinearTeamDifferenceRuleExpansion; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + } + + export interface TeamSizeBalanceRule { + // Controls how the Difference parameter expands over time. Only one expansion can be set per rule. When this is set, + // Difference is ignored. + CustomExpansion?: CustomTeamSizeBalanceRuleExpansion; + // The allowed difference in team size between any two teams. + Difference: number; + // Controls how the Difference parameter expands over time. Only one expansion can be set per rule. + LinearExpansion?: LinearTeamSizeBalanceRuleExpansion; + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + } + + export interface TeamTicketSizeSimilarityRule { + // Friendly name chosen by developer. + Name: string; + // How many seconds before this rule is no longer enforced (but tickets that comply with this rule will still be + // prioritized over those that don't). Leave blank if this rule is always enforced. + SecondsUntilOptional?: number; + } + type TitleMultiplayerServerEnabledStatus = "Initializing" | "Enabled" | "Disabled"; diff --git a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabServer.d.ts b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabServer.d.ts index 509fc2e9..dd1e28a7 100644 --- a/PlayFabSdk/Scripts/typings/PlayFab/PlayFabServer.d.ts +++ b/PlayFabSdk/Scripts/typings/PlayFab/PlayFabServer.d.ts @@ -2255,6 +2255,8 @@ declare module PlayFabServerModels { | "XboxServiceTooManyRequests" | "NintendoSwitchNotEnabledForTitle" | "RequestMultiplayerServersThrottledFromRateLimiter" + | "TitleDataInstanceNotFound" + | "DuplicateTitleDataOverrideInstanceName" | "MatchmakingEntityInvalid" | "MatchmakingPlayerAttributesInvalid" | "MatchmakingQueueNotFound" @@ -2335,6 +2337,7 @@ declare module PlayFabServerModels { | "ExperimentationInvalidDuration" | "ExperimentationMaxExperimentsReached" | "ExperimentationExperimentSchedulingInProgress" + | "ExperimentationExistingCodelessScheduled" | "MaxActionDepthExceeded" | "TitleNotOnUpdatedPricingPlan" | "SnapshotNotFound"; diff --git a/PlayFabSdk/package-lock.json b/PlayFabSdk/package-lock.json index 29e408b9..4394676d 100644 --- a/PlayFabSdk/package-lock.json +++ b/PlayFabSdk/package-lock.json @@ -1,6 +1,6 @@ { "name": "playfab-sdk", - "version": "2.46.200422", + "version": "2.47.200518", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/PlayFabSdk/package.json b/PlayFabSdk/package.json index da211098..24727adf 100644 --- a/PlayFabSdk/package.json +++ b/PlayFabSdk/package.json @@ -1,6 +1,6 @@ { "name": "playfab-sdk", - "version": "2.46.200422", + "version": "2.47.200518", "description": "Playfab SDK for node.js applications", "license": "Apache-2.0", "devDependencies": {