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

com.pulumi.googlenative.appengine.v1.kotlin.ApplicationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.googlenative.appengine.v1.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.appengine.v1.ApplicationArgs.builder
import com.pulumi.googlenative.appengine.v1.kotlin.enums.ApplicationDatabaseType
import com.pulumi.googlenative.appengine.v1.kotlin.enums.ApplicationServingStatus
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.FeatureSettingsArgs
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.FeatureSettingsArgsBuilder
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.IdentityAwareProxyArgs
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.IdentityAwareProxyArgsBuilder
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.UrlDispatchRuleArgs
import com.pulumi.googlenative.appengine.v1.kotlin.inputs.UrlDispatchRuleArgsBuilder
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.collections.List
import kotlin.jvm.JvmName

/**
 * Creates an App Engine application for a Google Cloud Platform project. Required fields: id - The ID of the target Cloud Platform project. location - The region (https://cloud.google.com/appengine/docs/locations) where you want the App Engine application located.For more information about App Engine applications, see Managing Projects, Applications, and Billing (https://cloud.google.com/appengine/docs/standard/python/console/).
 * Auto-naming is currently not supported for this resource.
 * Note - this resource's API doesn't support deletion. When deleted, the resource will persist
 * on Google Cloud even though it will be deleted from Pulumi state.
 * @property authDomain Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
 * @property databaseType The type of the Cloud Firestore or Cloud Datastore database associated with this application.
 * @property defaultCookieExpiration Cookie expiration policy for this application.
 * @property dispatchRules HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
 * @property featureSettings The feature specific settings to be used in the application.
 * @property iap
 * @property id Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
 * @property location Location from which this application runs. Application instances run out of the data centers in the specified location, which is also where all of the application's end user content is stored.Defaults to us-central.View the list of supported locations (https://cloud.google.com/appengine/docs/locations).
 * @property project
 * @property serviceAccount The service account associated with the application. This is the app-level default identity. If no identity provided during create version, Admin API will fallback to this one.
 * @property servingStatus Serving status of this application.
 */
