@@ -748,6 +748,9 @@ def create_table(
748748 if "NumberOfDecreasesToday" not in table_description ["ProvisionedThroughput" ]:
749749 table_description ["ProvisionedThroughput" ]["NumberOfDecreasesToday" ] = 0
750750
751+ if "WarmThroughput" in table_description :
752+ table_description ["WarmThroughput" ] = "UPDATING"
753+
751754 tags = table_definitions .pop ("Tags" , [])
752755 if tags :
753756 get_store (context .account_id , context .region ).TABLE_TAGS [table_arn ] = {
@@ -765,6 +768,13 @@ def delete_table(
765768 ) -> DeleteTableOutput :
766769 global_table_region = self .get_global_table_region (context , table_name )
767770
771+ self .ensure_table_exists (
772+ context .account_id ,
773+ global_table_region ,
774+ table_name ,
775+ error_message = f"Requested resource not found: Table: { table_name } not found" ,
776+ )
777+
768778 # Limitation note: On AWS, for a replicated table, if the source table is deleted, the replicated tables continue to exist.
769779 # This is not the case for LocalStack, where all replicated tables will also be removed if source is deleted.
770780
@@ -825,6 +835,9 @@ def describe_table(
825835 table_description ["TableClassSummary" ] = {
826836 "TableClass" : table_definitions ["TableClass" ]
827837 }
838+ if warm_throughput := table_definitions .get ("WarmThroughput" ):
839+ table_description ["WarmThroughput" ] = warm_throughput .copy ()
840+ table_description ["WarmThroughput" ].setdefault ("Status" , "ACTIVE" )
828841
829842 if "GlobalSecondaryIndexes" in table_description :
830843 for gsi in table_description ["GlobalSecondaryIndexes" ]:
@@ -837,6 +850,14 @@ def describe_table(
837850 # Terraform depends on this parity for update operations
838851 gsi ["ProvisionedThroughput" ] = default_values | gsi .get ("ProvisionedThroughput" , {})
839852
853+ # Set defaults for warm throughput
854+ if "WarmThroughput" not in table_description :
855+ table_description ["WarmThroughput" ] = {
856+ "ReadUnitsPerSecond" : 5 ,
857+ "WriteUnitsPerSecond" : 5 ,
858+ }
859+ table_description ["Status" ] = table_description .get ("TableStatus" ) or "ACTIVE"
860+
840861 return DescribeTableOutput (
841862 Table = select_from_typed_dict (TableDescription , table_description )
842863 )
0 commit comments