import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class PointInTimeRecoverySpecification { PointInTimeRecoveryEnabled ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ContributorInsightsSpecification { Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CapacityAutoScalingSettings { MinCapacity ! : Value < number > ; MaxCapacity ! : Value < number > ; SeedCapacity ? : Value < number > ; TargetTrackingScalingPolicyConfiguration ! : TargetTrackingScalingPolicyConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ReadProvisionedThroughputSettings { ReadCapacityUnits ? : Value < number > ; ReadCapacityAutoScalingSettings ? : CapacityAutoScalingSettings ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LocalSecondaryIndex { IndexName ! : Value < string > ; KeySchema ! : List < KeySchema > ; Projection ! : Projection ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetTrackingScalingPolicyConfiguration { DisableScaleIn ? : Value < boolean > ; ScaleInCooldown ? : Value < number > ; ScaleOutCooldown ? : Value < number > ; TargetValue ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ReplicaSpecification { Region ! : Value < string > ; GlobalSecondaryIndexes ? : List < ReplicaGlobalSecondaryIndexSpecification > ; ContributorInsightsSpecification ? : ContributorInsightsSpecification ; PointInTimeRecoverySpecification ? : PointInTimeRecoverySpecification ; SSESpecification ? : ReplicaSSESpecification ; Tags ? : List < ResourceTag > ; ReadProvisionedThroughputSettings ? : ReadProvisionedThroughputSettings ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GlobalSecondaryIndex { IndexName ! : Value < string > ; KeySchema ! : List < KeySchema > ; Projection ! : Projection ; WriteProvisionedThroughputSettings ? : WriteProvisionedThroughputSettings ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KeySchema { AttributeName ! : Value < string > ; KeyType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StreamSpecification { StreamViewType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Projection { NonKeyAttributes ? : List < Value < string > > ; ProjectionType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ReplicaGlobalSecondaryIndexSpecification { IndexName ! : Value < string > ; ContributorInsightsSpecification ? : ContributorInsightsSpecification ; ReadProvisionedThroughputSettings ? : ReadProvisionedThroughputSettings ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AttributeDefinition { AttributeName ! : Value < string > ; AttributeType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SSESpecification { SSEEnabled ! : Value < boolean > ; SSEType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class WriteProvisionedThroughputSettings { WriteCapacityAutoScalingSettings ? : CapacityAutoScalingSettings ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TimeToLiveSpecification { AttributeName ? : Value < string > ; Enabled ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ReplicaSSESpecification { KMSMasterKeyId ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface GlobalTableProperties { AttributeDefinitions : List < AttributeDefinition > ; BillingMode ? : Value < string > ; GlobalSecondaryIndexes ? : List < GlobalSecondaryIndex > ; KeySchema : List < KeySchema > ; LocalSecondaryIndexes ? : List < LocalSecondaryIndex > ; WriteProvisionedThroughputSettings ? : WriteProvisionedThroughputSettings ; Replicas : List < ReplicaSpecification > ; SSESpecification ? : SSESpecification ; StreamSpecification ? : StreamSpecification ; TableName ? : Value < string > ; TimeToLiveSpecification ? : TimeToLiveSpecification ; } export default class GlobalTable extends ResourceBase < GlobalTableProperties > { static PointInTimeRecoverySpecification = PointInTimeRecoverySpecification ; static ContributorInsightsSpecification = ContributorInsightsSpecification ; static CapacityAutoScalingSettings = CapacityAutoScalingSettings ; static ReadProvisionedThroughputSettings = ReadProvisionedThroughputSettings ; static LocalSecondaryIndex = LocalSecondaryIndex ; static TargetTrackingScalingPolicyConfiguration = TargetTrackingScalingPolicyConfiguration ; static ReplicaSpecification = ReplicaSpecification ; static GlobalSecondaryIndex = GlobalSecondaryIndex ; static KeySchema = KeySchema ; static StreamSpecification = StreamSpecification ; static Projection = Projection ; static ReplicaGlobalSecondaryIndexSpecification = ReplicaGlobalSecondaryIndexSpecification ; static AttributeDefinition = AttributeDefinition ; static SSESpecification = SSESpecification ; static WriteProvisionedThroughputSettings = WriteProvisionedThroughputSettings ; static TimeToLiveSpecification = TimeToLiveSpecification ; static ReplicaSSESpecification = ReplicaSSESpecification ; constructor ( properties ) { super ( 'AWS::DynamoDB::GlobalTable' , properties ) ; } }