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

com.pulumi.digitalocean.kotlin.inputs.AppSpecArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 4.38.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.digitalocean.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.digitalocean.inputs.AppSpecArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Deprecated
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property alerts Describes an alert policy for the app.
 * @property databases
 * @property domainNames Describes a domain where the application will be made available.
 * @property domains
 * @property egresses Specification for app egress configurations.
 * @property envs Describes an app-wide environment variable made available to all components.
 * @property features A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
 * @property functions
 * @property ingress Specification for component routing, rewrites, and redirects.
 * @property jobs
 * @property name The name of the app. Must be unique across all apps in the same account.
 * @property region The slug for the DigitalOcean data center region hosting the app.
 * @property services
 * @property staticSites
 * @property workers
 */
public data class AppSpecArgs(
    public val alerts: Output>? = null,
    public val databases: Output>? = null,
    public val domainNames: Output>? = null,
    @Deprecated(
        message = """
  This attribute has been replaced by `domain` which supports additional functionality.
  """,
    )
    public val domains: Output>? = null,
    public val egresses: Output>? = null,
    public val envs: Output>? = null,
    public val features: Output>? = null,
    public val functions: Output>? = null,
    public val ingress: Output? = null,
    public val jobs: Output>? = null,
    public val name: Output,
    public val region: Output? = null,
    public val services: Output>? = null,
    public val staticSites: Output>? = null,
    public val workers: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.digitalocean.inputs.AppSpecArgs =
        com.pulumi.digitalocean.inputs.AppSpecArgs.builder()
            .alerts(alerts?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .databases(
                databases?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .domainNames(
                domainNames?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .domains(domains?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .egresses(
                egresses?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .envs(envs?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .features(features?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .functions(
                functions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .ingress(ingress?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .jobs(jobs?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .name(name.applyValue({ args0 -> args0 }))
            .region(region?.applyValue({ args0 -> args0 }))
            .services(
                services?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .staticSites(
                staticSites?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .workers(
                workers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [AppSpecArgs].
 */
@PulumiTagMarker
public class AppSpecArgsBuilder internal constructor() {
    private var alerts: Output>? = null

    private var databases: Output>? = null

    private var domainNames: Output>? = null

    private var domains: Output>? = null

    private var egresses: Output>? = null

    private var envs: Output>? = null

    private var features: Output>? = null

    private var functions: Output>? = null

    private var ingress: Output? = null

    private var jobs: Output>? = null

    private var name: Output? = null

    private var region: Output? = null

    private var services: Output>? = null

    private var staticSites: Output>? = null

    private var workers: Output>? = null

    /**
     * @param value Describes an alert policy for the app.
     */
    @JvmName("oaxcnqexhqjvgqmq")
    public suspend fun alerts(`value`: Output>) {
        this.alerts = value
    }

    @JvmName("yiijhvkwnaxrufnb")
    public suspend fun alerts(vararg values: Output) {
        this.alerts = Output.all(values.asList())
    }

    /**
     * @param values Describes an alert policy for the app.
     */
    @JvmName("hmjyerlaceyxfqwc")
    public suspend fun alerts(values: List>) {
        this.alerts = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("xpxivglobviygbtp")
    public suspend fun databases(`value`: Output>) {
        this.databases = value
    }

    @JvmName("bnjejdutpxetggcd")
    public suspend fun databases(vararg values: Output) {
        this.databases = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("fqrfpfjbdtjgjucu")
    public suspend fun databases(values: List>) {
        this.databases = Output.all(values)
    }

    /**
     * @param value Describes a domain where the application will be made available.
     */
    @JvmName("wbcgvswhcuwfxjyo")
    public suspend fun domainNames(`value`: Output>) {
        this.domainNames = value
    }

    @JvmName("xyffnjqwlwshubla")
    public suspend fun domainNames(vararg values: Output) {
        this.domainNames = Output.all(values.asList())
    }

    /**
     * @param values Describes a domain where the application will be made available.
     */
    @JvmName("geqepidqxduwmgtw")
    public suspend fun domainNames(values: List>) {
        this.domainNames = Output.all(values)
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  This attribute has been replaced by `domain` which supports additional functionality.
  """,
    )
    @JvmName("weolvnmkbxnjoaep")
    public suspend fun domains(`value`: Output>) {
        this.domains = value
    }

    @JvmName("avkddkehnykvhkvq")
    public suspend fun domains(vararg values: Output) {
        this.domains = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @Deprecated(
        message = """
  This attribute has been replaced by `domain` which supports additional functionality.
  """,
    )
    @JvmName("pwdldnyccvecnrwr")
    public suspend fun domains(values: List>) {
        this.domains = Output.all(values)
    }

    /**
     * @param value Specification for app egress configurations.
     */
    @JvmName("uusgveqmvulkoflu")
    public suspend fun egresses(`value`: Output>) {
        this.egresses = value
    }

    @JvmName("xkbvrdjlcctfldnv")
    public suspend fun egresses(vararg values: Output) {
        this.egresses = Output.all(values.asList())
    }

    /**
     * @param values Specification for app egress configurations.
     */
    @JvmName("wrpskplcsxkfubcr")
    public suspend fun egresses(values: List>) {
        this.egresses = Output.all(values)
    }

    /**
     * @param value Describes an app-wide environment variable made available to all components.
     */
    @JvmName("qdncmkpulotjumap")
    public suspend fun envs(`value`: Output>) {
        this.envs = value
    }

    @JvmName("qksbwpypjfcngltx")
    public suspend fun envs(vararg values: Output) {
        this.envs = Output.all(values.asList())
    }

    /**
     * @param values Describes an app-wide environment variable made available to all components.
     */
    @JvmName("apcopwnwbumfbywh")
    public suspend fun envs(values: List>) {
        this.envs = Output.all(values)
    }

    /**
     * @param value A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
     */
    @JvmName("etdfjvffxkyuvdua")
    public suspend fun features(`value`: Output>) {
        this.features = value
    }

    @JvmName("rerjokbrmoqtvogv")
    public suspend fun features(vararg values: Output) {
        this.features = Output.all(values.asList())
    }

    /**
     * @param values A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
     */
    @JvmName("sdvtxatpefwygmyl")
    public suspend fun features(values: List>) {
        this.features = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("cnmhvjvsljxyjsrj")
    public suspend fun functions(`value`: Output>) {
        this.functions = value
    }

    @JvmName("lsddewntwawsouhl")
    public suspend fun functions(vararg values: Output) {
        this.functions = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("fotpitokrsewkmxn")
    public suspend fun functions(values: List>) {
        this.functions = Output.all(values)
    }

    /**
     * @param value Specification for component routing, rewrites, and redirects.
     */
    @JvmName("piqusskfogukwlbl")
    public suspend fun ingress(`value`: Output) {
        this.ingress = value
    }

    /**
     * @param value
     */
    @JvmName("ivgvqfxikqlbcojh")
    public suspend fun jobs(`value`: Output>) {
        this.jobs = value
    }

    @JvmName("jkoiixvrdohwbhhf")
    public suspend fun jobs(vararg values: Output) {
        this.jobs = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("pxnnpmcsfpotoatm")
    public suspend fun jobs(values: List>) {
        this.jobs = Output.all(values)
    }

    /**
     * @param value The name of the app. Must be unique across all apps in the same account.
     */
    @JvmName("jqsafgmlqcotldpy")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The slug for the DigitalOcean data center region hosting the app.
     */
    @JvmName("skaaanqkaptvdoeq")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

    /**
     * @param value
     */
    @JvmName("rthlovbggtpuclpl")
    public suspend fun services(`value`: Output>) {
        this.services = value
    }

    @JvmName("mawxfsvbpnpvrfde")
    public suspend fun services(vararg values: Output) {
        this.services = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("cxolaktdsebbsfak")
    public suspend fun services(values: List>) {
        this.services = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("hguarfextxyyxprw")
    public suspend fun staticSites(`value`: Output>) {
        this.staticSites = value
    }

    @JvmName("gocnbsaxbteuwugf")
    public suspend fun staticSites(vararg values: Output) {
        this.staticSites = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("dohtmbiplgjrooyb")
    public suspend fun staticSites(values: List>) {
        this.staticSites = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("svbxwvvmgurclfgw")
    public suspend fun workers(`value`: Output>) {
        this.workers = value
    }

    @JvmName("bmxiypwcsxottyrf")
    public suspend fun workers(vararg values: Output) {
        this.workers = Output.all(values.asList())
    }

    /**
     * @param values
     */
    @JvmName("qiueuphsqqpqcwys")
    public suspend fun workers(values: List>) {
        this.workers = Output.all(values)
    }

    /**
     * @param value Describes an alert policy for the app.
     */
    @JvmName("dcgldvhpxxxentiv")
    public suspend fun alerts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.alerts = mapped
    }

    /**
     * @param argument Describes an alert policy for the app.
     */
    @JvmName("vuncmjthugakcrng")
    public suspend fun alerts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecAlertArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.alerts = mapped
    }

    /**
     * @param argument Describes an alert policy for the app.
     */
    @JvmName("hlogaanlsqwaufqm")
    public suspend fun alerts(vararg argument: suspend AppSpecAlertArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecAlertArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.alerts = mapped
    }

    /**
     * @param argument Describes an alert policy for the app.
     */
    @JvmName("oojpectcsrjgfpwc")
    public suspend fun alerts(argument: suspend AppSpecAlertArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecAlertArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.alerts = mapped
    }

    /**
     * @param values Describes an alert policy for the app.
     */
    @JvmName("mrmxiodmxeeaewnj")
    public suspend fun alerts(vararg values: AppSpecAlertArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.alerts = mapped
    }

    /**
     * @param value
     */
    @JvmName("qiqavialchxybfhx")
    public suspend fun databases(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.databases = mapped
    }

    /**
     * @param argument
     */
    @JvmName("emsjjawrxqnieelm")
    public suspend fun databases(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecDatabaseArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.databases = mapped
    }

    /**
     * @param argument
     */
    @JvmName("eycmcvdxpwwxmbeq")
    public suspend fun databases(vararg argument: suspend AppSpecDatabaseArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecDatabaseArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.databases = mapped
    }

    /**
     * @param argument
     */
    @JvmName("ameqlpsgikfhwlkd")
    public suspend fun databases(argument: suspend AppSpecDatabaseArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecDatabaseArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.databases = mapped
    }

    /**
     * @param values
     */
    @JvmName("bqunsdjtkwcolerc")
    public suspend fun databases(vararg values: AppSpecDatabaseArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.databases = mapped
    }

    /**
     * @param value Describes a domain where the application will be made available.
     */
    @JvmName("ojdryualtmgejhuy")
    public suspend fun domainNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domainNames = mapped
    }

    /**
     * @param argument Describes a domain where the application will be made available.
     */
    @JvmName("pyseofhokijslyst")
    public suspend fun domainNames(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecDomainNameArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.domainNames = mapped
    }

    /**
     * @param argument Describes a domain where the application will be made available.
     */
    @JvmName("pgyrqgxbkgawfqmw")
    public suspend fun domainNames(vararg argument: suspend AppSpecDomainNameArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecDomainNameArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.domainNames = mapped
    }

    /**
     * @param argument Describes a domain where the application will be made available.
     */
    @JvmName("kqhtdstjwomgjsxi")
    public suspend fun domainNames(argument: suspend AppSpecDomainNameArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecDomainNameArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.domainNames = mapped
    }

    /**
     * @param values Describes a domain where the application will be made available.
     */
    @JvmName("vrethffwfcrihome")
    public suspend fun domainNames(vararg values: AppSpecDomainNameArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.domainNames = mapped
    }

    /**
     * @param value
     */
    @Deprecated(
        message = """
  This attribute has been replaced by `domain` which supports additional functionality.
  """,
    )
    @JvmName("aqbhipwrsdptytgb")
    public suspend fun domains(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domains = mapped
    }

    /**
     * @param values
     */
    @Deprecated(
        message = """
  This attribute has been replaced by `domain` which supports additional functionality.
  """,
    )
    @JvmName("hwklqasyorhfdljq")
    public suspend fun domains(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.domains = mapped
    }

    /**
     * @param value Specification for app egress configurations.
     */
    @JvmName("dvwwvtrxnxmthjft")
    public suspend fun egresses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.egresses = mapped
    }

    /**
     * @param argument Specification for app egress configurations.
     */
    @JvmName("taevxoodvbbgcxxp")
    public suspend fun egresses(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecEgressArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.egresses = mapped
    }

    /**
     * @param argument Specification for app egress configurations.
     */
    @JvmName("aiiourudrjlkashv")
    public suspend fun egresses(vararg argument: suspend AppSpecEgressArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecEgressArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.egresses = mapped
    }

    /**
     * @param argument Specification for app egress configurations.
     */
    @JvmName("rpcgrapaqhcgiduy")
    public suspend fun egresses(argument: suspend AppSpecEgressArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecEgressArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.egresses = mapped
    }

    /**
     * @param values Specification for app egress configurations.
     */
    @JvmName("dpxwckpmgfseeyik")
    public suspend fun egresses(vararg values: AppSpecEgressArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.egresses = mapped
    }

    /**
     * @param value Describes an app-wide environment variable made available to all components.
     */
    @JvmName("xveiguakcqarfuqo")
    public suspend fun envs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.envs = mapped
    }

    /**
     * @param argument Describes an app-wide environment variable made available to all components.
     */
    @JvmName("wrjshylvqutkjkhk")
    public suspend fun envs(argument: List Unit>) {
        val toBeMapped = argument.toList().map { AppSpecEnvArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.envs = mapped
    }

    /**
     * @param argument Describes an app-wide environment variable made available to all components.
     */
    @JvmName("mepwdmwaxpofmmtl")
    public suspend fun envs(vararg argument: suspend AppSpecEnvArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { AppSpecEnvArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.envs = mapped
    }

    /**
     * @param argument Describes an app-wide environment variable made available to all components.
     */
    @JvmName("ojdsdalqfnnmepvo")
    public suspend fun envs(argument: suspend AppSpecEnvArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecEnvArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.envs = mapped
    }

    /**
     * @param values Describes an app-wide environment variable made available to all components.
     */
    @JvmName("emhknfpdcvviornm")
    public suspend fun envs(vararg values: AppSpecEnvArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.envs = mapped
    }

    /**
     * @param value A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
     */
    @JvmName("jubexatidvhwhuvw")
    public suspend fun features(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.features = mapped
    }

    /**
     * @param values A list of the features applied to the app. The default buildpack can be overridden here. List of available buildpacks can be found using the [doctl CLI](https://docs.digitalocean.com/reference/doctl/reference/apps/list-buildpacks/)
     */
    @JvmName("gueoswdudfenefns")
    public suspend fun features(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.features = mapped
    }

    /**
     * @param value
     */
    @JvmName("lowmkrnnsfmkrtcm")
    public suspend fun functions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.functions = mapped
    }

    /**
     * @param argument
     */
    @JvmName("xdhuwxgnwsuvbrmu")
    public suspend fun functions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecFunctionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param argument
     */
    @JvmName("gvjuhocucgqnxbth")
    public suspend fun functions(vararg argument: suspend AppSpecFunctionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecFunctionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param argument
     */
    @JvmName("tvpuofavrjvddptl")
    public suspend fun functions(argument: suspend AppSpecFunctionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecFunctionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.functions = mapped
    }

    /**
     * @param values
     */
    @JvmName("kfglqpairakmylta")
    public suspend fun functions(vararg values: AppSpecFunctionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.functions = mapped
    }

    /**
     * @param value Specification for component routing, rewrites, and redirects.
     */
    @JvmName("vbptxwbpceddnxxd")
    public suspend fun ingress(`value`: AppSpecIngressArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ingress = mapped
    }

    /**
     * @param argument Specification for component routing, rewrites, and redirects.
     */
    @JvmName("gtyvgpuhuvknvkkg")
    public suspend fun ingress(argument: suspend AppSpecIngressArgsBuilder.() -> Unit) {
        val toBeMapped = AppSpecIngressArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.ingress = mapped
    }

    /**
     * @param value
     */
    @JvmName("aqresycahyctbtob")
    public suspend fun jobs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobs = mapped
    }

    /**
     * @param argument
     */
    @JvmName("nvolokjsvrqktgxk")
    public suspend fun jobs(argument: List Unit>) {
        val toBeMapped = argument.toList().map { AppSpecJobArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.jobs = mapped
    }

    /**
     * @param argument
     */
    @JvmName("uiodgnolfcykuupb")
    public suspend fun jobs(vararg argument: suspend AppSpecJobArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { AppSpecJobArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.jobs = mapped
    }

    /**
     * @param argument
     */
    @JvmName("rtuyqefhnmbbausm")
    public suspend fun jobs(argument: suspend AppSpecJobArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecJobArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.jobs = mapped
    }

    /**
     * @param values
     */
    @JvmName("ghcskspgounhissl")
    public suspend fun jobs(vararg values: AppSpecJobArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jobs = mapped
    }

    /**
     * @param value The name of the app. Must be unique across all apps in the same account.
     */
    @JvmName("kwptdlbeqhqowmee")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The slug for the DigitalOcean data center region hosting the app.
     */
    @JvmName("ntivkatqqaicmrbf")
    public suspend fun region(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.region = mapped
    }

    /**
     * @param value
     */
    @JvmName("wfsobujpdbtxqely")
    public suspend fun services(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.services = mapped
    }

    /**
     * @param argument
     */
    @JvmName("rienbogyuutpvptf")
    public suspend fun services(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecServiceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.services = mapped
    }

    /**
     * @param argument
     */
    @JvmName("rsndtyqbapkbexfv")
    public suspend fun services(vararg argument: suspend AppSpecServiceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecServiceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.services = mapped
    }

    /**
     * @param argument
     */
    @JvmName("kqeibukkeqrqahxm")
    public suspend fun services(argument: suspend AppSpecServiceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecServiceArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.services = mapped
    }

    /**
     * @param values
     */
    @JvmName("nkxwkshrrnsdrldg")
    public suspend fun services(vararg values: AppSpecServiceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.services = mapped
    }

    /**
     * @param value
     */
    @JvmName("pupxglvtsxutnind")
    public suspend fun staticSites(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.staticSites = mapped
    }

    /**
     * @param argument
     */
    @JvmName("gwlqivdpkyngrgpb")
    public suspend fun staticSites(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecStaticSiteArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.staticSites = mapped
    }

    /**
     * @param argument
     */
    @JvmName("rdhslshwhymsiayt")
    public suspend fun staticSites(vararg argument: suspend AppSpecStaticSiteArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecStaticSiteArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.staticSites = mapped
    }

    /**
     * @param argument
     */
    @JvmName("hnxofbrnprnsprsq")
    public suspend fun staticSites(argument: suspend AppSpecStaticSiteArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecStaticSiteArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.staticSites = mapped
    }

    /**
     * @param values
     */
    @JvmName("yenocvgssrnnexnw")
    public suspend fun staticSites(vararg values: AppSpecStaticSiteArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.staticSites = mapped
    }

    /**
     * @param value
     */
    @JvmName("uhwygnmscwgsbsju")
    public suspend fun workers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workers = mapped
    }

    /**
     * @param argument
     */
    @JvmName("fpgijxqjevtslyon")
    public suspend fun workers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppSpecWorkerArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.workers = mapped
    }

    /**
     * @param argument
     */
    @JvmName("plvjtkprieqfqwkx")
    public suspend fun workers(vararg argument: suspend AppSpecWorkerArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppSpecWorkerArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.workers = mapped
    }

    /**
     * @param argument
     */
    @JvmName("cwddovnlfgykrrvi")
    public suspend fun workers(argument: suspend AppSpecWorkerArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AppSpecWorkerArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.workers = mapped
    }

    /**
     * @param values
     */
    @JvmName("jionowtvuuwkwfqv")
    public suspend fun workers(vararg values: AppSpecWorkerArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workers = mapped
    }

    internal fun build(): AppSpecArgs = AppSpecArgs(
        alerts = alerts,
        databases = databases,
        domainNames = domainNames,
        domains = domains,
        egresses = egresses,
        envs = envs,
        features = features,
        functions = functions,
        ingress = ingress,
        jobs = jobs,
        name = name ?: throw PulumiNullFieldException("name"),
        region = region,
        services = services,
        staticSites = staticSites,
        workers = workers,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy