Interface ICfnTableProps
Properties for defining a CfnTable
.
Namespace: Amazon.CDK.AWS.Cassandra
Assembly: Amazon.CDK.Lib.dll
Syntax (csharp)
public interface ICfnTableProps
Syntax (vb)
Public Interface ICfnTableProps
Remarks
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cassandra-table.html
ExampleMetadata: fixture=_generated
Examples
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.AWS.Cassandra;
var cfnTableProps = new CfnTableProps {
KeyspaceName = "keyspaceName",
PartitionKeyColumns = new [] { new ColumnProperty {
ColumnName = "columnName",
ColumnType = "columnType"
} },
// the properties below are optional
AutoScalingSpecifications = new AutoScalingSpecificationProperty {
ReadCapacityAutoScaling = new AutoScalingSettingProperty {
AutoScalingDisabled = false,
MaximumUnits = 123,
MinimumUnits = 123,
ScalingPolicy = new ScalingPolicyProperty {
TargetTrackingScalingPolicyConfiguration = new TargetTrackingScalingPolicyConfigurationProperty {
TargetValue = 123,
// the properties below are optional
DisableScaleIn = false,
ScaleInCooldown = 123,
ScaleOutCooldown = 123
}
}
},
WriteCapacityAutoScaling = new AutoScalingSettingProperty {
AutoScalingDisabled = false,
MaximumUnits = 123,
MinimumUnits = 123,
ScalingPolicy = new ScalingPolicyProperty {
TargetTrackingScalingPolicyConfiguration = new TargetTrackingScalingPolicyConfigurationProperty {
TargetValue = 123,
// the properties below are optional
DisableScaleIn = false,
ScaleInCooldown = 123,
ScaleOutCooldown = 123
}
}
}
},
BillingMode = new BillingModeProperty {
Mode = "mode",
// the properties below are optional
ProvisionedThroughput = new ProvisionedThroughputProperty {
ReadCapacityUnits = 123,
WriteCapacityUnits = 123
}
},
ClientSideTimestampsEnabled = false,
ClusteringKeyColumns = new [] { new ClusteringKeyColumnProperty {
Column = new ColumnProperty {
ColumnName = "columnName",
ColumnType = "columnType"
},
// the properties below are optional
OrderBy = "orderBy"
} },
DefaultTimeToLive = 123,
EncryptionSpecification = new EncryptionSpecificationProperty {
EncryptionType = "encryptionType",
// the properties below are optional
KmsKeyIdentifier = "kmsKeyIdentifier"
},
PointInTimeRecoveryEnabled = false,
RegularColumns = new [] { new ColumnProperty {
ColumnName = "columnName",
ColumnType = "columnType"
} },
ReplicaSpecifications = new [] { new ReplicaSpecificationProperty {
Region = "region",
// the properties below are optional
ReadCapacityAutoScaling = new AutoScalingSettingProperty {
AutoScalingDisabled = false,
MaximumUnits = 123,
MinimumUnits = 123,
ScalingPolicy = new ScalingPolicyProperty {
TargetTrackingScalingPolicyConfiguration = new TargetTrackingScalingPolicyConfigurationProperty {
TargetValue = 123,
// the properties below are optional
DisableScaleIn = false,
ScaleInCooldown = 123,
ScaleOutCooldown = 123
}
}
},
ReadCapacityUnits = 123
} },
TableName = "tableName",
Tags = new [] { new CfnTag {
Key = "key",
Value = "value"
} }
};
Synopsis
Properties
AutoScalingSpecifications | The optional auto scaling capacity settings for a table in provisioned capacity mode. |
BillingMode | The billing mode for the table, which determines how you'll be charged for reads and writes:. |
ClientSideTimestampsEnabled | Enables client-side timestamps for the table. |
ClusteringKeyColumns | One or more columns that determine how the table data is sorted. |
DefaultTimeToLive | The default Time To Live (TTL) value for all rows in a table in seconds. |
EncryptionSpecification | The encryption at rest options for the table. |
KeyspaceName | The name of the keyspace to create the table in. |
PartitionKeyColumns | One or more columns that uniquely identify every row in the table. |
PointInTimeRecoveryEnabled | Specifies if point-in-time recovery is enabled or disabled for the table. |
RegularColumns | One or more columns that are not part of the primary key - that is, columns that are not defined as partition key columns or clustering key columns. |
ReplicaSpecifications | The AWS Region specific settings of a multi-Region table. |
TableName | The name of the table to be created. |
Tags | An array of key-value pairs to apply to this resource. |
Properties
AutoScalingSpecifications
The optional auto scaling capacity settings for a table in provisioned capacity mode.
virtual object AutoScalingSpecifications { get; }
Property Value
System.Object
Remarks
BillingMode
The billing mode for the table, which determines how you'll be charged for reads and writes:.
virtual object BillingMode { get; }
Property Value
System.Object
Remarks
If you don't specify a value for this property, then the table will use on-demand mode.
ClientSideTimestampsEnabled
Enables client-side timestamps for the table.
virtual object ClientSideTimestampsEnabled { get; }
Property Value
System.Object
Remarks
By default, the setting is disabled. You can enable client-side timestamps with the following option:
After client-side timestamps are enabled for a table, you can't disable this setting.
ClusteringKeyColumns
One or more columns that determine how the table data is sorted.
virtual object ClusteringKeyColumns { get; }
Property Value
System.Object
Remarks
DefaultTimeToLive
The default Time To Live (TTL) value for all rows in a table in seconds.
virtual Nullable<double> DefaultTimeToLive { get; }
Property Value
System.Nullable<System.Double>
Remarks
The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years. By default, the TTL value for a table is 0, which means data does not expire.
For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer Guide .
EncryptionSpecification
The encryption at rest options for the table.
virtual object EncryptionSpecification { get; }
Property Value
System.Object
Remarks
If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.
For more information, see Encryption at rest in Amazon Keyspaces in the Amazon Keyspaces Developer Guide .
KeyspaceName
The name of the keyspace to create the table in.
string KeyspaceName { get; }
Property Value
System.String
Remarks
The keyspace must already exist.
PartitionKeyColumns
One or more columns that uniquely identify every row in the table.
object PartitionKeyColumns { get; }
Property Value
System.Object
Remarks
Every table must have a partition key.
PointInTimeRecoveryEnabled
Specifies if point-in-time recovery is enabled or disabled for the table.
virtual object PointInTimeRecoveryEnabled { get; }
Property Value
System.Object
Remarks
The options are PointInTimeRecoveryEnabled=true
and PointInTimeRecoveryEnabled=false
. If not specified, the default is PointInTimeRecoveryEnabled=false
.
RegularColumns
One or more columns that are not part of the primary key - that is, columns that are not defined as partition key columns or clustering key columns.
virtual object RegularColumns { get; }
Property Value
System.Object
Remarks
You can add regular columns to existing tables by adding them to the template.
ReplicaSpecifications
The AWS Region specific settings of a multi-Region table.
virtual object ReplicaSpecifications { get; }
Property Value
System.Object
Remarks
For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.
TableName
The name of the table to be created.
virtual string TableName { get; }
Property Value
System.String
Remarks
The table name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name. For more information, see Name type .
If you specify a name, you can't perform updates that require replacing this resource. You can perform updates that require no interruption or some interruption. If you must replace the resource, specify a new name.
Length constraints: Minimum length of 3. Maximum length of 255.
Pattern: ^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$