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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3fd105ef948d633d60e08a592b73f674c45dfed91d3d70a0a95b8a950cfd196
4
- data.tar.gz: 0bccfd5b830fbe9517d6619c334cf3af4dcca2496c227840fa44f9f04445d0ea
3
+ metadata.gz: b9d779617f64077fba8f509d45c5e5a17107899da85f3cfe31345bca6a57c1c3
4
+ data.tar.gz: bf5d8b9dd26bde83b4a8396b49e27050bf4c5bbf8ef34f2bfd0659db7d808669
5
5
  SHA512:
6
- metadata.gz: f84a96ab88adc329ea1c44b83c3eb6a2a89a5609d1df4da5aef5319d261e89b3914e2dfca0582327ad58fc8122a157455e481f623f1610269e49b635f8a7fd99
7
- data.tar.gz: 660deed07ec37f327154004226b9d044cf0e455bb3040d962426aa778da69dc6de1f8bb6801cffea966ce7782a6bfe7946eed664aa9069ca896a4a561978e907
6
+ metadata.gz: 961fa4fa5ff4bb865893870f430783960d95a6ca52011728211865c518a35988b11f8bdd3c10771ed473621e7d4fa1028c80beee97046c8caf314e5e57a5535c
7
+ data.tar.gz: 0f8972cf7a6a9356b9596c7446eecba9712777b8f00a7ba39ec0d44328fd6251ce8931d4e0fabd883c08db71007a40ade0ef77650d1d0df90c9eb9dde7f040ee
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.41.0 (2026-11-04)
5
+ ------------------
6
+
7
+ * Feature - Amazon S3 Tables now supports migrating AWS Glue Data Catalog tables into S3 Table buckets. This release adds the StartTableMigration, SyncTableMigration, UpdateTableMigration, CompleteTableMigration, GetTableMigration, and ListTableMigrations APIs.
8
+
4
9
  1.40.0 (2026-10-29)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.40.0
1
+ 1.41.0
@@ -481,6 +481,41 @@ module Aws::S3Tables
481
481
 
482
482
  # @!group API Operations
483
483
 
484
+ # Completes the migration of a table. The table's most recent migration
485
+ # must be in the `succeeded`, `failed` or `cancelled` state. After you
486
+ # complete the migration, you can't sync the table again, and you can
487
+ # write to and maintain the table as you do any other table: compaction
488
+ # starts, and unreferenced file removal follows the table bucket's
489
+ # configuration. You can't undo this operation. Calling it again for
490
+ # the same table returns a `ConflictException`.
491
+ #
492
+ # Permissions
493
+ # : * You must have the `s3tables:CompleteTableMigration` permission to
494
+ # use this operation.
495
+ #
496
+ # ^
497
+ #
498
+ # @option params [required, String] :table_arn
499
+ # The Amazon Resource Name (ARN) of the migrated table to complete the
500
+ # migration of.
501
+ #
502
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
503
+ #
504
+ # @example Request syntax with placeholder values
505
+ #
506
+ # resp = client.complete_table_migration({
507
+ # table_arn: "TableARN", # required
508
+ # })
509
+ #
510
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/CompleteTableMigration AWS API Documentation
511
+ #
512
+ # @overload complete_table_migration(params = {})
513
+ # @param [Hash] params ({})
514
+ def complete_table_migration(params = {}, options = {})
515
+ req = build_request(:complete_table_migration, params)
516
+ req.send_request(options)
517
+ end
518
+
484
519
  # Creates a namespace. A namespace is a logical grouping of tables
485
520
  # within your table bucket, which you can use to organize tables. For
486
521
  # more information, see [Create a namespace][1] in the *Amazon Simple
@@ -1724,6 +1759,113 @@ module Aws::S3Tables
1724
1759
  req.send_request(options)
1725
1760
  end
1726
1761
 
1762
+ # Gets the details of a migration, including its state, the reason it
1763
+ # failed, its statistics and the location of its reports. Identify the
1764
+ # migration by its `migrationId`, or specify the `tableARN` of a
1765
+ # destination table to get that table's most recent migration.
1766
+ #
1767
+ # Permissions
1768
+ # : * You must have the `s3tables:GetTableMigration` permission to use
1769
+ # this operation.
1770
+ #
1771
+ # ^
1772
+ #
1773
+ # @option params [String] :migration_id
1774
+ # The ID of the migration to get. Specify either `migrationId` or
1775
+ # `tableARN`, not both.
1776
+ #
1777
+ # @option params [String] :table_arn
1778
+ # The Amazon Resource Name (ARN) of the destination table. Gets the
1779
+ # table's most recent migration. Specify either `tableARN` or
1780
+ # `migrationId`, not both.
1781
+ #
1782
+ # @return [Types::GetTableMigrationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1783
+ #
1784
+ # * {Types::GetTableMigrationResponse#migration_id #migration_id} => String
1785
+ # * {Types::GetTableMigrationResponse#table_bucket_arn #table_bucket_arn} => String
1786
+ # * {Types::GetTableMigrationResponse#namespace #namespace} => String
1787
+ # * {Types::GetTableMigrationResponse#table_arn #table_arn} => String
1788
+ # * {Types::GetTableMigrationResponse#name #name} => String
1789
+ # * {Types::GetTableMigrationResponse#type #type} => String
1790
+ # * {Types::GetTableMigrationResponse#state #state} => String
1791
+ # * {Types::GetTableMigrationResponse#role_arn #role_arn} => String
1792
+ # * {Types::GetTableMigrationResponse#review_migration_plan #review_migration_plan} => Boolean
1793
+ # * {Types::GetTableMigrationResponse#has_valid_plan #has_valid_plan} => Boolean
1794
+ # * {Types::GetTableMigrationResponse#created_at #created_at} => Time
1795
+ # * {Types::GetTableMigrationResponse#state_updated_at #state_updated_at} => Time
1796
+ # * {Types::GetTableMigrationResponse#failure_reason #failure_reason} => Types::MigrationFailureReason
1797
+ # * {Types::GetTableMigrationResponse#planning_stats #planning_stats} => Types::PlanningStats
1798
+ # * {Types::GetTableMigrationResponse#migration_stats #migration_stats} => Types::MigrationStats
1799
+ # * {Types::GetTableMigrationResponse#source_type #source_type} => String
1800
+ # * {Types::GetTableMigrationResponse#source #source} => Types::SourceConfiguration
1801
+ # * {Types::GetTableMigrationResponse#data_migration #data_migration} => Types::DataMigrationOverview
1802
+ # * {Types::GetTableMigrationResponse#migration_output #migration_output} => Types::MigrationOutputOverview
1803
+ #
1804
+ # @example Request syntax with placeholder values
1805
+ #
1806
+ # resp = client.get_table_migration({
1807
+ # migration_id: "MigrationId",
1808
+ # table_arn: "TableARN",
1809
+ # })
1810
+ #
1811
+ # @example Response structure
1812
+ #
1813
+ # resp.migration_id #=> String
1814
+ # resp.table_bucket_arn #=> String
1815
+ # resp.namespace #=> String
1816
+ # resp.table_arn #=> String
1817
+ # resp.name #=> String
1818
+ # resp.type #=> String, one of "start", "sync"
1819
+ # resp.state #=> String, one of "new", "planning", "pendingReview", "queued", "migrating", "succeeded", "failed", "cancelling", "cancelled"
1820
+ # resp.role_arn #=> String
1821
+ # resp.review_migration_plan #=> Boolean
1822
+ # resp.has_valid_plan #=> Boolean
1823
+ # resp.created_at #=> Time
1824
+ # resp.state_updated_at #=> Time
1825
+ # resp.failure_reason.code #=> String, one of "rolePermissions", "sourcePermissions", "destinationPermissions", "resourceNotFound", "sourceNotSupported", "objectMigrationReport", "objectCompatibilityReport", "tableCompatibilityReport", "internalError", "reportBucketNotSupported"
1826
+ # resp.failure_reason.detail #=> String
1827
+ # resp.planning_stats.objects_scanned #=> Integer
1828
+ # resp.planning_stats.objects_planned #=> Integer
1829
+ # resp.planning_stats.partition_count #=> Integer
1830
+ # resp.migration_stats.objects_migrated #=> Integer
1831
+ # resp.migration_stats.objects_failed_migration #=> Integer
1832
+ # resp.migration_stats.objects_pending_migration #=> Integer
1833
+ # resp.source_type #=> String, one of "glueTable"
1834
+ # resp.source.glue_table.catalog_id #=> String
1835
+ # resp.source.glue_table.database_name #=> String
1836
+ # resp.source.glue_table.table_name #=> String
1837
+ # resp.data_migration.maintenance_settings.iceberg_compaction.target_file_size_mb #=> Integer
1838
+ # resp.data_migration.maintenance_settings.iceberg_compaction.strategy #=> String, one of "auto", "binpack", "sort", "z-order"
1839
+ # resp.data_migration.maintenance_settings.iceberg_snapshot_management.min_snapshots_to_keep #=> Integer
1840
+ # resp.data_migration.maintenance_settings.iceberg_snapshot_management.max_snapshot_age_hours #=> Integer
1841
+ # resp.data_migration.migration_policies.unmatched_source_fields_policy #=> String, one of "fail", "drop"
1842
+ # resp.data_migration.migration_policies.incompatible_values_policy #=> String, one of "fail", "setNull"
1843
+ # resp.migration_output.bucket #=> String
1844
+ # resp.migration_output.table_compatibility_report.prefix #=> String
1845
+ # resp.migration_output.table_compatibility_report.key #=> String
1846
+ # resp.migration_output.table_compatibility_report.checksum_crc64nvme #=> String
1847
+ # resp.migration_output.table_compatibility_report.invalid_findings #=> Hash
1848
+ # resp.migration_output.table_compatibility_report.invalid_findings["FindingCategory"] #=> Integer
1849
+ # resp.migration_output.object_compatibility_report.prefix #=> String
1850
+ # resp.migration_output.object_compatibility_report.key #=> String
1851
+ # resp.migration_output.object_compatibility_report.checksum_crc64nvme #=> String
1852
+ # resp.migration_output.object_compatibility_report.invalid_findings #=> Hash
1853
+ # resp.migration_output.object_compatibility_report.invalid_findings["FindingCategory"] #=> Integer
1854
+ # resp.migration_output.object_migration_report.prefix #=> String
1855
+ # resp.migration_output.object_migration_report.key #=> String
1856
+ # resp.migration_output.object_migration_report.checksum_crc64nvme #=> String
1857
+ # resp.migration_output.object_migration_report.invalid_findings #=> Hash
1858
+ # resp.migration_output.object_migration_report.invalid_findings["FindingCategory"] #=> Integer
1859
+ #
1860
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/GetTableMigration AWS API Documentation
1861
+ #
1862
+ # @overload get_table_migration(params = {})
1863
+ # @param [Hash] params ({})
1864
+ def get_table_migration(params = {}, options = {})
1865
+ req = build_request(:get_table_migration, params)
1866
+ req.send_request(options)
1867
+ end
1868
+
1727
1869
  # Gets details about a table policy. For more information, see [Viewing
