Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.alicloud.emrv2.kotlin.inputs
import com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs.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.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
*
* @property additionalSecurityGroupIds Additional security Group IDS for Cluster, you can also specify this key for each node group.
* @property autoScalingPolicy The node group auto scaling policy for emr cluster. See `auto_scaling_policy` below.
* @property costOptimizedConfig The detail cost optimized configuration of emr cluster. See `cost_optimized_config` below.
* @property dataDisks Host Ecs data disks information in this node group. See `data_disks` below.
* @property deploymentSetStrategy Deployment set strategy for this cluster node group. Supported value: NONE, CLUSTER or NODE_GROUP.
* @property gracefulShutdown Enable emr cluster of task node graceful decommission, ’true’ or ‘false’ .
* @property instanceTypes Host Ecs instance types.
* @property nodeCount Host Ecs number in this node group.
* @property nodeGroupName The node group name of emr cluster.
* @property nodeGroupType The node group type of emr cluster, supported value: MASTER, CORE or TASK. Node group type of GATEWAY is available since v1.219.0.
* @property nodeResizeStrategy Node resize strategy for this cluster node group. Supported value: PRIORITY, COST_OPTIMIZED.
* @property paymentType Payment Type for this cluster. Supported value: PayAsYouGo or Subscription.
* @property spotBidPrices The spot bid prices of a PayAsYouGo instance. See `spot_bid_prices` below.
* @property spotInstanceRemedy Whether to replace spot instances with newly created spot/onDemand instance when receive a spot recycling message.
* @property subscriptionConfig The detail configuration of subscription payment type. See `subscription_config` below.
* @property systemDisk Host Ecs system disk information in this node group. See `system_disk` below.
* @property vswitchIds Global vSwitch ids, you can also specify it in node group.
* @property withPublicIp Whether the node has a public IP address enabled.
*/
public data class ClusterNodeGroupArgs(
public val additionalSecurityGroupIds: Output>? = null,
public val autoScalingPolicy: Output? = null,
public val costOptimizedConfig: Output? = null,
public val dataDisks: Output>,
public val deploymentSetStrategy: Output? = null,
public val gracefulShutdown: Output? = null,
public val instanceTypes: Output>,
public val nodeCount: Output,
public val nodeGroupName: Output,
public val nodeGroupType: Output,
public val nodeResizeStrategy: Output? = null,
public val paymentType: Output? = null,
public val spotBidPrices: Output>? = null,
public val spotInstanceRemedy: Output? = null,
public val subscriptionConfig: Output? = null,
public val systemDisk: Output,
public val vswitchIds: Output>? = null,
public val withPublicIp: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs =
com.pulumi.alicloud.emrv2.inputs.ClusterNodeGroupArgs.builder()
.additionalSecurityGroupIds(
additionalSecurityGroupIds?.applyValue({ args0 ->
args0.map({ args0 ->
args0
})
}),
)
.autoScalingPolicy(autoScalingPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.costOptimizedConfig(
costOptimizedConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.dataDisks(
dataDisks.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.deploymentSetStrategy(deploymentSetStrategy?.applyValue({ args0 -> args0 }))
.gracefulShutdown(gracefulShutdown?.applyValue({ args0 -> args0 }))
.instanceTypes(instanceTypes.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.nodeCount(nodeCount.applyValue({ args0 -> args0 }))
.nodeGroupName(nodeGroupName.applyValue({ args0 -> args0 }))
.nodeGroupType(nodeGroupType.applyValue({ args0 -> args0 }))
.nodeResizeStrategy(nodeResizeStrategy?.applyValue({ args0 -> args0 }))
.paymentType(paymentType?.applyValue({ args0 -> args0 }))
.spotBidPrices(
spotBidPrices?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.spotInstanceRemedy(spotInstanceRemedy?.applyValue({ args0 -> args0 }))
.subscriptionConfig(
subscriptionConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.systemDisk(systemDisk.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.vswitchIds(vswitchIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.withPublicIp(withPublicIp?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [ClusterNodeGroupArgs].
*/
@PulumiTagMarker
public class ClusterNodeGroupArgsBuilder internal constructor() {
private var additionalSecurityGroupIds: Output>? = null
private var autoScalingPolicy: Output? = null
private var costOptimizedConfig: Output? = null
private var dataDisks: Output>? = null
private var deploymentSetStrategy: Output? = null
private var gracefulShutdown: Output? = null
private var instanceTypes: Output>? = null
private var nodeCount: Output? = null
private var nodeGroupName: Output? = null
private var nodeGroupType: Output? = null
private var nodeResizeStrategy: Output? = null
private var paymentType: Output? = null
private var spotBidPrices: Output>? = null
private var spotInstanceRemedy: Output? = null
private var subscriptionConfig: Output? = null
private var systemDisk: Output? = null
private var vswitchIds: Output>? = null
private var withPublicIp: Output? = null
/**
* @param value Additional security Group IDS for Cluster, you can also specify this key for each node group.
*/
@JvmName("vpyfhiviwlmalovb")
public suspend fun additionalSecurityGroupIds(`value`: Output>) {
this.additionalSecurityGroupIds = value
}
@JvmName("dncfdqfghyfrpjtk")
public suspend fun additionalSecurityGroupIds(vararg values: Output) {
this.additionalSecurityGroupIds = Output.all(values.asList())
}
/**
* @param values Additional security Group IDS for Cluster, you can also specify this key for each node group.
*/
@JvmName("gebnlfrfaowdjyho")
public suspend fun additionalSecurityGroupIds(values: List