cdk-dms-replication 0.2.45__tar.gz → 0.3.0__tar.gz

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.
Files changed (17) hide show
  1. {cdk_dms_replication-0.2.45/src/cdk_dms_replication.egg-info → cdk_dms_replication-0.3.0}/PKG-INFO +2 -2
  2. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/setup.py +3 -3
  3. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication/__init__.py +211 -0
  4. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication/_jsii/__init__.py +2 -2
  5. cdk_dms_replication-0.3.0/src/cdk_dms_replication/_jsii/cdk-dms-replication@0.3.0.jsii.tgz +0 -0
  6. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0/src/cdk_dms_replication.egg-info}/PKG-INFO +2 -2
  7. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication.egg-info/SOURCES.txt +1 -1
  8. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication.egg-info/requires.txt +1 -1
  9. cdk_dms_replication-0.2.45/src/cdk_dms_replication/_jsii/cdk-dms-replication@0.2.45.jsii.tgz +0 -0
  10. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/LICENSE +0 -0
  11. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/MANIFEST.in +0 -0
  12. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/README.md +0 -0
  13. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/pyproject.toml +0 -0
  14. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/setup.cfg +0 -0
  15. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication/py.typed +0 -0
  16. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication.egg-info/dependency_links.txt +0 -0
  17. {cdk_dms_replication-0.2.45 → cdk_dms_replication-0.3.0}/src/cdk_dms_replication.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdk-dms-replication
3
- Version: 0.2.45
3
+ Version: 0.3.0
4
4
  Summary: L3 CDK Constructs for Amazon Database Migration Service (DMS) — pattern construct bundling replication instance, endpoints, and tasks with secure defaults.
5
5
  Home-page: https://github.com/kckempf/cdk-dms-replication#readme
6
6
  Author: Kevin Kempf<kckempf@gmail.com>
@@ -21,7 +21,7 @@ Classifier: License :: OSI Approved
21
21
  Requires-Python: >=3.10
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.100.0
24
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.259.0
25
25
  Requires-Dist: constructs<11.0.0,>=10.5.1
26
26
  Requires-Dist: jsii<2.0.0,>=1.142.0
27
27
  Requires-Dist: publication>=0.0.3
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "cdk-dms-replication",
8
- "version": "0.2.45",
8
+ "version": "0.3.0",
9
9
  "description": "L3 CDK Constructs for Amazon Database Migration Service (DMS) — pattern construct bundling replication instance, endpoints, and tasks with secure defaults.",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/kckempf/cdk-dms-replication#readme",
@@ -26,7 +26,7 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "cdk_dms_replication._jsii": [
29
- "cdk-dms-replication@0.2.45.jsii.tgz"
29
+ "cdk-dms-replication@0.3.0.jsii.tgz"
30
30
  ],
31
31
  "cdk_dms_replication": [
32
32
  "py.typed"
@@ -34,7 +34,7 @@ kwargs = json.loads(
34
34
  },
35
35
  "python_requires": ">=3.10",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.100.0, <3.0.0",
37
+ "aws-cdk-lib>=2.259.0, <3.0.0",
38
38
  "constructs>=10.5.1, <11.0.0",
39
39
  "jsii>=1.142.0, <2.0.0",
40
40
  "publication>=0.0.3"
@@ -1301,10 +1301,14 @@ class DatePartitionSequence(enum.Enum):
1301
1301
  jsii_struct_bases=[],
1302
1302
  name_mapping={
1303
1303
  "current_lsn": "currentLsn",
1304
+ "keep_csv_files": "keepCsvFiles",
1305
+ "load_timeout": "loadTimeout",
1306
+ "max_file_size": "maxFileSize",
1304
1307
  "max_k_bytes_per_read": "maxKBytesPerRead",
1305
1308
  "secrets_manager_access_role_arn": "secretsManagerAccessRoleArn",
1306
1309
  "secrets_manager_secret_id": "secretsManagerSecretId",
1307
1310
  "set_data_capture_changes": "setDataCaptureChanges",
1311
+ "write_buffer_size": "writeBufferSize",
1308
1312
  },
1309
1313
  )
1310
1314
  class Db2Settings:
@@ -1312,29 +1316,47 @@ class Db2Settings:
1312
1316
  self,
1313
1317
  *,
1314
1318
  current_lsn: typing.Optional[builtins.str] = None,
1319
+ keep_csv_files: typing.Optional[builtins.bool] = None,
1320
+ load_timeout: typing.Optional[jsii.Number] = None,
1321
+ max_file_size: typing.Optional[jsii.Number] = None,
1315
1322
  max_k_bytes_per_read: typing.Optional[jsii.Number] = None,
1316
1323
  secrets_manager_access_role_arn: typing.Optional[builtins.str] = None,
1317
1324
  secrets_manager_secret_id: typing.Optional[builtins.str] = None,
1318
1325
  set_data_capture_changes: typing.Optional[builtins.bool] = None,
1326
+ write_buffer_size: typing.Optional[jsii.Number] = None,
1319
1327
  ) -> None:
1320
1328
  '''Settings for IBM Db2 LUW endpoints.
1321
1329
 
1322
1330
  :param current_lsn: Current LSN as of which DMS should start reading.
1331
+ :param keep_csv_files: (Target) Whether DMS keeps the .csv files it used to load data, for troubleshooting.
1332
+ :param load_timeout: (Target) Time in milliseconds DMS waits before timing out a data load.
1333
+ :param max_file_size: (Target) Maximum size in KB of the .csv files DMS uses to load data.
1323
1334
  :param max_k_bytes_per_read: Maximum number of bytes per read operation.
1324
1335
  :param secrets_manager_access_role_arn: ARN of IAM role for Secrets Manager.
1325
1336
  :param secrets_manager_secret_id: Full ARN or name of the Secrets Manager secret.
1326
1337
  :param set_data_capture_changes: Enables ongoing replication (CDC) for Db2.
1338
+ :param write_buffer_size: (Target) Size in KB of the in-memory buffer DMS writes to before flushing to a .csv file.
1327
1339
  '''
1328
1340
  if __debug__:
1329
1341
  type_hints = cached_type_hints(_typecheckingstub__1143f2e78c07d441d5d14e66bc7da0554757dd7a36447d11d1002ea5079e40b3)
1330
1342
  check_type(argname="argument current_lsn", value=current_lsn, expected_type=type_hints["current_lsn"])
1343
+ check_type(argname="argument keep_csv_files", value=keep_csv_files, expected_type=type_hints["keep_csv_files"])
1344
+ check_type(argname="argument load_timeout", value=load_timeout, expected_type=type_hints["load_timeout"])
1345
+ check_type(argname="argument max_file_size", value=max_file_size, expected_type=type_hints["max_file_size"])
1331
1346
  check_type(argname="argument max_k_bytes_per_read", value=max_k_bytes_per_read, expected_type=type_hints["max_k_bytes_per_read"])
1332
1347
  check_type(argname="argument secrets_manager_access_role_arn", value=secrets_manager_access_role_arn, expected_type=type_hints["secrets_manager_access_role_arn"])
1333
1348
  check_type(argname="argument secrets_manager_secret_id", value=secrets_manager_secret_id, expected_type=type_hints["secrets_manager_secret_id"])
1334
1349
  check_type(argname="argument set_data_capture_changes", value=set_data_capture_changes, expected_type=type_hints["set_data_capture_changes"])
1350
+ check_type(argname="argument write_buffer_size", value=write_buffer_size, expected_type=type_hints["write_buffer_size"])
1335
1351
  self._values: typing.Dict[builtins.str, typing.Any] = {}
1336
1352
  if current_lsn is not None:
1337
1353
  self._values["current_lsn"] = current_lsn
1354
+ if keep_csv_files is not None:
1355
+ self._values["keep_csv_files"] = keep_csv_files
1356
+ if load_timeout is not None:
1357
+ self._values["load_timeout"] = load_timeout
1358
+ if max_file_size is not None:
1359
+ self._values["max_file_size"] = max_file_size
1338
1360
  if max_k_bytes_per_read is not None:
1339
1361
  self._values["max_k_bytes_per_read"] = max_k_bytes_per_read
1340
1362
  if secrets_manager_access_role_arn is not None:
@@ -1343,6 +1365,8 @@ class Db2Settings:
1343
1365
  self._values["secrets_manager_secret_id"] = secrets_manager_secret_id
1344
1366
  if set_data_capture_changes is not None:
1345
1367
  self._values["set_data_capture_changes"] = set_data_capture_changes
1368
+ if write_buffer_size is not None:
1369
+ self._values["write_buffer_size"] = write_buffer_size
1346
1370
 
1347
1371
  @builtins.property
1348
1372
  def current_lsn(self) -> typing.Optional[builtins.str]:
@@ -1350,6 +1374,24 @@ class Db2Settings:
1350
1374
  result = self._values.get("current_lsn")
1351
1375
  return typing.cast(typing.Optional[builtins.str], result)
1352
1376
 
1377
+ @builtins.property
1378
+ def keep_csv_files(self) -> typing.Optional[builtins.bool]:
1379
+ '''(Target) Whether DMS keeps the .csv files it used to load data, for troubleshooting.'''
1380
+ result = self._values.get("keep_csv_files")
1381
+ return typing.cast(typing.Optional[builtins.bool], result)
1382
+
1383
+ @builtins.property
1384
+ def load_timeout(self) -> typing.Optional[jsii.Number]:
1385
+ '''(Target) Time in milliseconds DMS waits before timing out a data load.'''
1386
+ result = self._values.get("load_timeout")
1387
+ return typing.cast(typing.Optional[jsii.Number], result)
1388
+
1389
+ @builtins.property
1390
+ def max_file_size(self) -> typing.Optional[jsii.Number]:
1391
+ '''(Target) Maximum size in KB of the .csv files DMS uses to load data.'''
1392
+ result = self._values.get("max_file_size")
1393
+ return typing.cast(typing.Optional[jsii.Number], result)
1394
+
1353
1395
  @builtins.property
1354
1396
  def max_k_bytes_per_read(self) -> typing.Optional[jsii.Number]:
1355
1397
  '''Maximum number of bytes per read operation.'''
@@ -1374,6 +1416,12 @@ class Db2Settings:
1374
1416
  result = self._values.get("set_data_capture_changes")
1375
1417
  return typing.cast(typing.Optional[builtins.bool], result)
1376
1418
 
1419
+ @builtins.property
1420
+ def write_buffer_size(self) -> typing.Optional[jsii.Number]:
1421
+ '''(Target) Size in KB of the in-memory buffer DMS writes to before flushing to a .csv file.'''
1422
+ result = self._values.get("write_buffer_size")
1423
+ return typing.cast(typing.Optional[jsii.Number], result)
1424
+
1377
1425
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1378
1426
  return isinstance(rhs, self.__class__) and rhs._values == self._values
1379
1427
 
@@ -1852,6 +1900,7 @@ class DmsMigrationPipeline(
1852
1900
  cdc_start_time: typing.Optional[builtins.str] = None,
1853
1901
  cdc_stop_position: typing.Optional[builtins.str] = None,
1854
1902
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
1903
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
1855
1904
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
1856
1905
  encryption_key: typing.Optional["_aws_cdk_aws_kms_ceddda9d.IKey"] = None,
1857
1906
  engine_version: typing.Optional[builtins.str] = None,
@@ -1859,6 +1908,7 @@ class DmsMigrationPipeline(
1859
1908
  existing_target_endpoint: typing.Optional["IDmsEndpoint"] = None,
1860
1909
  log_retention: typing.Optional["_aws_cdk_aws_logs_ceddda9d.RetentionDays"] = None,
1861
1910
  multi_az: typing.Optional[builtins.bool] = None,
1911
+ network_type: typing.Optional["NetworkType"] = None,
1862
1912
  removal_policy: typing.Optional["_aws_cdk_ceddda9d.RemovalPolicy"] = None,
1863
1913
  replication_instance_class: typing.Optional["ReplicationInstanceClass"] = None,
1864
1914
  source_endpoint: typing.Optional[typing.Union["SourceEndpointOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -1877,6 +1927,7 @@ class DmsMigrationPipeline(
1877
1927
  :param cdc_start_time: CDC start time (ISO-8601 string or Unix epoch seconds). Only used when migrationType includes CDC.
1878
1928
  :param cdc_stop_position: CDC stop position. Only used when migrationType includes CDC.
1879
1929
  :param create_dms_service_roles: Whether to create the two account-level DMS service roles (``dms-vpc-role`` and ``dms-cloudwatch-logs-role``) required by DMS. When ``true``, the roles are created idempotently via a custom resource: if either role already exists in the account (created by another stack or manually), the existing role is silently reused and its trust policy is corrected if necessary. The roles are created with ``RemovalPolicy.RETAIN`` and are **not** lifecycle-managed by this stack — they will not be deleted when the stack is destroyed. If you require the roles to be lifecycle-managed, create them in a dedicated stack and set this to ``false``, then pass cross-stack references as needed. When ``false``, the construct expects the roles to already be present and skips creating them. The ``dmsVpcRole`` and ``dmsCloudWatchRole`` properties will be ``undefined``. Default: true
1930
+ :param dns_name_servers: Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
1880
1931
  :param enable_cloud_watch_logs: Whether to create a CloudWatch log group for the task. Default: true
1881
1932
  :param encryption_key: KMS key for encrypting the replication instance storage at rest. A new key is created if not provided.
1882
1933
  :param engine_version: Engine version for the replication instance. Default: latest version available in the region (chosen by DMS)
@@ -1884,6 +1935,7 @@ class DmsMigrationPipeline(
1884
1935
  :param existing_target_endpoint: An existing {@link IDmsEndpoint} to use as the target. Provide this OR ``targetEndpoint`` — not both.
1885
1936
  :param log_retention: Retention period for the CloudWatch log group. Default: logs.RetentionDays.ONE_MONTH
1886
1937
  :param multi_az: Whether the replication instance is Multi-AZ. Default: false
1938
+ :param network_type: IP addressing mode for the replication instance. Default: NetworkType.IPV4 (chosen by DMS)
1887
1939
  :param removal_policy: Removal policy applied to all resources in the pipeline. Default: cdk.RemovalPolicy.DESTROY
1888
1940
  :param replication_instance_class: Replication instance class. Default: ReplicationInstanceClass.R6I_LARGE
1889
1941
  :param source_endpoint: Source endpoint configuration. Provide this OR ``existingSourceEndpoint`` — not both.
@@ -1904,6 +1956,7 @@ class DmsMigrationPipeline(
1904
1956
  cdc_start_time=cdc_start_time,
1905
1957
  cdc_stop_position=cdc_stop_position,
1906
1958
  create_dms_service_roles=create_dms_service_roles,
1959
+ dns_name_servers=dns_name_servers,
1907
1960
  enable_cloud_watch_logs=enable_cloud_watch_logs,
1908
1961
  encryption_key=encryption_key,
1909
1962
  engine_version=engine_version,
@@ -1911,6 +1964,7 @@ class DmsMigrationPipeline(
1911
1964
  existing_target_endpoint=existing_target_endpoint,
1912
1965
  log_retention=log_retention,
1913
1966
  multi_az=multi_az,
1967
+ network_type=network_type,
1914
1968
  removal_policy=removal_policy,
1915
1969
  replication_instance_class=replication_instance_class,
1916
1970
  source_endpoint=source_endpoint,
@@ -1982,6 +2036,7 @@ class DmsMigrationPipeline(
1982
2036
  "cdc_start_time": "cdcStartTime",
1983
2037
  "cdc_stop_position": "cdcStopPosition",
1984
2038
  "create_dms_service_roles": "createDmsServiceRoles",
2039
+ "dns_name_servers": "dnsNameServers",
1985
2040
  "enable_cloud_watch_logs": "enableCloudWatchLogs",
1986
2041
  "encryption_key": "encryptionKey",
1987
2042
  "engine_version": "engineVersion",
@@ -1989,6 +2044,7 @@ class DmsMigrationPipeline(
1989
2044
  "existing_target_endpoint": "existingTargetEndpoint",
1990
2045
  "log_retention": "logRetention",
1991
2046
  "multi_az": "multiAz",
2047
+ "network_type": "networkType",
1992
2048
  "removal_policy": "removalPolicy",
1993
2049
  "replication_instance_class": "replicationInstanceClass",
1994
2050
  "source_endpoint": "sourceEndpoint",
@@ -2009,6 +2065,7 @@ class DmsMigrationPipelineProps:
2009
2065
  cdc_start_time: typing.Optional[builtins.str] = None,
2010
2066
  cdc_stop_position: typing.Optional[builtins.str] = None,
2011
2067
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
2068
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
2012
2069
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
2013
2070
  encryption_key: typing.Optional["_aws_cdk_aws_kms_ceddda9d.IKey"] = None,
2014
2071
  engine_version: typing.Optional[builtins.str] = None,
@@ -2016,6 +2073,7 @@ class DmsMigrationPipelineProps:
2016
2073
  existing_target_endpoint: typing.Optional["IDmsEndpoint"] = None,
2017
2074
  log_retention: typing.Optional["_aws_cdk_aws_logs_ceddda9d.RetentionDays"] = None,
2018
2075
  multi_az: typing.Optional[builtins.bool] = None,
2076
+ network_type: typing.Optional["NetworkType"] = None,
2019
2077
  removal_policy: typing.Optional["_aws_cdk_ceddda9d.RemovalPolicy"] = None,
2020
2078
  replication_instance_class: typing.Optional["ReplicationInstanceClass"] = None,
2021
2079
  source_endpoint: typing.Optional[typing.Union["SourceEndpointOptions", typing.Dict[builtins.str, typing.Any]]] = None,
@@ -2033,6 +2091,7 @@ class DmsMigrationPipelineProps:
2033
2091
  :param cdc_start_time: CDC start time (ISO-8601 string or Unix epoch seconds). Only used when migrationType includes CDC.
2034
2092
  :param cdc_stop_position: CDC stop position. Only used when migrationType includes CDC.
2035
2093
  :param create_dms_service_roles: Whether to create the two account-level DMS service roles (``dms-vpc-role`` and ``dms-cloudwatch-logs-role``) required by DMS. When ``true``, the roles are created idempotently via a custom resource: if either role already exists in the account (created by another stack or manually), the existing role is silently reused and its trust policy is corrected if necessary. The roles are created with ``RemovalPolicy.RETAIN`` and are **not** lifecycle-managed by this stack — they will not be deleted when the stack is destroyed. If you require the roles to be lifecycle-managed, create them in a dedicated stack and set this to ``false``, then pass cross-stack references as needed. When ``false``, the construct expects the roles to already be present and skips creating them. The ``dmsVpcRole`` and ``dmsCloudWatchRole`` properties will be ``undefined``. Default: true
2094
+ :param dns_name_servers: Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
2036
2095
  :param enable_cloud_watch_logs: Whether to create a CloudWatch log group for the task. Default: true
2037
2096
  :param encryption_key: KMS key for encrypting the replication instance storage at rest. A new key is created if not provided.
2038
2097
  :param engine_version: Engine version for the replication instance. Default: latest version available in the region (chosen by DMS)
@@ -2040,6 +2099,7 @@ class DmsMigrationPipelineProps:
2040
2099
  :param existing_target_endpoint: An existing {@link IDmsEndpoint} to use as the target. Provide this OR ``targetEndpoint`` — not both.
2041
2100
  :param log_retention: Retention period for the CloudWatch log group. Default: logs.RetentionDays.ONE_MONTH
2042
2101
  :param multi_az: Whether the replication instance is Multi-AZ. Default: false
2102
+ :param network_type: IP addressing mode for the replication instance. Default: NetworkType.IPV4 (chosen by DMS)
2043
2103
  :param removal_policy: Removal policy applied to all resources in the pipeline. Default: cdk.RemovalPolicy.DESTROY
2044
2104
  :param replication_instance_class: Replication instance class. Default: ReplicationInstanceClass.R6I_LARGE
2045
2105
  :param source_endpoint: Source endpoint configuration. Provide this OR ``existingSourceEndpoint`` — not both.
@@ -2063,6 +2123,7 @@ class DmsMigrationPipelineProps:
2063
2123
  check_type(argname="argument cdc_start_time", value=cdc_start_time, expected_type=type_hints["cdc_start_time"])
2064
2124
  check_type(argname="argument cdc_stop_position", value=cdc_stop_position, expected_type=type_hints["cdc_stop_position"])
2065
2125
  check_type(argname="argument create_dms_service_roles", value=create_dms_service_roles, expected_type=type_hints["create_dms_service_roles"])
2126
+ check_type(argname="argument dns_name_servers", value=dns_name_servers, expected_type=type_hints["dns_name_servers"])
2066
2127
  check_type(argname="argument enable_cloud_watch_logs", value=enable_cloud_watch_logs, expected_type=type_hints["enable_cloud_watch_logs"])
2067
2128
  check_type(argname="argument encryption_key", value=encryption_key, expected_type=type_hints["encryption_key"])
2068
2129
  check_type(argname="argument engine_version", value=engine_version, expected_type=type_hints["engine_version"])
@@ -2070,6 +2131,7 @@ class DmsMigrationPipelineProps:
2070
2131
  check_type(argname="argument existing_target_endpoint", value=existing_target_endpoint, expected_type=type_hints["existing_target_endpoint"])
2071
2132
  check_type(argname="argument log_retention", value=log_retention, expected_type=type_hints["log_retention"])
2072
2133
  check_type(argname="argument multi_az", value=multi_az, expected_type=type_hints["multi_az"])
2134
+ check_type(argname="argument network_type", value=network_type, expected_type=type_hints["network_type"])
2073
2135
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
2074
2136
  check_type(argname="argument replication_instance_class", value=replication_instance_class, expected_type=type_hints["replication_instance_class"])
2075
2137
  check_type(argname="argument source_endpoint", value=source_endpoint, expected_type=type_hints["source_endpoint"])
@@ -2091,6 +2153,8 @@ class DmsMigrationPipelineProps:
2091
2153
  self._values["cdc_stop_position"] = cdc_stop_position
2092
2154
  if create_dms_service_roles is not None:
2093
2155
  self._values["create_dms_service_roles"] = create_dms_service_roles
2156
+ if dns_name_servers is not None:
2157
+ self._values["dns_name_servers"] = dns_name_servers
2094
2158
  if enable_cloud_watch_logs is not None:
2095
2159
  self._values["enable_cloud_watch_logs"] = enable_cloud_watch_logs
2096
2160
  if encryption_key is not None:
@@ -2105,6 +2169,8 @@ class DmsMigrationPipelineProps:
2105
2169
  self._values["log_retention"] = log_retention
2106
2170
  if multi_az is not None:
2107
2171
  self._values["multi_az"] = multi_az
2172
+ if network_type is not None:
2173
+ self._values["network_type"] = network_type
2108
2174
  if removal_policy is not None:
2109
2175
  self._values["removal_policy"] = removal_policy
2110
2176
  if replication_instance_class is not None:
@@ -2195,6 +2261,15 @@ class DmsMigrationPipelineProps:
2195
2261
  result = self._values.get("create_dms_service_roles")
2196
2262
  return typing.cast(typing.Optional[builtins.bool], result)
2197
2263
 
2264
+ @builtins.property
2265
+ def dns_name_servers(self) -> typing.Optional[typing.List[builtins.str]]:
2266
+ '''Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses.
2267
+
2268
+ :default: the VPC's Amazon-provided DNS server
2269
+ '''
2270
+ result = self._values.get("dns_name_servers")
2271
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2272
+
2198
2273
  @builtins.property
2199
2274
  def enable_cloud_watch_logs(self) -> typing.Optional[builtins.bool]:
2200
2275
  '''Whether to create a CloudWatch log group for the task.
@@ -2260,6 +2335,15 @@ class DmsMigrationPipelineProps:
2260
2335
  result = self._values.get("multi_az")
2261
2336
  return typing.cast(typing.Optional[builtins.bool], result)
2262
2337
 
2338
+ @builtins.property
2339
+ def network_type(self) -> typing.Optional["NetworkType"]:
2340
+ '''IP addressing mode for the replication instance.
2341
+
2342
+ :default: NetworkType.IPV4 (chosen by DMS)
2343
+ '''
2344
+ result = self._values.get("network_type")
2345
+ return typing.cast(typing.Optional["NetworkType"], result)
2346
+
2263
2347
  @builtins.property
2264
2348
  def removal_policy(self) -> typing.Optional["_aws_cdk_ceddda9d.RemovalPolicy"]:
2265
2349
  '''Removal policy applied to all resources in the pipeline.
@@ -2354,9 +2438,11 @@ class DmsReplicationInstance(
2354
2438
  vpc: "_aws_cdk_aws_ec2_ceddda9d.IVpc",
2355
2439
  allocated_storage: typing.Optional[jsii.Number] = None,
2356
2440
  auto_minor_version_upgrade: typing.Optional[builtins.bool] = None,
2441
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
2357
2442
  engine_version: typing.Optional[builtins.str] = None,
2358
2443
  kms_key: typing.Optional["_aws_cdk_aws_kms_ceddda9d.IKey"] = None,
2359
2444
  multi_az: typing.Optional[builtins.bool] = None,
2445
+ network_type: typing.Optional["NetworkType"] = None,
2360
2446
  preferred_maintenance_window: typing.Optional[builtins.str] = None,
2361
2447
  publicly_accessible: typing.Optional[builtins.bool] = None,
2362
2448
  removal_policy: typing.Optional["_aws_cdk_ceddda9d.RemovalPolicy"] = None,
@@ -2371,9 +2457,11 @@ class DmsReplicationInstance(
2371
2457
  :param vpc: VPC in which to place the replication instance. The construct creates a dedicated subnet group from the private subnets.
2372
2458
  :param allocated_storage: Allocated storage in GB. Default: 100
2373
2459
  :param auto_minor_version_upgrade: Whether to allow minor version upgrades to be applied automatically during maintenance. Default: true
2460
+ :param dns_name_servers: Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
2374
2461
  :param engine_version: Replication engine version. Default: latest version available in the region (chosen by DMS)
2375
2462
  :param kms_key: KMS key used to encrypt the replication instance storage at rest. A new key is created if not provided.
2376
2463
  :param multi_az: Whether the replication instance is Multi-AZ. Default: false
2464
+ :param network_type: IP addressing mode for the replication instance. Default: NetworkType.IPV4 (chosen by DMS)
2377
2465
  :param preferred_maintenance_window: Preferred maintenance window, e.g. "sun:04:00-sun:04:30".
2378
2466
  :param publicly_accessible: Whether the replication instance is publicly accessible. Setting this to true is strongly discouraged for production workloads. Default: false
2379
2467
  :param removal_policy: Removal policy applied to the replication instance. Default: cdk.RemovalPolicy.DESTROY
@@ -2390,9 +2478,11 @@ class DmsReplicationInstance(
2390
2478
  vpc=vpc,
2391
2479
  allocated_storage=allocated_storage,
2392
2480
  auto_minor_version_upgrade=auto_minor_version_upgrade,
2481
+ dns_name_servers=dns_name_servers,
2393
2482
  engine_version=engine_version,
2394
2483
  kms_key=kms_key,
2395
2484
  multi_az=multi_az,
2485
+ network_type=network_type,
2396
2486
  preferred_maintenance_window=preferred_maintenance_window,
2397
2487
  publicly_accessible=publicly_accessible,
2398
2488
  removal_policy=removal_policy,
@@ -2466,9 +2556,11 @@ class DmsReplicationInstance(
2466
2556
  "vpc": "vpc",
2467
2557
  "allocated_storage": "allocatedStorage",
2468
2558
  "auto_minor_version_upgrade": "autoMinorVersionUpgrade",
2559
+ "dns_name_servers": "dnsNameServers",
2469
2560
  "engine_version": "engineVersion",
2470
2561
  "kms_key": "kmsKey",
2471
2562
  "multi_az": "multiAz",
2563
+ "network_type": "networkType",
2472
2564
  "preferred_maintenance_window": "preferredMaintenanceWindow",
2473
2565
  "publicly_accessible": "publiclyAccessible",
2474
2566
  "removal_policy": "removalPolicy",
@@ -2485,9 +2577,11 @@ class DmsReplicationInstanceProps:
2485
2577
  vpc: "_aws_cdk_aws_ec2_ceddda9d.IVpc",
2486
2578
  allocated_storage: typing.Optional[jsii.Number] = None,
2487
2579
  auto_minor_version_upgrade: typing.Optional[builtins.bool] = None,
2580
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
2488
2581
  engine_version: typing.Optional[builtins.str] = None,
2489
2582
  kms_key: typing.Optional["_aws_cdk_aws_kms_ceddda9d.IKey"] = None,
2490
2583
  multi_az: typing.Optional[builtins.bool] = None,
2584
+ network_type: typing.Optional["NetworkType"] = None,
2491
2585
  preferred_maintenance_window: typing.Optional[builtins.str] = None,
2492
2586
  publicly_accessible: typing.Optional[builtins.bool] = None,
2493
2587
  removal_policy: typing.Optional["_aws_cdk_ceddda9d.RemovalPolicy"] = None,
@@ -2501,9 +2595,11 @@ class DmsReplicationInstanceProps:
2501
2595
  :param vpc: VPC in which to place the replication instance. The construct creates a dedicated subnet group from the private subnets.
2502
2596
  :param allocated_storage: Allocated storage in GB. Default: 100
2503
2597
  :param auto_minor_version_upgrade: Whether to allow minor version upgrades to be applied automatically during maintenance. Default: true
2598
+ :param dns_name_servers: Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
2504
2599
  :param engine_version: Replication engine version. Default: latest version available in the region (chosen by DMS)
2505
2600
  :param kms_key: KMS key used to encrypt the replication instance storage at rest. A new key is created if not provided.
2506
2601
  :param multi_az: Whether the replication instance is Multi-AZ. Default: false
2602
+ :param network_type: IP addressing mode for the replication instance. Default: NetworkType.IPV4 (chosen by DMS)
2507
2603
  :param preferred_maintenance_window: Preferred maintenance window, e.g. "sun:04:00-sun:04:30".
2508
2604
  :param publicly_accessible: Whether the replication instance is publicly accessible. Setting this to true is strongly discouraged for production workloads. Default: false
2509
2605
  :param removal_policy: Removal policy applied to the replication instance. Default: cdk.RemovalPolicy.DESTROY
@@ -2519,9 +2615,11 @@ class DmsReplicationInstanceProps:
2519
2615
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
2520
2616
  check_type(argname="argument allocated_storage", value=allocated_storage, expected_type=type_hints["allocated_storage"])
2521
2617
  check_type(argname="argument auto_minor_version_upgrade", value=auto_minor_version_upgrade, expected_type=type_hints["auto_minor_version_upgrade"])
2618
+ check_type(argname="argument dns_name_servers", value=dns_name_servers, expected_type=type_hints["dns_name_servers"])
2522
2619
  check_type(argname="argument engine_version", value=engine_version, expected_type=type_hints["engine_version"])
2523
2620
  check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
2524
2621
  check_type(argname="argument multi_az", value=multi_az, expected_type=type_hints["multi_az"])
2622
+ check_type(argname="argument network_type", value=network_type, expected_type=type_hints["network_type"])
2525
2623
  check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
2526
2624
  check_type(argname="argument publicly_accessible", value=publicly_accessible, expected_type=type_hints["publicly_accessible"])
2527
2625
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
@@ -2536,12 +2634,16 @@ class DmsReplicationInstanceProps:
2536
2634
  self._values["allocated_storage"] = allocated_storage
2537
2635
  if auto_minor_version_upgrade is not None:
2538
2636
  self._values["auto_minor_version_upgrade"] = auto_minor_version_upgrade
2637
+ if dns_name_servers is not None:
2638
+ self._values["dns_name_servers"] = dns_name_servers
2539
2639
  if engine_version is not None:
2540
2640
  self._values["engine_version"] = engine_version
2541
2641
  if kms_key is not None:
2542
2642
  self._values["kms_key"] = kms_key
2543
2643
  if multi_az is not None:
2544
2644
  self._values["multi_az"] = multi_az
2645
+ if network_type is not None:
2646
+ self._values["network_type"] = network_type
2545
2647
  if preferred_maintenance_window is not None:
2546
2648
  self._values["preferred_maintenance_window"] = preferred_maintenance_window
2547
2649
  if publicly_accessible is not None:
@@ -2585,6 +2687,15 @@ class DmsReplicationInstanceProps:
2585
2687
  result = self._values.get("auto_minor_version_upgrade")
2586
2688
  return typing.cast(typing.Optional[builtins.bool], result)
2587
2689
 
2690
+ @builtins.property
2691
+ def dns_name_servers(self) -> typing.Optional[typing.List[builtins.str]]:
2692
+ '''Custom DNS name servers for the replication instance, e.g. to resolve on-premises hostnames. Up to four IP addresses.
2693
+
2694
+ :default: the VPC's Amazon-provided DNS server
2695
+ '''
2696
+ result = self._values.get("dns_name_servers")
2697
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2698
+
2588
2699
  @builtins.property
2589
2700
  def engine_version(self) -> typing.Optional[builtins.str]:
2590
2701
  '''Replication engine version.
@@ -2612,6 +2723,15 @@ class DmsReplicationInstanceProps:
2612
2723
  result = self._values.get("multi_az")
2613
2724
  return typing.cast(typing.Optional[builtins.bool], result)
2614
2725
 
2726
+ @builtins.property
2727
+ def network_type(self) -> typing.Optional["NetworkType"]:
2728
+ '''IP addressing mode for the replication instance.
2729
+
2730
+ :default: NetworkType.IPV4 (chosen by DMS)
2731
+ '''
2732
+ result = self._values.get("network_type")
2733
+ return typing.cast(typing.Optional["NetworkType"], result)
2734
+
2615
2735
  @builtins.property
2616
2736
  def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
2617
2737
  '''Preferred maintenance window, e.g. "sun:04:00-sun:04:30".'''
@@ -3027,6 +3147,7 @@ class DmsServerlessPipeline(
3027
3147
  migration_type: "MigrationType",
3028
3148
  vpc: "_aws_cdk_aws_ec2_ceddda9d.IVpc",
3029
3149
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
3150
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
3030
3151
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
3031
3152
  existing_source_endpoint: typing.Optional["IDmsEndpoint"] = None,
3032
3153
  existing_target_endpoint: typing.Optional["IDmsEndpoint"] = None,
@@ -3051,6 +3172,7 @@ class DmsServerlessPipeline(
3051
3172
  :param migration_type: The type of migration to perform.
3052
3173
  :param vpc: VPC in which to place the serverless replication config. The config is placed in private subnets.
3053
3174
  :param create_dms_service_roles: Whether to create the two account-level DMS service roles (``dms-vpc-role`` and ``dms-cloudwatch-logs-role``) required by DMS. When ``true``, the roles are created idempotently via a custom resource: if either role already exists in the account (created by another stack or manually), the existing role is silently reused and its trust policy is corrected if necessary. The roles are created with ``RemovalPolicy.RETAIN`` and are **not** lifecycle-managed by this stack — they will not be deleted when the stack is destroyed. If you require the roles to be lifecycle-managed, create them in a dedicated stack and set this to ``false``, then pass cross-stack references as needed. When ``false``, the construct expects the roles to already be present and skips creating them. The ``dmsVpcRole`` and ``dmsCloudWatchRole`` properties will be ``undefined``. Default: true
3175
+ :param dns_name_servers: Custom DNS name servers for the serverless replication, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
3054
3176
  :param enable_cloud_watch_logs: Whether to create a CloudWatch log group for the replication config. Default: true
3055
3177
  :param existing_source_endpoint: An existing {@link IDmsEndpoint} to use as the source. Provide this OR ``sourceEndpoint`` — not both.
3056
3178
  :param existing_target_endpoint: An existing {@link IDmsEndpoint} to use as the target. Provide this OR ``targetEndpoint`` — not both.
@@ -3077,6 +3199,7 @@ class DmsServerlessPipeline(
3077
3199
  migration_type=migration_type,
3078
3200
  vpc=vpc,
3079
3201
  create_dms_service_roles=create_dms_service_roles,
3202
+ dns_name_servers=dns_name_servers,
3080
3203
  enable_cloud_watch_logs=enable_cloud_watch_logs,
3081
3204
  existing_source_endpoint=existing_source_endpoint,
3082
3205
  existing_target_endpoint=existing_target_endpoint,
@@ -3174,6 +3297,7 @@ class DmsServerlessPipeline(
3174
3297
  "migration_type": "migrationType",
3175
3298
  "vpc": "vpc",
3176
3299
  "create_dms_service_roles": "createDmsServiceRoles",
3300
+ "dns_name_servers": "dnsNameServers",
3177
3301
  "enable_cloud_watch_logs": "enableCloudWatchLogs",
3178
3302
  "existing_source_endpoint": "existingSourceEndpoint",
3179
3303
  "existing_target_endpoint": "existingTargetEndpoint",
@@ -3200,6 +3324,7 @@ class DmsServerlessPipelineProps:
3200
3324
  migration_type: "MigrationType",
3201
3325
  vpc: "_aws_cdk_aws_ec2_ceddda9d.IVpc",
3202
3326
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
3327
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
3203
3328
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
3204
3329
  existing_source_endpoint: typing.Optional["IDmsEndpoint"] = None,
3205
3330
  existing_target_endpoint: typing.Optional["IDmsEndpoint"] = None,
@@ -3223,6 +3348,7 @@ class DmsServerlessPipelineProps:
3223
3348
  :param migration_type: The type of migration to perform.
3224
3349
  :param vpc: VPC in which to place the serverless replication config. The config is placed in private subnets.
3225
3350
  :param create_dms_service_roles: Whether to create the two account-level DMS service roles (``dms-vpc-role`` and ``dms-cloudwatch-logs-role``) required by DMS. When ``true``, the roles are created idempotently via a custom resource: if either role already exists in the account (created by another stack or manually), the existing role is silently reused and its trust policy is corrected if necessary. The roles are created with ``RemovalPolicy.RETAIN`` and are **not** lifecycle-managed by this stack — they will not be deleted when the stack is destroyed. If you require the roles to be lifecycle-managed, create them in a dedicated stack and set this to ``false``, then pass cross-stack references as needed. When ``false``, the construct expects the roles to already be present and skips creating them. The ``dmsVpcRole`` and ``dmsCloudWatchRole`` properties will be ``undefined``. Default: true
3351
+ :param dns_name_servers: Custom DNS name servers for the serverless replication, e.g. to resolve on-premises hostnames. Up to four IP addresses. Default: the VPC's Amazon-provided DNS server
3226
3352
  :param enable_cloud_watch_logs: Whether to create a CloudWatch log group for the replication config. Default: true
3227
3353
  :param existing_source_endpoint: An existing {@link IDmsEndpoint} to use as the source. Provide this OR ``sourceEndpoint`` — not both.
3228
3354
  :param existing_target_endpoint: An existing {@link IDmsEndpoint} to use as the target. Provide this OR ``targetEndpoint`` — not both.
@@ -3252,6 +3378,7 @@ class DmsServerlessPipelineProps:
3252
3378
  check_type(argname="argument migration_type", value=migration_type, expected_type=type_hints["migration_type"])
3253
3379
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
3254
3380
  check_type(argname="argument create_dms_service_roles", value=create_dms_service_roles, expected_type=type_hints["create_dms_service_roles"])
3381
+ check_type(argname="argument dns_name_servers", value=dns_name_servers, expected_type=type_hints["dns_name_servers"])
3255
3382
  check_type(argname="argument enable_cloud_watch_logs", value=enable_cloud_watch_logs, expected_type=type_hints["enable_cloud_watch_logs"])
3256
3383
  check_type(argname="argument existing_source_endpoint", value=existing_source_endpoint, expected_type=type_hints["existing_source_endpoint"])
3257
3384
  check_type(argname="argument existing_target_endpoint", value=existing_target_endpoint, expected_type=type_hints["existing_target_endpoint"])
@@ -3275,6 +3402,8 @@ class DmsServerlessPipelineProps:
3275
3402
  }
3276
3403
  if create_dms_service_roles is not None:
3277
3404
  self._values["create_dms_service_roles"] = create_dms_service_roles
3405
+ if dns_name_servers is not None:
3406
+ self._values["dns_name_servers"] = dns_name_servers
3278
3407
  if enable_cloud_watch_logs is not None:
3279
3408
  self._values["enable_cloud_watch_logs"] = enable_cloud_watch_logs
3280
3409
  if existing_source_endpoint is not None:
@@ -3357,6 +3486,15 @@ class DmsServerlessPipelineProps:
3357
3486
  result = self._values.get("create_dms_service_roles")
3358
3487
  return typing.cast(typing.Optional[builtins.bool], result)
3359
3488
 
3489
+ @builtins.property
3490
+ def dns_name_servers(self) -> typing.Optional[typing.List[builtins.str]]:
3491
+ '''Custom DNS name servers for the serverless replication, e.g. to resolve on-premises hostnames. Up to four IP addresses.
3492
+
3493
+ :default: the VPC's Amazon-provided DNS server
3494
+ '''
3495
+ result = self._values.get("dns_name_servers")
3496
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
3497
+
3360
3498
  @builtins.property
3361
3499
  def enable_cloud_watch_logs(self) -> typing.Optional[builtins.bool]:
3362
3500
  '''Whether to create a CloudWatch log group for the replication config.
@@ -5152,6 +5290,19 @@ class NeptuneSettings:
5152
5290
  )
5153
5291
 
5154
5292
 
5293
+ @jsii.enum(jsii_type="cdk-dms-replication.NetworkType")
5294
+ class NetworkType(enum.Enum):
5295
+ '''IP addressing mode for a replication instance.'''
5296
+
5297
+ IPV4 = "IPV4"
5298
+ '''IPv4 only.'''
5299
+ DUAL = "DUAL"
5300
+ '''Dual-stack: IPv4 and IPv6.
5301
+
5302
+ Requires subnets with IPv6 CIDR blocks.
5303
+ '''
5304
+
5305
+
5155
5306
  @jsii.data_type(
5156
5307
  jsii_type="cdk-dms-replication.OpenSearchSettings",
5157
5308
  jsii_struct_bases=[],
@@ -6469,6 +6620,7 @@ class S3DataFormat(enum.Enum):
6469
6620
  "bucket_name": "bucketName",
6470
6621
  "service_access_role_arn": "serviceAccessRoleArn",
6471
6622
  "add_column_name": "addColumnName",
6623
+ "add_trailing_padding_character": "addTrailingPaddingCharacter",
6472
6624
  "bucket_folder": "bucketFolder",
6473
6625
  "cdc_inserts_and_updates": "cdcInsertsAndUpdates",
6474
6626
  "cdc_inserts_only": "cdcInsertsOnly",
@@ -6487,7 +6639,9 @@ class S3DataFormat(enum.Enum):
6487
6639
  "enable_statistics": "enableStatistics",
6488
6640
  "encoding_type": "encodingType",
6489
6641
  "encryption_mode": "encryptionMode",
6642
+ "expected_bucket_owner": "expectedBucketOwner",
6490
6643
  "external_table_definition": "externalTableDefinition",
6644
+ "glue_catalog_generation": "glueCatalogGeneration",
6491
6645
  "ignore_header_rows": "ignoreHeaderRows",
6492
6646
  "include_op_for_full_load": "includeOpForFullLoad",
6493
6647
  "max_file_size": "maxFileSize",
@@ -6509,6 +6663,7 @@ class S3Settings:
6509
6663
  bucket_name: builtins.str,
6510
6664
  service_access_role_arn: builtins.str,
6511
6665
  add_column_name: typing.Optional[builtins.bool] = None,
6666
+ add_trailing_padding_character: typing.Optional[builtins.bool] = None,
6512
6667
  bucket_folder: typing.Optional[builtins.str] = None,
6513
6668
  cdc_inserts_and_updates: typing.Optional[builtins.bool] = None,
6514
6669
  cdc_inserts_only: typing.Optional[builtins.bool] = None,
@@ -6527,7 +6682,9 @@ class S3Settings:
6527
6682
  enable_statistics: typing.Optional[builtins.bool] = None,
6528
6683
  encoding_type: typing.Optional["EncodingType"] = None,
6529
6684
  encryption_mode: typing.Optional["EncryptionMode"] = None,
6685
+ expected_bucket_owner: typing.Optional[builtins.str] = None,
6530
6686
  external_table_definition: typing.Optional[builtins.str] = None,
6687
+ glue_catalog_generation: typing.Optional[builtins.bool] = None,
6531
6688
  ignore_header_rows: typing.Optional[jsii.Number] = None,
6532
6689
  include_op_for_full_load: typing.Optional[builtins.bool] = None,
6533
6690
  max_file_size: typing.Optional[jsii.Number] = None,
@@ -6546,6 +6703,7 @@ class S3Settings:
6546
6703
  :param bucket_name: S3 bucket name.
6547
6704
  :param service_access_role_arn: IAM role ARN that DMS uses to access the S3 bucket.
6548
6705
  :param add_column_name: Whether DMS adds a column name field to CSV output.
6706
+ :param add_trailing_padding_character: Whether DMS pads string columns in CSV output to their declared length with trailing spaces.
6549
6707
  :param bucket_folder: Folder path prefix within the bucket.
6550
6708
  :param cdc_inserts_and_updates: Include CDC inserts and updates in the target.
6551
6709
  :param cdc_inserts_only: Include only inserts (not updates or deletes) in the target.
@@ -6564,7 +6722,9 @@ class S3Settings:
6564
6722
  :param enable_statistics: Whether to enable statistics for Parquet row groups.
6565
6723
  :param encoding_type: Encoding type for Parquet.
6566
6724
  :param encryption_mode: Encryption mode for data at rest in S3.
6725
+ :param expected_bucket_owner: AWS account ID expected to own the bucket. DMS fails rather than read from or write to a bucket owned by any other account. Default: - bucket ownership is not checked
6567
6726
  :param external_table_definition: JSON structure defining external tables (for S3 source).
6727
+ :param glue_catalog_generation: Whether DMS generates an AWS Glue Data Catalog for the target data, so it can be queried with Athena.
6568
6728
  :param ignore_header_rows: Number of header rows to ignore in the S3 source.
6569
6729
  :param include_op_for_full_load: Whether to include the operation column for full-load rows.
6570
6730
  :param max_file_size: Maximum file size (in KB) for data files.
@@ -6583,6 +6743,7 @@ class S3Settings:
6583
6743
  check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
6584
6744
  check_type(argname="argument service_access_role_arn", value=service_access_role_arn, expected_type=type_hints["service_access_role_arn"])
6585
6745
  check_type(argname="argument add_column_name", value=add_column_name, expected_type=type_hints["add_column_name"])
6746
+ check_type(argname="argument add_trailing_padding_character", value=add_trailing_padding_character, expected_type=type_hints["add_trailing_padding_character"])
6586
6747
  check_type(argname="argument bucket_folder", value=bucket_folder, expected_type=type_hints["bucket_folder"])
6587
6748
  check_type(argname="argument cdc_inserts_and_updates", value=cdc_inserts_and_updates, expected_type=type_hints["cdc_inserts_and_updates"])
6588
6749
  check_type(argname="argument cdc_inserts_only", value=cdc_inserts_only, expected_type=type_hints["cdc_inserts_only"])
@@ -6601,7 +6762,9 @@ class S3Settings:
6601
6762
  check_type(argname="argument enable_statistics", value=enable_statistics, expected_type=type_hints["enable_statistics"])
6602
6763
  check_type(argname="argument encoding_type", value=encoding_type, expected_type=type_hints["encoding_type"])
6603
6764
  check_type(argname="argument encryption_mode", value=encryption_mode, expected_type=type_hints["encryption_mode"])
6765
+ check_type(argname="argument expected_bucket_owner", value=expected_bucket_owner, expected_type=type_hints["expected_bucket_owner"])
6604
6766
  check_type(argname="argument external_table_definition", value=external_table_definition, expected_type=type_hints["external_table_definition"])
6767
+ check_type(argname="argument glue_catalog_generation", value=glue_catalog_generation, expected_type=type_hints["glue_catalog_generation"])
6605
6768
  check_type(argname="argument ignore_header_rows", value=ignore_header_rows, expected_type=type_hints["ignore_header_rows"])
6606
6769
  check_type(argname="argument include_op_for_full_load", value=include_op_for_full_load, expected_type=type_hints["include_op_for_full_load"])
6607
6770
  check_type(argname="argument max_file_size", value=max_file_size, expected_type=type_hints["max_file_size"])
@@ -6620,6 +6783,8 @@ class S3Settings:
6620
6783
  }
6621
6784
  if add_column_name is not None:
6622
6785
  self._values["add_column_name"] = add_column_name
6786
+ if add_trailing_padding_character is not None:
6787
+ self._values["add_trailing_padding_character"] = add_trailing_padding_character
6623
6788
  if bucket_folder is not None:
6624
6789
  self._values["bucket_folder"] = bucket_folder
6625
6790
  if cdc_inserts_and_updates is not None:
@@ -6656,8 +6821,12 @@ class S3Settings:
6656
6821
  self._values["encoding_type"] = encoding_type
6657
6822
  if encryption_mode is not None:
6658
6823
  self._values["encryption_mode"] = encryption_mode
6824
+ if expected_bucket_owner is not None:
6825
+ self._values["expected_bucket_owner"] = expected_bucket_owner
6659
6826
  if external_table_definition is not None:
6660
6827
  self._values["external_table_definition"] = external_table_definition
6828
+ if glue_catalog_generation is not None:
6829
+ self._values["glue_catalog_generation"] = glue_catalog_generation
6661
6830
  if ignore_header_rows is not None:
6662
6831
  self._values["ignore_header_rows"] = ignore_header_rows
6663
6832
  if include_op_for_full_load is not None:
@@ -6703,6 +6872,12 @@ class S3Settings:
6703
6872
  result = self._values.get("add_column_name")
6704
6873
  return typing.cast(typing.Optional[builtins.bool], result)
6705
6874
 
6875
+ @builtins.property
6876
+ def add_trailing_padding_character(self) -> typing.Optional[builtins.bool]:
6877
+ '''Whether DMS pads string columns in CSV output to their declared length with trailing spaces.'''
6878
+ result = self._values.get("add_trailing_padding_character")
6879
+ return typing.cast(typing.Optional[builtins.bool], result)
6880
+
6706
6881
  @builtins.property
6707
6882
  def bucket_folder(self) -> typing.Optional[builtins.str]:
6708
6883
  '''Folder path prefix within the bucket.'''
@@ -6817,12 +6992,30 @@ class S3Settings:
6817
6992
  result = self._values.get("encryption_mode")
6818
6993
  return typing.cast(typing.Optional["EncryptionMode"], result)
6819
6994
 
6995
+ @builtins.property
6996
+ def expected_bucket_owner(self) -> typing.Optional[builtins.str]:
6997
+ '''AWS account ID expected to own the bucket.
6998
+
6999
+ DMS fails rather than read
7000
+ from or write to a bucket owned by any other account.
7001
+
7002
+ :default: - bucket ownership is not checked
7003
+ '''
7004
+ result = self._values.get("expected_bucket_owner")
7005
+ return typing.cast(typing.Optional[builtins.str], result)
7006
+
6820
7007
  @builtins.property
6821
7008
  def external_table_definition(self) -> typing.Optional[builtins.str]:
6822
7009
  '''JSON structure defining external tables (for S3 source).'''
6823
7010
  result = self._values.get("external_table_definition")
6824
7011
  return typing.cast(typing.Optional[builtins.str], result)
6825
7012
 
7013
+ @builtins.property
7014
+ def glue_catalog_generation(self) -> typing.Optional[builtins.bool]:
7015
+ '''Whether DMS generates an AWS Glue Data Catalog for the target data, so it can be queried with Athena.'''
7016
+ result = self._values.get("glue_catalog_generation")
7017
+ return typing.cast(typing.Optional[builtins.bool], result)
7018
+
6826
7019
  @builtins.property
6827
7020
  def ignore_header_rows(self) -> typing.Optional[jsii.Number]:
6828
7021
  '''Number of header rows to ignore in the S3 source.'''
@@ -8721,6 +8914,7 @@ __all__ = [
8721
8914
  "MySqlSettings",
8722
8915
  "MySqlTargetDbType",
8723
8916
  "NeptuneSettings",
8917
+ "NetworkType",
8724
8918
  "OpenSearchSettings",
8725
8919
  "OracleCdcPlugin",
8726
8920
  "OracleNumberDatatypeScale",
@@ -8777,10 +8971,14 @@ def _typecheckingstub__2e7a5c04d8aef1a8104f515a1d5f90a7306a6b24436deee248f140247
8777
8971
  def _typecheckingstub__1143f2e78c07d441d5d14e66bc7da0554757dd7a36447d11d1002ea5079e40b3(
8778
8972
  *,
8779
8973
  current_lsn: typing.Optional[builtins.str] = None,
8974
+ keep_csv_files: typing.Optional[builtins.bool] = None,
8975
+ load_timeout: typing.Optional[jsii.Number] = None,
8976
+ max_file_size: typing.Optional[jsii.Number] = None,
8780
8977
  max_k_bytes_per_read: typing.Optional[jsii.Number] = None,
8781
8978
  secrets_manager_access_role_arn: typing.Optional[builtins.str] = None,
8782
8979
  secrets_manager_secret_id: typing.Optional[builtins.str] = None,
8783
8980
  set_data_capture_changes: typing.Optional[builtins.bool] = None,
8981
+ write_buffer_size: typing.Optional[jsii.Number] = None,
8784
8982
  ) -> None:
8785
8983
  """Type checking stubs"""
8786
8984
  pass
@@ -8829,6 +9027,7 @@ def _typecheckingstub__0fda663af254b0bbfe5247b95ff9f43e1ac205827ee185813439f3c65
8829
9027
  cdc_start_time: typing.Optional[builtins.str] = None,
8830
9028
  cdc_stop_position: typing.Optional[builtins.str] = None,
8831
9029
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
9030
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8832
9031
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
8833
9032
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
8834
9033
  engine_version: typing.Optional[builtins.str] = None,
@@ -8836,6 +9035,7 @@ def _typecheckingstub__0fda663af254b0bbfe5247b95ff9f43e1ac205827ee185813439f3c65
8836
9035
  existing_target_endpoint: typing.Optional[IDmsEndpoint] = None,
8837
9036
  log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
8838
9037
  multi_az: typing.Optional[builtins.bool] = None,
9038
+ network_type: typing.Optional[NetworkType] = None,
8839
9039
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
8840
9040
  replication_instance_class: typing.Optional[ReplicationInstanceClass] = None,
8841
9041
  source_endpoint: typing.Optional[typing.Union[SourceEndpointOptions, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -8856,6 +9056,7 @@ def _typecheckingstub__c548b8458a11955b30c6aac8ff861f86d747f0219e4482dd95095c2c2
8856
9056
  cdc_start_time: typing.Optional[builtins.str] = None,
8857
9057
  cdc_stop_position: typing.Optional[builtins.str] = None,
8858
9058
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
9059
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8859
9060
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
8860
9061
  encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
8861
9062
  engine_version: typing.Optional[builtins.str] = None,
@@ -8863,6 +9064,7 @@ def _typecheckingstub__c548b8458a11955b30c6aac8ff861f86d747f0219e4482dd95095c2c2
8863
9064
  existing_target_endpoint: typing.Optional[IDmsEndpoint] = None,
8864
9065
  log_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
8865
9066
  multi_az: typing.Optional[builtins.bool] = None,
9067
+ network_type: typing.Optional[NetworkType] = None,
8866
9068
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
8867
9069
  replication_instance_class: typing.Optional[ReplicationInstanceClass] = None,
8868
9070
  source_endpoint: typing.Optional[typing.Union[SourceEndpointOptions, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -8881,9 +9083,11 @@ def _typecheckingstub__28e71d51ca68bc94953f01f85c9fce11bda2399c34737d4f013806d63
8881
9083
  vpc: _aws_cdk_aws_ec2_ceddda9d.IVpc,
8882
9084
  allocated_storage: typing.Optional[jsii.Number] = None,
8883
9085
  auto_minor_version_upgrade: typing.Optional[builtins.bool] = None,
9086
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8884
9087
  engine_version: typing.Optional[builtins.str] = None,
8885
9088
  kms_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
8886
9089
  multi_az: typing.Optional[builtins.bool] = None,
9090
+ network_type: typing.Optional[NetworkType] = None,
8887
9091
  preferred_maintenance_window: typing.Optional[builtins.str] = None,
8888
9092
  publicly_accessible: typing.Optional[builtins.bool] = None,
8889
9093
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
@@ -8908,9 +9112,11 @@ def _typecheckingstub__745cf1ed3d8b534c88a1120df6389de3194446baff08856277dca348c
8908
9112
  vpc: _aws_cdk_aws_ec2_ceddda9d.IVpc,
8909
9113
  allocated_storage: typing.Optional[jsii.Number] = None,
8910
9114
  auto_minor_version_upgrade: typing.Optional[builtins.bool] = None,
9115
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8911
9116
  engine_version: typing.Optional[builtins.str] = None,
8912
9117
  kms_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
8913
9118
  multi_az: typing.Optional[builtins.bool] = None,
9119
+ network_type: typing.Optional[NetworkType] = None,
8914
9120
  preferred_maintenance_window: typing.Optional[builtins.str] = None,
8915
9121
  publicly_accessible: typing.Optional[builtins.bool] = None,
8916
9122
  removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
@@ -8968,6 +9174,7 @@ def _typecheckingstub__7a2b019515999620eb38c5b5082bbc952533dde739a09f7209e26a6e5
8968
9174
  migration_type: MigrationType,
8969
9175
  vpc: _aws_cdk_aws_ec2_ceddda9d.IVpc,
8970
9176
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
9177
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8971
9178
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
8972
9179
  existing_source_endpoint: typing.Optional[IDmsEndpoint] = None,
8973
9180
  existing_target_endpoint: typing.Optional[IDmsEndpoint] = None,
@@ -8994,6 +9201,7 @@ def _typecheckingstub__5fdb61312af37864385665ed036fcbebd656bcd6795139b916d07948a
8994
9201
  migration_type: MigrationType,
8995
9202
  vpc: _aws_cdk_aws_ec2_ceddda9d.IVpc,
8996
9203
  create_dms_service_roles: typing.Optional[builtins.bool] = None,
9204
+ dns_name_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
8997
9205
  enable_cloud_watch_logs: typing.Optional[builtins.bool] = None,
8998
9206
  existing_source_endpoint: typing.Optional[IDmsEndpoint] = None,
8999
9207
  existing_target_endpoint: typing.Optional[IDmsEndpoint] = None,
@@ -9293,6 +9501,7 @@ def _typecheckingstub__57d2bd3aa26dafb40f0db6fb23b6a57dc9e3f9afe5ae39305d0899374
9293
9501
  bucket_name: builtins.str,
9294
9502
  service_access_role_arn: builtins.str,
9295
9503
  add_column_name: typing.Optional[builtins.bool] = None,
9504
+ add_trailing_padding_character: typing.Optional[builtins.bool] = None,
9296
9505
  bucket_folder: typing.Optional[builtins.str] = None,
9297
9506
  cdc_inserts_and_updates: typing.Optional[builtins.bool] = None,
9298
9507
  cdc_inserts_only: typing.Optional[builtins.bool] = None,
@@ -9311,7 +9520,9 @@ def _typecheckingstub__57d2bd3aa26dafb40f0db6fb23b6a57dc9e3f9afe5ae39305d0899374
9311
9520
  enable_statistics: typing.Optional[builtins.bool] = None,
9312
9521
  encoding_type: typing.Optional[EncodingType] = None,
9313
9522
  encryption_mode: typing.Optional[EncryptionMode] = None,
9523
+ expected_bucket_owner: typing.Optional[builtins.str] = None,
9314
9524
  external_table_definition: typing.Optional[builtins.str] = None,
9525
+ glue_catalog_generation: typing.Optional[builtins.bool] = None,
9315
9526
  ignore_header_rows: typing.Optional[jsii.Number] = None,
9316
9527
  include_op_for_full_load: typing.Optional[builtins.bool] = None,
9317
9528
  max_file_size: typing.Optional[jsii.Number] = None,
@@ -19,9 +19,9 @@ import constructs._jsii
19
19
 
20
20
  __jsii_assembly__ = jsii.JSIIAssembly.load(
21
21
  "cdk-dms-replication",
22
- "0.2.45",
22
+ "0.3.0",
23
23
  __name__[0:-6],
24
- "cdk-dms-replication@0.2.45.jsii.tgz",
24
+ "cdk-dms-replication@0.3.0.jsii.tgz",
25
25
  )
26
26
 
27
27
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cdk-dms-replication
3
- Version: 0.2.45
3
+ Version: 0.3.0
4
4
  Summary: L3 CDK Constructs for Amazon Database Migration Service (DMS) — pattern construct bundling replication instance, endpoints, and tasks with secure defaults.
5
5
  Home-page: https://github.com/kckempf/cdk-dms-replication#readme
6
6
  Author: Kevin Kempf<kckempf@gmail.com>
@@ -21,7 +21,7 @@ Classifier: License :: OSI Approved
21
21
  Requires-Python: >=3.10
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.100.0
24
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.259.0
25
25
  Requires-Dist: constructs<11.0.0,>=10.5.1
26
26
  Requires-Dist: jsii<2.0.0,>=1.142.0
27
27
  Requires-Dist: publication>=0.0.3
@@ -11,4 +11,4 @@ src/cdk_dms_replication.egg-info/dependency_links.txt
11
11
  src/cdk_dms_replication.egg-info/requires.txt
12
12
  src/cdk_dms_replication.egg-info/top_level.txt
13
13
  src/cdk_dms_replication/_jsii/__init__.py
14
- src/cdk_dms_replication/_jsii/cdk-dms-replication@0.2.45.jsii.tgz
14
+ src/cdk_dms_replication/_jsii/cdk-dms-replication@0.3.0.jsii.tgz
@@ -1,4 +1,4 @@
1
- aws-cdk-lib<3.0.0,>=2.100.0
1
+ aws-cdk-lib<3.0.0,>=2.259.0
2
2
  constructs<11.0.0,>=10.5.1
3
3
  jsii<2.0.0,>=1.142.0
4
4
  publication>=0.0.3