Class KxCluster


  • public class KxCluster
    extends com.pulumi.resources.CustomResource
    Resource for managing an AWS FinSpace Kx Cluster. ## Example Usage ### Basic Usage
     
     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.KxClusterCodeArgs;
     import com.pulumi.aws.finspace.inputs.KxClusterCacheStorageConfigurationArgs;
     import com.pulumi.aws.finspace.inputs.KxClusterDatabaseArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import com.pulumi.resources.CustomTimeouts;
     import java.util.ArrayList;
     import java.util.Arrays;
     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()
                 .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())
                 .code(KxClusterCodeArgs.builder()
                     .s3Bucket(testAwsS3Bucket.id())
                     .s3Key(object.key())
                     .build())
                 .cacheStorageConfigurations(KxClusterCacheStorageConfigurationArgs.builder()
                     .type("CACHE_1000")
                     .size(1200)
                     .build())
                 .databases(KxClusterDatabaseArgs.builder()
                     .cacheConfiguration(Arrays.asList(Map.ofEntries(
                         Map.entry("cacheType", "CACHE_1000"),
                         Map.entry("dbPaths", "/")
                     )))
                     .databaseName(exampleAwsFinspaceKxDatabase.name())
                     .build())
                 .name("my-tf-kx-cluster")
                 .environmentId(exampleAwsFinspaceKxEnvironment.id())
                 .type("HDB")
                 .releaseLabel("1.0")
                 .azMode("SINGLE")
                 .availabilityZoneId("use1-az2")
                 .build(), CustomResourceOptions.builder()
                     .customTimeouts(CustomTimeouts.builder()
                         .create(CustomTimeouts.parseTimeoutString("18h"))
                         .update(CustomTimeouts.parseTimeoutString("18h"))
                     .build())
                     .build());
     
         }
     }
     
     
    ## 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 ```
    • Constructor Detail

      • KxCluster

        public KxCluster​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • KxCluster

        public KxCluster​(java.lang.String name,
                         KxClusterArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • KxCluster

        public KxCluster​(java.lang.String name,
                         KxClusterArgs args,
                         @Nullable
                         com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN identifier of the KX cluster.
      • autoScalingConfiguration

        public com.pulumi.core.Output<java.util.Optional<KxClusterAutoScalingConfiguration>> autoScalingConfiguration()
        Returns:
        Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See `autoScalingConfiguration` Block.
      • availabilityZoneId

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> availabilityZoneId()
        Returns:
        Availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE.
      • azMode

        public com.pulumi.core.Output<java.lang.String> azMode()
        Returns:
        Number of availability zones to assign per cluster. Valid values are `SINGLE` (assigns one availability zone per cluster) and `MULTI` (assigns all the availability zones per cluster).
      • cacheStorageConfigurations

        public com.pulumi.core.Output<java.util.Optional<java.util.List<KxClusterCacheStorageConfiguration>>> cacheStorageConfigurations()
        Returns:
        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 `cacheStorageConfigurations` Block.
      • capacityConfiguration

        public com.pulumi.core.Output<java.util.Optional<KxClusterCapacityConfiguration>> capacityConfiguration()
        Returns:
        Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See `capacityConfiguration` Block.
      • code

        public com.pulumi.core.Output<java.util.Optional<KxClusterCode>> code()
        Returns:
        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` Block.
      • commandLineArguments

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> commandLineArguments()
        Returns:
        List of key-value pairs to make available inside the cluster.
      • createdTimestamp

        public com.pulumi.core.Output<java.lang.String> createdTimestamp()
        Returns:
        Timestamp at which the cluster is created in FinSpace. Value determined as epoch time in seconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000.
      • databases

        public com.pulumi.core.Output<java.util.Optional<java.util.List<KxClusterDatabase>>> databases()
        Returns:
        KX database that will be available for querying. See `database` Block.
      • description

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> description()
        Returns:
        Description of the cluster.
      • environmentId

        public com.pulumi.core.Output<java.lang.String> environmentId()
        Returns:
        Unique identifier for the KX environment.
      • executionRole

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> executionRole()
        Returns:
        IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster.
      • initializationScript

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> initializationScript()
        Returns:
        Path to Q program that will be run at launch of a cluster. This is a relative path within .zip file that contains the custom code, which will be loaded on the cluster. It must include the file name itself. For example, somedir/init.q.
      • lastModifiedTimestamp

        public com.pulumi.core.Output<java.lang.String> lastModifiedTimestamp()
        Returns:
        Last timestamp at which the cluster was updated in FinSpace. Value determined as epoch time in seconds. For example, the value for Monday, November 1, 2021 12:00:00 PM UTC is specified as 1635768000.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Unique name for the cluster that you want to create.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • releaseLabel

        public com.pulumi.core.Output<java.lang.String> releaseLabel()
        Returns:
        Version of FinSpace Managed kdb to run.
      • savedownStorageConfiguration

        public com.pulumi.core.Output<java.util.Optional<KxClusterSavedownStorageConfiguration>> savedownStorageConfiguration()
        Returns:
        Size and type of the temporary storage that is used to hold data during the savedown process. This parameter is required when you choose `type` as RDB. All the data written to this storage space is lost when the cluster node is restarted. See `savedownStorageConfiguration` Block.
      • scalingGroupConfiguration

        public com.pulumi.core.Output<java.util.Optional<KxClusterScalingGroupConfiguration>> scalingGroupConfiguration()
        Returns:
        Structure that stores the configuration details of a scaling group. See `scalingGroupConfiguration` Block.
      • status

        public com.pulumi.core.Output<java.lang.String> status()
        Returns:
        Status of the cluster.
      • statusReason

        public com.pulumi.core.Output<java.lang.String> statusReason()
        Returns:
        Reason for the cluster status.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • tickerplantLogConfigurations

        public com.pulumi.core.Output<java.util.Optional<java.util.List<KxClusterTickerplantLogConfiguration>>> tickerplantLogConfigurations()
        Returns:
        Configuration to store Tickerplant logs. It consists of a list of volumes that will be mounted to your cluster. For the cluster type Tickerplant, the location of the TP volume on the cluster will be available by using the global variable .aws.tp_log_path. See `tickerplantLogConfiguration` Block.
      • type

        public com.pulumi.core.Output<java.lang.String> type()
        Returns:
        Type of KDB database. Valid values are `HDB` (Historical Database), `RDB` (Realtime Database, which requires the `savedownStorageConfiguration` parameter), `GATEWAY`, `GP` (general purpose), and `Tickerplant`.
      • vpcConfiguration

        public com.pulumi.core.Output<KxClusterVpcConfiguration> vpcConfiguration()
        Returns:
        Configuration details about the network where the Privatelink endpoint of the cluster resides. See `vpcConfiguration` Block. The following arguments are optional:
      • get

        public static KxCluster get​(java.lang.String name,
                                    com.pulumi.core.Output<java.lang.String> id,
                                    @Nullable
                                    KxClusterState state,
                                    @Nullable
                                    com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.