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

com.pulumi.awsnative.gamelift.kotlin.outputs.FleetRuntimeConfiguration.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.gamelift.kotlin.outputs

import kotlin.Int
import kotlin.Suppress
import kotlin.collections.List

/**
 * A collection of server process configurations that describe the processes to run on each instance in a fleet. All fleets must have a runtime configuration. Each instance in the fleet maintains server processes as specified in the runtime configuration, launching new ones as existing processes end. Each instance regularly checks for an updated runtime configuration makes adjustments as called for.
 * The runtime configuration enables the instances in a fleet to run multiple processes simultaneously. Potential scenarios are as follows: (1) Run multiple processes of a single game server executable to maximize usage of your hosting resources. (2) Run one or more processes of different executables, such as your game server and a metrics tracking program. (3) Run multiple processes of a single game server but with different launch parameters, for example to run one process on each instance in debug mode.
 * An Amazon GameLift instance is limited to 50 processes running simultaneously. A runtime configuration must specify fewer than this limit. To calculate the total number of processes specified in a runtime configuration, add the values of the ConcurrentExecutions parameter for each ServerProcess object in the runtime configuration.
 * @property gameSessionActivationTimeoutSeconds The maximum amount of time (in seconds) that a game session can remain in status ACTIVATING. If the game session is not active before the timeout, activation is terminated and the game session status is changed to TERMINATED.
 * @property maxConcurrentGameSessionActivations The maximum number of game sessions with status ACTIVATING to allow on an instance simultaneously. This setting limits the amount of instance resources that can be used for new game activations at any one time.
 * @property serverProcesses A collection of server process configurations that describe which server processes to run on each instance in a fleet.
 */
public data class FleetRuntimeConfiguration(
    public val gameSessionActivationTimeoutSeconds: Int? = null,
    public val maxConcurrentGameSessionActivations: Int? = null,
    public val serverProcesses: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.gamelift.outputs.FleetRuntimeConfiguration): FleetRuntimeConfiguration = FleetRuntimeConfiguration(
            gameSessionActivationTimeoutSeconds = javaType.gameSessionActivationTimeoutSeconds().map({ args0 ->
                args0
            }).orElse(null),
            maxConcurrentGameSessionActivations = javaType.maxConcurrentGameSessionActivations().map({ args0 ->
                args0
            }).orElse(null),
            serverProcesses = javaType.serverProcesses().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.gamelift.kotlin.outputs.FleetServerProcess.Companion.toKotlin(args0)
                })
            }),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy