All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.playfab.PlayFabMultiplayerModels Maven / Gradle / Ivy

Go to download

PlayFab is the unified backend platform for games — everything you need to build and operate your game, all in one place, so you can focus on creating and delivering a great player experience.

There is a newer version: 0.122.201027
Show newest version
package com.playfab;

import java.util.*;
import com.playfab.PlayFabUtil.*;

public class PlayFabMultiplayerModels {

    public static class AssetReference {
        /** 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;
        
    }

    public static class AssetReferenceParams {
        /** The asset's file name. */
        public String FileName;
        /** The asset's mount path. */
        public String MountPath;
        
    }

    public static class AssetSummary {
        /** 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 Map Metadata;
        
    }

    public static enum AzureRegion {
        AustraliaEast,
        AustraliaSoutheast,
        BrazilSouth,
        CentralUs,
        EastAsia,
        EastUs,
        EastUs2,
        JapanEast,
        JapanWest,
        NorthCentralUs,
        NorthEurope,
        SouthCentralUs,
        SoutheastAsia,
        WestEurope,
        WestUs,
        ChinaEast2,
        ChinaNorth2
    }

    public static enum AzureVmSize {
        Standard_D1_v2,
        Standard_D2_v2,
        Standard_D3_v2,
        Standard_D4_v2,
        Standard_D5_v2,
        Standard_A1_v2,
        Standard_A2_v2,
        Standard_A4_v2,
        Standard_A8_v2,
        Standard_F1,
        Standard_F2,
        Standard_F4,
        Standard_F8,
        Standard_F16,
        Standard_F2s_v2,
        Standard_F4s_v2,
        Standard_F8s_v2,
        Standard_F16s_v2,
        Standard_A1,
        Standard_A2,
        Standard_A3,
        Standard_A4
    }

    public static class BuildRegion {
        /** The current multiplayer server stats for the region. */
        public CurrentServerStats CurrentServerStats;
        /** The maximum number of multiplayer servers for the region. */
        public Integer MaxServers;
        /** The build region. */
        public AzureRegion Region;
        /** The number of standby multiplayer servers for the region. */
        public Integer StandbyServers;
        /**
         * The status of multiplayer servers in the build region. Valid values are - Unknown, Initialized, Deploying, Deployed,
         * Unhealthy.
         */
        public String Status;
        
    }

    public static class BuildRegionParams {
        /** The maximum number of multiplayer servers for the region. */
        public Integer MaxServers;
        /** The build region. */
        public AzureRegion Region;
        /** The number of standby multiplayer servers for the region. */
        public Integer StandbyServers;
        
    }

    public static class BuildSummary {
        /** 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 Date CreationTime;
        /** The metadata of the build. */
        public Map Metadata;
        /** The configuration and status for each region in the build. */
        public ArrayList 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).
     */
    public static class CancelAllMatchmakingTicketsForPlayerRequest {
        /** The entity key of the player whose tickets should be canceled. */
        public EntityKey Entity;
        /** The Id of the queue from which a player's tickets should be canceled. */
        public String QueueName;
        
    }

    public static class CancelAllMatchmakingTicketsForPlayerResult {
        
    }

    public static enum CancellationReason {
        Requested,
        Internal,
        Timeout
    }

    /**
     * Only servers and ticket members can cancel a ticket. The ticket can be in four 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. 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.
     */
    public static class CancelMatchmakingTicketRequest {
        /** The Id of the queue to join. */
        public String QueueName;
        /** The Id of the ticket to find a match for. */
        public String TicketId;
        
    }

    public static class CancelMatchmakingTicketResult {
        
    }

    public static class Certificate {
        /** 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;
        
    }

    public static class CertificateSummary {
        /** The name of the certificate. */
        public String Name;
        /** The thumbprint for the certificate. */
        public String Thumbprint;
        
    }

    public static class ConnectedPlayer {
        /** The player ID of the player connected to the multiplayer server. */
        public String PlayerId;
        
    }

    public static enum ContainerFlavor {
        ManagedWindowsServerCore,
        CustomLinux,
        ManagedWindowsServerCorePreview
    }

    public static class ContainerImageReference {
        /** The container image name. */
        public String ImageName;
        /** The container tag. */
        public String Tag;
        
    }

    /** Creates a multiplayer server build with a custom container and returns information about the build creation request. */
    public static class CreateBuildWithCustomContainerRequest {
        /** The build name. */
        public String BuildName;
        /** The flavor of container to create a build from. */
        public ContainerFlavor ContainerFlavor;
        /** The name of the container repository. */
        public String ContainerRepositoryName;
        /** The container command to run when the multiplayer server has been allocated, including any arguments. */
        public String ContainerRunCommand;
        /** The tag for the container. */
        public String ContainerTag;
        /** The list of game assets related to the build. */
        public ArrayList GameAssetReferences;
        /** The game certificates for the build. */
        public ArrayList GameCertificateReferences;
        /**
         * Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through
         * Game Server SDK (GSDK).
         */
        public Map Metadata;
        /** The number of multiplayer servers to host on a single VM. */
        public Integer MultiplayerServerCountPerVm;
        /** The ports to map the build on. */
        public ArrayList Ports;
        /** The region configurations for the build. */
        public ArrayList RegionConfigurations;
        /** The VM size to create the build on. */
        public AzureVmSize VmSize;
        
    }

    public static class CreateBuildWithCustomContainerResponse {
        /** 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 Date CreationTime;
        /** The custom game container image reference information. */
        public ContainerImageReference CustomGameContainerImage;
        /** The game assets for the build. */
        public ArrayList GameAssetReferences;
        /** The game certificates for the build. */
        public ArrayList GameCertificateReferences;
        /** The metadata of the build. */
        public Map Metadata;
        /** The number of multiplayer servers to host on a single VM of the build. */
        public Integer MultiplayerServerCountPerVm;
        /** The ports the build is mapped on. */
        public ArrayList Ports;
        /** The region configuration for the build. */
        public ArrayList RegionConfigurations;
        /** The VM size the build was created on. */
        public AzureVmSize VmSize;
        
    }

    /** Creates a multiplayer server build with a managed container and returns information about the build creation request. */
    public static class CreateBuildWithManagedContainerRequest {
        /** The build name. */
        public String BuildName;
        /** The flavor of container to create a build from. */
        public ContainerFlavor ContainerFlavor;
        /** The list of game assets related to the build. */
        public ArrayList GameAssetReferences;
        /** The game certificates for the build. */
        public ArrayList GameCertificateReferences;
        /**
         * Metadata to tag the build. The keys are case insensitive. The build metadata is made available to the server through
         * Game Server SDK (GSDK).
         */
        public Map Metadata;
        /** The number of multiplayer servers to host on a single VM. */
        public Integer MultiplayerServerCountPerVm;
        /** The ports to map the build on. */
        public ArrayList Ports;
        /** The region configurations for the build. */
        public ArrayList RegionConfigurations;
        /** 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;
        
    }

    public static class CreateBuildWithManagedContainerResponse {
        /** 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 Date CreationTime;
        /** The game assets for the build. */
        public ArrayList GameAssetReferences;
        /** The game certificates for the build. */
        public ArrayList GameCertificateReferences;
        /** The metadata of the build. */
        public Map Metadata;
        /** The number of multiplayer servers to host on a single VM of the build. */
        public Integer MultiplayerServerCountPerVm;
        /** The ports the build is mapped on. */
        public ArrayList Ports;
        /** The region configuration for the build. */
        public ArrayList RegionConfigurations;
        /** The command to run when the multiplayer server has been allocated, including any arguments. */
        public String StartMultiplayerServerCommand;
        /** The VM size the build was created on. */
        public AzureVmSize VmSize;
        
    }

    /** The client specifies the creator's attributes and optionally a list of other users to match with. */
    public static class CreateMatchmakingTicketRequest {
        /** The User who created this ticket. */
        public MatchmakingPlayer Creator;
        /** How long to attempt matching this ticket in seconds. */
        public Integer GiveUpAfterSeconds;
        /** A list of Entity Keys of other users to match with. */
        public ArrayList MembersToMatchWith;
        /** The Id of a match queue. */
        public String QueueName;
        
    }

    public static class CreateMatchmakingTicketResult {
        /** 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.
     */
    public static class CreateRemoteUserRequest {
        /** The guid string build ID of to create the remote user for. */
        public String BuildId;
        /** The expiration time for the remote user created. Defaults to expiring in one day if not specified. */
        public Date ExpirationTime;
        /** The region of virtual machine to create the remote user for. */
        public AzureRegion 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;
        
    }

