![JAR search and dependency download from the Maven repository](/logo.png)
com.pulumi.awsnative.nimblestudio.kotlin.outputs.LaunchProfileStreamConfiguration.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.nimblestudio.kotlin.outputs
import com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileAutomaticTerminationMode
import com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileSessionPersistenceMode
import com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileStreamingClipboardMode
import com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileStreamingInstanceType
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
/**
* A configuration for a streaming session.
* @property automaticTerminationMode Indicates if a streaming session created from this launch profile should be terminated automatically or retained without termination after being in a `STOPPED` state.
* - When `ACTIVATED` , the streaming session is scheduled for termination after being in the `STOPPED` state for the time specified in `maxStoppedSessionLengthInMinutes` .
* - When `DEACTIVATED` , the streaming session can remain in the `STOPPED` state indefinitely.
* This parameter is only allowed when `sessionPersistenceMode` is `ACTIVATED` . When allowed, the default value for this parameter is `DEACTIVATED` .
* @property clipboardMode Allows or deactivates the use of the system clipboard to copy and paste between the streaming session and streaming client.
* @property ec2InstanceTypes The EC2 instance types that users can select from when launching a streaming session
* with this launch profile.
* @property maxSessionLengthInMinutes The length of time, in minutes, that a streaming session can be active before it is
* stopped or terminated. After this point, Nimble Studio automatically terminates or
* stops the session. The default length of time is 690 minutes, and the maximum length of
* time is 30 days.
* @property maxStoppedSessionLengthInMinutes Integer that determines if you can start and stop your sessions and how long a session
* can stay in the STOPPED
state. The default value is 0. The maximum value is
* 5760.
* This field is allowed only when sessionPersistenceMode
is
* ACTIVATED
and automaticTerminationMode
is
* ACTIVATED
.
* If the value is set to 0, your sessions can’t be STOPPED
. If you then
* call StopStreamingSession
, the session fails. If the time that a session
* stays in the READY
state exceeds the maxSessionLengthInMinutes
* value, the session will automatically be terminated (instead of
* STOPPED
).
* If the value is set to a positive number, the session can be stopped. You can call
* StopStreamingSession
to stop sessions in the READY
state.
* If the time that a session stays in the READY
state exceeds the
* maxSessionLengthInMinutes
value, the session will automatically be
* stopped (instead of terminated).
* @property sessionBackup Information about the streaming session backup.
* @property sessionPersistenceMode Determine if a streaming session created from this launch profile can configure persistent storage. This means that `volumeConfiguration` and `automaticTerminationMode` are configured.
* @property sessionStorage The upload storage for a streaming session.
* @property streamingImageIds The streaming images that users can select from when launching a streaming session
* with this launch profile.
* @property volumeConfiguration Custom volume configuration for the root volumes that are attached to streaming sessions.
* This parameter is only allowed when `sessionPersistenceMode` is `ACTIVATED` .
*/
public data class LaunchProfileStreamConfiguration(
public val automaticTerminationMode: LaunchProfileAutomaticTerminationMode? = null,
public val clipboardMode: LaunchProfileStreamingClipboardMode,
public val ec2InstanceTypes: List,
public val maxSessionLengthInMinutes: Double? = null,
public val maxStoppedSessionLengthInMinutes: Double? = null,
public val sessionBackup: LaunchProfileStreamConfigurationSessionBackup? = null,
public val sessionPersistenceMode: LaunchProfileSessionPersistenceMode? = null,
public val sessionStorage: LaunchProfileStreamConfigurationSessionStorage? = null,
public val streamingImageIds: List,
public val volumeConfiguration: LaunchProfileVolumeConfiguration? = null,
) {
public companion object {
public fun toKotlin(javaType: com.pulumi.awsnative.nimblestudio.outputs.LaunchProfileStreamConfiguration): LaunchProfileStreamConfiguration = LaunchProfileStreamConfiguration(
automaticTerminationMode = javaType.automaticTerminationMode().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileAutomaticTerminationMode.Companion.toKotlin(args0)
})
}).orElse(null),
clipboardMode = javaType.clipboardMode().let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileStreamingClipboardMode.Companion.toKotlin(args0)
}),
ec2InstanceTypes = javaType.ec2InstanceTypes().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileStreamingInstanceType.Companion.toKotlin(args0)
})
}),
maxSessionLengthInMinutes = javaType.maxSessionLengthInMinutes().map({ args0 ->
args0
}).orElse(null),
maxStoppedSessionLengthInMinutes = javaType.maxStoppedSessionLengthInMinutes().map({ args0 ->
args0
}).orElse(null),
sessionBackup = javaType.sessionBackup().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.outputs.LaunchProfileStreamConfigurationSessionBackup.Companion.toKotlin(args0)
})
}).orElse(null),
sessionPersistenceMode = javaType.sessionPersistenceMode().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.enums.LaunchProfileSessionPersistenceMode.Companion.toKotlin(args0)
})
}).orElse(null),
sessionStorage = javaType.sessionStorage().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.outputs.LaunchProfileStreamConfigurationSessionStorage.Companion.toKotlin(args0)
})
}).orElse(null),
streamingImageIds = javaType.streamingImageIds().map({ args0 -> args0 }),
volumeConfiguration = javaType.volumeConfiguration().map({ args0 ->
args0.let({ args0 ->
com.pulumi.awsnative.nimblestudio.kotlin.outputs.LaunchProfileVolumeConfiguration.Companion.toKotlin(args0)
})
}).orElse(null),
)
}
}