You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/PlayFabSDK/Authentication/PlayFabAuthenticationModels.cs

243 lines
7.6 KiB
C#

#if !DISABLE_PLAYFABENTITY_API
using System;
using System.Collections.Generic;
using PlayFab.SharedModels;
namespace PlayFab.AuthenticationModels
{
/// <summary>
/// Create or return a game_server entity token. Caller must be a title entity.
/// </summary>
[Serializable]
public class AuthenticateCustomIdRequest : PlayFabRequestCommon
{
/// <summary>
/// The customId used to create and retrieve game_server entity tokens. This is unique at the title level. CustomId must be
/// between 32 and 100 characters.
/// </summary>
public string CustomId;
/// <summary>
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
/// </summary>
public Dictionary<string,string> CustomTags;
}
[Serializable]
public class AuthenticateCustomIdResult : PlayFabResultCommon
{
/// <summary>
/// The token generated used to set X-EntityToken for game_server calls.
/// </summary>
public EntityTokenResponse EntityToken;
/// <summary>
/// True if the account was newly created on this authentication.
/// </summary>
public bool NewlyCreated;
}
/// <summary>
/// Delete a game_server entity. The caller can be the game_server entity attempting to delete itself. Or a title entity
/// attempting to delete game_server entities for this title.
/// </summary>
[Serializable]
public class DeleteRequest : PlayFabRequestCommon
{
/// <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 game_server entity to be removed.
/// </summary>
public EntityKey Entity;
}
[Serializable]
public class EmptyResponse : PlayFabResultCommon
{
}
/// <summary>
/// Combined entity type and ID structure which uniquely identifies a single entity.
/// </summary>
[Serializable]
public class EntityKey : PlayFabBaseModel
{
/// <summary>
/// Unique ID of the entity.
/// </summary>
public string Id;
/// <summary>
/// Entity type. See https://docs.microsoft.com/gaming/playfab/features/data/entities/available-built-in-entity-types
/// </summary>
public string Type;
}
[Serializable]
public class EntityLineage : PlayFabBaseModel
{
/// <summary>
/// The Character Id of the associated entity.
/// </summary>
public string CharacterId;
/// <summary>
/// The Group Id of the associated entity.
/// </summary>
public string GroupId;
/// <summary>
/// The Master Player Account Id of the associated entity.
/// </summary>
public string MasterPlayerAccountId;
/// <summary>
/// The Namespace Id of the associated entity.
/// </summary>
public string NamespaceId;
/// <summary>
/// The Title Id of the associated entity.
/// </summary>
public string TitleId;
/// <summary>
/// The Title Player Account Id of the associated entity.
/// </summary>
public string TitlePlayerAccountId;
}
[Serializable]
public class EntityTokenResponse : PlayFabBaseModel
{
/// <summary>
/// The entity id and type.
/// </summary>
public EntityKey Entity;
/// <summary>
/// The token used to set X-EntityToken for all entity based API calls.
/// </summary>
public string EntityToken;
/// <summary>
/// The time the token will expire, if it is an expiring token, in UTC.
/// </summary>
public DateTime? TokenExpiration;
}
/// <summary>
/// This API must be called with X-SecretKey, X-Authentication or X-EntityToken headers. An optional EntityKey may be
/// included to attempt to set the resulting EntityToken to a specific entity, however the entity must be a relation of the
/// caller, such as the master_player_account of a character. If sending X-EntityToken the account will be marked as freshly
/// logged in and will issue a new token. If using X-Authentication or X-EntityToken the header must still be valid and
/// cannot be expired or revoked.
/// </summary>
[Serializable]
public class GetEntityTokenRequest : PlayFabRequestCommon
{
/// <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 optional entity to perform this action on. Defaults to the currently logged in entity.
/// </summary>
public EntityKey Entity;
}
[Serializable]
public class GetEntityTokenResponse : PlayFabResultCommon
{
/// <summary>
/// The entity id and type.
/// </summary>
public EntityKey Entity;
/// <summary>
/// The token used to set X-EntityToken for all entity based API calls.
/// </summary>
public string EntityToken;
/// <summary>
/// The time the token will expire, if it is an expiring token, in UTC.
/// </summary>
public DateTime? TokenExpiration;
}
public enum IdentifiedDeviceType
{
Unknown,
XboxOne,
Scarlett,
WindowsOneCore,
WindowsOneCoreMobile,
Win32,
android,
iOS,
PlayStation,
Nintendo
}
public enum LoginIdentityProvider
{
Unknown,
PlayFab,
Custom,
GameCenter,
GooglePlay,
Steam,
XBoxLive,
PSN,
Kongregate,
Facebook,
IOSDevice,
AndroidDevice,
Twitch,
WindowsHello,
GameServer,
CustomServer,
NintendoSwitch,
FacebookInstantGames,
OpenIdConnect,
Apple,
NintendoSwitchAccount,
GooglePlayGames,
XboxMobileStore,
King
}
/// <summary>
/// Given an entity token, validates that it hasn't expired or been revoked and will return details of the owner.
/// </summary>
[Serializable]
public class ValidateEntityTokenRequest : PlayFabRequestCommon
{
/// <summary>
/// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.).
/// </summary>
public Dictionary<string,string> CustomTags;
/// <summary>
/// Client EntityToken
/// </summary>
public string EntityToken;
}
[Serializable]
public class ValidateEntityTokenResponse : PlayFabResultCommon
{
/// <summary>
/// The entity id and type.
/// </summary>
public EntityKey Entity;
/// <summary>
/// The authenticated device for this entity, for the given login
/// </summary>
public IdentifiedDeviceType? IdentifiedDeviceType;
/// <summary>
/// The identity provider for this entity, for the given login
/// </summary>
public LoginIdentityProvider? IdentityProvider;
/// <summary>
/// The ID issued by the identity provider, e.g. a XUID on Xbox Live
/// </summary>
public string IdentityProviderIssuedId;
/// <summary>
/// The lineage of this profile.
/// </summary>
public EntityLineage Lineage;
}
}
#endif