    public static class CreateRemoteUserResponse {
        /** The expiration time for the remote user created. */
        public Date 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 and their attributes. */
    public static class CreateServerMatchmakingTicketRequest {
        /** How long to attempt matching this ticket in seconds. */
        public Integer GiveUpAfterSeconds;
        /** The users who will be part of this ticket. */
        public ArrayList Members;
        /** The Id of a match queue. */
        public String QueueName;
        
    }

    public static class CurrentServerStats {
        /** The number of active multiplayer servers. */
        public Integer Active;
        /** The number of multiplayer servers still downloading game resources (such as assets). */
        public Integer Propping;
        /** The number of standingby multiplayer servers. */
        public Integer StandingBy;
        /** The total number of multiplayer servers. */
        public Integer Total;
        
    }

    /** Deletes a multiplayer server game asset for a title. */
    public static class DeleteAssetRequest {
        /** The filename of the asset to delete. */
        public String FileName;
        
    }

    /** Deletes a multiplayer server build. */
    public static class DeleteBuildRequest {
        /** The guid string build ID of the build to delete. */
        public String BuildId;
        
    }

    /** Deletes a multiplayer server game certificate. */
    public static class DeleteCertificateRequest {
        /** The name of the certificate. */
        public String Name;
        
    }

    /**
     * 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.
     */
    public static class DeleteRemoteUserRequest {
        /** The guid string build ID of the multiplayer server where the remote user is to delete. */
        public String BuildId;
        /** The region of the multiplayer server where the remote user is to delete. */
        public AzureRegion 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;
        
    }

    public static class EmptyResponse {
        
    }

    /**
     * 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.
     */
    public static class EnableMultiplayerServersForTitleRequest {
        
    }

    public static class EnableMultiplayerServersForTitleResponse {
        /** 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. */
    public static class EntityKey {
        /** Unique ID of the entity. */
        public String Id;
        /** Entity type. See https://api.playfab.com/docs/tutorials/entities/entitytypes */
        public String Type;
        
    }

    public static class GameCertificateReference {
        /**
         * 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;
        
    }

    public static class GameCertificateReferenceParams {
        /**
         * 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;
        
    }

    /** Gets the URL to upload assets to. */
    public static class GetAssetUploadUrlRequest {
        /** The asset's file name to get the upload URL for. */
        public String FileName;
        
    }

    public static class GetAssetUploadUrlResponse {
        /** 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. */
    public static class GetBuildRequest {
        /** The guid string build ID of the build to get. */
        public String BuildId;
        
    }

    public static class GetBuildResponse {
        /** 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 Date CreationTime;
        /** The custom game container image for a custom build. */
        public ContainerImageReference CustomGameContainerImage;
        /** The game assets for the build. */
        public ArrayList GameAssetReferences;
        /** The game certificates for the build. */
        public ArrayList GameCertificateReferences;
        /**
         * Metadata of the build. The keys are case insensitive. The build metadata is made available to the server through Game
         * Server SDK (GSDK).
         */
        public Map Metadata;
        /** The number of multiplayer servers to hosted on a single VM of the build. */
        public Integer MultiplayerServerCountPerVm;
        /** The ports the build is mapped on. */
        public ArrayList Ports;
        /** The region configuration for the build. */
        public ArrayList RegionConfigurations;
        /**
         * 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;
        
    }

    /**
     * Gets credentials to the container registry where game developers can upload custom container images to before creating a
     * new build.
     */
    public static class GetContainerRegistryCredentialsRequest {
        
    }

    public static class GetContainerRegistryCredentialsResponse {
        /** 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;
        
    }

    /** Gets the current configuration for a queue. */
    public static class GetMatchmakingQueueRequest {
        /** The Id of the matchmaking queue to retrieve. */
        public String QueueName;
        
    }

    public static class GetMatchmakingQueueResult {
        /** 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.
     */
    public static class GetMatchmakingTicketRequest {
        /**
         * Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON
         * object.
         */
        public Boolean EscapeObject;
        /** The Id of the queue to find a match for. */
        public String QueueName;
        /** The Id of the ticket to find a match for. */
        public String TicketId;
        
    }

    public static class GetMatchmakingTicketResult {
        /** The reason why the current ticket was canceled. This field is only set if the ticket is in canceled state. */
        public CancellationReason CancellationReason;
        /** The server date and time at which ticket was created. */
        public Date Created;
        /** The Creator's entity key. */
        public EntityKey Creator;
        /** How long to attempt matching this ticket in seconds. */
        public Integer GiveUpAfterSeconds;
        /** The Id of a match. */
        public String MatchId;
        /** A list of Users that have joined this ticket. */
        public ArrayList Members;
        /** A list of PlayFab Ids of Users to match with. */
        public ArrayList 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.
     */
    public static class GetMatchRequest {
        /**
         * Determines whether the matchmaking attributes will be returned as an escaped JSON string or as an un-escaped JSON
         * object.
         */
        public Boolean EscapeObject;
        /** The Id of a match. */
        public String MatchId;
        /** The Id 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 Boolean ReturnMemberAttributes;
        
    }

    public static class GetMatchResult {
        /** The Id of a match. */
        public String MatchId;
        /** A list of Users that are matched together, along with their team assignments. */
        public ArrayList 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 ArrayList 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. */
    public static class GetMultiplayerServerDetailsRequest {
        /** The guid string build ID of the multiplayer server to get details for. */
        public String BuildId;
        /** The region the multiplayer server is located in to get details for. */
        public AzureRegion Region;
        /**
         * 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;
        
    }

    public static class GetMultiplayerServerDetailsResponse {
        /** The connected players in the multiplayer server. */
        public ArrayList ConnectedPlayers;
        /** 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 time (UTC) at which a change in the multiplayer server state was observed. */
        public Date LastStateTransitionTime;
        /** The ports the multiplayer server uses. */
        public ArrayList Ports;
        /** The region the multiplayer server is located in. */
        public AzureRegion 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;
        
    }

    /**
     * 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.
     */
    public static class GetQueueStatisticsRequest {
        /** The name of the queue. */
        public String QueueName;
        
    }

    public static class GetQueueStatisticsResult {
        /** The current number of players in the matchmaking queue, who are waiting to be matched. */
        public Long 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. */
    public static class GetRemoteLoginEndpointRequest {
        /** The guid string build ID of the multiplayer server to get remote login information for. */
        public String BuildId;
        /** The region of the multiplayer server to get remote login information for. */
        public AzureRegion Region;
        /** The virtual machine ID the multiplayer server is located on. */
        public String VmId;
        
    }

    public static class GetRemoteLoginEndpointResponse {
        /** The remote login IPV4 address of multiplayer server. */
        public String IPV4Address;
        /** The remote login port of multiplayer server. */
        public Integer Port;
        
    }

    /**
     * Gets the status of whether a title is enabled for the multiplayer server feature. The enabled status can be
     * Initializing, Enabled, and Disabled.
     */
    public static class GetTitleEnabledForMultiplayerServersStatusRequest {
        
    }

    public static class GetTitleEnabledForMultiplayerServersStatusResponse {
        /** The enabled status for the multiplayer server features for the title. */
        public TitleMultiplayerServerEnabledStatus Status;
        
    }

    /**
     * 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.
     */
    public static class JoinMatchmakingTicketRequest {
        /** The User who wants to join the ticket. Their Id must be listed in PlayFabIdsToMatchWith. */
        public MatchmakingPlayer Member;
        /** The Id of the queue to join. */
        public String QueueName;
        /** The Id of the ticket to find a match for. */
        public String TicketId;
        
    }

    public static class JoinMatchmakingTicketResult {
        
    }

