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

com.pulumi.alicloud.ecs.kotlin.EipArgs.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.

There is a newer version: 3.62.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.alicloud.ecs.kotlin

import com.pulumi.alicloud.ecs.EipArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Provides an elastic IP resource.
 * > **DEPRECATED:**  This resource  has been deprecated from version `1.126.0`. Please use new resource alicloud_eip_address.
 * > **NOTE:** The resource only supports to create `PostPaid PayByTraffic`  or `PrePaid PayByBandwidth` elastic IP for international account. Otherwise, you will happened error `COMMODITY.INVALID_COMPONENT`.
 * Your account is international if you can use it to login in [International Web Console](https://account.alibabacloud.com/login/login.htm).
 * > **NOTE:** From version 1.10.1, this resource supports creating "PrePaid" EIP. In addition, it supports setting EIP name and description.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as alicloud from "@pulumi/alicloud";
 * // Create a new EIP.
 * const example = new alicloud.ecs.Eip("example", {
 *     bandwidth: "10",
 *     internetChargeType: "PayByBandwidth",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_alicloud as alicloud
 * # Create a new EIP.
 * example = alicloud.ecs.Eip("example",
 *     bandwidth="10",
 *     internet_charge_type="PayByBandwidth")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AliCloud = Pulumi.AliCloud;
 * return await Deployment.RunAsync(() =>
 * {
 *     // Create a new EIP.
 *     var example = new AliCloud.Ecs.Eip("example", new()
 *     {
 *         Bandwidth = "10",
 *         InternetChargeType = "PayByBandwidth",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		// Create a new EIP.
 * 		_, err := ecs.NewEip(ctx, "example", &ecs.EipArgs{
 * 			Bandwidth:          pulumi.String("10"),
 * 			InternetChargeType: pulumi.String("PayByBandwidth"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.alicloud.ecs.Eip;
 * import com.pulumi.alicloud.ecs.EipArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         // Create a new EIP.
 *         var example = new Eip("example", EipArgs.builder()
 *             .bandwidth("10")
 *             .internetChargeType("PayByBandwidth")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   # Create a new EIP.
 *   example:
 *     type: alicloud:ecs:Eip
 *     properties:
 *       bandwidth: '10'
 *       internetChargeType: PayByBandwidth
 * ```
 * 
 * ## Module Support
 * You can use the existing eip module
 * to create several EIP instances and associate them with other resources one-click, like ECS instances, SLB, Nat Gateway and so on.
 * ## Import
 * Elastic IP address can be imported using the id, e.g.
 * ```sh
 * $ pulumi import alicloud:ecs/eip:Eip example eip-abc12345678
 * ```
 * @property activityId
 * @property addressName The name of the EIP instance. This name can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://.
 * @property allocationId
 * @property autoPay
 * @property bandwidth Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.
 * @property deletionProtection Whether enable the deletion protection or not. Default value: `false`.
 * - true: Enable deletion protection.
 * - false: Disable deletion protection.
 * @property description Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.
 * @property highDefinitionMonitorLogStatus
 * @property instanceChargeType (It has been deprecated from version 1.126.0 and using new attribute `payment_type` instead) Elastic IP instance charge type. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
 * @property internetChargeType Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only "PayByBandwidth" when `instance_charge_type` is PrePaid.
 * @property ipAddress The elastic ip address
 * @property isp The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.
 * @property logProject
 * @property logStore
 * @property mode
 * @property name It has been deprecated from version 1.126.0 and using new attribute `address_name` instead.
 * @property netmode
 * @property paymentType The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.
 * @property period The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
 * **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
 * @property pricingCycle
 * @property publicIpAddressPoolId
 * @property resourceGroupId The Id of resource group which the eip belongs.
 * @property securityProtectionTypes
 * @property tags A mapping of tags to assign to the resource.
 * @property zone
 */
public data class EipArgs
@Deprecated(
    message = """
This resource has been deprecated in favour of the EipAddress resource
""",
)
constructor(
    public val activityId: Output? = null,
    public val addressName: Output? = null,
    public val allocationId: Output? = null,
    public val autoPay: Output? = null,
    public val bandwidth: Output? = null,
    public val deletionProtection: Output? = null,
    public val description: Output? = null,
    public val highDefinitionMonitorLogStatus: Output? = null,
    @Deprecated(
        message = """
  Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field
      'payment_type' instead.
  """,
    )
    public val instanceChargeType: Output? = null,
    public val internetChargeType: Output? = null,
    public val ipAddress: Output? = null,
    public val isp: Output? = null,
    public val logProject: Output? = null,
    public val logStore: Output? = null,
    public val mode: Output? = null,
    @Deprecated(
        message = """
  Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead.
  """,
    )
    public val name: Output? = null,
    public val netmode: Output? = null,
    public val paymentType: Output? = null,
    public val period: Output? = null,
    public val pricingCycle: Output? = null,
    public val publicIpAddressPoolId: Output? = null,
    public val resourceGroupId: Output? = null,
    public val securityProtectionTypes: Output>? = null,
    public val tags: Output>? = null,
    public val zone: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.alicloud.ecs.EipArgs = com.pulumi.alicloud.ecs.EipArgs.builder()
        .activityId(activityId?.applyValue({ args0 -> args0 }))
        .addressName(addressName?.applyValue({ args0 -> args0 }))
        .allocationId(allocationId?.applyValue({ args0 -> args0 }))
        .autoPay(autoPay?.applyValue({ args0 -> args0 }))
        .bandwidth(bandwidth?.applyValue({ args0 -> args0 }))
        .deletionProtection(deletionProtection?.applyValue({ args0 -> args0 }))
        .description(description?.applyValue({ args0 -> args0 }))
        .highDefinitionMonitorLogStatus(highDefinitionMonitorLogStatus?.applyValue({ args0 -> args0 }))
        .instanceChargeType(instanceChargeType?.applyValue({ args0 -> args0 }))
        .internetChargeType(internetChargeType?.applyValue({ args0 -> args0 }))
        .ipAddress(ipAddress?.applyValue({ args0 -> args0 }))
        .isp(isp?.applyValue({ args0 -> args0 }))
        .logProject(logProject?.applyValue({ args0 -> args0 }))
        .logStore(logStore?.applyValue({ args0 -> args0 }))
        .mode(mode?.applyValue({ args0 -> args0 }))
        .name(name?.applyValue({ args0 -> args0 }))
        .netmode(netmode?.applyValue({ args0 -> args0 }))
        .paymentType(paymentType?.applyValue({ args0 -> args0 }))
        .period(period?.applyValue({ args0 -> args0 }))
        .pricingCycle(pricingCycle?.applyValue({ args0 -> args0 }))
        .publicIpAddressPoolId(publicIpAddressPoolId?.applyValue({ args0 -> args0 }))
        .resourceGroupId(resourceGroupId?.applyValue({ args0 -> args0 }))
        .securityProtectionTypes(
            securityProtectionTypes?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
        .zone(zone?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [EipArgs].
 */
@PulumiTagMarker
@Deprecated(
    message = """
This resource has been deprecated in favour of the EipAddress resource
""",
)
public class EipArgsBuilder internal constructor() {
    private var activityId: Output? = null

    private var addressName: Output? = null

    private var allocationId: Output? = null

    private var autoPay: Output? = null

    private var bandwidth: Output? = null

    private var deletionProtection: Output? = null

    private var description: Output? = null

    private var highDefinitionMonitorLogStatus: Output? = null

    private var instanceChargeType: Output? = null

    private var internetChargeType: Output? = null

    private var ipAddress: Output? = null

    private var isp: Output? = null

    private var logProject: Output? = null

    private var logStore: Output? = null

    private var mode: Output? = null

    private var name: Output? = null

    private var netmode: Output? = null

    private var paymentType: Output? = null

    private var period: Output? = null

    private var pricingCycle: Output? = null

    private var publicIpAddressPoolId: Output? = null

    private var resourceGroupId: Output? = null

    private var securityProtectionTypes: Output>? = null

    private var tags: Output>? = null

    private var zone: Output? = null

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

    /**
     * @param value The name of the EIP instance. This name can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://.
     */
    @JvmName("abjaligpknrmekla")
    public suspend fun addressName(`value`: Output) {
        this.addressName = value
    }

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

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

    /**
     * @param value Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.
     */
    @JvmName("leotpguofqmktqxd")
    public suspend fun bandwidth(`value`: Output) {
        this.bandwidth = value
    }

    /**
     * @param value Whether enable the deletion protection or not. Default value: `false`.
     * - true: Enable deletion protection.
     * - false: Disable deletion protection.
     */
    @JvmName("snktllcujkjjhibk")
    public suspend fun deletionProtection(`value`: Output) {
        this.deletionProtection = value
    }

    /**
     * @param value Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.
     */
    @JvmName("fgrxrvntdtogdnci")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

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

    /**
     * @param value (It has been deprecated from version 1.126.0 and using new attribute `payment_type` instead) Elastic IP instance charge type. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
     */
    @Deprecated(
        message = """
  Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field
      'payment_type' instead.
  """,
    )
    @JvmName("jokkcmyrlqfnlahp")
    public suspend fun instanceChargeType(`value`: Output) {
        this.instanceChargeType = value
    }

    /**
     * @param value Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only "PayByBandwidth" when `instance_charge_type` is PrePaid.
     */
    @JvmName("eydempxvbfekelit")
    public suspend fun internetChargeType(`value`: Output) {
        this.internetChargeType = value
    }

    /**
     * @param value The elastic ip address
     */
    @JvmName("acsbxeembqimhhio")
    public suspend fun ipAddress(`value`: Output) {
        this.ipAddress = value
    }

    /**
     * @param value The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.
     */
    @JvmName("xprfkisvkrkmpukj")
    public suspend fun isp(`value`: Output) {
        this.isp = value
    }

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

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

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

    /**
     * @param value It has been deprecated from version 1.126.0 and using new attribute `address_name` instead.
     */
    @Deprecated(
        message = """
  Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead.
  """,
    )
    @JvmName("bfvemybjjrqjsqhb")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

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

    /**
     * @param value The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.
     */
    @JvmName("gopfwsnvfbhdagcq")
    public suspend fun paymentType(`value`: Output) {
        this.paymentType = value
    }

    /**
     * @param value The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
     * **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
     */
    @JvmName("kmqraourjknbmxma")
    public suspend fun period(`value`: Output) {
        this.period = value
    }

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

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

    /**
     * @param value The Id of resource group which the eip belongs.
     */
    @JvmName("kwlpesgciybseupy")
    public suspend fun resourceGroupId(`value`: Output) {
        this.resourceGroupId = value
    }

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

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

    /**
     * @param values
     */
    @JvmName("ecvukwshiotwjhlq")
    public suspend fun securityProtectionTypes(values: List>) {
        this.securityProtectionTypes = Output.all(values)
    }

    /**
     * @param value A mapping of tags to assign to the resource.
     */
    @JvmName("vvywthijypnihnkt")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

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

    /**
     * @param value The name of the EIP instance. This name can have a string of 2 to 128 characters, must contain only alphanumeric characters or hyphens, such as "-",".","_", and must not begin or end with a hyphen, and must not begin with http:// or https://.
     */
    @JvmName("xioxycqekfbdrqxu")
    public suspend fun addressName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.addressName = mapped
    }

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

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

    /**
     * @param value Maximum bandwidth to the elastic public network, measured in Mbps (Mega bit per second). If this value is not specified, then automatically sets it to 5 Mbps.
     */
    @JvmName("bnsndfdxpscheufl")
    public suspend fun bandwidth(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bandwidth = mapped
    }

    /**
     * @param value Whether enable the deletion protection or not. Default value: `false`.
     * - true: Enable deletion protection.
     * - false: Disable deletion protection.
     */
    @JvmName("nqekwrqlgtduxvpc")
    public suspend fun deletionProtection(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deletionProtection = mapped
    }

    /**
     * @param value Description of the EIP instance, This description can have a string of 2 to 256 characters, It cannot begin with http:// or https://. Default value is null.
     */
    @JvmName("cwycfqwgyktjwvba")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

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

    /**
     * @param value (It has been deprecated from version 1.126.0 and using new attribute `payment_type` instead) Elastic IP instance charge type. Valid values are "PrePaid" and "PostPaid". Default to "PostPaid".
     */
    @Deprecated(
        message = """
  Field 'instance_charge_type' has been deprecated since provider version 1.126.0. New field
      'payment_type' instead.
  """,
    )
    @JvmName("klillbkhfgcxeran")
    public suspend fun instanceChargeType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceChargeType = mapped
    }

    /**
     * @param value Internet charge type of the EIP, Valid values are `PayByBandwidth`, `PayByTraffic`. Default to `PayByBandwidth`. **NOTE:** From version `1.7.1` to `1.125.0`, it defaults to `PayByTraffic`. It is only "PayByBandwidth" when `instance_charge_type` is PrePaid.
     */
    @JvmName("vnmbhovcuopobsng")
    public suspend fun internetChargeType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.internetChargeType = mapped
    }

    /**
     * @param value The elastic ip address
     */
    @JvmName("kpjdkqmdupvesfmg")
    public suspend fun ipAddress(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipAddress = mapped
    }

    /**
     * @param value The line type of the Elastic IP instance. Default to `BGP`. Other type of the isp need to open a whitelist.
     */
    @JvmName("mbyujrdjmcrhhmue")
    public suspend fun isp(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isp = mapped
    }

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

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

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

    /**
     * @param value It has been deprecated from version 1.126.0 and using new attribute `address_name` instead.
     */
    @Deprecated(
        message = """
  Field 'name' has been deprecated since provider version 1.126.0. New field 'address_name' instead.
  """,
    )
    @JvmName("jtwpofixbukqusqd")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

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

    /**
     * @param value The billing method of the EIP. Valid values: `Subscription` and `PayAsYouGo`. Default value is `PayAsYouGo`.
     */
    @JvmName("kkxqmlommoetbees")
    public suspend fun paymentType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.paymentType = mapped
    }

    /**
     * @param value The duration that you will buy the resource, in month. It is valid when `instance_charge_type` is `PrePaid`. Valid values: [1-9, 12, 24, 36]. At present, the provider does not support modify "period" and you can do that via web console.
     * **NOTE:** The attribute `period` is only used to create Subscription instance or modify the PayAsYouGo instance to Subscription. Once effect, it will not be modified that means running `pulumi up` will not effect the resource.
     */
    @JvmName("dpieqcxsrvthmwhp")
    public suspend fun period(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.period = mapped
    }

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

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

    /**
     * @param value The Id of resource group which the eip belongs.
     */
    @JvmName("tohevbsiavwjbpey")
    public suspend fun resourceGroupId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupId = mapped
    }

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

    /**
     * @param values
     */
    @JvmName("sdegdixxrsxvesdx")
    public suspend fun securityProtectionTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.securityProtectionTypes = mapped
    }

    /**
     * @param value A mapping of tags to assign to the resource.
     */
    @JvmName("bthtfycjqvxudqor")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values A mapping of tags to assign to the resource.
     */
    @JvmName("oawciufyvqxuslxu")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

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

    internal fun build(): EipArgs = EipArgs(
        activityId = activityId,
        addressName = addressName,
        allocationId = allocationId,
        autoPay = autoPay,
        bandwidth = bandwidth,
        deletionProtection = deletionProtection,
        description = description,
        highDefinitionMonitorLogStatus = highDefinitionMonitorLogStatus,
        instanceChargeType = instanceChargeType,
        internetChargeType = internetChargeType,
        ipAddress = ipAddress,
        isp = isp,
        logProject = logProject,
        logStore = logStore,
        mode = mode,
        name = name,
        netmode = netmode,
        paymentType = paymentType,
        period = period,
        pricingCycle = pricingCycle,
        publicIpAddressPoolId = publicIpAddressPoolId,
        resourceGroupId = resourceGroupId,
        securityProtectionTypes = securityProtectionTypes,
        tags = tags,
        zone = zone,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy