aws-sdk-s3tables 1.40.0 → 1.41.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.
@@ -37,6 +37,19 @@ module Aws::S3Tables
37
37
  include Aws::Structure
38
38
  end
39
39
 
40
+ # @!attribute [rw] table_arn
41
+ # The Amazon Resource Name (ARN) of the migrated table to complete the
42
+ # migration of.
43
+ # @return [String]
44
+ #
45
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/CompleteTableMigrationRequest AWS API Documentation
46
+ #
47
+ class CompleteTableMigrationRequest < Struct.new(
48
+ :table_arn)
49
+ SENSITIVE = []
50
+ include Aws::Structure
51
+ end
52
+
40
53
  # The request failed because there is a conflict with a previous write.
41
54
  # You can retry the request.
42
55
  #
@@ -240,6 +253,62 @@ module Aws::S3Tables
240
253
  include Aws::Structure
241
254
  end
242
255
 
256
+ # The maintenance settings and migration policies for the destination
257
+ # table.
258
+ #
259
+ # @!attribute [rw] maintenance_settings
260
+ # The maintenance settings for the destination table. The migration
261
+ # applies them when it creates the table: snapshot management starts
262
+ # then, and compaction starts after you complete the migration. If you
263
+ # don't specify a setting, the migration uses its default: a target
264
+ # file size of 512 MB, the binpack compaction strategy, at least 3
265
+ # snapshots, and a maximum snapshot age of 120 hours. Unreferenced
266
+ # file removal follows the table bucket's configuration after you
267
+ # complete the migration.
268
+ # @return [Types::MaintenanceSettings]
269
+ #
270
+ # @!attribute [rw] migration_policies
271
+ # The policies for source data that doesn't fit the destination
272
+ # schema.
273
+ # @return [Types::MigrationPolicies]
274
+ #
275
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/DataMigrationOverview AWS API Documentation
276
+ #
277
+ class DataMigrationOverview < Struct.new(
278
+ :maintenance_settings,
279
+ :migration_policies)
280
+ SENSITIVE = []
281
+ include Aws::Structure
282
+ end
283
+
284
+ # The maintenance settings and migration policies for the destination
285
+ # table.
286
+ #
287
+ # @!attribute [rw] maintenance_settings
288
+ # The maintenance settings for the destination table. The migration
289
+ # applies them when it creates the table: snapshot management starts
290
+ # then, and compaction starts after you complete the migration. If you
291
+ # don't specify a setting, the migration uses its default: a target
292
+ # file size of 512 MB, the binpack compaction strategy, at least 3
293
+ # snapshots, and a maximum snapshot age of 120 hours. Unreferenced
294
+ # file removal follows the table bucket's configuration after you
295
+ # complete the migration.
296
+ # @return [Types::MaintenanceSettings]
297
+ #
298
+ # @!attribute [rw] migration_policies
299
+ # The policies for source data that doesn't fit the destination
300
+ # schema.
301
+ # @return [Types::MigrationPolicies]
302
+ #
303
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/DataMigrationSettings AWS API Documentation
304
+ #
305
+ class DataMigrationSettings < Struct.new(
306
+ :maintenance_settings,
307
+ :migration_policies)
308
+ SENSITIVE = []
309
+ include Aws::Structure
310
+ end
311
+
243
312
  # @!attribute [rw] table_bucket_arn
244
313
  # The Amazon Resource Name (ARN) of the table bucket associated with
245
314
  # the namespace.
@@ -395,6 +464,101 @@ module Aws::S3Tables
395
464
  include Aws::Structure
396
465
  end
397
466
 
467
+ # The table that a migration creates in a table bucket and migrates the
468
+ # source into.
469
+ #
470
+ # @!attribute [rw] table_bucket_arn
471
+ # The Amazon Resource Name (ARN) of the table bucket to create the
472
+ # table in.
473
+ # @return [String]
474
+ #
475
+ # @!attribute [rw] namespace
476
+ # The namespace to create the table in.
477
+ # @return [String]
478
+ #
479
+ # @!attribute [rw] name
480
+ # The name of the table to create.
481
+ # @return [String]
482
+ #
483
+ # @!attribute [rw] encryption_configuration
484
+ # The encryption configuration for the table. If you don't specify
485
+ # one, the table uses the default encryption configuration of its
486
+ # table bucket. If you specify an encryption configuration, the
487
+ # migration role must have the `s3tables:PutTableEncryption`
488
+ # permission. If you choose SSE-KMS, the migration role must have the
489
+ # `kms:DescribeKey`, `kms:GenerateDataKey` and `kms:Decrypt`
490
+ # permissions on the KMS key, and the S3 Tables maintenance principal
491
+ # must have access to it. For more information, see [Permissions
492
+ # requirements for S3 Tables SSE-KMS encryption][1].
493
+ #
494
+ #
495
+ #
496
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-kms-permissions.html
497
+ # @return [Types::EncryptionConfiguration]
498
+ #
499
+ # @!attribute [rw] storage_class_configuration
500
+ # The storage class configuration for the table. If you don't specify
501
+ # one, the table inherits the storage class configuration of its table
502
+ # bucket. If you specify a storage class configuration, the migration
503
+ # role must have the `s3tables:PutTableStorageClass` permission.
504
+ # @return [Types::StorageClassConfiguration]
505
+ #
506
+ # @!attribute [rw] tags
507
+ # The tags to add to the table. A tag is a key-value pair that you
508
+ # apply to your resources. For more information, see [Tagging for cost
509
+ # allocation or attribute-based access control (ABAC)][1]. If you
510
+ # specify tags, the migration role must have the
511
+ # `s3tables:TagResource` permission.
512
+ #
513
+ #
514
+ #
515
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html
516
+ # @return [Hash<String,String>]
517
+ #
518
+ # @!attribute [rw] properties
519
+ # The properties of the destination table, such as its Iceberg format
520
+ # version and the format of its data files.
521
+ # @return [Types::MigrationTableProperties]
522
+ #
523
+ # @!attribute [rw] schema
524
+ # The schema of the table to create. If you don't specify a schema,
525
+ # the migration infers it from the source table, with every column
526
+ # optional. A schema that you specify must include every partition
527
+ # column of the source table. It can leave out other columns only if
528
+ # `unmatchedSourceFieldsPolicy` is `drop`. A struct column must have
529
+ # the same fields as the source column. Column default values aren't
530
+ # supported. If you mark a column as required, every source object
531
+ # must have a value for it: an object with a null value in a required
532
+ # column fails to migrate. The destination table is partitioned in the
533
+ # same way as the source table. To specify fields in
534
+ # `icebergSortOrder`, you must specify a schema.
535
+ # @return [Types::IcebergSchemaV2]
536
+ #
537
+ # @!attribute [rw] iceberg_sort_order
538
+ # The sort order of the rows within each data file that the migration
539
+ # writes. A sort order can have up to five fields, each naming a
540
+ # column of the schema that you specify by its field ID, so to use a
541
+ # sort order you must specify a schema. `StartTableMigration` rejects
542
+ # a field that names no column of the schema, or whose transform
543
+ # doesn't fit the column's type.
544
+ # @return [Types::IcebergSortOrder]
545
+ #
546
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/DestinationTable AWS API Documentation
547
+ #
548
+ class DestinationTable < Struct.new(
549
+ :table_bucket_arn,
550
+ :namespace,
551
+ :name,
552
+ :encryption_configuration,
553
+ :storage_class_configuration,
554
+ :tags,
555
+ :properties,
556
+ :schema,
557
+ :iceberg_sort_order)
558
+ SENSITIVE = []
559
+ include Aws::Structure
560
+ end
561
+
398
562
  # Configuration specifying how data should be encrypted. This structure
399
563
  # defines the encryption algorithm and optional KMS key to be used for
400
564
  # server-side encryption.
@@ -864,6 +1028,177 @@ module Aws::S3Tables
864
1028
  include Aws::Structure
865
1029
  end
866
1030
 
1031
+ # @!attribute [rw] migration_id
1032
+ # The ID of the migration to get. Specify either `migrationId` or
1033
+ # `tableARN`, not both.
1034
+ # @return [String]
1035
+ #
1036
+ # @!attribute [rw] table_arn
1037
+ # The Amazon Resource Name (ARN) of the destination table. Gets the
1038
+ # table's most recent migration. Specify either `tableARN` or
1039
+ # `migrationId`, not both.
1040
+ # @return [String]
1041
+ #
1042
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/GetTableMigrationRequest AWS API Documentation
1043
+ #
1044
+ class GetTableMigrationRequest < Struct.new(
1045
+ :migration_id,
1046
+ :table_arn)
1047
+ SENSITIVE = []
1048
+ include Aws::Structure
1049
+ end
1050
+
1051
+ # @!attribute [rw] migration_id
1052
+ # The ID of the migration.
1053
+ # @return [String]
1054
+ #
1055
+ # @!attribute [rw] table_bucket_arn
1056
+ # The Amazon Resource Name (ARN) of the table bucket that contains the
1057
+ # destination table.
1058
+ # @return [String]
1059
+ #
1060
+ # @!attribute [rw] namespace
1061
+ # The namespace of the destination table.
1062
+ # @return [String]
1063
+ #
1064
+ # @!attribute [rw] table_arn
1065
+ # The Amazon Resource Name (ARN) of the destination table, once the
1066
+ # migration creates it.
1067
+ # @return [String]
1068
+ #
1069
+ # @!attribute [rw] name
1070
+ # The name of the destination table.
1071
+ # @return [String]
1072
+ #
1073
+ # @!attribute [rw] type
1074
+ # The type of the migration. Valid values:
1075
+ #
1076
+ # * `start` - A migration that `StartTableMigration` started.
1077
+ #
1078
+ # * `sync` - A migration that `SyncTableMigration` started.
1079
+ # @return [String]
1080
+ #
1081
+ # @!attribute [rw] state
1082
+ # The state of the migration. Valid values:
1083
+ #
1084
+ # * `new` - S3 Tables accepted the request.
1085
+ #
1086
+ # * `planning` - The migration is checking the source table, its
1087
+ # objects and the destination for compatibility, and writing the
1088
+ # compatibility reports.
1089
+ #
1090
+ # * `pendingReview` - Planning finished, and the migration waits for
1091
+ # you to continue or cancel it with `UpdateTableMigration`.
1092
+ #
1093
+ # * `queued` - The migration is waiting to start migrating data.
1094
+ #
1095
+ # * `migrating` - The migration is running the plan from the
1096
+ # `planning` state: it copies data and commits it to the destination
1097
+ # table. A migration reaches this state only if `hasValidPlan` is
1098
+ # `true`.
1099
+ #
1100
+ # * `succeeded` - Every planned object migrated.
1101
+ #
1102
+ # * `failed` - The migration failed. Check `failureReason` for the
1103
+ # cause.
1104
+ #
1105
+ # * `cancelling` - You cancelled the migration, and it is finishing
1106
+ # the work in progress.
1107
+ #
1108
+ # * `cancelled` - The migration is cancelled.
1109
+ #
1110
+ # A migration ends in the `succeeded`, `failed` or `cancelled` state.
1111
+ # You can cancel it until it ends.
1112
+ # @return [String]
1113
+ #
1114
+ # @!attribute [rw] role_arn
1115
+ # The Amazon Resource Name (ARN) of the IAM role that the migration
1116
+ # uses.
1117
+ # @return [String]
1118
+ #
1119
+ # @!attribute [rw] review_migration_plan
1120
+ # A Boolean value that specifies whether the migration waits in the
1121
+ # `pendingReview` state, so that you can review the compatibility
1122
+ # reports before it migrates any data.
1123
+ # @return [Boolean]
1124
+ #
1125
+ # @!attribute [rw] has_valid_plan
1126
+ # A Boolean value that specifies whether planning produced a plan that
1127
+ # the migration can run. If planning hasn't finished, this value
1128
+ # isn't returned.
1129
+ # @return [Boolean]
1130
+ #
1131
+ # @!attribute [rw] created_at
1132
+ # The date and time that the migration was created.
1133
+ # @return [Time]
1134
+ #
1135
+ # @!attribute [rw] state_updated_at
1136
+ # The date and time that the migration's state last changed.
1137
+ # @return [Time]
1138
+ #
1139
+ # @!attribute [rw] failure_reason
1140
+ # The reason that the migration failed. The code names the cause, such
1141
+ # as a migration role that S3 Tables can't assume or an Amazon Web
1142
+ # Services Glue table that doesn't exist, or the report that lists
1143
+ # the findings. This value is returned only when the migration is in
1144
+ # the `failed` state.
1145
+ # @return [Types::MigrationFailureReason]
1146
+ #
1147
+ # @!attribute [rw] planning_stats
1148
+ # Statistics about the source and the partitions in the migration.
1149
+ # This value is returned after planning finishes.
1150
+ # @return [Types::PlanningStats]
1151
+ #
1152
+ # @!attribute [rw] migration_stats
1153
+ # The number of objects that migrated, failed or are pending. These
1154
+ # counts are set when planning finishes and updated when the migration
1155
+ # ends.
1156
+ # @return [Types::MigrationStats]
1157
+ #
1158
+ # @!attribute [rw] source_type
1159
+ # The type of the migration's source.
1160
+ # @return [String]
1161
+ #
1162
+ # @!attribute [rw] source
1163
+ # The source table of the migration.
1164
+ # @return [Types::SourceConfiguration]
1165
+ #
1166
+ # @!attribute [rw] data_migration
1167
+ # The maintenance settings and migration policies for the destination
1168
+ # table.
1169
+ # @return [Types::DataMigrationOverview]
1170
+ #
1171
+ # @!attribute [rw] migration_output
1172
+ # The bucket and prefixes for the migration's reports, and the
1173
+ # location of each report once it is written.
1174
+ # @return [Types::MigrationOutputOverview]
1175
+ #
1176
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/GetTableMigrationResponse AWS API Documentation
1177
+ #
1178
+ class GetTableMigrationResponse < Struct.new(
1179
+ :migration_id,
1180
+ :table_bucket_arn,
1181
+ :namespace,
1182
+ :table_arn,
1183
+ :name,
1184
+ :type,
1185
+ :state,
1186
+ :role_arn,
1187
+ :review_migration_plan,
1188
+ :has_valid_plan,
1189
+ :created_at,
1190
+ :state_updated_at,
1191
+ :failure_reason,
1192
+ :planning_stats,
1193
+ :migration_stats,
1194
+ :source_type,
1195
+ :source,
1196
+ :data_migration,
1197
+ :migration_output)
1198
+ SENSITIVE = []
1199
+ include Aws::Structure
1200
+ end
1201
+
867
1202
  # @!attribute [rw] table_bucket_arn