    /** Returns a list of multiplayer server game asset summaries for a title. */
    public static class ListAssetSummariesRequest {
        /** The page size for the request. */
        public Integer PageSize;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListAssetSummariesResponse {
        /** The list of asset summaries. */
        public ArrayList AssetSummaries;
        /** The page size on the response. */
        public Integer 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. */
    public static class ListBuildSummariesRequest {
        /** The page size for the request. */
        public Integer PageSize;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListBuildSummariesResponse {
        /** The list of build summaries for a title. */
        public ArrayList BuildSummaries;
        /** The page size on the response. */
        public Integer PageSize;
        /** The skip token for the paged response. */
        public String SkipToken;
        
    }

    /** Returns a list of multiplayer server game certificates for a title. */
    public static class ListCertificateSummariesRequest {
        /** The page size for the request. */
        public Integer PageSize;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListCertificateSummariesResponse {
        /** The list of game certificates. */
        public ArrayList CertificateSummaries;
        /** The page size on the response. */
        public Integer 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. */
    public static class ListContainerImagesRequest {
        /** The page size for the request. */
        public Integer PageSize;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListContainerImagesResponse {
        /** The list of container images. */
        public ArrayList Images;
        /** The page size on the response. */
        public Integer 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. */
    public static class ListContainerImageTagsRequest {
        /** The container images we want to list tags for. */
        public String ImageName;
        
    }

    public static class ListContainerImageTagsResponse {
        /** The list of tags for a particular container image. */
        public ArrayList Tags;
        
    }

    /** Gets a list of all the matchmaking queue configurations for the title. */
    public static class ListMatchmakingQueuesRequest {
        
    }

    public static class ListMatchmakingQueuesResult {
        /** The list of matchmaking queue configs for this title. */
        public ArrayList 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.
     */
    public static class ListMatchmakingTicketsForPlayerRequest {
        /** The entity key for which to find the ticket Ids. */
        public EntityKey Entity;
        /** The Id of the queue to find a match for. */
        public String QueueName;
        
    }

    public static class ListMatchmakingTicketsForPlayerResult {
        /** The list of ticket Ids the user is a member of. */
        public ArrayList TicketIds;
        
    }

    /** Returns a list of multiplayer servers for a build in a specific region. */
    public static class ListMultiplayerServersRequest {
        /** The guid string build ID of the multiplayer servers to list. */
        public String BuildId;
        /** The page size for the request. */
        public Integer PageSize;
        /** The region the multiplayer servers to list. */
        public AzureRegion Region;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListMultiplayerServersResponse {
        /** The list of multiplayer server summary details. */
        public ArrayList MultiplayerServerSummaries;
        /** The page size on the response. */
        public Integer PageSize;
        /** The skip token for the paged response. */
        public String SkipToken;
        
    }

    /** Returns a list of quality of service servers. */
    public static class ListQosServersRequest {
        
    }

    public static class ListQosServersResponse {
        /** The page size on the response. */
        public Integer PageSize;
        /** The list of QoS servers. */
        public ArrayList QosServers;
        /** The skip token for the paged response. */
        public String SkipToken;
        
    }

    /** Returns a list of virtual machines for a title. */
    public static class ListVirtualMachineSummariesRequest {
        /** The guid string build ID of the virtual machines to list. */
        public String BuildId;
        /** The page size for the request. */
        public Integer PageSize;
        /** The region of the virtual machines to list. */
        public AzureRegion Region;
        /** The skip token for the paged request. */
        public String SkipToken;
        
    }

    public static class ListVirtualMachineSummariesResponse {
        /** The page size on the response. */
        public Integer PageSize;
        /** The skip token for the paged response. */
        public String SkipToken;
        /** The list of virtual machine summaries. */
        public ArrayList VirtualMachines;
        
    }

    /** A user in a matchmaking ticket. */
    public static class MatchmakingPlayer {
        /** 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. */
    public static class MatchmakingPlayerAttributes {
        /** 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. */
    public static class MatchmakingPlayerWithTeamAssignment {
        /**
         * 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 has been assigned to by matchmaking. */
        public String TeamId;
        
    }

    public static class MatchmakingQueueConfig {
        /** This is the buildId that will be used to allocate the multiplayer server for the match. */
        public String BuildId;
        /** Maximum number of players in a match. */
        public Long MaxMatchSize;
        /** Minimum number of players in a match. */
        public Long MinMatchSize;
        /** Unique identifier for a Queue. Chosen by the developer. */
        public String Name;
        /** List of rules used to find an optimal match. */
        public ArrayList Rules;
        /** Boolean flag to enable server allocation for the queue. */
        public Boolean ServerAllocationEnabled;
        /** Controls which statistics are visible to players. */
        public StatisticsVisibilityToPlayers StatisticsVisibilityToPlayers;
        /** The team configuration for a match. This may be null if there are no teams. */
        public ArrayList Teams;
        
    }

    public static class MatchmakingQueueRule {
        /** 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 Long SecondsUntilOptional;
        /** Type of rule being described. */
        public RuleType Type;
        
    }

    public static class MatchmakingQueueTeam {
        /** The maximum number of players required for the team. */
        public Long MaxTeamSize;
        /** The minimum number of players required for the team. */
        public Long MinTeamSize;
        /** A name to identify the team. This is case insensitive. */
        public String Name;
        
    }

    public static class MultiplayerServerSummary {
        /** The connected players in the multiplayer server. */
        public ArrayList ConnectedPlayers;
        /** The time (UTC) at which a change in the multiplayer server state was observed. */
        public Date LastStateTransitionTime;
        /** The region the multiplayer server is located in. */
        public AzureRegion 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 static class Port {
        /** The name for the port. */
        public String Name;
        /** The number for the port. */
        public Integer Num;
        /** The protocol for the port. */
        public ProtocolType Protocol;
        
    }

    public static enum ProtocolType {
        TCP,
        UDP
    }

    public static class QosServer {
        /** The region the QoS server is located in. */
        public AzureRegion Region;
        /** The QoS server URL. */
        public String ServerUrl;
        
    }

    /**
     * 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.
     */
    public static class RemoveMatchmakingQueueRequest {
        /** The Id of the matchmaking queue to remove. */
        public String QueueName;
        
    }

    public static class RemoveMatchmakingQueueResult {
        
    }

    /** Requests a multiplayer server session from a particular build in any of the given preferred regions. */
    public static class RequestMultiplayerServerRequest {
        /** The guid string build ID of the multiplayer server to request. */
        public String BuildId;
        /**
         * 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 ArrayList 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 ArrayList 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;
        
    }

    public static class RequestMultiplayerServerResponse {
        /** The connected players in the multiplayer server. */
        public ArrayList ConnectedPlayers;
        /** 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 time (UTC) at which a change in the multiplayer server state was observed. */
        public Date LastStateTransitionTime;
        /** The ports the multiplayer server uses. */
        public ArrayList Ports;
        /** The region the multiplayer server is located in. */
        public AzureRegion 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 new credentials to the container registry where game developers can upload custom container images to before
     * creating a new build.
     */
    public static class RolloverContainerRegistryCredentialsRequest {
        
    }

    public static class RolloverContainerRegistryCredentialsResponse {
        /** 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 static enum RuleType {
        Unknown,
        DifferenceRule,
        StringEqualityRule,
        MatchTotalRule,
        SetIntersectionRule,
        TeamSizeBalanceRule,
        RegionSelectionRule,
        TeamDifferenceRule,
        TeamTicketSizeSimilarityRule
    }

    public static class ServerDetails {
        /** The IPv4 address of the virtual machine that is hosting this multiplayer server. */
        public String IPV4Address;
        /** The ports the multiplayer server uses. */
        public ArrayList Ports;
        
    }

    /**
     * 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.
     */
    public static class SetMatchmakingQueueRequest {
        /** The matchmaking queue config. */
        public MatchmakingQueueConfig MatchmakingQueue;
        
    }

    public static class SetMatchmakingQueueResult {
        
    }

    /**
     * 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.
     */
    public static class ShutdownMultiplayerServerRequest {
        /** The guid string build ID of the multiplayer server to delete. */
        public String BuildId;
        /** The region of the multiplayer server to shut down. */
        public AzureRegion Region;
        /** A guid string session ID of the multiplayer server to shut down. */
        public String SessionId;
        
    }

    public static class Statistics {
        /** The average. */
        public Double Average;
        /** The 50th percentile. */
        public Double Percentile50;
        /** The 90th percentile. */
        public Double Percentile90;
        /** The 99th percentile. */
        public Double Percentile99;
        
    }

    public static class StatisticsVisibilityToPlayers {
        /** Whether to allow players to view the current number of players in the matchmaking queue. */
        public Boolean ShowNumberOfPlayersMatching;
        /** Whether to allow players to view statistics representing the time it takes for tickets to find a match. */
        public Boolean ShowTimeToMatch;
        
    }

    public static enum TitleMultiplayerServerEnabledStatus {
        Initializing,
        Enabled,
        Disabled
    }

    /** Updates a multiplayer server build's regions. */
    public static class UpdateBuildRegionsRequest {
        /** 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 ArrayList BuildRegions;
        
    }

    /** Uploads a multiplayer server game certificate. */
    public static class UploadCertificateRequest {
        /** The game certificate to upload. */
        public Certificate GameCertificate;
        
    }

    public static class VirtualMachineSummary {
        /** The virtual machine health status. */
        public String HealthStatus;
        /** The virtual machine state. */
        public String State;
        /** The virtual machine ID. */
        public String VmId;
        
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy