
com.pulumi.aws.finspace.kotlin.KxCluster.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-kotlin Show documentation
Show all versions of pulumi-aws-kotlin Show documentation
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.aws.finspace.kotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterAutoScalingConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCacheStorageConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCapacityConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCode
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterDatabase
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterSavedownStorageConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterScalingGroupConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterTickerplantLogConfiguration
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterVpcConfiguration
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterAutoScalingConfiguration.Companion.toKotlin as kxClusterAutoScalingConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCacheStorageConfiguration.Companion.toKotlin as kxClusterCacheStorageConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCapacityConfiguration.Companion.toKotlin as kxClusterCapacityConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterCode.Companion.toKotlin as kxClusterCodeToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterDatabase.Companion.toKotlin as kxClusterDatabaseToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterSavedownStorageConfiguration.Companion.toKotlin as kxClusterSavedownStorageConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterScalingGroupConfiguration.Companion.toKotlin as kxClusterScalingGroupConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterTickerplantLogConfiguration.Companion.toKotlin as kxClusterTickerplantLogConfigurationToKotlin
import com.pulumi.aws.finspace.kotlin.outputs.KxClusterVpcConfiguration.Companion.toKotlin as kxClusterVpcConfigurationToKotlin
/**
* Builder for [KxCluster].
*/
@PulumiTagMarker
public class KxClusterResourceBuilder internal constructor() {
public var name: String? = null
public var args: KxClusterArgs = KxClusterArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend KxClusterArgsBuilder.() -> Unit) {
val builder = KxClusterArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): KxCluster {
val builtJavaResource = com.pulumi.aws.finspace.KxCluster(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return KxCluster(builtJavaResource)
}
}
/**
* Resource for managing an AWS FinSpace Kx Cluster.
* ## Example Usage
* ### Basic Usage
*
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.finspace.KxCluster;
* import com.pulumi.aws.finspace.KxClusterArgs;
* import com.pulumi.aws.finspace.inputs.KxClusterCapacityConfigurationArgs;
* import com.pulumi.aws.finspace.inputs.KxClusterVpcConfigurationArgs;
* import com.pulumi.aws.finspace.inputs.KxClusterCacheStorageConfigurationArgs;
* import com.pulumi.aws.finspace.inputs.KxClusterDatabaseArgs;
* import com.pulumi.aws.finspace.inputs.KxClusterCodeArgs;
* 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) {
* var example = new KxCluster("example", KxClusterArgs.builder()
* .name("my-tf-kx-cluster")
* .environmentId(exampleAwsFinspaceKxEnvironment.id())
* .type("HDB")
* .releaseLabel("1.0")
* .azMode("SINGLE")
* .availabilityZoneId("use1-az2")
* .capacityConfiguration(KxClusterCapacityConfigurationArgs.builder()
* .nodeType("kx.s.2xlarge")
* .nodeCount(2)
* .build())
* .vpcConfiguration(KxClusterVpcConfigurationArgs.builder()
* .vpcId(test.id())
* .securityGroupIds(exampleAwsSecurityGroup.id())
* .subnetIds(exampleAwsSubnet.id())
* .ipAddressType("IP_V4")
* .build())
* .cacheStorageConfigurations(KxClusterCacheStorageConfigurationArgs.builder()
* .type("CACHE_1000")
* .size(1200)
* .build())
* .databases(KxClusterDatabaseArgs.builder()
* .databaseName(exampleAwsFinspaceKxDatabase.name())
* .cacheConfiguration(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
* .build())
* .code(KxClusterCodeArgs.builder()
* .s3Bucket(testAwsS3Bucket.id())
* .s3Key(object.key())
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:finspace:KxCluster
* properties:
* name: my-tf-kx-cluster
* environmentId: ${exampleAwsFinspaceKxEnvironment.id}
* type: HDB
* releaseLabel: '1.0'
* azMode: SINGLE
* availabilityZoneId: use1-az2
* capacityConfiguration:
* nodeType: kx.s.2xlarge
* nodeCount: 2
* vpcConfiguration:
* vpcId: ${test.id}
* securityGroupIds:
* - ${exampleAwsSecurityGroup.id}
* subnetIds:
* - ${exampleAwsSubnet.id}
* ipAddressType: IP_V4
* cacheStorageConfigurations:
* - type: CACHE_1000
* size: 1200
* databases:
* - databaseName: ${exampleAwsFinspaceKxDatabase.name}
* cacheConfiguration:
* - cacheType: CACHE_1000
* dbPaths: /
* code:
* s3Bucket: ${testAwsS3Bucket.id}
* s3Key: ${object.key}
* ```
*
* ## Import
* Using `pulumi import`, import an AWS FinSpace Kx Cluster using the `id` (environment ID and cluster name, comma-delimited). For example:
* ```sh
* $ pulumi import aws:finspace/kxCluster:KxCluster example n3ceo7wqxoxcti5tujqwzs,my-tf-kx-cluster
* ```
*/
public class KxCluster internal constructor(
override val javaResource: com.pulumi.aws.finspace.KxCluster,
) : KotlinCustomResource(javaResource, KxClusterMapper) {
/**
* Amazon Resource Name (ARN) identifier of the KX cluster.
*/
public val arn: Output
get() = javaResource.arn().applyValue({ args0 -> args0 })
/**
* Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration.
*/
public val autoScalingConfiguration: Output?
get() = javaResource.autoScalingConfiguration().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> kxClusterAutoScalingConfigurationToKotlin(args0) })
}).orElse(null)
})
/**
* The availability zone identifiers for the requested regions. Required when `az_mode` is set to SINGLE.
*/
public val availabilityZoneId: Output?
get() = javaResource.availabilityZoneId().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The number of availability zones you want to assign per cluster. This can be one of the following:
* * SINGLE - Assigns one availability zone per cluster.
* * MULTI - Assigns all the availability zones per cluster.
*/
public val azMode: Output
get() = javaResource.azMode().applyValue({ args0 -> args0 })
/**
* Configurations for a read only cache storage associated with a cluster. This cache will be stored as an FSx Lustre that reads from the S3 store. See cache_storage_configuration.
*/
public val cacheStorageConfigurations: Output>?
get() = javaResource.cacheStorageConfigurations().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
kxClusterCacheStorageConfigurationToKotlin(args0)
})
})
}).orElse(null)
})
/**
* Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration.
*/
public val capacityConfiguration: Output?
get() = javaResource.capacityConfiguration().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> kxClusterCapacityConfigurationToKotlin(args0) })
}).orElse(null)
})
/**
* Details of the custom code that you want to use inside a cluster when analyzing data. Consists of the S3 source bucket, location, object version, and the relative path from where the custom code is loaded into the cluster. See code.
*/
public val code: Output?
get() = javaResource.code().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
kxClusterCodeToKotlin(args0)
})
}).orElse(null)
})
/**
* List of key-value pairs to make available inside the cluster.
*/
public val commandLineArguments: Output
© 2015 - 2025 Weber Informatics LLC | Privacy Policy