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

com.pulumi.azurenative.migrate.kotlin.inputs.AzureSettingsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.migrate.kotlin.inputs

import com.pulumi.azurenative.migrate.inputs.AzureSettingsArgs.builder
import com.pulumi.azurenative.migrate.kotlin.enums.BusinessCaseCurrency
import com.pulumi.azurenative.migrate.kotlin.enums.DiscoverySource
import com.pulumi.azurenative.migrate.kotlin.enums.MigrationStrategy
import com.pulumi.azurenative.migrate.kotlin.enums.SavingsOption
import com.pulumi.core.Either
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.Double
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Azure settings for a business case.
 * @property avsLaborCostPercentage Gets Avs labour cost percentage.
 * @property businessCaseType Migration Strategy.
 * @property comfortFactor Gets comfort factor.
 * @property currency Business case Currency.
 * @property discountPercentage Gets azure Discount percentage.
 * @property iaasLaborCostPercentage Gets IaaS labour cost percentage.
 * @property infrastructureGrowthRate Gets infrastructure growth rate.
 * @property networkCostPercentage Gets network cost percentage.
 * @property paasLaborCostPercentage Gets PaaS labour cost percentage.
 * @property perYearMigrationCompletionPercentage Gets migration completion percentage per year.
 * @property performanceDataEndTime Gets end time to use for performance.
 * @property performanceDataStartTime Gets start time to use for performance.
 * @property performanceUtilizationPercentile Gets utilization percentile for performance.
 * @property savingsOption Gets the business case savings option type.
 * @property targetLocation Gets or sets azure location.
 * @property wacc Gets wACC percentage.
 * @property workloadDiscoverySource Workload discovery source.
 */
public data class AzureSettingsArgs(
    public val avsLaborCostPercentage: Output? = null,
    public val businessCaseType: Output>? = null,
    public val comfortFactor: Output? = null,
    public val currency: Output>,
    public val discountPercentage: Output? = null,
    public val iaasLaborCostPercentage: Output? = null,
    public val infrastructureGrowthRate: Output? = null,
    public val networkCostPercentage: Output? = null,
    public val paasLaborCostPercentage: Output? = null,
    public val perYearMigrationCompletionPercentage: Output>? = null,
    public val performanceDataEndTime: Output? = null,
    public val performanceDataStartTime: Output? = null,
    public val performanceUtilizationPercentile: Output? = null,
    public val savingsOption: Output>? = null,
    public val targetLocation: Output,
    public val wacc: Output? = null,
    public val workloadDiscoverySource: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.migrate.inputs.AzureSettingsArgs =
        com.pulumi.azurenative.migrate.inputs.AzureSettingsArgs.builder()
            .avsLaborCostPercentage(avsLaborCostPercentage?.applyValue({ args0 -> args0 }))
            .businessCaseType(
                businessCaseType?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .comfortFactor(comfortFactor?.applyValue({ args0 -> args0 }))
            .currency(
                currency.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .discountPercentage(discountPercentage?.applyValue({ args0 -> args0 }))
            .iaasLaborCostPercentage(iaasLaborCostPercentage?.applyValue({ args0 -> args0 }))
            .infrastructureGrowthRate(infrastructureGrowthRate?.applyValue({ args0 -> args0 }))
            .networkCostPercentage(networkCostPercentage?.applyValue({ args0 -> args0 }))
            .paasLaborCostPercentage(paasLaborCostPercentage?.applyValue({ args0 -> args0 }))
            .perYearMigrationCompletionPercentage(
                perYearMigrationCompletionPercentage?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.key.to(args0.value) }).toMap()
                }),
            )
            .performanceDataEndTime(performanceDataEndTime?.applyValue({ args0 -> args0 }))
            .performanceDataStartTime(performanceDataStartTime?.applyValue({ args0 -> args0 }))
            .performanceUtilizationPercentile(performanceUtilizationPercentile?.applyValue({ args0 -> args0 }))
            .savingsOption(
                savingsOption?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .targetLocation(targetLocation.applyValue({ args0 -> args0 }))
            .wacc(wacc?.applyValue({ args0 -> args0 }))
            .workloadDiscoverySource(
                workloadDiscoverySource?.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            ).build()
}

/**
 * Builder for [AzureSettingsArgs].
 */
@PulumiTagMarker
public class AzureSettingsArgsBuilder internal constructor() {
    private var avsLaborCostPercentage: Output? = null

    private var businessCaseType: Output>? = null

    private var comfortFactor: Output? = null

    private var currency: Output>? = null

    private var discountPercentage: Output? = null

    private var iaasLaborCostPercentage: Output? = null

    private var infrastructureGrowthRate: Output? = null

    private var networkCostPercentage: Output? = null

    private var paasLaborCostPercentage: Output? = null

    private var perYearMigrationCompletionPercentage: Output>? = null

    private var performanceDataEndTime: Output? = null

    private var performanceDataStartTime: Output? = null

    private var performanceUtilizationPercentile: Output? = null

    private var savingsOption: Output>? = null

    private var targetLocation: Output? = null

    private var wacc: Output? = null

    private var workloadDiscoverySource: Output>? = null

    /**
     * @param value Gets Avs labour cost percentage.
     */
    @JvmName("ybwfnkjtboaapqaf")
    public suspend fun avsLaborCostPercentage(`value`: Output) {
        this.avsLaborCostPercentage = value
    }

    /**
     * @param value Migration Strategy.
     */
    @JvmName("xsyemvtrtftyqqac")
    public suspend fun businessCaseType(`value`: Output>) {
        this.businessCaseType = value
    }

    /**
     * @param value Gets comfort factor.
     */
    @JvmName("mcclnidrxpfksasc")
    public suspend fun comfortFactor(`value`: Output) {
        this.comfortFactor = value
    }

    /**
     * @param value Business case Currency.
     */
    @JvmName("dvegnqktxondcdhr")
    public suspend fun currency(`value`: Output>) {
        this.currency = value
    }

    /**
     * @param value Gets azure Discount percentage.
     */
    @JvmName("hnqrltmsvgnkviyi")
    public suspend fun discountPercentage(`value`: Output) {
        this.discountPercentage = value
    }

    /**
     * @param value Gets IaaS labour cost percentage.
     */
    @JvmName("hoytwennksmdctlf")
    public suspend fun iaasLaborCostPercentage(`value`: Output) {
        this.iaasLaborCostPercentage = value
    }

    /**
     * @param value Gets infrastructure growth rate.
     */
    @JvmName("hecnqumubgbaojkg")
    public suspend fun infrastructureGrowthRate(`value`: Output) {
        this.infrastructureGrowthRate = value
    }

    /**
     * @param value Gets network cost percentage.
     */
    @JvmName("mbqsufwkfhxldrpb")
    public suspend fun networkCostPercentage(`value`: Output) {
        this.networkCostPercentage = value
    }

    /**
     * @param value Gets PaaS labour cost percentage.
     */
    @JvmName("uputantvtwmhyrng")
    public suspend fun paasLaborCostPercentage(`value`: Output) {
        this.paasLaborCostPercentage = value
    }

    /**
     * @param value Gets migration completion percentage per year.
     */
    @JvmName("vbjhhpppcrvqpckw")
    public suspend fun perYearMigrationCompletionPercentage(`value`: Output>) {
        this.perYearMigrationCompletionPercentage = value
    }

    /**
     * @param value Gets end time to use for performance.
     */
    @JvmName("xhimrlknaebscbxa")
    public suspend fun performanceDataEndTime(`value`: Output) {
        this.performanceDataEndTime = value
    }

    /**
     * @param value Gets start time to use for performance.
     */
    @JvmName("hhaedxhcamwimlff")
    public suspend fun performanceDataStartTime(`value`: Output) {
        this.performanceDataStartTime = value
    }

    /**
     * @param value Gets utilization percentile for performance.
     */
    @JvmName("wbytdmerglriqwxe")
    public suspend fun performanceUtilizationPercentile(`value`: Output) {
        this.performanceUtilizationPercentile = value
    }

    /**
     * @param value Gets the business case savings option type.
     */
    @JvmName("fmgxvbfviejfhllw")
    public suspend fun savingsOption(`value`: Output>) {
        this.savingsOption = value
    }

    /**
     * @param value Gets or sets azure location.
     */
    @JvmName("apguoowvciogovau")
    public suspend fun targetLocation(`value`: Output) {
        this.targetLocation = value
    }

    /**
     * @param value Gets wACC percentage.
     */
    @JvmName("vpynbxkvajhqslwi")
    public suspend fun wacc(`value`: Output) {
        this.wacc = value
    }

    /**
     * @param value Workload discovery source.
     */
    @JvmName("wyxduouhbdmeqsua")
    public suspend fun workloadDiscoverySource(`value`: Output>) {
        this.workloadDiscoverySource = value
    }

