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

com.pulumi.azurenative.subscription.kotlin.inputs.PutAliasRequestPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.subscription.kotlin.inputs

import com.pulumi.azurenative.subscription.inputs.PutAliasRequestPropertiesArgs.builder
import com.pulumi.azurenative.subscription.kotlin.enums.Workload
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.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Put subscription properties.
 * @property additionalProperties Put alias request additional properties.
 * @property billingScope Billing scope of the subscription.
 * For CustomerLed and FieldLed - /billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}
 * For PartnerLed - /billingAccounts/{billingAccountName}/customers/{customerName}
 * For Legacy EA - /billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}
 * @property displayName The friendly name of the subscription.
 * @property resellerId Reseller Id
 * @property subscriptionId This parameter can be used to create alias for existing subscription Id
 * @property workload The workload type of the subscription. It can be either Production or DevTest.
 */
public data class PutAliasRequestPropertiesArgs(
    public val additionalProperties: Output? = null,
    public val billingScope: Output? = null,
    public val displayName: Output? = null,
    public val resellerId: Output? = null,
    public val subscriptionId: Output? = null,
    public val workload: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.subscription.inputs.PutAliasRequestPropertiesArgs =
        com.pulumi.azurenative.subscription.inputs.PutAliasRequestPropertiesArgs.builder()
            .additionalProperties(
                additionalProperties?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .billingScope(billingScope?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .resellerId(resellerId?.applyValue({ args0 -> args0 }))
            .subscriptionId(subscriptionId?.applyValue({ args0 -> args0 }))
            .workload(
                workload?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

/**
 * Builder for [PutAliasRequestPropertiesArgs].
 */
@PulumiTagMarker
public class PutAliasRequestPropertiesArgsBuilder internal constructor() {
    private var additionalProperties: Output? = null

    private var billingScope: Output? = null

    private var displayName: Output? = null

    private var resellerId: Output? = null

    private var subscriptionId: Output? = null

    private var workload: Output>? = null

    /**
     * @param value Put alias request additional properties.
     */
    @JvmName("rugjjfhnenwochea")
    public suspend fun additionalProperties(`value`: Output) {
        this.additionalProperties = value
    }

    /**
     * @param value Billing scope of the subscription.
     * For CustomerLed and FieldLed - /billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}
     * For PartnerLed - /billingAccounts/{billingAccountName}/customers/{customerName}
     * For Legacy EA - /billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}
     */
    @JvmName("ywqtudgnvmnunuaa")
    public suspend fun billingScope(`value`: Output) {
        this.billingScope = value
    }

    /**
     * @param value The friendly name of the subscription.
     */
    @JvmName("almhrvdsnasufbmt")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value Reseller Id
     */
    @JvmName("tdbqxexvsavylsld")
    public suspend fun resellerId(`value`: Output) {
        this.resellerId = value
    }

    /**
     * @param value This parameter can be used to create alias for existing subscription Id
     */
    @JvmName("ferwlsrbksuoriwg")
    public suspend fun subscriptionId(`value`: Output) {
        this.subscriptionId = value
    }

    /**
     * @param value The workload type of the subscription. It can be either Production or DevTest.
     */
    @JvmName("kcdkwbnaobvxiyex")
    public suspend fun workload(`value`: Output>) {
        this.workload = value
    }

    /**
     * @param value Put alias request additional properties.
     */
    @JvmName("rkecwaitwduyjcva")
    public suspend fun additionalProperties(`value`: PutAliasRequestAdditionalPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalProperties = mapped
    }

    /**
     * @param argument Put alias request additional properties.
     */
    @JvmName("bdyyjkdshnkctltd")
    public suspend fun additionalProperties(argument: suspend PutAliasRequestAdditionalPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = PutAliasRequestAdditionalPropertiesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.additionalProperties = mapped
    }

    /**
     * @param value Billing scope of the subscription.
     * For CustomerLed and FieldLed - /billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}
     * For PartnerLed - /billingAccounts/{billingAccountName}/customers/{customerName}
     * For Legacy EA - /billingAccounts/{billingAccountName}/enrollmentAccounts/{enrollmentAccountName}
     */
    @JvmName("xceiucrmvrxdspex")
    public suspend fun billingScope(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.billingScope = mapped
    }

    /**
     * @param value The friendly name of the subscription.
     */
    @JvmName("sudjtljpqmxjqcej")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

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

    /**
     * @param value This parameter can be used to create alias for existing subscription Id
     */
    @JvmName("jgpmofsjcigknvqn")
    public suspend fun subscriptionId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subscriptionId = mapped
    }

    /**
     * @param value The workload type of the subscription. It can be either Production or DevTest.
     */
    @JvmName("gpfgvdprqlmutsfh")
    public suspend fun workload(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workload = mapped
    }

    /**
     * @param value The workload type of the subscription. It can be either Production or DevTest.
     */
    @JvmName("rifwxdevafdiftcb")
    public fun workload(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workload = mapped
    }

    /**
     * @param value The workload type of the subscription. It can be either Production or DevTest.
     */
    @JvmName("htonjcvjoxdxfuyq")
    public fun workload(`value`: Workload) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.workload = mapped
    }

    internal fun build(): PutAliasRequestPropertiesArgs = PutAliasRequestPropertiesArgs(
        additionalProperties = additionalProperties,
        billingScope = billingScope,
        displayName = displayName,
        resellerId = resellerId,
        subscriptionId = subscriptionId,
        workload = workload,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy