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

com.pulumi.azurenative.web.kotlin.inputs.CloningInfoArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.web.kotlin.inputs

import com.pulumi.azurenative.web.inputs.CloningInfoArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Information needed for cloning operation.
 * @property appSettingsOverrides Application setting overrides for cloned app. If specified, these settings override the settings cloned
 * from source app. Otherwise, application settings from source app are retained.
 * @property cloneCustomHostNames true to clone custom hostnames from source app; otherwise, false.
 * @property cloneSourceControl true to clone source control from source app; otherwise, false.
 * @property configureLoadBalancing true to configure load balancing for source and destination app.
 * @property correlationId Correlation ID of cloning operation. This ID ties multiple cloning operations
 * together to use the same snapshot.
 * @property hostingEnvironment App Service Environment.
 * @property overwrite true to overwrite destination app; otherwise, false.
 * @property sourceWebAppId ARM resource ID of the source app. App resource ID is of the form
 * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
 * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.
 * @property sourceWebAppLocation Location of source app ex: West US or North Europe
 * @property trafficManagerProfileId ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form
 * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.
 * @property trafficManagerProfileName Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist.
 */
public data class CloningInfoArgs(
    public val appSettingsOverrides: Output>? = null,
    public val cloneCustomHostNames: Output? = null,
    public val cloneSourceControl: Output? = null,
    public val configureLoadBalancing: Output? = null,
    public val correlationId: Output? = null,
    public val hostingEnvironment: Output? = null,
    public val overwrite: Output? = null,
    public val sourceWebAppId: Output,
    public val sourceWebAppLocation: Output? = null,
    public val trafficManagerProfileId: Output? = null,
    public val trafficManagerProfileName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.web.inputs.CloningInfoArgs =
        com.pulumi.azurenative.web.inputs.CloningInfoArgs.builder()
            .appSettingsOverrides(
                appSettingsOverrides?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .cloneCustomHostNames(cloneCustomHostNames?.applyValue({ args0 -> args0 }))
            .cloneSourceControl(cloneSourceControl?.applyValue({ args0 -> args0 }))
            .configureLoadBalancing(configureLoadBalancing?.applyValue({ args0 -> args0 }))
            .correlationId(correlationId?.applyValue({ args0 -> args0 }))
            .hostingEnvironment(hostingEnvironment?.applyValue({ args0 -> args0 }))
            .overwrite(overwrite?.applyValue({ args0 -> args0 }))
            .sourceWebAppId(sourceWebAppId.applyValue({ args0 -> args0 }))
            .sourceWebAppLocation(sourceWebAppLocation?.applyValue({ args0 -> args0 }))
            .trafficManagerProfileId(trafficManagerProfileId?.applyValue({ args0 -> args0 }))
            .trafficManagerProfileName(trafficManagerProfileName?.applyValue({ args0 -> args0 })).build()
}

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

    private var cloneCustomHostNames: Output? = null

    private var cloneSourceControl: Output? = null

    private var configureLoadBalancing: Output? = null

    private var correlationId: Output? = null

    private var hostingEnvironment: Output? = null

    private var overwrite: Output? = null

    private var sourceWebAppId: Output? = null

    private var sourceWebAppLocation: Output? = null

    private var trafficManagerProfileId: Output? = null

    private var trafficManagerProfileName: Output? = null

    /**
     * @param value Application setting overrides for cloned app. If specified, these settings override the settings cloned
     * from source app. Otherwise, application settings from source app are retained.
     */
    @JvmName("vmqfsrjrfvuwwxdn")
    public suspend fun appSettingsOverrides(`value`: Output>) {
        this.appSettingsOverrides = value
    }

    /**
     * @param value true to clone custom hostnames from source app; otherwise, false.
     */
    @JvmName("humqqtcthmawrgby")
    public suspend fun cloneCustomHostNames(`value`: Output) {
        this.cloneCustomHostNames = value
    }

    /**
     * @param value true to clone source control from source app; otherwise, false.
     */
    @JvmName("lntbrgimnatmjcgv")
    public suspend fun cloneSourceControl(`value`: Output) {
        this.cloneSourceControl = value
    }

    /**
     * @param value true to configure load balancing for source and destination app.
     */
    @JvmName("fvubxulwgugfoijt")
    public suspend fun configureLoadBalancing(`value`: Output) {
        this.configureLoadBalancing = value
    }

    /**
     * @param value Correlation ID of cloning operation. This ID ties multiple cloning operations
     * together to use the same snapshot.
     */
    @JvmName("bwgkexldroodcvkl")
    public suspend fun correlationId(`value`: Output) {
        this.correlationId = value
    }

    /**
     * @param value App Service Environment.
     */
    @JvmName("qkonceciybiftbev")
    public suspend fun hostingEnvironment(`value`: Output) {
        this.hostingEnvironment = value
    }

    /**
     * @param value true to overwrite destination app; otherwise, false.
     */
    @JvmName("trdocvngqnnqccvf")
    public suspend fun overwrite(`value`: Output) {
        this.overwrite = value
    }

    /**
     * @param value ARM resource ID of the source app. App resource ID is of the form
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.
     */
    @JvmName("kottsbasgcqmabee")
    public suspend fun sourceWebAppId(`value`: Output) {
        this.sourceWebAppId = value
    }

    /**
     * @param value Location of source app ex: West US or North Europe
     */
    @JvmName("niksepyqwsvwgktw")
    public suspend fun sourceWebAppLocation(`value`: Output) {
        this.sourceWebAppLocation = value
    }

    /**
     * @param value ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.
     */
    @JvmName("keyrsdhtrhfdflmo")
    public suspend fun trafficManagerProfileId(`value`: Output) {
        this.trafficManagerProfileId = value
    }

    /**
     * @param value Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist.
     */
    @JvmName("fmethoxtfckesyil")
    public suspend fun trafficManagerProfileName(`value`: Output) {
        this.trafficManagerProfileName = value
    }

    /**
     * @param value Application setting overrides for cloned app. If specified, these settings override the settings cloned
     * from source app. Otherwise, application settings from source app are retained.
     */
    @JvmName("kudidfseaiipwbbq")
    public suspend fun appSettingsOverrides(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appSettingsOverrides = mapped
    }

    /**
     * @param values Application setting overrides for cloned app. If specified, these settings override the settings cloned
     * from source app. Otherwise, application settings from source app are retained.
     */
    @JvmName("cswkrhyxauhwstfw")
    public fun appSettingsOverrides(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.appSettingsOverrides = mapped
    }

    /**
     * @param value true to clone custom hostnames from source app; otherwise, false.
     */
    @JvmName("ktjrfhrdyetcqtxf")
    public suspend fun cloneCustomHostNames(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloneCustomHostNames = mapped
    }

    /**
     * @param value true to clone source control from source app; otherwise, false.
     */
    @JvmName("cmygtsdshactsqar")
    public suspend fun cloneSourceControl(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloneSourceControl = mapped
    }

    /**
     * @param value true to configure load balancing for source and destination app.
     */
    @JvmName("bsskctmaioydvoxc")
    public suspend fun configureLoadBalancing(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configureLoadBalancing = mapped
    }

    /**
     * @param value Correlation ID of cloning operation. This ID ties multiple cloning operations
     * together to use the same snapshot.
     */
    @JvmName("jdomnxmvbpgxmomk")
    public suspend fun correlationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.correlationId = mapped
    }

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

    /**
     * @param value true to overwrite destination app; otherwise, false.
     */
    @JvmName("mivhburkddmmlwlm")
    public suspend fun overwrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.overwrite = mapped
    }

    /**
     * @param value ARM resource ID of the source app. App resource ID is of the form
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.
     */
    @JvmName("apusethieupsmvbn")
    public suspend fun sourceWebAppId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sourceWebAppId = mapped
    }

    /**
     * @param value Location of source app ex: West US or North Europe
     */
    @JvmName("mbphctmiomgpitpm")
    public suspend fun sourceWebAppLocation(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceWebAppLocation = mapped
    }

    /**
     * @param value ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form
     * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.
     */
    @JvmName("fgmcpivyyadqeaab")
    public suspend fun trafficManagerProfileId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.trafficManagerProfileId = mapped
    }

    /**
     * @param value Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist.
     */
    @JvmName("eshqfwhpfktqrnrk")
    public suspend fun trafficManagerProfileName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.trafficManagerProfileName = mapped
    }

    internal fun build(): CloningInfoArgs = CloningInfoArgs(
        appSettingsOverrides = appSettingsOverrides,
        cloneCustomHostNames = cloneCustomHostNames,
        cloneSourceControl = cloneSourceControl,
        configureLoadBalancing = configureLoadBalancing,
        correlationId = correlationId,
        hostingEnvironment = hostingEnvironment,
        overwrite = overwrite,
        sourceWebAppId = sourceWebAppId ?: throw PulumiNullFieldException("sourceWebAppId"),
        sourceWebAppLocation = sourceWebAppLocation,
        trafficManagerProfileId = trafficManagerProfileId,
        trafficManagerProfileName = trafficManagerProfileName,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy