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

com.pulumi.azurenative.recoveryservices.kotlin.inputs.A2ASharedDiskReplicationDetailsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.recoveryservices.kotlin.inputs

import com.pulumi.azurenative.recoveryservices.inputs.A2ASharedDiskReplicationDetailsArgs.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 com.pulumi.kotlin.applySuspend
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * A2A provider specific settings.
 * @property failoverRecoveryPointId The recovery point id to which the Virtual node was failed over.
 * @property instanceType Gets the Instance type.
 * Expected value is 'A2A'.
 * @property lastRpoCalculatedTime The time (in UTC) when the last RPO value was calculated by Protection Service.
 * @property managementId The management Id.
 * @property monitoringJobType The type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
 * @property monitoringPercentageCompletion The percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
 * @property primaryFabricLocation Primary fabric location.
 * @property protectedManagedDisks The list of protected managed disks.
 * @property recoveryFabricLocation The recovery fabric location.
 * @property rpoInSeconds The last RPO value in seconds.
 * @property unprotectedDisks The list of unprotected disks.
 */
public data class A2ASharedDiskReplicationDetailsArgs(
    public val failoverRecoveryPointId: Output? = null,
    public val instanceType: Output,
    public val lastRpoCalculatedTime: Output? = null,
    public val managementId: Output? = null,
    public val monitoringJobType: Output? = null,
    public val monitoringPercentageCompletion: Output? = null,
    public val primaryFabricLocation: Output? = null,
    public val protectedManagedDisks: Output>? = null,
    public val recoveryFabricLocation: Output? = null,
    public val rpoInSeconds: Output? = null,
    public val unprotectedDisks: Output>? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.recoveryservices.inputs.A2ASharedDiskReplicationDetailsArgs =
        com.pulumi.azurenative.recoveryservices.inputs.A2ASharedDiskReplicationDetailsArgs.builder()
            .failoverRecoveryPointId(failoverRecoveryPointId?.applyValue({ args0 -> args0 }))
            .instanceType(instanceType.applyValue({ args0 -> args0 }))
            .lastRpoCalculatedTime(lastRpoCalculatedTime?.applyValue({ args0 -> args0 }))
            .managementId(managementId?.applyValue({ args0 -> args0 }))
            .monitoringJobType(monitoringJobType?.applyValue({ args0 -> args0 }))
            .monitoringPercentageCompletion(monitoringPercentageCompletion?.applyValue({ args0 -> args0 }))
            .primaryFabricLocation(primaryFabricLocation?.applyValue({ args0 -> args0 }))
            .protectedManagedDisks(
                protectedManagedDisks?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .recoveryFabricLocation(recoveryFabricLocation?.applyValue({ args0 -> args0 }))
            .rpoInSeconds(rpoInSeconds?.applyValue({ args0 -> args0 }))
            .unprotectedDisks(
                unprotectedDisks?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [A2ASharedDiskReplicationDetailsArgs].
 */
@PulumiTagMarker
public class A2ASharedDiskReplicationDetailsArgsBuilder internal constructor() {
    private var failoverRecoveryPointId: Output? = null

    private var instanceType: Output? = null

    private var lastRpoCalculatedTime: Output? = null

    private var managementId: Output? = null

    private var monitoringJobType: Output? = null

    private var monitoringPercentageCompletion: Output? = null

    private var primaryFabricLocation: Output? = null

    private var protectedManagedDisks: Output>? = null

    private var recoveryFabricLocation: Output? = null

    private var rpoInSeconds: Output? = null

    private var unprotectedDisks: Output>? = null

    /**
     * @param value The recovery point id to which the Virtual node was failed over.
     */
    @JvmName("rhthgqenuwjyiooy")
    public suspend fun failoverRecoveryPointId(`value`: Output) {
        this.failoverRecoveryPointId = value
    }

    /**
     * @param value Gets the Instance type.
     * Expected value is 'A2A'.
     */
    @JvmName("peflmbvdgsghjcsv")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value The time (in UTC) when the last RPO value was calculated by Protection Service.
     */
    @JvmName("cyqtaragpdwwfktm")
    public suspend fun lastRpoCalculatedTime(`value`: Output) {
        this.lastRpoCalculatedTime = value
    }

    /**
     * @param value The management Id.
     */
    @JvmName("iqssqwymrlbsphfx")
    public suspend fun managementId(`value`: Output) {
        this.managementId = value
    }

    /**
     * @param value The type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
     */
    @JvmName("mcyphsdcobjkbrqu")
    public suspend fun monitoringJobType(`value`: Output) {
        this.monitoringJobType = value
    }

    /**
     * @param value The percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
     */
    @JvmName("awqryyjetrqfxkfn")
    public suspend fun monitoringPercentageCompletion(`value`: Output) {
        this.monitoringPercentageCompletion = value
    }

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

    /**
     * @param value The list of protected managed disks.
     */
    @JvmName("bnlijmcbywiapsex")
    public suspend fun protectedManagedDisks(`value`: Output>) {
        this.protectedManagedDisks = value
    }

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

    /**
     * @param values The list of protected managed disks.
     */
    @JvmName("rhmoagruhdxgxvrs")
    public suspend fun protectedManagedDisks(values: List>) {
        this.protectedManagedDisks = Output.all(values)
    }

    /**
     * @param value The recovery fabric location.
     */
    @JvmName("eknolnqkerwqrqiy")
    public suspend fun recoveryFabricLocation(`value`: Output) {
        this.recoveryFabricLocation = value
    }

    /**
     * @param value The last RPO value in seconds.
     */
    @JvmName("uxpcstrgokgpyvte")
    public suspend fun rpoInSeconds(`value`: Output) {
        this.rpoInSeconds = value
    }

    /**
     * @param value The list of unprotected disks.
     */
    @JvmName("npinafigoayibake")
    public suspend fun unprotectedDisks(`value`: Output>) {
        this.unprotectedDisks = value
    }

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

    /**
     * @param values The list of unprotected disks.
     */
    @JvmName("msoqxpyeganhxhhh")
    public suspend fun unprotectedDisks(values: List>) {
        this.unprotectedDisks = Output.all(values)
    }

    /**
     * @param value The recovery point id to which the Virtual node was failed over.
     */
    @JvmName("nmhfeheaafljfdfu")
    public suspend fun failoverRecoveryPointId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.failoverRecoveryPointId = mapped
    }

    /**
     * @param value Gets the Instance type.
     * Expected value is 'A2A'.
     */
    @JvmName("vauplnmnmjtvtpxy")
    public suspend fun instanceType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value The time (in UTC) when the last RPO value was calculated by Protection Service.
     */
    @JvmName("bwavccudhtqifrrr")
    public suspend fun lastRpoCalculatedTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lastRpoCalculatedTime = mapped
    }

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

    /**
     * @param value The type of the monitoring job. The progress is contained in MonitoringPercentageCompletion property.
     */
    @JvmName("qyeldpfnjswqpcwf")
    public suspend fun monitoringJobType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monitoringJobType = mapped
    }

    /**
     * @param value The percentage of the monitoring job. The type of the monitoring job is defined by MonitoringJobType property.
     */
    @JvmName("vwqbjddphpbujata")
    public suspend fun monitoringPercentageCompletion(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monitoringPercentageCompletion = mapped
    }

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

    /**
     * @param value The list of protected managed disks.
     */
    @JvmName("ldisjljvpmqhhtmy")
    public suspend fun protectedManagedDisks(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protectedManagedDisks = mapped
    }

    /**
     * @param argument The list of protected managed disks.
     */
    @JvmName("iwqetsgwdgoxobtt")
    public suspend fun protectedManagedDisks(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            A2AProtectedManagedDiskDetailsArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.protectedManagedDisks = mapped
    }

    /**
     * @param argument The list of protected managed disks.
     */
    @JvmName("rpvxebkjsjhlphds")
    public suspend fun protectedManagedDisks(vararg argument: suspend A2AProtectedManagedDiskDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            A2AProtectedManagedDiskDetailsArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.protectedManagedDisks = mapped
    }

    /**
     * @param argument The list of protected managed disks.
     */
    @JvmName("xawhkqpdbrwcbslf")
    public suspend fun protectedManagedDisks(argument: suspend A2AProtectedManagedDiskDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            A2AProtectedManagedDiskDetailsArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.protectedManagedDisks = mapped
    }

    /**
     * @param values The list of protected managed disks.
     */
    @JvmName("qjnwnfugmrcygqvf")
    public suspend fun protectedManagedDisks(vararg values: A2AProtectedManagedDiskDetailsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.protectedManagedDisks = mapped
    }

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

    /**
     * @param value The last RPO value in seconds.
     */
    @JvmName("yprssyxdnmrexkva")
    public suspend fun rpoInSeconds(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rpoInSeconds = mapped
    }

    /**
     * @param value The list of unprotected disks.
     */
    @JvmName("ewfqyfwrsfddcatg")
    public suspend fun unprotectedDisks(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.unprotectedDisks = mapped
    }

    /**
     * @param argument The list of unprotected disks.
     */
    @JvmName("etpekjtibifkamrb")
    public suspend fun unprotectedDisks(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            A2AUnprotectedDiskDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.unprotectedDisks = mapped
    }

    /**
     * @param argument The list of unprotected disks.
     */
    @JvmName("jytpmtkvfhiatsha")
    public suspend fun unprotectedDisks(vararg argument: suspend A2AUnprotectedDiskDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            A2AUnprotectedDiskDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.unprotectedDisks = mapped
    }

    /**
     * @param argument The list of unprotected disks.
     */
    @JvmName("ieteoppqridvdehq")
    public suspend fun unprotectedDisks(argument: suspend A2AUnprotectedDiskDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            A2AUnprotectedDiskDetailsArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.unprotectedDisks = mapped
    }

    /**
     * @param values The list of unprotected disks.
     */
    @JvmName("trpcnpktybtkmqma")
    public suspend fun unprotectedDisks(vararg values: A2AUnprotectedDiskDetailsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.unprotectedDisks = mapped
    }

    internal fun build(): A2ASharedDiskReplicationDetailsArgs = A2ASharedDiskReplicationDetailsArgs(
        failoverRecoveryPointId = failoverRecoveryPointId,
        instanceType = instanceType ?: throw PulumiNullFieldException("instanceType"),
        lastRpoCalculatedTime = lastRpoCalculatedTime,
        managementId = managementId,
        monitoringJobType = monitoringJobType,
        monitoringPercentageCompletion = monitoringPercentageCompletion,
        primaryFabricLocation = primaryFabricLocation,
        protectedManagedDisks = protectedManagedDisks,
        recoveryFabricLocation = recoveryFabricLocation,
        rpoInSeconds = rpoInSeconds,
        unprotectedDisks = unprotectedDisks,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy