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

com.pulumi.awsnative.gamelift.kotlin.BuildArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.gamelift.kotlin

import com.pulumi.awsnative.gamelift.BuildArgs.builder
import com.pulumi.awsnative.gamelift.kotlin.enums.BuildOperatingSystem
import com.pulumi.awsnative.gamelift.kotlin.inputs.BuildStorageLocationArgs
import com.pulumi.awsnative.gamelift.kotlin.inputs.BuildStorageLocationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::GameLift::Build
 * @property name A descriptive label that is associated with a build. Build names do not need to be unique.
 * @property operatingSystem The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.
 * @property serverSdkVersion A server SDK version you used when integrating your game server build with Amazon GameLift. By default Amazon GameLift sets this value to 4.0.2.
 * @property storageLocation Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.
 * @property version Version information that is associated with this build. Version strings do not need to be unique.
 */
public data class BuildArgs(
    public val name: Output? = null,
    public val operatingSystem: Output? = null,
    public val serverSdkVersion: Output? = null,
    public val storageLocation: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.gamelift.BuildArgs =
        com.pulumi.awsnative.gamelift.BuildArgs.builder()
            .name(name?.applyValue({ args0 -> args0 }))
            .operatingSystem(operatingSystem?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .serverSdkVersion(serverSdkVersion?.applyValue({ args0 -> args0 }))
            .storageLocation(storageLocation?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [BuildArgs].
 */
@PulumiTagMarker
public class BuildArgsBuilder internal constructor() {
    private var name: Output? = null

    private var operatingSystem: Output? = null

    private var serverSdkVersion: Output? = null

    private var storageLocation: Output? = null

    private var version: Output? = null

    /**
     * @param value A descriptive label that is associated with a build. Build names do not need to be unique.
     */
    @JvmName("ppxoepobjajgelju")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.
     */
    @JvmName("csmybspwhjcfoxpf")
    public suspend fun operatingSystem(`value`: Output) {
        this.operatingSystem = value
    }

    /**
     * @param value A server SDK version you used when integrating your game server build with Amazon GameLift. By default Amazon GameLift sets this value to 4.0.2.
     */
    @JvmName("uwaaumoyxufajtat")
    public suspend fun serverSdkVersion(`value`: Output) {
        this.serverSdkVersion = value
    }

    /**
     * @param value Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.
     */
    @JvmName("hhjpvirgssqgcwli")
    public suspend fun storageLocation(`value`: Output) {
        this.storageLocation = value
    }

    /**
     * @param value Version information that is associated with this build. Version strings do not need to be unique.
     */
    @JvmName("ojlpylgeqtfliwym")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value A descriptive label that is associated with a build. Build names do not need to be unique.
     */
    @JvmName("abwtwegiqnaquymd")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The operating system that the game server binaries are built to run on. This value determines the type of fleet resources that you can use for this build. If your game build contains multiple executables, they all must run on the same operating system. If an operating system is not specified when creating a build, Amazon GameLift uses the default value (WINDOWS_2012). This value cannot be changed later.
     */
    @JvmName("hoouaerpjafhqkou")
    public suspend fun operatingSystem(`value`: BuildOperatingSystem?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.operatingSystem = mapped
    }

    /**
     * @param value A server SDK version you used when integrating your game server build with Amazon GameLift. By default Amazon GameLift sets this value to 4.0.2.
     */
    @JvmName("mgpfrlylnausxwlt")
    public suspend fun serverSdkVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serverSdkVersion = mapped
    }

    /**
     * @param value Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.
     */
    @JvmName("argqvkwxshgummnl")
    public suspend fun storageLocation(`value`: BuildStorageLocationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageLocation = mapped
    }

    /**
     * @param argument Information indicating where your game build files are stored. Use this parameter only when creating a build with files stored in an Amazon S3 bucket that you own. The storage location must specify an Amazon S3 bucket name and key. The location must also specify a role ARN that you set up to allow Amazon GameLift to access your Amazon S3 bucket. The S3 bucket and your new build must be in the same Region.
     */
    @JvmName("fntjfnixqughgmfq")
    public suspend fun storageLocation(argument: suspend BuildStorageLocationArgsBuilder.() -> Unit) {
        val toBeMapped = BuildStorageLocationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.storageLocation = mapped
    }

    /**
     * @param value Version information that is associated with this build. Version strings do not need to be unique.
     */
    @JvmName("cncqbnawhxvbwnfe")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): BuildArgs = BuildArgs(
        name = name,
        operatingSystem = operatingSystem,
        serverSdkVersion = serverSdkVersion,
        storageLocation = storageLocation,
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy