import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class LocalSecondaryIndex { IndexName ! : Value < string > ; KeySchema ! : List < KeySchema > ; Projection ! : Projection ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PointInTimeRecoverySpecification { PointInTimeRecoveryEnabled ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KinesisStreamSpecification { StreamArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AttributeDefinition { AttributeName ! : Value < string > ; AttributeType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GlobalSecondaryIndex { ContributorInsightsSpecification ? : ContributorInsightsSpecification ; IndexName ! : Value < string > ; KeySchema ! : List < KeySchema > ; Projection ! : Projection ; ProvisionedThroughput ? : ProvisionedThroughput ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContributorInsightsSpecification { Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KeySchema { AttributeName ! : Value < string > ; KeyType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SSESpecification { KMSMasterKeyId ? : Value < string > ; SSEEnabled ! : Value < boolean > ; SSEType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TimeToLiveSpecification { AttributeName ! : Value < string > ; Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ProvisionedThroughput { ReadCapacityUnits ! : Value < number > ; WriteCapacityUnits ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Projection { NonKeyAttributes ? : List < Value < string > > ; ProjectionType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StreamSpecification { StreamViewType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface TableProperties { AttributeDefinitions ? : List < AttributeDefinition > ; BillingMode ? : Value < string > ; ContributorInsightsSpecification ? : ContributorInsightsSpecification ; GlobalSecondaryIndexes ? : List < GlobalSecondaryIndex > ; KeySchema : List < KeySchema > ; KinesisStreamSpecification ? : KinesisStreamSpecification ; LocalSecondaryIndexes ? : List < LocalSecondaryIndex > ; PointInTimeRecoverySpecification ? : PointInTimeRecoverySpecification ; ProvisionedThroughput ? : ProvisionedThroughput ; SSESpecification ? : SSESpecification ; StreamSpecification ? : StreamSpecification ; TableName ? : Value < string > ; Tags ? : List < ResourceTag > ; TimeToLiveSpecification ? : TimeToLiveSpecification ; } export default class Table extends ResourceBase < TableProperties > { static LocalSecondaryIndex = LocalSecondaryIndex ; static PointInTimeRecoverySpecification = PointInTimeRecoverySpecification ; static KinesisStreamSpecification = KinesisStreamSpecification ; static AttributeDefinition = AttributeDefinition ; static GlobalSecondaryIndex = GlobalSecondaryIndex ; static ContributorInsightsSpecification = ContributorInsightsSpecification ; static KeySchema = KeySchema ; static SSESpecification = SSESpecification ; static TimeToLiveSpecification = TimeToLiveSpecification ; static ProvisionedThroughput = ProvisionedThroughput ; static Projection = Projection ; static StreamSpecification = StreamSpecification ; constructor ( properties ) { super ( 'AWS::DynamoDB::Table' , properties ) ; } }