public data class ApplicationArgs(
    public val authDomain: Output? = null,
    public val databaseType: Output? = null,
    public val defaultCookieExpiration: Output? = null,
    public val dispatchRules: Output>? = null,
    public val featureSettings: Output? = null,
    public val iap: Output? = null,
    public val id: Output? = null,
    public val location: Output? = null,
    public val project: Output? = null,
    public val serviceAccount: Output? = null,
    public val servingStatus: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.appengine.v1.ApplicationArgs =
        com.pulumi.googlenative.appengine.v1.ApplicationArgs.builder()
            .authDomain(authDomain?.applyValue({ args0 -> args0 }))
            .databaseType(databaseType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .defaultCookieExpiration(defaultCookieExpiration?.applyValue({ args0 -> args0 }))
            .dispatchRules(
                dispatchRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .featureSettings(featureSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .iap(iap?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .id(id?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .serviceAccount(serviceAccount?.applyValue({ args0 -> args0 }))
            .servingStatus(servingStatus?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [ApplicationArgs].
 */
@PulumiTagMarker
public class ApplicationArgsBuilder internal constructor() {
    private var authDomain: Output? = null

    private var databaseType: Output? = null

    private var defaultCookieExpiration: Output? = null

    private var dispatchRules: Output>? = null

    private var featureSettings: Output? = null

    private var iap: Output? = null

    private var id: Output? = null

    private var location: Output? = null

    private var project: Output? = null

    private var serviceAccount: Output? = null

    private var servingStatus: Output? = null

    /**
     * @param value Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
     */
    @JvmName("ulhkmjxfsxjvqtxg")
    public suspend fun authDomain(`value`: Output) {
        this.authDomain = value
    }

    /**
     * @param value The type of the Cloud Firestore or Cloud Datastore database associated with this application.
     */
    @JvmName("cawwqihbipcemash")
    public suspend fun databaseType(`value`: Output) {
        this.databaseType = value
    }

    /**
     * @param value Cookie expiration policy for this application.
     */
    @JvmName("goenblmyenpaknte")
    public suspend fun defaultCookieExpiration(`value`: Output) {
        this.defaultCookieExpiration = value
    }

    /**
     * @param value HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("fxmpvaxamymefcuh")
    public suspend fun dispatchRules(`value`: Output>) {
        this.dispatchRules = value
    }

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

    /**
     * @param values HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("mssplkkvgbqgwnrw")
    public suspend fun dispatchRules(values: List>) {
        this.dispatchRules = Output.all(values)
    }

    /**
     * @param value The feature specific settings to be used in the application.
     */
    @JvmName("dyyfleofvrsdafqy")
    public suspend fun featureSettings(`value`: Output) {
        this.featureSettings = value
    }

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

    /**
     * @param value Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
     */
    @JvmName("bsplavsnbpevagxc")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value Location from which this application runs. Application instances run out of the data centers in the specified location, which is also where all of the application's end user content is stored.Defaults to us-central.View the list of supported locations (https://cloud.google.com/appengine/docs/locations).
     */
    @JvmName("dkutnsuouhhjldlx")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

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

    /**
     * @param value The service account associated with the application. This is the app-level default identity. If no identity provided during create version, Admin API will fallback to this one.
     */
    @JvmName("wwhcyjuexyeiqemp")
    public suspend fun serviceAccount(`value`: Output) {
        this.serviceAccount = value
    }

    /**
     * @param value Serving status of this application.
     */
    @JvmName("hgkdwuybsgllwbwa")
    public suspend fun servingStatus(`value`: Output) {
        this.servingStatus = value
    }

    /**
     * @param value Google Apps authentication domain that controls which users can access this application.Defaults to open access for any Google Account.
     */
    @JvmName("pnklgjvgqxagtooy")
    public suspend fun authDomain(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authDomain = mapped
    }

    /**
     * @param value The type of the Cloud Firestore or Cloud Datastore database associated with this application.
     */
    @JvmName("syfuhdartbculded")
    public suspend fun databaseType(`value`: ApplicationDatabaseType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.databaseType = mapped
    }

    /**
     * @param value Cookie expiration policy for this application.
     */
    @JvmName("fobriggjuhqesnus")
    public suspend fun defaultCookieExpiration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultCookieExpiration = mapped
    }

    /**
     * @param value HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("sfdlfsnleaiiqvly")
    public suspend fun dispatchRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dispatchRules = mapped
    }

    /**
     * @param argument HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("jgtoexvjmsjatkyh")
    public suspend fun dispatchRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            UrlDispatchRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dispatchRules = mapped
    }

    /**
     * @param argument HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("accxpnovbgdetuol")
    public suspend fun dispatchRules(vararg argument: suspend UrlDispatchRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            UrlDispatchRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dispatchRules = mapped
    }

    /**
     * @param argument HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("qcfscyxcgnnykgdh")
    public suspend fun dispatchRules(argument: suspend UrlDispatchRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(UrlDispatchRuleArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dispatchRules = mapped
    }

    /**
     * @param values HTTP path dispatch rules for requests to the application that do not explicitly target a service or version. Rules are order-dependent. Up to 20 dispatch rules can be supported.
     */
    @JvmName("cmssvhhndpuvtuue")
    public suspend fun dispatchRules(vararg values: UrlDispatchRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dispatchRules = mapped
    }

    /**
     * @param value The feature specific settings to be used in the application.
     */
    @JvmName("aeclbnfemjjtyvqm")
    public suspend fun featureSettings(`value`: FeatureSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.featureSettings = mapped
    }

    /**
     * @param argument The feature specific settings to be used in the application.
     */
    @JvmName("lwvgydyttafdhrhj")
    public suspend fun featureSettings(argument: suspend FeatureSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = FeatureSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.featureSettings = mapped
    }

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

    /**
     * @param argument
     */
    @JvmName("wdkdjfyvmekdqwkt")
    public suspend fun iap(argument: suspend IdentityAwareProxyArgsBuilder.() -> Unit) {
        val toBeMapped = IdentityAwareProxyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.iap = mapped
    }

    /**
     * @param value Identifier of the Application resource. This identifier is equivalent to the project ID of the Google Cloud Platform project where you want to deploy your application. Example: myapp.
     */
    @JvmName("irtpjfphkbpqnawt")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value Location from which this application runs. Application instances run out of the data centers in the specified location, which is also where all of the application's end user content is stored.Defaults to us-central.View the list of supported locations (https://cloud.google.com/appengine/docs/locations).
     */
    @JvmName("ekxsjutupqavxsdn")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

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

    /**
     * @param value The service account associated with the application. This is the app-level default identity. If no identity provided during create version, Admin API will fallback to this one.
     */
    @JvmName("jcvnvavjhxshgdqp")
    public suspend fun serviceAccount(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccount = mapped
    }

    /**
     * @param value Serving status of this application.
     */
    @JvmName("nvnkiyjkytwvjder")
    public suspend fun servingStatus(`value`: ApplicationServingStatus?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.servingStatus = mapped
    }

    internal fun build(): ApplicationArgs = ApplicationArgs(
        authDomain = authDomain,
        databaseType = databaseType,
        defaultCookieExpiration = defaultCookieExpiration,
        dispatchRules = dispatchRules,
        featureSettings = featureSettings,
        iap = iap,
        id = id,
        location = location,
        project = project,
        serviceAccount = serviceAccount,
        servingStatus = servingStatus,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy