aws-sdk-s3tables 1.27.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 82803d60513cda7c5fac5efb85042ae2f333d8a05f26d08d11fb83454fb72e12
4
- data.tar.gz: 5db2717a5faf56bfaa5465fc7161bf9e0ebe68d4918776a4a9ef8bf6eeb18a5c
3
+ metadata.gz: 7a0a973d48f47d6aedb81e334e7f3c0fababc9cde22f0f815eb7bbc6d986d7dd
4
+ data.tar.gz: c634e35c41a7b2eeb074c32139ad1de8a888b7f2321adeea9f1393da3aa1391b
5
5
  SHA512:
6
- metadata.gz: d9f29057d19e1a8eb49742d43741a48a8e103278da72c3d2e27457b4dac4caa29ea33ac6deb55a5662a15d82081b4785c611b5fd52358540fbe1aefff9dd6a3d
7
- data.tar.gz: b14afb7ea0f5ac5e907739f99348011ade32beea0101c9fbd9d34f3cff0b74c30362b5b92c5604e3b367fd16d8da76fbb40e8a798daed7d1989e08ac15ba8a89
6
+ metadata.gz: b9c23444bdf82ac8fcd441b9395ffe5ffc74037ad70b8becf877c85f05bd03b013e7b2c6673eb1bacc169e37a9a208fb0e0cf8cc0b66aa9f7134ec5fb1061359
7
+ data.tar.gz: b7a962cc028ea324a6d60686b7c3487a3a8199fe091cfd4bc93431198ccc64fe3555f5a8d635901f848577ee9a919e0be14a02f5e4b80792280ab9cafebc8b1c
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.28.0 (2026-03-31)
5
+ ------------------
6
+
7
+ * Feature - S3 Tables now supports nested types when creating tables. Users can define complex column schemas using struct, list, and map types. These types can be composed together to model complex, hierarchical data structures within table schemas.
8
+
4
9
  1.27.0 (2026-03-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.27.0
1
+ 1.28.0
@@ -626,7 +626,7 @@ module Aws::S3Tables
626
626
  # format: "ICEBERG", # required, accepts ICEBERG
627
627
  # metadata: {
628
628
  # iceberg: {
629
- # schema: { # required
629
+ # schema: {
630
630
  # fields: [ # required
631
631
  # {
632
632
  # id: 1,
@@ -636,6 +636,21 @@ module Aws::S3Tables
636
636
  # },
637
637
  # ],
638
638
  # },
639
+ # schema_v2: {
640
+ # type: "struct", # required, accepts struct
641
+ # fields: [ # required
642
+ # {
643
+ # id: 1, # required
644
+ # name: "String", # required
645
+ # type: { # required
646
+ # },
647
+ # required: false, # required
648
+ # doc: "String",
649
+ # },
650
+ # ],
651
+ # schema_id: 1,
652
+ # identifier_field_ids: [1],
653
+ # },
639
654
  # partition_spec: {
640
655
  # fields: [ # required
641
656
  # {
@@ -2961,7 +2976,7 @@ module Aws::S3Tables
2961
2976
  tracer: tracer
2962
2977
  )
2963
2978
  context[:gem_name] = 'aws-sdk-s3tables'
2964
- context[:gem_version] = '1.27.0'
2979
+ context[:gem_version] = '1.28.0'
2965
2980
  Seahorse::Client::Request.new(handlers, context)
2966
2981
  end
2967
2982
 
@@ -35,6 +35,7 @@ module Aws::S3Tables
35
35
  DeleteTablePolicyRequest = Shapes::StructureShape.new(name: 'DeleteTablePolicyRequest')
36
36
  DeleteTableReplicationRequest = Shapes::StructureShape.new(name: 'DeleteTableReplicationRequest')
37
37
  DeleteTableRequest = Shapes::StructureShape.new(name: 'DeleteTableRequest')
38
+ Document = Shapes::DocumentShape.new(name: 'Document', document: true)
38
39
  EncryptionConfiguration = Shapes::StructureShape.new(name: 'EncryptionConfiguration')
39
40
  EncryptionConfigurationKmsKeyArnString = Shapes::StringShape.new(name: 'EncryptionConfigurationKmsKeyArnString')
40
41
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
@@ -86,6 +87,7 @@ module Aws::S3Tables
86
87
  IcebergPartitionFieldList = Shapes::ListShape.new(name: 'IcebergPartitionFieldList')
87
88
  IcebergPartitionSpec = Shapes::StructureShape.new(name: 'IcebergPartitionSpec')
88
89
  IcebergSchema = Shapes::StructureShape.new(name: 'IcebergSchema')
90
+ IcebergSchemaV2 = Shapes::StructureShape.new(name: 'IcebergSchemaV2')
89
91
  IcebergSnapshotManagementSettings = Shapes::StructureShape.new(name: 'IcebergSnapshotManagementSettings')
90
92
  IcebergSortDirection = Shapes::StringShape.new(name: 'IcebergSortDirection')
91
93
  IcebergSortField = Shapes::StructureShape.new(name: 'IcebergSortField')
@@ -93,6 +95,7 @@ module Aws::S3Tables
93
95
  IcebergSortOrder = Shapes::StructureShape.new(name: 'IcebergSortOrder')
94
96
  IcebergUnreferencedFileRemovalSettings = Shapes::StructureShape.new(name: 'IcebergUnreferencedFileRemovalSettings')
95
97
  Integer = Shapes::IntegerShape.new(name: 'Integer')
98
+ IntegerList = Shapes::ListShape.new(name: 'IntegerList')
96
99
  InternalServerErrorException = Shapes::StructureShape.new(name: 'InternalServerErrorException')
97
100
  JobStatus = Shapes::StringShape.new(name: 'JobStatus')
98
101
  LastSuccessfulReplicatedUpdate = Shapes::StructureShape.new(name: 'LastSuccessfulReplicatedUpdate')
@@ -148,6 +151,9 @@ module Aws::S3Tables
148
151
  SSEAlgorithm = Shapes::StringShape.new(name: 'SSEAlgorithm')
149
152
  SchemaField = Shapes::StructureShape.new(name: 'SchemaField')
150
153
  SchemaFieldList = Shapes::ListShape.new(name: 'SchemaFieldList')
154
+ SchemaV2Field = Shapes::StructureShape.new(name: 'SchemaV2Field')
155
+ SchemaV2FieldList = Shapes::ListShape.new(name: 'SchemaV2FieldList')
156
+ SchemaV2FieldType = Shapes::StringShape.new(name: 'SchemaV2FieldType')
151
157
  StorageClass = Shapes::StringShape.new(name: 'StorageClass')
152
158
  StorageClassConfiguration = Shapes::StructureShape.new(name: 'StorageClassConfiguration')
153
159
  String = Shapes::StringShape.new(name: 'String')
@@ -457,7 +463,8 @@ module Aws::S3Tables
457
463
  IcebergCompactionSettings.add_member(:strategy, Shapes::ShapeRef.new(shape: IcebergCompactionStrategy, location_name: "strategy"))
458
464
  IcebergCompactionSettings.struct_class = Types::IcebergCompactionSettings
459
465
 
460
- IcebergMetadata.add_member(:schema, Shapes::ShapeRef.new(shape: IcebergSchema, required: true, location_name: "schema"))
466
+ IcebergMetadata.add_member(:schema, Shapes::ShapeRef.new(shape: IcebergSchema, location_name: "schema"))
467
+ IcebergMetadata.add_member(:schema_v2, Shapes::ShapeRef.new(shape: IcebergSchemaV2, location_name: "schemaV2"))
461
468
  IcebergMetadata.add_member(:partition_spec, Shapes::ShapeRef.new(shape: IcebergPartitionSpec, location_name: "partitionSpec"))
462
469
  IcebergMetadata.add_member(:write_order, Shapes::ShapeRef.new(shape: IcebergSortOrder, location_name: "writeOrder"))
463
470
  IcebergMetadata.add_member(:properties, Shapes::ShapeRef.new(shape: TableProperties, location_name: "properties"))
@@ -478,6 +485,12 @@ module Aws::S3Tables
478
485
  IcebergSchema.add_member(:fields, Shapes::ShapeRef.new(shape: SchemaFieldList, required: true, location_name: "fields"))
479
486
  IcebergSchema.struct_class = Types::IcebergSchema
480
487
 
488
+ IcebergSchemaV2.add_member(:type, Shapes::ShapeRef.new(shape: SchemaV2FieldType, required: true, location_name: "type"))
489
+ IcebergSchemaV2.add_member(:fields, Shapes::ShapeRef.new(shape: SchemaV2FieldList, required: true, location_name: "fields"))
490
+ IcebergSchemaV2.add_member(:schema_id, Shapes::ShapeRef.new(shape: Integer, location_name: "schema-id"))
491
+ IcebergSchemaV2.add_member(:identifier_field_ids, Shapes::ShapeRef.new(shape: IntegerList, location_name: "identifier-field-ids"))
492
+ IcebergSchemaV2.struct_class = Types::IcebergSchemaV2
493
+
481
494
  IcebergSnapshotManagementSettings.add_member(:min_snapshots_to_keep, Shapes::ShapeRef.new(shape: PositiveInteger, location_name: "minSnapshotsToKeep"))
482
495
  IcebergSnapshotManagementSettings.add_member(:max_snapshot_age_hours, Shapes::ShapeRef.new(shape: PositiveInteger, location_name: "maxSnapshotAgeHours"))
483
496
  IcebergSnapshotManagementSettings.struct_class = Types::IcebergSnapshotManagementSettings
@@ -498,6 +511,8 @@ module Aws::S3Tables
498
511
  IcebergUnreferencedFileRemovalSettings.add_member(:non_current_days, Shapes::ShapeRef.new(shape: PositiveInteger, location_name: "nonCurrentDays"))
499
512
  IcebergUnreferencedFileRemovalSettings.struct_class = Types::IcebergUnreferencedFileRemovalSettings
500
513
 
514
+ IntegerList.member = Shapes::ShapeRef.new(shape: Integer)
515
+
501
516
  InternalServerErrorException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
502
517
  InternalServerErrorException.struct_class = Types::InternalServerErrorException
503
518
 
@@ -651,6 +666,15 @@ module Aws::S3Tables
651
666
 
652
667
  SchemaFieldList.member = Shapes::ShapeRef.new(shape: SchemaField)
653
668
 
669
+ SchemaV2Field.add_member(:id, Shapes::ShapeRef.new(shape: Integer, required: true, location_name: "id"))
670
+ SchemaV2Field.add_member(:name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "name"))
671
+ SchemaV2Field.add_member(:type, Shapes::ShapeRef.new(shape: Document, required: true, location_name: "type"))
672
+ SchemaV2Field.add_member(:required, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "required"))
673
+ SchemaV2Field.add_member(:doc, Shapes::ShapeRef.new(shape: String, location_name: "doc"))
674
+ SchemaV2Field.struct_class = Types::SchemaV2Field
675
+
676
+ SchemaV2FieldList.member = Shapes::ShapeRef.new(shape: SchemaV2Field)
677
+
654
678
  StorageClassConfiguration.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, required: true, location_name: "storageClass"))
655
679
  StorageClassConfiguration.struct_class = Types::StorageClassConfiguration
656
680
 
@@ -1207,9 +1207,20 @@ module Aws::S3Tables
1207
1207
  # Contains details about the metadata for an Iceberg table.
1208
1208
  #
1209
1209
  # @!attribute [rw] schema
1210
- # The schema for an Iceberg table.
1210
+ # The schema for an Iceberg table. Use this property to define table
1211
+ # schemas with primitive types only. For schemas that include nested
1212
+ # or complex types such as `struct`, `list`, or `map`, use `schemaV2`
1213
+ # instead.
1211
1214
  # @return [Types::IcebergSchema]
1212
1215
  #
1216
+ # @!attribute [rw] schema_v2
1217
+ # The schema for an Iceberg table using the V2 format. Use this
1218
+ # property to define table schemas that include nested or complex data
1219
+ # types such as `struct`, `list`, or `map`, in addition to primitive
1220
+ # types. For schemas with only primitive types, you can use either
1221
+ # `schema` or `schemaV2`.
1222
+ # @return [Types::IcebergSchemaV2]
1223
+ #
1213
1224
  # @!attribute [rw] partition_spec
1214
1225
  # The partition specification for the Iceberg table. Partitioning
1215
1226
  # organizes data into separate files based on the values of one or
@@ -1232,6 +1243,7 @@ module Aws::S3Tables
1232
1243
  #
1233
1244
  class IcebergMetadata < Struct.new(
1234
1245
  :schema,
1246
+ :schema_v2,
1235
1247
  :partition_spec,
1236
1248
  :write_order,
1237
1249
  :properties)
@@ -1318,6 +1330,46 @@ module Aws::S3Tables
1318
1330
  include Aws::Structure
1319
1331
  end
1320
1332
 
1333
+ # Contains details about the schema for an Iceberg table using the V2
1334
+ # format. This schema format supports nested and complex data types such
1335
+ # as `struct`, `list`, and `map`, in addition to primitive types.
1336
+ #
1337
+ # @!attribute [rw] type
1338
+ # The type of the top-level schema, which is always a `struct` type as
1339
+ # defined in the [Apache Iceberg specification][1]. This value must be
1340
+ # `struct`.
1341
+ #
1342
+ #
1343
+ #
1344
+ # [1]: https://iceberg.apache.org/spec/#schemas-and-data-types
1345
+ # @return [String]
1346
+ #
1347
+ # @!attribute [rw] fields
1348
+ # The schema fields for the table. Each field defines a column in the
1349
+ # table, including its name, type, and whether it is required.
1350
+ # @return [Array<Types::SchemaV2Field>]
1351
+ #
1352
+ # @!attribute [rw] schema_id
1353
+ # An optional unique identifier for the schema. Schema IDs are used by
1354
+ # Apache Iceberg to track schema evolution.
1355
+ # @return [Integer]
1356
+ #
1357
+ # @!attribute [rw] identifier_field_ids
1358
+ # A list of field IDs that are used as the identifier fields for the
1359
+ # table. Identifier fields uniquely identify a row in the table.
1360
+ # @return [Array<Integer>]
1361
+ #
1362
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/IcebergSchemaV2 AWS API Documentation
1363
+ #
1364
+ class IcebergSchemaV2 < Struct.new(
1365
+ :type,
1366
+ :fields,
1367
+ :schema_id,
1368
+ :identifier_field_ids)
1369
+ SENSITIVE = []
1370
+ include Aws::Structure
1371
+ end
1372
+
1321
1373
  # Contains details about the snapshot management settings for an Iceberg
1322
1374
  # table. The oldest snapshot expires when its age exceeds the
1323
1375
  # `maxSnapshotAgeHours` and the total number of snapshots exceeds the
@@ -2126,6 +2178,55 @@ module Aws::S3Tables
2126
2178
  include Aws::Structure
2127
2179
  end
2128
2180
 
2181
+ # Contains details about a schema field in the V2 format. This field
2182
+ # format supports nested and complex data types such as `struct`,
2183
+ # `list`, and `map`, in addition to primitive types.
2184
+ #
2185
+ # @!attribute [rw] id
2186
+ # The unique identifier for the schema field. Field IDs are used by
2187
+ # Apache Iceberg to track schema evolution and maintain compatibility
2188
+ # across schema changes.
2189
+ # @return [Integer]
2190
+ #
2191
+ # @!attribute [rw] name
2192
+ # The name of the field.
2193
+ # @return [String]
2194
+ #
2195
+ # @!attribute [rw] type
2196
+ # The data type of the field. This can be a primitive type string such
2197
+ # as `boolean`, `int`, `long`, `float`, `double`, `string`, `binary`,
2198
+ # `date`, `timestamp`, or `timestamptz`, or a complex type represented
2199
+ # as a JSON object for nested types such as `struct`, `list`, or
2200
+ # `map`. For more information, see the [Apache Iceberg schemas and
2201
+ # data types documentation][1].
2202
+ #
2203
+ #
2204
+ #
2205
+ # [1]: https://iceberg.apache.org/spec/#schemas-and-data-types
2206
+ # @return [Hash,Array,String,Numeric,Boolean]
2207
+ #
2208
+ # @!attribute [rw] required
2209
+ # A Boolean value that specifies whether values are required for each
2210
+ # row in this field. If this is `true`, the field does not allow null
2211
+ # values.
2212
+ # @return [Boolean]
2213
+ #
2214
+ # @!attribute [rw] doc
2215
+ # An optional description of the field.
2216
+ # @return [String]
2217
+ #
2218
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/SchemaV2Field AWS API Documentation
2219
+ #
2220
+ class SchemaV2Field < Struct.new(
2221
+ :id,
2222
+ :name,
2223
+ :type,
2224
+ :required,
2225
+ :doc)
2226
+ SENSITIVE = []
2227
+ include Aws::Structure
2228
+ end
2229
+
2129
2230
  # The configuration details for the storage class of tables or table
2130
2231
  # buckets. This allows you to optimize storage costs by selecting the
2131
2232
  # appropriate storage class based on your access patterns and
@@ -55,7 +55,7 @@ module Aws::S3Tables
55
55
  autoload :EndpointProvider, 'aws-sdk-s3tables/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-s3tables/endpoints'
57
57
 
58
- GEM_VERSION = '1.27.0'
58
+ GEM_VERSION = '1.28.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -112,7 +112,22 @@ module Aws
112
112
  required: bool?
113
113
  },
114
114
  ]
115
- },
115
+ }?,
116
+ schema_v2: {
117
+ type: ("struct"),
118
+ fields: Array[
119
+ {
120
+ id: ::Integer,
121
+ name: ::String,
122
+ type: {
123
+ },
124
+ required: bool,
125
+ doc: ::String?
126
+ },
127
+ ],
128
+ schema_id: ::Integer?,
129
+ identifier_field_ids: Array[::Integer]?
130
+ }?,
116
131
  partition_spec: {
117
132
  fields: Array[
118
133
  {
data/sig/types.rbs CHANGED
@@ -382,6 +382,7 @@ module Aws::S3Tables
382
382
 
383
383
  class IcebergMetadata
384
384
  attr_accessor schema: Types::IcebergSchema
385
+ attr_accessor schema_v2: Types::IcebergSchemaV2
385
386
  attr_accessor partition_spec: Types::IcebergPartitionSpec
386
387
  attr_accessor write_order: Types::IcebergSortOrder
387
388
  attr_accessor properties: ::Hash[::String, ::String]
@@ -407,6 +408,14 @@ module Aws::S3Tables
407
408
  SENSITIVE: []
408
409
  end
409
410
 
411
+ class IcebergSchemaV2
412
+ attr_accessor type: ("struct")
413
+ attr_accessor fields: ::Array[Types::SchemaV2Field]
414
+ attr_accessor schema_id: ::Integer
415
+ attr_accessor identifier_field_ids: ::Array[::Integer]
416
+ SENSITIVE: []
417
+ end
418
+
410
419
  class IcebergSnapshotManagementSettings
411
420
  attr_accessor min_snapshots_to_keep: ::Integer
412
421
  attr_accessor max_snapshot_age_hours: ::Integer
@@ -638,6 +647,15 @@ module Aws::S3Tables
638
647
  SENSITIVE: []
639
648
  end
640
649
 
650
+ class SchemaV2Field
651
+ attr_accessor id: ::Integer
652
+ attr_accessor name: ::String
653
+ attr_accessor type: untyped
654
+ attr_accessor required: bool
655
+ attr_accessor doc: ::String
656
+ SENSITIVE: []
657
+ end
658
+
641
659
  class StorageClassConfiguration
642
660
  attr_accessor storage_class: ("STANDARD" | "INTELLIGENT_TIERING")
643
661
  SENSITIVE: []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3tables
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.27.0
4
+ version: 1.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services