/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the finspace-2021-03-12.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Finspace.Model
{
///
/// Container for the parameters to the CreateKxCluster operation.
/// Creates a new kdb cluster.
///
public partial class CreateKxClusterRequest : AmazonFinspaceRequest
{
private AutoScalingConfiguration _autoScalingConfiguration;
private string _availabilityZoneId;
private KxAzMode _azMode;
private List _cacheStorageConfigurations = new List();
private CapacityConfiguration _capacityConfiguration;
private string _clientToken;
private string _clusterDescription;
private string _clusterName;
private KxClusterType _clusterType;
private CodeConfiguration _code;
private List _commandLineArguments = new List();
private List _databases = new List();
private string _environmentId;
private string _executionRole;
private string _initializationScript;
private string _releaseLabel;
private KxSavedownStorageConfiguration _savedownStorageConfiguration;
private Dictionary _tags = new Dictionary();
private VpcConfiguration _vpcConfiguration;
///
/// Gets and sets the property AutoScalingConfiguration.
///
/// The configuration based on which FinSpace will scale in or scale out nodes in your
/// cluster.
///
///
public AutoScalingConfiguration AutoScalingConfiguration
{
get { return this._autoScalingConfiguration; }
set { this._autoScalingConfiguration = value; }
}
// Check to see if AutoScalingConfiguration property is set
internal bool IsSetAutoScalingConfiguration()
{
return this._autoScalingConfiguration != null;
}
///
/// Gets and sets the property AvailabilityZoneId.
///
/// The availability zone identifiers for the requested regions.
///
///
public string AvailabilityZoneId
{
get { return this._availabilityZoneId; }
set { this._availabilityZoneId = value; }
}
// Check to see if AvailabilityZoneId property is set
internal bool IsSetAvailabilityZoneId()
{
return this._availabilityZoneId != null;
}
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Required=true)]
public KxAzMode AzMode
{
get { return this._azMode; }
set { this._azMode = value; }
}
// Check to see if AzMode property is set
internal bool IsSetAzMode()
{
return this._azMode != null;
}
///
/// Gets and sets the property 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.
///
///
public List CacheStorageConfigurations
{
get { return this._cacheStorageConfigurations; }
set { this._cacheStorageConfigurations = value; }
}
// Check to see if CacheStorageConfigurations property is set
internal bool IsSetCacheStorageConfigurations()
{
return this._cacheStorageConfigurations != null && this._cacheStorageConfigurations.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public CapacityConfiguration CapacityConfiguration
{
get { return this._capacityConfiguration; }
set { this._capacityConfiguration = value; }
}
// Check to see if CapacityConfiguration property is set
internal bool IsSetCapacityConfiguration()
{
return this._capacityConfiguration != null;
}
///
/// Gets and sets the property ClientToken.
///
/// A token that ensures idempotency. This token expires in 10 minutes.
///
///
[AWSProperty(Min=1, Max=36)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property ClusterDescription.
///
/// A description of the cluster.
///
///
[AWSProperty(Min=1, Max=1000)]
public string ClusterDescription
{
get { return this._clusterDescription; }
set { this._clusterDescription = value; }
}
// Check to see if ClusterDescription property is set
internal bool IsSetClusterDescription()
{
return this._clusterDescription != null;
}
///
/// Gets and sets the property ClusterName.
///
/// A unique name for the cluster that you want to create.
///
///
[AWSProperty(Required=true, Min=3, Max=63)]
public string ClusterName
{
get { return this._clusterName; }
set { this._clusterName = value; }
}
// Check to see if ClusterName property is set
internal bool IsSetClusterName()
{
return this._clusterName != null;
}
///
/// Gets and sets the property 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.
///
///
///
[AWSProperty(Required=true)]
public KxClusterType ClusterType
{
get { return this._clusterType; }
set { this._clusterType = value; }
}
// Check to see if ClusterType property is set
internal bool IsSetClusterType()
{
return this._clusterType != null;
}
///
/// Gets and sets the property 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.
///
///
public CodeConfiguration Code
{
get { return this._code; }
set { this._code = value; }
}
// Check to see if Code property is set
internal bool IsSetCode()
{
return this._code != null;
}
///
/// Gets and sets the property CommandLineArguments.
///
/// Defines the key-value pairs to make them available inside the cluster.
///
///
public List CommandLineArguments
{
get { return this._commandLineArguments; }
set { this._commandLineArguments = value; }
}
// Check to see if CommandLineArguments property is set
internal bool IsSetCommandLineArguments()
{
return this._commandLineArguments != null && this._commandLineArguments.Count > 0;
}
///
/// Gets and sets the property Databases.
///
/// A list of databases that will be available for querying.
///
///
public List Databases
{
get { return this._databases; }
set { this._databases = value; }
}
// Check to see if Databases property is set
internal bool IsSetDatabases()
{
return this._databases != null && this._databases.Count > 0;
}
///
/// Gets and sets the property EnvironmentId.
///
/// A unique identifier for the kdb environment.
///
///
[AWSProperty(Required=true, Min=1, Max=32)]
public string EnvironmentId
{
get { return this._environmentId; }
set { this._environmentId = value; }
}
// Check to see if EnvironmentId property is set
internal bool IsSetEnvironmentId()
{
return this._environmentId != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=1024)]
public string ExecutionRole
{
get { return this._executionRole; }
set { this._executionRole = value; }
}
// Check to see if ExecutionRole property is set
internal bool IsSetExecutionRole()
{
return this._executionRole != null;
}
///
/// Gets and sets the property 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
.
///
///
[AWSProperty(Min=1, Max=255)]
public string InitializationScript
{
get { return this._initializationScript; }
set { this._initializationScript = value; }
}
// Check to see if InitializationScript property is set
internal bool IsSetInitializationScript()
{
return this._initializationScript != null;
}
///
/// Gets and sets the property ReleaseLabel.
///
/// The version of FinSpace managed kdb to run.
///
///
[AWSProperty(Required=true, Min=1, Max=16)]
public string ReleaseLabel
{
get { return this._releaseLabel; }
set { this._releaseLabel = value; }
}
// Check to see if ReleaseLabel property is set
internal bool IsSetReleaseLabel()
{
return this._releaseLabel != null;
}
///
/// Gets and sets the property 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.
///
///
public KxSavedownStorageConfiguration SavedownStorageConfiguration
{
get { return this._savedownStorageConfiguration; }
set { this._savedownStorageConfiguration = value; }
}
// Check to see if SavedownStorageConfiguration property is set
internal bool IsSetSavedownStorageConfiguration()
{
return this._savedownStorageConfiguration != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of key-value pairs to label the cluster. You can add up to 50 tags to a cluster.
///
///
[AWSProperty(Min=1, Max=50)]
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property VpcConfiguration.
///
/// Configuration details about the network where the Privatelink endpoint of the cluster
/// resides.
///
///
public VpcConfiguration VpcConfiguration
{
get { return this._vpcConfiguration; }
set { this._vpcConfiguration = value; }
}
// Check to see if VpcConfiguration property is set
internal bool IsSetVpcConfiguration()
{
return this._vpcConfiguration != null;
}
}
}