1728
1870
  # a table policy][1] in the *Amazon Simple Storage Service User Guide*.
1729
1871
  #
@@ -2106,6 +2248,102 @@ module Aws::S3Tables
2106
2248
  req.send_request(options)
2107
2249
  end
2108
2250
 
2251
+ # Lists the migrations whose destination is in a table bucket, a
2252
+ # namespace or a table. Specify a `tableBucketARN` to list the
2253
+ # migrations into a table bucket, and add a `namespace`, or a
2254
+ # `namespace` and a `name`, to narrow the list. Or specify a `tableARN`
2255
+ # to list the migrations into a table.
2256
+ #
2257
+ # Migrations are listed newest first. Results are paginated: use
2258
+ # `maxResults` to set the page size, and pass the `nextToken` from a
2259
+ # response to retrieve the next page of results. A page can contain
2260
+ # fewer migrations than `maxResults`, or none, and still return a
2261
+ # `nextToken`. Continue until a response has no `nextToken`.
2262
+ #
2263
+ # Permissions
2264
+ # : * You must have the `s3tables:ListTableMigrations` permission to use
2265
+ # this operation.
2266
+ #
2267
+ # ^
2268
+ #
2269
+ # @option params [String] :table_bucket_arn
2270
+ # The Amazon Resource Name (ARN) of the table bucket to list migrations
2271
+ # for.
2272
+ #
2273
+ # @option params [String] :namespace
2274
+ # The namespace to list migrations for. Requires `tableBucketARN`.
2275
+ #
2276
+ # @option params [String] :name
2277
+ # The name of the table to list migrations for. Requires
2278
+ # `tableBucketARN` and `namespace`.
2279
+ #
2280
+ # @option params [String] :table_arn
2281
+ # The Amazon Resource Name (ARN) of the table to list migrations for.
2282
+ # The list includes the migrations into this table. To also list
2283
+ # migrations into an earlier table of the same name, specify
2284
+ # `tableBucketARN`, `namespace` and `name` instead. Specify either
2285
+ # `tableARN` or `tableBucketARN`, not both.
2286
+ #
2287
+ # @option params [String] :state
2288
+ # The state to filter the list by. For the valid values, see the `state`
2289
+ # member of `GetTableMigration`.
2290
+ #
2291
+ # @option params [Boolean] :has_valid_plan
2292
+ # The `hasValidPlan` value to filter the list by. Migrations that are
2293
+ # still planning aren't listed, whichever value you specify.
2294
+ #
2295
+ # @option params [Integer] :max_results
2296
+ # The maximum number of migrations to return, from 1 to 1,000. If you
2297
+ # don't specify a value, the default is 100.
2298
+ #
2299
+ # @option params [String] :next_token
2300
+ # The `nextToken` from a previous response, to get the next page of
2301
+ # results.
2302
+ #
2303
+ # @return [Types::ListTableMigrationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2304
+ #
2305
+ # * {Types::ListTableMigrationsResponse#migrations #migrations} => Array<Types::MigrationSummary>
2306
+ # * {Types::ListTableMigrationsResponse#next_token #next_token} => String
2307
+ #
2308
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2309
+ #
2310
+ # @example Request syntax with placeholder values
2311
+ #
2312
+ # resp = client.list_table_migrations({
2313
+ # table_bucket_arn: "TableBucketARN",
2314
+ # namespace: "NamespaceName",
2315
+ # name: "TableName",
2316
+ # table_arn: "TableARN",
2317
+ # state: "new", # accepts new, planning, pendingReview, queued, migrating, succeeded, failed, cancelling, cancelled
2318
+ # has_valid_plan: false,
2319
+ # max_results: 1,
2320
+ # next_token: "NextToken",
2321
+ # })
2322
+ #
2323
+ # @example Response structure
2324
+ #
2325
+ # resp.migrations #=> Array
2326
+ # resp.migrations[0].migration_id #=> String
2327
+ # resp.migrations[0].table_bucket_arn #=> String
2328
+ # resp.migrations[0].namespace #=> String
2329
+ # resp.migrations[0].table_arn #=> String
2330
+ # resp.migrations[0].name #=> String
2331
+ # resp.migrations[0].type #=> String, one of "start", "sync"
2332
+ # resp.migrations[0].state #=> String, one of "new", "planning", "pendingReview", "queued", "migrating", "succeeded", "failed", "cancelling", "cancelled"
2333
+ # resp.migrations[0].has_valid_plan #=> Boolean
2334
+ # resp.migrations[0].created_at #=> Time
2335
+ # resp.migrations[0].state_updated_at #=> Time
2336
+ # resp.next_token #=> String
2337
+ #
2338
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/ListTableMigrations AWS API Documentation
2339
+ #
2340
+ # @overload list_table_migrations(params = {})
2341
+ # @param [Hash] params ({})
2342
+ def list_table_migrations(params = {}, options = {})
2343
+ req = build_request(:list_table_migrations, params)
2344
+ req.send_request(options)
2345
+ end
2346
+
2109
2347
  # List tables in the given table bucket. For more information, see [S3
2110
2348
  # Tables][1] in the *Amazon Simple Storage Service User Guide*.
2111
2349
  #
@@ -2788,6 +3026,279 @@ module Aws::S3Tables
2788
3026
  req.send_request(options)
2789
3027
  end
2790
3028
 
3029
+ # Starts migrating an Amazon Web Services Glue Data Catalog table into a
3030
+ # new table in a table bucket. The migration runs asynchronously: this
3031
+ # operation returns the migration ID and its initial state, and you
3032
+ # track progress with `GetTableMigration`.
3033
+ #
3034
+ # The namespace must already exist, and a table with the specified name
3035
+ # must not. The migration creates the table during planning and commits
3036
+ # data to it as it runs. Until you call `CompleteTableMigration`, you
3037
+ # can read the table but you can't write to it. If the migration fails
3038
+ # or is cancelled, the table and the data already committed to it
3039
+ # remain.
3040
+ #
3041
+ # The migration first checks the source and the destination, and writes
3042
+ # the table compatibility and object compatibility reports to the bucket
3043
+ # that you specify in `migrationOutput`. If you set
3044
+ # `reviewMigrationPlan` to `true`, the migration waits in the
3045
+ # `pendingReview` state so that you can review the reports, and
3046
+ # continues only when you call `UpdateTableMigration` with
3047
+ # `requestedState` set to `queued`. If you don't continue or cancel the
3048
+ # migration within 30 days, the migration fails. Otherwise it continues
3049
+ # to migrate the data, and writes the object migration report when the
3050
+ # migration ends. If planning fails, the migration writes no object
3051
+ # migration report.
3052
+ #
3053
+ # Permissions
3054
+ # : * You must have the `s3tables:StartTableMigration` permission to use
3055
+ # this operation.
3056
+ #
3057
+ # * You must have the `iam:PassRole` permission on the role that you
3058
+ # specify in `roleARN`, with a condition that allows passing it to
3059
+ # `migration.s3tables.amazonaws.com`. The associated resource is the
3060
+ # table bucket.
3061
+ #
3062
+ # * If `destinationTable` specifies SSE-KMS encryption, you must have
3063
+ # the `kms:DescribeKey` and `kms:GenerateDataKey` permissions on the
3064
+ # KMS key. You must also grant the S3 Tables maintenance principal
3065
+ # access to the key. For more information, see [Permissions
3066
+ # requirements for S3 Tables SSE-KMS encryption][1].
3067
+ #
3068
+ #
3069
+ #
3070
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-kms-permissions.html
3071
+ #
3072
+ # @option params [required, String] :role_arn
3073
+ # The Amazon Resource Name (ARN) of the IAM role that the migration uses
3074
+ # to read the source table and its data and to write the destination
3075
+ # table and the reports. The role must be in your account, and its trust
3076
+ # policy must allow `migration.s3tables.amazonaws.com` to assume it. You
3077
+ # can limit the trust policy to the destination table bucket with the
3078
+ # `aws:SourceArn` and `aws:SourceAccount` condition keys.
3079
+ #
3080
+ # @option params [required, Types::DestinationTable] :destination_table
3081
+ # The table to create and migrate the source into.
3082
+ #
3083
+ # @option params [required, String] :source_type
3084
+ # The type of the source. It must match the member that you set in
3085
+ # `source`.
3086
+ #
3087
+ # @option params [required, Types::SourceConfiguration] :source
3088
+ # The source table to migrate.
3089
+ #
3090
+ # @option params [Types::DataMigrationSettings] :data_migration
3091
+ # The maintenance settings and migration policies for the destination
3092
+ # table.
3093
+ #
3094
+ # @option params [Boolean] :review_migration_plan
3095
+ # Specifies whether the migration waits in the `pendingReview` state, so
3096
+ # that you can review the compatibility reports before it migrates any
3097
+ # data. If `true`, the migration continues when you call
3098
+ # `UpdateTableMigration` with `requestedState` set to `queued`. If you
3099
+ # don't continue or cancel the migration within 30 days, the migration
3100
+ # fails. The default is `false`.
3101
+ #
3102
+ # @option params [required, Types::MigrationOutputConfiguration] :migration_output
3103
+ # The bucket and prefixes that the migration writes its reports to. The
3104
+ # bucket must be a general purpose bucket in your account and in the
3105
+ # same Region as the table bucket, and the migration role must be able
3106
+ # to write objects to it. Otherwise, the migration fails when it writes
3107
+ # its first report.
3108
+ #
3109
+ # @return [Types::StartTableMigrationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3110
+ #
3111
+ # * {Types::StartTableMigrationResponse#migration_id #migration_id} => String
3112
+ # * {Types::StartTableMigrationResponse#state #state} => String
3113
+ #
3114
+ # @example Request syntax with placeholder values
3115
+ #
3116
+ # resp = client.start_table_migration({
3117
+ # role_arn: "RoleArn", # required
3118
+ # destination_table: { # required
3119
+ # table_bucket_arn: "TableBucketARN", # required
3120
+ # namespace: "NamespaceName", # required
3121
+ # name: "TableName", # required
3122
+ # encryption_configuration: {
3123
+ # sse_algorithm: "AES256", # required, accepts AES256, aws:kms
3124
+ # kms_key_arn: "EncryptionConfigurationKmsKeyArnString",
3125
+ # },
3126
+ # storage_class_configuration: {
3127
+ # storage_class: "STANDARD", # required, accepts STANDARD, INTELLIGENT_TIERING
3128
+ # },
3129
+ # tags: {
3130
+ # "TagKey" => "TagValue",
3131
+ # },
3132
+ # properties: {
3133
+ # write_format: "parquet", # accepts parquet
3134
+ # iceberg_format_version: 1,
3135
+ # compression_codec: "zstd", # accepts zstd, snappy, gzip, uncompressed
3136
+ # dictionary_encoding: false,
3137
+ # },
3138
+ # schema: {
3139
+ # type: "struct", # required, accepts struct
3140
+ # fields: [ # required
3141
+ # {
3142
+ # id: 1, # required
3143
+ # name: "String", # required
3144
+ # type: { # required
3145
+ # },
3146
+ # required: false, # required
3147
+ # doc: "String",
3148
+ # },
3149
+ # ],
3150
+ # schema_id: 1,
3151
+ # identifier_field_ids: [1],
3152
+ # },
3153
+ # iceberg_sort_order: {
3154
+ # order_id: 1, # required
3155
+ # fields: [ # required
3156
+ # {
3157
+ # source_id: 1, # required
3158
+ # transform: "String", # required
3159
+ # direction: "asc", # required, accepts asc, desc
3160
+ # null_order: "nulls-first", # required, accepts nulls-first, nulls-last
3161
+ # },
3162
+ # ],
3163
+ # },
3164
+ # },
3165
+ # source_type: "glueTable", # required, accepts glueTable
3166
+ # source: { # required
3167
+ # glue_table: {
3168
+ # catalog_id: "GlueTableSourceCatalogIdString", # required
3169
+ # database_name: "GlueTableSourceDatabaseNameString", # required
3170
+ # table_name: "GlueTableSourceTableNameString", # required
3171
+ # },
3172
+ # },
3173
+ # data_migration: {
3174
+ # maintenance_settings: {
3175
+ # iceberg_compaction: {
3176
+ # target_file_size_mb: 1,
3177
+ # strategy: "auto", # accepts auto, binpack, sort, z-order
3178
+ # },
3179
+ # iceberg_snapshot_management: {
3180
+ # min_snapshots_to_keep: 1,
3181
+ # max_snapshot_age_hours: 1,
3182
+ # },
3183
+ # },
3184
+ # migration_policies: {
3185
+ # unmatched_source_fields_policy: "fail", # accepts fail, drop
3186
+ # incompatible_values_policy: "fail", # accepts fail, setNull
3187
+ # },
3188
+ # },
3189
+ # review_migration_plan: false,
3190
+ # migration_output: { # required
3191
+ # bucket: "S3BucketARN", # required
3192
+ # prefixes: {
3193
+ # table_compatibility_report: "MigrationReportPrefix",
3194
+ # object_compatibility_report: "MigrationReportPrefix",
3195
+ # object_migration_report: "MigrationReportPrefix",
3196
+ # },
3197
+ # },
3198
+ # })
3199
+ #
3200
+ # @example Response structure
3201
+ #
3202
+ # resp.migration_id #=> String
3203
+ # resp.state #=> String, one of "new", "planning", "pendingReview", "queued", "migrating", "succeeded", "failed", "cancelling", "cancelled"
3204
+ #
3205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/StartTableMigration AWS API Documentation
3206
+ #
3207
+ # @overload start_table_migration(params = {})
3208
+ # @param [Hash] params ({})
3209
+ def start_table_migration(params = {}, options = {})
3210
+ req = build_request(:start_table_migration, params)
3211
+ req.send_request(options)
3212
+ end
3213
+
3214
+ # Migrates the changes in the source table since the previous start or
3215
+ # sync, such as added and deleted source objects, into the destination
3216
+ # table. The sync runs asynchronously: this operation returns the
3217
+ # migration ID of the sync and its initial state, and you track progress
3218
+ # with `GetTableMigration`.
3219
+ #
3220
+ # A sync uses the source, destination and data migration settings of the
3221
+ # table's migration, and plans the work and writes its reports in the
3222
+ # same way as `StartTableMigration`. You can sync after a start or sync
3223
+ # that succeeded, failed or was cancelled, if an earlier start or sync
3224
+ # of the table has a valid plan (`hasValidPlan`). You can't sync a
3225
+ # table while a start or sync is in progress for it, and you can sync a
3226
+ # table until you call `CompleteTableMigration` for it. If a source
3227
+ # object that an earlier migration migrated has since been overwritten,
3228
+ # the sync fails.
3229
+ #
3230
+ # Permissions
3231
+ # : * You must have the `s3tables:SyncTableMigration` permission to use
3232
+ # this operation.
3233
+ #
3234
+ # * You must have the `iam:PassRole` permission on the role that you
3235
+ # specify in `roleARN`, with a condition that allows passing it to
3236
+ # `migration.s3tables.amazonaws.com`. The associated resource is the
3237
+ # table.
3238
+ #
3239
+ # @option params [required, String] :role_arn
3240
+ # The Amazon Resource Name (ARN) of the IAM role that the sync uses to
3241
+ # read the source table and its data and to write the destination table
3242
+ # and the reports. The role must be in your account, and its trust
3243
+ # policy must allow `migration.s3tables.amazonaws.com` to assume it. You
3244
+ # can limit the trust policy to the destination table bucket with the
3245
+ # `aws:SourceArn` and `aws:SourceAccount` condition keys.
3246
+ #
3247
+ # @option params [required, String] :table_arn
3248
+ # The Amazon Resource Name (ARN) of the destination table to sync. The
3249
+ # table must have a migration, and you must not have called
3250
+ # `CompleteTableMigration` for it.
3251
+ #
3252
+ # @option params [Boolean] :review_migration_plan
3253
+ # Specifies whether the sync waits in the `pendingReview` state, so that
3254
+ # you can review the compatibility reports before it migrates any data.
3255
+ # If `true`, the migration continues when you call
3256
+ # `UpdateTableMigration` with `requestedState` set to `queued`. If you
3257
+ # don't continue or cancel the migration within 30 days, the migration
3258
+ # fails. The default is `false`.
3259
+ #
3260
+ # @option params [required, Types::MigrationOutputConfiguration] :migration_output
3261
+ # The bucket and prefixes that the sync writes its reports to. The
3262
+ # bucket must be a general purpose bucket in your account and in the
3263
+ # same Region as the table bucket, and the migration role must be able
3264
+ # to write objects to it. Otherwise, the migration fails when it writes
3265
+ # its first report.
3266
+ #
3267
+ # @return [Types::SyncTableMigrationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3268
+ #
3269
+ # * {Types::SyncTableMigrationResponse#migration_id #migration_id} => String
3270
+ # * {Types::SyncTableMigrationResponse#state #state} => String
3271
+ #
3272
+ # @example Request syntax with placeholder values
3273
+ #
3274
+ # resp = client.sync_table_migration({
3275
+ # role_arn: "RoleArn", # required
3276
+ # table_arn: "TableARN", # required
3277
+ # review_migration_plan: false,
3278
+ # migration_output: { # required
3279
+ # bucket: "S3BucketARN", # required
3280
+ # prefixes: {
3281
+ # table_compatibility_report: "MigrationReportPrefix",
3282
+ # object_compatibility_report: "MigrationReportPrefix",
3283
+ # object_migration_report: "MigrationReportPrefix",
3284
+ # },
3285
+ # },
3286
+ # })
3287
+ #
3288
+ # @example Response structure
3289
+ #
3290
+ # resp.migration_id #=> String
3291
+ # resp.state #=> String, one of "new", "planning", "pendingReview", "queued", "migrating", "succeeded", "failed", "cancelling", "cancelled"
3292
+ #
3293
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/SyncTableMigration AWS API Documentation
3294
+ #
3295
+ # @overload sync_table_migration(params = {})
3296
+ # @param [Hash] params ({})
3297
+ def sync_table_migration(params = {}, options = {})
3298
+ req = build_request(:sync_table_migration, params)
3299
+ req.send_request(options)
3300
+ end
3301
+
2791
3302
  # Applies one or more user-defined tags to an Amazon S3 Tables resource
2792
3303
  # or updates existing tags. Each tag is a label consisting of a key and
2793
3304
  # value pair. Tags can help you organize, track costs for, and control
@@ -2963,6 +3474,73 @@ module Aws::S3Tables
2963
3474
  req.send_request(options)
2964
3475
  end
2965
3476
 
3477
+ # Requests a state change for a migration. Identify the migration by its
3478
+ # `migrationId` or by the `tableARN` of its destination table.
3479
+ #
3480
+ # Set `requestedState` to `queued` to continue a migration in the
3481
+ # `pendingReview` state; the migration moves to `queued` or `migrating`.
3482
+ # Set it to `cancelled` to cancel a migration in the `new`, `planning`,
3483
+ # `pendingReview`, `queued` or `migrating` state; the migration moves to
3484
+ # `cancelling`, finishes the work in progress, and then ends in the
3485
+ # `cancelled` state, or in the `failed` state if any objects failed to
3486
+ # migrate. Data that the migration already committed stays in the
3487
+ # destination table.
3488
+ #
3489
+ # Permissions
3490
+ # : * You must have the `s3tables:UpdateTableMigration` permission to
3491
+ # use this operation.
3492
+ #
3493
+ # ^
3494
+ #
3495
+ # @option params [String] :table_arn
3496
+ # The Amazon Resource Name (ARN) of the destination table. Updates the
3497
+ # table's most recent migration. Until the migration creates the
3498
+ # destination table, specify `migrationId`. Specify either `tableARN` or
3499
+ # `migrationId`, not both.
3500
+ #
3501
+ # @option params [String] :migration_id
3502
+ # The ID of the migration to update. Specify either `migrationId` or
3503
+ # `tableARN`, not both.
3504
+ #
3505
+ # @option params [required, String] :requested_state
3506
+ # The state to move the migration to: `queued` to continue a migration
3507
+ # in the `pendingReview` state, or `cancelled` to cancel a migration in
3508
+ # the `new`, `planning`, `pendingReview`, `queued` or `migrating` state.
3509
+ #
3510
+ # @option params [String] :update_description
3511
+ # A description of the update, up to 1,024 characters, with no control
3512
+ # characters. `GetTableMigration` doesn't return it.
3513
+ #
3514
+ # @return [Types::UpdateTableMigrationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3515
+ #
3516
+ # * {Types::UpdateTableMigrationResponse#migration_id #migration_id} => String
3517
+ # * {Types::UpdateTableMigrationResponse#state #state} => String
3518
+ # * {Types::UpdateTableMigrationResponse#table_arn #table_arn} => String
3519
+ #
3520
+ # @example Request syntax with placeholder values
3521
+ #
3522
+ # resp = client.update_table_migration({
3523
+ # table_arn: "TableARN",
3524
+ # migration_id: "MigrationId",
3525
+ # requested_state: "queued", # required, accepts queued, cancelled
3526
+ # update_description: "UpdateTableMigrationRequestUpdateDescriptionString",
3527
+ # })
3528
+ #
3529
+ # @example Response structure
3530
+ #
3531
+ # resp.migration_id #=> String
3532
+ # resp.state #=> String, one of "new", "planning", "pendingReview", "queued", "migrating", "succeeded", "failed", "cancelling", "cancelled"
3533
+ # resp.table_arn #=> String
3534
+ #
3535
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3tables-2018-05-10/UpdateTableMigration AWS API Documentation
3536
+ #
3537
+ # @overload update_table_migration(params = {})
3538
+ # @param [Hash] params ({})
3539
+ def update_table_migration(params = {}, options = {})
3540
+ req = build_request(:update_table_migration, params)
3541
+ req.send_request(options)
3542
+ end
3543
+
2966
3544
  # @!endgroup
2967
3545
 
2968
3546
  # @param params ({})
@@ -2981,7 +3559,7 @@ module Aws::S3Tables
2981
3559
  tracer: tracer
2982
3560
  )
2983
3561
  context[:gem_name] = 'aws-sdk-s3tables'
2984
- context[:gem_version] = '1.40.0'
3562
+ context[:gem_version] = '1.41.0'
2985
3563
  Seahorse::Client::Request.new(handlers, context)
2986
3564
  end
2987
3565