aws-cdk-lib 2.219.0__py3-none-any.whl → 2.221.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (290) hide show
  1. aws_cdk/__init__.py +33 -35
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.219.0.jsii.tgz → aws-cdk-lib@2.221.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +3 -0
  5. aws_cdk/aws_accessanalyzer/__init__.py +3 -0
  6. aws_cdk/aws_acmpca/__init__.py +4 -1
  7. aws_cdk/aws_aiops/__init__.py +3 -0
  8. aws_cdk/aws_amazonmq/__init__.py +3 -29
  9. aws_cdk/aws_amplify/__init__.py +3 -0
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +3 -0
  11. aws_cdk/aws_apigateway/__init__.py +3 -0
  12. aws_cdk/aws_apigatewayv2/__init__.py +3 -0
  13. aws_cdk/aws_appconfig/__init__.py +3 -29
  14. aws_cdk/aws_appflow/__init__.py +3 -0
  15. aws_cdk/aws_appintegrations/__init__.py +3 -0
  16. aws_cdk/aws_applicationautoscaling/__init__.py +3 -0
  17. aws_cdk/aws_applicationinsights/__init__.py +3 -0
  18. aws_cdk/aws_applicationsignals/__init__.py +453 -2
  19. aws_cdk/aws_appmesh/__init__.py +3 -0
  20. aws_cdk/aws_apprunner/__init__.py +3 -0
  21. aws_cdk/aws_appstream/__init__.py +3 -0
  22. aws_cdk/aws_appsync/__init__.py +3 -0
  23. aws_cdk/aws_apptest/__init__.py +3 -0
  24. aws_cdk/aws_aps/__init__.py +1168 -83
  25. aws_cdk/aws_arcregionswitch/__init__.py +11 -0
  26. aws_cdk/aws_arczonalshift/__init__.py +3 -0
  27. aws_cdk/aws_athena/__init__.py +3 -0
  28. aws_cdk/aws_auditmanager/__init__.py +3 -0
  29. aws_cdk/aws_autoscaling/__init__.py +3 -0
  30. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  31. aws_cdk/aws_autoscalingplans/__init__.py +3 -0
  32. aws_cdk/aws_b2bi/__init__.py +3 -0
  33. aws_cdk/aws_backup/__init__.py +32 -29
  34. aws_cdk/aws_backupgateway/__init__.py +3 -0
  35. aws_cdk/aws_batch/__init__.py +112 -7
  36. aws_cdk/aws_bcmdataexports/__init__.py +3 -0
  37. aws_cdk/aws_bedrock/__init__.py +53 -45
  38. aws_cdk/aws_bedrockagentcore/__init__.py +8499 -1732
  39. aws_cdk/aws_billingconductor/__init__.py +3 -0
  40. aws_cdk/aws_budgets/__init__.py +3 -0
  41. aws_cdk/aws_cassandra/__init__.py +3 -0
  42. aws_cdk/aws_ce/__init__.py +3 -0
  43. aws_cdk/aws_certificatemanager/__init__.py +3 -0
  44. aws_cdk/aws_chatbot/__init__.py +3 -0
  45. aws_cdk/aws_cleanrooms/__init__.py +3 -0
  46. aws_cdk/aws_cleanroomsml/__init__.py +3 -0
  47. aws_cdk/aws_cloud9/__init__.py +3 -0
  48. aws_cdk/aws_cloudformation/__init__.py +3 -0
  49. aws_cdk/aws_cloudfront/__init__.py +69 -3
  50. aws_cdk/aws_cloudfront/experimental/__init__.py +4 -0
  51. aws_cdk/aws_cloudfront_origins/__init__.py +87 -6
  52. aws_cdk/aws_cloudtrail/__init__.py +3 -0
  53. aws_cdk/aws_cloudwatch/__init__.py +8 -5
  54. aws_cdk/aws_codeartifact/__init__.py +3 -0
  55. aws_cdk/aws_codebuild/__init__.py +3 -0
  56. aws_cdk/aws_codecommit/__init__.py +3 -0
  57. aws_cdk/aws_codeconnections/__init__.py +3 -0
  58. aws_cdk/aws_codedeploy/__init__.py +3 -0
  59. aws_cdk/aws_codeguruprofiler/__init__.py +3 -0
  60. aws_cdk/aws_codegurureviewer/__init__.py +3 -0
  61. aws_cdk/aws_codepipeline/__init__.py +3 -0
  62. aws_cdk/aws_codepipeline_actions/__init__.py +3 -0
  63. aws_cdk/aws_codestar/__init__.py +3 -0
  64. aws_cdk/aws_codestarconnections/__init__.py +3 -0
  65. aws_cdk/aws_codestarnotifications/__init__.py +3 -0
  66. aws_cdk/aws_cognito/__init__.py +9 -4
  67. aws_cdk/aws_cognito_identitypool/__init__.py +3 -0
  68. aws_cdk/aws_comprehend/__init__.py +3 -0
  69. aws_cdk/aws_config/__init__.py +3 -0
  70. aws_cdk/aws_connect/__init__.py +1232 -2
  71. aws_cdk/aws_connectcampaigns/__init__.py +3 -0
  72. aws_cdk/aws_connectcampaignsv2/__init__.py +3 -0
  73. aws_cdk/aws_controltower/__init__.py +3 -0
  74. aws_cdk/aws_cur/__init__.py +3 -0
  75. aws_cdk/aws_customerprofiles/__init__.py +3 -29
  76. aws_cdk/aws_databrew/__init__.py +3 -0
  77. aws_cdk/aws_datapipeline/__init__.py +3 -0
  78. aws_cdk/aws_datasync/__init__.py +3 -0
  79. aws_cdk/aws_datazone/__init__.py +17 -15
  80. aws_cdk/aws_dax/__init__.py +15 -3
  81. aws_cdk/aws_deadline/__init__.py +3 -0
  82. aws_cdk/aws_detective/__init__.py +3 -0
  83. aws_cdk/aws_devicefarm/__init__.py +3 -0
  84. aws_cdk/aws_devopsguru/__init__.py +3 -0
  85. aws_cdk/aws_directoryservice/__init__.py +32 -0
  86. aws_cdk/aws_dlm/__init__.py +3 -0
  87. aws_cdk/aws_dms/__init__.py +3 -0
  88. aws_cdk/aws_docdb/__init__.py +14 -3
  89. aws_cdk/aws_docdbelastic/__init__.py +3 -0
  90. aws_cdk/aws_dsql/__init__.py +3 -0
  91. aws_cdk/aws_dynamodb/__init__.py +3 -0
  92. aws_cdk/aws_ec2/__init__.py +205 -48
  93. aws_cdk/aws_ecr/__init__.py +156 -33
  94. aws_cdk/aws_ecs/__init__.py +429 -182
  95. aws_cdk/aws_efs/__init__.py +3 -0
  96. aws_cdk/aws_eks/__init__.py +117 -67
  97. aws_cdk/aws_elasticache/__init__.py +3 -0
  98. aws_cdk/aws_elasticbeanstalk/__init__.py +3 -0
  99. aws_cdk/aws_elasticloadbalancing/__init__.py +3 -0
  100. aws_cdk/aws_elasticloadbalancingv2/__init__.py +445 -36
  101. aws_cdk/aws_elasticsearch/__init__.py +3 -0
  102. aws_cdk/aws_emr/__init__.py +3 -0
  103. aws_cdk/aws_emrcontainers/__init__.py +3 -0
  104. aws_cdk/aws_emrserverless/__init__.py +12 -11
  105. aws_cdk/aws_entityresolution/__init__.py +3 -0
  106. aws_cdk/aws_events/__init__.py +73 -29
  107. aws_cdk/aws_events_targets/__init__.py +3 -0
  108. aws_cdk/aws_eventschemas/__init__.py +3 -0
  109. aws_cdk/aws_evidently/__init__.py +3 -0
  110. aws_cdk/aws_evs/__init__.py +3 -0
  111. aws_cdk/aws_finspace/__init__.py +3 -0
  112. aws_cdk/aws_fis/__init__.py +3 -0
  113. aws_cdk/aws_fms/__init__.py +3 -0
  114. aws_cdk/aws_forecast/__init__.py +3 -0
  115. aws_cdk/aws_frauddetector/__init__.py +3 -0
  116. aws_cdk/aws_fsx/__init__.py +7 -4
  117. aws_cdk/aws_gamelift/__init__.py +3 -0
  118. aws_cdk/aws_gameliftstreams/__init__.py +8 -5
  119. aws_cdk/aws_globalaccelerator/__init__.py +3 -0
  120. aws_cdk/aws_glue/__init__.py +11 -80
  121. aws_cdk/aws_grafana/__init__.py +3 -0
  122. aws_cdk/aws_greengrass/__init__.py +3 -0
  123. aws_cdk/aws_greengrassv2/__init__.py +3 -0
  124. aws_cdk/aws_groundstation/__init__.py +3 -0
  125. aws_cdk/aws_guardduty/__init__.py +3 -0
  126. aws_cdk/aws_healthimaging/__init__.py +3 -0
  127. aws_cdk/aws_healthlake/__init__.py +3 -0
  128. aws_cdk/aws_iam/__init__.py +30 -32
  129. aws_cdk/aws_identitystore/__init__.py +3 -0
  130. aws_cdk/aws_imagebuilder/__init__.py +896 -0
  131. aws_cdk/aws_inspector/__init__.py +3 -0
  132. aws_cdk/aws_inspectorv2/__init__.py +3 -0
  133. aws_cdk/aws_internetmonitor/__init__.py +3 -0
  134. aws_cdk/aws_invoicing/__init__.py +3 -0
  135. aws_cdk/aws_iot/__init__.py +3 -0
  136. aws_cdk/aws_iotanalytics/__init__.py +3 -0
  137. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +3 -0
  138. aws_cdk/aws_iotevents/__init__.py +3 -0
  139. aws_cdk/aws_iotfleethub/__init__.py +3 -0
  140. aws_cdk/aws_iotfleetwise/__init__.py +3 -0
  141. aws_cdk/aws_iotsitewise/__init__.py +139 -80
  142. aws_cdk/aws_iotthingsgraph/__init__.py +3 -0
  143. aws_cdk/aws_iottwinmaker/__init__.py +3 -87
  144. aws_cdk/aws_iotwireless/__init__.py +61 -0
  145. aws_cdk/aws_ivs/__init__.py +3 -0
  146. aws_cdk/aws_ivschat/__init__.py +3 -0
  147. aws_cdk/aws_kafkaconnect/__init__.py +3 -0
  148. aws_cdk/aws_kendra/__init__.py +3 -58
  149. aws_cdk/aws_kendraranking/__init__.py +3 -0
  150. aws_cdk/aws_kinesis/__init__.py +98 -4
  151. aws_cdk/aws_kinesisanalytics/__init__.py +3 -0
  152. aws_cdk/aws_kinesisanalyticsv2/__init__.py +3 -0
  153. aws_cdk/aws_kinesisfirehose/__init__.py +1709 -10
  154. aws_cdk/aws_kinesisvideo/__init__.py +3 -29
  155. aws_cdk/aws_kms/__init__.py +3 -0
  156. aws_cdk/aws_lakeformation/__init__.py +3 -0
  157. aws_cdk/aws_lambda/__init__.py +57 -7
  158. aws_cdk/aws_lambda_nodejs/__init__.py +3 -0
  159. aws_cdk/aws_launchwizard/__init__.py +3 -0
  160. aws_cdk/aws_lex/__init__.py +3 -29
  161. aws_cdk/aws_licensemanager/__init__.py +3 -0
  162. aws_cdk/aws_lightsail/__init__.py +587 -0
  163. aws_cdk/aws_location/__init__.py +3 -0
  164. aws_cdk/aws_logs/__init__.py +283 -9
  165. aws_cdk/aws_lookoutequipment/__init__.py +3 -29
  166. aws_cdk/aws_lookoutmetrics/__init__.py +17 -2
  167. aws_cdk/aws_lookoutvision/__init__.py +3 -0
  168. aws_cdk/aws_m2/__init__.py +62 -13
  169. aws_cdk/aws_macie/__init__.py +3 -0
  170. aws_cdk/aws_managedblockchain/__init__.py +3 -0
  171. aws_cdk/aws_mediaconnect/__init__.py +3 -0
  172. aws_cdk/aws_mediaconvert/__init__.py +3 -0
  173. aws_cdk/aws_medialive/__init__.py +279 -33
  174. aws_cdk/aws_mediapackage/__init__.py +3 -0
  175. aws_cdk/aws_mediapackagev2/__init__.py +3 -0
  176. aws_cdk/aws_mediastore/__init__.py +3 -0
  177. aws_cdk/aws_mediatailor/__init__.py +3 -58
  178. aws_cdk/aws_memorydb/__init__.py +3 -0
  179. aws_cdk/aws_mpa/__init__.py +3 -0
  180. aws_cdk/aws_msk/__init__.py +3 -0
  181. aws_cdk/aws_mwaa/__init__.py +8 -5
  182. aws_cdk/aws_neptune/__init__.py +188 -70
  183. aws_cdk/aws_neptunegraph/__init__.py +3 -0
  184. aws_cdk/aws_networkfirewall/__init__.py +3 -0
  185. aws_cdk/aws_networkmanager/__init__.py +32 -0
  186. aws_cdk/aws_nimblestudio/__init__.py +3 -0
  187. aws_cdk/aws_notifications/__init__.py +3 -0
  188. aws_cdk/aws_notificationscontacts/__init__.py +3 -0
  189. aws_cdk/aws_oam/__init__.py +3 -0
  190. aws_cdk/aws_observabilityadmin/__init__.py +1365 -187
  191. aws_cdk/aws_odb/__init__.py +4 -1
  192. aws_cdk/aws_omics/__init__.py +10 -1
  193. aws_cdk/aws_opensearchserverless/__init__.py +3 -0
  194. aws_cdk/aws_opensearchservice/__init__.py +9 -0
  195. aws_cdk/aws_opsworks/__init__.py +3 -0
  196. aws_cdk/aws_opsworkscm/__init__.py +3 -0
  197. aws_cdk/aws_organizations/__init__.py +3 -116
  198. aws_cdk/aws_osis/__init__.py +157 -0
  199. aws_cdk/aws_panorama/__init__.py +3 -0
  200. aws_cdk/aws_paymentcryptography/__init__.py +3 -0
  201. aws_cdk/aws_pcaconnectorad/__init__.py +3 -0
  202. aws_cdk/aws_pcaconnectorscep/__init__.py +3 -0
  203. aws_cdk/aws_pcs/__init__.py +227 -33
  204. aws_cdk/aws_personalize/__init__.py +3 -0
  205. aws_cdk/aws_pinpoint/__init__.py +61 -58
  206. aws_cdk/aws_pinpointemail/__init__.py +3 -0
  207. aws_cdk/aws_pipes/__init__.py +3 -0
  208. aws_cdk/aws_proton/__init__.py +3 -0
  209. aws_cdk/aws_qbusiness/__init__.py +3 -174
  210. aws_cdk/aws_qldb/__init__.py +3 -29
  211. aws_cdk/aws_quicksight/__init__.py +493 -406
  212. aws_cdk/aws_ram/__init__.py +3 -0
  213. aws_cdk/aws_rbin/__init__.py +3 -0
  214. aws_cdk/aws_rds/__init__.py +71 -42
  215. aws_cdk/aws_redshift/__init__.py +3 -0
  216. aws_cdk/aws_redshiftserverless/__init__.py +3 -0
  217. aws_cdk/aws_refactorspaces/__init__.py +21 -6
  218. aws_cdk/aws_rekognition/__init__.py +3 -29
  219. aws_cdk/aws_resiliencehub/__init__.py +3 -0
  220. aws_cdk/aws_resourceexplorer2/__init__.py +3 -0
  221. aws_cdk/aws_resourcegroups/__init__.py +3 -0
  222. aws_cdk/aws_robomaker/__init__.py +3 -0
  223. aws_cdk/aws_rolesanywhere/__init__.py +3 -0
  224. aws_cdk/aws_route53/__init__.py +148 -24
  225. aws_cdk/aws_route53_targets/__init__.py +3 -0
  226. aws_cdk/aws_route53profiles/__init__.py +3 -0
  227. aws_cdk/aws_route53recoverycontrol/__init__.py +3 -0
  228. aws_cdk/aws_route53recoveryreadiness/__init__.py +3 -0
  229. aws_cdk/aws_route53resolver/__init__.py +11 -4
  230. aws_cdk/aws_rum/__init__.py +3 -0
  231. aws_cdk/aws_s3/__init__.py +80 -43
  232. aws_cdk/aws_s3_deployment/__init__.py +3 -0
  233. aws_cdk/aws_s3express/__init__.py +3 -0
  234. aws_cdk/aws_s3objectlambda/__init__.py +47 -12
  235. aws_cdk/aws_s3outposts/__init__.py +3 -0
  236. aws_cdk/aws_s3tables/__init__.py +3 -0
  237. aws_cdk/aws_sagemaker/__init__.py +166 -87
  238. aws_cdk/aws_sam/__init__.py +3 -0
  239. aws_cdk/aws_scheduler/__init__.py +3 -29
  240. aws_cdk/aws_sdb/__init__.py +3 -0
  241. aws_cdk/aws_secretsmanager/__init__.py +3 -0
  242. aws_cdk/aws_securityhub/__init__.py +3 -0
  243. aws_cdk/aws_securitylake/__init__.py +3 -0
  244. aws_cdk/aws_servicecatalog/__init__.py +161 -144
  245. aws_cdk/aws_servicecatalogappregistry/__init__.py +3 -0
  246. aws_cdk/aws_servicediscovery/__init__.py +3 -0
  247. aws_cdk/aws_ses/__init__.py +3 -0
  248. aws_cdk/aws_shield/__init__.py +3 -0
  249. aws_cdk/aws_signer/__init__.py +3 -0
  250. aws_cdk/aws_simspaceweaver/__init__.py +3 -0
  251. aws_cdk/aws_smsvoice/__init__.py +3 -29
  252. aws_cdk/aws_sns/__init__.py +3 -0
  253. aws_cdk/aws_sqs/__init__.py +3 -0
  254. aws_cdk/aws_ssm/__init__.py +10 -3
  255. aws_cdk/aws_ssmcontacts/__init__.py +3 -0
  256. aws_cdk/aws_ssmguiconnect/__init__.py +3 -0
  257. aws_cdk/aws_ssmincidents/__init__.py +3 -0
  258. aws_cdk/aws_ssmquicksetup/__init__.py +470 -3
  259. aws_cdk/aws_sso/__init__.py +3 -0
  260. aws_cdk/aws_stepfunctions/__init__.py +23 -19
  261. aws_cdk/aws_stepfunctions_tasks/__init__.py +6 -3
  262. aws_cdk/aws_supportapp/__init__.py +3 -0
  263. aws_cdk/aws_synthetics/__init__.py +80 -27
  264. aws_cdk/aws_systemsmanagersap/__init__.py +3 -0
  265. aws_cdk/aws_timestream/__init__.py +3 -29
  266. aws_cdk/aws_transfer/__init__.py +20 -34
  267. aws_cdk/aws_verifiedpermissions/__init__.py +3 -0
  268. aws_cdk/aws_voiceid/__init__.py +3 -0
  269. aws_cdk/aws_vpclattice/__init__.py +7 -4
  270. aws_cdk/aws_waf/__init__.py +3 -0
  271. aws_cdk/aws_wafregional/__init__.py +3 -0
  272. aws_cdk/aws_wafv2/__init__.py +3 -0
  273. aws_cdk/aws_wisdom/__init__.py +3 -116
  274. aws_cdk/aws_workspaces/__init__.py +3 -0
  275. aws_cdk/aws_workspacesinstances/__init__.py +3 -0
  276. aws_cdk/aws_workspacesthinclient/__init__.py +3 -0
  277. aws_cdk/aws_workspacesweb/__init__.py +3 -0
  278. aws_cdk/aws_xray/__init__.py +3 -0
  279. aws_cdk/cloud_assembly_schema/__init__.py +3 -0
  280. aws_cdk/cx_api/__init__.py +34 -0
  281. aws_cdk/pipelines/__init__.py +3 -0
  282. aws_cdk/region_info/__init__.py +3 -0
  283. aws_cdk/triggers/__init__.py +3 -0
  284. {aws_cdk_lib-2.219.0.dist-info → aws_cdk_lib-2.221.0.dist-info}/METADATA +2 -2
  285. aws_cdk_lib-2.221.0.dist-info/RECORD +313 -0
  286. aws_cdk_lib-2.219.0.dist-info/RECORD +0 -313
  287. {aws_cdk_lib-2.219.0.dist-info → aws_cdk_lib-2.221.0.dist-info}/LICENSE +0 -0
  288. {aws_cdk_lib-2.219.0.dist-info → aws_cdk_lib-2.221.0.dist-info}/NOTICE +0 -0
  289. {aws_cdk_lib-2.219.0.dist-info → aws_cdk_lib-2.221.0.dist-info}/WHEEL +0 -0
  290. {aws_cdk_lib-2.219.0.dist-info → aws_cdk_lib-2.221.0.dist-info}/top_level.txt +0 -0
@@ -1747,6 +1747,7 @@ from ..aws_iam import (
1747
1747
  IGrantable as _IGrantable_71c4f5de,
1748
1748
  IPrincipal as _IPrincipal_539bb2fd,
1749
1749
  IRole as _IRole_235f5d8e,
1750
+ IRoleRef as _IRoleRef_613dafc2,
1750
1751
  PolicyStatement as _PolicyStatement_0fe33853,
1751
1752
  )
1752
1753
  from ..aws_kms import IKey as _IKey_5f11635f, IKeyRef as _IKeyRef_1e82344b
@@ -6404,20 +6405,14 @@ class JsonPath(
6404
6405
 
6405
6406
  Example::
6406
6407
 
6407
- #
6408
- # JSON state input:
6409
- # {
6410
- # "bucketName": "my-bucket",
6411
- # "prefix": "item"
6412
- # }
6413
- #
6414
- distributed_map = sfn.DistributedMap(self, "DistributedMap",
6415
- item_reader=sfn.S3ObjectsItemReader(
6416
- bucket_name_path=sfn.JsonPath.string_at("$.bucketName"),
6417
- prefix=sfn.JsonPath.string_at("$.prefix")
6408
+ tasks.SageMakerCreateModel(self, "Sagemaker",
6409
+ model_name="MyModel",
6410
+ primary_container=tasks.ContainerDefinition(
6411
+ image=tasks.DockerImage.from_json_expression(sfn.JsonPath.string_at("$.Model.imageName")),
6412
+ mode=tasks.Mode.SINGLE_MODEL,
6413
+ model_s3_location=tasks.S3Location.from_json_expression("$.TrainingJob.ModelArtifacts.S3ModelArtifacts")
6418
6414
  )
6419
6415
  )
6420
- distributed_map.item_processor(sfn.Pass(self, "Pass"))
6421
6416
  '''
6422
6417
 
6423
6418
  @jsii.member(jsii_name="array")
@@ -10296,7 +10291,7 @@ class StateMachine(
10296
10291
  logs: typing.Optional[typing.Union[LogOptions, typing.Dict[builtins.str, typing.Any]]] = None,
10297
10292
  query_language: typing.Optional[QueryLanguage] = None,
10298
10293
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
10299
- role: typing.Optional[_IRole_235f5d8e] = None,
10294
+ role: typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de'] = None,
10300
10295
  state_machine_name: typing.Optional[builtins.str] = None,
10301
10296
  state_machine_type: typing.Optional["StateMachineType"] = None,
10302
10297
  timeout: typing.Optional[_Duration_4839e8c3] = None,
@@ -10917,7 +10912,10 @@ class StateMachine(
10917
10912
  @builtins.property
10918
10913
  @jsii.member(jsii_name="role")
10919
10914
  def role(self) -> _IRole_235f5d8e:
10920
- '''Execution role of this state machine.'''
10915
+ '''Execution role of this state machine.
10916
+
10917
+ Will throw if the Role object that was given does not implement IRole
10918
+ '''
10921
10919
  return typing.cast(_IRole_235f5d8e, jsii.get(self, "role"))
10922
10920
 
10923
10921
  @builtins.property
@@ -11211,7 +11209,7 @@ class StateMachineProps:
11211
11209
  logs: typing.Optional[typing.Union[LogOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11212
11210
  query_language: typing.Optional[QueryLanguage] = None,
11213
11211
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
11214
- role: typing.Optional[_IRole_235f5d8e] = None,
11212
+ role: typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de'] = None,
11215
11213
  state_machine_name: typing.Optional[builtins.str] = None,
11216
11214
  state_machine_type: typing.Optional["StateMachineType"] = None,
11217
11215
  timeout: typing.Optional[_Duration_4839e8c3] = None,
@@ -11375,13 +11373,13 @@ class StateMachineProps:
11375
11373
  return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
11376
11374
 
11377
11375
  @builtins.property
11378
- def role(self) -> typing.Optional[_IRole_235f5d8e]:
11376
+ def role(self) -> typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de']:
11379
11377
  '''The execution role for the state machine service.
11380
11378
 
11381
11379
  :default: A role is automatically created
11382
11380
  '''
11383
11381
  result = self._values.get("role")
11384
- return typing.cast(typing.Optional[_IRole_235f5d8e], result)
11382
+ return typing.cast(typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de'], result)
11385
11383
 
11386
11384
  @builtins.property
11387
11385
  def state_machine_name(self) -> typing.Optional[builtins.str]:
@@ -27789,7 +27787,7 @@ def _typecheckingstub__efdfc02291401a50a1d945e5208e9becb9828352fec32bc109ccebafc
27789
27787
  logs: typing.Optional[typing.Union[LogOptions, typing.Dict[builtins.str, typing.Any]]] = None,
27790
27788
  query_language: typing.Optional[QueryLanguage] = None,
27791
27789
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
27792
- role: typing.Optional[_IRole_235f5d8e] = None,
27790
+ role: typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de'] = None,
27793
27791
  state_machine_name: typing.Optional[builtins.str] = None,
27794
27792
  state_machine_type: typing.Optional[StateMachineType] = None,
27795
27793
  timeout: typing.Optional[_Duration_4839e8c3] = None,
@@ -27919,7 +27917,7 @@ def _typecheckingstub__24d23b501c893898901860f31ff1a0a0fa81eb89f06a7acf3eef4f15e
27919
27917
  logs: typing.Optional[typing.Union[LogOptions, typing.Dict[builtins.str, typing.Any]]] = None,
27920
27918
  query_language: typing.Optional[QueryLanguage] = None,
27921
27919
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
27922
- role: typing.Optional[_IRole_235f5d8e] = None,
27920
+ role: typing.Optional['__IRoleRef_613dafc2__IGrantable_71c4f5de'] = None,
27923
27921
  state_machine_name: typing.Optional[builtins.str] = None,
27924
27922
  state_machine_type: typing.Optional[StateMachineType] = None,
27925
27923
  timeout: typing.Optional[_Duration_4839e8c3] = None,
@@ -29762,3 +29760,9 @@ def _typecheckingstub__0d5f089eaa441d0e3ee41bfd31bf52dcf81f27d026fe808208da7e964
29762
29760
  ) -> None:
29763
29761
  """Type checking stubs"""
29764
29762
  pass
29763
+
29764
+ class __IRoleRef_613dafc2__IGrantable_71c4f5de(_IRoleRef_613dafc2, _IGrantable_71c4f5de, typing_extensions.Protocol):
29765
+ pass
29766
+
29767
+ for cls in [IActivity, IActivityRef, IChainable, IItemReader, INextable, IStateMachine, IStateMachineAliasRef, IStateMachineRef, IStateMachineVersionRef, __IRoleRef_613dafc2__IGrantable_71c4f5de]:
29768
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -1585,7 +1585,7 @@ connection = events.Connection(self, "Connection",
1585
1585
 
1586
1586
  tasks.HttpInvoke(self, "Invoke HTTP API",
1587
1587
  api_root="https://api.example.com",
1588
- api_endpoint=sfn.TaskInput.from_text("path/to/resource"),
1588
+ api_endpoint=sfn.TaskInput.from_text(sfn.JsonPath.format("resource/{}/details", sfn.JsonPath.string_at("$.resourceId"))),
1589
1589
  body=sfn.TaskInput.from_object({"foo": "bar"}),
1590
1590
  connection=connection,
1591
1591
  headers=sfn.TaskInput.from_object({"Content-Type": "application/json"}),
@@ -63102,7 +63102,7 @@ class HttpInvokeProps(_TaskStateBaseProps_3a62b6d0):
63102
63102
 
63103
63103
  tasks.HttpInvoke(self, "Invoke HTTP API",
63104
63104
  api_root="https://api.example.com",
63105
- api_endpoint=sfn.TaskInput.from_text("path/to/resource"),
63105
+ api_endpoint=sfn.TaskInput.from_text(sfn.JsonPath.format("resource/{}/details", sfn.JsonPath.string_at("$.resourceId"))),
63106
63106
  body=sfn.TaskInput.from_object({"foo": "bar"}),
63107
63107
  connection=connection,
63108
63108
  headers=sfn.TaskInput.from_object({"Content-Type": "application/json"}),
@@ -85254,7 +85254,7 @@ class URLEncodingFormat(enum.Enum):
85254
85254
 
85255
85255
  tasks.HttpInvoke(self, "Invoke HTTP API",
85256
85256
  api_root="https://api.example.com",
85257
- api_endpoint=sfn.TaskInput.from_text("path/to/resource"),
85257
+ api_endpoint=sfn.TaskInput.from_text(sfn.JsonPath.format("resource/{}/details", sfn.JsonPath.string_at("$.resourceId"))),
85258
85258
  body=sfn.TaskInput.from_object({"foo": "bar"}),
85259
85259
  connection=connection,
85260
85260
  headers=sfn.TaskInput.from_object({"Content-Type": "application/json"}),
@@ -96562,3 +96562,6 @@ def _typecheckingstub__7c19025da4101b4b8d2482e0216270cc5e94fe58381fdba0b4cf99f04
96562
96562
  ) -> None:
96563
96563
  """Type checking stubs"""
96564
96564
  pass
96565
+
96566
+ for cls in [IBedrockCreateModelCustomizationJobVpcConfig, IContainerDefinition, IEcsLaunchTarget, ISageMakerTask]:
96567
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -1366,3 +1366,6 @@ def _typecheckingstub__1f10519eb1d45ed1305e842ac3665885bde5d1c65940455981356edc1
1366
1366
  ) -> None:
1367
1367
  """Type checking stubs"""
1368
1368
  pass
1369
+
1370
+ for cls in [IAccountAliasRef, ISlackChannelConfigurationRef, ISlackWorkspaceConfigurationRef]:
1371
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -268,7 +268,7 @@ synthetics.Canary(self, "Bucket Canary",
268
268
  ```
269
269
 
270
270
  > **Note:** Synthetics have a specified folder structure for canaries.
271
- > For Node with puppeteer scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
271
+ > For Node with puppeteer scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure for runtime versions older than `syn-nodejs-puppeteer-11.0`:
272
272
  >
273
273
  > ```plaintext
274
274
  > canary/
@@ -277,6 +277,26 @@ synthetics.Canary(self, "Bucket Canary",
277
277
  > ├── <filename>.js
278
278
  > ```
279
279
  >
280
+ > For puppeteer based runtime versions newer than or equal to `syn-nodejs-puppeteer-11.0`, `nodjs/node_modules` is not necessary but supported.
281
+ >
282
+ > Both
283
+ >
284
+ > ```plaintext
285
+ > canary/
286
+ > ├── nodejs/
287
+ > ├── node_modules/
288
+ > ├── <filename>.js
289
+ > ```
290
+ >
291
+ > And
292
+ >
293
+ > ```plaintext
294
+ > canary/
295
+ > ├── <filename>.js
296
+ > ```
297
+ >
298
+ > are supported.
299
+ >
280
300
  > For Node with playwright scripts supplied via `code.fromAsset()` or `code.fromBucket()`, the canary resource requires the following folder structure:
281
301
  >
282
302
  > ```plaintext
@@ -1656,15 +1676,14 @@ class CfnCanaryProps:
1656
1676
  cfn_canary_props = synthetics.CfnCanaryProps(
1657
1677
  artifact_s3_location="artifactS3Location",
1658
1678
  code=synthetics.CfnCanary.CodeProperty(
1659
- handler="handler",
1660
-
1661
- # the properties below are optional
1679
+ blueprint_types=["blueprintTypes"],
1662
1680
  dependencies=[synthetics.CfnCanary.DependencyProperty(
1663
1681
  reference="reference",
1664
1682
 
1665
1683
  # the properties below are optional
1666
1684
  type="type"
1667
1685
  )],
1686
+ handler="handler",
1668
1687
  s3_bucket="s3Bucket",
1669
1688
  s3_key="s3Key",
1670
1689
  s3_object_version="s3ObjectVersion",
@@ -3370,6 +3389,15 @@ class Runtime(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_synthetics.Run
3370
3389
  '''
3371
3390
  return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_6_0"))
3372
3391
 
3392
+ @jsii.python.classproperty
3393
+ @jsii.member(jsii_name="SYNTHETICS_PYTHON_SELENIUM_7_0")
3394
+ def SYNTHETICS_PYTHON_SELENIUM_7_0(cls) -> "Runtime":
3395
+ '''``syn-python-selenium-7.0`` includes the following: - Lambda runtime Python 3.11 - Selenium version 4.32.0 - Chromium version 138.0.7204.168.
3396
+
3397
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-7.0
3398
+ '''
3399
+ return typing.cast("Runtime", jsii.sget(cls, "SYNTHETICS_PYTHON_SELENIUM_7_0"))
3400
+
3373
3401
  @builtins.property
3374
3402
  @jsii.member(jsii_name="family")
3375
3403
  def family(self) -> "RuntimeFamily":
@@ -3753,15 +3781,14 @@ class CfnCanary(
3753
3781
  cfn_canary = synthetics.CfnCanary(self, "MyCfnCanary",
3754
3782
  artifact_s3_location="artifactS3Location",
3755
3783
  code=synthetics.CfnCanary.CodeProperty(
3756
- handler="handler",
3757
-
3758
- # the properties below are optional
3784
+ blueprint_types=["blueprintTypes"],
3759
3785
  dependencies=[synthetics.CfnCanary.DependencyProperty(
3760
3786
  reference="reference",
3761
3787
 
3762
3788
  # the properties below are optional
3763
3789
  type="type"
3764
3790
  )],
3791
+ handler="handler",
3765
3792
  s3_bucket="s3Bucket",
3766
3793
  s3_key="s3Key",
3767
3794
  s3_object_version="s3ObjectVersion",
@@ -4548,8 +4575,9 @@ class CfnCanary(
4548
4575
  jsii_type="aws-cdk-lib.aws_synthetics.CfnCanary.CodeProperty",
4549
4576
  jsii_struct_bases=[],
4550
4577
  name_mapping={
4551
- "handler": "handler",
4578
+ "blueprint_types": "blueprintTypes",
4552
4579
  "dependencies": "dependencies",
4580
+ "handler": "handler",
4553
4581
  "s3_bucket": "s3Bucket",
4554
4582
  "s3_key": "s3Key",
4555
4583
  "s3_object_version": "s3ObjectVersion",
@@ -4561,8 +4589,9 @@ class CfnCanary(
4561
4589
  def __init__(
4562
4590
  self,
4563
4591
  *,
4564
- handler: builtins.str,
4592
+ blueprint_types: typing.Optional[typing.Sequence[builtins.str]] = None,
4565
4593
  dependencies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCanary.DependencyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4594
+ handler: typing.Optional[builtins.str] = None,
4566
4595
  s3_bucket: typing.Optional[builtins.str] = None,
4567
4596
  s3_key: typing.Optional[builtins.str] = None,
4568
4597
  s3_object_version: typing.Optional[builtins.str] = None,
@@ -4573,8 +4602,9 @@ class CfnCanary(
4573
4602
 
4574
4603
  This structure contains the Lambda handler with the location where the canary should start running the script. If the script is stored in an S3 bucket, the bucket name, key, and version are also included. If the script is passed into the canary directly, the script code is contained in the value of ``Script`` .
4575
4604
 
4576
- :param handler: The entry point to use for the source code when running the canary. For canaries that use the ``syn-python-selenium-1.0`` runtime or a ``syn-nodejs.puppeteer`` runtime earlier than ``syn-nodejs.puppeteer-3.4`` , the handler must be specified as ``*fileName* .handler`` . For ``syn-python-selenium-1.1`` , ``syn-nodejs.puppeteer-3.4`` , and later runtimes, the handler can be specified as ``*fileName* . *functionName*`` , or you can specify a folder where canary scripts reside as ``*folder* / *fileName* . *functionName*`` .
4605
+ :param blueprint_types: ``BlueprintTypes`` are a list of templates that enable simplified canary creation. You can create canaries for common monitoring scenarios by providing only a JSON configuration file instead of writing custom scripts. ``multi-checks`` is the only supported value. When you specify ``BlueprintTypes`` , the ``Handler`` field cannot be specified since the blueprint provides a pre-defined entry point.
4577
4606
  :param dependencies: List of Lambda layers to attach to the canary.
4607
+ :param handler: The entry point to use for the source code when running the canary. For canaries that use the ``syn-python-selenium-1.0`` runtime or a ``syn-nodejs.puppeteer`` runtime earlier than ``syn-nodejs.puppeteer-3.4`` , the handler must be specified as ``*fileName* .handler`` . For ``syn-python-selenium-1.1`` , ``syn-nodejs.puppeteer-3.4`` , and later runtimes, the handler can be specified as ``*fileName* . *functionName*`` , or you can specify a folder where canary scripts reside as ``*folder* / *fileName* . *functionName*`` . This field is required when you don't specify ``BlueprintTypes`` and is not allowed when you specify ``BlueprintTypes`` .
4578
4608
  :param s3_bucket: If your canary script is located in S3, specify the bucket name here. The bucket must already exist.
4579
4609
  :param s3_key: The Amazon S3 key of your script. For more information, see `Working with Amazon S3 Objects <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html>`_ .
4580
4610
  :param s3_object_version: The Amazon S3 version ID of your script.
@@ -4591,15 +4621,14 @@ class CfnCanary(
4591
4621
  from aws_cdk import aws_synthetics as synthetics
4592
4622
 
4593
4623
  code_property = synthetics.CfnCanary.CodeProperty(
4594
- handler="handler",
4595
-
4596
- # the properties below are optional
4624
+ blueprint_types=["blueprintTypes"],
4597
4625
  dependencies=[synthetics.CfnCanary.DependencyProperty(
4598
4626
  reference="reference",
4599
4627
 
4600
4628
  # the properties below are optional
4601
4629
  type="type"
4602
4630
  )],
4631
+ handler="handler",
4603
4632
  s3_bucket="s3Bucket",
4604
4633
  s3_key="s3Key",
4605
4634
  s3_object_version="s3ObjectVersion",
@@ -4609,18 +4638,21 @@ class CfnCanary(
4609
4638
  '''
4610
4639
  if __debug__:
4611
4640
  type_hints = typing.get_type_hints(_typecheckingstub__3d403372a613babc1ab10717d050ec9a7f4055961f3545f2d0600d89c7b3dcc3)
4612
- check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
4641
+ check_type(argname="argument blueprint_types", value=blueprint_types, expected_type=type_hints["blueprint_types"])
4613
4642
  check_type(argname="argument dependencies", value=dependencies, expected_type=type_hints["dependencies"])
4643
+ check_type(argname="argument handler", value=handler, expected_type=type_hints["handler"])
4614
4644
  check_type(argname="argument s3_bucket", value=s3_bucket, expected_type=type_hints["s3_bucket"])
4615
4645
  check_type(argname="argument s3_key", value=s3_key, expected_type=type_hints["s3_key"])
4616
4646
  check_type(argname="argument s3_object_version", value=s3_object_version, expected_type=type_hints["s3_object_version"])
4617
4647
  check_type(argname="argument script", value=script, expected_type=type_hints["script"])
4618
4648
  check_type(argname="argument source_location_arn", value=source_location_arn, expected_type=type_hints["source_location_arn"])
4619
- self._values: typing.Dict[builtins.str, typing.Any] = {
4620
- "handler": handler,
4621
- }
4649
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4650
+ if blueprint_types is not None:
4651
+ self._values["blueprint_types"] = blueprint_types
4622
4652
  if dependencies is not None:
4623
4653
  self._values["dependencies"] = dependencies
4654
+ if handler is not None:
4655
+ self._values["handler"] = handler
4624
4656
  if s3_bucket is not None:
4625
4657
  self._values["s3_bucket"] = s3_bucket
4626
4658
  if s3_key is not None:
@@ -4633,16 +4665,17 @@ class CfnCanary(
4633
4665
  self._values["source_location_arn"] = source_location_arn
4634
4666
 
4635
4667
  @builtins.property
4636
- def handler(self) -> builtins.str:
4637
- '''The entry point to use for the source code when running the canary.
4668
+ def blueprint_types(self) -> typing.Optional[typing.List[builtins.str]]:
4669
+ '''``BlueprintTypes`` are a list of templates that enable simplified canary creation.
4638
4670
 
4639
- For canaries that use the ``syn-python-selenium-1.0`` runtime or a ``syn-nodejs.puppeteer`` runtime earlier than ``syn-nodejs.puppeteer-3.4`` , the handler must be specified as ``*fileName* .handler`` . For ``syn-python-selenium-1.1`` , ``syn-nodejs.puppeteer-3.4`` , and later runtimes, the handler can be specified as ``*fileName* . *functionName*`` , or you can specify a folder where canary scripts reside as ``*folder* / *fileName* . *functionName*`` .
4671
+ You can create canaries for common monitoring scenarios by providing only a JSON configuration file instead of writing custom scripts. ``multi-checks`` is the only supported value.
4640
4672
 
4641
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-handler
4673
+ When you specify ``BlueprintTypes`` , the ``Handler`` field cannot be specified since the blueprint provides a pre-defined entry point.
4674
+
4675
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-blueprinttypes
4642
4676
  '''
4643
- result = self._values.get("handler")
4644
- assert result is not None, "Required property 'handler' is missing"
4645
- return typing.cast(builtins.str, result)
4677
+ result = self._values.get("blueprint_types")
4678
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
4646
4679
 
4647
4680
  @builtins.property
4648
4681
  def dependencies(
@@ -4655,6 +4688,19 @@ class CfnCanary(
4655
4688
  result = self._values.get("dependencies")
4656
4689
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCanary.DependencyProperty"]]]], result)
4657
4690
 
4691
+ @builtins.property
4692
+ def handler(self) -> typing.Optional[builtins.str]:
4693
+ '''The entry point to use for the source code when running the canary.
4694
+
4695
+ For canaries that use the ``syn-python-selenium-1.0`` runtime or a ``syn-nodejs.puppeteer`` runtime earlier than ``syn-nodejs.puppeteer-3.4`` , the handler must be specified as ``*fileName* .handler`` . For ``syn-python-selenium-1.1`` , ``syn-nodejs.puppeteer-3.4`` , and later runtimes, the handler can be specified as ``*fileName* . *functionName*`` , or you can specify a folder where canary scripts reside as ``*folder* / *fileName* . *functionName*`` .
4696
+
4697
+ This field is required when you don't specify ``BlueprintTypes`` and is not allowed when you specify ``BlueprintTypes`` .
4698
+
4699
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-code.html#cfn-synthetics-canary-code-handler
4700
+ '''
4701
+ result = self._values.get("handler")
4702
+ return typing.cast(typing.Optional[builtins.str], result)
4703
+
4658
4704
  @builtins.property
4659
4705
  def s3_bucket(self) -> typing.Optional[builtins.str]:
4660
4706
  '''If your canary script is located in S3, specify the bucket name here.
@@ -5316,7 +5362,7 @@ class CfnCanary(
5316
5362
 
5317
5363
  :param base_canary_run_id: Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary. Valid values are ``nextrun`` to use the screenshots from the next run after this update is made, ``lastrun`` to use the screenshots from the most recent run before this update was made, or the value of ``Id`` in the `CanaryRun <https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_CanaryRun.html>`_ from any past run of this canary.
5318
5364
  :param base_screenshots: An array of screenshots that are used as the baseline for comparisons during visual monitoring.
5319
- :param browser_type:
5365
+ :param browser_type: The browser type associated with this visual reference configuration. Valid values are ``CHROME`` and ``FIREFOX`` .
5320
5366
 
5321
5367
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html
5322
5368
  :exampleMetadata: fixture=_generated
@@ -5378,7 +5424,10 @@ class CfnCanary(
5378
5424
 
5379
5425
  @builtins.property
5380
5426
  def browser_type(self) -> typing.Optional[builtins.str]:
5381
- '''
5427
+ '''The browser type associated with this visual reference configuration.
5428
+
5429
+ Valid values are ``CHROME`` and ``FIREFOX`` .
5430
+
5382
5431
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-synthetics-canary-visualreference.html#cfn-synthetics-canary-visualreference-browsertype
5383
5432
  '''
5384
5433
  result = self._values.get("browser_type")
@@ -6045,8 +6094,9 @@ def _typecheckingstub__c91e35c3c240434fee052d7f899893609a9c027813412eb6312483e20
6045
6094
 
6046
6095
  def _typecheckingstub__3d403372a613babc1ab10717d050ec9a7f4055961f3545f2d0600d89c7b3dcc3(
6047
6096
  *,
6048
- handler: builtins.str,
6097
+ blueprint_types: typing.Optional[typing.Sequence[builtins.str]] = None,
6049
6098
  dependencies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCanary.DependencyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6099
+ handler: typing.Optional[builtins.str] = None,
6050
6100
  s3_bucket: typing.Optional[builtins.str] = None,
6051
6101
  s3_key: typing.Optional[builtins.str] = None,
6052
6102
  s3_object_version: typing.Optional[builtins.str] = None,
@@ -6158,3 +6208,6 @@ def _typecheckingstub__0d85cd0ddf465884c3990e0492b92e22606ecfb33b8127bf42d0c344b
6158
6208
  ) -> None:
6159
6209
  """Type checking stubs"""
6160
6210
  pass
6211
+
6212
+ for cls in [ICanaryRef, IGroupRef]:
6213
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -951,3 +951,6 @@ def _typecheckingstub__209aa7feaf1ed6ac2bf183538ccbb7555a21c47880975dd9f9b002d73
951
951
  ) -> None:
952
952
  """Type checking stubs"""
953
953
  pass
954
+
955
+ for cls in [IApplicationRef]:
956
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -3749,27 +3749,6 @@ class CfnTable(
3749
3749
 
3750
3750
  jsii.create(self.__class__, self, [scope, id, props])
3751
3751
 
3752
- @jsii.member(jsii_name="fromTableArn")
3753
- @builtins.classmethod
3754
- def from_table_arn(
3755
- cls,
3756
- scope: _constructs_77d1e7e8.Construct,
3757
- id: builtins.str,
3758
- arn: builtins.str,
3759
- ) -> ITableRef:
3760
- '''Creates a new ITableRef from an ARN.
3761
-
3762
- :param scope: -
3763
- :param id: -
3764
- :param arn: -
3765
- '''
3766
- if __debug__:
3767
- type_hints = typing.get_type_hints(_typecheckingstub__fa753463a41b4c926c9b5b8d188dff52c3157fe2316e6dfb94568d8660260ca2)
3768
- check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3769
- check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3770
- check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
3771
- return typing.cast(ITableRef, jsii.sinvoke(cls, "fromTableArn", [scope, id, arn]))
3772
-
3773
3752
  @jsii.member(jsii_name="inspect")
3774
3753
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3775
3754
  '''Examines the CloudFormation resource and discloses attributes.
@@ -4946,14 +4925,6 @@ def _typecheckingstub__aad96eaee00841ee49968da22b6ed13b3777f265d71c1981b2f1b217c
4946
4925
  """Type checking stubs"""
4947
4926
  pass
4948
4927
 
4949
- def _typecheckingstub__fa753463a41b4c926c9b5b8d188dff52c3157fe2316e6dfb94568d8660260ca2(
4950
- scope: _constructs_77d1e7e8.Construct,
4951
- id: builtins.str,
4952
- arn: builtins.str,
4953
- ) -> None:
4954
- """Type checking stubs"""
4955
- pass
4956
-
4957
4928
  def _typecheckingstub__5e1f672b6c3046841d69f96c6b256cf927db52e0b4f4cd165e7022a893b539b1(
4958
4929
  inspector: _TreeInspector_488e0dd5,
4959
4930
  ) -> None:
@@ -5050,3 +5021,6 @@ def _typecheckingstub__09067b1978c488643c66537ddae08f743cfe6b4aac79c820f90d9c083
5050
5021
  ) -> None:
5051
5022
  """Type checking stubs"""
5052
5023
  pass
5024
+
5025
+ for cls in [IDatabaseRef, IInfluxDBInstanceRef, IScheduledQueryRef, ITableRef]:
5026
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -691,7 +691,7 @@ class CfnConnectorProps:
691
691
  '''Properties for defining a ``CfnConnector``.
692
692
 
693
693
  :param access_role: Connectors are used to send files using either the AS2 or SFTP protocol. For the access role, provide the Amazon Resource Name (ARN) of the AWS Identity and Access Management role to use. *For AS2 connectors* With AS2, you can send files by calling ``StartFileTransfer`` and specifying the file paths in the request parameter, ``SendFilePaths`` . We use the file’s parent directory (for example, for ``--send-file-paths /bucket/dir/file.txt`` , parent directory is ``/bucket/dir/`` ) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the ``AccessRole`` needs to provide read and write access to the parent directory of the file location used in the ``StartFileTransfer`` request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with ``StartFileTransfer`` . If you are using Basic authentication for your AS2 connector, the access role requires the ``secretsmanager:GetSecretValue`` permission for the secret. If the secret is encrypted using a customer-managed key instead of the AWS managed key in Secrets Manager, then the role also needs the ``kms:Decrypt`` permission for that key. *For SFTP connectors* Make sure that the access role provides read and write access to the parent directory of the file location that's used in the ``StartFileTransfer`` request. Additionally, make sure that the role provides ``secretsmanager:GetSecretValue`` permission to AWS Secrets Manager .
694
- :param url: The URL of the partner's AS2 or SFTP endpoint.
694
+ :param url: The URL of the partner's AS2 or SFTP endpoint. When creating AS2 connectors or service-managed SFTP connectors (connectors without egress configuration), you must provide a URL to specify the remote server endpoint. For VPC Lattice type connectors, the URL must be null.
695
695
  :param as2_config: A structure that contains the parameters for an AS2 connector object.
696
696
  :param logging_role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events. When set, you can view connector activity in your CloudWatch logs.
697
697
  :param security_policy_name: The text name of the security policy for the specified connector.
@@ -778,6 +778,8 @@ class CfnConnectorProps:
778
778
  def url(self) -> builtins.str:
779
779
  '''The URL of the partner's AS2 or SFTP endpoint.
780
780
 
781
+ When creating AS2 connectors or service-managed SFTP connectors (connectors without egress configuration), you must provide a URL to specify the remote server endpoint. For VPC Lattice type connectors, the URL must be null.
782
+
781
783
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html#cfn-transfer-connector-url
782
784
  '''
783
785
  result = self._values.get("url")
@@ -2794,27 +2796,6 @@ class CfnAgreement(
2794
2796
 
2795
2797
  jsii.create(self.__class__, self, [scope, id, props])
2796
2798
 
2797
- @jsii.member(jsii_name="fromAgreementArn")
2798
- @builtins.classmethod
2799
- def from_agreement_arn(
2800
- cls,
2801
- scope: _constructs_77d1e7e8.Construct,
2802
- id: builtins.str,
2803
- arn: builtins.str,
2804
- ) -> IAgreementRef:
2805
- '''Creates a new IAgreementRef from an ARN.
2806
-
2807
- :param scope: -
2808
- :param id: -
2809
- :param arn: -
2810
- '''
2811
- if __debug__:
2812
- type_hints = typing.get_type_hints(_typecheckingstub__49865972fac7cf97b37625ebb0dab09d88b56b9f2dd79d90fc649828bfc624ff)
2813
- check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2814
- check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2815
- check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
2816
- return typing.cast(IAgreementRef, jsii.sinvoke(cls, "fromAgreementArn", [scope, id, arn]))
2817
-
2818
2799
  @jsii.member(jsii_name="inspect")
2819
2800
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
2820
2801
  '''Examines the CloudFormation resource and discloses attributes.
@@ -3573,7 +3554,7 @@ class CfnConnector(
3573
3554
  :param scope: Scope in which this resource is defined.
3574
3555
  :param id: Construct identifier for this resource (unique in its scope).
3575
3556
  :param access_role: Connectors are used to send files using either the AS2 or SFTP protocol. For the access role, provide the Amazon Resource Name (ARN) of the AWS Identity and Access Management role to use. *For AS2 connectors* With AS2, you can send files by calling ``StartFileTransfer`` and specifying the file paths in the request parameter, ``SendFilePaths`` . We use the file’s parent directory (for example, for ``--send-file-paths /bucket/dir/file.txt`` , parent directory is ``/bucket/dir/`` ) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the ``AccessRole`` needs to provide read and write access to the parent directory of the file location used in the ``StartFileTransfer`` request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with ``StartFileTransfer`` . If you are using Basic authentication for your AS2 connector, the access role requires the ``secretsmanager:GetSecretValue`` permission for the secret. If the secret is encrypted using a customer-managed key instead of the AWS managed key in Secrets Manager, then the role also needs the ``kms:Decrypt`` permission for that key. *For SFTP connectors* Make sure that the access role provides read and write access to the parent directory of the file location that's used in the ``StartFileTransfer`` request. Additionally, make sure that the role provides ``secretsmanager:GetSecretValue`` permission to AWS Secrets Manager .
3576
- :param url: The URL of the partner's AS2 or SFTP endpoint.
3557
+ :param url: The URL of the partner's AS2 or SFTP endpoint. When creating AS2 connectors or service-managed SFTP connectors (connectors without egress configuration), you must provide a URL to specify the remote server endpoint. For VPC Lattice type connectors, the URL must be null.
3577
3558
  :param as2_config: A structure that contains the parameters for an AS2 connector object.
3578
3559
  :param logging_role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events. When set, you can view connector activity in your CloudWatch logs.
3579
3560
  :param security_policy_name: The text name of the security policy for the specified connector.
@@ -4064,7 +4045,7 @@ class CfnConnector(
4064
4045
  '''A structure that contains the parameters for an SFTP connector object.
4065
4046
 
4066
4047
  :param max_concurrent_connections: Specify the number of concurrent connections that your connector creates to the remote server. The default value is ``1`` . The maximum values is ``5`` . .. epigraph:: If you are using the AWS Management Console , the default value is ``5`` . This parameter specifies the number of active connections that your connector can establish with the remote server at the same time. Increasing this value can enhance connector performance when transferring large file batches by enabling parallel operations. Default: - 1
4067
- :param trusted_host_keys: The public portion of the host key, or keys, that are used to identify the external server to which you are connecting. You can use the ``ssh-keyscan`` command against the SFTP server to retrieve the necessary key. .. epigraph:: ``TrustedHostKeys`` is optional for ``CreateConnector`` . If not provided, you can use ``TestConnection`` to retrieve the server host key during the initial connection attempt, and subsequently update the connector with the observed host key. The three standard SSH public key format elements are ``<key type>`` , ``<body base64>`` , and an optional ``<comment>`` , with spaces between each element. Specify only the ``<key type>`` and ``<body base64>`` : do not enter the ``<comment>`` portion of the key. For the trusted host key, AWS Transfer Family accepts RSA and ECDSA keys. - For RSA keys, the ``<key type>`` string is ``ssh-rsa`` . - For ECDSA keys, the ``<key type>`` string is either ``ecdsa-sha2-nistp256`` , ``ecdsa-sha2-nistp384`` , or ``ecdsa-sha2-nistp521`` , depending on the size of the key you generated. Run this command to retrieve the SFTP server host key, where your SFTP server name is ``ftp.host.com`` . ``ssh-keyscan ftp.host.com`` This prints the public host key to standard output. ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key`` Copy and paste this string into the ``TrustedHostKeys`` field for the ``create-connector`` command or into the *Trusted host keys* field in the console.
4048
+ :param trusted_host_keys: The public portion of the host key, or keys, that are used to identify the external server to which you are connecting. You can use the ``ssh-keyscan`` command against the SFTP server to retrieve the necessary key. .. epigraph:: ``TrustedHostKeys`` is optional for ``CreateConnector`` . If not provided, you can use ``TestConnection`` to retrieve the server host key during the initial connection attempt, and subsequently update the connector with the observed host key. When creating connectors with egress config (VPC_LATTICE type connectors), since host name is not something we can verify, the only accepted trusted host key format is ``key-type key-body`` without the host name. For example: ``ssh-rsa AAAAB3Nza...<long-string-for-public-key>`` The three standard SSH public key format elements are ``<key type>`` , ``<body base64>`` , and an optional ``<comment>`` , with spaces between each element. Specify only the ``<key type>`` and ``<body base64>`` : do not enter the ``<comment>`` portion of the key. For the trusted host key, AWS Transfer Family accepts RSA and ECDSA keys. - For RSA keys, the ``<key type>`` string is ``ssh-rsa`` . - For ECDSA keys, the ``<key type>`` string is either ``ecdsa-sha2-nistp256`` , ``ecdsa-sha2-nistp384`` , or ``ecdsa-sha2-nistp521`` , depending on the size of the key you generated. Run this command to retrieve the SFTP server host key, where your SFTP server name is ``ftp.host.com`` . ``ssh-keyscan ftp.host.com`` This prints the public host key to standard output. ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key>`` Copy and paste this string into the ``TrustedHostKeys`` field for the ``create-connector`` command or into the *Trusted host keys* field in the console. For VPC Lattice type connectors (VPC_LATTICE), remove the hostname from the key and use only the ``key-type key-body`` format. In this example, it should be: ``ssh-rsa AAAAB3Nza...<long-string-for-public-key>``
4068
4049
  :param user_secret_id: The identifier for the secret (in AWS Secrets Manager) that contains the SFTP user's private key, password, or both. The identifier must be the Amazon Resource Name (ARN) of the secret. .. epigraph:: - Required when creating an SFTP connector - Optional when updating an existing SFTP connector
4069
4050
 
4070
4051
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-sftpconfig.html
@@ -4122,6 +4103,8 @@ class CfnConnector(
4122
4103
 
4123
4104
  ``TrustedHostKeys`` is optional for ``CreateConnector`` . If not provided, you can use ``TestConnection`` to retrieve the server host key during the initial connection attempt, and subsequently update the connector with the observed host key.
4124
4105
 
4106
+ When creating connectors with egress config (VPC_LATTICE type connectors), since host name is not something we can verify, the only accepted trusted host key format is ``key-type key-body`` without the host name. For example: ``ssh-rsa AAAAB3Nza...<long-string-for-public-key>``
4107
+
4125
4108
  The three standard SSH public key format elements are ``<key type>`` , ``<body base64>`` , and an optional ``<comment>`` , with spaces between each element. Specify only the ``<key type>`` and ``<body base64>`` : do not enter the ``<comment>`` portion of the key.
4126
4109
 
4127
4110
  For the trusted host key, AWS Transfer Family accepts RSA and ECDSA keys.
@@ -4135,10 +4118,12 @@ class CfnConnector(
4135
4118
 
4136
4119
  This prints the public host key to standard output.
4137
4120
 
4138
- ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key``
4121
+ ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key>``
4139
4122
 
4140
4123
  Copy and paste this string into the ``TrustedHostKeys`` field for the ``create-connector`` command or into the *Trusted host keys* field in the console.
4141
4124
 
4125
+ For VPC Lattice type connectors (VPC_LATTICE), remove the hostname from the key and use only the ``key-type key-body`` format. In this example, it should be: ``ssh-rsa AAAAB3Nza...<long-string-for-public-key>``
4126
+
4142
4127
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-sftpconfig.html#cfn-transfer-connector-sftpconfig-trustedhostkeys
4143
4128
  '''
4144
4129
  result = self._values.get("trusted_host_keys")
@@ -5199,13 +5184,17 @@ class CfnServer(
5199
5184
  ) -> None:
5200
5185
  '''The protocol settings that are configured for your server.
5201
5186
 
5187
+ .. epigraph::
5188
+
5189
+ Avoid placing Network Load Balancers (NLBs) or NAT gateways in front of AWS Transfer Family servers, as this increases costs and can cause performance issues, including reduced connection limits for FTPS. For more details, see `Avoid placing NLBs and NATs in front of AWS Transfer Family <https://docs.aws.amazon.com/transfer/latest/userguide/infrastructure-security.html#nlb-considerations>`_ .
5190
+
5202
5191
  - To indicate passive mode (for FTP and FTPS protocols), use the ``PassiveIp`` parameter. Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.
5203
5192
  - To ignore the error that is generated when the client attempts to use the ``SETSTAT`` command on a file that you are uploading to an Amazon S3 bucket, use the ``SetStatOption`` parameter. To have the AWS Transfer Family server ignore the ``SETSTAT`` command and upload files without needing to make any changes to your SFTP client, set the value to ``ENABLE_NO_OP`` . If you set the ``SetStatOption`` parameter to ``ENABLE_NO_OP`` , Transfer Family generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a ``SETSTAT`` call.
5204
5193
  - To determine whether your AWS Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the ``TlsSessionResumptionMode`` parameter.
5205
5194
  - ``As2Transports`` indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
5206
5195
 
5207
5196
  :param as2_transports: List of ``As2Transport`` objects.
5208
- :param passive_ip: Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example: ``aws transfer update-server --protocol-details PassiveIp=0.0.0.0`` Replace ``0.0.0.0`` in the example above with the actual IP address you want to use. .. epigraph:: If you change the ``PassiveIp`` value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see `Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family <https://docs.aws.amazon.com/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/>`_ . *Special values* The ``AUTO`` and ``0.0.0.0`` are special values for the ``PassiveIp`` parameter. The value ``PassiveIp=AUTO`` is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. ``PassiveIp=0.0.0.0`` has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the ``PassiveIp`` parameter. This reduces the effectiveness of having High Availability. In this case, you can specify ``PassiveIp=0.0.0.0`` . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the ``PassiveIp=0.0.0.0`` response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the ``PassiveIp=0.0.0.0`` response.
5197
+ :param passive_ip: Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example: ``aws transfer update-server --protocol-details PassiveIp=0.0.0.0`` Replace ``0.0.0.0`` in the example above with the actual IP address you want to use. .. epigraph:: If you change the ``PassiveIp`` value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see `Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family <https://docs.aws.amazon.com/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/>`_ . Additionally, avoid placing Network Load Balancers (NLBs) or NAT gateways in front of AWS Transfer Family servers. This configuration increases costs and can cause performance issues. When NLBs or NATs are in the communication path, Transfer Family cannot accurately recognize client IP addresses, which impacts connection sharding and limits FTPS servers to only 300 simultaneous connections instead of 10,000. If you must use an NLB, use port 21 for health checks and enable TLS session resumption by setting ``TlsSessionResumptionMode = ENFORCED`` . For optimal performance, migrate to VPC endpoints with Elastic IP addresses instead of using NLBs. For more details, see `Avoid placing NLBs and NATs in front of AWS Transfer Family <https://docs.aws.amazon.com/transfer/latest/userguide/infrastructure-security.html#nlb-considerations>`_ . *Special values* The ``AUTO`` and ``0.0.0.0`` are special values for the ``PassiveIp`` parameter. The value ``PassiveIp=AUTO`` is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. ``PassiveIp=0.0.0.0`` has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the ``PassiveIp`` parameter. This reduces the effectiveness of having High Availability. In this case, you can specify ``PassiveIp=0.0.0.0`` . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the ``PassiveIp=0.0.0.0`` response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the ``PassiveIp=0.0.0.0`` response.
5209
5198
  :param set_stat_option: Use the ``SetStatOption`` to ignore the error that is generated when the client attempts to use ``SETSTAT`` on a file you are uploading to an S3 bucket. Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as ``SETSTAT`` when uploading the file. However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when the file is otherwise successfully uploaded. Set the value to ``ENABLE_NO_OP`` to have the Transfer Family server ignore the ``SETSTAT`` command, and upload files without needing to make any changes to your SFTP client. While the ``SetStatOption`` ``ENABLE_NO_OP`` setting ignores the error, it does generate a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a ``SETSTAT`` call. .. epigraph:: If you want to preserve the original timestamp for your file, and modify other file attributes using ``SETSTAT`` , you can use Amazon EFS as backend storage with Transfer Family.
5210
5199
  :param tls_session_resumption_mode: A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. ``TlsSessionResumptionMode`` determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during ``CreateServer`` and ``UpdateServer`` calls. If a ``TlsSessionResumptionMode`` value is not specified during ``CreateServer`` , it is set to ``ENFORCED`` by default. - ``DISABLED`` : the server does not process TLS session resumption client requests and creates a new TLS session for each request. - ``ENABLED`` : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing. - ``ENFORCED`` : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ``ENFORCED`` , test your clients. .. epigraph:: Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ``ENFORCED`` value, you need to test your clients.
5211
5200
 
@@ -5263,6 +5252,8 @@ class CfnServer(
5263
5252
 
5264
5253
  If you change the ``PassiveIp`` value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see `Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family <https://docs.aws.amazon.com/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/>`_ .
5265
5254
 
5255
+ Additionally, avoid placing Network Load Balancers (NLBs) or NAT gateways in front of AWS Transfer Family servers. This configuration increases costs and can cause performance issues. When NLBs or NATs are in the communication path, Transfer Family cannot accurately recognize client IP addresses, which impacts connection sharding and limits FTPS servers to only 300 simultaneous connections instead of 10,000. If you must use an NLB, use port 21 for health checks and enable TLS session resumption by setting ``TlsSessionResumptionMode = ENFORCED`` . For optimal performance, migrate to VPC endpoints with Elastic IP addresses instead of using NLBs. For more details, see `Avoid placing NLBs and NATs in front of AWS Transfer Family <https://docs.aws.amazon.com/transfer/latest/userguide/infrastructure-security.html#nlb-considerations>`_ .
5256
+
5266
5257
  *Special values*
5267
5258
 
5268
5259
  The ``AUTO`` and ``0.0.0.0`` are special values for the ``PassiveIp`` parameter. The value ``PassiveIp=AUTO`` is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. ``PassiveIp=0.0.0.0`` has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the ``PassiveIp`` parameter. This reduces the effectiveness of having High Availability. In this case, you can specify ``PassiveIp=0.0.0.0`` . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the ``PassiveIp=0.0.0.0`` response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the ``PassiveIp=0.0.0.0`` response.
@@ -8179,14 +8170,6 @@ def _typecheckingstub__f95ec07e6c4ee624e4f9374f7db0e66b46af64fa8c86e2e41aa290c72
8179
8170
  """Type checking stubs"""
8180
8171
  pass
8181
8172
 
8182
- def _typecheckingstub__49865972fac7cf97b37625ebb0dab09d88b56b9f2dd79d90fc649828bfc624ff(
8183
- scope: _constructs_77d1e7e8.Construct,
8184
- id: builtins.str,
8185
- arn: builtins.str,
8186
- ) -> None:
8187
- """Type checking stubs"""
8188
- pass
8189
-
8190
8173
  def _typecheckingstub__228db9cea00437d476e4860ef1214693d948e861477e0b0435205c3df9bf79f1(
8191
8174
  inspector: _TreeInspector_488e0dd5,
8192
8175
  ) -> None:
@@ -9093,3 +9076,6 @@ def _typecheckingstub__b548edb0a5fb9cfebb89a31ba69695395ed26d4793bbaa01e670bb558
9093
9076
  ) -> None:
9094
9077
  """Type checking stubs"""
9095
9078
  pass
9079
+
9080
+ for cls in [IAgreementRef, ICertificateRef, IConnectorRef, IProfileRef, IServerRef, IUserRef, IWebAppRef, IWorkflowRef]:
9081
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
@@ -3594,3 +3594,6 @@ def _typecheckingstub__c58edfa87a5f12d9679dc9e906de042ce6fb26dbf1811d4fbdfc9c7e8
3594
3594
  ) -> None:
3595
3595
  """Type checking stubs"""
3596
3596
  pass
3597
+
3598
+ for cls in [IIdentitySourceRef, IPolicyRef, IPolicyStoreRef, IPolicyTemplateRef]:
3599
+ typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])