S3 Tables operations
Every S3 Tables operation Overcast declares — 49 of 49 implemented — with status, behaviour notes and a link to the AWS API reference for each.
All 49 listed operations are implemented. Back to S3 Tables.
Summary
| Category | ✅ Supported | 🧊 Inert | ⚠️ Partial |
|---|---|---|---|
| Table buckets | 4 | ||
| Namespaces | 4 | ||
| Tables | 6 | 1 | |
| Policies | 4 | 2 | |
| Encryption, storage class and metrics | 7 | 3 | |
| Maintenance | 2 | 3 | |
| Replication and record expiration | 5 | 5 | |
| Tags | 3 |
Endpoints
Table buckets
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateTableBucket | ✅ Supported | Table bucket naming rules; encryptionConfiguration, storageClassConfiguration and tags on create | docs |
GetTableBucket | ✅ Supported | Addressed by ARN; type is always customer | docs |
ListTableBuckets | ✅ Supported | prefix, type, maxBuckets and continuationToken | docs |
DeleteTableBucket | ✅ Supported | ConflictException while the bucket still holds namespaces | docs |
Namespaces
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateNamespace | ✅ Supported | One-level namespaces, as AWS; namespace naming rules | docs |
GetNamespace | ✅ Supported | docs | |
ListNamespaces | ✅ Supported | prefix, maxNamespaces and continuationToken | docs |
DeleteNamespace | ✅ Supported | ConflictException while the namespace still holds tables | docs |
Tables
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
CreateTable | ⚠️ Partial | Creates the table’s --table-s3 warehouse bucket in S3; metadata.iceberg.schema (primitive types), partitionSpec, writeOrder and properties write the first metadata.json; schemaV2 returns 501 | docs |
GetTable | ✅ Supported | By tableArn, or by tableBucketARN, namespace and name | docs |
ListTables | ✅ Supported | namespace, prefix, maxTables and continuationToken | docs |
DeleteTable | ✅ Supported | Optional versionToken check; the warehouse bucket and its objects are left in S3 | docs |
RenameTable | ✅ Supported | New name and/or namespace; the ARN and version token are unchanged | docs |
GetTableMetadataLocation | ✅ Supported | docs | |
UpdateTableMetadataLocation | ✅ Supported | Compare-and-swap on versionToken: a stale token is ConflictException; the location must be inside the warehouse | docs |
Policies
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutTableBucketPolicy | 🧊 Inert | Stored and returned; not evaluated | docs |
GetTableBucketPolicy | ✅ Supported | docs | |
DeleteTableBucketPolicy | ✅ Supported | docs | |
PutTablePolicy | 🧊 Inert | Stored and returned; not evaluated | docs |
GetTablePolicy | ✅ Supported | docs | |
DeleteTablePolicy | ✅ Supported | docs |
Encryption, storage class and metrics
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutTableBucketEncryption | 🧊 Inert | Stored; new tables inherit it. Objects are not encrypted | docs |
GetTableBucketEncryption | ✅ Supported | AES256 until configured otherwise | docs |
DeleteTableBucketEncryption | ✅ Supported | Returns the bucket to AES256 | docs |
GetTableEncryption | ✅ Supported | The bucket’s configuration at create time, or the table’s own | docs |
PutTableBucketStorageClass | 🧊 Inert | Stored; new tables inherit it | docs |
GetTableBucketStorageClass | ✅ Supported | STANDARD until configured otherwise | docs |
GetTableStorageClass | ✅ Supported | docs | |
PutTableBucketMetricsConfiguration | 🧊 Inert | Recorded; no CloudWatch metrics are published | docs |
GetTableBucketMetricsConfiguration | ✅ Supported | NotFoundException until configured | docs |
DeleteTableBucketMetricsConfiguration | ✅ Supported | docs |
Maintenance
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutTableBucketMaintenanceConfiguration | 🧊 Inert | Stored and echoed; no maintenance runs | docs |
GetTableBucketMaintenanceConfiguration | ✅ Supported | AWS’s defaults merged with what was put | docs |
PutTableMaintenanceConfiguration | 🧊 Inert | Stored and echoed; no compaction or snapshot management runs | docs |
GetTableMaintenanceConfiguration | ✅ Supported | AWS’s defaults merged with what was put | docs |
GetTableMaintenanceJobStatus | 🧊 Inert | Every job reports Not_Yet_Run, or Disabled when turned off | docs |
Replication and record expiration
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
PutTableBucketReplication | 🧊 Inert | Stored with a versionToken; nothing is replicated | docs |
GetTableBucketReplication | ✅ Supported | docs | |
DeleteTableBucketReplication | ✅ Supported | Optional versionToken check | docs |
PutTableReplication | 🧊 Inert | Stored with a versionToken; nothing is replicated | docs |
GetTableReplication | ✅ Supported | docs | |
DeleteTableReplication | ✅ Supported | versionToken check | docs |
GetTableReplicationStatus | 🧊 Inert | Every destination reports pending | docs |
PutTableRecordExpirationConfiguration | 🧊 Inert | Stored and echoed; no records expire | docs |
GetTableRecordExpirationConfiguration | ✅ Supported | disabled until configured | docs |
GetTableRecordExpirationJobStatus | 🧊 Inert | NotYetRun when enabled, otherwise Disabled | docs |
Tags
| Operation | Status | Notes | AWS Docs |
|---|---|---|---|
TagResource | ✅ Supported | Table buckets and tables; the 50-tag limit and AWS’s key and value rules | docs |
UntagResource | ✅ Supported | docs | |
ListTagsForResource | ✅ Supported | docs |
Related
- S3 Tables — quick start, what works, and the differences from AWS
- All service pages