/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace finspace { namespace Model { /** */ class CreateKxClusterRequest : public FinspaceRequest { public: AWS_FINSPACE_API CreateKxClusterRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateKxCluster"; } AWS_FINSPACE_API Aws::String SerializePayload() const override; /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline CreateKxClusterRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline CreateKxClusterRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A token that ensures idempotency. This token expires in 10 minutes.

*/ inline CreateKxClusterRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

A unique identifier for the kdb environment.

*/ inline const Aws::String& GetEnvironmentId() const{ return m_environmentId; } /** *

A unique identifier for the kdb environment.

*/ inline bool EnvironmentIdHasBeenSet() const { return m_environmentIdHasBeenSet; } /** *

A unique identifier for the kdb environment.

*/ inline void SetEnvironmentId(const Aws::String& value) { m_environmentIdHasBeenSet = true; m_environmentId = value; } /** *

A unique identifier for the kdb environment.

*/ inline void SetEnvironmentId(Aws::String&& value) { m_environmentIdHasBeenSet = true; m_environmentId = std::move(value); } /** *

A unique identifier for the kdb environment.

*/ inline void SetEnvironmentId(const char* value) { m_environmentIdHasBeenSet = true; m_environmentId.assign(value); } /** *

A unique identifier for the kdb environment.

*/ inline CreateKxClusterRequest& WithEnvironmentId(const Aws::String& value) { SetEnvironmentId(value); return *this;} /** *

A unique identifier for the kdb environment.

*/ inline CreateKxClusterRequest& WithEnvironmentId(Aws::String&& value) { SetEnvironmentId(std::move(value)); return *this;} /** *

A unique identifier for the kdb environment.

*/ inline CreateKxClusterRequest& WithEnvironmentId(const char* value) { SetEnvironmentId(value); return *this;} /** *

A unique name for the cluster that you want to create.

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

A unique name for the cluster that you want to create.

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

A unique name for the cluster that you want to create.

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

A unique name for the cluster that you want to create.

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

A unique name for the cluster that you want to create.

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

A unique name for the cluster that you want to create.

*/ inline CreateKxClusterRequest& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

A unique name for the cluster that you want to create.

*/ inline CreateKxClusterRequest& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

A unique name for the cluster that you want to create.

*/ inline CreateKxClusterRequest& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline const KxClusterType& GetClusterType() const{ return m_clusterType; } /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline bool ClusterTypeHasBeenSet() const { return m_clusterTypeHasBeenSet; } /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline void SetClusterType(const KxClusterType& value) { m_clusterTypeHasBeenSet = true; m_clusterType = value; } /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline void SetClusterType(KxClusterType&& value) { m_clusterTypeHasBeenSet = true; m_clusterType = std::move(value); } /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline CreateKxClusterRequest& WithClusterType(const KxClusterType& value) { SetClusterType(value); return *this;} /** *

Specifies the type of KDB database that is being created. The following types * are available:

  • HDB – A Historical Database. The data is only * accessible with read-only permissions from one of the FinSpace managed kdb * databases mounted to the cluster.

  • RDB – A 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.

    *
  • 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.

*/ inline CreateKxClusterRequest& WithClusterType(KxClusterType&& value) { SetClusterType(std::move(value)); return *this;} /** *

A list of databases that will be available for querying.

*/ inline const Aws::Vector& GetDatabases() const{ return m_databases; } /** *

A list of databases that will be available for querying.

*/ inline bool DatabasesHasBeenSet() const { return m_databasesHasBeenSet; } /** *

A list of databases that will be available for querying.

*/ inline void SetDatabases(const Aws::Vector& value) { m_databasesHasBeenSet = true; m_databases = value; } /** *

A list of databases that will be available for querying.

*/ inline void SetDatabases(Aws::Vector&& value) { m_databasesHasBeenSet = true; m_databases = std::move(value); } /** *

A list of databases that will be available for querying.

*/ inline CreateKxClusterRequest& WithDatabases(const Aws::Vector& value) { SetDatabases(value); return *this;} /** *

A list of databases that will be available for querying.

*/ inline CreateKxClusterRequest& WithDatabases(Aws::Vector&& value) { SetDatabases(std::move(value)); return *this;} /** *

A list of databases that will be available for querying.

*/ inline CreateKxClusterRequest& AddDatabases(const KxDatabaseConfiguration& value) { m_databasesHasBeenSet = true; m_databases.push_back(value); return *this; } /** *

A list of databases that will be available for querying.

*/ inline CreateKxClusterRequest& AddDatabases(KxDatabaseConfiguration&& value) { m_databasesHasBeenSet = true; m_databases.push_back(std::move(value)); return *this; } /** *

The 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.

*/ inline const Aws::Vector& GetCacheStorageConfigurations() const{ return m_cacheStorageConfigurations; } /** *

The 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.

*/ inline bool CacheStorageConfigurationsHasBeenSet() const { return m_cacheStorageConfigurationsHasBeenSet; } /** *

The 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.

*/ inline void SetCacheStorageConfigurations(const Aws::Vector& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations = value; } /** *

The 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.

*/ inline void SetCacheStorageConfigurations(Aws::Vector&& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations = std::move(value); } /** *

The 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.

*/ inline CreateKxClusterRequest& WithCacheStorageConfigurations(const Aws::Vector& value) { SetCacheStorageConfigurations(value); return *this;} /** *

The 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.

*/ inline CreateKxClusterRequest& WithCacheStorageConfigurations(Aws::Vector&& value) { SetCacheStorageConfigurations(std::move(value)); return *this;} /** *

The 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.

*/ inline CreateKxClusterRequest& AddCacheStorageConfigurations(const KxCacheStorageConfiguration& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations.push_back(value); return *this; } /** *

The 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.

*/ inline CreateKxClusterRequest& AddCacheStorageConfigurations(KxCacheStorageConfiguration&& value) { m_cacheStorageConfigurationsHasBeenSet = true; m_cacheStorageConfigurations.push_back(std::move(value)); return *this; } /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline const AutoScalingConfiguration& GetAutoScalingConfiguration() const{ return m_autoScalingConfiguration; } /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline bool AutoScalingConfigurationHasBeenSet() const { return m_autoScalingConfigurationHasBeenSet; } /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline void SetAutoScalingConfiguration(const AutoScalingConfiguration& value) { m_autoScalingConfigurationHasBeenSet = true; m_autoScalingConfiguration = value; } /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline void SetAutoScalingConfiguration(AutoScalingConfiguration&& value) { m_autoScalingConfigurationHasBeenSet = true; m_autoScalingConfiguration = std::move(value); } /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline CreateKxClusterRequest& WithAutoScalingConfiguration(const AutoScalingConfiguration& value) { SetAutoScalingConfiguration(value); return *this;} /** *

The configuration based on which FinSpace will scale in or scale out nodes in * your cluster.

*/ inline CreateKxClusterRequest& WithAutoScalingConfiguration(AutoScalingConfiguration&& value) { SetAutoScalingConfiguration(std::move(value)); return *this;} /** *

A description of the cluster.

*/ inline const Aws::String& GetClusterDescription() const{ return m_clusterDescription; } /** *

A description of the cluster.

*/ inline bool ClusterDescriptionHasBeenSet() const { return m_clusterDescriptionHasBeenSet; } /** *

A description of the cluster.

*/ inline void SetClusterDescription(const Aws::String& value) { m_clusterDescriptionHasBeenSet = true; m_clusterDescription = value; } /** *

A description of the cluster.

*/ inline void SetClusterDescription(Aws::String&& value) { m_clusterDescriptionHasBeenSet = true; m_clusterDescription = std::move(value); } /** *

A description of the cluster.

*/ inline void SetClusterDescription(const char* value) { m_clusterDescriptionHasBeenSet = true; m_clusterDescription.assign(value); } /** *

A description of the cluster.

*/ inline CreateKxClusterRequest& WithClusterDescription(const Aws::String& value) { SetClusterDescription(value); return *this;} /** *

A description of the cluster.

*/ inline CreateKxClusterRequest& WithClusterDescription(Aws::String&& value) { SetClusterDescription(std::move(value)); return *this;} /** *

A description of the cluster.

*/ inline CreateKxClusterRequest& WithClusterDescription(const char* value) { SetClusterDescription(value); return *this;} /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline const CapacityConfiguration& GetCapacityConfiguration() const{ return m_capacityConfiguration; } /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline bool CapacityConfigurationHasBeenSet() const { return m_capacityConfigurationHasBeenSet; } /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline void SetCapacityConfiguration(const CapacityConfiguration& value) { m_capacityConfigurationHasBeenSet = true; m_capacityConfiguration = value; } /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline void SetCapacityConfiguration(CapacityConfiguration&& value) { m_capacityConfigurationHasBeenSet = true; m_capacityConfiguration = std::move(value); } /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline CreateKxClusterRequest& WithCapacityConfiguration(const CapacityConfiguration& value) { SetCapacityConfiguration(value); return *this;} /** *

A structure for the metadata of a cluster. It includes information about like * the CPUs needed, memory of instances, number of instances, and the port used * while establishing a connection.

*/ inline CreateKxClusterRequest& WithCapacityConfiguration(CapacityConfiguration&& value) { SetCapacityConfiguration(std::move(value)); return *this;} /** *

The version of FinSpace managed kdb to run.

*/ inline const Aws::String& GetReleaseLabel() const{ return m_releaseLabel; } /** *

The version of FinSpace managed kdb to run.

*/ inline bool ReleaseLabelHasBeenSet() const { return m_releaseLabelHasBeenSet; } /** *

The version of FinSpace managed kdb to run.

*/ inline void SetReleaseLabel(const Aws::String& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = value; } /** *

The version of FinSpace managed kdb to run.

*/ inline void SetReleaseLabel(Aws::String&& value) { m_releaseLabelHasBeenSet = true; m_releaseLabel = std::move(value); } /** *

The version of FinSpace managed kdb to run.

*/ inline void SetReleaseLabel(const char* value) { m_releaseLabelHasBeenSet = true; m_releaseLabel.assign(value); } /** *

The version of FinSpace managed kdb to run.

*/ inline CreateKxClusterRequest& WithReleaseLabel(const Aws::String& value) { SetReleaseLabel(value); return *this;} /** *

The version of FinSpace managed kdb to run.

*/ inline CreateKxClusterRequest& WithReleaseLabel(Aws::String&& value) { SetReleaseLabel(std::move(value)); return *this;} /** *

The version of FinSpace managed kdb to run.

*/ inline CreateKxClusterRequest& WithReleaseLabel(const char* value) { SetReleaseLabel(value); return *this;} /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline const VpcConfiguration& GetVpcConfiguration() const{ return m_vpcConfiguration; } /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline bool VpcConfigurationHasBeenSet() const { return m_vpcConfigurationHasBeenSet; } /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline void SetVpcConfiguration(const VpcConfiguration& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = value; } /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline void SetVpcConfiguration(VpcConfiguration&& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = std::move(value); } /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline CreateKxClusterRequest& WithVpcConfiguration(const VpcConfiguration& value) { SetVpcConfiguration(value); return *this;} /** *

Configuration details about the network where the Privatelink endpoint of the * cluster resides.

*/ inline CreateKxClusterRequest& WithVpcConfiguration(VpcConfiguration&& value) { SetVpcConfiguration(std::move(value)); return *this;} /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline const Aws::String& GetInitializationScript() const{ return m_initializationScript; } /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline bool InitializationScriptHasBeenSet() const { return m_initializationScriptHasBeenSet; } /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline void SetInitializationScript(const Aws::String& value) { m_initializationScriptHasBeenSet = true; m_initializationScript = value; } /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline void SetInitializationScript(Aws::String&& value) { m_initializationScriptHasBeenSet = true; m_initializationScript = std::move(value); } /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline void SetInitializationScript(const char* value) { m_initializationScriptHasBeenSet = true; m_initializationScript.assign(value); } /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline CreateKxClusterRequest& WithInitializationScript(const Aws::String& value) { SetInitializationScript(value); return *this;} /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline CreateKxClusterRequest& WithInitializationScript(Aws::String&& value) { SetInitializationScript(std::move(value)); return *this;} /** *

Specifies a Q program that will be run at launch of a cluster. It 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.

*/ inline CreateKxClusterRequest& WithInitializationScript(const char* value) { SetInitializationScript(value); return *this;} /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline const Aws::Vector& GetCommandLineArguments() const{ return m_commandLineArguments; } /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline bool CommandLineArgumentsHasBeenSet() const { return m_commandLineArgumentsHasBeenSet; } /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline void SetCommandLineArguments(const Aws::Vector& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments = value; } /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline void SetCommandLineArguments(Aws::Vector&& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments = std::move(value); } /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline CreateKxClusterRequest& WithCommandLineArguments(const Aws::Vector& value) { SetCommandLineArguments(value); return *this;} /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline CreateKxClusterRequest& WithCommandLineArguments(Aws::Vector&& value) { SetCommandLineArguments(std::move(value)); return *this;} /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline CreateKxClusterRequest& AddCommandLineArguments(const KxCommandLineArgument& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments.push_back(value); return *this; } /** *

Defines the key-value pairs to make them available inside the cluster.

*/ inline CreateKxClusterRequest& AddCommandLineArguments(KxCommandLineArgument&& value) { m_commandLineArgumentsHasBeenSet = true; m_commandLineArguments.push_back(std::move(value)); return *this; } /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline const CodeConfiguration& GetCode() const{ return m_code; } /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline bool CodeHasBeenSet() const { return m_codeHasBeenSet; } /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline void SetCode(const CodeConfiguration& value) { m_codeHasBeenSet = true; m_code = value; } /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline void SetCode(CodeConfiguration&& value) { m_codeHasBeenSet = true; m_code = std::move(value); } /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline CreateKxClusterRequest& WithCode(const CodeConfiguration& value) { SetCode(value); return *this;} /** *

The details of the custom code that you want to use inside a cluster when * analyzing a data. It consists of the S3 source bucket, location, S3 object * version, and the relative path from where the custom code is loaded into the * cluster.

*/ inline CreateKxClusterRequest& WithCode(CodeConfiguration&& value) { SetCode(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetExecutionRole() const{ return m_executionRole; } /** *

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.

*/ inline bool ExecutionRoleHasBeenSet() const { return m_executionRoleHasBeenSet; } /** *

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.

*/ inline void SetExecutionRole(const Aws::String& value) { m_executionRoleHasBeenSet = true; m_executionRole = value; } /** *

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.

*/ inline void SetExecutionRole(Aws::String&& value) { m_executionRoleHasBeenSet = true; m_executionRole = std::move(value); } /** *

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.

*/ inline void SetExecutionRole(const char* value) { m_executionRoleHasBeenSet = true; m_executionRole.assign(value); } /** *

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.

*/ inline CreateKxClusterRequest& WithExecutionRole(const Aws::String& value) { SetExecutionRole(value); return *this;} /** *

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.

*/ inline CreateKxClusterRequest& WithExecutionRole(Aws::String&& value) { SetExecutionRole(std::move(value)); return *this;} /** *

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.

*/ inline CreateKxClusterRequest& WithExecutionRole(const char* value) { SetExecutionRole(value); return *this;} /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline const KxSavedownStorageConfiguration& GetSavedownStorageConfiguration() const{ return m_savedownStorageConfiguration; } /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline bool SavedownStorageConfigurationHasBeenSet() const { return m_savedownStorageConfigurationHasBeenSet; } /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline void SetSavedownStorageConfiguration(const KxSavedownStorageConfiguration& value) { m_savedownStorageConfigurationHasBeenSet = true; m_savedownStorageConfiguration = value; } /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline void SetSavedownStorageConfiguration(KxSavedownStorageConfiguration&& value) { m_savedownStorageConfigurationHasBeenSet = true; m_savedownStorageConfiguration = std::move(value); } /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline CreateKxClusterRequest& WithSavedownStorageConfiguration(const KxSavedownStorageConfiguration& value) { SetSavedownStorageConfiguration(value); return *this;} /** *

The size and type of the temporary storage that is used to hold data during * the savedown process. This parameter is required when you choose * clusterType as RDB. All the data written to this storage space is * lost when the cluster node is restarted.

*/ inline CreateKxClusterRequest& WithSavedownStorageConfiguration(KxSavedownStorageConfiguration&& value) { SetSavedownStorageConfiguration(std::move(value)); return *this;} /** *

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.

*/ inline const KxAzMode& GetAzMode() const{ return m_azMode; } /** *

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.

*/ inline bool AzModeHasBeenSet() const { return m_azModeHasBeenSet; } /** *

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.

*/ inline void SetAzMode(const KxAzMode& value) { m_azModeHasBeenSet = true; m_azMode = value; } /** *

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.

*/ inline void SetAzMode(KxAzMode&& value) { m_azModeHasBeenSet = true; m_azMode = std::move(value); } /** *

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.

*/ inline CreateKxClusterRequest& WithAzMode(const KxAzMode& value) { SetAzMode(value); return *this;} /** *

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.

*/ inline CreateKxClusterRequest& WithAzMode(KxAzMode&& value) { SetAzMode(std::move(value)); return *this;} /** *

The availability zone identifiers for the requested regions.

*/ inline const Aws::String& GetAvailabilityZoneId() const{ return m_availabilityZoneId; } /** *

The availability zone identifiers for the requested regions.

*/ inline bool AvailabilityZoneIdHasBeenSet() const { return m_availabilityZoneIdHasBeenSet; } /** *

The availability zone identifiers for the requested regions.

*/ inline void SetAvailabilityZoneId(const Aws::String& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = value; } /** *

The availability zone identifiers for the requested regions.

*/ inline void SetAvailabilityZoneId(Aws::String&& value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId = std::move(value); } /** *

The availability zone identifiers for the requested regions.

*/ inline void SetAvailabilityZoneId(const char* value) { m_availabilityZoneIdHasBeenSet = true; m_availabilityZoneId.assign(value); } /** *

The availability zone identifiers for the requested regions.

*/ inline CreateKxClusterRequest& WithAvailabilityZoneId(const Aws::String& value) { SetAvailabilityZoneId(value); return *this;} /** *

The availability zone identifiers for the requested regions.

*/ inline CreateKxClusterRequest& WithAvailabilityZoneId(Aws::String&& value) { SetAvailabilityZoneId(std::move(value)); return *this;} /** *

The availability zone identifiers for the requested regions.

*/ inline CreateKxClusterRequest& WithAvailabilityZoneId(const char* value) { SetAvailabilityZoneId(value); return *this;} /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A list of key-value pairs to label the cluster. You can add up to 50 tags to * a cluster.

*/ inline CreateKxClusterRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::String m_environmentId; bool m_environmentIdHasBeenSet = false; Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; KxClusterType m_clusterType; bool m_clusterTypeHasBeenSet = false; Aws::Vector m_databases; bool m_databasesHasBeenSet = false; Aws::Vector m_cacheStorageConfigurations; bool m_cacheStorageConfigurationsHasBeenSet = false; AutoScalingConfiguration m_autoScalingConfiguration; bool m_autoScalingConfigurationHasBeenSet = false; Aws::String m_clusterDescription; bool m_clusterDescriptionHasBeenSet = false; CapacityConfiguration m_capacityConfiguration; bool m_capacityConfigurationHasBeenSet = false; Aws::String m_releaseLabel; bool m_releaseLabelHasBeenSet = false; VpcConfiguration m_vpcConfiguration; bool m_vpcConfigurationHasBeenSet = false; Aws::String m_initializationScript; bool m_initializationScriptHasBeenSet = false; Aws::Vector m_commandLineArguments; bool m_commandLineArgumentsHasBeenSet = false; CodeConfiguration m_code; bool m_codeHasBeenSet = false; Aws::String m_executionRole; bool m_executionRoleHasBeenSet = false; KxSavedownStorageConfiguration m_savedownStorageConfiguration; bool m_savedownStorageConfigurationHasBeenSet = false; KxAzMode m_azMode; bool m_azModeHasBeenSet = false; Aws::String m_availabilityZoneId; bool m_availabilityZoneIdHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace finspace } // namespace Aws