github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/finspace/kxCluster.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package finspace 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Resource for managing an AWS FinSpace Kx Cluster. 16 // 17 // ## Example Usage 18 // 19 // ## Import 20 // 21 // Using `pulumi import`, import an AWS FinSpace Kx Cluster using the `id` (environment ID and cluster name, comma-delimited). For example: 22 // 23 // ```sh 24 // $ pulumi import aws:finspace/kxCluster:KxCluster example n3ceo7wqxoxcti5tujqwzs,my-tf-kx-cluster 25 // ``` 26 type KxCluster struct { 27 pulumi.CustomResourceState 28 29 // Amazon Resource Name (ARN) identifier of the KX cluster. 30 Arn pulumi.StringOutput `pulumi:"arn"` 31 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 32 AutoScalingConfiguration KxClusterAutoScalingConfigurationPtrOutput `pulumi:"autoScalingConfiguration"` 33 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 34 AvailabilityZoneId pulumi.StringPtrOutput `pulumi:"availabilityZoneId"` 35 // The number of availability zones you want to assign per cluster. This can be one of the following: 36 // * SINGLE - Assigns one availability zone per cluster. 37 // * MULTI - Assigns all the availability zones per cluster. 38 AzMode pulumi.StringOutput `pulumi:"azMode"` 39 // 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. 40 CacheStorageConfigurations KxClusterCacheStorageConfigurationArrayOutput `pulumi:"cacheStorageConfigurations"` 41 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 42 CapacityConfiguration KxClusterCapacityConfigurationPtrOutput `pulumi:"capacityConfiguration"` 43 // 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. 44 Code KxClusterCodePtrOutput `pulumi:"code"` 45 // List of key-value pairs to make available inside the cluster. 46 CommandLineArguments pulumi.StringMapOutput `pulumi:"commandLineArguments"` 47 // 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. 48 CreatedTimestamp pulumi.StringOutput `pulumi:"createdTimestamp"` 49 // KX database that will be available for querying. Defined below. 50 Databases KxClusterDatabaseArrayOutput `pulumi:"databases"` 51 // Description of the cluster. 52 Description pulumi.StringPtrOutput `pulumi:"description"` 53 // Unique identifier for the KX environment. 54 EnvironmentId pulumi.StringOutput `pulumi:"environmentId"` 55 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 56 ExecutionRole pulumi.StringPtrOutput `pulumi:"executionRole"` 57 // 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. 58 InitializationScript pulumi.StringPtrOutput `pulumi:"initializationScript"` 59 // 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. 60 LastModifiedTimestamp pulumi.StringOutput `pulumi:"lastModifiedTimestamp"` 61 // Unique name for the cluster that you want to create. 62 Name pulumi.StringOutput `pulumi:"name"` 63 // Version of FinSpace Managed kdb to run. 64 ReleaseLabel pulumi.StringOutput `pulumi:"releaseLabel"` 65 // 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 savedown_storage_configuration. 66 SavedownStorageConfiguration KxClusterSavedownStorageConfigurationPtrOutput `pulumi:"savedownStorageConfiguration"` 67 // The structure that stores the configuration details of a scaling group. 68 ScalingGroupConfiguration KxClusterScalingGroupConfigurationPtrOutput `pulumi:"scalingGroupConfiguration"` 69 Status pulumi.StringOutput `pulumi:"status"` 70 StatusReason pulumi.StringOutput `pulumi:"statusReason"` 71 // 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. 72 Tags pulumi.StringMapOutput `pulumi:"tags"` 73 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 74 // 75 // Deprecated: Please use `tags` instead. 76 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 77 // A 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. 78 TickerplantLogConfigurations KxClusterTickerplantLogConfigurationArrayOutput `pulumi:"tickerplantLogConfigurations"` 79 // Type of KDB database. The following types are available: 80 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 81 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 82 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 83 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 84 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 85 Type pulumi.StringOutput `pulumi:"type"` 86 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 87 // 88 // The following arguments are optional: 89 VpcConfiguration KxClusterVpcConfigurationOutput `pulumi:"vpcConfiguration"` 90 } 91 92 // NewKxCluster registers a new resource with the given unique name, arguments, and options. 93 func NewKxCluster(ctx *pulumi.Context, 94 name string, args *KxClusterArgs, opts ...pulumi.ResourceOption) (*KxCluster, error) { 95 if args == nil { 96 return nil, errors.New("missing one or more required arguments") 97 } 98 99 if args.AzMode == nil { 100 return nil, errors.New("invalid value for required argument 'AzMode'") 101 } 102 if args.EnvironmentId == nil { 103 return nil, errors.New("invalid value for required argument 'EnvironmentId'") 104 } 105 if args.ReleaseLabel == nil { 106 return nil, errors.New("invalid value for required argument 'ReleaseLabel'") 107 } 108 if args.Type == nil { 109 return nil, errors.New("invalid value for required argument 'Type'") 110 } 111 if args.VpcConfiguration == nil { 112 return nil, errors.New("invalid value for required argument 'VpcConfiguration'") 113 } 114 opts = internal.PkgResourceDefaultOpts(opts) 115 var resource KxCluster 116 err := ctx.RegisterResource("aws:finspace/kxCluster:KxCluster", name, args, &resource, opts...) 117 if err != nil { 118 return nil, err 119 } 120 return &resource, nil 121 } 122 123 // GetKxCluster gets an existing KxCluster resource's state with the given name, ID, and optional 124 // state properties that are used to uniquely qualify the lookup (nil if not required). 125 func GetKxCluster(ctx *pulumi.Context, 126 name string, id pulumi.IDInput, state *KxClusterState, opts ...pulumi.ResourceOption) (*KxCluster, error) { 127 var resource KxCluster 128 err := ctx.ReadResource("aws:finspace/kxCluster:KxCluster", name, id, state, &resource, opts...) 129 if err != nil { 130 return nil, err 131 } 132 return &resource, nil 133 } 134 135 // Input properties used for looking up and filtering KxCluster resources. 136 type kxClusterState struct { 137 // Amazon Resource Name (ARN) identifier of the KX cluster. 138 Arn *string `pulumi:"arn"` 139 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 140 AutoScalingConfiguration *KxClusterAutoScalingConfiguration `pulumi:"autoScalingConfiguration"` 141 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 142 AvailabilityZoneId *string `pulumi:"availabilityZoneId"` 143 // The number of availability zones you want to assign per cluster. This can be one of the following: 144 // * SINGLE - Assigns one availability zone per cluster. 145 // * MULTI - Assigns all the availability zones per cluster. 146 AzMode *string `pulumi:"azMode"` 147 // 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. 148 CacheStorageConfigurations []KxClusterCacheStorageConfiguration `pulumi:"cacheStorageConfigurations"` 149 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 150 CapacityConfiguration *KxClusterCapacityConfiguration `pulumi:"capacityConfiguration"` 151 // 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. 152 Code *KxClusterCode `pulumi:"code"` 153 // List of key-value pairs to make available inside the cluster. 154 CommandLineArguments map[string]string `pulumi:"commandLineArguments"` 155 // 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. 156 CreatedTimestamp *string `pulumi:"createdTimestamp"` 157 // KX database that will be available for querying. Defined below. 158 Databases []KxClusterDatabase `pulumi:"databases"` 159 // Description of the cluster. 160 Description *string `pulumi:"description"` 161 // Unique identifier for the KX environment. 162 EnvironmentId *string `pulumi:"environmentId"` 163 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 164 ExecutionRole *string `pulumi:"executionRole"` 165 // 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. 166 InitializationScript *string `pulumi:"initializationScript"` 167 // 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. 168 LastModifiedTimestamp *string `pulumi:"lastModifiedTimestamp"` 169 // Unique name for the cluster that you want to create. 170 Name *string `pulumi:"name"` 171 // Version of FinSpace Managed kdb to run. 172 ReleaseLabel *string `pulumi:"releaseLabel"` 173 // 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 savedown_storage_configuration. 174 SavedownStorageConfiguration *KxClusterSavedownStorageConfiguration `pulumi:"savedownStorageConfiguration"` 175 // The structure that stores the configuration details of a scaling group. 176 ScalingGroupConfiguration *KxClusterScalingGroupConfiguration `pulumi:"scalingGroupConfiguration"` 177 Status *string `pulumi:"status"` 178 StatusReason *string `pulumi:"statusReason"` 179 // 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. 180 Tags map[string]string `pulumi:"tags"` 181 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 182 // 183 // Deprecated: Please use `tags` instead. 184 TagsAll map[string]string `pulumi:"tagsAll"` 185 // A 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. 186 TickerplantLogConfigurations []KxClusterTickerplantLogConfiguration `pulumi:"tickerplantLogConfigurations"` 187 // Type of KDB database. The following types are available: 188 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 189 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 190 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 191 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 192 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 193 Type *string `pulumi:"type"` 194 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 195 // 196 // The following arguments are optional: 197 VpcConfiguration *KxClusterVpcConfiguration `pulumi:"vpcConfiguration"` 198 } 199 200 type KxClusterState struct { 201 // Amazon Resource Name (ARN) identifier of the KX cluster. 202 Arn pulumi.StringPtrInput 203 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 204 AutoScalingConfiguration KxClusterAutoScalingConfigurationPtrInput 205 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 206 AvailabilityZoneId pulumi.StringPtrInput 207 // The number of availability zones you want to assign per cluster. This can be one of the following: 208 // * SINGLE - Assigns one availability zone per cluster. 209 // * MULTI - Assigns all the availability zones per cluster. 210 AzMode pulumi.StringPtrInput 211 // 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. 212 CacheStorageConfigurations KxClusterCacheStorageConfigurationArrayInput 213 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 214 CapacityConfiguration KxClusterCapacityConfigurationPtrInput 215 // 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. 216 Code KxClusterCodePtrInput 217 // List of key-value pairs to make available inside the cluster. 218 CommandLineArguments pulumi.StringMapInput 219 // 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. 220 CreatedTimestamp pulumi.StringPtrInput 221 // KX database that will be available for querying. Defined below. 222 Databases KxClusterDatabaseArrayInput 223 // Description of the cluster. 224 Description pulumi.StringPtrInput 225 // Unique identifier for the KX environment. 226 EnvironmentId pulumi.StringPtrInput 227 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 228 ExecutionRole pulumi.StringPtrInput 229 // 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. 230 InitializationScript pulumi.StringPtrInput 231 // 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. 232 LastModifiedTimestamp pulumi.StringPtrInput 233 // Unique name for the cluster that you want to create. 234 Name pulumi.StringPtrInput 235 // Version of FinSpace Managed kdb to run. 236 ReleaseLabel pulumi.StringPtrInput 237 // 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 savedown_storage_configuration. 238 SavedownStorageConfiguration KxClusterSavedownStorageConfigurationPtrInput 239 // The structure that stores the configuration details of a scaling group. 240 ScalingGroupConfiguration KxClusterScalingGroupConfigurationPtrInput 241 Status pulumi.StringPtrInput 242 StatusReason pulumi.StringPtrInput 243 // 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. 244 Tags pulumi.StringMapInput 245 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 246 // 247 // Deprecated: Please use `tags` instead. 248 TagsAll pulumi.StringMapInput 249 // A 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. 250 TickerplantLogConfigurations KxClusterTickerplantLogConfigurationArrayInput 251 // Type of KDB database. The following types are available: 252 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 253 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 254 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 255 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 256 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 257 Type pulumi.StringPtrInput 258 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 259 // 260 // The following arguments are optional: 261 VpcConfiguration KxClusterVpcConfigurationPtrInput 262 } 263 264 func (KxClusterState) ElementType() reflect.Type { 265 return reflect.TypeOf((*kxClusterState)(nil)).Elem() 266 } 267 268 type kxClusterArgs struct { 269 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 270 AutoScalingConfiguration *KxClusterAutoScalingConfiguration `pulumi:"autoScalingConfiguration"` 271 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 272 AvailabilityZoneId *string `pulumi:"availabilityZoneId"` 273 // The number of availability zones you want to assign per cluster. This can be one of the following: 274 // * SINGLE - Assigns one availability zone per cluster. 275 // * MULTI - Assigns all the availability zones per cluster. 276 AzMode string `pulumi:"azMode"` 277 // 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. 278 CacheStorageConfigurations []KxClusterCacheStorageConfiguration `pulumi:"cacheStorageConfigurations"` 279 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 280 CapacityConfiguration *KxClusterCapacityConfiguration `pulumi:"capacityConfiguration"` 281 // 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. 282 Code *KxClusterCode `pulumi:"code"` 283 // List of key-value pairs to make available inside the cluster. 284 CommandLineArguments map[string]string `pulumi:"commandLineArguments"` 285 // KX database that will be available for querying. Defined below. 286 Databases []KxClusterDatabase `pulumi:"databases"` 287 // Description of the cluster. 288 Description *string `pulumi:"description"` 289 // Unique identifier for the KX environment. 290 EnvironmentId string `pulumi:"environmentId"` 291 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 292 ExecutionRole *string `pulumi:"executionRole"` 293 // 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. 294 InitializationScript *string `pulumi:"initializationScript"` 295 // Unique name for the cluster that you want to create. 296 Name *string `pulumi:"name"` 297 // Version of FinSpace Managed kdb to run. 298 ReleaseLabel string `pulumi:"releaseLabel"` 299 // 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 savedown_storage_configuration. 300 SavedownStorageConfiguration *KxClusterSavedownStorageConfiguration `pulumi:"savedownStorageConfiguration"` 301 // The structure that stores the configuration details of a scaling group. 302 ScalingGroupConfiguration *KxClusterScalingGroupConfiguration `pulumi:"scalingGroupConfiguration"` 303 // 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. 304 Tags map[string]string `pulumi:"tags"` 305 // A 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. 306 TickerplantLogConfigurations []KxClusterTickerplantLogConfiguration `pulumi:"tickerplantLogConfigurations"` 307 // Type of KDB database. The following types are available: 308 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 309 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 310 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 311 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 312 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 313 Type string `pulumi:"type"` 314 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 315 // 316 // The following arguments are optional: 317 VpcConfiguration KxClusterVpcConfiguration `pulumi:"vpcConfiguration"` 318 } 319 320 // The set of arguments for constructing a KxCluster resource. 321 type KxClusterArgs struct { 322 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 323 AutoScalingConfiguration KxClusterAutoScalingConfigurationPtrInput 324 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 325 AvailabilityZoneId pulumi.StringPtrInput 326 // The number of availability zones you want to assign per cluster. This can be one of the following: 327 // * SINGLE - Assigns one availability zone per cluster. 328 // * MULTI - Assigns all the availability zones per cluster. 329 AzMode pulumi.StringInput 330 // 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. 331 CacheStorageConfigurations KxClusterCacheStorageConfigurationArrayInput 332 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 333 CapacityConfiguration KxClusterCapacityConfigurationPtrInput 334 // 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. 335 Code KxClusterCodePtrInput 336 // List of key-value pairs to make available inside the cluster. 337 CommandLineArguments pulumi.StringMapInput 338 // KX database that will be available for querying. Defined below. 339 Databases KxClusterDatabaseArrayInput 340 // Description of the cluster. 341 Description pulumi.StringPtrInput 342 // Unique identifier for the KX environment. 343 EnvironmentId pulumi.StringInput 344 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 345 ExecutionRole pulumi.StringPtrInput 346 // 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. 347 InitializationScript pulumi.StringPtrInput 348 // Unique name for the cluster that you want to create. 349 Name pulumi.StringPtrInput 350 // Version of FinSpace Managed kdb to run. 351 ReleaseLabel pulumi.StringInput 352 // 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 savedown_storage_configuration. 353 SavedownStorageConfiguration KxClusterSavedownStorageConfigurationPtrInput 354 // The structure that stores the configuration details of a scaling group. 355 ScalingGroupConfiguration KxClusterScalingGroupConfigurationPtrInput 356 // 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. 357 Tags pulumi.StringMapInput 358 // A 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. 359 TickerplantLogConfigurations KxClusterTickerplantLogConfigurationArrayInput 360 // Type of KDB database. The following types are available: 361 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 362 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 363 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 364 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 365 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 366 Type pulumi.StringInput 367 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 368 // 369 // The following arguments are optional: 370 VpcConfiguration KxClusterVpcConfigurationInput 371 } 372 373 func (KxClusterArgs) ElementType() reflect.Type { 374 return reflect.TypeOf((*kxClusterArgs)(nil)).Elem() 375 } 376 377 type KxClusterInput interface { 378 pulumi.Input 379 380 ToKxClusterOutput() KxClusterOutput 381 ToKxClusterOutputWithContext(ctx context.Context) KxClusterOutput 382 } 383 384 func (*KxCluster) ElementType() reflect.Type { 385 return reflect.TypeOf((**KxCluster)(nil)).Elem() 386 } 387 388 func (i *KxCluster) ToKxClusterOutput() KxClusterOutput { 389 return i.ToKxClusterOutputWithContext(context.Background()) 390 } 391 392 func (i *KxCluster) ToKxClusterOutputWithContext(ctx context.Context) KxClusterOutput { 393 return pulumi.ToOutputWithContext(ctx, i).(KxClusterOutput) 394 } 395 396 // KxClusterArrayInput is an input type that accepts KxClusterArray and KxClusterArrayOutput values. 397 // You can construct a concrete instance of `KxClusterArrayInput` via: 398 // 399 // KxClusterArray{ KxClusterArgs{...} } 400 type KxClusterArrayInput interface { 401 pulumi.Input 402 403 ToKxClusterArrayOutput() KxClusterArrayOutput 404 ToKxClusterArrayOutputWithContext(context.Context) KxClusterArrayOutput 405 } 406 407 type KxClusterArray []KxClusterInput 408 409 func (KxClusterArray) ElementType() reflect.Type { 410 return reflect.TypeOf((*[]*KxCluster)(nil)).Elem() 411 } 412 413 func (i KxClusterArray) ToKxClusterArrayOutput() KxClusterArrayOutput { 414 return i.ToKxClusterArrayOutputWithContext(context.Background()) 415 } 416 417 func (i KxClusterArray) ToKxClusterArrayOutputWithContext(ctx context.Context) KxClusterArrayOutput { 418 return pulumi.ToOutputWithContext(ctx, i).(KxClusterArrayOutput) 419 } 420 421 // KxClusterMapInput is an input type that accepts KxClusterMap and KxClusterMapOutput values. 422 // You can construct a concrete instance of `KxClusterMapInput` via: 423 // 424 // KxClusterMap{ "key": KxClusterArgs{...} } 425 type KxClusterMapInput interface { 426 pulumi.Input 427 428 ToKxClusterMapOutput() KxClusterMapOutput 429 ToKxClusterMapOutputWithContext(context.Context) KxClusterMapOutput 430 } 431 432 type KxClusterMap map[string]KxClusterInput 433 434 func (KxClusterMap) ElementType() reflect.Type { 435 return reflect.TypeOf((*map[string]*KxCluster)(nil)).Elem() 436 } 437 438 func (i KxClusterMap) ToKxClusterMapOutput() KxClusterMapOutput { 439 return i.ToKxClusterMapOutputWithContext(context.Background()) 440 } 441 442 func (i KxClusterMap) ToKxClusterMapOutputWithContext(ctx context.Context) KxClusterMapOutput { 443 return pulumi.ToOutputWithContext(ctx, i).(KxClusterMapOutput) 444 } 445 446 type KxClusterOutput struct{ *pulumi.OutputState } 447 448 func (KxClusterOutput) ElementType() reflect.Type { 449 return reflect.TypeOf((**KxCluster)(nil)).Elem() 450 } 451 452 func (o KxClusterOutput) ToKxClusterOutput() KxClusterOutput { 453 return o 454 } 455 456 func (o KxClusterOutput) ToKxClusterOutputWithContext(ctx context.Context) KxClusterOutput { 457 return o 458 } 459 460 // Amazon Resource Name (ARN) identifier of the KX cluster. 461 func (o KxClusterOutput) Arn() pulumi.StringOutput { 462 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 463 } 464 465 // Configuration based on which FinSpace will scale in or scale out nodes in your cluster. See auto_scaling_configuration. 466 func (o KxClusterOutput) AutoScalingConfiguration() KxClusterAutoScalingConfigurationPtrOutput { 467 return o.ApplyT(func(v *KxCluster) KxClusterAutoScalingConfigurationPtrOutput { return v.AutoScalingConfiguration }).(KxClusterAutoScalingConfigurationPtrOutput) 468 } 469 470 // The availability zone identifiers for the requested regions. Required when `azMode` is set to SINGLE. 471 func (o KxClusterOutput) AvailabilityZoneId() pulumi.StringPtrOutput { 472 return o.ApplyT(func(v *KxCluster) pulumi.StringPtrOutput { return v.AvailabilityZoneId }).(pulumi.StringPtrOutput) 473 } 474 475 // The number of availability zones you want to assign per cluster. This can be one of the following: 476 // * SINGLE - Assigns one availability zone per cluster. 477 // * MULTI - Assigns all the availability zones per cluster. 478 func (o KxClusterOutput) AzMode() pulumi.StringOutput { 479 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.AzMode }).(pulumi.StringOutput) 480 } 481 482 // 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. 483 func (o KxClusterOutput) CacheStorageConfigurations() KxClusterCacheStorageConfigurationArrayOutput { 484 return o.ApplyT(func(v *KxCluster) KxClusterCacheStorageConfigurationArrayOutput { return v.CacheStorageConfigurations }).(KxClusterCacheStorageConfigurationArrayOutput) 485 } 486 487 // Structure for the metadata of a cluster. Includes information like the CPUs needed, memory of instances, and number of instances. See capacity_configuration. 488 func (o KxClusterOutput) CapacityConfiguration() KxClusterCapacityConfigurationPtrOutput { 489 return o.ApplyT(func(v *KxCluster) KxClusterCapacityConfigurationPtrOutput { return v.CapacityConfiguration }).(KxClusterCapacityConfigurationPtrOutput) 490 } 491 492 // 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. 493 func (o KxClusterOutput) Code() KxClusterCodePtrOutput { 494 return o.ApplyT(func(v *KxCluster) KxClusterCodePtrOutput { return v.Code }).(KxClusterCodePtrOutput) 495 } 496 497 // List of key-value pairs to make available inside the cluster. 498 func (o KxClusterOutput) CommandLineArguments() pulumi.StringMapOutput { 499 return o.ApplyT(func(v *KxCluster) pulumi.StringMapOutput { return v.CommandLineArguments }).(pulumi.StringMapOutput) 500 } 501 502 // 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. 503 func (o KxClusterOutput) CreatedTimestamp() pulumi.StringOutput { 504 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.CreatedTimestamp }).(pulumi.StringOutput) 505 } 506 507 // KX database that will be available for querying. Defined below. 508 func (o KxClusterOutput) Databases() KxClusterDatabaseArrayOutput { 509 return o.ApplyT(func(v *KxCluster) KxClusterDatabaseArrayOutput { return v.Databases }).(KxClusterDatabaseArrayOutput) 510 } 511 512 // Description of the cluster. 513 func (o KxClusterOutput) Description() pulumi.StringPtrOutput { 514 return o.ApplyT(func(v *KxCluster) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 515 } 516 517 // Unique identifier for the KX environment. 518 func (o KxClusterOutput) EnvironmentId() pulumi.StringOutput { 519 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.EnvironmentId }).(pulumi.StringOutput) 520 } 521 522 // An IAM role that defines a set of permissions associated with a cluster. These permissions are assumed when a cluster attempts to access another cluster. 523 func (o KxClusterOutput) ExecutionRole() pulumi.StringPtrOutput { 524 return o.ApplyT(func(v *KxCluster) pulumi.StringPtrOutput { return v.ExecutionRole }).(pulumi.StringPtrOutput) 525 } 526 527 // 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. 528 func (o KxClusterOutput) InitializationScript() pulumi.StringPtrOutput { 529 return o.ApplyT(func(v *KxCluster) pulumi.StringPtrOutput { return v.InitializationScript }).(pulumi.StringPtrOutput) 530 } 531 532 // 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. 533 func (o KxClusterOutput) LastModifiedTimestamp() pulumi.StringOutput { 534 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.LastModifiedTimestamp }).(pulumi.StringOutput) 535 } 536 537 // Unique name for the cluster that you want to create. 538 func (o KxClusterOutput) Name() pulumi.StringOutput { 539 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 540 } 541 542 // Version of FinSpace Managed kdb to run. 543 func (o KxClusterOutput) ReleaseLabel() pulumi.StringOutput { 544 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.ReleaseLabel }).(pulumi.StringOutput) 545 } 546 547 // 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 savedown_storage_configuration. 548 func (o KxClusterOutput) SavedownStorageConfiguration() KxClusterSavedownStorageConfigurationPtrOutput { 549 return o.ApplyT(func(v *KxCluster) KxClusterSavedownStorageConfigurationPtrOutput { 550 return v.SavedownStorageConfiguration 551 }).(KxClusterSavedownStorageConfigurationPtrOutput) 552 } 553 554 // The structure that stores the configuration details of a scaling group. 555 func (o KxClusterOutput) ScalingGroupConfiguration() KxClusterScalingGroupConfigurationPtrOutput { 556 return o.ApplyT(func(v *KxCluster) KxClusterScalingGroupConfigurationPtrOutput { return v.ScalingGroupConfiguration }).(KxClusterScalingGroupConfigurationPtrOutput) 557 } 558 559 func (o KxClusterOutput) Status() pulumi.StringOutput { 560 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 561 } 562 563 func (o KxClusterOutput) StatusReason() pulumi.StringOutput { 564 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.StatusReason }).(pulumi.StringOutput) 565 } 566 567 // 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. 568 func (o KxClusterOutput) Tags() pulumi.StringMapOutput { 569 return o.ApplyT(func(v *KxCluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 570 } 571 572 // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 573 // 574 // Deprecated: Please use `tags` instead. 575 func (o KxClusterOutput) TagsAll() pulumi.StringMapOutput { 576 return o.ApplyT(func(v *KxCluster) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 577 } 578 579 // A 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. 580 func (o KxClusterOutput) TickerplantLogConfigurations() KxClusterTickerplantLogConfigurationArrayOutput { 581 return o.ApplyT(func(v *KxCluster) KxClusterTickerplantLogConfigurationArrayOutput { 582 return v.TickerplantLogConfigurations 583 }).(KxClusterTickerplantLogConfigurationArrayOutput) 584 } 585 586 // Type of KDB database. The following types are available: 587 // * HDB - Historical Database. The data is only accessible with read-only permissions from one of the FinSpace managed KX databases mounted to the cluster. 588 // * RDB - Realtime Database. This type of database captures all the data from a ticker plant and stores it in memory until the end of day, after which it writes all of its data to a disk and reloads the HDB. This cluster type requires local storage for temporary storage of data during the savedown process. If you specify this field in your request, you must provide the `savedownStorageConfiguration` parameter. 589 // * GATEWAY - A gateway cluster allows you to access data across processes in kdb systems. It allows you to create your own routing logic using the initialization scripts and custom code. This type of cluster does not require a writable local storage. 590 // * GP - A general purpose cluster allows you to quickly iterate on code during development by granting greater access to system commands and enabling a fast reload of custom code. This cluster type can optionally mount databases including cache and savedown storage. For this cluster type, the node count is fixed at 1. It does not support autoscaling and supports only `SINGLE` AZ mode. 591 // * Tickerplant – A tickerplant cluster allows you to subscribe to feed handlers based on IAM permissions. It can publish to RDBs, other Tickerplants, and real-time subscribers (RTS). Tickerplants can persist messages to log, which is readable by any RDB environment. It supports only single-node that is only one kdb process. 592 func (o KxClusterOutput) Type() pulumi.StringOutput { 593 return o.ApplyT(func(v *KxCluster) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 594 } 595 596 // Configuration details about the network where the Privatelink endpoint of the cluster resides. See vpc_configuration. 597 // 598 // The following arguments are optional: 599 func (o KxClusterOutput) VpcConfiguration() KxClusterVpcConfigurationOutput { 600 return o.ApplyT(func(v *KxCluster) KxClusterVpcConfigurationOutput { return v.VpcConfiguration }).(KxClusterVpcConfigurationOutput) 601 } 602 603 type KxClusterArrayOutput struct{ *pulumi.OutputState } 604 605 func (KxClusterArrayOutput) ElementType() reflect.Type { 606 return reflect.TypeOf((*[]*KxCluster)(nil)).Elem() 607 } 608 609 func (o KxClusterArrayOutput) ToKxClusterArrayOutput() KxClusterArrayOutput { 610 return o 611 } 612 613 func (o KxClusterArrayOutput) ToKxClusterArrayOutputWithContext(ctx context.Context) KxClusterArrayOutput { 614 return o 615 } 616 617 func (o KxClusterArrayOutput) Index(i pulumi.IntInput) KxClusterOutput { 618 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KxCluster { 619 return vs[0].([]*KxCluster)[vs[1].(int)] 620 }).(KxClusterOutput) 621 } 622 623 type KxClusterMapOutput struct{ *pulumi.OutputState } 624 625 func (KxClusterMapOutput) ElementType() reflect.Type { 626 return reflect.TypeOf((*map[string]*KxCluster)(nil)).Elem() 627 } 628 629 func (o KxClusterMapOutput) ToKxClusterMapOutput() KxClusterMapOutput { 630 return o 631 } 632 633 func (o KxClusterMapOutput) ToKxClusterMapOutputWithContext(ctx context.Context) KxClusterMapOutput { 634 return o 635 } 636 637 func (o KxClusterMapOutput) MapIndex(k pulumi.StringInput) KxClusterOutput { 638 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KxCluster { 639 return vs[0].(map[string]*KxCluster)[vs[1].(string)] 640 }).(KxClusterOutput) 641 } 642 643 func init() { 644 pulumi.RegisterInputType(reflect.TypeOf((*KxClusterInput)(nil)).Elem(), &KxCluster{}) 645 pulumi.RegisterInputType(reflect.TypeOf((*KxClusterArrayInput)(nil)).Elem(), KxClusterArray{}) 646 pulumi.RegisterInputType(reflect.TypeOf((*KxClusterMapInput)(nil)).Elem(), KxClusterMap{}) 647 pulumi.RegisterOutputType(KxClusterOutput{}) 648 pulumi.RegisterOutputType(KxClusterArrayOutput{}) 649 pulumi.RegisterOutputType(KxClusterMapOutput{}) 650 }