tables
Creates, updates, deletes or gets a table resource or lists tables in a region
Overview
| Name | tables |
| Type | Resource |
| Description | Resource schema for AWS::Cassandra::Table |
| Id | awscc.cassandra.tables |
Fields
- get (all properties)
- list (identifiers only)
| Name | Datatype | Description |
|---|---|---|
keyspace_name | string | Name for Cassandra keyspace |
table_name | string | Name for Cassandra table |
regular_columns | array | Non-key columns of the table |
partition_key_columns | array | Partition key columns of the table |
clustering_key_columns | array | Clustering key columns of the table |
billing_mode | object | |
point_in_time_recovery_enabled | boolean | Indicates whether point in time recovery is enabled (true) or disabled (false) on the table |
client_side_timestamps_enabled | boolean | Indicates whether client side timestamps are enabled (true) or disabled (false) on the table. False by default, once it is enabled it cannot be disabled again. |
tags | array | An array of key-value pairs to apply to this resource |
default_time_to_live | integer | Default TTL (Time To Live) in seconds, where zero is disabled. If the value is greater than zero, TTL is enabled for the entire table and an expiration timestamp is added to each column. |
encryption_specification | object | Represents the settings used to enable server-side encryption |
auto_scaling_specifications | object | Represents the read and write settings used for AutoScaling. |
cdc_specification | object | Represents the CDC configuration for the table |
replica_specifications | array | |
region | string | AWS region. |
| Name | Datatype | Description |
|---|---|---|
keyspace_name | string | Name for Cassandra keyspace |
table_name | string | Name for Cassandra table |
region | string | AWS region. |
For more information, see AWS::Cassandra::Table.
Methods
| Name | Resource | Accessible by | Required Params |
|---|---|---|---|
create_resource | tables | INSERT | KeyspaceName, PartitionKeyColumns, region |
delete_resource | tables | DELETE | Identifier, region |
update_resource | tables | UPDATE | Identifier, PatchDocument, region |
list_resources | tables_list_only | SELECT | region |
get_resource | tables | SELECT | Identifier, region |
SELECT examples
- get (all properties)
- list (identifiers only)
Gets all properties from an individual table.
SELECT
region,
keyspace_name,
table_name,
regular_columns,
partition_key_columns,
clustering_key_columns,
billing_mode,
point_in_time_recovery_enabled,
client_side_timestamps_enabled,
tags,
default_time_to_live,
encryption_specification,
auto_scaling_specifications,
cdc_specification,
replica_specifications
FROM awscc.cassandra.tables
WHERE
region = 'us-east-1' AND
Identifier = '{{ keyspace_name }}|{{ table_name }}';
Lists all tables in a region.
SELECT
region,
keyspace_name,
table_name
FROM awscc.cassandra.tables_list_only
WHERE
region = 'us-east-1';
INSERT example
Use the following StackQL query and manifest file to create a new table resource, using stack-deploy.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO awscc.cassandra.tables (
KeyspaceName,
PartitionKeyColumns,
region
)
SELECT
'{{ keyspace_name }}',
'{{ partition_key_columns }}',
'{{ region }}';
/*+ create */
INSERT INTO awscc.cassandra.tables (
KeyspaceName,
TableName,
RegularColumns,
PartitionKeyColumns,
ClusteringKeyColumns,
BillingMode,
PointInTimeRecoveryEnabled,
ClientSideTimestampsEnabled,
Tags,
DefaultTimeToLive,
EncryptionSpecification,
AutoScalingSpecifications,
CdcSpecification,
ReplicaSpecifications,
region
)
SELECT
'{{ keyspace_name }}',
'{{ table_name }}',
'{{ regular_columns }}',
'{{ partition_key_columns }}',
'{{ clustering_key_columns }}',
'{{ billing_mode }}',
'{{ point_in_time_recovery_enabled }}',
'{{ client_side_timestamps_enabled }}',
'{{ tags }}',
'{{ default_time_to_live }}',
'{{ encryption_specification }}',
'{{ auto_scaling_specifications }}',
'{{ cdc_specification }}',
'{{ replica_specifications }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: table
props:
- name: keyspace_name
value: '{{ keyspace_name }}'
- name: table_name
value: '{{ table_name }}'
- name: regular_columns
value:
- column_name: '{{ column_name }}'
column_type: '{{ column_type }}'
- name: partition_key_columns
value:
- null
- name: clustering_key_columns
value:
- column: null
order_by: '{{ order_by }}'
- name: billing_mode
value:
mode: '{{ mode }}'
provisioned_throughput:
read_capacity_units: '{{ read_capacity_units }}'
write_capacity_units: '{{ write_capacity_units }}'
- name: point_in_time_recovery_enabled
value: '{{ point_in_time_recovery_enabled }}'
- name: client_side_timestamps_enabled
value: '{{ client_side_timestamps_enabled }}'
- name: tags
value:
- key: '{{ key }}'
value: '{{ value }}'
- name: default_time_to_live
value: '{{ default_time_to_live }}'
- name: encryption_specification
value:
encryption_type: '{{ encryption_type }}'
kms_key_identifier: '{{ kms_key_identifier }}'
- name: auto_scaling_specifications
value:
write_capacity_auto_scaling:
auto_scaling_disabled: '{{ auto_scaling_disabled }}'
minimum_units: '{{ minimum_units }}'
maximum_units: '{{ maximum_units }}'
scaling_policy:
target_tracking_scaling_policy_configuration:
disable_scale_in: '{{ disable_scale_in }}'
scale_in_cooldown: '{{ scale_in_cooldown }}'
scale_out_cooldown: '{{ scale_out_cooldown }}'
target_value: '{{ target_value }}'
read_capacity_auto_scaling: null
- name: cdc_specification
value:
status: '{{ status }}'
view_type: '{{ view_type }}'
tags:
- null
- name: replica_specifications
value:
- region: '{{ region }}'
read_capacity_units: '{{ read_capacity_units }}'
read_capacity_auto_scaling: null
UPDATE example
Use the following StackQL query and manifest file to update a table resource, using stack-deploy.
/*+ update */
UPDATE awscc.cassandra.tables
SET PatchDocument = string('{{ {
"RegularColumns": regular_columns,
"BillingMode": billing_mode,
"PointInTimeRecoveryEnabled": point_in_time_recovery_enabled,
"Tags": tags,
"DefaultTimeToLive": default_time_to_live,
"EncryptionSpecification": encryption_specification,
"AutoScalingSpecifications": auto_scaling_specifications,
"CdcSpecification": cdc_specification,
"ReplicaSpecifications": replica_specifications
} | generate_patch_document }}')
WHERE
region = '{{ region }}' AND
Identifier = '{{ keyspace_name }}|{{ table_name }}';
DELETE example
/*+ delete */
DELETE FROM awscc.cassandra.tables
WHERE
Identifier = '{{ keyspace_name }}|{{ table_name }}' AND
region = 'us-east-1';
Permissions
To operate on the tables resource, the following permissions are required:
- Create
- Read
- Update
- Delete
- List
cassandra:Create,
cassandra:CreateMultiRegionResource,
cassandra:Select,
cassandra:SelectMultiRegionResource,
cassandra:TagResource,
cassandra:TagMultiRegionResource,
kms:CreateGrant,
kms:DescribeKey,
kms:Encrypt,
kms:Decrypt,
application-autoscaling:DescribeScalableTargets,
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeregisterScalableTarget,
application-autoscaling:RegisterScalableTarget,
application-autoscaling:PutScalingPolicy,
cloudwatch:DeleteAlarms,
cloudwatch:DescribeAlarms,
cloudwatch:GetMetricData,
cloudwatch:PutMetricAlarm,
iam:CreateServiceLinkedRole
cassandra:Select,
cassandra:SelectMultiRegionResource,
application-autoscaling:DescribeScalableTargets,
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeregisterScalableTarget,
application-autoscaling:RegisterScalableTarget,
application-autoscaling:PutScalingPolicy,
cloudwatch:DeleteAlarms,
cloudwatch:DescribeAlarms,
cloudwatch:GetMetricData,
cloudwatch:PutMetricAlarm
cassandra:Alter,
cassandra:AlterMultiRegionResource,
cassandra:Select,
cassandra:SelectMultiRegionResource,
cassandra:TagResource,
cassandra:TagMultiRegionResource,
cassandra:UntagResource,
cassandra:UntagMultiRegionResource,
kms:CreateGrant,
kms:DescribeKey,
kms:Encrypt,
kms:Decrypt,
application-autoscaling:DescribeScalableTargets,
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeregisterScalableTarget,
application-autoscaling:RegisterScalableTarget,
application-autoscaling:PutScalingPolicy,
cloudwatch:DeleteAlarms,
cloudwatch:DescribeAlarms,
cloudwatch:GetMetricData,
cloudwatch:PutMetricAlarm,
iam:CreateServiceLinkedRole
cassandra:Drop,
cassandra:DropMultiRegionResource,
cassandra:Select,
cassandra:SelectMultiRegionResource,
application-autoscaling:DescribeScalableTargets,
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeregisterScalableTarget,
application-autoscaling:RegisterScalableTarget,
application-autoscaling:PutScalingPolicy,
cloudwatch:DeleteAlarms,
cloudwatch:DescribeAlarms,
cloudwatch:GetMetricData,
cloudwatch:PutMetricAlarm
cassandra:Select,
cassandra:SelectMultiRegionResource,
application-autoscaling:DescribeScalableTargets,
application-autoscaling:DescribeScalingPolicies,
application-autoscaling:DeregisterScalableTarget,
application-autoscaling:RegisterScalableTarget,
application-autoscaling:PutScalingPolicy,
cloudwatch:DeleteAlarms,
cloudwatch:DescribeAlarms,
cloudwatch:GetMetricData,
cloudwatch:PutMetricAlarm