import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class BillingMode { Mode ! : Value < string > ; ProvisionedThroughput ? : ProvisionedThroughput ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Column { ColumnName ! : Value < string > ; ColumnType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ClusteringKeyColumn { Column ! : Column ; OrderBy ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProvisionedThroughput { ReadCapacityUnits ! : Value < number > ; WriteCapacityUnits ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface TableProperties { KeyspaceName : Value < string > ; TableName ? : Value < string > ; RegularColumns ? : List < Column > ; PartitionKeyColumns : List < Column > ; ClusteringKeyColumns ? : List < ClusteringKeyColumn > ; BillingMode ? : BillingMode ; PointInTimeRecoveryEnabled ? : Value < boolean > ; Tags ? : List < ResourceTag > ; } export default class Table extends ResourceBase < TableProperties > { static BillingMode = BillingMode ; static Column = Column ; static ClusteringKeyColumn = ClusteringKeyColumn ; static ProvisionedThroughput = ProvisionedThroughput ; constructor ( properties ) { super ( 'AWS::Cassandra::Table' , properties ) ; } }