Interface TableProps

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
TableProps.Jsii$Proxy

@Generated(value="jsii-pacmak/1.112.0 (build de1bc80)", date="2025-08-06T18:14:48.681Z") @Stability(Experimental) public interface TableProps extends software.amazon.jsii.JsiiSerializable
(experimental) Properties for creating a new S3 Table.

Example:

 // Build a table
 Table sampleTable = Table.Builder.create(scope, "ExampleTable")
         .tableName("example_table")
         .namespace(namespace)
         .openTableFormat(OpenTableFormat.ICEBERG)
         .withoutMetadata(true)
         .build();
 // Build a table with an Iceberg Schema
 Table sampleTableWithSchema = Table.Builder.create(scope, "ExampleSchemaTable")
         .tableName("example_table_with_schema")
         .namespace(namespace)
         .openTableFormat(OpenTableFormat.ICEBERG)
         .icebergMetadata(IcebergMetadataProperty.builder()
                 .icebergSchema(IcebergSchemaProperty.builder()
                         .schemaFieldList(List.of(SchemaFieldProperty.builder()
                                 .name("id")
                                 .type("int")
                                 .required(true)
                                 .build(), SchemaFieldProperty.builder()
                                 .name("name")
                                 .type("string")
                                 .build()))
                         .build())
                 .build())
         .compaction(CompactionProperty.builder()
                 .status(Status.ENABLED)
                 .targetFileSizeMb(128)
                 .build())
         .snapshotManagement(SnapshotManagementProperty.builder()
                 .status(Status.ENABLED)
                 .maxSnapshotAgeHours(48)
                 .minSnapshotsToKeep(5)
                 .build())
         .build();
 
  • Method Details

    • getNamespace

      @Stability(Experimental) @NotNull INamespace getNamespace()
      (experimental) The namespace under which this table is created.
    • getOpenTableFormat

      @Stability(Experimental) @NotNull OpenTableFormat getOpenTableFormat()
      (experimental) Format of this table.

      Currently, the only supported value is OpenTableFormat.ICEBERG.

    • getTableName

      @Stability(Experimental) @NotNull String getTableName()
      (experimental) Name of this table, unique within the namespace.
    • getCompaction

      @Stability(Experimental) @Nullable default CompactionProperty getCompaction()
      (experimental) Settings governing the Compaction maintenance action.

      Default: Amazon S3 selects the best compaction strategy based on your table sort order.

      See Also:
    • getIcebergMetadata

      @Stability(Experimental) @Nullable default IcebergMetadataProperty getIcebergMetadata()
      (experimental) Contains details about the metadata for an Iceberg table.

      Default: table is created without any metadata

    • getRemovalPolicy

      @Stability(Experimental) @Nullable default RemovalPolicy getRemovalPolicy()
      (experimental) Controls what happens to this table it it stoped being managed by cloudformation.

      Default: RETAIN

    • getSnapshotManagement

      @Stability(Experimental) @Nullable default SnapshotManagementProperty getSnapshotManagement()
      (experimental) Contains details about the snapshot management settings for an Iceberg table.

      Default: enabled: MinimumSnapshots is 1 by default and MaximumSnapshotAge is 120 hours by default.

    • getWithoutMetadata

      @Stability(Experimental) @Nullable default Boolean getWithoutMetadata()
      (experimental) If true, indicates that you don't want to specify a schema for the table.

      This property is mutually exclusive to 'IcebergMetadata'.

      Default: false

    • builder

      @Stability(Experimental) static TableProps.Builder builder()
      Returns:
      a TableProps.Builder of TableProps