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

com.pulumi.googlenative.cloudchannel.v1.kotlin.CustomerRepricingConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.googlenative.cloudchannel.v1.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.cloudchannel.v1.CustomerRepricingConfigArgs.builder
import com.pulumi.googlenative.cloudchannel.v1.kotlin.inputs.GoogleCloudChannelV1RepricingConfigArgs
import com.pulumi.googlenative.cloudchannel.v1.kotlin.inputs.GoogleCloudChannelV1RepricingConfigArgsBuilder
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

/**
 * Creates a CustomerRepricingConfig. Call this method to set modifications for a specific customer's bill. You can only create configs if the RepricingConfig.effective_invoice_month is a future month. If needed, you can create a config for the current month, with some restrictions. When creating a config for a future month, make sure there are no existing configs for that RepricingConfig.effective_invoice_month. The following restrictions are for creating configs in the current month. * This functionality is reserved for recovering from an erroneous config, and should not be used for regular business cases. * The new config will not modify exports used with other configs. Changes to the config may be immediate, but may take up to 24 hours. * There is a limit of ten configs for any RepricingConfig.EntitlementGranularity.entitlement or RepricingConfig.effective_invoice_month. * The contained CustomerRepricingConfig.repricing_config vaule must be different from the value used in the current config for a RepricingConfig.EntitlementGranularity.entitlement. Possible Error Codes: * PERMISSION_DENIED: If the account making the request and the account being queried are different. * INVALID_ARGUMENT: Missing or invalid required parameters in the request. Also displays if the updated config is for the current month or past months. * NOT_FOUND: The CustomerRepricingConfig specified does not exist or is not associated with the given account. * INTERNAL: Any non-user error related to technical issues in the backend. In this case, contact Cloud Channel support. Return Value: If successful, the updated CustomerRepricingConfig resource, otherwise returns an error.
 * Auto-naming is currently not supported for this resource.
 * @property accountId
 * @property customerId
 * @property repricingConfig The configuration for bill modifications made by a reseller before sending it to customers.
 */
public data class CustomerRepricingConfigArgs(
    public val accountId: Output? = null,
    public val customerId: Output? = null,
    public val repricingConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.cloudchannel.v1.CustomerRepricingConfigArgs =
        com.pulumi.googlenative.cloudchannel.v1.CustomerRepricingConfigArgs.builder()
            .accountId(accountId?.applyValue({ args0 -> args0 }))
            .customerId(customerId?.applyValue({ args0 -> args0 }))
            .repricingConfig(
                repricingConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [CustomerRepricingConfigArgs].
 */
@PulumiTagMarker
public class CustomerRepricingConfigArgsBuilder internal constructor() {
    private var accountId: Output? = null

    private var customerId: Output? = null

    private var repricingConfig: Output? = null

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

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

    /**
     * @param value The configuration for bill modifications made by a reseller before sending it to customers.
     */
    @JvmName("pafidwqkghwioejg")
    public suspend fun repricingConfig(`value`: Output) {
        this.repricingConfig = value
    }

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

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

    /**
     * @param value The configuration for bill modifications made by a reseller before sending it to customers.
     */
    @JvmName("nlgdwbyigmjdocik")
    public suspend fun repricingConfig(`value`: GoogleCloudChannelV1RepricingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.repricingConfig = mapped
    }

    /**
     * @param argument The configuration for bill modifications made by a reseller before sending it to customers.
     */
    @JvmName("xayferrjpxnhfxih")
    public suspend fun repricingConfig(argument: suspend GoogleCloudChannelV1RepricingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = GoogleCloudChannelV1RepricingConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.repricingConfig = mapped
    }

    internal fun build(): CustomerRepricingConfigArgs = CustomerRepricingConfigArgs(
        accountId = accountId,
        customerId = customerId,
        repricingConfig = repricingConfig,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy