Skip to content

Commit

Permalink
https://docs.microsoft.com/en-us/gaming/playfab/release-notes/#240426
Browse files Browse the repository at this point in the history
  • Loading branch information
PlayFab SDK Team authored and PlayFab SDK Team committed Apr 30, 2024
2 parents c93df83 + a95beaf commit 16f207f
Show file tree
Hide file tree
Showing 25 changed files with 1,393 additions and 159 deletions.
84 changes: 60 additions & 24 deletions PlayFabSDK/source/PlayFabAdminModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -457,11 +457,6 @@ public class BanInfo
/// </summary>
public DateTime? Expires ;

/// <summary>
/// Whether or not the Microsoft family members are included in the ban.
/// </summary>
public bool? IncludeMicrosoftFamily ;

/// <summary>
/// The IP address on which the ban was applied. May affect multiple players.
/// </summary>
Expand All @@ -477,6 +472,11 @@ public class BanInfo
/// </summary>
public string Reason ;

/// <summary>
/// The family type of the suer that is included in the ban.
/// </summary>
public string UserFamilyType ;

}

public class BanPlayerContent
Expand Down Expand Up @@ -517,11 +517,6 @@ public class BanRequest : PlayFabRequestCommon
/// </summary>
public uint? DurationInHours ;

/// <summary>
/// Whether the Microsoft family members should be included in the ban. May affect multiple players.
/// </summary>
public bool? IncludeMicrosoftFamily ;

/// <summary>
/// IP address to be banned. May affect multiple players.
/// </summary>
Expand All @@ -537,6 +532,11 @@ public class BanRequest : PlayFabRequestCommon
/// </summary>
public string Reason ;

/// <summary>
/// The family type of the user that should be included in the ban if applicable. May affect multiple players.
/// </summary>
public UserFamilyType? UserFamilyType ;

}

/// <summary>
Expand Down Expand Up @@ -2792,6 +2792,12 @@ public enum GenericErrorCodes
NoLinkedStatisticToLeaderboard,
StatDefinitionAlreadyLinkedToLeaderboard,
LinkingStatsNotAllowedForEntityType,
LeaderboardCountLimitExceeded,
LeaderboardSizeLimitExceeded,
LeaderboardDefinitionModificationNotAllowedWhileLinked,
StatisticDefinitionModificationNotAllowedWhileLinked,
LeaderboardUpdateNotAllowedWhileLinked,
CloudScriptAzureFunctionsEventHubRequestError,
MatchmakingEntityInvalid,
MatchmakingPlayerAttributesInvalid,
MatchmakingQueueNotFound,
Expand Down Expand Up @@ -2992,29 +2998,52 @@ public enum GenericErrorCodes
CopilotDisabled,
CopilotInvalidRequest,
TrueSkillUnauthorized,
TrueSkillBadRequest,
TrueSkillInvalidTitleId,
TrueSkillInvalidScenarioId,
TrueSkillInvalidModelId,
TrueSkillInvalidModelName,
TrueSkillInvalidPlayerIds,
TrueSkillInvalidEntityKey,
TrueSkillInvalidConditionKey,
TrueSkillInvalidConditionValue,
TrueSkillInvalidConditionAffinityWeight,
TrueSkillInvalidEventName,
TrueSkillMatchResultCreated,
TrueSkillMatchResultAlreadySubmitted,
TrueSkillBadPlayerIdInMatchResult,
TrueSkillInvalidBotIdInMatchResult,
TrueSkillDuplicatePlayerInMatchResult,
TrueSkillInvalidRanksInMatchResult,
TrueSkillNoWinnerInMatchResult,
TrueSkillMissingRequiredCondition,
TrueSkillMissingRequiredEvent,
TrueSkillUnknownEventName,
TrueSkillUnknownConditionKey,
TrueSkillUnknownConditionValue,
TrueSkillUnknownModelId,
TrueSkillNoPlayerInMatchResultTeam,
TrueSkillPlayersInMatchResultExceedingLimit,
TrueSkillInvalidPreMatchPartyInMatchResult,
TrueSkillInvalidTimestampInMatchResult,
TrueSkillStartTimeMissingInMatchResult,
TrueSkillEndTimeMissingInMatchResult,
TrueSkillInvalidPlayerSecondsPlayedInMatchResult,
TrueSkillNoTeamInMatchResult,
TrueSkillNotEnoughTeamsInMatchResult,
TrueSkillInvalidRanksInMatchResult,
TrueSkillNoWinnerInMatchResult,
TrueSkillMissingRequiredCondition,
TrueSkillMissingRequiredEvent,
TrueSkillUnknownEventName,
TrueSkillInvalidEventCount,
TrueSkillUnknownConditionKey,
TrueSkillUnknownConditionValue,
TrueSkillScenarioConfigDoesNotExist,
TrueSkillUnknownModelId,
TrueSkillNoModelInScenario,
TrueSkillNotSupportedForTitle,
TrueSkillModelIsNotActive,
TrueSkillUnauthorizedToQueryOtherPlayerSkills,
TrueSkillInvalidMaxIterations,
TrueSkillEndTimeBeforeStartTime,
TrueSkillInvalidJobId,
TrueSkillInvalidMetadataId,
TrueSkillMissingBuildVerison,
TrueSkillJobAlreadyExists,
TrueSkillJobNotFound,
TrueSkillOperationCanceled,
StateShareUnauthorized,
StateShareStateNotFound,
StateShareLinkNotFound
Expand Down Expand Up @@ -7198,11 +7227,6 @@ public class UpdateBanRequest : PlayFabRequestCommon
/// </summary>
public DateTime? Expires ;

/// <summary>
/// The updated decision to ban the Microsoft family members to be updated. Null for no change.
/// </summary>
public bool? IncludeMicrosoftFamily ;

/// <summary>
/// The updated IP address for the ban. Null for no change.
/// </summary>
Expand All @@ -7218,6 +7242,11 @@ public class UpdateBanRequest : PlayFabRequestCommon
/// </summary>
public string Reason ;

/// <summary>
/// The updated family type of the user that should be included in the ban. Null for no change.
/// </summary>
public UserFamilyType? UserFamilyType ;

}

/// <summary>
Expand Down Expand Up @@ -7933,6 +7962,13 @@ public class UserFacebookInstantGamesIdInfo

}

public enum UserFamilyType
{
None,
Xbox,
Steam
}

public class UserGameCenterInfo
{
/// <summary>
Expand Down
54 changes: 54 additions & 0 deletions PlayFabSDK/source/PlayFabCloudScriptAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,33 @@ public static async Task<PlayFabResult<GetFunctionResult>> GetFunctionAsync(GetF
return new PlayFabResult<GetFunctionResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Lists all currently registered Event Hub triggered Azure Functions for a given title.
/// </summary>
public static async Task<PlayFabResult<ListEventHubFunctionsResult>> ListEventHubFunctionsAsync(ListFunctionsRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
{
await new PlayFabUtil.SynchronizationContextRemover();

var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
var requestSettings = PlayFabSettings.staticSettings;
if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");


var httpResult = await PlayFabHttp.DoPost("/CloudScript/ListEventHubFunctions", request, "X-EntityToken", requestContext.EntityToken, extraHeaders);
if (httpResult is PlayFabError)
{
var error = (PlayFabError)httpResult;
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
return new PlayFabResult<ListEventHubFunctionsResult> { Error = error, CustomData = customData };
}

var resultRawJson = (string)httpResult;
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<ListEventHubFunctionsResult>>(resultRawJson);
var result = resultData.data;

return new PlayFabResult<ListEventHubFunctionsResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Lists all currently registered Azure Functions for a given title.
/// </summary>
Expand Down Expand Up @@ -326,6 +353,33 @@ public static async Task<PlayFabResult<EmptyResult>> PostFunctionResultForSchedu
return new PlayFabResult<EmptyResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Registers an event hub triggered Azure Function with a title.
/// </summary>
public static async Task<PlayFabResult<EmptyResult>> RegisterEventHubFunctionAsync(RegisterEventHubFunctionRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
{
await new PlayFabUtil.SynchronizationContextRemover();

var requestContext = request?.AuthenticationContext ?? PlayFabSettings.staticPlayer;
var requestSettings = PlayFabSettings.staticSettings;
if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");


var httpResult = await PlayFabHttp.DoPost("/CloudScript/RegisterEventHubFunction", request, "X-EntityToken", requestContext.EntityToken, extraHeaders);
if (httpResult is PlayFabError)
{
var error = (PlayFabError)httpResult;
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
return new PlayFabResult<EmptyResult> { Error = error, CustomData = customData };
}

var resultRawJson = (string)httpResult;
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<EmptyResult>>(resultRawJson);
var result = resultData.data;

return new PlayFabResult<EmptyResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Registers an HTTP triggered Azure function with a title.
/// </summary>
Expand Down
52 changes: 52 additions & 0 deletions PlayFabSDK/source/PlayFabCloudScriptInstanceAPI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,32 @@ public async Task<PlayFabResult<GetFunctionResult>> GetFunctionAsync(GetFunction
return new PlayFabResult<GetFunctionResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Lists all currently registered Event Hub triggered Azure Functions for a given title.
/// </summary>
public async Task<PlayFabResult<ListEventHubFunctionsResult>> ListEventHubFunctionsAsync(ListFunctionsRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
{
await new PlayFabUtil.SynchronizationContextRemover();

var requestContext = request?.AuthenticationContext ?? authenticationContext;
var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");

var httpResult = await PlayFabHttp.DoPost("/CloudScript/ListEventHubFunctions", request, "X-EntityToken", requestContext.EntityToken, extraHeaders, requestSettings);
if (httpResult is PlayFabError)
{
var error = (PlayFabError)httpResult;
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
return new PlayFabResult<ListEventHubFunctionsResult> { Error = error, CustomData = customData };
}

var resultRawJson = (string)httpResult;
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<ListEventHubFunctionsResult>>(resultRawJson);
var result = resultData.data;

return new PlayFabResult<ListEventHubFunctionsResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Lists all currently registered Azure Functions for a given title.
/// </summary>
Expand Down Expand Up @@ -314,6 +340,32 @@ public async Task<PlayFabResult<EmptyResult>> PostFunctionResultForScheduledTask
return new PlayFabResult<EmptyResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Registers an event hub triggered Azure Function with a title.
/// </summary>
public async Task<PlayFabResult<EmptyResult>> RegisterEventHubFunctionAsync(RegisterEventHubFunctionRequest request, object customData = null, Dictionary<string, string> extraHeaders = null)
{
await new PlayFabUtil.SynchronizationContextRemover();

var requestContext = request?.AuthenticationContext ?? authenticationContext;
var requestSettings = apiSettings ?? PlayFabSettings.staticSettings;
if (requestContext.EntityToken == null) throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call Client Login or GetEntityToken before calling this method");

var httpResult = await PlayFabHttp.DoPost("/CloudScript/RegisterEventHubFunction", request, "X-EntityToken", requestContext.EntityToken, extraHeaders, requestSettings);
if (httpResult is PlayFabError)
{
var error = (PlayFabError)httpResult;
PlayFabSettings.GlobalErrorHandler?.Invoke(error);
return new PlayFabResult<EmptyResult> { Error = error, CustomData = customData };
}

var resultRawJson = (string)httpResult;
var resultData = PluginManager.GetPlugin<ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject<PlayFabJsonSuccess<EmptyResult>>(resultRawJson);
var result = resultData.data;

return new PlayFabResult<EmptyResult> { Result = result, CustomData = customData };
}

/// <summary>
/// Registers an HTTP triggered Azure function with a title.
/// </summary>
Expand Down
59 changes: 58 additions & 1 deletion PlayFabSDK/source/PlayFabCloudScriptModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,25 @@ public class EntityKey

}

public class EventHubFunctionModel
{
/// <summary>
/// The connection string for the event hub.
/// </summary>
public string ConnectionString ;

/// <summary>
/// The name of the event hub that triggers the Azure Function.
/// </summary>
public string EventHubName ;

/// <summary>
/// The name the function was registered under.
/// </summary>
public string FunctionName ;

}

public class ExecuteCloudScriptResult : PlayFabResultCommon
{
/// <summary>
Expand Down Expand Up @@ -627,6 +646,15 @@ public class LinkedPlatformAccountModel

}

public class ListEventHubFunctionsResult : PlayFabResultCommon
{
/// <summary>
/// The list of EventHub triggered functions that are currently registered for the title.
/// </summary>
public List<EventHubFunctionModel> Functions ;

}

/// <summary>
/// A title can have many functions, ListHttpFunctions will return a list of all the currently registered HTTP triggered
/// functions for a given title.
Expand Down Expand Up @@ -1047,6 +1075,34 @@ public class QueuedFunctionModel

}

/// <summary>
/// A title can have many functions, RegisterEventHubFunction associates a function name with an event hub name and
/// connection string.
/// </summary>
public class RegisterEventHubFunctionRequest : PlayFabRequestCommon
{
/// <summary>
/// A connection string for the namespace of the event hub for the Azure Function.
/// </summary>
public string ConnectionString ;

/// <summary>
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
/// </summary>
public Dictionary<string,string> CustomTags ;

/// <summary>
/// The name of the event hub for the Azure Function.
/// </summary>
public string EventHubName ;

/// <summary>
/// The name of the function to register
/// </summary>
public string FunctionName ;

}

public class RegisterHttpFunctionRequest : PlayFabRequestCommon
{
/// <summary>
Expand Down Expand Up @@ -1196,7 +1252,8 @@ public class TagModel
public enum TriggerType
{
HTTP,
Queue
Queue,
EventHub
}

public class UnregisterFunctionRequest : PlayFabRequestCommon
Expand Down
Loading

0 comments on commit 16f207f

Please sign in to comment.