#if !DISABLE_PLAYFABENTITY_API using System; using System.Collections.Generic; using PlayFab.SharedModels; namespace PlayFab.MultiplayerModels { public enum AccessPolicy { Public, Friends, Private } [Serializable] public class AssetReference : PlayFabBaseModel { /// /// The asset's file name. This is a filename with the .zip, .tar, or .tar.gz extension. /// public string FileName; /// /// The asset's mount path. /// public string MountPath; } [Serializable] public class AssetReferenceParams : PlayFabBaseModel { /// /// The asset's file name. /// public string FileName; /// /// The asset's mount path. /// public string MountPath; } [Serializable] public class AssetSummary : PlayFabBaseModel { /// /// The asset's file name. This is a filename with the .zip, .tar, or .tar.gz extension. /// public string FileName; /// /// The metadata associated with the asset. /// public Dictionary Metadata; } public enum AttributeMergeFunction { Min, Max, Average } public enum AttributeNotSpecifiedBehavior { UseDefault, MatchAny } public enum AttributeSource { User, PlayerEntity } public enum AzureRegion { AustraliaEast, AustraliaSoutheast, BrazilSouth, CentralUs, EastAsia, EastUs, EastUs2, JapanEast, JapanWest, NorthCentralUs, NorthEurope, SouthCentralUs, SoutheastAsia, WestEurope, WestUs, SouthAfricaNorth, WestCentralUs, KoreaCentral, FranceCentral, WestUs2, CentralIndia, UaeNorth, UkSouth, SwedenCentral } public enum AzureVmFamily { A, Av2, Dv2, Dv3, F, Fsv2, Dasv4, Dav4, Dadsv5, Eav4, Easv4, Ev4, Esv4, Dsv3, Dsv2, NCasT4_v3, Ddv4, Ddsv4, HBv3, Ddv5, Ddsv5 } public enum 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, Standard_F8, Standard_F16, Standard_F2s_v2, Standard_F4s_v2, Standard_F8s_v2, Standard_F16s_v2, Standard_D2as_v4, Standard_D4as_v4, Standard_D8as_v4, Standard_D16as_v4, Standard_D2a_v4, Standard_D4a_v4, Standard_D8a_v4, Standard_D16a_v4, Standard_D2ads_v5, Standard_D4ads_v5, Standard_D8ads_v5, Standard_D16ads_v5, Standard_E2a_v4, Standard_E4a_v4, Standard_E8a_v4, Standard_E16a_v4, Standard_E2as_v4, Standard_E4as_v4, Standard_E8as_v4, Standard_E16as_v4, Standard_D2s_v3, Standard_D4s_v3, Standard_D8s_v3, Standard_D16s_v3, Standard_DS1_v2, Standard_DS2_v2, Standard_DS3_v2, Standard_DS4_v2, Standard_DS5_v2, Standard_NC4as_T4_v3, Standard_D2d_v4, Standard_D4d_v4, Standard_D8d_v4, Standard_D16d_v4, Standard_D2ds_v4, Standard_D4ds_v4, Standard_D8ds_v4, Standard_D16ds_v4, Standard_HB120_16rs_v3, Standard_HB120_32rs_v3, Standard_HB120_64rs_v3, Standard_HB120_96rs_v3, Standard_HB120rs_v3, Standard_D2d_v5, Standard_D4d_v5, Standard_D8d_v5, Standard_D16d_v5, Standard_D32d_v5, Standard_D2ds_v5, Standard_D4ds_v5, Standard_D8ds_v5, Standard_D16ds_v5, Standard_D32ds_v5 } [Serializable] public class BuildAliasDetailsResponse : PlayFabResultCommon { /// /// The guid string alias Id of the alias to be created or updated. /// public string AliasId; /// /// The alias name. /// public string AliasName; /// /// Array of build selection criteria. /// public List BuildSelectionCriteria; } [Serializable] public class BuildAliasParams : PlayFabBaseModel { /// /// The guid string alias ID to use for the request. /// public string AliasId; } [Serializable] public class BuildRegion : PlayFabBaseModel { /// /// The current multiplayer server stats for the region. /// public CurrentServerStats CurrentServerStats; /// /// Optional settings to control dynamic adjustment of standby target /// public DynamicStandbySettings DynamicStandbySettings; /// /// Whether the game assets provided for the build have been replicated to this region. /// public bool IsAssetReplicationComplete; /// /// The maximum number of multiplayer servers for the region. /// public int MaxServers; /// /// Regional override for the number of multiplayer servers to host on a single VM of the build. /// public int? MultiplayerServerCountPerVm; /// /// The build region. /// public string Region; /// /// Optional settings to set the standby target to specified values during the supplied schedules /// public ScheduledStandbySettings ScheduledStandbySettings; /// /// The target number of standby multiplayer servers for the region. /// public int StandbyServers; /// /// The status of multiplayer servers in the build region. Valid values are - Unknown, Initialized, Deploying, Deployed, /// Unhealthy, Deleting, Deleted. /// public string Status; /// /// Regional override for the VM size the build was created on. /// public AzureVmSize? VmSize; } [Serializable] public class BuildRegionParams : PlayFabBaseModel { /// /// Optional settings to control dynamic adjustment of standby target. If not specified, dynamic standby is disabled /// public DynamicStandbySettings DynamicStandbySettings; /// /// The maximum number of multiplayer servers for the region. /// public int MaxServers; /// /// Regional override for the number of multiplayer servers to host on a single VM of the build. /// public int? MultiplayerServerCountPerVm; /// /// The build region. /// public string Region; /// /// Optional settings to set the standby target to specified values during the supplied schedules /// public ScheduledStandbySettings ScheduledStandbySettings; /// /// The number of standby multiplayer servers for the region. /// public int StandbyServers; /// /// Regional override for the VM size the build was created on. /// public AzureVmSize? VmSize; } [Serializable] public class BuildSelectionCriterion : PlayFabBaseModel { /// /// Dictionary of build ids and their respective weights for distribution of allocation requests. /// public Dictionary BuildWeightDistribution; } [Serializable] public class BuildSummary : PlayFabBaseModel { /// /// The guid string build ID of the build. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The time the build was created in UTC. /// public DateTime? CreationTime; /// /// The metadata of the build. /// public Dictionary Metadata; /// /// The configuration and status for each region in the build. /// public List RegionConfigurations; } /// /// Cancels all tickets of which the player is a member in a given queue that are not cancelled or matched. This API is /// useful if you lose track of what tickets the player is a member of (if the title crashes for instance) and want to /// "reset". The Entity field is optional if the caller is a player and defaults to that player. Players may not cancel /// tickets for other people. The Entity field is required if the caller is a server (authenticated as the title). /// [Serializable] public class CancelAllMatchmakingTicketsForPlayerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity key of the player whose tickets should be canceled. /// public EntityKey Entity; /// /// The name of the queue from which a player's tickets should be canceled. /// public string QueueName; } [Serializable] public class CancelAllMatchmakingTicketsForPlayerResult : PlayFabResultCommon { } /// /// Cancels all backfill tickets of which the player is a member in a given queue that are not cancelled or matched. This /// API is useful if you lose track of what tickets the player is a member of (if the server crashes for instance) and want /// to "reset". /// [Serializable] public class CancelAllServerBackfillTicketsForPlayerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity key of the player whose backfill tickets should be canceled. /// public EntityKey Entity; /// /// The name of the queue from which a player's backfill tickets should be canceled. /// public string QueueName; } [Serializable] public class CancelAllServerBackfillTicketsForPlayerResult : PlayFabResultCommon { } public enum CancellationReason { Requested, Internal, Timeout } /// /// Only servers and ticket members can cancel a ticket. The ticket can be in five different states when it is cancelled. 1: /// the ticket is waiting for members to join it, and it has not started matching. If the ticket is cancelled at this stage, /// it will never match. 2: the ticket is matching. If the ticket is cancelled, it will stop matching. 3: the ticket is /// matched. A matched ticket cannot be cancelled. 4: the ticket is already cancelled and nothing happens. 5: the ticket is /// waiting for a server. If the ticket is cancelled, server allocation will be stopped. A server may still be allocated due /// to a race condition, but that will not be reflected in the ticket. There may be race conditions between the ticket /// getting matched and the client making a cancellation request. The client must handle the possibility that the cancel /// request fails if a match is found before the cancellation request is processed. We do not allow resubmitting a cancelled /// ticket because players must consent to enter matchmaking again. Create a new ticket instead. /// [Serializable] public class CancelMatchmakingTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The name of the queue the ticket is in. /// public string QueueName; /// /// The Id of the ticket to find a match for. /// public string TicketId; } [Serializable] public class CancelMatchmakingTicketResult : PlayFabResultCommon { } /// /// Only servers can cancel a backfill ticket. The ticket can be in three different states when it is cancelled. 1: the /// ticket is matching. If the ticket is cancelled, it will stop matching. 2: the ticket is matched. A matched ticket cannot /// be cancelled. 3: the ticket is already cancelled and nothing happens. There may be race conditions between the ticket /// getting matched and the server making a cancellation request. The server must handle the possibility that the cancel /// request fails if a match is found before the cancellation request is processed. We do not allow resubmitting a cancelled /// ticket. Create a new ticket instead. /// [Serializable] public class CancelServerBackfillTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The name of the queue the ticket is in. /// public string QueueName; /// /// The Id of the ticket to find a match for. /// public string TicketId; } [Serializable] public class CancelServerBackfillTicketResult : PlayFabResultCommon { } [Serializable] public class Certificate : PlayFabBaseModel { /// /// Base64 encoded string contents of the certificate. /// public string Base64EncodedValue; /// /// A name for the certificate. This is used to reference certificates in build configurations. /// public string Name; /// /// If required for your PFX certificate, use this field to provide a password that will be used to install the certificate /// on the container. /// public string Password; } [Serializable] public class CertificateSummary : PlayFabBaseModel { /// /// The name of the certificate. /// public string Name; /// /// The thumbprint for the certificate. /// public string Thumbprint; } [Serializable] public class ConnectedPlayer : PlayFabBaseModel { /// /// The player ID of the player connected to the multiplayer server. /// public string PlayerId; } public enum ContainerFlavor { ManagedWindowsServerCore, CustomLinux, ManagedWindowsServerCorePreview, Invalid } [Serializable] public class ContainerImageReference : PlayFabBaseModel { /// /// The container image name. /// public string ImageName; /// /// The container tag. /// public string Tag; } [Serializable] public class CoreCapacity : PlayFabBaseModel { /// /// The available core capacity for the (Region, VmFamily) /// public int Available; /// /// The AzureRegion /// public string Region; /// /// The total core capacity for the (Region, VmFamily) /// public int Total; /// /// The AzureVmFamily /// public AzureVmFamily? VmFamily; } [Serializable] public class CoreCapacityChange : PlayFabBaseModel { /// /// New quota core limit for the given vm family/region. /// public int NewCoreLimit; /// /// Region to change. /// public string Region; /// /// Virtual machine family to change. /// public AzureVmFamily VmFamily; } /// /// Creates a multiplayer server build alias and returns the created alias. /// [Serializable] public class CreateBuildAliasRequest : PlayFabRequestCommon { /// /// The alias name. /// public string AliasName; /// /// Array of build selection criteria. /// public List BuildSelectionCriteria; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Creates a multiplayer server build with a custom container and returns information about the build creation request. /// [Serializable] public class CreateBuildWithCustomContainerRequest : PlayFabRequestCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The build name. /// public string BuildName; /// /// The flavor of container to create a build from. /// public ContainerFlavor? ContainerFlavor; /// /// The container reference, consisting of the image name and tag. /// public ContainerImageReference ContainerImageReference; /// /// The container command to run when the multiplayer server has been allocated, including any arguments. /// public string ContainerRunCommand; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The list of game assets related to the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The Linux instrumentation configuration for the build. /// public LinuxInstrumentationConfiguration LinuxInstrumentationConfiguration; /// /// Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through /// Game Server SDK (GSDK).Constraints: Maximum number of keys: 30, Maximum key length: 50, Maximum value length: 100 /// public Dictionary Metadata; /// /// The configuration for the monitoring application on the build /// public MonitoringApplicationConfigurationParams MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM. /// public int MultiplayerServerCountPerVm; /// /// The ports to map the build on. /// public List Ports; /// /// The region configurations for the build. /// public List RegionConfigurations; /// /// The resource constraints to apply to each server on the VM (EXPERIMENTAL API) /// public ServerResourceConstraintParams ServerResourceConstraints; /// /// The VM size to create the build on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript for the build /// public VmStartupScriptParams VmStartupScriptConfiguration; } [Serializable] public class CreateBuildWithCustomContainerResponse : PlayFabResultCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The guid string build ID. Must be unique for every build. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The flavor of container of the build. /// public ContainerFlavor? ContainerFlavor; /// /// The container command to run when the multiplayer server has been allocated, including any arguments. /// public string ContainerRunCommand; /// /// The time the build was created in UTC. /// public DateTime? CreationTime; /// /// The custom game container image reference information. /// public ContainerImageReference CustomGameContainerImage; /// /// The game assets for the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The Linux instrumentation configuration for this build. /// public LinuxInstrumentationConfiguration LinuxInstrumentationConfiguration; /// /// The metadata of the build. /// public Dictionary Metadata; /// /// The configuration for the monitoring application for the build /// public MonitoringApplicationConfiguration MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM of the build. /// public int MultiplayerServerCountPerVm; /// /// The OS platform used for running the game process. /// public string OsPlatform; /// /// The ports the build is mapped on. /// public List Ports; /// /// The region configuration for the build. /// public List RegionConfigurations; /// /// The resource constraints to apply to each server on the VM (EXPERIMENTAL API) /// public ServerResourceConstraintParams ServerResourceConstraints; /// /// The type of game server being hosted. /// public string ServerType; /// /// When true, assets will be downloaded and uncompressed in memory, without the compressedversion being written first to /// disc. /// public bool? UseStreamingForAssetDownloads; /// /// The VM size the build was created on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript feature for the build /// public VmStartupScriptConfiguration VmStartupScriptConfiguration; } /// /// Creates a multiplayer server build with a managed container and returns information about the build creation request. /// [Serializable] public class CreateBuildWithManagedContainerRequest : PlayFabRequestCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The build name. /// public string BuildName; /// /// The flavor of container to create a build from. /// public ContainerFlavor? ContainerFlavor; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The list of game assets related to the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The directory containing the game executable. This would be the start path of the game assets that contain the main game /// server executable. If not provided, a best effort will be made to extract it from the start game command. /// public string GameWorkingDirectory; /// /// The instrumentation configuration for the build. /// public InstrumentationConfiguration InstrumentationConfiguration; /// /// Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through /// Game Server SDK (GSDK).Constraints: Maximum number of keys: 30, Maximum key length: 50, Maximum value length: 100 /// public Dictionary Metadata; /// /// The configuration for the monitoring application on the build /// public MonitoringApplicationConfigurationParams MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM. /// public int MultiplayerServerCountPerVm; /// /// The ports to map the build on. /// public List Ports; /// /// The region configurations for the build. /// public List RegionConfigurations; /// /// The resource constraints to apply to each server on the VM (EXPERIMENTAL API) /// public ServerResourceConstraintParams ServerResourceConstraints; /// /// The command to run when the multiplayer server is started, including any arguments. /// public string StartMultiplayerServerCommand; /// /// The VM size to create the build on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript for the build /// public VmStartupScriptParams VmStartupScriptConfiguration; /// /// The crash dump configuration for the build. /// public WindowsCrashDumpConfiguration WindowsCrashDumpConfiguration; } [Serializable] public class CreateBuildWithManagedContainerResponse : PlayFabResultCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The guid string build ID. Must be unique for every build. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The flavor of container of the build. /// public ContainerFlavor? ContainerFlavor; /// /// The time the build was created in UTC. /// public DateTime? CreationTime; /// /// The game assets for the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The directory containing the game executable. This would be the start path of the game assets that contain the main game /// server executable. If not provided, a best effort will be made to extract it from the start game command. /// public string GameWorkingDirectory; /// /// The instrumentation configuration for this build. /// public InstrumentationConfiguration InstrumentationConfiguration; /// /// The metadata of the build. /// public Dictionary Metadata; /// /// The configuration for the monitoring application for the build /// public MonitoringApplicationConfiguration MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM of the build. /// public int MultiplayerServerCountPerVm; /// /// The OS platform used for running the game process. /// public string OsPlatform; /// /// The ports the build is mapped on. /// public List Ports; /// /// The region configuration for the build. /// public List RegionConfigurations; /// /// The resource constraints to apply to each server on the VM (EXPERIMENTAL API) /// public ServerResourceConstraintParams ServerResourceConstraints; /// /// The type of game server being hosted. /// public string ServerType; /// /// The command to run when the multiplayer server has been allocated, including any arguments. /// public string StartMultiplayerServerCommand; /// /// When true, assets will be downloaded and uncompressed in memory, without the compressedversion being written first to /// disc. /// public bool? UseStreamingForAssetDownloads; /// /// The VM size the build was created on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript feature for the build /// public VmStartupScriptConfiguration VmStartupScriptConfiguration; } /// /// Creates a multiplayer server build with the game server running as a process and returns information about the build /// creation request. /// [Serializable] public class CreateBuildWithProcessBasedServerRequest : PlayFabRequestCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The build name. /// public string BuildName; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The list of game assets related to the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The working directory for the game process. If this is not provided, the working directory will be set based on the /// mount path of the game server executable. /// public string GameWorkingDirectory; /// /// The instrumentation configuration for the Build. Used only if it is a Windows Build. /// public InstrumentationConfiguration InstrumentationConfiguration; /// /// Indicates whether this build will be created using the OS Preview versionPreview OS is recommended for dev builds to /// detect any breaking changes before they are released to retail. Retail builds should set this value to false. /// public bool? IsOSPreview; /// /// The Linux instrumentation configuration for the Build. Used only if it is a Linux Build. /// public LinuxInstrumentationConfiguration LinuxInstrumentationConfiguration; /// /// Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through /// Game Server SDK (GSDK).Constraints: Maximum number of keys: 30, Maximum key length: 50, Maximum value length: 100 /// public Dictionary Metadata; /// /// The configuration for the monitoring application on the build /// public MonitoringApplicationConfigurationParams MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM. /// public int MultiplayerServerCountPerVm; /// /// The OS platform used for running the game process. /// public string OsPlatform; /// /// The ports to map the build on. /// public List Ports; /// /// The region configurations for the build. /// public List RegionConfigurations; /// /// The command to run when the multiplayer server is started, including any arguments. The path to any executable should be /// relative to the root asset folder when unzipped. /// public string StartMultiplayerServerCommand; /// /// The VM size to create the build on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript for the build /// public VmStartupScriptParams VmStartupScriptConfiguration; } [Serializable] public class CreateBuildWithProcessBasedServerResponse : PlayFabResultCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The guid string build ID. Must be unique for every build. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The flavor of container of the build. /// public ContainerFlavor? ContainerFlavor; /// /// The time the build was created in UTC. /// public DateTime? CreationTime; /// /// The game assets for the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The game secrets for the build. /// public List GameSecretReferences; /// /// The working directory for the game process. If this is not provided, the working directory will be set based on the /// mount path of the game server executable. /// public string GameWorkingDirectory; /// /// The instrumentation configuration for this build. /// public InstrumentationConfiguration InstrumentationConfiguration; /// /// Indicates whether this build will be created using the OS Preview versionPreview OS is recommended for dev builds to /// detect any breaking changes before they are released to retail. Retail builds should set this value to false. /// public bool? IsOSPreview; /// /// The Linux instrumentation configuration for this build. /// public LinuxInstrumentationConfiguration LinuxInstrumentationConfiguration; /// /// The metadata of the build. /// public Dictionary Metadata; /// /// The configuration for the monitoring application for the build /// public MonitoringApplicationConfiguration MonitoringApplicationConfiguration; /// /// The number of multiplayer servers to host on a single VM of the build. /// public int MultiplayerServerCountPerVm; /// /// The OS platform used for running the game process. /// public string OsPlatform; /// /// The ports the build is mapped on. /// public List Ports; /// /// The region configuration for the build. /// public List RegionConfigurations; /// /// The type of game server being hosted. /// public string ServerType; /// /// The command to run when the multiplayer server is started, including any arguments. The path to any executable is /// relative to the root asset folder when unzipped. /// public string StartMultiplayerServerCommand; /// /// When true, assets will be downloaded and uncompressed in memory, without the compressedversion being written first to /// disc. /// public bool? UseStreamingForAssetDownloads; /// /// The VM size the build was created on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript feature for the build /// public VmStartupScriptConfiguration VmStartupScriptConfiguration; } /// /// Request to create a lobby. A Server or client can create a lobby. /// [Serializable] public class CreateLobbyRequest : PlayFabRequestCommon { /// /// The policy indicating who is allowed to join the lobby, and the visibility to queries. May be 'Public', 'Friends' or /// 'Private'. Public means the lobby is both visible in queries and any player may join, including invited players. Friends /// means that users who are bidirectional friends of members in the lobby may search to find friend lobbies, to retrieve /// its connection string. Private means the lobby is not visible in queries, and a player must receive an invitation to /// join. Defaults to 'Public' on creation. Can only be changed by the lobby owner. /// public AccessPolicy? AccessPolicy; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The private key-value pairs which are visible to all entities in the lobby. At most 30 key-value pairs may be stored /// here, keys are limited to 30 characters and values to 1000. The total size of all lobbyData values may not exceed 4096 /// bytes. Keys are case sensitive. /// public Dictionary LobbyData; /// /// The maximum number of players allowed in the lobby. The value must be between 2 and 128. /// public uint MaxPlayers; /// /// The member initially added to the lobby. Client must specify exactly one member, which is the creator's entity and /// member data. Member PubSubConnectionHandle must be null or empty. Game servers must not specify any members. /// public List Members; /// /// The lobby owner. Must be the calling entity. /// public EntityKey Owner; /// /// The policy for how a new owner is chosen. May be 'Automatic', 'Manual' or 'None'. Can only be specified by clients. If /// client-owned and 'Automatic' - The Lobby service will automatically assign another connected owner when the current /// owner leaves or disconnects. The useConnections property must be true. If client - owned and 'Manual' - Ownership is /// protected as long as the current owner is connected. If the current owner leaves or disconnects any member may set /// themselves as the current owner. The useConnections property must be true. If client-owned and 'None' - Any member can /// set ownership. The useConnections property can be either true or false. /// public OwnerMigrationPolicy? OwnerMigrationPolicy; /// /// The public key-value pairs which allow queries to differentiate between lobbies. Queries will refer to these key-value /// pairs in their filter and order by clauses to retrieve lobbies fitting the specified criteria. At most 30 key-value /// pairs may be stored here. Keys are of the format string_key1, string_key2 ... string_key30 for string values, or /// number_key1, number_key2, ... number_key30 for numeric values.Numeric values are floats. Values can be at most 256 /// characters long. The total size of all searchData values may not exceed 1024 bytes. /// public Dictionary SearchData; /// /// A setting to control whether connections are used. Defaults to true. When true, notifications are sent to subscribed /// players, disconnect detection removes connectionHandles, only owner migration policies using connections are allowed, /// and lobbies must have at least one connected member to be searchable or be a server hosted lobby with a connected /// server. If false, then notifications are not sent, connections are not allowed, and lobbies do not need connections to /// be searchable. /// public bool UseConnections; } [Serializable] public class CreateLobbyResult : PlayFabResultCommon { /// /// A field which indicates which lobby the user will be joining. /// public string ConnectionString; /// /// Id to uniquely identify a lobby. /// public string LobbyId; } /// /// The client specifies the creator's attributes and optionally a list of other users to match with. /// [Serializable] public class CreateMatchmakingTicketRequest : PlayFabRequestCommon { /// /// The User who created this ticket. /// public MatchmakingPlayer Creator; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// How long to attempt matching this ticket in seconds. /// public int GiveUpAfterSeconds; /// /// A list of Entity Keys of other users to match with. /// public List MembersToMatchWith; /// /// The Id of a match queue. /// public string QueueName; } [Serializable] public class CreateMatchmakingTicketResult : PlayFabResultCommon { /// /// The Id of the ticket to find a match for. /// public string TicketId; } /// /// Creates a remote user to log on to a VM for a multiplayer server build in a specific region. Returns user credential /// information necessary to log on. /// [Serializable] public class CreateRemoteUserRequest : PlayFabRequestCommon { /// /// The guid string build ID of to create the remote user for. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The expiration time for the remote user created. Defaults to expiring in one day if not specified. /// public DateTime? ExpirationTime; /// /// The region of virtual machine to create the remote user for. /// public string Region; /// /// The username to create the remote user with. /// public string Username; /// /// The virtual machine ID the multiplayer server is located on. /// public string VmId; } [Serializable] public class CreateRemoteUserResponse : PlayFabResultCommon { /// /// The expiration time for the remote user created. /// public DateTime? ExpirationTime; /// /// The generated password for the remote user that was created. /// public string Password; /// /// The username for the remote user that was created. /// public string Username; } /// /// The server specifies all the members, their teams and their attributes, and the server details if applicable. /// [Serializable] public class CreateServerBackfillTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// How long to attempt matching this ticket in seconds. /// public int GiveUpAfterSeconds; /// /// The users who will be part of this ticket, along with their team assignments. /// public List Members; /// /// The Id of a match queue. /// public string QueueName; /// /// The details of the server the members are connected to. /// public ServerDetails ServerDetails; } [Serializable] public class CreateServerBackfillTicketResult : PlayFabResultCommon { /// /// The Id of the ticket to find a match for. /// public string TicketId; } /// /// The server specifies all the members and their attributes. /// [Serializable] public class CreateServerMatchmakingTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// How long to attempt matching this ticket in seconds. /// public int GiveUpAfterSeconds; /// /// The users who will be part of this ticket. /// public List Members; /// /// The Id of a match queue. /// public string QueueName; } /// /// Creates a request to change a title's multiplayer server quotas. /// [Serializable] public class CreateTitleMultiplayerServersQuotaChangeRequest : PlayFabRequestCommon { /// /// A brief description of the requested changes. /// public string ChangeDescription; /// /// Changes to make to the titles cores quota. /// public List Changes; /// /// Email to be contacted by our team about this request. Only required when a request is not approved. /// public string ContactEmail; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Additional information about this request that our team can use to better understand the requirements. /// public string Notes; /// /// When these changes would need to be in effect. Only required when a request is not approved. /// public DateTime? StartDate; } [Serializable] public class CreateTitleMultiplayerServersQuotaChangeResponse : PlayFabResultCommon { /// /// Id of the change request that was created. /// public string RequestId; /// /// Determines if the request was approved or not. When false, our team is reviewing and may respond within 2 business days. /// public bool WasApproved; } [Serializable] public class CurrentServerStats : PlayFabBaseModel { /// /// The number of active multiplayer servers. /// public int Active; /// /// The number of multiplayer servers still downloading game resources (such as assets). /// public int Propping; /// /// The number of standingby multiplayer servers. /// public int StandingBy; /// /// The total number of multiplayer servers. /// public int Total; } [Serializable] public class CustomDifferenceRuleExpansion : PlayFabBaseModel { /// /// Manually specify the values to use for each expansion interval (this overrides Difference, Delta, and MaxDifference). /// public List DifferenceOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class CustomRegionSelectionRuleExpansion : PlayFabBaseModel { /// /// Manually specify the maximum latency to use for each expansion interval. /// public List MaxLatencyOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class CustomSetIntersectionRuleExpansion : PlayFabBaseModel { /// /// Manually specify the values to use for each expansion interval. /// public List MinIntersectionSizeOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class CustomTeamDifferenceRuleExpansion : PlayFabBaseModel { /// /// Manually specify the team difference value to use for each expansion interval. /// public List DifferenceOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class CustomTeamSizeBalanceRuleExpansion : PlayFabBaseModel { /// /// Manually specify the team size difference to use for each expansion interval. /// public List DifferenceOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } /// /// Deletes a multiplayer server game asset for a title. /// [Serializable] public class DeleteAssetRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The filename of the asset to delete. /// public string FileName; } /// /// Deletes a multiplayer server build alias. /// [Serializable] public class DeleteBuildAliasRequest : PlayFabRequestCommon { /// /// The guid string alias ID of the alias to perform the action on. /// public string AliasId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Removes a multiplayer server build's region. /// [Serializable] public class DeleteBuildRegionRequest : PlayFabRequestCommon { /// /// The guid string ID of the build we want to update regions for. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The build region to delete. /// public string Region; } /// /// Deletes a multiplayer server build. /// [Serializable] public class DeleteBuildRequest : PlayFabRequestCommon { /// /// The guid string build ID of the build to delete. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Deletes a multiplayer server game certificate. /// [Serializable] public class DeleteCertificateRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The name of the certificate. /// public string Name; } /// /// Removes the specified container image repository. After this operation, a 'docker pull' will fail for all the tags of /// the specified image. Morever, ListContainerImages will not return the specified image. /// [Serializable] public class DeleteContainerImageRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The container image repository we want to delete. /// public string ImageName; } /// /// Request to delete a lobby. Only servers can delete lobbies. /// [Serializable] public class DeleteLobbyRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; } /// /// Deletes a remote user to log on to a VM for a multiplayer server build in a specific region. Returns user credential /// information necessary to log on. /// [Serializable] public class DeleteRemoteUserRequest : PlayFabRequestCommon { /// /// The guid string build ID of the multiplayer server where the remote user is to delete. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The region of the multiplayer server where the remote user is to delete. /// public string Region; /// /// The username of the remote user to delete. /// public string Username; /// /// The virtual machine ID the multiplayer server is located on. /// public string VmId; } /// /// Deletes a multiplayer server game secret. /// [Serializable] public class DeleteSecretRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The name of the secret. /// public string Name; } [Serializable] public class DifferenceRule : PlayFabBaseModel { /// /// Description of the attribute used by this rule to match tickets. /// public QueueRuleAttribute Attribute; /// /// Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity /// profile. /// public AttributeNotSpecifiedBehavior AttributeNotSpecifiedBehavior; /// /// 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. /// public CustomDifferenceRuleExpansion CustomExpansion; /// /// The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that /// AttributeNotSpecifiedBehavior is false). Optional. /// public double? DefaultAttributeValue; /// /// The allowed difference between any two tickets at the start of matchmaking. /// public double Difference; /// /// Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. /// public LinearDifferenceRuleExpansion LinearExpansion; /// /// How values are treated when there are multiple players in a single ticket. /// public AttributeMergeFunction MergeFunction; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; /// /// The relative weight of this rule compared to others. /// public double Weight; } public enum DirectPeerConnectivityOptions { None, SamePlatformType, DifferentPlatformType, AnyPlatformType, SameEntityLoginProvider, DifferentEntityLoginProvider, AnyEntityLoginProvider, AnyPlatformTypeAndEntityLoginProvider, OnlyServers } [Serializable] public class DynamicStandbySettings : PlayFabBaseModel { /// /// 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% /// public List DynamicFloorMultiplierThresholds; /// /// When true, dynamic standby will be enabled /// public bool IsEnabled; /// /// The time it takes to reduce target standing by to configured floor value after an increase. Defaults to 30 minutes /// public int? RampDownSeconds; } [Serializable] public class DynamicStandbyThreshold : PlayFabBaseModel { /// /// When the trigger threshold is reached, multiply by this value /// public double Multiplier; /// /// The multiplier will be applied when the actual standby divided by target standby floor is less than this value /// public double TriggerThresholdPercentage; } [Serializable] public class EmptyResponse : PlayFabResultCommon { } /// /// Enables the multiplayer server feature for a title and returns the enabled status. The enabled status can be /// Initializing, Enabled, and Disabled. It can up to 20 minutes or more for the title to be enabled for the feature. On /// average, it can take up to 20 minutes for the title to be enabled for the feature. /// [Serializable] public class EnableMultiplayerServersForTitleRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class EnableMultiplayerServersForTitleResponse : PlayFabResultCommon { /// /// The enabled status for the multiplayer server features for the title. /// public TitleMultiplayerServerEnabledStatus? Status; } /// /// 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; } public enum ExternalFriendSources { None, Steam, Facebook, Xbox, Psn, All } /// /// Request to find friends lobbies. Only a client can find friend lobbies. /// [Serializable] public class FindFriendLobbiesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Indicates which other platforms' friends this query should link to. /// public ExternalFriendSources? ExternalPlatformFriends; /// /// OData style string that contains one or more filters. Only the following operators are supported: "and" (logical and), /// "eq" (equal), "ne" (not equals), "ge" (greater than or equal), "gt" (greater than), "le" (less than or equal), and "lt" /// (less than). The left-hand side of each OData logical expression should be either a search property key (e.g. /// string_key1, number_key3, etc) or one of the pre-defined search keys all of which must be prefixed by "lobby/": /// lobby/memberCount (number of players in a lobby), lobby/maxMemberCount (maximum number of players allowed in a lobby), /// lobby/memberCountRemaining (remaining number of players who can be allowed in a lobby), lobby/membershipLock (must equal /// 'Unlocked' or 'Locked'), lobby/amOwner (required to equal "true"), lobby/amMember (required to equal "true"). /// public string Filter; /// /// OData style string that contains sorting for this query in either ascending ("asc") or descending ("desc") order. /// OrderBy clauses are of the form "number_key1 asc" or the pre-defined search key "lobby/memberCount asc", /// "lobby/memberCountRemaining desc" and "lobby/maxMemberCount desc". To sort by closest, a moniker `distance{number_key1 = /// 5}` can be used to sort by distance from the given number. This field only supports either one sort clause or one /// distance clause. /// public string OrderBy; /// /// Request pagination information. /// public PaginationRequest Pagination; /// /// Xbox token if Xbox friends should be included. Requires Xbox be configured on PlayFab. /// public string XboxToken; } [Serializable] public class FindFriendLobbiesResult : PlayFabResultCommon { /// /// Array of lobbies found that matched FindFriendLobbies request. /// public List Lobbies; /// /// Pagination response for FindFriendLobbies request. /// public PaginationResponse Pagination; } /// /// Request to find lobbies. /// [Serializable] public class FindLobbiesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// OData style string that contains one or more filters. Only the following operators are supported: "and" (logical and), /// "eq" (equal), "ne" (not equals), "ge" (greater than or equal), "gt" (greater than), "le" (less than or equal), and "lt" /// (less than). The left-hand side of each OData logical expression should be either a search property key (e.g. /// string_key1, number_key3, etc) or one of the pre-defined search keys all of which must be prefixed by "lobby/": /// lobby/memberCount (number of players in a lobby), lobby/maxMemberCount (maximum number of players allowed in a lobby), /// lobby/memberCountRemaining (remaining number of players who can be allowed in a lobby), lobby/membershipLock (must equal /// 'Unlocked' or 'Locked'), lobby/amOwner (required to equal "true"), lobby/amMember (required to equal "true"). /// public string Filter; /// /// OData style string that contains sorting for this query in either ascending ("asc") or descending ("desc") order. /// OrderBy clauses are of the form "number_key1 asc" or the pre-defined search key "lobby/memberCount asc", /// "lobby/memberCountRemaining desc" and "lobby/maxMemberCount desc". To sort by closest, a moniker `distance{number_key1 = /// 5}` can be used to sort by distance from the given number. This field only supports either one sort clause or one /// distance clause. /// public string OrderBy; /// /// Request pagination information. /// public PaginationRequest Pagination; } [Serializable] public class FindLobbiesResult : PlayFabResultCommon { /// /// Array of lobbies found that matched FindLobbies request. /// public List Lobbies; /// /// Pagination response for FindLobbies request. /// public PaginationResponse Pagination; } [Serializable] public class FriendLobbySummary : PlayFabBaseModel { /// /// A string used to join the lobby.This field is populated by the Lobby service.Invites are performed by communicating this /// connectionString to other players. /// public string ConnectionString; /// /// The current number of players in the lobby. /// public uint CurrentPlayers; /// /// Friends in Lobby. /// public List Friends; /// /// Id to uniquely identify a lobby. /// public string LobbyId; /// /// The maximum number of players allowed in the lobby. /// public uint MaxPlayers; /// /// A setting indicating whether members are allowed to join this lobby. When Locked new members are prevented from joining. /// public MembershipLock? MembershipLock; /// /// The client or server entity which owns this lobby. /// public EntityKey Owner; /// /// Search data. /// public Dictionary SearchData; } [Serializable] public class GameCertificateReference : PlayFabBaseModel { /// /// An alias for the game certificate. The game server will reference this alias via GSDK config to retrieve the game /// certificate. This alias is used as an identifier in game server code to allow a new certificate with different Name /// field to be uploaded without the need to change any game server code to reference the new Name. /// public string GsdkAlias; /// /// The name of the game certificate. This name should match the name of a certificate that was previously uploaded to this /// title. /// public string Name; } [Serializable] public class GameCertificateReferenceParams : PlayFabBaseModel { /// /// An alias for the game certificate. The game server will reference this alias via GSDK config to retrieve the game /// certificate. This alias is used as an identifier in game server code to allow a new certificate with different Name /// field to be uploaded without the need to change any game server code to reference the new Name. /// public string GsdkAlias; /// /// The name of the game certificate. This name should match the name of a certificate that was previously uploaded to this /// title. /// public string Name; } [Serializable] public class GameSecretReference : PlayFabBaseModel { /// /// The name of the game secret. This name should match the name of a secret that was previously added to this title. /// public string Name; } [Serializable] public class GameSecretReferenceParams : PlayFabBaseModel { /// /// The name of the game secret. This name should match the name of a secret that was previously added to this title. /// public string Name; } /// /// Gets a URL that can be used to download the specified asset. /// [Serializable] public class GetAssetDownloadUrlRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The asset's file name to get the download URL for. /// public string FileName; } [Serializable] public class GetAssetDownloadUrlResponse : PlayFabResultCommon { /// /// The asset's download URL. /// public string AssetDownloadUrl; /// /// The asset's file name to get the download URL for. /// public string FileName; } /// /// Gets the URL to upload assets to. /// [Serializable] public class GetAssetUploadUrlRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The asset's file name to get the upload URL for. /// public string FileName; } [Serializable] public class GetAssetUploadUrlResponse : PlayFabResultCommon { /// /// The asset's upload URL. /// public string AssetUploadUrl; /// /// The asset's file name to get the upload URL for. /// public string FileName; } /// /// Returns the details about a multiplayer server build alias. /// [Serializable] public class GetBuildAliasRequest : PlayFabRequestCommon { /// /// The guid string alias ID of the alias to perform the action on. /// public string AliasId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Returns the details about a multiplayer server build. /// [Serializable] public class GetBuildRequest : PlayFabRequestCommon { /// /// The guid string build ID of the build to get. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class GetBuildResponse : PlayFabResultCommon { /// /// When true, assets will not be copied for each server inside the VM. All serverswill run from the same set of assets, or /// will have the same assets mounted in the container. /// public bool? AreAssetsReadonly; /// /// The guid string build ID of the build. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The current build status. Valid values are - Deploying, Deployed, DeletingRegion, Unhealthy. /// public string BuildStatus; /// /// The flavor of container of he build. /// public ContainerFlavor? ContainerFlavor; /// /// The container command to run when the multiplayer server has been allocated, including any arguments. This only applies /// to custom builds. If the build is a managed build, this field will be null. /// public string ContainerRunCommand; /// /// The time the build was created in UTC. /// public DateTime? CreationTime; /// /// The custom game container image for a custom build. /// public ContainerImageReference CustomGameContainerImage; /// /// The game assets for the build. /// public List GameAssetReferences; /// /// The game certificates for the build. /// public List GameCertificateReferences; /// /// The instrumentation configuration of the build. /// public InstrumentationConfiguration InstrumentationConfiguration; /// /// Metadata of the build. The keys are case insensitive. The build metadata is made available to the server through Game /// Server SDK (GSDK). /// public Dictionary Metadata; /// /// The number of multiplayer servers to hosted on a single VM of the build. /// public int MultiplayerServerCountPerVm; /// /// The OS platform used for running the game process. /// public string OsPlatform; /// /// The ports the build is mapped on. /// public List Ports; /// /// The region configuration for the build. /// public List RegionConfigurations; /// /// The resource constraints to apply to each server on the VM. /// public ServerResourceConstraintParams ServerResourceConstraints; /// /// The type of game server being hosted. /// public string ServerType; /// /// The command to run when the multiplayer server has been allocated, including any arguments. This only applies to managed /// builds. If the build is a custom build, this field will be null. /// public string StartMultiplayerServerCommand; /// /// The VM size the build was created on. /// public AzureVmSize? VmSize; /// /// The configuration for the VmStartupScript feature for the build /// public VmStartupScriptConfiguration VmStartupScriptConfiguration; } /// /// Gets credentials to the container registry where game developers can upload custom container images to before creating a /// new build. /// [Serializable] public class GetContainerRegistryCredentialsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class GetContainerRegistryCredentialsResponse : PlayFabResultCommon { /// /// The url of the container registry. /// public string DnsName; /// /// The password for accessing the container registry. /// public string Password; /// /// The username for accessing the container registry. /// public string Username; } /// /// Request to get a lobby. /// [Serializable] public class GetLobbyRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; } [Serializable] public class GetLobbyResult : PlayFabResultCommon { /// /// The information pertaining to the requested lobby. /// public Lobby Lobby; } /// /// Gets the current configuration for a queue. /// [Serializable] public class GetMatchmakingQueueRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The Id of the matchmaking queue to retrieve. /// public string QueueName; } [Serializable] public class GetMatchmakingQueueResult : PlayFabResultCommon { /// /// The matchmaking queue config. /// public MatchmakingQueueConfig MatchmakingQueue; } /// /// The ticket includes the invited players, their attributes if they have joined, the ticket status, the match Id when /// applicable, etc. Only servers, the ticket creator and the invited players can get the ticket. /// [Serializable] public class GetMatchmakingTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON /// object. /// public bool EscapeObject; /// /// The name of the queue to find a match for. /// public string QueueName; /// /// The Id of the ticket to find a match for. /// public string TicketId; } [Serializable] public class GetMatchmakingTicketResult : PlayFabResultCommon { /// /// The reason why the current ticket was canceled. This field is only set if the ticket is in canceled state. Please retry /// if CancellationReason is RetryRequired. /// public string CancellationReasonString; /// /// Change number used for differentiating older matchmaking status updates from newer ones. /// public uint? ChangeNumber; /// /// The server date and time at which ticket was created. /// public DateTime Created; /// /// The Creator's entity key. /// public EntityKey Creator; /// /// How long to attempt matching this ticket in seconds. /// public int GiveUpAfterSeconds; /// /// The Id of a match. /// public string MatchId; /// /// A list of Users that have joined this ticket. /// public List Members; /// /// A list of PlayFab Ids of Users to match with. /// public List MembersToMatchWith; /// /// The Id of a match queue. /// public string QueueName; /// /// The current ticket status. Possible values are: WaitingForPlayers, WaitingForMatch, WaitingForServer, Canceled and /// Matched. /// public string Status; /// /// The Id of the ticket to find a match for. /// public string TicketId; } /// /// When matchmaking has successfully matched together a collection of tickets, it produces a 'match' with an Id. The match /// contains all of the players that were matched together, and their team assigments. Only servers and ticket members can /// get the match. /// [Serializable] public class GetMatchRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON /// object. /// public bool EscapeObject; /// /// The Id of a match. /// public string MatchId; /// /// The name of the queue to join. /// public string QueueName; /// /// Determines whether the matchmaking attributes for each user should be returned in the response for match request. /// public bool ReturnMemberAttributes; } [Serializable] public class GetMatchResult : PlayFabResultCommon { /// /// A string that is used by players that are matched together to join an arranged lobby. /// public string ArrangementString; /// /// The Id of a match. /// public string MatchId; /// /// A list of Users that are matched together, along with their team assignments. /// public List Members; /// /// A list of regions that the match could be played in sorted by preference. This value is only set if the queue has a /// region selection rule. /// public List RegionPreferences; /// /// The details of the server that the match has been allocated to. /// public ServerDetails ServerDetails; } /// /// Gets multiplayer server session details for a build in a specific region. /// [Serializable] public class GetMultiplayerServerDetailsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The title generated guid string session ID of the multiplayer server to get details for. This is to keep track of /// multiplayer server sessions. /// public string SessionId; } [Serializable] public class GetMultiplayerServerDetailsResponse : PlayFabResultCommon { /// /// The identity of the build in which the server was allocated. /// public string BuildId; /// /// The connected players in the multiplayer server. /// public List ConnectedPlayers; /// /// The fully qualified domain name of the virtual machine that is hosting this multiplayer server. /// public string FQDN; /// /// The public IPv4 address of the virtual machine that is hosting this multiplayer server. /// public string IPV4Address; /// /// The time (UTC) at which a change in the multiplayer server state was observed. /// public DateTime? LastStateTransitionTime; /// /// The ports the multiplayer server uses. /// public List Ports; /// /// The list of public Ipv4 addresses associated with the server. /// public List PublicIPV4Addresses; /// /// The region the multiplayer server is located in. /// public string Region; /// /// The string server ID of the multiplayer server generated by PlayFab. /// public string ServerId; /// /// The guid string session ID of the multiplayer server. /// public string SessionId; /// /// The state of the multiplayer server. /// public string State; /// /// The virtual machine ID that the multiplayer server is located on. /// public string VmId; } /// /// Gets multiplayer server logs for a specific server id in a region. The logs are available only after a server has /// terminated. /// [Serializable] public class GetMultiplayerServerLogsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The server ID of multiplayer server to get logs for. /// public string ServerId; } [Serializable] public class GetMultiplayerServerLogsResponse : PlayFabResultCommon { /// /// URL for logs download. /// public string LogDownloadUrl; } /// /// Gets multiplayer server logs for a specific server id in a region. The logs are available only after a server has /// terminated. /// [Serializable] public class GetMultiplayerSessionLogsBySessionIdRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The server ID of multiplayer server to get logs for. /// public string SessionId; } /// /// Returns the matchmaking statistics for a queue. These include the number of players matching and the statistics related /// to the time to match statistics in seconds (average and percentiles). Statistics are refreshed once every 5 minutes. /// Servers can access all statistics no matter what the ClientStatisticsVisibility is configured to. Clients can access /// statistics according to the ClientStatisticsVisibility. Client requests are forbidden if all visibility fields are /// false. /// [Serializable] public class GetQueueStatisticsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The name of the queue. /// public string QueueName; } [Serializable] public class GetQueueStatisticsResult : PlayFabResultCommon { /// /// The current number of players in the matchmaking queue, who are waiting to be matched. /// public uint? NumberOfPlayersMatching; /// /// Statistics representing the time (in seconds) it takes for tickets to find a match. /// public Statistics TimeToMatchStatisticsInSeconds; } /// /// Gets a remote login endpoint to a VM that is hosting a multiplayer server build in a specific region. /// [Serializable] public class GetRemoteLoginEndpointRequest : PlayFabRequestCommon { /// /// The guid string build ID of the multiplayer server to get remote login information for. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The region of the multiplayer server to get remote login information for. /// public string Region; /// /// The virtual machine ID the multiplayer server is located on. /// public string VmId; } [Serializable] public class GetRemoteLoginEndpointResponse : PlayFabResultCommon { /// /// The remote login IPV4 address of multiplayer server. /// public string IPV4Address; /// /// The remote login port of multiplayer server. /// public int Port; } /// /// The ticket includes the players, their attributes, their teams, the ticket status, the match Id and the server details /// when applicable, etc. Only servers can get the ticket. /// [Serializable] public class GetServerBackfillTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON /// object. /// public bool EscapeObject; /// /// The name of the queue to find a match for. /// public string QueueName; /// /// The Id of the ticket to find a match for. /// public string TicketId; } [Serializable] public class GetServerBackfillTicketResult : PlayFabResultCommon { /// /// The reason why the current ticket was canceled. This field is only set if the ticket is in canceled state. /// public string CancellationReasonString; /// /// The server date and time at which ticket was created. /// public DateTime Created; /// /// How long to attempt matching this ticket in seconds. /// public int GiveUpAfterSeconds; /// /// The Id of a match. /// public string MatchId; /// /// A list of Users that are part of this ticket, along with their team assignments. /// public List Members; /// /// The Id of a match queue. /// public string QueueName; /// /// The details of the server the members are connected to. /// public ServerDetails ServerDetails; /// /// The current ticket status. Possible values are: WaitingForMatch, Canceled and Matched. /// public string Status; /// /// The Id of the ticket to find a match for. /// public string TicketId; } /// /// Gets the status of whether a title is enabled for the multiplayer server feature. The enabled status can be /// Initializing, Enabled, and Disabled. /// [Serializable] public class GetTitleEnabledForMultiplayerServersStatusRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class GetTitleEnabledForMultiplayerServersStatusResponse : PlayFabResultCommon { /// /// The enabled status for the multiplayer server features for the title. /// public TitleMultiplayerServerEnabledStatus? Status; } /// /// Gets a title's server quota change request. /// [Serializable] public class GetTitleMultiplayerServersQuotaChangeRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Id of the change request to get. /// public string RequestId; } [Serializable] public class GetTitleMultiplayerServersQuotaChangeResponse : PlayFabResultCommon { /// /// The change request for this title. /// public QuotaChange Change; } /// /// Gets the quotas for a title in relation to multiplayer servers. /// [Serializable] public class GetTitleMultiplayerServersQuotasRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class GetTitleMultiplayerServersQuotasResponse : PlayFabResultCommon { /// /// The various quotas for multiplayer servers for the title. /// public TitleMultiplayerServersQuotas Quotas; } [Serializable] public class InstrumentationConfiguration : PlayFabBaseModel { /// /// Designates whether windows instrumentation configuration will be enabled for this Build /// public bool? IsEnabled; /// /// This property is deprecated, use IsEnabled. The list of processes to be monitored on a VM for this build. Providing /// processes will turn on performance metrics collection for this build. Process names should not include extensions. If /// the game server process is: GameServer.exe; then, ProcessesToMonitor = [ GameServer ] /// public List ProcessesToMonitor; } /// /// Request to invite a player to a lobby the caller is already a member of. Only a client can invite another player to a /// lobby. /// [Serializable] public class InviteToLobbyRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity invited to the lobby. /// public EntityKey InviteeEntity; /// /// The id of the lobby. /// public string LobbyId; /// /// The member entity sending the invite. Must be a member of the lobby. /// public EntityKey MemberEntity; } /// /// Request to join an arranged lobby. Only a client can join an arranged lobby. /// [Serializable] public class JoinArrangedLobbyRequest : PlayFabRequestCommon { /// /// The policy indicating who is allowed to join the lobby, and the visibility to queries. May be 'Public', 'Friends' or /// 'Private'. Public means the lobby is both visible in queries and any player may join, including invited players. Friends /// means that users who are bidirectional friends of members in the lobby may search to find friend lobbies, to retrieve /// its connection string. Private means the lobby is not visible in queries, and a player must receive an invitation to /// join. Defaults to 'Public' on creation. Can only be changed by the lobby owner. /// public AccessPolicy? AccessPolicy; /// /// A field which indicates which lobby the user will be joining. This field is opaque to everyone except the Lobby service /// and the creator of the arrangementString (Matchmaking). This string defines a unique identifier for the arranged lobby /// as well as the title and member the string is valid for. Arrangement strings have an expiration. /// public string ArrangementString; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The maximum number of players allowed in the lobby. The value must be between 2 and 128. /// public uint MaxPlayers; /// /// The private key-value pairs used by the member to communicate information to other members and the owner. Visible to all /// entities in the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to /// 1000. The total size of all memberData values may not exceed 4096 bytes. Keys are case sensitive. /// public Dictionary MemberData; /// /// The member entity who is joining the lobby. The first member to join will be the lobby owner. /// public EntityKey MemberEntity; /// /// The policy for how a new owner is chosen. May be 'Automatic', 'Manual' or 'None'. Can only be specified by clients. If /// client-owned and 'Automatic' - The Lobby service will automatically assign another connected owner when the current /// owner leaves or disconnects. The useConnections property must be true. If client - owned and 'Manual' - Ownership is /// protected as long as the current owner is connected. If the current owner leaves or disconnects any member may set /// themselves as the current owner. The useConnections property must be true. If client-owned and 'None' - Any member can /// set ownership. The useConnections property can be either true or false. /// public OwnerMigrationPolicy? OwnerMigrationPolicy; /// /// A setting to control whether connections are used. Defaults to true. When true, notifications are sent to subscribed /// players, disconnect detection removes connectionHandles, only owner migration policies using connections are allowed, /// and lobbies must have at least one connected member to be searchable or be a server hosted lobby with a connected /// server. If false, then notifications are not sent, connections are not allowed, and lobbies do not need connections to /// be searchable. /// public bool UseConnections; } /// /// Preview: Request to join a lobby as a server. Only callable by a game_server entity and this is restricted to client /// owned lobbies which are using connections. /// [Serializable] public class JoinLobbyAsServerRequest : PlayFabRequestCommon { /// /// A field which indicates which lobby the game_server will be joining. This field is opaque to everyone except the Lobby /// service. /// public string ConnectionString; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The private key-value pairs which are visible to all entities in the lobby but can only be modified by the joined /// server.At most 30 key - value pairs may be stored here, keys are limited to 30 characters and values to 1000.The total /// size of all serverData values may not exceed 4096 bytes. /// public Dictionary ServerData; /// /// The game_server entity which is joining the Lobby. If a different game_server entity has already joined the request will /// fail unless the joined entity is disconnected, in which case the incoming game_server entity will replace the /// disconnected entity. /// public EntityKey ServerEntity; } [Serializable] public class JoinLobbyAsServerResult : PlayFabResultCommon { /// /// Successfully joined lobby's id. /// public string LobbyId; } /// /// Request to join a lobby. Only a client can join a lobby. /// [Serializable] public class JoinLobbyRequest : PlayFabRequestCommon { /// /// A field which indicates which lobby the user will be joining. This field is opaque to everyone except the Lobby service. /// public string ConnectionString; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The private key-value pairs used by the member to communicate information to other members and the owner. Visible to all /// entities in the lobby. At most 30 key-value pairs may be stored here, keys are limited to 30 characters and values to /// 1000. The total size of all memberData values may not exceed 4096 bytes.Keys are case sensitive. /// public Dictionary MemberData; /// /// The member entity who is joining the lobby. /// public EntityKey MemberEntity; } [Serializable] public class JoinLobbyResult : PlayFabResultCommon { /// /// Successfully joined lobby's id. /// public string LobbyId; } /// /// Add the player to a matchmaking ticket and specify all of its matchmaking attributes. Players can join a ticket if and /// only if their EntityKeys are already listed in the ticket's Members list. The matchmaking service automatically starts /// matching the ticket against other matchmaking tickets once all players have joined the ticket. It is not possible to /// join a ticket once it has started matching. /// [Serializable] public class JoinMatchmakingTicketRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The User who wants to join the ticket. Their Id must be listed in PlayFabIdsToMatchWith. /// public MatchmakingPlayer Member; /// /// The name of the queue to join. /// public string QueueName; /// /// The Id of the ticket to find a match for. /// public string TicketId; } [Serializable] public class JoinMatchmakingTicketResult : PlayFabResultCommon { } /// /// Preview: Request for server to leave a lobby. Only a game_server entity can leave and this is restricted to client owned /// lobbies which are using connections. /// [Serializable] public class LeaveLobbyAsServerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; /// /// The game_server entity leaving the lobby. If the game_server was subscribed to notifications, it will be unsubscribed. /// If a the given game_server entity is not in the lobby, it will fail. /// public EntityKey ServerEntity; } /// /// Request to leave a lobby. Only a client can leave a lobby. /// [Serializable] public class LeaveLobbyRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; /// /// The member entity leaving the lobby. /// public EntityKey MemberEntity; } [Serializable] public class LinearDifferenceRuleExpansion : PlayFabBaseModel { /// /// This value gets added to Difference at every expansion interval. /// public double Delta; /// /// Once the total difference reaches this value, expansion stops. Optional. /// public double? Limit; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class LinearRegionSelectionRuleExpansion : PlayFabBaseModel { /// /// This value gets added to MaxLatency at every expansion interval. /// public uint Delta; /// /// Once the max Latency reaches this value, expansion stops. /// public uint Limit; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class LinearSetIntersectionRuleExpansion : PlayFabBaseModel { /// /// This value gets added to MinIntersectionSize at every expansion interval. /// public uint Delta; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class LinearTeamDifferenceRuleExpansion : PlayFabBaseModel { /// /// This value gets added to Difference at every expansion interval. /// public double Delta; /// /// Once the total difference reaches this value, expansion stops. Optional. /// public double? Limit; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class LinearTeamSizeBalanceRuleExpansion : PlayFabBaseModel { /// /// This value gets added to Difference at every expansion interval. /// public uint Delta; /// /// Once the total difference reaches this value, expansion stops. Optional. /// public uint? Limit; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class LinuxInstrumentationConfiguration : PlayFabBaseModel { /// /// Designates whether Linux instrumentation configuration will be enabled for this Build /// public bool IsEnabled; } /// /// Returns a list of multiplayer server game asset summaries for a title. /// [Serializable] public class ListAssetSummariesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListAssetSummariesResponse : PlayFabResultCommon { /// /// The list of asset summaries. /// public List AssetSummaries; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of summarized details of all multiplayer server builds for a title. /// [Serializable] public class ListBuildAliasesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListBuildAliasesResponse : PlayFabResultCommon { /// /// The list of build aliases for the title /// public List BuildAliases; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of summarized details of all multiplayer server builds for a title. /// [Serializable] public class ListBuildSummariesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListBuildSummariesResponse : PlayFabResultCommon { /// /// The list of build summaries for a title. /// public List BuildSummaries; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of multiplayer server game certificates for a title. /// [Serializable] public class ListCertificateSummariesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListCertificateSummariesResponse : PlayFabResultCommon { /// /// The list of game certificates. /// public List CertificateSummaries; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of the container images that have been uploaded to the container registry for a title. /// [Serializable] public class ListContainerImagesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListContainerImagesResponse : PlayFabResultCommon { /// /// The list of container images. /// public List Images; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of the tags for a particular container image that exists in the container registry for a title. /// [Serializable] public class ListContainerImageTagsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The container images we want to list tags for. /// public string ImageName; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListContainerImageTagsResponse : PlayFabResultCommon { /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; /// /// The list of tags for a particular container image. /// public List Tags; } /// /// Gets a list of all the matchmaking queue configurations for the title. /// [Serializable] public class ListMatchmakingQueuesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class ListMatchmakingQueuesResult : PlayFabResultCommon { /// /// The list of matchmaking queue configs for this title. /// public List MatchMakingQueues; } /// /// If the caller is a title, the EntityKey in the request is required. If the caller is a player, then it is optional. If /// it is provided it must match the caller's entity. /// [Serializable] public class ListMatchmakingTicketsForPlayerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity key for which to find the ticket Ids. /// public EntityKey Entity; /// /// The name of the queue to find a match for. /// public string QueueName; } [Serializable] public class ListMatchmakingTicketsForPlayerResult : PlayFabResultCommon { /// /// The list of ticket Ids the user is a member of. /// public List TicketIds; } /// /// Returns a list of multiplayer servers for a build in a specific region. /// [Serializable] public class ListMultiplayerServersRequest : PlayFabRequestCommon { /// /// The guid string build ID of the multiplayer servers to list. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The region the multiplayer servers to list. /// public string Region; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListMultiplayerServersResponse : PlayFabResultCommon { /// /// The list of multiplayer server summary details. /// public List MultiplayerServerSummaries; /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of quality of service servers for party. /// [Serializable] public class ListPartyQosServersRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class ListPartyQosServersResponse : PlayFabResultCommon { /// /// The page size on the response. /// public int PageSize; /// /// The list of QoS servers. /// public List QosServers; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of quality of service servers for a title. /// [Serializable] public class ListQosServersForTitleRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Indicates that the response should contain Qos servers for all regions, including those where there are no builds /// deployed for the title. /// public bool? IncludeAllRegions; /// /// Indicates the Routing Preference used by the Qos servers. The default Routing Preference is Microsoft /// public string RoutingPreference; } [Serializable] public class ListQosServersForTitleResponse : PlayFabResultCommon { /// /// The page size on the response. /// public int PageSize; /// /// The list of QoS servers. /// public List QosServers; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// Returns a list of multiplayer server game secrets for a title. /// [Serializable] public class ListSecretSummariesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListSecretSummariesResponse : PlayFabResultCommon { /// /// The page size on the response. /// public int PageSize; /// /// The list of game secret. /// public List SecretSummaries; /// /// The skip token for the paged response. /// public string SkipToken; } /// /// List all server backfill ticket Ids the user is a member of. /// [Serializable] public class ListServerBackfillTicketsForPlayerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity key for which to find the ticket Ids. /// public EntityKey Entity; /// /// The name of the queue the tickets are in. /// public string QueueName; } [Serializable] public class ListServerBackfillTicketsForPlayerResult : PlayFabResultCommon { /// /// The list of backfill ticket Ids the user is a member of. /// public List TicketIds; } /// /// List all server quota change requests for a title. /// [Serializable] public class ListTitleMultiplayerServersQuotaChangesRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class ListTitleMultiplayerServersQuotaChangesResponse : PlayFabResultCommon { /// /// All change requests for this title. /// public List Changes; } /// /// Returns a list of virtual machines for a title. /// [Serializable] public class ListVirtualMachineSummariesRequest : PlayFabRequestCommon { /// /// The guid string build ID of the virtual machines to list. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The page size for the request. /// public int? PageSize; /// /// The region of the virtual machines to list. /// public string Region; /// /// The skip token for the paged request. /// public string SkipToken; } [Serializable] public class ListVirtualMachineSummariesResponse : PlayFabResultCommon { /// /// The page size on the response. /// public int PageSize; /// /// The skip token for the paged response. /// public string SkipToken; /// /// The list of virtual machine summaries. /// public List VirtualMachines; } [Serializable] public class Lobby : PlayFabBaseModel { /// /// A setting indicating who is allowed to join this lobby, as well as see it in queries. /// public AccessPolicy AccessPolicy; /// /// A number that increments once for each request that modifies the lobby. /// public uint ChangeNumber; /// /// A string used to join the lobby. This field is populated by the Lobby service. Invites are performed by communicating /// this connectionString to other players. /// public string ConnectionString; /// /// Lobby data. /// public Dictionary LobbyData; /// /// Id to uniquely identify a lobby. /// public string LobbyId; /// /// The maximum number of players allowed in the lobby. /// public uint MaxPlayers; /// /// Array of all lobby members. /// public List Members; /// /// A setting indicating whether members are allowed to join this lobby. When Locked new members are prevented from joining. /// public MembershipLock MembershipLock; /// /// The client or server entity which owns this lobby. /// public EntityKey Owner; /// /// A setting indicating the owner migration policy. If server owned, this field is not present. /// public OwnerMigrationPolicy? OwnerMigrationPolicy; /// /// An opaque string stored on a SubscribeToLobbyResource call, which indicates the connection an owner or member has with /// PubSub. /// public string PubSubConnectionHandle; /// /// Search data. /// public Dictionary SearchData; /// /// Preview: Lobby joined server. This is not the server owner, rather the server that has joined a client owned lobby. /// public LobbyServer Server; /// /// A flag which determines if connections are used. Defaults to true. Only set on create. /// public bool UseConnections; } [Serializable] public class LobbyEmptyResult : PlayFabResultCommon { } [Serializable] public class LobbyServer : PlayFabBaseModel { /// /// Opaque string, stored on a Subscribe call, which indicates the connection a joined server has with PubSub. /// public string PubSubConnectionHandle; /// /// Key-value pairs specific to the joined server. /// public Dictionary ServerData; /// /// The server entity key. /// public EntityKey ServerEntity; } [Serializable] public class LobbySummary : PlayFabBaseModel { /// /// A string used to join the lobby.This field is populated by the Lobby service.Invites are performed by communicating this /// connectionString to other players. /// public string ConnectionString; /// /// The current number of players in the lobby. /// public uint CurrentPlayers; /// /// Id to uniquely identify a lobby. /// public string LobbyId; /// /// The maximum number of players allowed in the lobby. /// public uint MaxPlayers; /// /// A setting indicating whether members are allowed to join this lobby. When Locked new members are prevented from joining. /// public MembershipLock? MembershipLock; /// /// The client or server entity which owns this lobby. /// public EntityKey Owner; /// /// Search data. /// public Dictionary SearchData; } /// /// A user in a matchmaking ticket. /// [Serializable] public class MatchmakingPlayer : PlayFabBaseModel { /// /// The user's attributes custom to the title. /// public MatchmakingPlayerAttributes Attributes; /// /// The entity key of the matchmaking user. /// public EntityKey Entity; } /// /// The matchmaking attributes for a user. /// [Serializable] public class MatchmakingPlayerAttributes : PlayFabBaseModel { /// /// A data object representing a user's attributes. /// public object DataObject; /// /// An escaped data object representing a user's attributes. /// public string EscapedDataObject; } /// /// A player in a created matchmaking match with a team assignment. /// [Serializable] public class MatchmakingPlayerWithTeamAssignment : PlayFabBaseModel { /// /// The user's attributes custom to the title. These attributes will be null unless the request has ReturnMemberAttributes /// flag set to true. /// public MatchmakingPlayerAttributes Attributes; /// /// The entity key of the matchmaking user. /// public EntityKey Entity; /// /// The Id of the team the User is assigned to. /// public string TeamId; } [Serializable] public class MatchmakingQueueConfig : PlayFabBaseModel { /// /// This is the buildAlias that will be used to allocate the multiplayer server for the match. /// public BuildAliasParams BuildAliasParams; /// /// This is the buildId that will be used to allocate the multiplayer server for the match. /// public string BuildId; /// /// List of difference rules used to find an optimal match. /// public List DifferenceRules; /// /// List of match total rules used to find an optimal match. /// public List MatchTotalRules; /// /// Maximum number of players in a match. /// public uint MaxMatchSize; /// /// Maximum number of players in a ticket. Optional. /// public uint? MaxTicketSize; /// /// Minimum number of players in a match. /// public uint MinMatchSize; /// /// Unique identifier for a Queue. Chosen by the developer. /// public string Name; /// /// Region selection rule used to find an optimal match. /// public RegionSelectionRule RegionSelectionRule; /// /// Boolean flag to enable server allocation for the queue. /// public bool ServerAllocationEnabled; /// /// List of set intersection rules used to find an optimal match. /// public List SetIntersectionRules; /// /// Controls which statistics are visible to players. /// public StatisticsVisibilityToPlayers StatisticsVisibilityToPlayers; /// /// List of string equality rules used to find an optimal match. /// public List StringEqualityRules; /// /// List of team difference rules used to find an optimal match. /// public List TeamDifferenceRules; /// /// The team configuration for a match. This may be null if there are no teams. /// public List Teams; /// /// Team size balance rule used to find an optimal match. /// public TeamSizeBalanceRule TeamSizeBalanceRule; /// /// Team ticket size similarity rule used to find an optimal match. /// public TeamTicketSizeSimilarityRule TeamTicketSizeSimilarityRule; } [Serializable] public class MatchmakingQueueTeam : PlayFabBaseModel { /// /// The maximum number of players required for the team. /// public uint MaxTeamSize; /// /// The minimum number of players required for the team. /// public uint MinTeamSize; /// /// A name to identify the team. This is case insensitive. /// public string Name; } [Serializable] public class MatchTotalRule : PlayFabBaseModel { /// /// Description of the attribute used by this rule to match tickets. /// public QueueRuleAttribute Attribute; /// /// Collection of fields relating to expanding this rule at set intervals. /// public MatchTotalRuleExpansion Expansion; /// /// The maximum total value for a group. Must be >= Min. /// public double Max; /// /// The minimum total value for a group. Must be >=2. /// public double Min; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; /// /// The relative weight of this rule compared to others. /// public double Weight; } [Serializable] public class MatchTotalRuleExpansion : PlayFabBaseModel { /// /// Manually specify the values to use for each expansion interval. When this is set, Max is ignored. /// public List MaxOverrides; /// /// Manually specify the values to use for each expansion interval. When this is set, Min is ignored. /// public List MinOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } [Serializable] public class Member : PlayFabBaseModel { /// /// Key-value pairs specific to member. /// public Dictionary MemberData; /// /// The member entity key. /// public EntityKey MemberEntity; /// /// Opaque string, stored on a Subscribe call, which indicates the connection an owner or member has with PubSub. /// public string PubSubConnectionHandle; } public enum MembershipLock { Unlocked, Locked } [Serializable] public class MonitoringApplicationConfiguration : PlayFabBaseModel { /// /// Asset which contains the monitoring application files and scripts. /// public AssetReference AssetReference; /// /// Execution script name, this will be the main executable for the monitoring application. /// public string ExecutionScriptName; /// /// Installation script name, this will be run before the ExecutionScript. /// public string InstallationScriptName; /// /// Timespan the monitoring application will be kept alive when running from the start of the VM /// public double? OnStartRuntimeInMinutes; } [Serializable] public class MonitoringApplicationConfigurationParams : PlayFabBaseModel { /// /// Asset which contains the monitoring application files and scripts. /// public AssetReferenceParams AssetReference; /// /// Execution script name, this will be the main executable for the monitoring application. /// public string ExecutionScriptName; /// /// Installation script name, this will be run before the ExecutionScript. /// public string InstallationScriptName; /// /// Timespan the monitoring application will be kept alive when running from the start of the VM /// public double? OnStartRuntimeInMinutes; } [Serializable] public class MultiplayerServerSummary : PlayFabBaseModel { /// /// The connected players in the multiplayer server. /// public List ConnectedPlayers; /// /// The time (UTC) at which a change in the multiplayer server state was observed. /// public DateTime? LastStateTransitionTime; /// /// The region the multiplayer server is located in. /// public string Region; /// /// The string server ID of the multiplayer server generated by PlayFab. /// public string ServerId; /// /// The title generated guid string session ID of the multiplayer server. /// public string SessionId; /// /// The state of the multiplayer server. /// public string State; /// /// The virtual machine ID that the multiplayer server is located on. /// public string VmId; } public enum OsPlatform { Windows, Linux } [Serializable] public class OverrideDouble : PlayFabBaseModel { /// /// The custom expansion value. /// public double Value; } [Serializable] public class OverrideUnsignedInt : PlayFabBaseModel { /// /// The custom expansion value. /// public uint Value; } public enum OwnerMigrationPolicy { None, Automatic, Manual, Server } [Serializable] public class PaginationRequest : PlayFabBaseModel { /// /// Continuation token returned as a result in a previous FindLobbies call. Cannot be specified by clients. /// public string ContinuationToken; /// /// The number of lobbies that should be retrieved. Cannot be specified by servers, clients may specify any value up to 50 /// public uint? PageSizeRequested; } [Serializable] public class PaginationResponse : PlayFabBaseModel { /// /// Continuation token returned by server call. Not returned for clients /// public string ContinuationToken; /// /// The number of lobbies that matched the search request. /// public uint? TotalMatchedLobbyCount; } [Serializable] public class PartyInvitationConfiguration : PlayFabBaseModel { /// /// The list of PlayFab EntityKeys that the invitation allows to authenticate into the network. If this list is empty, all /// users are allowed to authenticate using the invitation's identifier. This list may contain no more than 1024 items. /// public List EntityKeys; /// /// The invite identifier for this party. If this value is specified, it must be no longer than 127 characters. /// public string Identifier; /// /// Controls which participants can revoke this invite. /// public string Revocability; } public enum PartyInvitationRevocability { Creator, Anyone } [Serializable] public class PartyNetworkConfiguration : PlayFabBaseModel { /// /// Controls whether and how to support direct peer-to-peer connection attempts among devices in the network. /// public string DirectPeerConnectivityOptions; /// /// The maximum number of devices allowed to connect to the network. Must be between 1 and 128, inclusive. /// public uint MaxDevices; /// /// The maximum number of devices allowed per user. Must be greater than 0. /// public uint MaxDevicesPerUser; /// /// The maximum number of endpoints allowed per device. Must be between 0 and 32, inclusive. /// public uint MaxEndpointsPerDevice; /// /// The maximum number of unique users allowed in the network. Must be greater than 0. /// public uint MaxUsers; /// /// The maximum number of users allowed per device. Must be between 1 and 8, inclusive. /// public uint MaxUsersPerDevice; /// /// An optionally-specified configuration for the initial invitation for this party. If not provided, default configuration /// values will be used: a title-unique invitation identifier will be generated, the revocability will be Anyone, and the /// EntityID list will be empty. /// public PartyInvitationConfiguration PartyInvitationConfiguration; } [Serializable] public class Port : PlayFabBaseModel { /// /// The name for the port. /// public string Name; /// /// The number for the port. /// public int Num; /// /// The protocol for the port. /// public ProtocolType Protocol; } public enum ProtocolType { TCP, UDP } [Serializable] public class PublicIpAddress : PlayFabBaseModel { /// /// FQDN of the public IP /// public string FQDN; /// /// Server IP Address /// public string IpAddress; /// /// Routing Type of the public IP. /// public string RoutingType; } [Serializable] public class QosServer : PlayFabBaseModel { /// /// The region the QoS server is located in. /// public string Region; /// /// The QoS server URL. /// public string ServerUrl; } [Serializable] public class QueueRuleAttribute : PlayFabBaseModel { /// /// Specifies which attribute in a ticket to use. /// public string Path; /// /// Specifies which source the attribute comes from. /// public AttributeSource Source; } [Serializable] public class QuotaChange : PlayFabBaseModel { /// /// A brief description of the requested changes. /// public string ChangeDescription; /// /// Requested changes to make to the titles cores quota. /// public List Changes; /// /// Whether or not this request is pending a review. /// public bool IsPendingReview; /// /// Additional information about this request that our team can use to better understand the requirements. /// public string Notes; /// /// Id of the change request. /// public string RequestId; /// /// Comments by our team when a request is reviewed. /// public string ReviewComments; /// /// Whether or not this request was approved. /// public bool WasApproved; } [Serializable] public class RegionSelectionRule : PlayFabBaseModel { /// /// Controls how the Max Latency parameter expands over time. Only one expansion can be set per rule. When this is set, /// MaxLatency is ignored. /// public CustomRegionSelectionRuleExpansion CustomExpansion; /// /// Controls how the Max Latency parameter expands over time. Only one expansion can be set per rule. /// public LinearRegionSelectionRuleExpansion LinearExpansion; /// /// Specifies the maximum latency that is allowed between the client and the selected server. The value is in milliseconds. /// public uint MaxLatency; /// /// Friendly name chosen by developer. /// public string Name; /// /// Specifies which attribute in a ticket to use. /// public string Path; /// /// 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. /// public uint? SecondsUntilOptional; /// /// The relative weight of this rule compared to others. /// public double Weight; } /// /// Deletes the configuration for a queue. This will permanently delete the configuration and players will no longer be able /// to match in the queue. All outstanding matchmaking tickets will be cancelled. /// [Serializable] public class RemoveMatchmakingQueueRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The Id of the matchmaking queue to remove. /// public string QueueName; } [Serializable] public class RemoveMatchmakingQueueResult : PlayFabResultCommon { } /// /// Request to remove a member from a lobby. Owners may remove other members from a lobby. Members cannot remove themselves /// (use LeaveLobby instead). /// [Serializable] public class RemoveMemberFromLobbyRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; /// /// The member entity to be removed from the lobby. /// public EntityKey MemberEntity; /// /// If true, removed member can never rejoin this lobby. /// public bool PreventRejoin; } /// /// Requests a multiplayer server session from a particular build in any of the given preferred regions. /// [Serializable] public class RequestMultiplayerServerRequest : PlayFabRequestCommon { /// /// The identifiers of the build alias to use for the request. /// public BuildAliasParams BuildAliasParams; /// /// The guid string build ID of the multiplayer server to request. /// public string BuildId; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Initial list of players (potentially matchmade) allowed to connect to the game. This list is passed to the game server /// when requested (via GSDK) and can be used to validate players connecting to it. /// public List InitialPlayers; /// /// The preferred regions to request a multiplayer server from. The Multiplayer Service will iterate through the regions in /// the specified order and allocate a server from the first one that has servers available. /// public List PreferredRegions; /// /// Data encoded as a string that is passed to the game server when requested. This can be used to to communicate /// information such as game mode or map through the request flow. /// public string SessionCookie; /// /// A guid string session ID created track the multiplayer server session over its life. /// public string SessionId; } [Serializable] public class RequestMultiplayerServerResponse : PlayFabResultCommon { /// /// The identity of the build in which the server was allocated. /// public string BuildId; /// /// The connected players in the multiplayer server. /// public List ConnectedPlayers; /// /// The fully qualified domain name of the virtual machine that is hosting this multiplayer server. /// public string FQDN; /// /// The public IPv4 address of the virtual machine that is hosting this multiplayer server. /// public string IPV4Address; /// /// The time (UTC) at which a change in the multiplayer server state was observed. /// public DateTime? LastStateTransitionTime; /// /// The ports the multiplayer server uses. /// public List Ports; /// /// The list of public Ipv4 addresses associated with the server. /// public List PublicIPV4Addresses; /// /// The region the multiplayer server is located in. /// public string Region; /// /// The string server ID of the multiplayer server generated by PlayFab. /// public string ServerId; /// /// The guid string session ID of the multiplayer server. /// public string SessionId; /// /// The state of the multiplayer server. /// public string State; /// /// The virtual machine ID that the multiplayer server is located on. /// public string VmId; } /// /// Requests a party session from a particular set of builds if build alias params is provided, in any of the given /// preferred regions. /// [Serializable] public class RequestPartyServiceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The network configuration for this request. /// public PartyNetworkConfiguration NetworkConfiguration; /// /// A guid string party ID created track the party session over its life. /// public string PartyId; /// /// The preferred regions to request a party session from. The party service will iterate through the regions in the /// specified order and allocate a party session from the first one that is available. /// public List PreferredRegions; } [Serializable] public class RequestPartyServiceResponse : PlayFabResultCommon { /// /// The invitation identifier supplied in the PartyInvitationConfiguration, or the PlayFab-generated guid if none was /// supplied. /// public string InvitationId; /// /// The guid string party ID of the party session. /// public string PartyId; /// /// A base-64 encoded string containing the serialized network descriptor for this party. /// public string SerializedNetworkDescriptor; } /// /// Gets new credentials to the container registry where game developers can upload custom container images to before /// creating a new build. /// [Serializable] public class RolloverContainerRegistryCredentialsRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } [Serializable] public class RolloverContainerRegistryCredentialsResponse : PlayFabResultCommon { /// /// The url of the container registry. /// public string DnsName; /// /// The password for accessing the container registry. /// public string Password; /// /// The username for accessing the container registry. /// public string Username; } public enum RoutingType { Microsoft, Internet } [Serializable] public class Schedule : PlayFabBaseModel { /// /// A short description about this schedule. For example, "Game launch on July 15th". /// public string Description; /// /// The date and time in UTC at which the schedule ends. If IsRecurringWeekly is true, this schedule will keep renewing for /// future weeks until disabled or removed. /// public DateTime EndTime; /// /// Disables the schedule. /// public bool IsDisabled; /// /// If true, the StartTime and EndTime will get renewed every week. /// public bool IsRecurringWeekly; /// /// The date and time in UTC at which the schedule starts. /// public DateTime StartTime; /// /// The standby target to maintain for the duration of the schedule. /// public int TargetStandby; } [Serializable] public class ScheduledStandbySettings : PlayFabBaseModel { /// /// When true, scheduled standby will be enabled /// public bool IsEnabled; /// /// A list of non-overlapping schedules /// public List ScheduleList; } [Serializable] public class Secret : PlayFabBaseModel { /// /// Optional secret expiration date. /// public DateTime? ExpirationDate; /// /// A name for the secret. This is used to reference secrets in build configurations. /// public string Name; /// /// Secret value. /// public string Value; } [Serializable] public class SecretSummary : PlayFabBaseModel { /// /// Optional secret expiration date. /// public DateTime? ExpirationDate; /// /// The name of the secret. /// public string Name; /// /// The secret version auto-generated after upload. /// public string Version; } [Serializable] public class ServerDetails : PlayFabBaseModel { /// /// The fully qualified domain name of the virtual machine that is hosting this multiplayer server. /// public string Fqdn; /// /// The IPv4 address of the virtual machine that is hosting this multiplayer server. /// public string IPV4Address; /// /// The ports the multiplayer server uses. /// public List Ports; /// /// The server's region. /// public string Region; /// /// The string server ID of the multiplayer server generated by PlayFab. /// public string ServerId; } [Serializable] public class ServerResourceConstraintParams : PlayFabBaseModel { /// /// The maximum number of cores that each server is allowed to use. /// public double CpuLimit; /// /// The maximum number of GiB of memory that each server is allowed to use. WARNING: After exceeding this limit, the server /// will be killed /// public double MemoryLimitGB; } public enum ServerType { Container, Process } [Serializable] public class SetIntersectionRule : PlayFabBaseModel { /// /// Description of the attribute used by this rule to match tickets. /// public QueueRuleAttribute Attribute; /// /// Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity /// profile. /// public AttributeNotSpecifiedBehavior AttributeNotSpecifiedBehavior; /// /// 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. /// public CustomSetIntersectionRuleExpansion CustomExpansion; /// /// The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that /// AttributeNotSpecifiedBehavior is UseDefault). Values must be unique. /// public List DefaultAttributeValue; /// /// Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. /// public LinearSetIntersectionRuleExpansion LinearExpansion; /// /// The minimum number of values that must match between sets. /// public uint MinIntersectionSize; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; /// /// The relative weight of this rule compared to others. /// public double Weight; } /// /// Use this API to create or update matchmaking queue configurations. The queue configuration defines the matchmaking /// rules. The matchmaking service will match tickets together according to the configured rules. Queue resources are not /// spun up by calling this API. Queues are created when the first ticket is submitted. /// [Serializable] public class SetMatchmakingQueueRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The matchmaking queue config. /// public MatchmakingQueueConfig MatchmakingQueue; } [Serializable] public class SetMatchmakingQueueResult : PlayFabResultCommon { } /// /// Executes the shutdown callback from the GSDK and terminates the multiplayer server session. The callback in the GSDK /// will allow for graceful shutdown with a 15 minute timeoutIf graceful shutdown has not been completed before 15 minutes /// have elapsed, the multiplayer server session will be forcefully terminated on it's own. /// [Serializable] public class ShutdownMultiplayerServerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// A guid string session ID of the multiplayer server to shut down. /// public string SessionId; } [Serializable] public class Statistics : PlayFabBaseModel { /// /// The average. /// public double Average; /// /// The 50th percentile. /// public double Percentile50; /// /// The 90th percentile. /// public double Percentile90; /// /// The 99th percentile. /// public double Percentile99; } [Serializable] public class StatisticsVisibilityToPlayers : PlayFabBaseModel { /// /// Whether to allow players to view the current number of players in the matchmaking queue. /// public bool ShowNumberOfPlayersMatching; /// /// Whether to allow players to view statistics representing the time it takes for tickets to find a match. /// public bool ShowTimeToMatch; } [Serializable] public class StringEqualityRule : PlayFabBaseModel { /// /// Description of the attribute used by this rule to match tickets. /// public QueueRuleAttribute Attribute; /// /// Describes the behavior when an attribute is not specified in the ticket creation request or in the user's entity /// profile. /// public AttributeNotSpecifiedBehavior AttributeNotSpecifiedBehavior; /// /// The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that /// AttributeNotSpecifiedBehavior is false). /// public string DefaultAttributeValue; /// /// 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. /// public StringEqualityRuleExpansion Expansion; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; /// /// The relative weight of this rule compared to others. /// public double Weight; } [Serializable] public class StringEqualityRuleExpansion : PlayFabBaseModel { /// /// List of bools specifying whether the rule is applied during this expansion. /// public List EnabledOverrides; /// /// How many seconds before this rule is expanded. /// public uint SecondsBetweenExpansions; } /// /// Request to subscribe to lobby resource notifications. /// [Serializable] public class SubscribeToLobbyResourceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity performing the subscription. /// public EntityKey EntityKey; /// /// Opaque string, given to a client upon creating a connection with PubSub. /// public string PubSubConnectionHandle; /// /// The name of the resource to subscribe to. /// public string ResourceId; /// /// Version number for the subscription of this resource. /// public uint SubscriptionVersion; /// /// Subscription type. /// public SubscriptionType Type; } [Serializable] public class SubscribeToLobbyResourceResult : PlayFabResultCommon { /// /// Topic will be returned in all notifications that are the result of this subscription. /// public string Topic; } /// /// Subscribe to match resource notifications. Match subscriptions have two types; MatchInvite and MatchTicketStatusChange /// [Serializable] public class SubscribeToMatchResourceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity performing the subscription. The entity must be authorized to use this connectionHandle. /// public EntityKey EntityKey; /// /// Opaque string, given to a client upon creating a connection with PubSub. Notifications will be sent to the connection /// associated with this handle. /// public string PubSubConnectionHandle; /// /// The name of the resource to subscribe to. It follows the format {queueName}|{ticketId} for MatchTicketStatusChange. For /// MatchInvite, ResourceId is @me. /// public string ResourceId; /// /// Version number for the subscription of this resource. Current supported version must be 1. /// public uint SubscriptionVersion; /// /// Subscription type. MatchInvite subscriptions are per-player. MatchTicketStatusChange subscriptions are per-ticket. /// Subscribe calls are idempotent. Subscribing on the same resource for the same connection results in success. /// public string Type; } [Serializable] public class SubscribeToMatchResourceResult : PlayFabResultCommon { /// /// Matchmaking resource /// public string Topic; } public enum SubscriptionType { LobbyChange, LobbyInvite } [Serializable] public class TeamDifferenceRule : PlayFabBaseModel { /// /// Description of the attribute used by this rule to match teams. /// public QueueRuleAttribute Attribute; /// /// 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. /// public CustomTeamDifferenceRuleExpansion CustomExpansion; /// /// The default value assigned to tickets that are missing the attribute specified by AttributePath (assuming that /// AttributeNotSpecifiedBehavior is false). /// public double DefaultAttributeValue; /// /// The allowed difference between any two teams at the start of matchmaking. /// public double Difference; /// /// Collection of fields relating to expanding this rule at set intervals. Only one expansion can be set per rule. /// public LinearTeamDifferenceRuleExpansion LinearExpansion; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; } [Serializable] public class TeamSizeBalanceRule : PlayFabBaseModel { /// /// Controls how the Difference parameter expands over time. Only one expansion can be set per rule. When this is set, /// Difference is ignored. /// public CustomTeamSizeBalanceRuleExpansion CustomExpansion; /// /// The allowed difference in team size between any two teams. /// public uint Difference; /// /// Controls how the Difference parameter expands over time. Only one expansion can be set per rule. /// public LinearTeamSizeBalanceRuleExpansion LinearExpansion; /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; } [Serializable] public class TeamTicketSizeSimilarityRule : PlayFabBaseModel { /// /// Friendly name chosen by developer. /// public string Name; /// /// 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. /// public uint? SecondsUntilOptional; } public enum TitleMultiplayerServerEnabledStatus { Initializing, Enabled, Disabled } [Serializable] public class TitleMultiplayerServersQuotas : PlayFabBaseModel { /// /// The core capacity for the various regions and VM Family /// public List CoreCapacities; } /// /// Request to unsubscribe from lobby notifications. /// [Serializable] public class UnsubscribeFromLobbyResourceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity which performed the subscription. /// public EntityKey EntityKey; /// /// Opaque string, given to a client upon creating a connection with PubSub. /// public string PubSubConnectionHandle; /// /// The name of the resource to unsubscribe from. /// public string ResourceId; /// /// Version number passed for the subscription of this resource. /// public uint SubscriptionVersion; /// /// Subscription type. /// public SubscriptionType Type; } /// /// Unsubscribe from a Match resource's notifications. For MatchInvite, players are expected to unsubscribe once they can no /// longer accept invites. For MatchTicketStatusChange, players are expected to unsusbcribe once the ticket has reached a /// canceled or matched state. /// [Serializable] public class UnsubscribeFromMatchResourceRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The entity performing the unsubscription. The entity must be authorized to use this connectionHandle. /// public EntityKey EntityKey; /// /// Opaque string, given to a client upon creating a connection with PubSub. /// public string PubSubConnectionHandle; /// /// The name of the resource to unsubscribe from. It follows the format {queueName}|{ticketId} for MatchTicketStatusChange. /// For MatchInvite, ResourceId is @me. /// public string ResourceId; /// /// Version number for the unsubscription from this resource. /// public uint SubscriptionVersion; /// /// Type of the subscription to be canceled. /// public string Type; } [Serializable] public class UnsubscribeFromMatchResourceResult : PlayFabResultCommon { } /// /// Removes the specified tag from the image. After this operation, a 'docker pull' will fail for the specified image and /// tag combination. Morever, ListContainerImageTags will not return the specified tag. /// [Serializable] public class UntagContainerImageRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The container image which tag we want to remove. /// public string ImageName; /// /// The tag we want to remove. /// public string Tag; } /// /// Creates a multiplayer server build alias and returns the created alias. /// [Serializable] public class UpdateBuildAliasRequest : PlayFabRequestCommon { /// /// The guid string alias Id of the alias to be updated. /// public string AliasId; /// /// The alias name. /// public string AliasName; /// /// Array of build selection criteria. /// public List BuildSelectionCriteria; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Updates a multiplayer server build's name. /// [Serializable] public class UpdateBuildNameRequest : PlayFabRequestCommon { /// /// The guid string ID of the build we want to update the name of. /// public string BuildId; /// /// The build name. /// public string BuildName; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Updates a multiplayer server build's region. /// [Serializable] public class UpdateBuildRegionRequest : PlayFabRequestCommon { /// /// The guid string ID of the build we want to update regions for. /// public string BuildId; /// /// The updated region configuration that should be applied to the specified build. /// public BuildRegionParams BuildRegion; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Updates a multiplayer server build's regions. /// [Serializable] public class UpdateBuildRegionsRequest : PlayFabRequestCommon { /// /// The guid string ID of the build we want to update regions for. /// public string BuildId; /// /// The updated region configuration that should be applied to the specified build. /// public List BuildRegions; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; } /// /// Preview: Request to update the serverData and serverEntity in case of migration. Only a game_server entity can update /// this information and this is restricted to client owned lobbies which are using connections. /// [Serializable] public class UpdateLobbyAsServerRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The id of the lobby. /// public string LobbyId; /// /// The private key-value pairs which are visible to all entities in the lobby and modifiable by the joined server. /// Optional. Sets or updates key-value pairs on the lobby. Only the current lobby lobby server can set serverData. Keys may /// be an arbitrary string of at most 30 characters. The total size of all serverData values may not exceed 4096 bytes. /// Values are not individually limited. There can be up to 30 key-value pairs stored here. Keys are case sensitive. /// public Dictionary ServerData; /// /// The keys to delete from the lobby serverData. Optional. Optional. Deletes key-value pairs on the lobby. Only the current /// joined lobby server can delete serverData. All the specified keys will be removed from the serverData. Keys that do not /// exist in the lobby are a no-op. If the key to delete exists in the serverData (same request) it will result in a bad /// request. /// public List ServerDataToDelete; /// /// The lobby server. Optional. Set a different server as the joined server of the lobby (there can only be 1 joined /// server). When changing the server the previous server will automatically be unsubscribed. /// public EntityKey ServerEntity; } /// /// Request to update a lobby. /// [Serializable] public class UpdateLobbyRequest : PlayFabRequestCommon { /// /// The policy indicating who is allowed to join the lobby, and the visibility to queries. May be 'Public', 'Friends' or /// 'Private'. Public means the lobby is both visible in queries and any player may join, including invited players. Friends /// means that users who are bidirectional friends of members in the lobby may search to find friend lobbies, to retrieve /// its connection string. Private means the lobby is not visible in queries, and a player must receive an invitation to /// join. Defaults to 'Public' on creation. Can only be changed by the lobby owner. /// public AccessPolicy? AccessPolicy; /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// The private key-value pairs which are visible to all entities in the lobby. Optional. Sets or updates key-value pairs on /// the lobby. Only the current lobby owner can set lobby data. Keys may be an arbitrary string of at most 30 characters. /// The total size of all lobbyData values may not exceed 4096 bytes. Values are not individually limited. There can be up /// to 30 key-value pairs stored here. Keys are case sensitive. /// public Dictionary LobbyData; /// /// The keys to delete from the lobby LobbyData. Optional. Behaves similar to searchDataToDelete, but applies to lobbyData. /// public List LobbyDataToDelete; /// /// The id of the lobby. /// public string LobbyId; /// /// The maximum number of players allowed in the lobby. Updates the maximum allowed number of players in the lobby. Only the /// current lobby owner can set this. If set, the value must be greater than or equal to the number of members currently in /// the lobby. /// public uint? MaxPlayers; /// /// The private key-value pairs used by the member to communicate information to other members and the owner. Optional. Sets /// or updates new key-value pairs on the caller's member data. New keys will be added with their values and existing keys /// will be updated with the new values. Visible to all entities in the lobby. At most 30 key-value pairs may be stored /// here, keys are limited to 30 characters and values to 1000. The total size of all memberData values may not exceed 4096 /// bytes. Keys are case sensitive. Servers cannot specifiy this. /// public Dictionary MemberData; /// /// The keys to delete from the lobby MemberData. Optional. Deletes key-value pairs on the caller's member data. All the /// specified keys will be removed from the caller's member data. Keys that do not exist are a no-op. If the key to delete /// exists in the memberData (same request) it will result in a bad request. Servers cannot specifiy this. /// public List MemberDataToDelete; /// /// The member entity whose data is being modified. Servers cannot specify this. /// public EntityKey MemberEntity; /// /// A setting indicating whether the lobby is locked. May be 'Unlocked' or 'Locked'. When Locked new members are not allowed /// to join. Defaults to 'Unlocked' on creation. Can only be changed by the lobby owner. /// public MembershipLock? MembershipLock; /// /// The lobby owner. Optional. Set to transfer ownership of the lobby. If client - owned and 'Automatic' - The Lobby service /// will automatically assign another connected owner when the current owner leaves or disconnects. useConnections must be /// true. If client - owned and 'Manual' - Ownership is protected as long as the current owner is connected. If the current /// owner leaves or disconnects any member may set themselves as the current owner. The useConnections property must be /// true. If client-owned and 'None' - Any member can set ownership. The useConnections property can be either true or /// false. For all client-owned lobbies when the owner leaves and a new owner can not be automatically selected - The owner /// field is set to null. For all client-owned lobbies when the owner disconnects and a new owner can not be automatically /// selected - The owner field remains unchanged and the current owner retains all owner abilities for the lobby. If /// server-owned (must be 'Server') - Any server can set ownership. The useConnections property must be true. /// public EntityKey Owner; /// /// The public key-value pairs which allow queries to differentiate between lobbies. Optional. Sets or updates key-value /// pairs on the lobby for use with queries. Only the current lobby owner can set search data. New keys will be added with /// their values and existing keys will be updated with the new values. There can be up to 30 key-value pairs stored here. /// Keys are of the format string_key1, string_key2... string_key30 for string values, or number_key1, number_key2, ... /// number_key30 for numeric values. Numeric values are floats. Values can be at most 256 characters long. The total size of /// all searchData values may not exceed 1024 bytes.Keys are case sensitive. /// public Dictionary SearchData; /// /// The keys to delete from the lobby SearchData. Optional. Deletes key-value pairs on the lobby. Only the current lobby /// owner can delete search data. All the specified keys will be removed from the search data. Keys that do not exist in the /// lobby are a no-op.If the key to delete exists in the searchData (same request) it will result in a bad request. /// public List SearchDataToDelete; } /// /// Uploads a multiplayer server game certificate. /// [Serializable] public class UploadCertificateRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Forces the certificate renewal if the certificate already exists. Default is false /// public bool? ForceUpdate; /// /// The game certificate to upload. /// public Certificate GameCertificate; } /// /// Uploads a multiplayer server game secret. /// [Serializable] public class UploadSecretRequest : PlayFabRequestCommon { /// /// The optional custom tags associated with the request (e.g. build number, external trace identifiers, etc.). /// public Dictionary CustomTags; /// /// Forces the secret renewal if the secret already exists. Default is false /// public bool? ForceUpdate; /// /// The game secret to add. /// public Secret GameSecret; } [Serializable] public class VirtualMachineSummary : PlayFabBaseModel { /// /// The virtual machine health status. /// public string HealthStatus; /// /// The virtual machine state. /// public string State; /// /// The virtual machine ID. /// public string VmId; } [Serializable] public class VmStartupScriptConfiguration : PlayFabBaseModel { /// /// Optional port requests (name/protocol) that will be used by the VmStartupScript. Max of 5 requests. /// public List PortRequests; /// /// Asset which contains the VmStartupScript script and any other required files. /// public AssetReference VmStartupScriptAssetReference; } [Serializable] public class VmStartupScriptParams : PlayFabBaseModel { /// /// Optional port requests (name/protocol) that will be used by the VmStartupScript. Max of 5 requests. /// public List PortRequests; /// /// Asset which contains the VmStartupScript script and any other required files. /// public AssetReferenceParams VmStartupScriptAssetReference; } [Serializable] public class VmStartupScriptPortRequest : PlayFabBaseModel { /// /// The name for the port. /// public string Name; /// /// The protocol for the port. /// public ProtocolType Protocol; } [Serializable] public class VmStartupScriptPortRequestParams : PlayFabBaseModel { /// /// The name for the port. /// public string Name; /// /// The protocol for the port. /// public ProtocolType Protocol; } [Serializable] public class WindowsCrashDumpConfiguration : PlayFabBaseModel { /// /// See https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps for valid values. /// public int? CustomDumpFlags; /// /// See https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps for valid values. /// public int? DumpType; /// /// Designates whether automatic crash dump capturing will be enabled for this Build. /// public bool IsEnabled; } } #endif