868
1203
  # The Amazon Resource Name (ARN) of the table bucket that contains the
869
1204
  # table.
@@ -1184,6 +1519,38 @@ module Aws::S3Tables
1184
1519
  include Aws::Structure
1185
1520
  end
1186
1521
 
1522
+ # An Amazon Web Services Glue Data Catalog table to migrate. The table
1523
+ # must be an external Apache Hive table whose data is stored as Parquet
1524
+ # in a general purpose bucket in the same account and Region as the
1525
+ # table bucket. Views, transactional (ACID) tables, tables in an open
1526
+ # table format such as Apache Iceberg, and tables registered with Amazon
1527
+ # Web Services Lake Formation can't be migrated. If the table can't be
1528
+ # migrated, the migration fails, and the table compatibility report
1529
+ # lists the reason.
1530
+ #
1531
+ # @!attribute [rw] catalog_id
1532
+ # The ID of the Data Catalog that contains the table. It must be your
1533
+ # account ID.
1534
+ # @return [String]
1535
+ #
1536
+ # @!attribute [rw] database_name
1537
+ # The name of the database that contains the table.
1538
+ # @return [String]
1539
+ #
1540
+ # @!attribute [rw] table_name
1541
+ # The name of the table.
1542
+ # @return [String]
1543
+ #
1544
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/GlueTableSource AWS API Documentation
1545
+ #
1546
+ class GlueTableSource < Struct.new(
1547
+ :catalog_id,
1548
+ :database_name,
1549
+ :table_name)
1550
+ SENSITIVE = []
1551
+ include Aws::Structure
1552
+ end
1553
+
1187
1554
  # Contains details about the compaction settings for an Iceberg table.
1188
1555
  #
1189
1556
  # @!attribute [rw] target_file_size_mb
@@ -1603,6 +1970,81 @@ module Aws::S3Tables
1603
1970
  include Aws::Structure
1604
1971
  end
1605
1972
 
1973
+ # @!attribute [rw] table_bucket_arn
1974
+ # The Amazon Resource Name (ARN) of the table bucket to list
1975
+ # migrations for.
1976
+ # @return [String]
1977
+ #
1978
+ # @!attribute [rw] namespace
1979
+ # The namespace to list migrations for. Requires `tableBucketARN`.
1980
+ # @return [String]
1981
+ #
1982
+ # @!attribute [rw] name
1983
+ # The name of the table to list migrations for. Requires
1984
+ # `tableBucketARN` and `namespace`.
1985
+ # @return [String]
1986
+ #
1987
+ # @!attribute [rw] table_arn
1988
+ # The Amazon Resource Name (ARN) of the table to list migrations for.
1989
+ # The list includes the migrations into this table. To also list
1990
+ # migrations into an earlier table of the same name, specify
1991
+ # `tableBucketARN`, `namespace` and `name` instead. Specify either
1992
+ # `tableARN` or `tableBucketARN`, not both.
1993
+ # @return [String]
1994
+ #
1995
+ # @!attribute [rw] state
1996
+ # The state to filter the list by. For the valid values, see the
1997
+ # `state` member of `GetTableMigration`.
1998
+ # @return [String]
1999
+ #
2000
+ # @!attribute [rw] has_valid_plan
2001
+ # The `hasValidPlan` value to filter the list by. Migrations that are
2002
+ # still planning aren't listed, whichever value you specify.
2003
+ # @return [Boolean]
2004
+ #
2005
+ # @!attribute [rw] max_results
2006
+ # The maximum number of migrations to return, from 1 to 1,000. If you
2007
+ # don't specify a value, the default is 100.
2008
+ # @return [Integer]
2009
+ #
2010
+ # @!attribute [rw] next_token
2011
+ # The `nextToken` from a previous response, to get the next page of
2012
+ # results.
2013
+ # @return [String]
2014
+ #
2015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/ListTableMigrationsRequest AWS API Documentation
2016
+ #
2017
+ class ListTableMigrationsRequest < Struct.new(
2018
+ :table_bucket_arn,
2019
+ :namespace,
2020
+ :name,
2021
+ :table_arn,
2022
+ :state,
2023
+ :has_valid_plan,
2024
+ :max_results,
2025
+ :next_token)
2026
+ SENSITIVE = []
2027
+ include Aws::Structure
2028
+ end
2029
+
2030
+ # @!attribute [rw] migrations
2031
+ # The migrations, newest first.
2032
+ # @return [Array<Types::MigrationSummary>]
2033
+ #
2034
+ # @!attribute [rw] next_token
2035
+ # A token to pass as `nextToken` to get the next page of results. If
2036
+ # there are no more results, this value isn't returned.
2037
+ # @return [String]
2038
+ #
2039
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/ListTableMigrationsResponse AWS API Documentation
2040
+ #
2041
+ class ListTableMigrationsResponse < Struct.new(
2042
+ :migrations,
2043
+ :next_token)
2044
+ SENSITIVE = []
2045
+ include Aws::Structure
2046
+ end
2047
+
1606
2048
  # @!attribute [rw] table_bucket_arn
1607
2049
  # The Amazon resource Name (ARN) of the table bucket.