    /**
     * @param value Gets Avs labour cost percentage.
     */
    @JvmName("yhyajxtrpturcyyd")
    public suspend fun avsLaborCostPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.avsLaborCostPercentage = mapped
    }

    /**
     * @param value Migration Strategy.
     */
    @JvmName("mlkpbxsxhaavibcw")
    public suspend fun businessCaseType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.businessCaseType = mapped
    }

    /**
     * @param value Migration Strategy.
     */
    @JvmName("hplatckgfavypdcd")
    public fun businessCaseType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.businessCaseType = mapped
    }

    /**
     * @param value Migration Strategy.
     */
    @JvmName("wtekcygpjowuhrfl")
    public fun businessCaseType(`value`: MigrationStrategy) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.businessCaseType = mapped
    }

    /**
     * @param value Gets comfort factor.
     */
    @JvmName("rkhxogulhxlktswi")
    public suspend fun comfortFactor(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.comfortFactor = mapped
    }

    /**
     * @param value Business case Currency.
     */
    @JvmName("muucrislidvubvfg")
    public suspend fun currency(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.currency = mapped
    }

    /**
     * @param value Business case Currency.
     */
    @JvmName("afwhsuajjqxbsfba")
    public fun currency(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.currency = mapped
    }

    /**
     * @param value Business case Currency.
     */
    @JvmName("ymudwidxslfvktkm")
    public fun currency(`value`: BusinessCaseCurrency) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.currency = mapped
    }

    /**
     * @param value Gets azure Discount percentage.
     */
    @JvmName("esebpnskqhhcohjx")
    public suspend fun discountPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.discountPercentage = mapped
    }

    /**
     * @param value Gets IaaS labour cost percentage.
     */
    @JvmName("conjhwtlqpcjidtw")
    public suspend fun iaasLaborCostPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iaasLaborCostPercentage = mapped
    }

    /**
     * @param value Gets infrastructure growth rate.
     */
    @JvmName("hakrhqliixqvbbvq")
    public suspend fun infrastructureGrowthRate(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.infrastructureGrowthRate = mapped
    }

    /**
     * @param value Gets network cost percentage.
     */
    @JvmName("qwgihmlywsegsysl")
    public suspend fun networkCostPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkCostPercentage = mapped
    }

    /**
     * @param value Gets PaaS labour cost percentage.
     */
    @JvmName("cajilcltamnehsda")
    public suspend fun paasLaborCostPercentage(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.paasLaborCostPercentage = mapped
    }

    /**
     * @param value Gets migration completion percentage per year.
     */
    @JvmName("jcsxhlhvjwjkhbrp")
    public suspend fun perYearMigrationCompletionPercentage(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.perYearMigrationCompletionPercentage = mapped
    }

    /**
     * @param values Gets migration completion percentage per year.
     */
    @JvmName("muphjyuvpgtytgfc")
    public fun perYearMigrationCompletionPercentage(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.perYearMigrationCompletionPercentage = mapped
    }

    /**
     * @param value Gets end time to use for performance.
     */
    @JvmName("gsxefjpajblxyadg")
    public suspend fun performanceDataEndTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.performanceDataEndTime = mapped
    }

    /**
     * @param value Gets start time to use for performance.
     */
    @JvmName("insampukenskucwq")
    public suspend fun performanceDataStartTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.performanceDataStartTime = mapped
    }

    /**
     * @param value Gets utilization percentile for performance.
     */
    @JvmName("siyuqpnnfavndsuh")
    public suspend fun performanceUtilizationPercentile(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.performanceUtilizationPercentile = mapped
    }

    /**
     * @param value Gets the business case savings option type.
     */
    @JvmName("mejbakqsvjkklcrc")
    public suspend fun savingsOption(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.savingsOption = mapped
    }

    /**
     * @param value Gets the business case savings option type.
     */
    @JvmName("jlhxivjmicgpwheo")
    public fun savingsOption(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.savingsOption = mapped
    }

    /**
     * @param value Gets the business case savings option type.
     */
    @JvmName("xqdfntjfpyfjlrih")
    public fun savingsOption(`value`: SavingsOption) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.savingsOption = mapped
    }

    /**
     * @param value Gets or sets azure location.
     */
    @JvmName("atovselbaimbwcum")
    public suspend fun targetLocation(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetLocation = mapped
    }

    /**
     * @param value Gets wACC percentage.
     */
    @JvmName("bmgdmrbtwyfmlqwe")
    public suspend fun wacc(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.wacc = mapped
    }

    /**
     * @param value Workload discovery source.
     */
    @JvmName("iepimrdlielhfxua")
    public suspend fun workloadDiscoverySource(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workloadDiscoverySource = mapped
    }

    /**
     * @param value Workload discovery source.
     */
    @JvmName("luebgnflxqdyjdtl")
    public fun workloadDiscoverySource(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workloadDiscoverySource = mapped
    }

    /**
     * @param value Workload discovery source.
     */
    @JvmName("wvbpvbbormwygmla")
    public fun workloadDiscoverySource(`value`: DiscoverySource) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workloadDiscoverySource = mapped
    }

    internal fun build(): AzureSettingsArgs = AzureSettingsArgs(
        avsLaborCostPercentage = avsLaborCostPercentage,
        businessCaseType = businessCaseType,
        comfortFactor = comfortFactor,
        currency = currency ?: throw PulumiNullFieldException("currency"),
        discountPercentage = discountPercentage,
        iaasLaborCostPercentage = iaasLaborCostPercentage,
        infrastructureGrowthRate = infrastructureGrowthRate,
        networkCostPercentage = networkCostPercentage,
        paasLaborCostPercentage = paasLaborCostPercentage,
        perYearMigrationCompletionPercentage = perYearMigrationCompletionPercentage,
        performanceDataEndTime = performanceDataEndTime,
        performanceDataStartTime = performanceDataStartTime,
        performanceUtilizationPercentile = performanceUtilizationPercentile,
        savingsOption = savingsOption,
        targetLocation = targetLocation ?: throw PulumiNullFieldException("targetLocation"),
        wacc = wacc,
        workloadDiscoverySource = workloadDiscoverySource,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy