"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnTable=exports.CfnGlobalTable=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnGlobalTable extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_dynamodb.CfnGlobalTable",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::GlobalTable";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnGlobalTablePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnGlobalTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnGlobalTable(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnGlobalTable.CFN_RESOURCE_TYPE_NAME}static arnForGlobalTable(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_dynamodb_IGlobalTableRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForGlobalTable),error}return resource.globalTableRef.globalTableArn}_attributeDefinitions;_billingMode;_globalSecondaryIndexes;_globalTableSourceArn;_globalTableWitnesses;_keySchema;_localSecondaryIndexes;_multiRegionConsistency;_readOnDemandThroughputSettings;_readProvisionedThroughputSettings;_replicas;_sseSpecification;_streamSpecification;_tableName;_timeToLiveSpecification;_warmThroughput;_writeOnDemandThroughputSettings;_writeProvisionedThroughputSettings;cfnPropertyNames={attributeDefinitions:"AttributeDefinitions",billingMode:"BillingMode",globalSecondaryIndexes:"GlobalSecondaryIndexes",globalTableSourceArn:"GlobalTableSourceArn",globalTableWitnesses:"GlobalTableWitnesses",keySchema:"KeySchema",localSecondaryIndexes:"LocalSecondaryIndexes",multiRegionConsistency:"MultiRegionConsistency",readOnDemandThroughputSettings:"ReadOnDemandThroughputSettings",readProvisionedThroughputSettings:"ReadProvisionedThroughputSettings",replicas:"Replicas",sseSpecification:"SSESpecification",streamSpecification:"StreamSpecification",tableName:"TableName",timeToLiveSpecification:"TimeToLiveSpecification",warmThroughput:"WarmThroughput",writeOnDemandThroughputSettings:"WriteOnDemandThroughputSettings",writeProvisionedThroughputSettings:"WriteProvisionedThroughputSettings"};constructor(scope,id,props){super(scope,id,{type:CfnGlobalTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_dynamodb_CfnGlobalTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnGlobalTable),error}cdk().requireProperty(props,"replicas",this),this._attributeDefinitions=props.attributeDefinitions,this._billingMode=props.billingMode,this._globalSecondaryIndexes=props.globalSecondaryIndexes,this._globalTableSourceArn=props.globalTableSourceArn,this._globalTableWitnesses=props.globalTableWitnesses,this._keySchema=props.keySchema,this._localSecondaryIndexes=props.localSecondaryIndexes,this._multiRegionConsistency=props.multiRegionConsistency,this._readOnDemandThroughputSettings=props.readOnDemandThroughputSettings,this._readProvisionedThroughputSettings=props.readProvisionedThroughputSettings,this._replicas=props.replicas,this._sseSpecification=props.sseSpecification,this._streamSpecification=props.streamSpecification,this._tableName=props.tableName,this._timeToLiveSpecification=props.timeToLiveSpecification,this._warmThroughput=props.warmThroughput,this._writeOnDemandThroughputSettings=props.writeOnDemandThroughputSettings,this._writeProvisionedThroughputSettings=props.writeProvisionedThroughputSettings,this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::GlobalTable' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get globalTableRef(){return{tableName:this.ref,globalTableArn:this.attrArn}}get attributeDefinitions(){return this._attributeDefinitions}set attributeDefinitions(value){cdk().traceProperty(this.node,"AttributeDefinitions"),this._attributeDefinitions=value}get billingMode(){return this._billingMode}set billingMode(value){cdk().traceProperty(this.node,"BillingMode"),this._billingMode=value}get globalSecondaryIndexes(){return this._globalSecondaryIndexes}set globalSecondaryIndexes(value){cdk().traceProperty(this.node,"GlobalSecondaryIndexes"),this._globalSecondaryIndexes=value}get globalTableSourceArn(){return this._globalTableSourceArn}set globalTableSourceArn(value){cdk().traceProperty(this.node,"GlobalTableSourceArn"),this._globalTableSourceArn=value}get globalTableWitnesses(){return this._globalTableWitnesses}set globalTableWitnesses(value){cdk().traceProperty(this.node,"GlobalTableWitnesses"),this._globalTableWitnesses=value}get keySchema(){return this._keySchema}set keySchema(value){cdk().traceProperty(this.node,"KeySchema"),this._keySchema=value}get localSecondaryIndexes(){return this._localSecondaryIndexes}set localSecondaryIndexes(value){cdk().traceProperty(this.node,"LocalSecondaryIndexes"),this._localSecondaryIndexes=value}get multiRegionConsistency(){return this._multiRegionConsistency}set multiRegionConsistency(value){cdk().traceProperty(this.node,"MultiRegionConsistency"),this._multiRegionConsistency=value}get readOnDemandThroughputSettings(){return this._readOnDemandThroughputSettings}set readOnDemandThroughputSettings(value){cdk().traceProperty(this.node,"ReadOnDemandThroughputSettings"),this._readOnDemandThroughputSettings=value}get readProvisionedThroughputSettings(){return this._readProvisionedThroughputSettings}set readProvisionedThroughputSettings(value){cdk().traceProperty(this.node,"ReadProvisionedThroughputSettings"),this._readProvisionedThroughputSettings=value}get replicas(){return this._replicas}set replicas(value){cdk().traceProperty(this.node,"Replicas"),this._replicas=value}get sseSpecification(){return this._sseSpecification}set sseSpecification(value){cdk().traceProperty(this.node,"SSESpecification"),this._sseSpecification=value}get streamSpecification(){return this._streamSpecification}set streamSpecification(value){cdk().traceProperty(this.node,"StreamSpecification"),this._streamSpecification=value}get tableName(){return this._tableName}set tableName(value){cdk().traceProperty(this.node,"TableName"),this._tableName=value}get timeToLiveSpecification(){return this._timeToLiveSpecification}set timeToLiveSpecification(value){cdk().traceProperty(this.node,"TimeToLiveSpecification"),this._timeToLiveSpecification=value}get warmThroughput(){return this._warmThroughput}set warmThroughput(value){cdk().traceProperty(this.node,"WarmThroughput"),this._warmThroughput=value}get writeOnDemandThroughputSettings(){return this._writeOnDemandThroughputSettings}set writeOnDemandThroughputSettings(value){cdk().traceProperty(this.node,"WriteOnDemandThroughputSettings"),this._writeOnDemandThroughputSettings=value}get writeProvisionedThroughputSettings(){return this._writeProvisionedThroughputSettings}set writeProvisionedThroughputSettings(value){cdk().traceProperty(this.node,"WriteProvisionedThroughputSettings"),this._writeProvisionedThroughputSettings=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStreamArn(){return cdk().Token.asString(this.getAtt("StreamArn",cdk().ResolutionTypeHint.STRING))}get attrTableId(){return cdk().Token.asString(this.getAtt("TableId",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{attributeDefinitions:this._attributeDefinitions,billingMode:this._billingMode,globalSecondaryIndexes:this._globalSecondaryIndexes,globalTableSourceArn:this._globalTableSourceArn,globalTableWitnesses:this._globalTableWitnesses,keySchema:this._keySchema,localSecondaryIndexes:this._localSecondaryIndexes,multiRegionConsistency:this._multiRegionConsistency,readOnDemandThroughputSettings:this._readOnDemandThroughputSettings,readProvisionedThroughputSettings:this._readProvisionedThroughputSettings,replicas:this._replicas,sseSpecification:this._sseSpecification,streamSpecification:this._streamSpecification,tableName:this._tableName,timeToLiveSpecification:this._timeToLiveSpecification,warmThroughput:this._warmThroughput,writeOnDemandThroughputSettings:this._writeOnDemandThroughputSettings,writeProvisionedThroughputSettings:this._writeProvisionedThroughputSettings}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnGlobalTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnGlobalTablePropsToCloudFormation(props)}}exports.CfnGlobalTable=CfnGlobalTable;function CfnGlobalTableSSESpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("sseEnabled",cdk().requiredValidator)(properties.sseEnabled)),errors.collect(cdk().propertyValidator("sseEnabled",cdk().validateBoolean)(properties.sseEnabled)),errors.collect(cdk().propertyValidator("sseType",cdk().validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function convertCfnGlobalTableSSESpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableSSESpecificationPropertyValidator(properties).assertSuccess(),{SSEEnabled:cdk().booleanToCloudFormation(properties.sseEnabled),SSEType:cdk().stringToCloudFormation(properties.sseType)}):properties}function CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("sseEnabled","SSEEnabled",properties.SSEEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SSEEnabled):void 0),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse().FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableAttributeDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().requiredValidator)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeType",cdk().requiredValidator)(properties.attributeType)),errors.collect(cdk().propertyValidator("attributeType",cdk().validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function convertCfnGlobalTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableAttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),AttributeType:cdk().stringToCloudFormation(properties.attributeType)}):properties}function CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("attributeType","AttributeType",properties.AttributeType!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableStreamSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("streamViewType",cdk().requiredValidator)(properties.streamViewType)),errors.collect(cdk().propertyValidator("streamViewType",cdk().validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function convertCfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableStreamSpecificationPropertyValidator(properties).assertSuccess(),{StreamViewType:cdk().stringToCloudFormation(properties.streamViewType)}):properties}function CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("streamViewType","StreamViewType",properties.StreamViewType!=null?cfn_parse().FromCloudFormation.getString(properties.StreamViewType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableProjectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("nonKeyAttributes",cdk().listValidator(cdk().validateString))(properties.nonKeyAttributes)),errors.collect(cdk().propertyValidator("projectionType",cdk().validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function convertCfnGlobalTableProjectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk().listMapper(cdk().stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk().stringToCloudFormation(properties.projectionType)}):properties}function CfnGlobalTableProjectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse().FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableKeySchemaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().requiredValidator)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("keyType",cdk().requiredValidator)(properties.keyType)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function convertCfnGlobalTableKeySchemaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableKeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),KeyType:cdk().stringToCloudFormation(properties.keyType)}):properties}function CfnGlobalTableKeySchemaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("disableScaleIn",cdk().validateBoolean)(properties.disableScaleIn)),errors.collect(cdk().propertyValidator("scaleInCooldown",cdk().validateNumber)(properties.scaleInCooldown)),errors.collect(cdk().propertyValidator("scaleOutCooldown",cdk().validateNumber)(properties.scaleOutCooldown)),errors.collect(cdk().propertyValidator("targetValue",cdk().requiredValidator)(properties.targetValue)),errors.collect(cdk().propertyValidator("targetValue",cdk().validateNumber)(properties.targetValue)),errors.wrap('supplied properties not correct for "TargetTrackingScalingPolicyConfigurationProperty"')}function convertCfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyValidator(properties).assertSuccess(),{DisableScaleIn:cdk().booleanToCloudFormation(properties.disableScaleIn),ScaleInCooldown:cdk().numberToCloudFormation(properties.scaleInCooldown),ScaleOutCooldown:cdk().numberToCloudFormation(properties.scaleOutCooldown),TargetValue:cdk().numberToCloudFormation(properties.targetValue)}):properties}function CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("disableScaleIn","DisableScaleIn",properties.DisableScaleIn!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DisableScaleIn):void 0),ret.addPropertyResult("scaleInCooldown","ScaleInCooldown",properties.ScaleInCooldown!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScaleInCooldown):void 0),ret.addPropertyResult("scaleOutCooldown","ScaleOutCooldown",properties.ScaleOutCooldown!=null?cfn_parse().FromCloudFormation.getNumber(properties.ScaleOutCooldown):void 0),ret.addPropertyResult("targetValue","TargetValue",properties.TargetValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.TargetValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableCapacityAutoScalingSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxCapacity",cdk().requiredValidator)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("maxCapacity",cdk().validateNumber)(properties.maxCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().requiredValidator)(properties.minCapacity)),errors.collect(cdk().propertyValidator("minCapacity",cdk().validateNumber)(properties.minCapacity)),errors.collect(cdk().propertyValidator("seedCapacity",cdk().validateNumber)(properties.seedCapacity)),errors.collect(cdk().propertyValidator("targetTrackingScalingPolicyConfiguration",cdk().requiredValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.collect(cdk().propertyValidator("targetTrackingScalingPolicyConfiguration",CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyValidator)(properties.targetTrackingScalingPolicyConfiguration)),errors.wrap('supplied properties not correct for "CapacityAutoScalingSettingsProperty"')}function convertCfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableCapacityAutoScalingSettingsPropertyValidator(properties).assertSuccess(),{MaxCapacity:cdk().numberToCloudFormation(properties.maxCapacity),MinCapacity:cdk().numberToCloudFormation(properties.minCapacity),SeedCapacity:cdk().numberToCloudFormation(properties.seedCapacity),TargetTrackingScalingPolicyConfiguration:convertCfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyToCloudFormation(properties.targetTrackingScalingPolicyConfiguration)}):properties}function CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxCapacity","MaxCapacity",properties.MaxCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxCapacity):void 0),ret.addPropertyResult("minCapacity","MinCapacity",properties.MinCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.MinCapacity):void 0),ret.addPropertyResult("seedCapacity","SeedCapacity",properties.SeedCapacity!=null?cfn_parse().FromCloudFormation.getNumber(properties.SeedCapacity):void 0),ret.addPropertyResult("targetTrackingScalingPolicyConfiguration","TargetTrackingScalingPolicyConfiguration",properties.TargetTrackingScalingPolicyConfiguration!=null?CfnGlobalTableTargetTrackingScalingPolicyConfigurationPropertyFromCloudFormation(properties.TargetTrackingScalingPolicyConfiguration):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableWriteProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("writeCapacityAutoScalingSettings",CfnGlobalTableCapacityAutoScalingSettingsPropertyValidator)(properties.writeCapacityAutoScalingSettings)),errors.wrap('supplied properties not correct for "WriteProvisionedThroughputSettingsProperty"')}function convertCfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableWriteProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{WriteCapacityAutoScalingSettings:convertCfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.writeCapacityAutoScalingSettings)}):properties}function CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("writeCapacityAutoScalingSettings","WriteCapacityAutoScalingSettings",properties.WriteCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.WriteCapacityAutoScalingSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableWarmThroughputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("readUnitsPerSecond",cdk().validateNumber)(properties.readUnitsPerSecond)),errors.collect(cdk().propertyValidator("writeUnitsPerSecond",cdk().validateNumber)(properties.writeUnitsPerSecond)),errors.wrap('supplied properties not correct for "WarmThroughputProperty"')}function convertCfnGlobalTableWarmThroughputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableWarmThroughputPropertyValidator(properties).assertSuccess(),{ReadUnitsPerSecond:cdk().numberToCloudFormation(properties.readUnitsPerSecond),WriteUnitsPerSecond:cdk().numberToCloudFormation(properties.writeUnitsPerSecond)}):properties}function CfnGlobalTableWarmThroughputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("readUnitsPerSecond","ReadUnitsPerSecond",properties.ReadUnitsPerSecond!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReadUnitsPerSecond):void 0),ret.addPropertyResult("writeUnitsPerSecond","WriteUnitsPerSecond",properties.WriteUnitsPerSecond!=null?cfn_parse().FromCloudFormation.getNumber(properties.WriteUnitsPerSecond):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("readCapacityUnits",cdk().validateNumber)(properties.readCapacityUnits)),errors.wrap('supplied properties not correct for "GlobalReadProvisionedThroughputSettingsProperty"')}function convertCfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{ReadCapacityUnits:cdk().numberToCloudFormation(properties.readCapacityUnits)}):properties}function CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",properties.ReadCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReadCapacityUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxReadRequestUnits",cdk().validateNumber)(properties.maxReadRequestUnits)),errors.wrap('supplied properties not correct for "ReadOnDemandThroughputSettingsProperty"')}function convertCfnGlobalTableReadOnDemandThroughputSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator(properties).assertSuccess(),{MaxReadRequestUnits:cdk().numberToCloudFormation(properties.maxReadRequestUnits)}):properties}function CfnGlobalTableReadOnDemandThroughputSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxReadRequestUnits","MaxReadRequestUnits",properties.MaxReadRequestUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxReadRequestUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableWriteOnDemandThroughputSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxWriteRequestUnits",cdk().validateNumber)(properties.maxWriteRequestUnits)),errors.wrap('supplied properties not correct for "WriteOnDemandThroughputSettingsProperty"')}function convertCfnGlobalTableWriteOnDemandThroughputSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableWriteOnDemandThroughputSettingsPropertyValidator(properties).assertSuccess(),{MaxWriteRequestUnits:cdk().numberToCloudFormation(properties.maxWriteRequestUnits)}):properties}function CfnGlobalTableWriteOnDemandThroughputSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxWriteRequestUnits","MaxWriteRequestUnits",properties.MaxWriteRequestUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxWriteRequestUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableGlobalSecondaryIndexPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("indexName",cdk().requiredValidator)(properties.indexName)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("keySchema",cdk().requiredValidator)(properties.keySchema)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnGlobalTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("projection",cdk().requiredValidator)(properties.projection)),errors.collect(cdk().propertyValidator("projection",CfnGlobalTableProjectionPropertyValidator)(properties.projection)),errors.collect(cdk().propertyValidator("readOnDemandThroughputSettings",CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator)(properties.readOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("readProvisionedThroughputSettings",CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.collect(cdk().propertyValidator("warmThroughput",CfnGlobalTableWarmThroughputPropertyValidator)(properties.warmThroughput)),errors.collect(cdk().propertyValidator("writeOnDemandThroughputSettings",CfnGlobalTableWriteOnDemandThroughputSettingsPropertyValidator)(properties.writeOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTableWriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function convertCfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableGlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk().stringToCloudFormation(properties.indexName),KeySchema:cdk().listMapper(convertCfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:convertCfnGlobalTableProjectionPropertyToCloudFormation(properties.projection),ReadOnDemandThroughputSettings:convertCfnGlobalTableReadOnDemandThroughputSettingsPropertyToCloudFormation(properties.readOnDemandThroughputSettings),ReadProvisionedThroughputSettings:convertCfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings),WarmThroughput:convertCfnGlobalTableWarmThroughputPropertyToCloudFormation(properties.warmThroughput),WriteOnDemandThroughputSettings:convertCfnGlobalTableWriteOnDemandThroughputSettingsPropertyToCloudFormation(properties.writeOnDemandThroughputSettings),WriteProvisionedThroughputSettings:convertCfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("projection","Projection",properties.Projection!=null?CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection):void 0),ret.addPropertyResult("readOnDemandThroughputSettings","ReadOnDemandThroughputSettings",properties.ReadOnDemandThroughputSettings!=null?CfnGlobalTableReadOnDemandThroughputSettingsPropertyFromCloudFormation(properties.ReadOnDemandThroughputSettings):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addPropertyResult("warmThroughput","WarmThroughput",properties.WarmThroughput!=null?CfnGlobalTableWarmThroughputPropertyFromCloudFormation(properties.WarmThroughput):void 0),ret.addPropertyResult("writeOnDemandThroughputSettings","WriteOnDemandThroughputSettings",properties.WriteOnDemandThroughputSettings!=null?CfnGlobalTableWriteOnDemandThroughputSettingsPropertyFromCloudFormation(properties.WriteOnDemandThroughputSettings):void 0),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableLocalSecondaryIndexPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("indexName",cdk().requiredValidator)(properties.indexName)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("keySchema",cdk().requiredValidator)(properties.keySchema)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnGlobalTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("projection",cdk().requiredValidator)(properties.projection)),errors.collect(cdk().propertyValidator("projection",CfnGlobalTableProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function convertCfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableLocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk().stringToCloudFormation(properties.indexName),KeySchema:cdk().listMapper(convertCfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:convertCfnGlobalTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("projection","Projection",properties.Projection!=null?CfnGlobalTableProjectionPropertyFromCloudFormation(properties.Projection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReplicaSSESpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("kmsMasterKeyId",cdk().requiredValidator)(properties.kmsMasterKeyId)),errors.collect(cdk().propertyValidator("kmsMasterKeyId",cdk().validateString)(properties.kmsMasterKeyId)),errors.wrap('supplied properties not correct for "ReplicaSSESpecificationProperty"')}function convertCfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReplicaSSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk().stringToCloudFormation(properties.kmsMasterKeyId)}):properties}function CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",properties.KMSMasterKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KMSMasterKeyId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableKinesisStreamSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("approximateCreationDateTimePrecision",cdk().validateString)(properties.approximateCreationDateTimePrecision)),errors.collect(cdk().propertyValidator("streamArn",cdk().requiredValidator)(properties.streamArn)),errors.collect(cdk().propertyValidator("streamArn",cdk().validateString)(properties.streamArn)),errors.wrap('supplied properties not correct for "KinesisStreamSpecificationProperty"')}function convertCfnGlobalTableKinesisStreamSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableKinesisStreamSpecificationPropertyValidator(properties).assertSuccess(),{ApproximateCreationDateTimePrecision:cdk().stringToCloudFormation(properties.approximateCreationDateTimePrecision),StreamArn:cdk().stringToCloudFormation(properties.streamArn)}):properties}function CfnGlobalTableKinesisStreamSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("approximateCreationDateTimePrecision","ApproximateCreationDateTimePrecision",properties.ApproximateCreationDateTimePrecision!=null?cfn_parse().FromCloudFormation.getString(properties.ApproximateCreationDateTimePrecision):void 0),ret.addPropertyResult("streamArn","StreamArn",properties.StreamArn!=null?cfn_parse().FromCloudFormation.getString(properties.StreamArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableContributorInsightsSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("mode",cdk().validateString)(properties.mode)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function convertCfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),Mode:cdk().stringToCloudFormation(properties.mode)}):properties}function CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReadProvisionedThroughputSettingsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("readCapacityAutoScalingSettings",CfnGlobalTableCapacityAutoScalingSettingsPropertyValidator)(properties.readCapacityAutoScalingSettings)),errors.collect(cdk().propertyValidator("readCapacityUnits",cdk().validateNumber)(properties.readCapacityUnits)),errors.wrap('supplied properties not correct for "ReadProvisionedThroughputSettingsProperty"')}function convertCfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReadProvisionedThroughputSettingsPropertyValidator(properties).assertSuccess(),{ReadCapacityAutoScalingSettings:convertCfnGlobalTableCapacityAutoScalingSettingsPropertyToCloudFormation(properties.readCapacityAutoScalingSettings),ReadCapacityUnits:cdk().numberToCloudFormation(properties.readCapacityUnits)}):properties}function CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityAutoScalingSettings","ReadCapacityAutoScalingSettings",properties.ReadCapacityAutoScalingSettings!=null?CfnGlobalTableCapacityAutoScalingSettingsPropertyFromCloudFormation(properties.ReadCapacityAutoScalingSettings):void 0),ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",properties.ReadCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReadCapacityUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("contributorInsightsSpecification",CfnGlobalTableContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk().propertyValidator("indexName",cdk().requiredValidator)(properties.indexName)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("readOnDemandThroughputSettings",CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator)(properties.readOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("readProvisionedThroughputSettings",CfnGlobalTableReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "ReplicaGlobalSecondaryIndexSpecificationProperty"')}function convertCfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:convertCfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk().stringToCloudFormation(properties.indexName),ReadOnDemandThroughputSettings:convertCfnGlobalTableReadOnDemandThroughputSettingsPropertyToCloudFormation(properties.readOnDemandThroughputSettings),ReadProvisionedThroughputSettings:convertCfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings)}):properties}function CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("readOnDemandThroughputSettings","ReadOnDemandThroughputSettings",properties.ReadOnDemandThroughputSettings!=null?CfnGlobalTableReadOnDemandThroughputSettingsPropertyFromCloudFormation(properties.ReadOnDemandThroughputSettings):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTablePointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("pointInTimeRecoveryEnabled",cdk().validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.collect(cdk().propertyValidator("recoveryPeriodInDays",cdk().validateNumber)(properties.recoveryPeriodInDays)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function convertCfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTablePointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk().booleanToCloudFormation(properties.pointInTimeRecoveryEnabled),RecoveryPeriodInDays:cdk().numberToCloudFormation(properties.recoveryPeriodInDays)}):properties}function CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addPropertyResult("recoveryPeriodInDays","RecoveryPeriodInDays",properties.RecoveryPeriodInDays!=null?cfn_parse().FromCloudFormation.getNumber(properties.RecoveryPeriodInDays):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableResourcePolicyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("policyDocument",cdk().requiredValidator)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateObject)(properties.policyDocument)),errors.wrap('supplied properties not correct for "ResourcePolicyProperty"')}function convertCfnGlobalTableResourcePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableResourcePolicyPropertyValidator(properties).assertSuccess(),{PolicyDocument:cdk().objectToCloudFormation(properties.policyDocument)}):properties}function CfnGlobalTableResourcePolicyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReplicaStreamSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("resourcePolicy",cdk().requiredValidator)(properties.resourcePolicy)),errors.collect(cdk().propertyValidator("resourcePolicy",CfnGlobalTableResourcePolicyPropertyValidator)(properties.resourcePolicy)),errors.wrap('supplied properties not correct for "ReplicaStreamSpecificationProperty"')}function convertCfnGlobalTableReplicaStreamSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReplicaStreamSpecificationPropertyValidator(properties).assertSuccess(),{ResourcePolicy:convertCfnGlobalTableResourcePolicyPropertyToCloudFormation(properties.resourcePolicy)}):properties}function CfnGlobalTableReplicaStreamSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("resourcePolicy","ResourcePolicy",properties.ResourcePolicy!=null?CfnGlobalTableResourcePolicyPropertyFromCloudFormation(properties.ResourcePolicy):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableReplicaSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("contributorInsightsSpecification",CfnGlobalTableContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk().propertyValidator("deletionProtectionEnabled",cdk().validateBoolean)(properties.deletionProtectionEnabled)),errors.collect(cdk().propertyValidator("globalSecondaryIndexes",cdk().listValidator(CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk().propertyValidator("globalTableSettingsReplicationMode",cdk().validateString)(properties.globalTableSettingsReplicationMode)),errors.collect(cdk().propertyValidator("kinesisStreamSpecification",CfnGlobalTableKinesisStreamSpecificationPropertyValidator)(properties.kinesisStreamSpecification)),errors.collect(cdk().propertyValidator("pointInTimeRecoverySpecification",CfnGlobalTablePointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk().propertyValidator("readOnDemandThroughputSettings",CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator)(properties.readOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("readProvisionedThroughputSettings",CfnGlobalTableReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.collect(cdk().propertyValidator("region",cdk().requiredValidator)(properties.region)),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.collect(cdk().propertyValidator("replicaStreamSpecification",CfnGlobalTableReplicaStreamSpecificationPropertyValidator)(properties.replicaStreamSpecification)),errors.collect(cdk().propertyValidator("resourcePolicy",CfnGlobalTableResourcePolicyPropertyValidator)(properties.resourcePolicy)),errors.collect(cdk().propertyValidator("sseSpecification",CfnGlobalTableReplicaSSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("tableClass",cdk().validateString)(properties.tableClass)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.wrap('supplied properties not correct for "ReplicaSpecificationProperty"')}function convertCfnGlobalTableReplicaSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableReplicaSpecificationPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:convertCfnGlobalTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),DeletionProtectionEnabled:cdk().booleanToCloudFormation(properties.deletionProtectionEnabled),GlobalSecondaryIndexes:cdk().listMapper(convertCfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyToCloudFormation)(properties.globalSecondaryIndexes),GlobalTableSettingsReplicationMode:cdk().stringToCloudFormation(properties.globalTableSettingsReplicationMode),KinesisStreamSpecification:convertCfnGlobalTableKinesisStreamSpecificationPropertyToCloudFormation(properties.kinesisStreamSpecification),PointInTimeRecoverySpecification:convertCfnGlobalTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ReadOnDemandThroughputSettings:convertCfnGlobalTableReadOnDemandThroughputSettingsPropertyToCloudFormation(properties.readOnDemandThroughputSettings),ReadProvisionedThroughputSettings:convertCfnGlobalTableReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings),Region:cdk().stringToCloudFormation(properties.region),ReplicaStreamSpecification:convertCfnGlobalTableReplicaStreamSpecificationPropertyToCloudFormation(properties.replicaStreamSpecification),ResourcePolicy:convertCfnGlobalTableResourcePolicyPropertyToCloudFormation(properties.resourcePolicy),SSESpecification:convertCfnGlobalTableReplicaSSESpecificationPropertyToCloudFormation(properties.sseSpecification),TableClass:cdk().stringToCloudFormation(properties.tableClass),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags)}):properties}function CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnGlobalTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("deletionProtectionEnabled","DeletionProtectionEnabled",properties.DeletionProtectionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeletionProtectionEnabled):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableReplicaGlobalSecondaryIndexSpecificationPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("globalTableSettingsReplicationMode","GlobalTableSettingsReplicationMode",properties.GlobalTableSettingsReplicationMode!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalTableSettingsReplicationMode):void 0),ret.addPropertyResult("kinesisStreamSpecification","KinesisStreamSpecification",properties.KinesisStreamSpecification!=null?CfnGlobalTableKinesisStreamSpecificationPropertyFromCloudFormation(properties.KinesisStreamSpecification):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnGlobalTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("readOnDemandThroughputSettings","ReadOnDemandThroughputSettings",properties.ReadOnDemandThroughputSettings!=null?CfnGlobalTableReadOnDemandThroughputSettingsPropertyFromCloudFormation(properties.ReadOnDemandThroughputSettings):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("replicaStreamSpecification","ReplicaStreamSpecification",properties.ReplicaStreamSpecification!=null?CfnGlobalTableReplicaStreamSpecificationPropertyFromCloudFormation(properties.ReplicaStreamSpecification):void 0),ret.addPropertyResult("resourcePolicy","ResourcePolicy",properties.ResourcePolicy!=null?CfnGlobalTableResourcePolicyPropertyFromCloudFormation(properties.ResourcePolicy):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableReplicaSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse().FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableTimeToLiveSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function convertCfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableTimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTableGlobalTableWitnessPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("region",cdk().validateString)(properties.region)),errors.wrap('supplied properties not correct for "GlobalTableWitnessProperty"')}function convertCfnGlobalTableGlobalTableWitnessPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTableGlobalTableWitnessPropertyValidator(properties).assertSuccess(),{Region:cdk().stringToCloudFormation(properties.region)}):properties}function CfnGlobalTableGlobalTableWitnessPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnGlobalTablePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeDefinitions",cdk().listValidator(CfnGlobalTableAttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk().propertyValidator("billingMode",cdk().validateString)(properties.billingMode)),errors.collect(cdk().propertyValidator("globalSecondaryIndexes",cdk().listValidator(CfnGlobalTableGlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk().propertyValidator("globalTableSourceArn",cdk().validateString)(properties.globalTableSourceArn)),errors.collect(cdk().propertyValidator("globalTableWitnesses",cdk().listValidator(CfnGlobalTableGlobalTableWitnessPropertyValidator))(properties.globalTableWitnesses)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnGlobalTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("localSecondaryIndexes",cdk().listValidator(CfnGlobalTableLocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk().propertyValidator("multiRegionConsistency",cdk().validateString)(properties.multiRegionConsistency)),errors.collect(cdk().propertyValidator("readOnDemandThroughputSettings",CfnGlobalTableReadOnDemandThroughputSettingsPropertyValidator)(properties.readOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("readProvisionedThroughputSettings",CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyValidator)(properties.readProvisionedThroughputSettings)),errors.collect(cdk().propertyValidator("replicas",cdk().requiredValidator)(properties.replicas)),errors.collect(cdk().propertyValidator("replicas",cdk().listValidator(CfnGlobalTableReplicaSpecificationPropertyValidator))(properties.replicas)),errors.collect(cdk().propertyValidator("sseSpecification",CfnGlobalTableSSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("streamSpecification",CfnGlobalTableStreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.collect(cdk().propertyValidator("timeToLiveSpecification",CfnGlobalTableTimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.collect(cdk().propertyValidator("warmThroughput",CfnGlobalTableWarmThroughputPropertyValidator)(properties.warmThroughput)),errors.collect(cdk().propertyValidator("writeOnDemandThroughputSettings",CfnGlobalTableWriteOnDemandThroughputSettingsPropertyValidator)(properties.writeOnDemandThroughputSettings)),errors.collect(cdk().propertyValidator("writeProvisionedThroughputSettings",CfnGlobalTableWriteProvisionedThroughputSettingsPropertyValidator)(properties.writeProvisionedThroughputSettings)),errors.wrap('supplied properties not correct for "CfnGlobalTableProps"')}function convertCfnGlobalTablePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnGlobalTablePropsValidator(properties).assertSuccess(),{AttributeDefinitions:cdk().listMapper(convertCfnGlobalTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),BillingMode:cdk().stringToCloudFormation(properties.billingMode),GlobalSecondaryIndexes:cdk().listMapper(convertCfnGlobalTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),GlobalTableSourceArn:cdk().stringToCloudFormation(properties.globalTableSourceArn),GlobalTableWitnesses:cdk().listMapper(convertCfnGlobalTableGlobalTableWitnessPropertyToCloudFormation)(properties.globalTableWitnesses),KeySchema:cdk().listMapper(convertCfnGlobalTableKeySchemaPropertyToCloudFormation)(properties.keySchema),LocalSecondaryIndexes:cdk().listMapper(convertCfnGlobalTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),MultiRegionConsistency:cdk().stringToCloudFormation(properties.multiRegionConsistency),ReadOnDemandThroughputSettings:convertCfnGlobalTableReadOnDemandThroughputSettingsPropertyToCloudFormation(properties.readOnDemandThroughputSettings),ReadProvisionedThroughputSettings:convertCfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyToCloudFormation(properties.readProvisionedThroughputSettings),Replicas:cdk().listMapper(convertCfnGlobalTableReplicaSpecificationPropertyToCloudFormation)(properties.replicas),SSESpecification:convertCfnGlobalTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:convertCfnGlobalTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableName:cdk().stringToCloudFormation(properties.tableName),TimeToLiveSpecification:convertCfnGlobalTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification),WarmThroughput:convertCfnGlobalTableWarmThroughputPropertyToCloudFormation(properties.warmThroughput),WriteOnDemandThroughputSettings:convertCfnGlobalTableWriteOnDemandThroughputSettingsPropertyToCloudFormation(properties.writeOnDemandThroughputSettings),WriteProvisionedThroughputSettings:convertCfnGlobalTableWriteProvisionedThroughputSettingsPropertyToCloudFormation(properties.writeProvisionedThroughputSettings)}):properties}function CfnGlobalTablePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",properties.AttributeDefinitions!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions):void 0),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse().FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("globalTableSourceArn","GlobalTableSourceArn",properties.GlobalTableSourceArn!=null?cfn_parse().FromCloudFormation.getString(properties.GlobalTableSourceArn):void 0),ret.addPropertyResult("globalTableWitnesses","GlobalTableWitnesses",properties.GlobalTableWitnesses!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableGlobalTableWitnessPropertyFromCloudFormation)(properties.GlobalTableWitnesses):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("multiRegionConsistency","MultiRegionConsistency",properties.MultiRegionConsistency!=null?cfn_parse().FromCloudFormation.getString(properties.MultiRegionConsistency):void 0),ret.addPropertyResult("readOnDemandThroughputSettings","ReadOnDemandThroughputSettings",properties.ReadOnDemandThroughputSettings!=null?CfnGlobalTableReadOnDemandThroughputSettingsPropertyFromCloudFormation(properties.ReadOnDemandThroughputSettings):void 0),ret.addPropertyResult("readProvisionedThroughputSettings","ReadProvisionedThroughputSettings",properties.ReadProvisionedThroughputSettings!=null?CfnGlobalTableGlobalReadProvisionedThroughputSettingsPropertyFromCloudFormation(properties.ReadProvisionedThroughputSettings):void 0),ret.addPropertyResult("replicas","Replicas",properties.Replicas!=null?cfn_parse().FromCloudFormation.getArray(CfnGlobalTableReplicaSpecificationPropertyFromCloudFormation)(properties.Replicas):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnGlobalTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnGlobalTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnGlobalTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addPropertyResult("warmThroughput","WarmThroughput",properties.WarmThroughput!=null?CfnGlobalTableWarmThroughputPropertyFromCloudFormation(properties.WarmThroughput):void 0),ret.addPropertyResult("writeOnDemandThroughputSettings","WriteOnDemandThroughputSettings",properties.WriteOnDemandThroughputSettings!=null?CfnGlobalTableWriteOnDemandThroughputSettingsPropertyFromCloudFormation(properties.WriteOnDemandThroughputSettings):void 0),ret.addPropertyResult("writeProvisionedThroughputSettings","WriteProvisionedThroughputSettings",properties.WriteProvisionedThroughputSettings!=null?CfnGlobalTableWriteProvisionedThroughputSettingsPropertyFromCloudFormation(properties.WriteProvisionedThroughputSettings):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnTable extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_dynamodb.CfnTable",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::DynamoDB::Table";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnTablePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnTable(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnTable(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnTable.CFN_RESOURCE_TYPE_NAME}static fromTableArn(scope,id,arn){class Import extends cdk().Resource{tableRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}").parse(arn2);this.tableRef={tableName:variables.TableName,tableArn:arn2}}}return new Import(scope,id,arn)}static fromTableName(scope,id,tableName){class Import extends cdk().Resource{tableRef;constructor(scope2,id2,tableName2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:dynamodb:${Region}:${Account}:table/${TableName}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,TableName:tableName2});super(scope2,id2,{environmentFromArn:arn}),this.tableRef={tableName:tableName2,tableArn:arn}}}return new Import(scope,id,tableName)}static arnForTable(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_dynamodb_ITableRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForTable),error}return resource.tableRef.tableArn}_attributeDefinitions;_billingMode;_contributorInsightsSpecification;_deletionProtectionEnabled;_globalSecondaryIndexes;_importSourceSpecification;_keySchema;_kinesisStreamSpecification;_localSecondaryIndexes;_onDemandThroughput;_pointInTimeRecoverySpecification;_provisionedThroughput;_resourcePolicy;_sseSpecification;_streamSpecification;_tableClass;_tableName;tags;_tagsRaw;_timeToLiveSpecification;_warmThroughput;cfnPropertyNames={attributeDefinitions:"AttributeDefinitions",billingMode:"BillingMode",contributorInsightsSpecification:"ContributorInsightsSpecification",deletionProtectionEnabled:"DeletionProtectionEnabled",globalSecondaryIndexes:"GlobalSecondaryIndexes",importSourceSpecification:"ImportSourceSpecification",keySchema:"KeySchema",kinesisStreamSpecification:"KinesisStreamSpecification",localSecondaryIndexes:"LocalSecondaryIndexes",onDemandThroughput:"OnDemandThroughput",pointInTimeRecoverySpecification:"PointInTimeRecoverySpecification",provisionedThroughput:"ProvisionedThroughput",resourcePolicy:"ResourcePolicy",sseSpecification:"SSESpecification",streamSpecification:"StreamSpecification",tableClass:"TableClass",tableName:"TableName",tags:"Tags",timeToLiveSpecification:"TimeToLiveSpecification",warmThroughput:"WarmThroughput"};constructor(scope,id,props){super(scope,id,{type:CfnTable.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_dynamodb_CfnTableProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnTable),error}cdk().requireProperty(props,"keySchema",this),this._attributeDefinitions=props.attributeDefinitions,this._billingMode=props.billingMode,this._contributorInsightsSpecification=props.contributorInsightsSpecification,this._deletionProtectionEnabled=props.deletionProtectionEnabled,this._globalSecondaryIndexes=props.globalSecondaryIndexes,this._importSourceSpecification=props.importSourceSpecification,this._keySchema=props.keySchema,this._kinesisStreamSpecification=props.kinesisStreamSpecification,this._localSecondaryIndexes=props.localSecondaryIndexes,this._onDemandThroughput=props.onDemandThroughput,this._pointInTimeRecoverySpecification=props.pointInTimeRecoverySpecification,this._provisionedThroughput=props.provisionedThroughput,this._resourcePolicy=props.resourcePolicy,this._sseSpecification=props.sseSpecification,this._streamSpecification=props.streamSpecification,this._tableClass=props.tableClass,this._tableName=props.tableName,this.tags=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::DynamoDB::Table",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._timeToLiveSpecification=props.timeToLiveSpecification,this._warmThroughput=props.warmThroughput,this.node.scope!=null&&cdk().Resource.isResource(this.node.scope)&&this.node.addValidation({validate:()=>this.cfnOptions.deletionPolicy===void 0?["'AWS::DynamoDB::Table' is a stateful resource type, and you must specify a Removal Policy for it. Call 'resource.applyRemovalPolicy()'."]:[]})}get tableRef(){return{tableName:this.ref,tableArn:this.attrArn}}get attributeDefinitions(){return this._attributeDefinitions}set attributeDefinitions(value){cdk().traceProperty(this.node,"AttributeDefinitions"),this._attributeDefinitions=value}get billingMode(){return this._billingMode}set billingMode(value){cdk().traceProperty(this.node,"BillingMode"),this._billingMode=value}get contributorInsightsSpecification(){return this._contributorInsightsSpecification}set contributorInsightsSpecification(value){cdk().traceProperty(this.node,"ContributorInsightsSpecification"),this._contributorInsightsSpecification=value}get deletionProtectionEnabled(){return this._deletionProtectionEnabled}set deletionProtectionEnabled(value){cdk().traceProperty(this.node,"DeletionProtectionEnabled"),this._deletionProtectionEnabled=value}get globalSecondaryIndexes(){return this._globalSecondaryIndexes}set globalSecondaryIndexes(value){cdk().traceProperty(this.node,"GlobalSecondaryIndexes"),this._globalSecondaryIndexes=value}get importSourceSpecification(){return this._importSourceSpecification}set importSourceSpecification(value){cdk().traceProperty(this.node,"ImportSourceSpecification"),this._importSourceSpecification=value}get keySchema(){return this._keySchema}set keySchema(value){cdk().traceProperty(this.node,"KeySchema"),this._keySchema=value}get kinesisStreamSpecification(){return this._kinesisStreamSpecification}set kinesisStreamSpecification(value){cdk().traceProperty(this.node,"KinesisStreamSpecification"),this._kinesisStreamSpecification=value}get localSecondaryIndexes(){return this._localSecondaryIndexes}set localSecondaryIndexes(value){cdk().traceProperty(this.node,"LocalSecondaryIndexes"),this._localSecondaryIndexes=value}get onDemandThroughput(){return this._onDemandThroughput}set onDemandThroughput(value){cdk().traceProperty(this.node,"OnDemandThroughput"),this._onDemandThroughput=value}get pointInTimeRecoverySpecification(){return this._pointInTimeRecoverySpecification}set pointInTimeRecoverySpecification(value){cdk().traceProperty(this.node,"PointInTimeRecoverySpecification"),this._pointInTimeRecoverySpecification=value}get provisionedThroughput(){return this._provisionedThroughput}set provisionedThroughput(value){cdk().traceProperty(this.node,"ProvisionedThroughput"),this._provisionedThroughput=value}get resourcePolicy(){return this._resourcePolicy}set resourcePolicy(value){cdk().traceProperty(this.node,"ResourcePolicy"),this._resourcePolicy=value}get sseSpecification(){return this._sseSpecification}set sseSpecification(value){cdk().traceProperty(this.node,"SSESpecification"),this._sseSpecification=value}get streamSpecification(){return this._streamSpecification}set streamSpecification(value){cdk().traceProperty(this.node,"StreamSpecification"),this._streamSpecification=value}get tableClass(){return this._tableClass}set tableClass(value){cdk().traceProperty(this.node,"TableClass"),this._tableClass=value}get tableName(){return this._tableName}set tableName(value){cdk().traceProperty(this.node,"TableName"),this._tableName=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get timeToLiveSpecification(){return this._timeToLiveSpecification}set timeToLiveSpecification(value){cdk().traceProperty(this.node,"TimeToLiveSpecification"),this._timeToLiveSpecification=value}get warmThroughput(){return this._warmThroughput}set warmThroughput(value){cdk().traceProperty(this.node,"WarmThroughput"),this._warmThroughput=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrStreamArn(){return cdk().Token.asString(this.getAtt("StreamArn",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{attributeDefinitions:this._attributeDefinitions,billingMode:this._billingMode,contributorInsightsSpecification:this._contributorInsightsSpecification,deletionProtectionEnabled:this._deletionProtectionEnabled,globalSecondaryIndexes:this._globalSecondaryIndexes,importSourceSpecification:this._importSourceSpecification,keySchema:this._keySchema,kinesisStreamSpecification:this._kinesisStreamSpecification,localSecondaryIndexes:this._localSecondaryIndexes,onDemandThroughput:this._onDemandThroughput,pointInTimeRecoverySpecification:this._pointInTimeRecoverySpecification,provisionedThroughput:this._provisionedThroughput,resourcePolicy:this._resourcePolicy,sseSpecification:this._sseSpecification,streamSpecification:this._streamSpecification,tableClass:this._tableClass,tableName:this._tableName,tags:this.tags.renderTags(),timeToLiveSpecification:this._timeToLiveSpecification,warmThroughput:this._warmThroughput}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnTable.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnTablePropsToCloudFormation(props)}}exports.CfnTable=CfnTable;function CfnTableSSESpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("kmsMasterKeyId",cdk().validateString)(properties.kmsMasterKeyId)),errors.collect(cdk().propertyValidator("sseEnabled",cdk().requiredValidator)(properties.sseEnabled)),errors.collect(cdk().propertyValidator("sseEnabled",cdk().validateBoolean)(properties.sseEnabled)),errors.collect(cdk().propertyValidator("sseType",cdk().validateString)(properties.sseType)),errors.wrap('supplied properties not correct for "SSESpecificationProperty"')}function convertCfnTableSSESpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableSSESpecificationPropertyValidator(properties).assertSuccess(),{KMSMasterKeyId:cdk().stringToCloudFormation(properties.kmsMasterKeyId),SSEEnabled:cdk().booleanToCloudFormation(properties.sseEnabled),SSEType:cdk().stringToCloudFormation(properties.sseType)}):properties}function CfnTableSSESpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("kmsMasterKeyId","KMSMasterKeyId",properties.KMSMasterKeyId!=null?cfn_parse().FromCloudFormation.getString(properties.KMSMasterKeyId):void 0),ret.addPropertyResult("sseEnabled","SSEEnabled",properties.SSEEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.SSEEnabled):void 0),ret.addPropertyResult("sseType","SSEType",properties.SSEType!=null?cfn_parse().FromCloudFormation.getString(properties.SSEType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableKinesisStreamSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("approximateCreationDateTimePrecision",cdk().validateString)(properties.approximateCreationDateTimePrecision)),errors.collect(cdk().propertyValidator("streamArn",cdk().requiredValidator)(properties.streamArn)),errors.collect(cdk().propertyValidator("streamArn",cdk().validateString)(properties.streamArn)),errors.wrap('supplied properties not correct for "KinesisStreamSpecificationProperty"')}function convertCfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableKinesisStreamSpecificationPropertyValidator(properties).assertSuccess(),{ApproximateCreationDateTimePrecision:cdk().stringToCloudFormation(properties.approximateCreationDateTimePrecision),StreamArn:cdk().stringToCloudFormation(properties.streamArn)}):properties}function CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("approximateCreationDateTimePrecision","ApproximateCreationDateTimePrecision",properties.ApproximateCreationDateTimePrecision!=null?cfn_parse().FromCloudFormation.getString(properties.ApproximateCreationDateTimePrecision):void 0),ret.addPropertyResult("streamArn","StreamArn",properties.StreamArn!=null?cfn_parse().FromCloudFormation.getString(properties.StreamArn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableResourcePolicyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("policyDocument",cdk().requiredValidator)(properties.policyDocument)),errors.collect(cdk().propertyValidator("policyDocument",cdk().validateObject)(properties.policyDocument)),errors.wrap('supplied properties not correct for "ResourcePolicyProperty"')}function convertCfnTableResourcePolicyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableResourcePolicyPropertyValidator(properties).assertSuccess(),{PolicyDocument:cdk().objectToCloudFormation(properties.policyDocument)}):properties}function CfnTableResourcePolicyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("policyDocument","PolicyDocument",properties.PolicyDocument!=null?cfn_parse().FromCloudFormation.getAny(properties.PolicyDocument):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableStreamSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("resourcePolicy",CfnTableResourcePolicyPropertyValidator)(properties.resourcePolicy)),errors.collect(cdk().propertyValidator("streamViewType",cdk().requiredValidator)(properties.streamViewType)),errors.collect(cdk().propertyValidator("streamViewType",cdk().validateString)(properties.streamViewType)),errors.wrap('supplied properties not correct for "StreamSpecificationProperty"')}function convertCfnTableStreamSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableStreamSpecificationPropertyValidator(properties).assertSuccess(),{ResourcePolicy:convertCfnTableResourcePolicyPropertyToCloudFormation(properties.resourcePolicy),StreamViewType:cdk().stringToCloudFormation(properties.streamViewType)}):properties}function CfnTableStreamSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("resourcePolicy","ResourcePolicy",properties.ResourcePolicy!=null?CfnTableResourcePolicyPropertyFromCloudFormation(properties.ResourcePolicy):void 0),ret.addPropertyResult("streamViewType","StreamViewType",properties.StreamViewType!=null?cfn_parse().FromCloudFormation.getString(properties.StreamViewType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableContributorInsightsSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.collect(cdk().propertyValidator("mode",cdk().validateString)(properties.mode)),errors.wrap('supplied properties not correct for "ContributorInsightsSpecificationProperty"')}function convertCfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableContributorInsightsSpecificationPropertyValidator(properties).assertSuccess(),{Enabled:cdk().booleanToCloudFormation(properties.enabled),Mode:cdk().stringToCloudFormation(properties.mode)}):properties}function CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addPropertyResult("mode","Mode",properties.Mode!=null?cfn_parse().FromCloudFormation.getString(properties.Mode):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableS3BucketSourcePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("s3Bucket",cdk().requiredValidator)(properties.s3Bucket)),errors.collect(cdk().propertyValidator("s3Bucket",cdk().validateString)(properties.s3Bucket)),errors.collect(cdk().propertyValidator("s3BucketOwner",cdk().validateString)(properties.s3BucketOwner)),errors.collect(cdk().propertyValidator("s3KeyPrefix",cdk().validateString)(properties.s3KeyPrefix)),errors.wrap('supplied properties not correct for "S3BucketSourceProperty"')}function convertCfnTableS3BucketSourcePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableS3BucketSourcePropertyValidator(properties).assertSuccess(),{S3Bucket:cdk().stringToCloudFormation(properties.s3Bucket),S3BucketOwner:cdk().stringToCloudFormation(properties.s3BucketOwner),S3KeyPrefix:cdk().stringToCloudFormation(properties.s3KeyPrefix)}):properties}function CfnTableS3BucketSourcePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("s3Bucket","S3Bucket",properties.S3Bucket!=null?cfn_parse().FromCloudFormation.getString(properties.S3Bucket):void 0),ret.addPropertyResult("s3BucketOwner","S3BucketOwner",properties.S3BucketOwner!=null?cfn_parse().FromCloudFormation.getString(properties.S3BucketOwner):void 0),ret.addPropertyResult("s3KeyPrefix","S3KeyPrefix",properties.S3KeyPrefix!=null?cfn_parse().FromCloudFormation.getString(properties.S3KeyPrefix):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableCsvPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("delimiter",cdk().validateString)(properties.delimiter)),errors.collect(cdk().propertyValidator("headerList",cdk().listValidator(cdk().validateString))(properties.headerList)),errors.wrap('supplied properties not correct for "CsvProperty"')}function convertCfnTableCsvPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableCsvPropertyValidator(properties).assertSuccess(),{Delimiter:cdk().stringToCloudFormation(properties.delimiter),HeaderList:cdk().listMapper(cdk().stringToCloudFormation)(properties.headerList)}):properties}function CfnTableCsvPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("delimiter","Delimiter",properties.Delimiter!=null?cfn_parse().FromCloudFormation.getString(properties.Delimiter):void 0),ret.addPropertyResult("headerList","HeaderList",properties.HeaderList!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.HeaderList):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableInputFormatOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("csv",CfnTableCsvPropertyValidator)(properties.csv)),errors.wrap('supplied properties not correct for "InputFormatOptionsProperty"')}function convertCfnTableInputFormatOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableInputFormatOptionsPropertyValidator(properties).assertSuccess(),{Csv:convertCfnTableCsvPropertyToCloudFormation(properties.csv)}):properties}function CfnTableInputFormatOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("csv","Csv",properties.Csv!=null?CfnTableCsvPropertyFromCloudFormation(properties.Csv):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableImportSourceSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("inputCompressionType",cdk().validateString)(properties.inputCompressionType)),errors.collect(cdk().propertyValidator("inputFormat",cdk().requiredValidator)(properties.inputFormat)),errors.collect(cdk().propertyValidator("inputFormat",cdk().validateString)(properties.inputFormat)),errors.collect(cdk().propertyValidator("inputFormatOptions",CfnTableInputFormatOptionsPropertyValidator)(properties.inputFormatOptions)),errors.collect(cdk().propertyValidator("s3BucketSource",cdk().requiredValidator)(properties.s3BucketSource)),errors.collect(cdk().propertyValidator("s3BucketSource",CfnTableS3BucketSourcePropertyValidator)(properties.s3BucketSource)),errors.wrap('supplied properties not correct for "ImportSourceSpecificationProperty"')}function convertCfnTableImportSourceSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableImportSourceSpecificationPropertyValidator(properties).assertSuccess(),{InputCompressionType:cdk().stringToCloudFormation(properties.inputCompressionType),InputFormat:cdk().stringToCloudFormation(properties.inputFormat),InputFormatOptions:convertCfnTableInputFormatOptionsPropertyToCloudFormation(properties.inputFormatOptions),S3BucketSource:convertCfnTableS3BucketSourcePropertyToCloudFormation(properties.s3BucketSource)}):properties}function CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("inputCompressionType","InputCompressionType",properties.InputCompressionType!=null?cfn_parse().FromCloudFormation.getString(properties.InputCompressionType):void 0),ret.addPropertyResult("inputFormat","InputFormat",properties.InputFormat!=null?cfn_parse().FromCloudFormation.getString(properties.InputFormat):void 0),ret.addPropertyResult("inputFormatOptions","InputFormatOptions",properties.InputFormatOptions!=null?CfnTableInputFormatOptionsPropertyFromCloudFormation(properties.InputFormatOptions):void 0),ret.addPropertyResult("s3BucketSource","S3BucketSource",properties.S3BucketSource!=null?CfnTableS3BucketSourcePropertyFromCloudFormation(properties.S3BucketSource):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTablePointInTimeRecoverySpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("pointInTimeRecoveryEnabled",cdk().validateBoolean)(properties.pointInTimeRecoveryEnabled)),errors.collect(cdk().propertyValidator("recoveryPeriodInDays",cdk().validateNumber)(properties.recoveryPeriodInDays)),errors.wrap('supplied properties not correct for "PointInTimeRecoverySpecificationProperty"')}function convertCfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTablePointInTimeRecoverySpecificationPropertyValidator(properties).assertSuccess(),{PointInTimeRecoveryEnabled:cdk().booleanToCloudFormation(properties.pointInTimeRecoveryEnabled),RecoveryPeriodInDays:cdk().numberToCloudFormation(properties.recoveryPeriodInDays)}):properties}function CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("pointInTimeRecoveryEnabled","PointInTimeRecoveryEnabled",properties.PointInTimeRecoveryEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.PointInTimeRecoveryEnabled):void 0),ret.addPropertyResult("recoveryPeriodInDays","RecoveryPeriodInDays",properties.RecoveryPeriodInDays!=null?cfn_parse().FromCloudFormation.getNumber(properties.RecoveryPeriodInDays):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableProvisionedThroughputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("readCapacityUnits",cdk().requiredValidator)(properties.readCapacityUnits)),errors.collect(cdk().propertyValidator("readCapacityUnits",cdk().validateNumber)(properties.readCapacityUnits)),errors.collect(cdk().propertyValidator("writeCapacityUnits",cdk().requiredValidator)(properties.writeCapacityUnits)),errors.collect(cdk().propertyValidator("writeCapacityUnits",cdk().validateNumber)(properties.writeCapacityUnits)),errors.wrap('supplied properties not correct for "ProvisionedThroughputProperty"')}function convertCfnTableProvisionedThroughputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableProvisionedThroughputPropertyValidator(properties).assertSuccess(),{ReadCapacityUnits:cdk().numberToCloudFormation(properties.readCapacityUnits),WriteCapacityUnits:cdk().numberToCloudFormation(properties.writeCapacityUnits)}):properties}function CfnTableProvisionedThroughputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("readCapacityUnits","ReadCapacityUnits",properties.ReadCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReadCapacityUnits):void 0),ret.addPropertyResult("writeCapacityUnits","WriteCapacityUnits",properties.WriteCapacityUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.WriteCapacityUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableAttributeDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().requiredValidator)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeType",cdk().requiredValidator)(properties.attributeType)),errors.collect(cdk().propertyValidator("attributeType",cdk().validateString)(properties.attributeType)),errors.wrap('supplied properties not correct for "AttributeDefinitionProperty"')}function convertCfnTableAttributeDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableAttributeDefinitionPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),AttributeType:cdk().stringToCloudFormation(properties.attributeType)}):properties}function CfnTableAttributeDefinitionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("attributeType","AttributeType",properties.AttributeType!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableProjectionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("nonKeyAttributes",cdk().listValidator(cdk().validateString))(properties.nonKeyAttributes)),errors.collect(cdk().propertyValidator("projectionType",cdk().validateString)(properties.projectionType)),errors.wrap('supplied properties not correct for "ProjectionProperty"')}function convertCfnTableProjectionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableProjectionPropertyValidator(properties).assertSuccess(),{NonKeyAttributes:cdk().listMapper(cdk().stringToCloudFormation)(properties.nonKeyAttributes),ProjectionType:cdk().stringToCloudFormation(properties.projectionType)}):properties}function CfnTableProjectionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("nonKeyAttributes","NonKeyAttributes",properties.NonKeyAttributes!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.NonKeyAttributes):void 0),ret.addPropertyResult("projectionType","ProjectionType",properties.ProjectionType!=null?cfn_parse().FromCloudFormation.getString(properties.ProjectionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableKeySchemaPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().requiredValidator)(properties.attributeName)),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("keyType",cdk().requiredValidator)(properties.keyType)),errors.collect(cdk().propertyValidator("keyType",cdk().validateString)(properties.keyType)),errors.wrap('supplied properties not correct for "KeySchemaProperty"')}function convertCfnTableKeySchemaPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableKeySchemaPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),KeyType:cdk().stringToCloudFormation(properties.keyType)}):properties}function CfnTableKeySchemaPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("keyType","KeyType",properties.KeyType!=null?cfn_parse().FromCloudFormation.getString(properties.KeyType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableOnDemandThroughputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("maxReadRequestUnits",cdk().validateNumber)(properties.maxReadRequestUnits)),errors.collect(cdk().propertyValidator("maxWriteRequestUnits",cdk().validateNumber)(properties.maxWriteRequestUnits)),errors.wrap('supplied properties not correct for "OnDemandThroughputProperty"')}function convertCfnTableOnDemandThroughputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableOnDemandThroughputPropertyValidator(properties).assertSuccess(),{MaxReadRequestUnits:cdk().numberToCloudFormation(properties.maxReadRequestUnits),MaxWriteRequestUnits:cdk().numberToCloudFormation(properties.maxWriteRequestUnits)}):properties}function CfnTableOnDemandThroughputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("maxReadRequestUnits","MaxReadRequestUnits",properties.MaxReadRequestUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxReadRequestUnits):void 0),ret.addPropertyResult("maxWriteRequestUnits","MaxWriteRequestUnits",properties.MaxWriteRequestUnits!=null?cfn_parse().FromCloudFormation.getNumber(properties.MaxWriteRequestUnits):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableWarmThroughputPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("readUnitsPerSecond",cdk().validateNumber)(properties.readUnitsPerSecond)),errors.collect(cdk().propertyValidator("writeUnitsPerSecond",cdk().validateNumber)(properties.writeUnitsPerSecond)),errors.wrap('supplied properties not correct for "WarmThroughputProperty"')}function convertCfnTableWarmThroughputPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableWarmThroughputPropertyValidator(properties).assertSuccess(),{ReadUnitsPerSecond:cdk().numberToCloudFormation(properties.readUnitsPerSecond),WriteUnitsPerSecond:cdk().numberToCloudFormation(properties.writeUnitsPerSecond)}):properties}function CfnTableWarmThroughputPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("readUnitsPerSecond","ReadUnitsPerSecond",properties.ReadUnitsPerSecond!=null?cfn_parse().FromCloudFormation.getNumber(properties.ReadUnitsPerSecond):void 0),ret.addPropertyResult("writeUnitsPerSecond","WriteUnitsPerSecond",properties.WriteUnitsPerSecond!=null?cfn_parse().FromCloudFormation.getNumber(properties.WriteUnitsPerSecond):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableGlobalSecondaryIndexPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("contributorInsightsSpecification",CfnTableContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk().propertyValidator("indexName",cdk().requiredValidator)(properties.indexName)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("keySchema",cdk().requiredValidator)(properties.keySchema)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("onDemandThroughput",CfnTableOnDemandThroughputPropertyValidator)(properties.onDemandThroughput)),errors.collect(cdk().propertyValidator("projection",cdk().requiredValidator)(properties.projection)),errors.collect(cdk().propertyValidator("projection",CfnTableProjectionPropertyValidator)(properties.projection)),errors.collect(cdk().propertyValidator("provisionedThroughput",CfnTableProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.collect(cdk().propertyValidator("warmThroughput",CfnTableWarmThroughputPropertyValidator)(properties.warmThroughput)),errors.wrap('supplied properties not correct for "GlobalSecondaryIndexProperty"')}function convertCfnTableGlobalSecondaryIndexPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableGlobalSecondaryIndexPropertyValidator(properties).assertSuccess(),{ContributorInsightsSpecification:convertCfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),IndexName:cdk().stringToCloudFormation(properties.indexName),KeySchema:cdk().listMapper(convertCfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),OnDemandThroughput:convertCfnTableOnDemandThroughputPropertyToCloudFormation(properties.onDemandThroughput),Projection:convertCfnTableProjectionPropertyToCloudFormation(properties.projection),ProvisionedThroughput:convertCfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput),WarmThroughput:convertCfnTableWarmThroughputPropertyToCloudFormation(properties.warmThroughput)}):properties}function CfnTableGlobalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("onDemandThroughput","OnDemandThroughput",properties.OnDemandThroughput!=null?CfnTableOnDemandThroughputPropertyFromCloudFormation(properties.OnDemandThroughput):void 0),ret.addPropertyResult("projection","Projection",properties.Projection!=null?CfnTableProjectionPropertyFromCloudFormation(properties.Projection):void 0),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addPropertyResult("warmThroughput","WarmThroughput",properties.WarmThroughput!=null?CfnTableWarmThroughputPropertyFromCloudFormation(properties.WarmThroughput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableLocalSecondaryIndexPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("indexName",cdk().requiredValidator)(properties.indexName)),errors.collect(cdk().propertyValidator("indexName",cdk().validateString)(properties.indexName)),errors.collect(cdk().propertyValidator("keySchema",cdk().requiredValidator)(properties.keySchema)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("projection",cdk().requiredValidator)(properties.projection)),errors.collect(cdk().propertyValidator("projection",CfnTableProjectionPropertyValidator)(properties.projection)),errors.wrap('supplied properties not correct for "LocalSecondaryIndexProperty"')}function convertCfnTableLocalSecondaryIndexPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableLocalSecondaryIndexPropertyValidator(properties).assertSuccess(),{IndexName:cdk().stringToCloudFormation(properties.indexName),KeySchema:cdk().listMapper(convertCfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),Projection:convertCfnTableProjectionPropertyToCloudFormation(properties.projection)}):properties}function CfnTableLocalSecondaryIndexPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("indexName","IndexName",properties.IndexName!=null?cfn_parse().FromCloudFormation.getString(properties.IndexName):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("projection","Projection",properties.Projection!=null?CfnTableProjectionPropertyFromCloudFormation(properties.Projection):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTableTimeToLiveSpecificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeName",cdk().validateString)(properties.attributeName)),errors.collect(cdk().propertyValidator("enabled",cdk().requiredValidator)(properties.enabled)),errors.collect(cdk().propertyValidator("enabled",cdk().validateBoolean)(properties.enabled)),errors.wrap('supplied properties not correct for "TimeToLiveSpecificationProperty"')}function convertCfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTableTimeToLiveSpecificationPropertyValidator(properties).assertSuccess(),{AttributeName:cdk().stringToCloudFormation(properties.attributeName),Enabled:cdk().booleanToCloudFormation(properties.enabled)}):properties}function CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeName","AttributeName",properties.AttributeName!=null?cfn_parse().FromCloudFormation.getString(properties.AttributeName):void 0),ret.addPropertyResult("enabled","Enabled",properties.Enabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.Enabled):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnTablePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("attributeDefinitions",cdk().listValidator(CfnTableAttributeDefinitionPropertyValidator))(properties.attributeDefinitions)),errors.collect(cdk().propertyValidator("billingMode",cdk().validateString)(properties.billingMode)),errors.collect(cdk().propertyValidator("contributorInsightsSpecification",CfnTableContributorInsightsSpecificationPropertyValidator)(properties.contributorInsightsSpecification)),errors.collect(cdk().propertyValidator("deletionProtectionEnabled",cdk().validateBoolean)(properties.deletionProtectionEnabled)),errors.collect(cdk().propertyValidator("globalSecondaryIndexes",cdk().listValidator(CfnTableGlobalSecondaryIndexPropertyValidator))(properties.globalSecondaryIndexes)),errors.collect(cdk().propertyValidator("importSourceSpecification",CfnTableImportSourceSpecificationPropertyValidator)(properties.importSourceSpecification)),errors.collect(cdk().propertyValidator("keySchema",cdk().requiredValidator)(properties.keySchema)),errors.collect(cdk().propertyValidator("keySchema",cdk().listValidator(CfnTableKeySchemaPropertyValidator))(properties.keySchema)),errors.collect(cdk().propertyValidator("kinesisStreamSpecification",CfnTableKinesisStreamSpecificationPropertyValidator)(properties.kinesisStreamSpecification)),errors.collect(cdk().propertyValidator("localSecondaryIndexes",cdk().listValidator(CfnTableLocalSecondaryIndexPropertyValidator))(properties.localSecondaryIndexes)),errors.collect(cdk().propertyValidator("onDemandThroughput",CfnTableOnDemandThroughputPropertyValidator)(properties.onDemandThroughput)),errors.collect(cdk().propertyValidator("pointInTimeRecoverySpecification",CfnTablePointInTimeRecoverySpecificationPropertyValidator)(properties.pointInTimeRecoverySpecification)),errors.collect(cdk().propertyValidator("provisionedThroughput",CfnTableProvisionedThroughputPropertyValidator)(properties.provisionedThroughput)),errors.collect(cdk().propertyValidator("resourcePolicy",CfnTableResourcePolicyPropertyValidator)(properties.resourcePolicy)),errors.collect(cdk().propertyValidator("sseSpecification",CfnTableSSESpecificationPropertyValidator)(properties.sseSpecification)),errors.collect(cdk().propertyValidator("streamSpecification",CfnTableStreamSpecificationPropertyValidator)(properties.streamSpecification)),errors.collect(cdk().propertyValidator("tableClass",cdk().validateString)(properties.tableClass)),errors.collect(cdk().propertyValidator("tableName",cdk().validateString)(properties.tableName)),errors.collect(cdk().propertyValidator("tags",cdk().listValidator(cdk().validateCfnTag))(properties.tags)),errors.collect(cdk().propertyValidator("timeToLiveSpecification",CfnTableTimeToLiveSpecificationPropertyValidator)(properties.timeToLiveSpecification)),errors.collect(cdk().propertyValidator("warmThroughput",CfnTableWarmThroughputPropertyValidator)(properties.warmThroughput)),errors.wrap('supplied properties not correct for "CfnTableProps"')}function convertCfnTablePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnTablePropsValidator(properties).assertSuccess(),{AttributeDefinitions:cdk().listMapper(convertCfnTableAttributeDefinitionPropertyToCloudFormation)(properties.attributeDefinitions),BillingMode:cdk().stringToCloudFormation(properties.billingMode),ContributorInsightsSpecification:convertCfnTableContributorInsightsSpecificationPropertyToCloudFormation(properties.contributorInsightsSpecification),DeletionProtectionEnabled:cdk().booleanToCloudFormation(properties.deletionProtectionEnabled),GlobalSecondaryIndexes:cdk().listMapper(convertCfnTableGlobalSecondaryIndexPropertyToCloudFormation)(properties.globalSecondaryIndexes),ImportSourceSpecification:convertCfnTableImportSourceSpecificationPropertyToCloudFormation(properties.importSourceSpecification),KeySchema:cdk().listMapper(convertCfnTableKeySchemaPropertyToCloudFormation)(properties.keySchema),KinesisStreamSpecification:convertCfnTableKinesisStreamSpecificationPropertyToCloudFormation(properties.kinesisStreamSpecification),LocalSecondaryIndexes:cdk().listMapper(convertCfnTableLocalSecondaryIndexPropertyToCloudFormation)(properties.localSecondaryIndexes),OnDemandThroughput:convertCfnTableOnDemandThroughputPropertyToCloudFormation(properties.onDemandThroughput),PointInTimeRecoverySpecification:convertCfnTablePointInTimeRecoverySpecificationPropertyToCloudFormation(properties.pointInTimeRecoverySpecification),ProvisionedThroughput:convertCfnTableProvisionedThroughputPropertyToCloudFormation(properties.provisionedThroughput),ResourcePolicy:convertCfnTableResourcePolicyPropertyToCloudFormation(properties.resourcePolicy),SSESpecification:convertCfnTableSSESpecificationPropertyToCloudFormation(properties.sseSpecification),StreamSpecification:convertCfnTableStreamSpecificationPropertyToCloudFormation(properties.streamSpecification),TableClass:cdk().stringToCloudFormation(properties.tableClass),TableName:cdk().stringToCloudFormation(properties.tableName),Tags:cdk().listMapper(cdk().cfnTagToCloudFormation)(properties.tags),TimeToLiveSpecification:convertCfnTableTimeToLiveSpecificationPropertyToCloudFormation(properties.timeToLiveSpecification),WarmThroughput:convertCfnTableWarmThroughputPropertyToCloudFormation(properties.warmThroughput)}):properties}function CfnTablePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("attributeDefinitions","AttributeDefinitions",properties.AttributeDefinitions!=null?cfn_parse().FromCloudFormation.getArray(CfnTableAttributeDefinitionPropertyFromCloudFormation)(properties.AttributeDefinitions):void 0),ret.addPropertyResult("billingMode","BillingMode",properties.BillingMode!=null?cfn_parse().FromCloudFormation.getString(properties.BillingMode):void 0),ret.addPropertyResult("contributorInsightsSpecification","ContributorInsightsSpecification",properties.ContributorInsightsSpecification!=null?CfnTableContributorInsightsSpecificationPropertyFromCloudFormation(properties.ContributorInsightsSpecification):void 0),ret.addPropertyResult("deletionProtectionEnabled","DeletionProtectionEnabled",properties.DeletionProtectionEnabled!=null?cfn_parse().FromCloudFormation.getBoolean(properties.DeletionProtectionEnabled):void 0),ret.addPropertyResult("globalSecondaryIndexes","GlobalSecondaryIndexes",properties.GlobalSecondaryIndexes!=null?cfn_parse().FromCloudFormation.getArray(CfnTableGlobalSecondaryIndexPropertyFromCloudFormation)(properties.GlobalSecondaryIndexes):void 0),ret.addPropertyResult("importSourceSpecification","ImportSourceSpecification",properties.ImportSourceSpecification!=null?CfnTableImportSourceSpecificationPropertyFromCloudFormation(properties.ImportSourceSpecification):void 0),ret.addPropertyResult("keySchema","KeySchema",properties.KeySchema!=null?cfn_parse().FromCloudFormation.getArray(CfnTableKeySchemaPropertyFromCloudFormation)(properties.KeySchema):void 0),ret.addPropertyResult("kinesisStreamSpecification","KinesisStreamSpecification",properties.KinesisStreamSpecification!=null?CfnTableKinesisStreamSpecificationPropertyFromCloudFormation(properties.KinesisStreamSpecification):void 0),ret.addPropertyResult("localSecondaryIndexes","LocalSecondaryIndexes",properties.LocalSecondaryIndexes!=null?cfn_parse().FromCloudFormation.getArray(CfnTableLocalSecondaryIndexPropertyFromCloudFormation)(properties.LocalSecondaryIndexes):void 0),ret.addPropertyResult("onDemandThroughput","OnDemandThroughput",properties.OnDemandThroughput!=null?CfnTableOnDemandThroughputPropertyFromCloudFormation(properties.OnDemandThroughput):void 0),ret.addPropertyResult("pointInTimeRecoverySpecification","PointInTimeRecoverySpecification",properties.PointInTimeRecoverySpecification!=null?CfnTablePointInTimeRecoverySpecificationPropertyFromCloudFormation(properties.PointInTimeRecoverySpecification):void 0),ret.addPropertyResult("provisionedThroughput","ProvisionedThroughput",properties.ProvisionedThroughput!=null?CfnTableProvisionedThroughputPropertyFromCloudFormation(properties.ProvisionedThroughput):void 0),ret.addPropertyResult("resourcePolicy","ResourcePolicy",properties.ResourcePolicy!=null?CfnTableResourcePolicyPropertyFromCloudFormation(properties.ResourcePolicy):void 0),ret.addPropertyResult("sseSpecification","SSESpecification",properties.SSESpecification!=null?CfnTableSSESpecificationPropertyFromCloudFormation(properties.SSESpecification):void 0),ret.addPropertyResult("streamSpecification","StreamSpecification",properties.StreamSpecification!=null?CfnTableStreamSpecificationPropertyFromCloudFormation(properties.StreamSpecification):void 0),ret.addPropertyResult("tableClass","TableClass",properties.TableClass!=null?cfn_parse().FromCloudFormation.getString(properties.TableClass):void 0),ret.addPropertyResult("tableName","TableName",properties.TableName!=null?cfn_parse().FromCloudFormation.getString(properties.TableName):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getCfnTag)(properties.Tags):void 0),ret.addPropertyResult("timeToLiveSpecification","TimeToLiveSpecification",properties.TimeToLiveSpecification!=null?CfnTableTimeToLiveSpecificationPropertyFromCloudFormation(properties.TimeToLiveSpecification):void 0),ret.addPropertyResult("warmThroughput","WarmThroughput",properties.WarmThroughput!=null?CfnTableWarmThroughputPropertyFromCloudFormation(properties.WarmThroughput):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}