1608
2050
  # @return [String]
@@ -1693,6 +2135,32 @@ module Aws::S3Tables
1693
2135
  include Aws::Structure
1694
2136
  end
1695
2137
 
2138
+ # The maintenance settings for the destination table. The migration
2139
+ # applies them when it creates the table: snapshot management starts
2140
+ # then, and compaction starts after you complete the migration. If you
2141
+ # don't specify a setting, the migration uses its default: a target
2142
+ # file size of 512 MB, the binpack compaction strategy, at least 3
2143
+ # snapshots, and a maximum snapshot age of 120 hours. Unreferenced file
2144
+ # removal follows the table bucket's configuration after you complete
2145
+ # the migration.
2146
+ #
2147
+ # @!attribute [rw] iceberg_compaction
2148
+ # The compaction settings.
2149
+ # @return [Types::MigrationCompactionSettings]
2150
+ #
2151
+ # @!attribute [rw] iceberg_snapshot_management
2152
+ # The snapshot management settings.
2153
+ # @return [Types::MigrationSnapshotManagementSettings]
2154
+ #
2155
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MaintenanceSettings AWS API Documentation
2156
+ #
2157
+ class MaintenanceSettings < Struct.new(
2158
+ :iceberg_compaction,
2159
+ :iceberg_snapshot_management)
2160
+ SENSITIVE = []
2161
+ include Aws::Structure
2162
+ end
2163
+
1696
2164
  # Contains information about tables that are managed by S3 Tables,
1697
2165
  # including replication information for replica tables.
1698
2166
  #
@@ -1724,6 +2192,418 @@ module Aws::S3Tables
1724
2192
  include Aws::Structure
1725
2193
  end
1726
2194
 
2195
+ # The compaction settings that a migration applies to the destination
2196
+ # table.
2197
+ #
2198
+ # @!attribute [rw] target_file_size_mb
2199
+ # The target size, from 64 to 512 MB, of the data files that the
2200
+ # migration writes, and of the files that compaction writes after you
2201
+ # complete the migration. The default is 512.
2202
+ # @return [Integer]
2203
+ #
2204
+ # @!attribute [rw] strategy
2205
+ # The compaction strategy. The only valid value is `binpack`, which is
2206
+ # the default.
2207
+ # @return [String]
2208
+ #
2209
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationCompactionSettings AWS API Documentation
2210
+ #
2211
+ class MigrationCompactionSettings < Struct.new(
2212
+ :target_file_size_mb,
2213
+ :strategy)
2214
+ SENSITIVE = []
2215
+ include Aws::Structure
2216
+ end
2217
+
2218
+ # The reason that a migration failed: a code and, when there is one, the
2219
+ # resource or reason it applies to. This value is returned only when the
2220
+ # migration is in the `failed` state.
2221
+ #
2222
+ # @!attribute [rw] code
2223
+ # The failure code. It names the cause or the report that lists the
2224
+ # findings. Valid values:
2225
+ #
2226
+ # * `rolePermissions` - S3 Tables couldn't assume the migration role,
2227
+ # or the role doesn't have a permission that the migration needs.
2228
+ # `detail` is the role ARN.
2229
+ #
2230
+ # * `sourcePermissions` - The migration role couldn't read the Amazon
2231
+ # Web Services Glue table or the source objects. `detail` names the
2232
+ # table (`database.table`) or the source bucket.
2233
+ #
2234
+ # * `destinationPermissions` - The migration role couldn't write to
2235
+ # the table bucket or the report bucket. `detail` names the bucket.
2236
+ #
2237
+ # * `resourceNotFound` - A resource that you specified doesn't exist,
2238
+ # such as the Amazon Web Services Glue table or the source bucket.
2239
+ # `detail` names it.
2240
+ #
2241
+ # * `sourceNotSupported` - The source table can't be migrated, for
2242
+ # example because it is empty, has too many objects, or has columns
2243
+ # or partitions that can't be migrated. The table compatibility
2244
+ # report lists the findings.
2245
+ #
2246
+ # * `tableCompatibilityReport` - The migration couldn't create the
2247
+ # destination table, for example because a table with that name
2248
+ # already exists or the KMS key can't be used. For a sync, the
2249
+ # destination table changed after the previous migration. The table
2250
+ # compatibility report lists the finding.
2251
+ #
2252
+ # * `objectCompatibilityReport` - Some source objects can't be
2253
+ # migrated, for example because they are archived, or because they
2254
+ # were overwritten after an earlier migration migrated them. The
2255
+ # object compatibility report lists them.
2256
+ #
2257
+ # * `objectMigrationReport` - Some source objects failed to migrate.
2258
+ # The object migration report lists them and the cause for each.
2259
+ #
2260
+ # * `reportBucketNotSupported` - The report bucket can't receive the
2261
+ # migration's reports, for example because it is in a different
2262
+ # Region than the table bucket.
2263
+ #
2264
+ # * `internalError` - S3 Tables encountered an internal error. Retry
2265
+ # the migration, and contact Amazon Web Services Support if the
2266
+ # error persists.
2267
+ # @return [String]
2268
+ #
2269
+ # @!attribute [rw] detail
2270
+ # The resource that the failure applies to, such as the role ARN, the
2271
+ # Amazon Web Services Glue table (`database.table`) or a bucket. For
2272
+ # `sourceNotSupported`, the reason that the source isn't supported,
2273
+ # such as `EMPTY_TABLE`. This value isn't returned for the report
2274
+ # codes or for `internalError`.
2275
+ # @return [String]
2276
+ #
2277
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationFailureReason AWS API Documentation
2278
+ #
2279
+ class MigrationFailureReason < Struct.new(
2280
+ :code,
2281
+ :detail)
2282
+ SENSITIVE = []
2283
+ include Aws::Structure
2284
+ end
2285
+
2286
+ # The bucket and prefixes that a migration writes its reports to. Every
2287
+ # report goes to one bucket, each under its own prefix.
2288
+ #
2289
+ # @!attribute [rw] bucket
2290
+ # The general purpose bucket that the migration writes every report
2291
+ # to.
2292
+ # @return [String]
2293
+ #
2294
+ # @!attribute [rw] prefixes
2295
+ # The key prefix for each report.
2296
+ # @return [Types::MigrationReportPrefixes]
2297
+ #
2298
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationOutputConfiguration AWS API Documentation
2299
+ #
2300
+ class MigrationOutputConfiguration < Struct.new(
2301
+ :bucket,
2302
+ :prefixes)
2303
+ SENSITIVE = []
2304
+ include Aws::Structure
2305
+ end
2306
+
2307
+ # Where a migration writes its reports, and the location of each report
2308
+ # once it is written.
2309
+ #
2310
+ # @!attribute [rw] bucket
2311
+ # The general purpose bucket that the migration writes every report
2312
+ # to.
2313
+ # @return [String]
2314
+ #
2315
+ # @!attribute [rw] table_compatibility_report
2316
+ # The table compatibility report: the sample object that the schema is
2317
+ # inferred from, the table-level findings, and one row for each
2318
+ # destination column with its type change and how the migration
2319
+ # policies apply to it. The migration writes it when planning
2320
+ # finishes, before any data migrates. If planning fails, the report
2321
+ # might not be written.
2322
+ # @return [Types::ReportOverview]
2323
+ #
2324
+ # @!attribute [rw] object_compatibility_report
2325
+ # The object compatibility report: one row for each source object
2326
+ # under the source table's location, with whether the migration
2327
+ # includes the object and its most severe finding. The migration
2328
+ # writes it when planning finishes. If planning fails, the report
2329
+ # might not be written.
2330
+ # @return [Types::ReportOverview]
2331
+ #
2332
+ # @!attribute [rw] object_migration_report
2333
+ # The object migration report: one row for each source object that the
2334
+ # migration tried to migrate, with whether it migrated, how it was
2335
+ # transformed, and why it failed. The migration writes it once, when
2336
+ # the migration ends. It isn't written if planning fails or if a sync
2337
+ # has nothing to migrate.
2338
+ # @return [Types::ReportOverview]
2339
+ #
2340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationOutputOverview AWS API Documentation
2341
+ #
2342
+ class MigrationOutputOverview < Struct.new(
2343
+ :bucket,
2344
+ :table_compatibility_report,
2345
+ :object_compatibility_report,
2346
+ :object_migration_report)
2347
+ SENSITIVE = []
2348
+ include Aws::Structure
2349
+ end
2350
+
2351
+ # The policies for source data that doesn't fit the destination schema.
2352
+ #
2353
+ # @!attribute [rw] unmatched_source_fields_policy
2354
+ # The migration policy for a source field that has no matching column
2355
+ # in the destination schema. Valid values:
2356
+ #
2357
+ # * `fail` - Fails the migration. This is the default.
2358
+ #
2359
+ # * `drop` - Leaves source columns that the destination schema
2360
+ # doesn't have out of the destination table, and doesn't migrate
2361
+ # source objects outside the Amazon Web Services Glue table's
2362
+ # partition locations.
2363
+ #
2364
+ # A destination schema that leaves out a partition column or a field
2365
+ # of a struct column fails the migration under either value.
2366
+ # @return [String]
2367
+ #
2368
+ # @!attribute [rw] incompatible_values_policy
2369
+ # The migration policy for a source value that the destination
2370
+ # column's type can't hold. Valid values:
2371
+ #
2372
+ # * `fail` - Fails the migration. This is the default.
2373
+ #
2374
+ # * `setNull` - Writes null for a value that the destination column's
2375
+ # type can't hold. If a column's type in a source object is
2376
+ # incompatible with the destination column's type, the column is
2377
+ # null for that whole object.
2378
+ #
2379
+ # A required column, or a type that migration doesn't support, fails
2380
+ # the migration under either value.
2381
+ # @return [String]
2382
+ #
2383
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationPolicies AWS API Documentation
2384
+ #
2385
+ class MigrationPolicies < Struct.new(
2386
+ :unmatched_source_fields_policy,
2387
+ :incompatible_values_policy)
2388
+ SENSITIVE = []
2389
+ include Aws::Structure
2390
+ end
2391
+
2392
+ # The key prefix for each report. If you don't specify a prefix for a
2393
+ # report, its keys start at the root of the bucket.
2394
+ #
2395
+ # @!attribute [rw] table_compatibility_report
2396
+ # The key prefix for the table compatibility report, up to 512 bytes.
2397
+ # If not specified, the report's keys start at the root of the
2398
+ # bucket.
2399
+ # @return [String]
2400
+ #
2401
+ # @!attribute [rw] object_compatibility_report
2402
+ # The key prefix for the object compatibility report, up to 512 bytes.
2403
+ # If not specified, the report's keys start at the root of the
2404
+ # bucket.
2405
+ # @return [String]
2406
+ #
2407
+ # @!attribute [rw] object_migration_report
2408
+ # The key prefix for the object migration report, up to 512 bytes. If
2409
+ # not specified, the report's keys start at the root of the bucket.
2410
+ # @return [String]
2411
+ #
2412
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationReportPrefixes AWS API Documentation
2413
+ #
2414
+ class MigrationReportPrefixes < Struct.new(
2415
+ :table_compatibility_report,
2416
+ :object_compatibility_report,
2417
+ :object_migration_report)
2418
+ SENSITIVE = []
2419
+ include Aws::Structure
2420
+ end
2421
+
2422
+ # The snapshot management settings that a migration applies to the
2423
+ # destination table.
2424
+ #
2425
+ # @!attribute [rw] min_snapshots_to_keep
2426
+ # The minimum number of snapshots to keep. The value must be 3 or
2427
+ # more. The default is 3.
2428
+ # @return [Integer]
2429
+ #
2430
+ # @!attribute [rw] max_snapshot_age_hours
2431
+ # The maximum age, in hours, of a snapshot before it can be expired.
2432
+ # The default is 120.
2433
+ # @return [Integer]
2434
+ #
2435
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationSnapshotManagementSettings AWS API Documentation
2436
+ #
2437
+ class MigrationSnapshotManagementSettings < Struct.new(
2438
+ :min_snapshots_to_keep,
2439
+ :max_snapshot_age_hours)
2440
+ SENSITIVE = []
2441
+ include Aws::Structure
2442
+ end
2443
+
2444
+ # The number of source objects that migrated, failed or are pending. For
2445
+ # a sync, the counts cover every object of the table after the sync,
2446
+ # including objects that earlier migrations migrated. The counts are set
2447
+ # when planning finishes and updated when the migration ends.
2448
+ #
2449
+ # @!attribute [rw] objects_migrated
2450
+ # The number of source objects whose data the migration wrote to the
2451
+ # destination table. Migrated data can be queried after the migration
2452
+ # commits it. If the migration fails or is cancelled, some migrated
2453
+ # objects might not be committed.
2454
+ # @return [Integer]
2455
+ #
2456
+ # @!attribute [rw] objects_failed_migration
2457
+ # The number of source objects that didn't migrate, because they
2458
+ # failed or because another object, such as an object in the same
2459
+ # partition, failed. The object migration report lists the cause for
2460
+ # each object.
2461
+ # @return [Integer]
2462
+ #
2463
+ # @!attribute [rw] objects_pending_migration
2464
+ # The number of source objects that haven't migrated or failed yet.
2465
+ # When a migration fails or is cancelled, these are the objects that
2466
+ # it didn't migrate.
2467
+ # @return [Integer]
2468
+ #
2469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationStats AWS API Documentation
2470
+ #
2471
+ class MigrationStats < Struct.new(
2472
+ :objects_migrated,
2473
+ :objects_failed_migration,
2474
+ :objects_pending_migration)
2475
+ SENSITIVE = []
2476
+ include Aws::Structure
2477
+ end
2478
+
2479
+ # A summary of a migration.
2480
+ #
2481
+ # @!attribute [rw] migration_id
2482
+ # The ID of the migration.
2483
+ # @return [String]
2484
+ #
2485
+ # @!attribute [rw] table_bucket_arn
2486
+ # The Amazon Resource Name (ARN) of the table bucket that contains the
2487
+ # destination table.
2488
+ # @return [String]
2489
+ #
2490
+ # @!attribute [rw] namespace
2491
+ # The namespace of the destination table.
2492
+ # @return [String]
2493
+ #
2494
+ # @!attribute [rw] table_arn
2495
+ # The Amazon Resource Name (ARN) of the destination table, once the
2496
+ # migration creates it.
2497
+ # @return [String]
2498
+ #
2499
+ # @!attribute [rw] name
2500
+ # The name of the destination table.
2501
+ # @return [String]
2502
+ #
2503
+ # @!attribute [rw] type
2504
+ # The type of the migration. Valid values:
2505
+ #
2506
+ # * `start` - A migration that `StartTableMigration` started.
2507
+ #
2508
+ # * `sync` - A migration that `SyncTableMigration` started.
2509
+ # @return [String]
2510
+ #
2511
+ # @!attribute [rw] state
2512
+ # The state of the migration. Valid values:
2513
+ #
2514
+ # * `new` - S3 Tables accepted the request.
2515
+ #
2516
+ # * `planning` - The migration is checking the source table, its
2517
+ # objects and the destination for compatibility, and writing the
2518
+ # compatibility reports.
2519
+ #
2520
+ # * `pendingReview` - Planning finished, and the migration waits for
2521
+ # you to continue or cancel it with `UpdateTableMigration`.
2522
+ #
2523
+ # * `queued` - The migration is waiting to start migrating data.
2524
+ #
2525
+ # * `migrating` - The migration is running the plan from the
2526
+ # `planning` state: it copies data and commits it to the destination
2527
+ # table. A migration reaches this state only if `hasValidPlan` is
2528
+ # `true`.
2529
+ #
2530
+ # * `succeeded` - Every planned object migrated.
2531
+ #
2532
+ # * `failed` - The migration failed. Check `failureReason` for the
2533
+ # cause.
2534
+ #
2535
+ # * `cancelling` - You cancelled the migration, and it is finishing
2536
+ # the work in progress.
2537
+ #
2538
+ # * `cancelled` - The migration is cancelled.
2539
+ # @return [String]
2540
+ #
2541
+ # @!attribute [rw] has_valid_plan
2542
+ # A Boolean value that specifies whether planning produced a plan that
2543
+ # the migration can run. If planning hasn't finished, this value
2544
+ # isn't returned.
2545
+ # @return [Boolean]
2546
+ #
2547
+ # @!attribute [rw] created_at
2548
+ # The date and time that the migration was created.
2549
+ # @return [Time]
2550
+ #
2551
+ # @!attribute [rw] state_updated_at
2552
+ # The date and time that the migration's state last changed.
2553
+ # @return [Time]
2554
+ #
2555
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationSummary AWS API Documentation
2556
+ #
2557
+ class MigrationSummary < Struct.new(
2558
+ :migration_id,
2559
+ :table_bucket_arn,
2560
+ :namespace,
2561
+ :table_arn,
2562
+ :name,
2563
+ :type,
2564
+ :state,
2565
+ :has_valid_plan,
2566
+ :created_at,
2567
+ :state_updated_at)
2568
+ SENSITIVE = []
2569
+ include Aws::Structure
2570
+ end
2571
+
2572
+ # The properties of the data files that a migration writes. The
2573
+ # migration also sets the compression codec and dictionary encoding as
2574
+ # the destination table's write properties, so they remain the table's
2575
+ # defaults after you complete the migration.
2576
+ #
2577
+ # @!attribute [rw] write_format
2578
+ # The file format of the data files. The only supported format is
2579
+ # `parquet`, the default.
2580
+ # @return [String]
2581
+ #
2582
+ # @!attribute [rw] iceberg_format_version
2583
+ # The Iceberg format version of the destination table. Valid values
2584
+ # are `2` and `3`. The default is `2`.
2585
+ # @return [Integer]
2586
+ #
2587
+ # @!attribute [rw] compression_codec
2588
+ # The compression codec of the data files. The default is `zstd`.
2589
+ # @return [String]
2590
+ #
2591
+ # @!attribute [rw] dictionary_encoding
2592
+ # Specifies whether the data files use dictionary encoding. The
2593
+ # default is `true`.
2594
+ # @return [Boolean]
2595
+ #
2596
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/MigrationTableProperties AWS API Documentation
2597
+ #
2598
+ class MigrationTableProperties < Struct.new(
2599
+ :write_format,
2600
+ :iceberg_format_version,
2601
+ :compression_codec,
2602
+ :dictionary_encoding)
2603
+ SENSITIVE = []
2604
+ include Aws::Structure
2605
+ end
2606
+
1727
2607
  # Contains details about a namespace.
1728
2608
  #
1729
2609
  # @!attribute [rw] namespace
@@ -1778,6 +2658,38 @@ module Aws::S3Tables
1778
2658
  include Aws::Structure
1779
2659
  end
1780
2660
 
2661
+ # Statistics about the source and the partitions in a migration.
2662
+ #
2663
+ # @!attribute [rw] objects_scanned
2664
+ # The number of source objects that the migration found under the
2665
+ # source table's location, whether or not it migrates them. The
2666
+ # object compatibility report has one row for each.
2667
+ # @return [Integer]
2668
+ #
2669
+ # @!attribute [rw] objects_planned
2670
+ # The number of source objects in the migration. For a start, these
2671
+ # are the data files in the Amazon Web Services Glue table's
2672
+ # partitions, or under the table's location if the table isn't
2673
+ # partitioned. For a sync, these are all the data files of the table
2674
+ # after the sync, including files that earlier migrations migrated.
2675
+ # @return [Integer]
2676
+ #
2677
+ # @!attribute [rw] partition_count
2678
+ # The number of partitions in the destination table after this
2679
+ # migration, or 0 if the source table isn't partitioned. This value
2680
+ # is returned when planning produces a valid plan.
2681
+ # @return [Integer]
2682
+ #
2683
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/PlanningStats AWS API Documentation
2684
+ #
2685
+ class PlanningStats < Struct.new(
2686
+ :objects_scanned,
2687
+ :objects_planned,
2688
+ :partition_count)
2689
+ SENSITIVE = []
2690
+ include Aws::Structure
2691
+ end
2692
+
1781
2693
  # @!attribute [rw] table_bucket_arn
1782
2694
  # The Amazon Resource Name (ARN) of the table bucket.
1783
2695
  # @return [String]
@@ -2137,6 +3049,49 @@ module Aws::S3Tables
2137
3049
  include Aws::Structure
2138
3050
  end
2139
3051
 
3052
+ # A report of a migration: the prefix it is written under and, once it
3053
+ # is written, its key, its checksum and, for the compatibility reports,
3054
+ # the number of blocking findings in each category.
3055
+ #
3056
+ # @!attribute [rw] prefix
3057
+ # The key prefix that the report is written under.
3058
+ # @return [String]
3059
+ #
3060
+ # @!attribute [rw] key
3061
+ # The key of the report object in the bucket. For the object
3062
+ # compatibility and object migration reports, this is the report's
3063
+ # manifest; for the table compatibility report, it is the report
3064
+ # itself. This value is returned after the migration writes the
3065
+ # report. A migration doesn't always write every report. For example,
3066
+ # a migration that fails during planning doesn't write the object
3067
+ # migration report.
3068
+ # @return [String]
3069
+ #
3070
+ # @!attribute [rw] checksum_crc64nvme
3071
+ # The Base64-encoded CRC64NVME checksum of the object that `key`
3072
+ # names. For a report that has a manifest, the manifest lists the
3073
+ # checksum of each report file. This value is returned after the
3074
+ # migration writes the report.
3075
+ # @return [String]
3076
+ #
3077
+ # @!attribute [rw] invalid_findings
3078
+ # For the compatibility reports, the number of blocking findings in
3079
+ # each category. The object compatibility report counts each blocked
3080
+ # object once, under its most severe finding. Categories with no
3081
+ # blocking findings are left out.
3082
+ # @return [Hash<String,Integer>]
3083
+ #
3084
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/ReportOverview AWS API Documentation
3085
+ #
3086
+ class ReportOverview < Struct.new(
3087
+ :prefix,
3088
+ :key,
3089
+ :checksum_crc64nvme,
3090
+ :invalid_findings)
3091
+ SENSITIVE = []
3092
+ include Aws::Structure
3093
+ end
3094
+
2140
3095
  # Contains details about a schema field.
2141
3096
  #
2142
3097
  # @!attribute [rw] id
@@ -2227,6 +3182,114 @@ module Aws::S3Tables
2227
3182
  include Aws::Structure
2228
3183
  end
2229
3184
 
3185
+ # The source to migrate from. Set exactly one member, and set
3186
+ # `sourceType` to match it.
3187
+ #
3188
+ # @note SourceConfiguration is a union - when making an API calls you must set exactly one of the members.
3189
+ #
3190
+ # @note SourceConfiguration is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of SourceConfiguration corresponding to the set member.
3191
+ #
3192
+ # @!attribute [rw] glue_table
3193
+ # An Amazon Web Services Glue Data Catalog table to migrate. The table
3194
+ # must be an external Apache Hive table whose data is stored as
3195
+ # Parquet in a general purpose bucket in the same account and Region
3196
+ # as the table bucket. Views, transactional (ACID) tables, tables in
3197
+ # an open table format such as Apache Iceberg, and tables registered
3198
+ # with Amazon Web Services Lake Formation can't be migrated. If the
3199
+ # table can't be migrated, the migration fails, and the table
3200
+ # compatibility report lists the reason.
3201
+ # @return [Types::GlueTableSource]
3202
+ #
3203
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/SourceConfiguration AWS API Documentation
3204
+ #
3205
+ class SourceConfiguration < Struct.new(
3206
+ :glue_table,
3207
+ :unknown)
3208
+ SENSITIVE = []
3209
+ include Aws::Structure
3210
+ include Aws::Structure::Union
3211
+
3212
+ class GlueTable < SourceConfiguration; end
3213
+ class Unknown < SourceConfiguration; end
3214
+ end
3215
+
3216
+ # @!attribute [rw] role_arn
3217
+ # The Amazon Resource Name (ARN) of the IAM role that the migration
3218
+ # uses to read the source table and its data and to write the
3219
+ # destination table and the reports. The role must be in your account,
3220
+ # and its trust policy must allow `migration.s3tables.amazonaws.com`
3221
+ # to assume it. You can limit the trust policy to the destination
3222
+ # table bucket with the `aws:SourceArn` and `aws:SourceAccount`
3223
+ # condition keys.
3224
+ # @return [String]
3225
+ #
3226
+ # @!attribute [rw] destination_table
3227
+ # The table to create and migrate the source into.
3228
+ # @return [Types::DestinationTable]
3229
+ #
3230
+ # @!attribute [rw] source_type
3231
+ # The type of the source. It must match the member that you set in
3232
+ # `source`.
3233
+ # @return [String]
3234
+ #
3235
+ # @!attribute [rw] source
3236
+ # The source table to migrate.
3237
+ # @return [Types::SourceConfiguration]
3238
+ #
3239
+ # @!attribute [rw] data_migration
3240
+ # The maintenance settings and migration policies for the destination
3241
+ # table.
3242
+ # @return [Types::DataMigrationSettings]
3243
+ #
3244
+ # @!attribute [rw] review_migration_plan
3245
+ # Specifies whether the migration waits in the `pendingReview` state,
3246
+ # so that you can review the compatibility reports before it migrates
3247
+ # any data. If `true`, the migration continues when you call
3248
+ # `UpdateTableMigration` with `requestedState` set to `queued`. If you
3249
+ # don't continue or cancel the migration within 30 days, the
3250
+ # migration fails. The default is `false`.
3251
+ # @return [Boolean]
3252
+ #
3253
+ # @!attribute [rw] migration_output
3254
+ # The bucket and prefixes that the migration writes its reports to.
3255
+ # The bucket must be a general purpose bucket in your account and in
3256
+ # the same Region as the table bucket, and the migration role must be
3257
+ # able to write objects to it. Otherwise, the migration fails when it
3258
+ # writes its first report.
3259
+ # @return [Types::MigrationOutputConfiguration]
3260
+ #
3261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/StartTableMigrationRequest AWS API Documentation
3262
+ #
3263
+ class StartTableMigrationRequest < Struct.new(
3264
+ :role_arn,
3265
+ :destination_table,
3266
+ :source_type,
3267
+ :source,
3268
+ :data_migration,
3269
+ :review_migration_plan,
3270
+ :migration_output)
3271
+ SENSITIVE = []
3272
+ include Aws::Structure
3273
+ end
3274
+
3275
+ # @!attribute [rw] migration_id
3276
+ # The ID of the migration.
3277
+ # @return [String]
3278
+ #
3279
+ # @!attribute [rw] state
3280
+ # The state of the migration when the request is accepted, such as
3281
+ # `planning`.
3282
+ # @return [String]
3283
+ #
3284
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/StartTableMigrationResponse AWS API Documentation
3285
+ #
3286
+ class StartTableMigrationResponse < Struct.new(
3287
+ :migration_id,
3288
+ :state)
3289
+ SENSITIVE = []
3290
+ include Aws::Structure
3291
+ end
3292
+
2230
3293
  # The configuration details for the storage class of tables or table
2231
3294
  # buckets. This allows you to optimize storage costs by selecting the
2232
3295
  # appropriate storage class based on your access patterns and
@@ -2246,6 +3309,67 @@ module Aws::S3Tables
2246
3309
  include Aws::Structure
2247
3310
  end
2248
3311
 
3312
+ # @!attribute [rw] role_arn
3313
+ # The Amazon Resource Name (ARN) of the IAM role that the sync uses to
3314
+ # read the source table and its data and to write the destination
3315
+ # table and the reports. The role must be in your account, and its
3316
+ # trust policy must allow `migration.s3tables.amazonaws.com` to assume
3317
+ # it. You can limit the trust policy to the destination table bucket
3318
+ # with the `aws:SourceArn` and `aws:SourceAccount` condition keys.
3319
+ # @return [String]
3320
+ #
3321
+ # @!attribute [rw] table_arn
3322
+ # The Amazon Resource Name (ARN) of the destination table to sync. The
3323
+ # table must have a migration, and you must not have called
3324
+ # `CompleteTableMigration` for it.
3325
+ # @return [String]
3326
+ #
3327
+ # @!attribute [rw] review_migration_plan
3328
+ # Specifies whether the sync waits in the `pendingReview` state, so
3329
+ # that you can review the compatibility reports before it migrates any
3330
+ # data. If `true`, the migration continues when you call
3331
+ # `UpdateTableMigration` with `requestedState` set to `queued`. If you
3332
+ # don't continue or cancel the migration within 30 days, the
3333
+ # migration fails. The default is `false`.
3334
+ # @return [Boolean]
3335
+ #
3336
+ # @!attribute [rw] migration_output
3337
+ # The bucket and prefixes that the sync writes its reports to. The
3338
+ # bucket must be a general purpose bucket in your account and in the
3339
+ # same Region as the table bucket, and the migration role must be able
3340
+ # to write objects to it. Otherwise, the migration fails when it
3341
+ # writes its first report.
3342
+ # @return [Types::MigrationOutputConfiguration]
3343
+ #
3344
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/SyncTableMigrationRequest AWS API Documentation
3345
+ #
3346
+ class SyncTableMigrationRequest < Struct.new(
3347
+ :role_arn,
3348
+ :table_arn,
3349
+ :review_migration_plan,
3350
+ :migration_output)
3351
+ SENSITIVE = []
3352
+ include Aws::Structure
3353
+ end
3354
+
3355
+ # @!attribute [rw] migration_id
3356
+ # The migration ID of the sync.
3357
+ # @return [String]
3358
+ #
3359
+ # @!attribute [rw] state
3360
+ # The state of the migration when the request is accepted, such as
3361
+ # `planning`.
3362
+ # @return [String]
3363
+ #
3364
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/SyncTableMigrationResponse AWS API Documentation
3365
+ #
3366
+ class SyncTableMigrationResponse < Struct.new(
3367
+ :migration_id,
3368
+ :state)
3369
+ SENSITIVE = []
3370
+ include Aws::Structure
3371
+ end
3372
+
2249
3373
  # Details about the values that define the maintenance configuration for
2250
3374
  # a table bucket.
2251
3375
  #
@@ -2770,6 +3894,64 @@ module Aws::S3Tables
2770
3894
  include Aws::Structure
2771
3895
  end
2772
3896
 
3897
+ # @!attribute [rw] table_arn
3898
+ # The Amazon Resource Name (ARN) of the destination table. Updates the
3899
+ # table's most recent migration. Until the migration creates the
3900
+ # destination table, specify `migrationId`. Specify either `tableARN`
3901
+ # or `migrationId`, not both.
3902
+ # @return [String]
3903
+ #
3904
+ # @!attribute [rw] migration_id
3905
+ # The ID of the migration to update. Specify either `migrationId` or
3906
+ # `tableARN`, not both.
3907
+ # @return [String]
3908
+ #
3909
+ # @!attribute [rw] requested_state
3910
+ # The state to move the migration to: `queued` to continue a migration
3911
+ # in the `pendingReview` state, or `cancelled` to cancel a migration
3912
+ # in the `new`, `planning`, `pendingReview`, `queued` or `migrating`
3913
+ # state.
3914
+ # @return [String]
3915
+ #
3916
+ # @!attribute [rw] update_description
3917
+ # A description of the update, up to 1,024 characters, with no control
3918
+ # characters. `GetTableMigration` doesn't return it.
3919
+ # @return [String]
3920
+ #
3921
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/UpdateTableMigrationRequest AWS API Documentation
3922
+ #
3923
+ class UpdateTableMigrationRequest < Struct.new(
3924
+ :table_arn,
3925
+ :migration_id,
3926
+ :requested_state,
3927
+ :update_description)
3928
+ SENSITIVE = []
3929
+ include Aws::Structure
3930
+ end
3931
+
3932
+ # @!attribute [rw] migration_id
3933
+ # The ID of the migration.
3934
+ # @return [String]
3935
+ #
3936
+ # @!attribute [rw] state
3937
+ # The state of the migration after the update, such as `queued`,
3938
+ # `migrating` or `cancelling`.
3939
+ # @return [String]
3940
+ #
3941
+ # @!attribute [rw] table_arn
3942
+ # The Amazon Resource Name (ARN) of the destination table.
3943
+ # @return [String]
3944
+ #
3945
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/UpdateTableMigrationResponse AWS API Documentation
3946
+ #
3947
+ class UpdateTableMigrationResponse < Struct.new(
3948
+ :migration_id,
3949
+ :state,
3950
+ :table_arn)
3951
+ SENSITIVE = []
3952
+ include Aws::Structure
3953
+ end
3954
+
2773
3955
  end
2774
3956
  end
2775
3957