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

com.pulumi.googlenative.gkebackup.v1.kotlin.RestorePlanArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.gkebackup.v1.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.gkebackup.v1.RestorePlanArgs.builder
import com.pulumi.googlenative.gkebackup.v1.kotlin.inputs.RestoreConfigArgs
import com.pulumi.googlenative.gkebackup.v1.kotlin.inputs.RestoreConfigArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Creates a new RestorePlan in a given location.
 * Auto-naming is currently not supported for this resource.
 * @property backupPlan Immutable. A reference to the BackupPlan from which Backups may be used as the source for Restores created via this RestorePlan. Format: `projects/*/locations/*/backupPlans/*`.
 * @property cluster Immutable. The target cluster into which Restores created via this RestorePlan will restore data. NOTE: the cluster's region must be the same as the RestorePlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`
 * @property description User specified descriptive string for this RestorePlan.
 * @property labels A set of custom labels supplied by user.
 * @property location
 * @property project
 * @property restoreConfig Configuration of Restores created via this RestorePlan.
 * @property restorePlanId Required. The client-provided short name for the RestorePlan resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of RestorePlans in this location
 * */*/*/*/*/*/*/*/*/
 */
public data class RestorePlanArgs(
    public val backupPlan: Output? = null,
    public val cluster: Output? = null,
    public val description: Output? = null,
    public val labels: Output>? = null,
    public val location: Output? = null,
    public val project: Output? = null,
    public val restoreConfig: Output? = null,
    public val restorePlanId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.gkebackup.v1.RestorePlanArgs =
        com.pulumi.googlenative.gkebackup.v1.RestorePlanArgs.builder()
            .backupPlan(backupPlan?.applyValue({ args0 -> args0 }))
            .cluster(cluster?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .location(location?.applyValue({ args0 -> args0 }))
            .project(project?.applyValue({ args0 -> args0 }))
            .restoreConfig(restoreConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .restorePlanId(restorePlanId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [RestorePlanArgs].
 */
@PulumiTagMarker
public class RestorePlanArgsBuilder internal constructor() {
    private var backupPlan: Output? = null

    private var cluster: Output? = null

    private var description: Output? = null

    private var labels: Output>? = null

    private var location: Output? = null

    private var project: Output? = null

    private var restoreConfig: Output? = null

    private var restorePlanId: Output? = null

    /**
     * @param value Immutable. A reference to the BackupPlan from which Backups may be used as the source for Restores created via this RestorePlan. Format: `projects/*/locations/*/backupPlans/*`.
     * */*/*/
     */
    @JvmName("kdleycxhfiotkjjn")
    public suspend fun backupPlan(`value`: Output) {
        this.backupPlan = value
    }

    /**
     * @param value Immutable. The target cluster into which Restores created via this RestorePlan will restore data. NOTE: the cluster's region must be the same as the RestorePlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`
     * */*/*/*/*/*/
     */
    @JvmName("aouivhikwpoojiid")
    public suspend fun cluster(`value`: Output) {
        this.cluster = value
    }

    /**
     * @param value User specified descriptive string for this RestorePlan.
     */
    @JvmName("yuyatgqxjqruobct")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value A set of custom labels supplied by user.
     */
    @JvmName("clbwdjibihpivqhy")
    public suspend fun labels(`value`: Output>) {
        this.labels = value
    }

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

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

    /**
     * @param value Configuration of Restores created via this RestorePlan.
     */
    @JvmName("mumperpjtmixuohc")
    public suspend fun restoreConfig(`value`: Output) {
        this.restoreConfig = value
    }

    /**
     * @param value Required. The client-provided short name for the RestorePlan resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of RestorePlans in this location
     */
    @JvmName("tirirvdldpavhpig")
    public suspend fun restorePlanId(`value`: Output) {
        this.restorePlanId = value
    }

    /**
     * @param value Immutable. A reference to the BackupPlan from which Backups may be used as the source for Restores created via this RestorePlan. Format: `projects/*/locations/*/backupPlans/*`.
     * */*/*/
     */
    @JvmName("cmdustwtnxyejbik")
    public suspend fun backupPlan(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.backupPlan = mapped
    }

    /**
     * @param value Immutable. The target cluster into which Restores created via this RestorePlan will restore data. NOTE: the cluster's region must be the same as the RestorePlan. Valid formats: - `projects/*/locations/*/clusters/*` - `projects/*/zones/*/clusters/*`
     * */*/*/*/*/*/
     */
    @JvmName("ahofxeqpktgscjri")
    public suspend fun cluster(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cluster = mapped
    }

    /**
     * @param value User specified descriptive string for this RestorePlan.
     */
    @JvmName("phbgiwmkhfveeemf")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value A set of custom labels supplied by user.
     */
    @JvmName("hdqqimgfmwahuwpf")
    public suspend fun labels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labels = mapped
    }

    /**
     * @param values A set of custom labels supplied by user.
     */
    @JvmName("xtrteyohjxiypkll")
    public fun labels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.labels = mapped
    }

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

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

    /**
     * @param value Configuration of Restores created via this RestorePlan.
     */
    @JvmName("jeluwkhaqwoajrth")
    public suspend fun restoreConfig(`value`: RestoreConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.restoreConfig = mapped
    }

    /**
     * @param argument Configuration of Restores created via this RestorePlan.
     */
    @JvmName("ydolyfdrxwrlwcvh")
    public suspend fun restoreConfig(argument: suspend RestoreConfigArgsBuilder.() -> Unit) {
        val toBeMapped = RestoreConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.restoreConfig = mapped
    }

    /**
     * @param value Required. The client-provided short name for the RestorePlan resource. This name must: - be between 1 and 63 characters long (inclusive) - consist of only lower-case ASCII letters, numbers, and dashes - start with a lower-case letter - end with a lower-case letter or number - be unique within the set of RestorePlans in this location
     */
    @JvmName("spxfqfcdmruqqlyf")
    public suspend fun restorePlanId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.restorePlanId = mapped
    }

    internal fun build(): RestorePlanArgs = RestorePlanArgs(
        backupPlan = backupPlan,
        cluster = cluster,
        description = description,
        labels = labels,
        location = location,
        project = project,
        restoreConfig = restoreConfig,
        restorePlanId = restorePlanId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy