aws-cdk-lib 2.200.2__py3-none-any.whl → 2.224.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 (569) hide show
  1. aws_cdk/__init__.py +1349 -373
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1017 -155
  12. aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +298 -43
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +29 -6
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +94 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +227 -53
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +1875 -132
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +135 -55
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +317 -28
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1405 -178
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +6747 -627
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +42 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +237 -32
  45. aws_cdk/aws_chatbot/__init__.py +70 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +345 -166
  50. aws_cdk/aws_cloudfront/__init__.py +2101 -680
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
  53. aws_cdk/aws_cloudtrail/__init__.py +301 -17
  54. aws_cdk/aws_cloudwatch/__init__.py +1414 -153
  55. aws_cdk/aws_codeartifact/__init__.py +35 -6
  56. aws_cdk/aws_codebuild/__init__.py +1103 -118
  57. aws_cdk/aws_codecommit/__init__.py +23 -9
  58. aws_cdk/aws_codeconnections/__init__.py +13 -2
  59. aws_cdk/aws_codedeploy/__init__.py +67 -6
  60. aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
  61. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  62. aws_cdk/aws_codepipeline/__init__.py +127 -64
  63. aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
  64. aws_cdk/aws_codestar/__init__.py +13 -2
  65. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  66. aws_cdk/aws_codestarnotifications/__init__.py +16 -2
  67. aws_cdk/aws_cognito/__init__.py +814 -80
  68. aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
  69. aws_cdk/aws_comprehend/__init__.py +24 -4
  70. aws_cdk/aws_config/__init__.py +191 -30
  71. aws_cdk/aws_connect/__init__.py +2736 -191
  72. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  73. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  74. aws_cdk/aws_controltower/__init__.py +35 -6
  75. aws_cdk/aws_cur/__init__.py +100 -4
  76. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  77. aws_cdk/aws_databrew/__init__.py +68 -12
  78. aws_cdk/aws_datapipeline/__init__.py +42 -2
  79. aws_cdk/aws_datasync/__init__.py +723 -203
  80. aws_cdk/aws_datazone/__init__.py +4425 -608
  81. aws_cdk/aws_dax/__init__.py +83 -6
  82. aws_cdk/aws_deadline/__init__.py +321 -32
  83. aws_cdk/aws_detective/__init__.py +35 -6
  84. aws_cdk/aws_devicefarm/__init__.py +68 -12
  85. aws_cdk/aws_devopsguru/__init__.py +37 -6
  86. aws_cdk/aws_directoryservice/__init__.py +53 -4
  87. aws_cdk/aws_dlm/__init__.py +13 -2
  88. aws_cdk/aws_dms/__init__.py +184 -27
  89. aws_cdk/aws_docdb/__init__.py +323 -46
  90. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  91. aws_cdk/aws_dsql/__init__.py +340 -12
  92. aws_cdk/aws_dynamodb/__init__.py +1463 -166
  93. aws_cdk/aws_ec2/__init__.py +9636 -1120
  94. aws_cdk/aws_ecr/__init__.py +631 -43
  95. aws_cdk/aws_ecr_assets/__init__.py +4 -0
  96. aws_cdk/aws_ecs/__init__.py +6524 -497
  97. aws_cdk/aws_ecs_patterns/__init__.py +2 -0
  98. aws_cdk/aws_efs/__init__.py +264 -24
  99. aws_cdk/aws_eks/__init__.py +1050 -218
  100. aws_cdk/aws_elasticache/__init__.py +373 -20
  101. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  102. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
  103. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
  104. aws_cdk/aws_elasticsearch/__init__.py +282 -9
  105. aws_cdk/aws_emr/__init__.py +187 -20
  106. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  107. aws_cdk/aws_emrserverless/__init__.py +188 -3
  108. aws_cdk/aws_entityresolution/__init__.py +585 -58
  109. aws_cdk/aws_events/__init__.py +969 -124
  110. aws_cdk/aws_events_targets/__init__.py +310 -54
  111. aws_cdk/aws_eventschemas/__init__.py +46 -8
  112. aws_cdk/aws_evidently/__init__.py +57 -10
  113. aws_cdk/aws_evs/__init__.py +2244 -0
  114. aws_cdk/aws_finspace/__init__.py +71 -2
  115. aws_cdk/aws_fis/__init__.py +26 -4
  116. aws_cdk/aws_fms/__init__.py +35 -6
  117. aws_cdk/aws_forecast/__init__.py +24 -4
  118. aws_cdk/aws_frauddetector/__init__.py +79 -14
  119. aws_cdk/aws_fsx/__init__.py +1236 -142
  120. aws_cdk/aws_gamelift/__init__.py +653 -78
  121. aws_cdk/aws_gameliftstreams/__init__.py +38 -16
  122. aws_cdk/aws_globalaccelerator/__init__.py +55 -14
  123. aws_cdk/aws_glue/__init__.py +1368 -320
  124. aws_cdk/aws_grafana/__init__.py +13 -2
  125. aws_cdk/aws_greengrass/__init__.py +654 -32
  126. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  127. aws_cdk/aws_groundstation/__init__.py +122 -6
  128. aws_cdk/aws_guardduty/__init__.py +1613 -123
  129. aws_cdk/aws_healthimaging/__init__.py +71 -2
  130. aws_cdk/aws_healthlake/__init__.py +42 -2
  131. aws_cdk/aws_iam/__init__.py +480 -140
  132. aws_cdk/aws_identitystore/__init__.py +24 -4
  133. aws_cdk/aws_imagebuilder/__init__.py +1433 -183
  134. aws_cdk/aws_inspector/__init__.py +38 -6
  135. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  136. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  137. aws_cdk/aws_invoicing/__init__.py +13 -2
  138. aws_cdk/aws_iot/__init__.py +1730 -86
  139. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  140. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  141. aws_cdk/aws_iotevents/__init__.py +122 -6
  142. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  143. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  144. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  145. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  146. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  147. aws_cdk/aws_iotwireless/__init__.py +649 -22
  148. aws_cdk/aws_ivs/__init__.py +561 -57
  149. aws_cdk/aws_ivschat/__init__.py +24 -4
  150. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  151. aws_cdk/aws_kendra/__init__.py +120 -28
  152. aws_cdk/aws_kendraranking/__init__.py +13 -2
  153. aws_cdk/aws_kinesis/__init__.py +622 -22
  154. aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
  155. aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
  156. aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
  157. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  158. aws_cdk/aws_kms/__init__.py +188 -41
  159. aws_cdk/aws_lakeformation/__init__.py +80 -15
  160. aws_cdk/aws_lambda/__init__.py +2101 -252
  161. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  163. aws_cdk/aws_launchwizard/__init__.py +13 -2
  164. aws_cdk/aws_lex/__init__.py +871 -8
  165. aws_cdk/aws_licensemanager/__init__.py +24 -4
  166. aws_cdk/aws_lightsail/__init__.py +2159 -975
  167. aws_cdk/aws_location/__init__.py +618 -14
  168. aws_cdk/aws_logs/__init__.py +5904 -956
  169. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  170. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  171. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  172. aws_cdk/aws_m2/__init__.py +94 -19
  173. aws_cdk/aws_macie/__init__.py +49 -11
  174. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  175. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  176. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  177. aws_cdk/aws_medialive/__init__.py +1239 -35
  178. aws_cdk/aws_mediapackage/__init__.py +59 -12
  179. aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
  180. aws_cdk/aws_mediastore/__init__.py +13 -2
  181. aws_cdk/aws_mediatailor/__init__.py +583 -12
  182. aws_cdk/aws_memorydb/__init__.py +271 -12
  183. aws_cdk/aws_mpa/__init__.py +1495 -0
  184. aws_cdk/aws_msk/__init__.py +104 -18
  185. aws_cdk/aws_mwaa/__init__.py +121 -9
  186. aws_cdk/aws_neptune/__init__.py +290 -78
  187. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  188. aws_cdk/aws_networkfirewall/__init__.py +1289 -273
  189. aws_cdk/aws_networkmanager/__init__.py +349 -33
  190. aws_cdk/aws_nimblestudio/__init__.py +75 -8
  191. aws_cdk/aws_notifications/__init__.py +317 -12
  192. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  193. aws_cdk/aws_oam/__init__.py +24 -4
  194. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  195. aws_cdk/aws_odb/__init__.py +5872 -0
  196. aws_cdk/aws_omics/__init__.py +2495 -529
  197. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  198. aws_cdk/aws_opensearchservice/__init__.py +495 -19
  199. aws_cdk/aws_opsworks/__init__.py +235 -139
  200. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  201. aws_cdk/aws_organizations/__init__.py +70 -10
  202. aws_cdk/aws_osis/__init__.py +167 -2
  203. aws_cdk/aws_panorama/__init__.py +151 -6
  204. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  205. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  206. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  207. aws_cdk/aws_pcs/__init__.py +387 -68
  208. aws_cdk/aws_personalize/__init__.py +46 -8
  209. aws_cdk/aws_pinpoint/__init__.py +329 -38
  210. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  211. aws_cdk/aws_pipes/__init__.py +12 -2
  212. aws_cdk/aws_proton/__init__.py +37 -6
  213. aws_cdk/aws_qbusiness/__init__.py +635 -34
  214. aws_cdk/aws_qldb/__init__.py +24 -4
  215. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  216. aws_cdk/aws_ram/__init__.py +24 -4
  217. aws_cdk/aws_rbin/__init__.py +12 -2
  218. aws_cdk/aws_rds/__init__.py +3345 -512
  219. aws_cdk/aws_redshift/__init__.py +143 -20
  220. aws_cdk/aws_redshiftserverless/__init__.py +692 -4
  221. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  222. aws_cdk/aws_rekognition/__init__.py +93 -6
  223. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  224. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  225. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  226. aws_cdk/aws_robomaker/__init__.py +72 -12
  227. aws_cdk/aws_rolesanywhere/__init__.py +180 -6
  228. aws_cdk/aws_route53/__init__.py +3273 -1442
  229. aws_cdk/aws_route53_targets/__init__.py +3 -0
  230. aws_cdk/aws_route53profiles/__init__.py +37 -6
  231. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  232. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  233. aws_cdk/aws_route53resolver/__init__.py +226 -36
  234. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  235. aws_cdk/aws_rum/__init__.py +13 -2
  236. aws_cdk/aws_s3/__init__.py +1291 -158
  237. aws_cdk/aws_s3_assets/__init__.py +11 -11
  238. aws_cdk/aws_s3_deployment/__init__.py +147 -11
  239. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  240. aws_cdk/aws_s3express/__init__.py +266 -8
  241. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  242. aws_cdk/aws_s3outposts/__init__.py +46 -8
  243. aws_cdk/aws_s3tables/__init__.py +2000 -323
  244. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  245. aws_cdk/aws_sagemaker/__init__.py +6617 -363
  246. aws_cdk/aws_sam/__init__.py +79 -14
  247. aws_cdk/aws_scheduler/__init__.py +237 -4
  248. aws_cdk/aws_sdb/__init__.py +12 -2
  249. aws_cdk/aws_secretsmanager/__init__.py +170 -14
  250. aws_cdk/aws_securityhub/__init__.py +3121 -176
  251. aws_cdk/aws_securitylake/__init__.py +46 -8
  252. aws_cdk/aws_servicecatalog/__init__.py +405 -246
  253. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  254. aws_cdk/aws_servicediscovery/__init__.py +140 -47
  255. aws_cdk/aws_ses/__init__.py +1231 -140
  256. aws_cdk/aws_shield/__init__.py +46 -8
  257. aws_cdk/aws_signer/__init__.py +27 -4
  258. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  259. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  260. aws_cdk/aws_sns/__init__.py +245 -29
  261. aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
  262. aws_cdk/aws_sqs/__init__.py +211 -14
  263. aws_cdk/aws_ssm/__init__.py +401 -58
  264. aws_cdk/aws_ssmcontacts/__init__.py +46 -8
  265. aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
  266. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  267. aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
  268. aws_cdk/aws_sso/__init__.py +70 -12
  269. aws_cdk/aws_stepfunctions/__init__.py +615 -70
  270. aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
  271. aws_cdk/aws_supportapp/__init__.py +39 -6
  272. aws_cdk/aws_synthetics/__init__.py +861 -75
  273. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  274. aws_cdk/aws_timestream/__init__.py +104 -8
  275. aws_cdk/aws_transfer/__init__.py +784 -87
  276. aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
  277. aws_cdk/aws_voiceid/__init__.py +41 -2
  278. aws_cdk/aws_vpclattice/__init__.py +376 -30
  279. aws_cdk/aws_waf/__init__.py +79 -14
  280. aws_cdk/aws_wafregional/__init__.py +123 -22
  281. aws_cdk/aws_wafv2/__init__.py +1179 -60
  282. aws_cdk/aws_wisdom/__init__.py +1401 -90
  283. aws_cdk/aws_workspaces/__init__.py +93 -6
  284. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  285. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  286. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  287. aws_cdk/aws_xray/__init__.py +48 -8
  288. aws_cdk/cloud_assembly_schema/__init__.py +231 -6
  289. aws_cdk/custom_resources/__init__.py +40 -12
  290. aws_cdk/cx_api/__init__.py +85 -14
  291. aws_cdk/interfaces/__init__.py +739 -0
  292. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  293. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  295. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  296. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  297. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  298. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  299. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  300. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  301. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  302. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  303. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  304. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  305. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  306. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  307. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  308. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  309. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  310. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  311. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  312. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  313. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  314. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  315. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  316. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  317. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  318. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  319. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  320. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  321. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  322. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  323. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  324. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  325. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  326. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  327. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  328. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  329. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  330. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  331. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  332. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  333. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  334. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  335. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  336. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  337. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  338. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  339. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  340. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  341. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  342. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  343. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  344. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  345. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  346. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  347. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  348. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  349. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  350. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  351. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  352. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  353. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  354. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  355. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  356. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  358. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  359. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  360. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  361. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  362. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  363. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  364. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  365. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  366. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  367. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  368. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  369. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  370. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  371. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  372. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  373. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  374. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  376. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  377. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  378. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  379. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  380. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  381. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  382. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  383. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  385. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  386. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  387. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  388. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  389. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  390. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  391. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  392. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  393. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  394. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  396. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  397. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  398. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  399. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  400. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  401. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  402. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  403. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  404. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  405. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  406. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  407. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  408. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  409. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  410. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  411. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  412. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  413. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  414. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  415. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  416. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  417. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  418. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  419. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  420. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  421. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  422. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  423. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  424. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  425. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  426. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  427. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  428. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  429. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  430. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  431. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  432. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  433. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  434. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  436. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  437. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  438. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  439. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  440. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  441. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  442. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  443. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  444. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  445. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  446. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  447. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  448. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  449. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  450. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  451. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  452. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  453. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  454. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  455. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  456. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  457. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  458. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  459. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  460. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  461. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  462. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  463. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  464. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  465. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  466. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  467. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  468. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  469. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  470. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  471. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  472. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  473. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  474. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  475. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  476. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  477. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  478. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  479. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  480. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  481. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  482. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  483. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  484. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  485. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  486. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  487. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  488. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  489. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  490. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  491. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  492. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  493. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  494. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  495. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  496. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  497. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  498. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  499. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  500. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  501. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  502. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  503. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  504. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  505. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  506. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  507. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  508. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  509. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  510. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  511. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  512. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  513. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  514. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  515. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  516. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  517. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  518. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  519. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  520. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  521. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  522. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  523. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  524. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  525. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  526. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  527. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  528. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  529. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  530. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  531. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  532. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  533. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  534. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  535. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  536. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  537. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  538. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  539. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  540. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  541. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  542. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  543. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  544. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  545. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  546. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  547. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  548. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  549. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  550. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  551. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  552. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  553. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  554. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  555. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  556. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  557. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  558. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  559. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  560. aws_cdk/pipelines/__init__.py +192 -42
  561. aws_cdk/region_info/__init__.py +3 -0
  562. aws_cdk/triggers/__init__.py +60 -18
  563. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
  564. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  565. aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
  566. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  567. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  568. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  569. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -68,9 +68,27 @@ from .. import (
68
68
  TagManager as _TagManager_0a598cb3,
69
69
  TreeInspector as _TreeInspector_488e0dd5,
70
70
  )
71
+ from ..interfaces.aws_transfer import (
72
+ AgreementReference as _AgreementReference_1bc96f6e,
73
+ CertificateReference as _CertificateReference_5d56fe88,
74
+ ConnectorReference as _ConnectorReference_32f54b47,
75
+ IAgreementRef as _IAgreementRef_d820bcad,
76
+ ICertificateRef as _ICertificateRef_0de2a67f,
77
+ IConnectorRef as _IConnectorRef_b3a29b7e,
78
+ IProfileRef as _IProfileRef_fed8deac,
79
+ IServerRef as _IServerRef_6fa6fa22,
80
+ IUserRef as _IUserRef_344ece73,
81
+ IWebAppRef as _IWebAppRef_5ec8f507,
82
+ IWorkflowRef as _IWorkflowRef_1a79a531,
83
+ ProfileReference as _ProfileReference_0268b426,
84
+ ServerReference as _ServerReference_ef7b9b24,
85
+ UserReference as _UserReference_c3e4eb82,
86
+ WebAppReference as _WebAppReference_b5630dd4,
87
+ WorkflowReference as _WorkflowReference_25a0bf6c,
88
+ )
71
89
 
72
90
 
73
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
91
+ @jsii.implements(_IInspectable_c2943556, _IAgreementRef_d820bcad, _ITaggable_36806126)
74
92
  class CfnAgreement(
75
93
  _CfnResource_9df397a6,
76
94
  metaclass=jsii.JSIIMeta,
@@ -138,7 +156,8 @@ class CfnAgreement(
138
156
  status: typing.Optional[builtins.str] = None,
139
157
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
140
158
  ) -> None:
141
- '''
159
+ '''Create a new ``AWS::Transfer::Agreement``.
160
+
142
161
  :param scope: Scope in which this resource is defined.
143
162
  :param id: Construct identifier for this resource (unique in its scope).
144
163
  :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 .
@@ -203,6 +222,12 @@ class CfnAgreement(
203
222
  '''The CloudFormation resource type name for this resource class.'''
204
223
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
205
224
 
225
+ @builtins.property
226
+ @jsii.member(jsii_name="agreementRef")
227
+ def agreement_ref(self) -> _AgreementReference_1bc96f6e:
228
+ '''A reference to a Agreement resource.'''
229
+ return typing.cast(_AgreementReference_1bc96f6e, jsii.get(self, "agreementRef"))
230
+
206
231
  @builtins.property
207
232
  @jsii.member(jsii_name="attrAgreementId")
208
233
  def attr_agreement_id(self) -> builtins.str:
@@ -763,7 +788,7 @@ class CfnAgreementProps:
763
788
  )
764
789
 
765
790
 
766
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
791
+ @jsii.implements(_IInspectable_c2943556, _ICertificateRef_0de2a67f, _ITaggable_36806126)
767
792
  class CfnCertificate(
768
793
  _CfnResource_9df397a6,
769
794
  metaclass=jsii.JSIIMeta,
@@ -772,9 +797,20 @@ class CfnCertificate(
772
797
  '''Imports the signing and encryption certificates that you need to create local (AS2) profiles and partner profiles.
773
798
 
774
799
  You can import both the certificate and its chain in the ``Certificate`` parameter.
800
+
801
+ After importing a certificate, AWS Transfer Family automatically creates a Amazon CloudWatch metric called ``DaysUntilExpiry`` that tracks the number of days until the certificate expires. The metric is based on the ``InactiveDate`` parameter and is published daily in the ``AWS/Transfer`` namespace.
775
802
  .. epigraph::
776
803
 
777
- If you use the ``Certificate`` parameter to upload both the certificate and its chain, don't use the ``CertificateChain`` parameter.
804
+ It can take up to a full day after importing a certificate for Transfer Family to emit the ``DaysUntilExpiry`` metric to your account. > If you use the ``Certificate`` parameter to upload both the certificate and its chain, don't use the ``CertificateChain`` parameter.
805
+
806
+ *CloudWatch monitoring*
807
+
808
+ The ``DaysUntilExpiry`` metric includes the following specifications:
809
+
810
+ - *Units:* Count (days)
811
+ - *Dimensions:* ``CertificateId`` (always present), ``Description`` (if provided during certificate import)
812
+ - *Statistics:* Minimum, Maximum, Average
813
+ - *Frequency:* Published daily
778
814
 
779
815
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-certificate.html
780
816
  :cloudformationResource: AWS::Transfer::Certificate
@@ -817,7 +853,8 @@ class CfnCertificate(
817
853
  private_key: typing.Optional[builtins.str] = None,
818
854
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
819
855
  ) -> None:
820
- '''
856
+ '''Create a new ``AWS::Transfer::Certificate``.
857
+
821
858
  :param scope: Scope in which this resource is defined.
822
859
  :param id: Construct identifier for this resource (unique in its scope).
823
860
  :param certificate: The file name for the certificate.
@@ -846,6 +883,48 @@ class CfnCertificate(
846
883
 
847
884
  jsii.create(self.__class__, self, [scope, id, props])
848
885
 
886
+ @jsii.member(jsii_name="fromCertificateArn")
887
+ @builtins.classmethod
888
+ def from_certificate_arn(
889
+ cls,
890
+ scope: _constructs_77d1e7e8.Construct,
891
+ id: builtins.str,
892
+ arn: builtins.str,
893
+ ) -> _ICertificateRef_0de2a67f:
894
+ '''Creates a new ICertificateRef from an ARN.
895
+
896
+ :param scope: -
897
+ :param id: -
898
+ :param arn: -
899
+ '''
900
+ if __debug__:
901
+ type_hints = typing.get_type_hints(_typecheckingstub__dc4fb6b44e5c3b46d7a4b6d2cddd238e6967e5ba869d0beec1e241cd289794f0)
902
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
903
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
904
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
905
+ return typing.cast(_ICertificateRef_0de2a67f, jsii.sinvoke(cls, "fromCertificateArn", [scope, id, arn]))
906
+
907
+ @jsii.member(jsii_name="fromCertificateId")
908
+ @builtins.classmethod
909
+ def from_certificate_id(
910
+ cls,
911
+ scope: _constructs_77d1e7e8.Construct,
912
+ id: builtins.str,
913
+ certificate_id: builtins.str,
914
+ ) -> _ICertificateRef_0de2a67f:
915
+ '''Creates a new ICertificateRef from a certificateId.
916
+
917
+ :param scope: -
918
+ :param id: -
919
+ :param certificate_id: -
920
+ '''
921
+ if __debug__:
922
+ type_hints = typing.get_type_hints(_typecheckingstub__5ac0c4753dbb35aa2c4992fbcf97129e0a6a0be0b5fee455f1416d86edcba9ea)
923
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
924
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
925
+ check_type(argname="argument certificate_id", value=certificate_id, expected_type=type_hints["certificate_id"])
926
+ return typing.cast(_ICertificateRef_0de2a67f, jsii.sinvoke(cls, "fromCertificateId", [scope, id, certificate_id]))
927
+
849
928
  @jsii.member(jsii_name="inspect")
850
929
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
851
930
  '''Examines the CloudFormation resource and discloses attributes.
@@ -945,6 +1024,12 @@ class CfnCertificate(
945
1024
  '''
946
1025
  return typing.cast(builtins.str, jsii.get(self, "attrType"))
947
1026
 
1027
+ @builtins.property
1028
+ @jsii.member(jsii_name="certificateRef")
1029
+ def certificate_ref(self) -> _CertificateReference_5d56fe88:
1030
+ '''A reference to a Certificate resource.'''
1031
+ return typing.cast(_CertificateReference_5d56fe88, jsii.get(self, "certificateRef"))
1032
+
948
1033
  @builtins.property
949
1034
  @jsii.member(jsii_name="cfnProperties")
950
1035
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -1248,7 +1333,7 @@ class CfnCertificateProps:
1248
1333
  )
1249
1334
 
1250
1335
 
1251
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
1336
+ @jsii.implements(_IInspectable_c2943556, _IConnectorRef_b3a29b7e, _ITaggable_36806126)
1252
1337
  class CfnConnector(
1253
1338
  _CfnResource_9df397a6,
1254
1339
  metaclass=jsii.JSIIMeta,
@@ -1275,20 +1360,30 @@ class CfnConnector(
1275
1360
 
1276
1361
  cfn_connector = transfer.CfnConnector(self, "MyCfnConnector",
1277
1362
  access_role="accessRole",
1278
- url="url",
1279
1363
 
1280
1364
  # the properties below are optional
1281
1365
  as2_config=as2_config,
1366
+ egress_config=transfer.CfnConnector.ConnectorEgressConfigProperty(
1367
+ vpc_lattice=transfer.CfnConnector.ConnectorVpcLatticeEgressConfigProperty(
1368
+ resource_configuration_arn="resourceConfigurationArn",
1369
+
1370
+ # the properties below are optional
1371
+ port_number=123
1372
+ )
1373
+ ),
1374
+ egress_type="egressType",
1282
1375
  logging_role="loggingRole",
1283
1376
  security_policy_name="securityPolicyName",
1284
1377
  sftp_config=transfer.CfnConnector.SftpConfigProperty(
1378
+ max_concurrent_connections=123,
1285
1379
  trusted_host_keys=["trustedHostKeys"],
1286
1380
  user_secret_id="userSecretId"
1287
1381
  ),
1288
1382
  tags=[CfnTag(
1289
1383
  key="key",
1290
1384
  value="value"
1291
- )]
1385
+ )],
1386
+ url="url"
1292
1387
  )
1293
1388
  '''
1294
1389
 
@@ -1298,23 +1393,28 @@ class CfnConnector(
1298
1393
  id: builtins.str,
1299
1394
  *,
1300
1395
  access_role: builtins.str,
1301
- url: builtins.str,
1302
1396
  as2_config: typing.Any = None,
1397
+ egress_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConnector.ConnectorEgressConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1398
+ egress_type: typing.Optional[builtins.str] = None,
1303
1399
  logging_role: typing.Optional[builtins.str] = None,
1304
1400
  security_policy_name: typing.Optional[builtins.str] = None,
1305
1401
  sftp_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnConnector.SftpConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1306
1402
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1403
+ url: typing.Optional[builtins.str] = None,
1307
1404
  ) -> None:
1308
- '''
1405
+ '''Create a new ``AWS::Transfer::Connector``.
1406
+
1309
1407
  :param scope: Scope in which this resource is defined.
1310
1408
  :param id: Construct identifier for this resource (unique in its scope).
1311
1409
  :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 .
1312
- :param url: The URL of the partner's AS2 or SFTP endpoint.
1313
1410
  :param as2_config: A structure that contains the parameters for an AS2 connector object.
1411
+ :param egress_config: Current egress configuration of the connector, showing how traffic is routed to the SFTP server. Contains VPC Lattice settings when using VPC_LATTICE egress type. When using the VPC_LATTICE egress type, AWS Transfer Family uses a managed Service Network to simplify the resource sharing process.
1412
+ :param egress_type: Type of egress configuration for the connector. SERVICE_MANAGED uses Transfer Family managed NAT gateways, while VPC_LATTICE routes traffic through customer VPCs using VPC Lattice.
1314
1413
  :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.
1315
1414
  :param security_policy_name: The text name of the security policy for the specified connector.
1316
1415
  :param sftp_config: A structure that contains the parameters for an SFTP connector object.
1317
1416
  :param tags: Key-value pairs that can be used to group and search for connectors.
1417
+ :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.
1318
1418
  '''
1319
1419
  if __debug__:
1320
1420
  type_hints = typing.get_type_hints(_typecheckingstub__2a3d92be7ab611ebe6dbf531ad899c2a95b3655fb829aeffdf52fdb11aae9d07)
@@ -1322,16 +1422,60 @@ class CfnConnector(
1322
1422
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1323
1423
  props = CfnConnectorProps(
1324
1424
  access_role=access_role,
1325
- url=url,
1326
1425
  as2_config=as2_config,
1426
+ egress_config=egress_config,
1427
+ egress_type=egress_type,
1327
1428
  logging_role=logging_role,
1328
1429
  security_policy_name=security_policy_name,
1329
1430
  sftp_config=sftp_config,
1330
1431
  tags=tags,
1432
+ url=url,
1331
1433
  )
1332
1434
 
1333
1435
  jsii.create(self.__class__, self, [scope, id, props])
1334
1436
 
1437
+ @jsii.member(jsii_name="fromConnectorArn")
1438
+ @builtins.classmethod
1439
+ def from_connector_arn(
1440
+ cls,
1441
+ scope: _constructs_77d1e7e8.Construct,
1442
+ id: builtins.str,
1443
+ arn: builtins.str,
1444
+ ) -> _IConnectorRef_b3a29b7e:
1445
+ '''Creates a new IConnectorRef from an ARN.
1446
+
1447
+ :param scope: -
1448
+ :param id: -
1449
+ :param arn: -
1450
+ '''
1451
+ if __debug__:
1452
+ type_hints = typing.get_type_hints(_typecheckingstub__a59af73cca17d333ea4e8a725b5ea84947fbdf727ceaa58fb5d37dde8ba99e43)
1453
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1454
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1455
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
1456
+ return typing.cast(_IConnectorRef_b3a29b7e, jsii.sinvoke(cls, "fromConnectorArn", [scope, id, arn]))
1457
+
1458
+ @jsii.member(jsii_name="fromConnectorId")
1459
+ @builtins.classmethod
1460
+ def from_connector_id(
1461
+ cls,
1462
+ scope: _constructs_77d1e7e8.Construct,
1463
+ id: builtins.str,
1464
+ connector_id: builtins.str,
1465
+ ) -> _IConnectorRef_b3a29b7e:
1466
+ '''Creates a new IConnectorRef from a connectorId.
1467
+
1468
+ :param scope: -
1469
+ :param id: -
1470
+ :param connector_id: -
1471
+ '''
1472
+ if __debug__:
1473
+ type_hints = typing.get_type_hints(_typecheckingstub__38a8932f140563c5eae5ee417477d8ef0fb37d560d4497ce233ca03fcfedea17)
1474
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1475
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1476
+ check_type(argname="argument connector_id", value=connector_id, expected_type=type_hints["connector_id"])
1477
+ return typing.cast(_IConnectorRef_b3a29b7e, jsii.sinvoke(cls, "fromConnectorId", [scope, id, connector_id]))
1478
+
1335
1479
  @jsii.member(jsii_name="inspect")
1336
1480
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
1337
1481
  '''Examines the CloudFormation resource and discloses attributes.
@@ -1391,11 +1535,28 @@ class CfnConnector(
1391
1535
  '''
1392
1536
  return typing.cast(typing.List[builtins.str], jsii.get(self, "attrServiceManagedEgressIpAddresses"))
1393
1537
 
1538
+ @builtins.property
1539
+ @jsii.member(jsii_name="attrStatus")
1540
+ def attr_status(self) -> builtins.str:
1541
+ '''Current status of the connector.
1542
+
1543
+ PENDING indicates creation/update in progress, ACTIVE means ready for operations, and ERRORED indicates a failure requiring attention.
1544
+
1545
+ :cloudformationAttribute: Status
1546
+ '''
1547
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
1548
+
1394
1549
  @builtins.property
1395
1550
  @jsii.member(jsii_name="cfnProperties")
1396
1551
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1397
1552
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1398
1553
 
1554
+ @builtins.property
1555
+ @jsii.member(jsii_name="connectorRef")
1556
+ def connector_ref(self) -> _ConnectorReference_32f54b47:
1557
+ '''A reference to a Connector resource.'''
1558
+ return typing.cast(_ConnectorReference_32f54b47, jsii.get(self, "connectorRef"))
1559
+
1399
1560
  @builtins.property
1400
1561
  @jsii.member(jsii_name="tags")
1401
1562
  def tags(self) -> _TagManager_0a598cb3:
@@ -1415,19 +1576,6 @@ class CfnConnector(
1415
1576
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1416
1577
  jsii.set(self, "accessRole", value) # pyright: ignore[reportArgumentType]
1417
1578
 
1418
- @builtins.property
1419
- @jsii.member(jsii_name="url")
1420
- def url(self) -> builtins.str:
1421
- '''The URL of the partner's AS2 or SFTP endpoint.'''
1422
- return typing.cast(builtins.str, jsii.get(self, "url"))
1423
-
1424
- @url.setter
1425
- def url(self, value: builtins.str) -> None:
1426
- if __debug__:
1427
- type_hints = typing.get_type_hints(_typecheckingstub__7f2f8d48aab925fcdb11fb86f8b12aeae11aa8b85048a7ded27a817b5864536d)
1428
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1429
- jsii.set(self, "url", value) # pyright: ignore[reportArgumentType]
1430
-
1431
1579
  @builtins.property
1432
1580
  @jsii.member(jsii_name="as2Config")
1433
1581
  def as2_config(self) -> typing.Any:
@@ -1441,6 +1589,37 @@ class CfnConnector(
1441
1589
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1442
1590
  jsii.set(self, "as2Config", value) # pyright: ignore[reportArgumentType]
1443
1591
 
1592
+ @builtins.property
1593
+ @jsii.member(jsii_name="egressConfig")
1594
+ def egress_config(
1595
+ self,
1596
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConnector.ConnectorEgressConfigProperty"]]:
1597
+ '''Current egress configuration of the connector, showing how traffic is routed to the SFTP server.'''
1598
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConnector.ConnectorEgressConfigProperty"]], jsii.get(self, "egressConfig"))
1599
+
1600
+ @egress_config.setter
1601
+ def egress_config(
1602
+ self,
1603
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnConnector.ConnectorEgressConfigProperty"]],
1604
+ ) -> None:
1605
+ if __debug__:
1606
+ type_hints = typing.get_type_hints(_typecheckingstub__55aea3d9a7ecfbca3e7720afc14e3094de156e071c5256ed2311a1836a9c6b83)
1607
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1608
+ jsii.set(self, "egressConfig", value) # pyright: ignore[reportArgumentType]
1609
+
1610
+ @builtins.property
1611
+ @jsii.member(jsii_name="egressType")
1612
+ def egress_type(self) -> typing.Optional[builtins.str]:
1613
+ '''Type of egress configuration for the connector.'''
1614
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "egressType"))
1615
+
1616
+ @egress_type.setter
1617
+ def egress_type(self, value: typing.Optional[builtins.str]) -> None:
1618
+ if __debug__:
1619
+ type_hints = typing.get_type_hints(_typecheckingstub__76cb18c9a86ea56efbf380e02f9b601550c701ceae1cc70d08ec7b3e6acf483f)
1620
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1621
+ jsii.set(self, "egressType", value) # pyright: ignore[reportArgumentType]
1622
+
1444
1623
  @builtins.property
1445
1624
  @jsii.member(jsii_name="loggingRole")
1446
1625
  def logging_role(self) -> typing.Optional[builtins.str]:
@@ -1498,6 +1677,19 @@ class CfnConnector(
1498
1677
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1499
1678
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
1500
1679
 
1680
+ @builtins.property
1681
+ @jsii.member(jsii_name="url")
1682
+ def url(self) -> typing.Optional[builtins.str]:
1683
+ '''The URL of the partner's AS2 or SFTP endpoint.'''
1684
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "url"))
1685
+
1686
+ @url.setter
1687
+ def url(self, value: typing.Optional[builtins.str]) -> None:
1688
+ if __debug__:
1689
+ type_hints = typing.get_type_hints(_typecheckingstub__7f2f8d48aab925fcdb11fb86f8b12aeae11aa8b85048a7ded27a817b5864536d)
1690
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1691
+ jsii.set(self, "url", value) # pyright: ignore[reportArgumentType]
1692
+
1501
1693
  @jsii.data_type(
1502
1694
  jsii_type="aws-cdk-lib.aws_transfer.CfnConnector.As2ConfigProperty",
1503
1695
  jsii_struct_bases=[],
@@ -1732,10 +1924,160 @@ class CfnConnector(
1732
1924
  k + "=" + repr(v) for k, v in self._values.items()
1733
1925
  )
1734
1926
 
1927
+ @jsii.data_type(
1928
+ jsii_type="aws-cdk-lib.aws_transfer.CfnConnector.ConnectorEgressConfigProperty",
1929
+ jsii_struct_bases=[],
1930
+ name_mapping={"vpc_lattice": "vpcLattice"},
1931
+ )
1932
+ class ConnectorEgressConfigProperty:
1933
+ def __init__(
1934
+ self,
1935
+ *,
1936
+ vpc_lattice: typing.Union[_IResolvable_da3f097b, typing.Union["CfnConnector.ConnectorVpcLatticeEgressConfigProperty", typing.Dict[builtins.str, typing.Any]]],
1937
+ ) -> None:
1938
+ '''Configuration structure that defines how traffic is routed from the connector to the SFTP server.
1939
+
1940
+ Contains VPC Lattice settings when using VPC_LATTICE egress type for private connectivity through customer VPCs.
1941
+
1942
+ :param vpc_lattice: VPC_LATTICE configuration for routing connector traffic through customer VPCs. Enables private connectivity to SFTP servers without requiring public internet access or complex network configurations.
1943
+
1944
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-connectoregressconfig.html
1945
+ :exampleMetadata: fixture=_generated
1946
+
1947
+ Example::
1948
+
1949
+ # The code below shows an example of how to instantiate this type.
1950
+ # The values are placeholders you should change.
1951
+ from aws_cdk import aws_transfer as transfer
1952
+
1953
+ connector_egress_config_property = transfer.CfnConnector.ConnectorEgressConfigProperty(
1954
+ vpc_lattice=transfer.CfnConnector.ConnectorVpcLatticeEgressConfigProperty(
1955
+ resource_configuration_arn="resourceConfigurationArn",
1956
+
1957
+ # the properties below are optional
1958
+ port_number=123
1959
+ )
1960
+ )
1961
+ '''
1962
+ if __debug__:
1963
+ type_hints = typing.get_type_hints(_typecheckingstub__3c92ac24e9baf6146c2fe287847ce0fba33a6a7c52ec7e38c13aebcf95a5687a)
1964
+ check_type(argname="argument vpc_lattice", value=vpc_lattice, expected_type=type_hints["vpc_lattice"])
1965
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1966
+ "vpc_lattice": vpc_lattice,
1967
+ }
1968
+
1969
+ @builtins.property
1970
+ def vpc_lattice(
1971
+ self,
1972
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnConnector.ConnectorVpcLatticeEgressConfigProperty"]:
1973
+ '''VPC_LATTICE configuration for routing connector traffic through customer VPCs.
1974
+
1975
+ Enables private connectivity to SFTP servers without requiring public internet access or complex network configurations.
1976
+
1977
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-connectoregressconfig.html#cfn-transfer-connector-connectoregressconfig-vpclattice
1978
+ '''
1979
+ result = self._values.get("vpc_lattice")
1980
+ assert result is not None, "Required property 'vpc_lattice' is missing"
1981
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnConnector.ConnectorVpcLatticeEgressConfigProperty"], result)
1982
+
1983
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1984
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1985
+
1986
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1987
+ return not (rhs == self)
1988
+
1989
+ def __repr__(self) -> str:
1990
+ return "ConnectorEgressConfigProperty(%s)" % ", ".join(
1991
+ k + "=" + repr(v) for k, v in self._values.items()
1992
+ )
1993
+
1994
+ @jsii.data_type(
1995
+ jsii_type="aws-cdk-lib.aws_transfer.CfnConnector.ConnectorVpcLatticeEgressConfigProperty",
1996
+ jsii_struct_bases=[],
1997
+ name_mapping={
1998
+ "resource_configuration_arn": "resourceConfigurationArn",
1999
+ "port_number": "portNumber",
2000
+ },
2001
+ )
2002
+ class ConnectorVpcLatticeEgressConfigProperty:
2003
+ def __init__(
2004
+ self,
2005
+ *,
2006
+ resource_configuration_arn: builtins.str,
2007
+ port_number: typing.Optional[jsii.Number] = None,
2008
+ ) -> None:
2009
+ '''VPC_LATTICE egress configuration that specifies the Resource Configuration ARN and port for connecting to SFTP servers through customer VPCs.
2010
+
2011
+ Requires a valid Resource Configuration with appropriate network access.
2012
+
2013
+ :param resource_configuration_arn: ARN of the VPC_LATTICE Resource Configuration that defines the target SFTP server location. Must point to a valid Resource Configuration in the customer's VPC with appropriate network connectivity to the SFTP server.
2014
+ :param port_number: Port number for connecting to the SFTP server through VPC_LATTICE. Defaults to 22 if not specified. Must match the port on which the target SFTP server is listening.
2015
+
2016
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-connectorvpclatticeegressconfig.html
2017
+ :exampleMetadata: fixture=_generated
2018
+
2019
+ Example::
2020
+
2021
+ # The code below shows an example of how to instantiate this type.
2022
+ # The values are placeholders you should change.
2023
+ from aws_cdk import aws_transfer as transfer
2024
+
2025
+ connector_vpc_lattice_egress_config_property = transfer.CfnConnector.ConnectorVpcLatticeEgressConfigProperty(
2026
+ resource_configuration_arn="resourceConfigurationArn",
2027
+
2028
+ # the properties below are optional
2029
+ port_number=123
2030
+ )
2031
+ '''
2032
+ if __debug__:
2033
+ type_hints = typing.get_type_hints(_typecheckingstub__53a48f28bdc82ead21fcc7f4a6cb2d63a8b7bb31c09769a4d8ab452c1da15927)
2034
+ check_type(argname="argument resource_configuration_arn", value=resource_configuration_arn, expected_type=type_hints["resource_configuration_arn"])
2035
+ check_type(argname="argument port_number", value=port_number, expected_type=type_hints["port_number"])
2036
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2037
+ "resource_configuration_arn": resource_configuration_arn,
2038
+ }
2039
+ if port_number is not None:
2040
+ self._values["port_number"] = port_number
2041
+
2042
+ @builtins.property
2043
+ def resource_configuration_arn(self) -> builtins.str:
2044
+ '''ARN of the VPC_LATTICE Resource Configuration that defines the target SFTP server location.
2045
+
2046
+ Must point to a valid Resource Configuration in the customer's VPC with appropriate network connectivity to the SFTP server.
2047
+
2048
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-connectorvpclatticeegressconfig.html#cfn-transfer-connector-connectorvpclatticeegressconfig-resourceconfigurationarn
2049
+ '''
2050
+ result = self._values.get("resource_configuration_arn")
2051
+ assert result is not None, "Required property 'resource_configuration_arn' is missing"
2052
+ return typing.cast(builtins.str, result)
2053
+
2054
+ @builtins.property
2055
+ def port_number(self) -> typing.Optional[jsii.Number]:
2056
+ '''Port number for connecting to the SFTP server through VPC_LATTICE.
2057
+
2058
+ Defaults to 22 if not specified. Must match the port on which the target SFTP server is listening.
2059
+
2060
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-connectorvpclatticeegressconfig.html#cfn-transfer-connector-connectorvpclatticeegressconfig-portnumber
2061
+ '''
2062
+ result = self._values.get("port_number")
2063
+ return typing.cast(typing.Optional[jsii.Number], result)
2064
+
2065
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2066
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2067
+
2068
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2069
+ return not (rhs == self)
2070
+
2071
+ def __repr__(self) -> str:
2072
+ return "ConnectorVpcLatticeEgressConfigProperty(%s)" % ", ".join(
2073
+ k + "=" + repr(v) for k, v in self._values.items()
2074
+ )
2075
+
1735
2076
  @jsii.data_type(
1736
2077
  jsii_type="aws-cdk-lib.aws_transfer.CfnConnector.SftpConfigProperty",
1737
2078
  jsii_struct_bases=[],
1738
2079
  name_mapping={
2080
+ "max_concurrent_connections": "maxConcurrentConnections",
1739
2081
  "trusted_host_keys": "trustedHostKeys",
1740
2082
  "user_secret_id": "userSecretId",
1741
2083
  },
@@ -1744,12 +2086,14 @@ class CfnConnector(
1744
2086
  def __init__(
1745
2087
  self,
1746
2088
  *,
2089
+ max_concurrent_connections: typing.Optional[jsii.Number] = None,
1747
2090
  trusted_host_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
1748
2091
  user_secret_id: typing.Optional[builtins.str] = None,
1749
2092
  ) -> None:
1750
2093
  '''A structure that contains the parameters for an SFTP connector object.
1751
2094
 
1752
- :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.
2095
+ :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
2096
+ :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>``
1753
2097
  :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
1754
2098
 
1755
2099
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-sftpconfig.html
@@ -1762,20 +2106,42 @@ class CfnConnector(
1762
2106
  from aws_cdk import aws_transfer as transfer
1763
2107
 
1764
2108
  sftp_config_property = transfer.CfnConnector.SftpConfigProperty(
2109
+ max_concurrent_connections=123,
1765
2110
  trusted_host_keys=["trustedHostKeys"],
1766
2111
  user_secret_id="userSecretId"
1767
2112
  )
1768
2113
  '''
1769
2114
  if __debug__:
1770
2115
  type_hints = typing.get_type_hints(_typecheckingstub__f4f8d4be2ad63a06a458c41605c9c21318e1d9117d48f21b9ee2ea6bb109d2e8)
2116
+ check_type(argname="argument max_concurrent_connections", value=max_concurrent_connections, expected_type=type_hints["max_concurrent_connections"])
1771
2117
  check_type(argname="argument trusted_host_keys", value=trusted_host_keys, expected_type=type_hints["trusted_host_keys"])
1772
2118
  check_type(argname="argument user_secret_id", value=user_secret_id, expected_type=type_hints["user_secret_id"])
1773
2119
  self._values: typing.Dict[builtins.str, typing.Any] = {}
2120
+ if max_concurrent_connections is not None:
2121
+ self._values["max_concurrent_connections"] = max_concurrent_connections
1774
2122
  if trusted_host_keys is not None:
1775
2123
  self._values["trusted_host_keys"] = trusted_host_keys
1776
2124
  if user_secret_id is not None:
1777
2125
  self._values["user_secret_id"] = user_secret_id
1778
2126
 
2127
+ @builtins.property
2128
+ def max_concurrent_connections(self) -> typing.Optional[jsii.Number]:
2129
+ '''Specify the number of concurrent connections that your connector creates to the remote server.
2130
+
2131
+ The default value is ``1`` . The maximum values is ``5`` .
2132
+ .. epigraph::
2133
+
2134
+ If you are using the AWS Management Console , the default value is ``5`` .
2135
+
2136
+ 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.
2137
+
2138
+ :default: - 1
2139
+
2140
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-sftpconfig.html#cfn-transfer-connector-sftpconfig-maxconcurrentconnections
2141
+ '''
2142
+ result = self._values.get("max_concurrent_connections")
2143
+ return typing.cast(typing.Optional[jsii.Number], result)
2144
+
1779
2145
  @builtins.property
1780
2146
  def trusted_host_keys(self) -> typing.Optional[typing.List[builtins.str]]:
1781
2147
  '''The public portion of the host key, or keys, that are used to identify the external server to which you are connecting.
@@ -1785,6 +2151,8 @@ class CfnConnector(
1785
2151
 
1786
2152
  ``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.
1787
2153
 
2154
+ 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>``
2155
+
1788
2156
  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.
1789
2157
 
1790
2158
  For the trusted host key, AWS Transfer Family accepts RSA and ECDSA keys.
@@ -1798,10 +2166,12 @@ class CfnConnector(
1798
2166
 
1799
2167
  This prints the public host key to standard output.
1800
2168
 
1801
- ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key``
2169
+ ``ftp.host.com ssh-rsa AAAAB3Nza...<long-string-for-public-key>``
1802
2170
 
1803
2171
  Copy and paste this string into the ``TrustedHostKeys`` field for the ``create-connector`` command or into the *Trusted host keys* field in the console.
1804
2172
 
2173
+ 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>``
2174
+
1805
2175
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-connector-sftpconfig.html#cfn-transfer-connector-sftpconfig-trustedhostkeys
1806
2176
  '''
1807
2177
  result = self._values.get("trusted_host_keys")
@@ -1839,12 +2209,14 @@ class CfnConnector(
1839
2209
  jsii_struct_bases=[],
1840
2210
  name_mapping={
1841
2211
  "access_role": "accessRole",
1842
- "url": "url",
1843
2212
  "as2_config": "as2Config",
2213
+ "egress_config": "egressConfig",
2214
+ "egress_type": "egressType",
1844
2215
  "logging_role": "loggingRole",
1845
2216
  "security_policy_name": "securityPolicyName",
1846
2217
  "sftp_config": "sftpConfig",
1847
2218
  "tags": "tags",
2219
+ "url": "url",
1848
2220
  },
1849
2221
  )
1850
2222
  class CfnConnectorProps:
@@ -1852,22 +2224,26 @@ class CfnConnectorProps:
1852
2224
  self,
1853
2225
  *,
1854
2226
  access_role: builtins.str,
1855
- url: builtins.str,
1856
2227
  as2_config: typing.Any = None,
2228
+ egress_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.ConnectorEgressConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2229
+ egress_type: typing.Optional[builtins.str] = None,
1857
2230
  logging_role: typing.Optional[builtins.str] = None,
1858
2231
  security_policy_name: typing.Optional[builtins.str] = None,
1859
2232
  sftp_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.SftpConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
1860
2233
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2234
+ url: typing.Optional[builtins.str] = None,
1861
2235
  ) -> None:
1862
2236
  '''Properties for defining a ``CfnConnector``.
1863
2237
 
1864
2238
  :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 .
1865
- :param url: The URL of the partner's AS2 or SFTP endpoint.
1866
2239
  :param as2_config: A structure that contains the parameters for an AS2 connector object.
2240
+ :param egress_config: Current egress configuration of the connector, showing how traffic is routed to the SFTP server. Contains VPC Lattice settings when using VPC_LATTICE egress type. When using the VPC_LATTICE egress type, AWS Transfer Family uses a managed Service Network to simplify the resource sharing process.
2241
+ :param egress_type: Type of egress configuration for the connector. SERVICE_MANAGED uses Transfer Family managed NAT gateways, while VPC_LATTICE routes traffic through customer VPCs using VPC Lattice.
1867
2242
  :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.
1868
2243
  :param security_policy_name: The text name of the security policy for the specified connector.
1869
2244
  :param sftp_config: A structure that contains the parameters for an SFTP connector object.
1870
2245
  :param tags: Key-value pairs that can be used to group and search for connectors.
2246
+ :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.
1871
2247
 
1872
2248
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html
1873
2249
  :exampleMetadata: fixture=_generated
@@ -1882,37 +2258,52 @@ class CfnConnectorProps:
1882
2258
 
1883
2259
  cfn_connector_props = transfer.CfnConnectorProps(
1884
2260
  access_role="accessRole",
1885
- url="url",
1886
2261
 
1887
2262
  # the properties below are optional
1888
2263
  as2_config=as2_config,
2264
+ egress_config=transfer.CfnConnector.ConnectorEgressConfigProperty(
2265
+ vpc_lattice=transfer.CfnConnector.ConnectorVpcLatticeEgressConfigProperty(
2266
+ resource_configuration_arn="resourceConfigurationArn",
2267
+
2268
+ # the properties below are optional
2269
+ port_number=123
2270
+ )
2271
+ ),
2272
+ egress_type="egressType",
1889
2273
  logging_role="loggingRole",
1890
2274
  security_policy_name="securityPolicyName",
1891
2275
  sftp_config=transfer.CfnConnector.SftpConfigProperty(
2276
+ max_concurrent_connections=123,
1892
2277
  trusted_host_keys=["trustedHostKeys"],
1893
2278
  user_secret_id="userSecretId"
1894
2279
  ),
1895
2280
  tags=[CfnTag(
1896
2281
  key="key",
1897
2282
  value="value"
1898
- )]
2283
+ )],
2284
+ url="url"
1899
2285
  )
1900
2286
  '''
1901
2287
  if __debug__:
1902
2288
  type_hints = typing.get_type_hints(_typecheckingstub__7675f9dcded8f51977cf70f499821100319fe5d62996cb917457f772cfcc9a2e)
1903
2289
  check_type(argname="argument access_role", value=access_role, expected_type=type_hints["access_role"])
1904
- check_type(argname="argument url", value=url, expected_type=type_hints["url"])
1905
2290
  check_type(argname="argument as2_config", value=as2_config, expected_type=type_hints["as2_config"])
2291
+ check_type(argname="argument egress_config", value=egress_config, expected_type=type_hints["egress_config"])
2292
+ check_type(argname="argument egress_type", value=egress_type, expected_type=type_hints["egress_type"])
1906
2293
  check_type(argname="argument logging_role", value=logging_role, expected_type=type_hints["logging_role"])
1907
2294
  check_type(argname="argument security_policy_name", value=security_policy_name, expected_type=type_hints["security_policy_name"])
1908
2295
  check_type(argname="argument sftp_config", value=sftp_config, expected_type=type_hints["sftp_config"])
1909
2296
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2297
+ check_type(argname="argument url", value=url, expected_type=type_hints["url"])
1910
2298
  self._values: typing.Dict[builtins.str, typing.Any] = {
1911
2299
  "access_role": access_role,
1912
- "url": url,
1913
2300
  }
1914
2301
  if as2_config is not None:
1915
2302
  self._values["as2_config"] = as2_config
2303
+ if egress_config is not None:
2304
+ self._values["egress_config"] = egress_config
2305
+ if egress_type is not None:
2306
+ self._values["egress_type"] = egress_type
1916
2307
  if logging_role is not None:
1917
2308
  self._values["logging_role"] = logging_role
1918
2309
  if security_policy_name is not None:
@@ -1921,6 +2312,8 @@ class CfnConnectorProps:
1921
2312
  self._values["sftp_config"] = sftp_config
1922
2313
  if tags is not None:
1923
2314
  self._values["tags"] = tags
2315
+ if url is not None:
2316
+ self._values["url"] = url
1924
2317
 
1925
2318
  @builtins.property
1926
2319
  def access_role(self) -> builtins.str:
@@ -1944,16 +2337,6 @@ class CfnConnectorProps:
1944
2337
  assert result is not None, "Required property 'access_role' is missing"
1945
2338
  return typing.cast(builtins.str, result)
1946
2339
 
1947
- @builtins.property
1948
- def url(self) -> builtins.str:
1949
- '''The URL of the partner's AS2 or SFTP endpoint.
1950
-
1951
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html#cfn-transfer-connector-url
1952
- '''
1953
- result = self._values.get("url")
1954
- assert result is not None, "Required property 'url' is missing"
1955
- return typing.cast(builtins.str, result)
1956
-
1957
2340
  @builtins.property
1958
2341
  def as2_config(self) -> typing.Any:
1959
2342
  '''A structure that contains the parameters for an AS2 connector object.
@@ -1963,6 +2346,32 @@ class CfnConnectorProps:
1963
2346
  result = self._values.get("as2_config")
1964
2347
  return typing.cast(typing.Any, result)
1965
2348
 
2349
+ @builtins.property
2350
+ def egress_config(
2351
+ self,
2352
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnConnector.ConnectorEgressConfigProperty]]:
2353
+ '''Current egress configuration of the connector, showing how traffic is routed to the SFTP server.
2354
+
2355
+ Contains VPC Lattice settings when using VPC_LATTICE egress type.
2356
+
2357
+ When using the VPC_LATTICE egress type, AWS Transfer Family uses a managed Service Network to simplify the resource sharing process.
2358
+
2359
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html#cfn-transfer-connector-egressconfig
2360
+ '''
2361
+ result = self._values.get("egress_config")
2362
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnConnector.ConnectorEgressConfigProperty]], result)
2363
+
2364
+ @builtins.property
2365
+ def egress_type(self) -> typing.Optional[builtins.str]:
2366
+ '''Type of egress configuration for the connector.
2367
+
2368
+ SERVICE_MANAGED uses Transfer Family managed NAT gateways, while VPC_LATTICE routes traffic through customer VPCs using VPC Lattice.
2369
+
2370
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html#cfn-transfer-connector-egresstype
2371
+ '''
2372
+ result = self._values.get("egress_type")
2373
+ return typing.cast(typing.Optional[builtins.str], result)
2374
+
1966
2375
  @builtins.property
1967
2376
  def logging_role(self) -> typing.Optional[builtins.str]:
1968
2377
  '''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.
@@ -2003,6 +2412,17 @@ class CfnConnectorProps:
2003
2412
  result = self._values.get("tags")
2004
2413
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2005
2414
 
2415
+ @builtins.property
2416
+ def url(self) -> typing.Optional[builtins.str]:
2417
+ '''The URL of the partner's AS2 or SFTP endpoint.
2418
+
2419
+ 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.
2420
+
2421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-connector.html#cfn-transfer-connector-url
2422
+ '''
2423
+ result = self._values.get("url")
2424
+ return typing.cast(typing.Optional[builtins.str], result)
2425
+
2006
2426
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2007
2427
  return isinstance(rhs, self.__class__) and rhs._values == self._values
2008
2428
 
@@ -2015,7 +2435,7 @@ class CfnConnectorProps:
2015
2435
  )
2016
2436
 
2017
2437
 
2018
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
2438
+ @jsii.implements(_IInspectable_c2943556, _IProfileRef_fed8deac, _ITaggable_36806126)
2019
2439
  class CfnProfile(
2020
2440
  _CfnResource_9df397a6,
2021
2441
  metaclass=jsii.JSIIMeta,
@@ -2056,7 +2476,8 @@ class CfnProfile(
2056
2476
  certificate_ids: typing.Optional[typing.Sequence[builtins.str]] = None,
2057
2477
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2058
2478
  ) -> None:
2059
- '''
2479
+ '''Create a new ``AWS::Transfer::Profile``.
2480
+
2060
2481
  :param scope: Scope in which this resource is defined.
2061
2482
  :param id: Construct identifier for this resource (unique in its scope).
2062
2483
  :param as2_id: The ``As2Id`` is the *AS2-name* , as defined in the `RFC 4130 <https://docs.aws.amazon.com/https://datatracker.ietf.org/doc/html/rfc4130>`_ . For inbound transfers, this is the ``AS2-From`` header for the AS2 messages sent from the partner. For outbound connectors, this is the ``AS2-To`` header for the AS2 messages sent to the partner using the ``StartFileTransfer`` API operation. This ID cannot include spaces.
@@ -2077,6 +2498,48 @@ class CfnProfile(
2077
2498
 
2078
2499
  jsii.create(self.__class__, self, [scope, id, props])
2079
2500
 
2501
+ @jsii.member(jsii_name="fromProfileArn")
2502
+ @builtins.classmethod
2503
+ def from_profile_arn(
2504
+ cls,
2505
+ scope: _constructs_77d1e7e8.Construct,
2506
+ id: builtins.str,
2507
+ arn: builtins.str,
2508
+ ) -> _IProfileRef_fed8deac:
2509
+ '''Creates a new IProfileRef from an ARN.
2510
+
2511
+ :param scope: -
2512
+ :param id: -
2513
+ :param arn: -
2514
+ '''
2515
+ if __debug__:
2516
+ type_hints = typing.get_type_hints(_typecheckingstub__06008f4a63def34bd89f1208264539fe9dfb8dc17a9fd244d185273546799142)
2517
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2518
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2519
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
2520
+ return typing.cast(_IProfileRef_fed8deac, jsii.sinvoke(cls, "fromProfileArn", [scope, id, arn]))
2521
+
2522
+ @jsii.member(jsii_name="fromProfileId")
2523
+ @builtins.classmethod
2524
+ def from_profile_id(
2525
+ cls,
2526
+ scope: _constructs_77d1e7e8.Construct,
2527
+ id: builtins.str,
2528
+ profile_id: builtins.str,
2529
+ ) -> _IProfileRef_fed8deac:
2530
+ '''Creates a new IProfileRef from a profileId.
2531
+
2532
+ :param scope: -
2533
+ :param id: -
2534
+ :param profile_id: -
2535
+ '''
2536
+ if __debug__:
2537
+ type_hints = typing.get_type_hints(_typecheckingstub__feb8675e38aa0953f2ede297f189ff49cd5a30c0b0176aac11fd742a2fda9b49)
2538
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2539
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2540
+ check_type(argname="argument profile_id", value=profile_id, expected_type=type_hints["profile_id"])
2541
+ return typing.cast(_IProfileRef_fed8deac, jsii.sinvoke(cls, "fromProfileId", [scope, id, profile_id]))
2542
+
2080
2543
  @jsii.member(jsii_name="inspect")
2081
2544
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
2082
2545
  '''Examines the CloudFormation resource and discloses attributes.
@@ -2130,6 +2593,12 @@ class CfnProfile(
2130
2593
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2131
2594
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2132
2595
 
2596
+ @builtins.property
2597
+ @jsii.member(jsii_name="profileRef")
2598
+ def profile_ref(self) -> _ProfileReference_0268b426:
2599
+ '''A reference to a Profile resource.'''
2600
+ return typing.cast(_ProfileReference_0268b426, jsii.get(self, "profileRef"))
2601
+
2133
2602
  @builtins.property
2134
2603
  @jsii.member(jsii_name="tags")
2135
2604
  def tags(self) -> _TagManager_0a598cb3:
@@ -2308,7 +2777,7 @@ class CfnProfileProps:
2308
2777
  )
2309
2778
 
2310
2779
 
2311
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
2780
+ @jsii.implements(_IInspectable_c2943556, _IServerRef_6fa6fa22, _ITaggable_36806126)
2312
2781
  class CfnServer(
2313
2782
  _CfnResource_9df397a6,
2314
2783
  metaclass=jsii.JSIIMeta,
@@ -2347,6 +2816,7 @@ class CfnServer(
2347
2816
  url="url"
2348
2817
  ),
2349
2818
  identity_provider_type="identityProviderType",
2819
+ ip_address_type="ipAddressType",
2350
2820
  logging_role="loggingRole",
2351
2821
  post_authentication_login_banner="postAuthenticationLoginBanner",
2352
2822
  pre_authentication_login_banner="preAuthenticationLoginBanner",
@@ -2390,6 +2860,7 @@ class CfnServer(
2390
2860
  endpoint_type: typing.Optional[builtins.str] = None,
2391
2861
  identity_provider_details: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServer.IdentityProviderDetailsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2392
2862
  identity_provider_type: typing.Optional[builtins.str] = None,
2863
+ ip_address_type: typing.Optional[builtins.str] = None,
2393
2864
  logging_role: typing.Optional[builtins.str] = None,
2394
2865
  post_authentication_login_banner: typing.Optional[builtins.str] = None,
2395
2866
  pre_authentication_login_banner: typing.Optional[builtins.str] = None,
@@ -2401,21 +2872,23 @@ class CfnServer(
2401
2872
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2402
2873
  workflow_details: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnServer.WorkflowDetailsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2403
2874
  ) -> None:
2404
- '''
2875
+ '''Create a new ``AWS::Transfer::Server``.
2876
+
2405
2877
  :param scope: Scope in which this resource is defined.
2406
2878
  :param id: Construct identifier for this resource (unique in its scope).
2407
- :param certificate: The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. Required when ``Protocols`` is set to ``FTPS`` . To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *AWS Certificate Manager User Guide* . To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *AWS Certificate Manager User Guide* . To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *AWS Certificate Manager User Guide* . Certificates with the following cryptographic algorithms and key sizes are supported: - 2048-bit RSA (RSA_2048) - 4096-bit RSA (RSA_4096) - Elliptic Prime Curve 256 bit (EC_prime256v1) - Elliptic Prime Curve 384 bit (EC_secp384r1) - Elliptic Prime Curve 521 bit (EC_secp521r1) .. epigraph:: The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
2879
+ :param certificate: The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required when ``Protocols`` is set to ``FTPS`` . To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *Certificate Manager User Guide* . To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *Certificate Manager User Guide* . To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *Certificate Manager User Guide* . Certificates with the following cryptographic algorithms and key sizes are supported: - 2048-bit RSA (RSA_2048) - 4096-bit RSA (RSA_4096) - Elliptic Prime Curve 256 bit (EC_prime256v1) - Elliptic Prime Curve 384 bit (EC_secp384r1) - Elliptic Prime Curve 521 bit (EC_secp521r1) .. epigraph:: The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
2408
2880
  :param domain: Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
2409
2881
  :param endpoint_details: The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.
2410
2882
  :param endpoint_type: The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it. .. epigraph:: After May 19, 2021, you won't be able to create a server using ``EndpointType=VPC_ENDPOINT`` in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with ``EndpointType=VPC_ENDPOINT`` in your AWS account on or before May 19, 2021, you will not be affected. After this date, use ``EndpointType`` = ``VPC`` . For more information, see `Discontinuing the use of VPC_ENDPOINT <https://docs.aws.amazon.com//transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint>`_ . It is recommended that you use ``VPC`` as the ``EndpointType`` . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with ``EndpointType`` set to ``VPC_ENDPOINT`` .
2411
2883
  :param identity_provider_details: Required when ``IdentityProviderType`` is set to ``AWS_DIRECTORY_SERVICE`` , ``AWS _LAMBDA`` or ``API_GATEWAY`` . Accepts an array containing all of the information required to use a directory in ``AWS_DIRECTORY_SERVICE`` or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when ``IdentityProviderType`` is set to ``SERVICE_MANAGED`` .
2412
2884
  :param identity_provider_type: The mode of authentication for a server. The default value is ``SERVICE_MANAGED`` , which allows you to store and access user credentials within the AWS Transfer Family service. Use ``AWS_DIRECTORY_SERVICE`` to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS using AD Connector. This option also requires you to provide a Directory ID by using the ``IdentityProviderDetails`` parameter. Use the ``API_GATEWAY`` value to integrate with an identity provider of your choosing. The ``API_GATEWAY`` setting requires you to provide an Amazon API Gateway endpoint URL to call for authentication by using the ``IdentityProviderDetails`` parameter. Use the ``AWS_LAMBDA`` value to directly use an AWS Lambda function as your identity provider. If you choose this value, you must specify the ARN for the Lambda function in the ``Function`` parameter for the ``IdentityProviderDetails`` data type.
2885
+ :param ip_address_type: Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your AWS Transfer Family endpoint. The default value is ``IPV4`` . .. epigraph:: The ``IpAddressType`` parameter has the following limitations: - It cannot be changed while the server is online. You must stop the server before modifying this parameter. - It cannot be updated to ``DUALSTACK`` if the server has ``AddressAllocationIds`` specified. > When using ``DUALSTACK`` as the ``IpAddressType`` , you cannot set the ``AddressAllocationIds`` parameter for the `EndpointDetails <https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html>`_ for the server.
2413
2886
  :param logging_role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, you can view user activity in your CloudWatch logs.
2414
2887
  :param post_authentication_login_banner: Specifies a string to display when users connect to a server. This string is displayed after the user authenticates. .. epigraph:: The SFTP protocol does not support post-authentication display banners.
2415
2888
  :param pre_authentication_login_banner: Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system: ``This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.``
2416
2889
  :param protocol_details: The protocol settings that are configured for your server. - 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. - 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. - To determine whether your AWS Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the ``TlsSessionResumptionMode`` parameter. - ``As2Transports`` indicates the transport method for the AS2 messages. Currently, only HTTP is supported. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
2417
- :param protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: - ``SFTP`` (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH - ``FTPS`` (File Transfer Protocol Secure): File transfer with TLS encryption - ``FTP`` (File Transfer Protocol): Unencrypted file transfer - ``AS2`` (Applicability Statement 2): used for transporting structured business-to-business data .. epigraph:: - If you select ``FTPS`` , you must choose a certificate stored in AWS Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS. - If ``Protocol`` includes either ``FTP`` or ``FTPS`` , then the ``EndpointType`` must be ``VPC`` and the ``IdentityProviderType`` must be either ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``FTP`` , then ``AddressAllocationIds`` cannot be associated. - If ``Protocol`` is set only to ``SFTP`` , the ``EndpointType`` can be set to ``PUBLIC`` and the ``IdentityProviderType`` can be set any of the supported identity types: ``SERVICE_MANAGED`` , ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``AS2`` , then the ``EndpointType`` must be ``VPC`` , and domain must be Amazon S3. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
2418
- :param s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
2890
+ :param protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: - ``SFTP`` (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH - ``FTPS`` (File Transfer Protocol Secure): File transfer with TLS encryption - ``FTP`` (File Transfer Protocol): Unencrypted file transfer - ``AS2`` (Applicability Statement 2): used for transporting structured business-to-business data .. epigraph:: - If you select ``FTPS`` , you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS. - If ``Protocol`` includes either ``FTP`` or ``FTPS`` , then the ``EndpointType`` must be ``VPC`` and the ``IdentityProviderType`` must be either ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``FTP`` , then ``AddressAllocationIds`` cannot be associated. - If ``Protocol`` is set only to ``SFTP`` , the ``EndpointType`` can be set to ``PUBLIC`` and the ``IdentityProviderType`` can be set any of the supported identity types: ``SERVICE_MANAGED`` , ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``AS2`` , then the ``EndpointType`` must be ``VPC`` , and domain must be Amazon S3. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
2891
+ :param s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. - If using the console, this is enabled by default. - If using the API or CLI, this is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
2419
2892
  :param security_policy_name: Specifies the name of the security policy for the server.
2420
2893
  :param structured_log_destinations: Specifies the log groups to which your server logs are sent. To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows: ``arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*`` For example, ``arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*`` If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an ``update-server`` call. For example: ``update-server --server-id s-1234567890abcdef0 --structured-log-destinations``
2421
2894
  :param tags: Key-value pairs that can be used to group and search for servers.
@@ -2432,6 +2905,7 @@ class CfnServer(
2432
2905
  endpoint_type=endpoint_type,
2433
2906
  identity_provider_details=identity_provider_details,
2434
2907
  identity_provider_type=identity_provider_type,
2908
+ ip_address_type=ip_address_type,
2435
2909
  logging_role=logging_role,
2436
2910
  post_authentication_login_banner=post_authentication_login_banner,
2437
2911
  pre_authentication_login_banner=pre_authentication_login_banner,
@@ -2525,6 +2999,12 @@ class CfnServer(
2525
2999
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2526
3000
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2527
3001
 
3002
+ @builtins.property
3003
+ @jsii.member(jsii_name="serverRef")
3004
+ def server_ref(self) -> _ServerReference_ef7b9b24:
3005
+ '''A reference to a Server resource.'''
3006
+ return typing.cast(_ServerReference_ef7b9b24, jsii.get(self, "serverRef"))
3007
+
2528
3008
  @builtins.property
2529
3009
  @jsii.member(jsii_name="tags")
2530
3010
  def tags(self) -> _TagManager_0a598cb3:
@@ -2534,7 +3014,10 @@ class CfnServer(
2534
3014
  @builtins.property
2535
3015
  @jsii.member(jsii_name="certificate")
2536
3016
  def certificate(self) -> typing.Optional[builtins.str]:
2537
- '''The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate.'''
3017
+ '''The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate.
3018
+
3019
+ Required when ``Protocols`` is set to ``FTPS`` .
3020
+ '''
2538
3021
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "certificate"))
2539
3022
 
2540
3023
  @certificate.setter
@@ -2619,6 +3102,19 @@ class CfnServer(
2619
3102
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2620
3103
  jsii.set(self, "identityProviderType", value) # pyright: ignore[reportArgumentType]
2621
3104
 
3105
+ @builtins.property
3106
+ @jsii.member(jsii_name="ipAddressType")
3107
+ def ip_address_type(self) -> typing.Optional[builtins.str]:
3108
+ '''Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your AWS Transfer Family endpoint.'''
3109
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ipAddressType"))
3110
+
3111
+ @ip_address_type.setter
3112
+ def ip_address_type(self, value: typing.Optional[builtins.str]) -> None:
3113
+ if __debug__:
3114
+ type_hints = typing.get_type_hints(_typecheckingstub__8cfe7d7f7218e63daf2394f025140f03c85b4b448857853b83b58f4e59a3eee0)
3115
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3116
+ jsii.set(self, "ipAddressType", value) # pyright: ignore[reportArgumentType]
3117
+
2622
3118
  @builtins.property
2623
3119
  @jsii.member(jsii_name="loggingRole")
2624
3120
  def logging_role(self) -> typing.Optional[builtins.str]:
@@ -2703,10 +3199,7 @@ class CfnServer(
2703
3199
  def s3_storage_options(
2704
3200
  self,
2705
3201
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServer.S3StorageOptionsProperty"]]:
2706
- '''Specifies whether or not performance for your Amazon S3 directories is optimized.
2707
-
2708
- This is disabled by default.
2709
- '''
3202
+ '''Specifies whether or not performance for your Amazon S3 directories is optimized.'''
2710
3203
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnServer.S3StorageOptionsProperty"]], jsii.get(self, "s3StorageOptions"))
2711
3204
 
2712
3205
  @s3_storage_options.setter
@@ -2804,8 +3297,8 @@ class CfnServer(
2804
3297
 
2805
3298
  When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.
2806
3299
 
2807
- :param address_allocation_ids: A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the ``allocationId`` field from the Amazon EC2 `Address <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Address.html>`_ data type. One way to retrieve this value is by calling the EC2 `DescribeAddresses <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html>`_ API. This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see `Create an internet-facing endpoint for your server <https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint>`_ . .. epigraph:: This property can only be set as follows: - ``EndpointType`` must be set to ``VPC`` - The Transfer Family server must be offline. - You cannot set this parameter for Transfer Family servers that use the FTP protocol. - The server must already have ``SubnetIds`` populated ( ``SubnetIds`` and ``AddressAllocationIds`` cannot be updated simultaneously). - ``AddressAllocationIds`` can't contain duplicates, and must be equal in length to ``SubnetIds`` . For example, if you have three subnet IDs, you must also specify three address allocation IDs. - Call the ``UpdateServer`` API to set or change this parameter.
2808
- :param security_group_ids: A list of security groups IDs that are available to attach to your server's endpoint. .. epigraph:: This property can only be set when ``EndpointType`` is set to ``VPC`` . You can edit the ``SecurityGroupIds`` property in the `UpdateServer <https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html>`_ API only if you are changing the ``EndpointType`` from ``PUBLIC`` or ``VPC_ENDPOINT`` to ``VPC`` . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 `ModifyVpcEndpoint <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html>`_ API.
3300
+ :param address_allocation_ids: A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint. An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the ``allocationId`` field from the Amazon EC2 `Address <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Address.html>`_ data type. One way to retrieve this value is by calling the EC2 `DescribeAddresses <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html>`_ API. This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see `Create an internet-facing endpoint for your server <https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint>`_ . .. epigraph:: This property can only be set as follows: - ``EndpointType`` must be set to ``VPC`` - The Transfer Family server must be offline. - You cannot set this parameter for Transfer Family servers that use the FTP protocol. - The server must already have ``SubnetIds`` populated ( ``SubnetIds`` and ``AddressAllocationIds`` cannot be updated simultaneously). - ``AddressAllocationIds`` can't contain duplicates, and must be equal in length to ``SubnetIds`` . For example, if you have three subnet IDs, you must also specify three address allocation IDs. - Call the ``UpdateServer`` API to set or change this parameter. - You can't set address allocation IDs for servers that have an ``IpAddressType`` set to ``DUALSTACK`` You can only set this property if ``IpAddressType`` is set to ``IPV4`` .
3301
+ :param security_group_ids: A list of security groups IDs that are available to attach to your server's endpoint. .. epigraph:: While ``SecurityGroupIds`` appears in the response syntax for consistency with ``CreateServer`` and ``UpdateServer`` operations, this field is not populated in ``DescribeServer`` responses. Security groups are managed at the VPC endpoint level and can be modified outside of the Transfer Family service. To retrieve current security group information, use the EC2 ``DescribeVpcEndpoints`` API with the ``VpcEndpointId`` returned in the response. This property can only be set when ``EndpointType`` is set to ``VPC`` . You can edit the ``SecurityGroupIds`` property in the `UpdateServer <https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html>`_ API only if you are changing the ``EndpointType`` from ``PUBLIC`` or ``VPC_ENDPOINT`` to ``VPC`` . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 `ModifyVpcEndpoint <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html>`_ API.
2809
3302
  :param subnet_ids: A list of subnet IDs that are required to host your server endpoint in your VPC. .. epigraph:: This property can only be set when ``EndpointType`` is set to ``VPC`` .
2810
3303
  :param vpc_endpoint_id: The ID of the VPC endpoint. .. epigraph:: This property can only be set when ``EndpointType`` is set to ``VPC_ENDPOINT`` .
2811
3304
  :param vpc_id: The VPC ID of the virtual private cloud in which the server's endpoint will be hosted. .. epigraph:: This property can only be set when ``EndpointType`` is set to ``VPC`` .
@@ -2863,6 +3356,7 @@ class CfnServer(
2863
3356
  - The server must already have ``SubnetIds`` populated ( ``SubnetIds`` and ``AddressAllocationIds`` cannot be updated simultaneously).
2864
3357
  - ``AddressAllocationIds`` can't contain duplicates, and must be equal in length to ``SubnetIds`` . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
2865
3358
  - Call the ``UpdateServer`` API to set or change this parameter.
3359
+ - You can't set address allocation IDs for servers that have an ``IpAddressType`` set to ``DUALSTACK`` You can only set this property if ``IpAddressType`` is set to ``IPV4`` .
2866
3360
 
2867
3361
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html#cfn-transfer-server-endpointdetails-addressallocationids
2868
3362
  '''
@@ -2875,6 +3369,8 @@ class CfnServer(
2875
3369
 
2876
3370
  .. epigraph::
2877
3371
 
3372
+ While ``SecurityGroupIds`` appears in the response syntax for consistency with ``CreateServer`` and ``UpdateServer`` operations, this field is not populated in ``DescribeServer`` responses. Security groups are managed at the VPC endpoint level and can be modified outside of the Transfer Family service. To retrieve current security group information, use the EC2 ``DescribeVpcEndpoints`` API with the ``VpcEndpointId`` returned in the response.
3373
+
2878
3374
  This property can only be set when ``EndpointType`` is set to ``VPC`` .
2879
3375
 
2880
3376
  You can edit the ``SecurityGroupIds`` property in the `UpdateServer <https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html>`_ API only if you are changing the ``EndpointType`` from ``PUBLIC`` or ``VPC_ENDPOINT`` to ``VPC`` . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 `ModifyVpcEndpoint <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html>`_ API.
@@ -3085,13 +3581,17 @@ class CfnServer(
3085
3581
  ) -> None:
3086
3582
  '''The protocol settings that are configured for your server.
3087
3583
 
3584
+ .. epigraph::
3585
+
3586
+ 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>`_ .
3587
+
3088
3588
  - 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.
3089
3589
  - 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.
3090
3590
  - To determine whether your AWS Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the ``TlsSessionResumptionMode`` parameter.
3091
3591
  - ``As2Transports`` indicates the transport method for the AS2 messages. Currently, only HTTP is supported.
3092
3592
 
3093
3593
  :param as2_transports: List of ``As2Transport`` objects.
3094
- :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.
3594
+ :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.
3095
3595
  :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.
3096
3596
  :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.
3097
3597
 
@@ -3149,6 +3649,8 @@ class CfnServer(
3149
3649
 
3150
3650
  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/>`_ .
3151
3651
 
3652
+ 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>`_ .
3653
+
3152
3654
  *Special values*
3153
3655
 
3154
3656
  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.
@@ -3219,7 +3721,7 @@ class CfnServer(
3219
3721
  ) -> None:
3220
3722
  '''The Amazon S3 storage options that are configured for your server.
3221
3723
 
3222
- :param directory_listing_optimization: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3724
+ :param directory_listing_optimization: Specifies whether or not performance for your Amazon S3 directories is optimized. - If using the console, this is enabled by default. - If using the API or CLI, this is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3223
3725
 
3224
3726
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-s3storageoptions.html
3225
3727
  :exampleMetadata: fixture=_generated
@@ -3243,7 +3745,10 @@ class CfnServer(
3243
3745
 
3244
3746
  @builtins.property
3245
3747
  def directory_listing_optimization(self) -> typing.Optional[builtins.str]:
3246
- '''Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.
3748
+ '''Specifies whether or not performance for your Amazon S3 directories is optimized.
3749
+
3750
+ - If using the console, this is enabled by default.
3751
+ - If using the API or CLI, this is disabled by default.
3247
3752
 
3248
3753
  By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3249
3754
 
@@ -3443,6 +3948,7 @@ class CfnServer(
3443
3948
  "endpoint_type": "endpointType",
3444
3949
  "identity_provider_details": "identityProviderDetails",
3445
3950
  "identity_provider_type": "identityProviderType",
3951
+ "ip_address_type": "ipAddressType",
3446
3952
  "logging_role": "loggingRole",
3447
3953
  "post_authentication_login_banner": "postAuthenticationLoginBanner",
3448
3954
  "pre_authentication_login_banner": "preAuthenticationLoginBanner",
@@ -3465,6 +3971,7 @@ class CfnServerProps:
3465
3971
  endpoint_type: typing.Optional[builtins.str] = None,
3466
3972
  identity_provider_details: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServer.IdentityProviderDetailsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
3467
3973
  identity_provider_type: typing.Optional[builtins.str] = None,
3974
+ ip_address_type: typing.Optional[builtins.str] = None,
3468
3975
  logging_role: typing.Optional[builtins.str] = None,
3469
3976
  post_authentication_login_banner: typing.Optional[builtins.str] = None,
3470
3977
  pre_authentication_login_banner: typing.Optional[builtins.str] = None,
@@ -3478,18 +3985,19 @@ class CfnServerProps:
3478
3985
  ) -> None:
3479
3986
  '''Properties for defining a ``CfnServer``.
3480
3987
 
3481
- :param certificate: The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. Required when ``Protocols`` is set to ``FTPS`` . To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *AWS Certificate Manager User Guide* . To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *AWS Certificate Manager User Guide* . To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *AWS Certificate Manager User Guide* . Certificates with the following cryptographic algorithms and key sizes are supported: - 2048-bit RSA (RSA_2048) - 4096-bit RSA (RSA_4096) - Elliptic Prime Curve 256 bit (EC_prime256v1) - Elliptic Prime Curve 384 bit (EC_secp384r1) - Elliptic Prime Curve 521 bit (EC_secp521r1) .. epigraph:: The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
3988
+ :param certificate: The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required when ``Protocols`` is set to ``FTPS`` . To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *Certificate Manager User Guide* . To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *Certificate Manager User Guide* . To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *Certificate Manager User Guide* . Certificates with the following cryptographic algorithms and key sizes are supported: - 2048-bit RSA (RSA_2048) - 4096-bit RSA (RSA_4096) - Elliptic Prime Curve 256 bit (EC_prime256v1) - Elliptic Prime Curve 384 bit (EC_secp384r1) - Elliptic Prime Curve 521 bit (EC_secp521r1) .. epigraph:: The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.
3482
3989
  :param domain: Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
3483
3990
  :param endpoint_details: The virtual private cloud (VPC) endpoint settings that are configured for your server. When you host your endpoint within your VPC, you can make your endpoint accessible only to resources within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over the internet. Your VPC's default security groups are automatically assigned to your endpoint.
3484
3991
  :param endpoint_type: The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it. .. epigraph:: After May 19, 2021, you won't be able to create a server using ``EndpointType=VPC_ENDPOINT`` in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with ``EndpointType=VPC_ENDPOINT`` in your AWS account on or before May 19, 2021, you will not be affected. After this date, use ``EndpointType`` = ``VPC`` . For more information, see `Discontinuing the use of VPC_ENDPOINT <https://docs.aws.amazon.com//transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint>`_ . It is recommended that you use ``VPC`` as the ``EndpointType`` . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with ``EndpointType`` set to ``VPC_ENDPOINT`` .
3485
3992
  :param identity_provider_details: Required when ``IdentityProviderType`` is set to ``AWS_DIRECTORY_SERVICE`` , ``AWS _LAMBDA`` or ``API_GATEWAY`` . Accepts an array containing all of the information required to use a directory in ``AWS_DIRECTORY_SERVICE`` or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when ``IdentityProviderType`` is set to ``SERVICE_MANAGED`` .
3486
3993
  :param identity_provider_type: The mode of authentication for a server. The default value is ``SERVICE_MANAGED`` , which allows you to store and access user credentials within the AWS Transfer Family service. Use ``AWS_DIRECTORY_SERVICE`` to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS using AD Connector. This option also requires you to provide a Directory ID by using the ``IdentityProviderDetails`` parameter. Use the ``API_GATEWAY`` value to integrate with an identity provider of your choosing. The ``API_GATEWAY`` setting requires you to provide an Amazon API Gateway endpoint URL to call for authentication by using the ``IdentityProviderDetails`` parameter. Use the ``AWS_LAMBDA`` value to directly use an AWS Lambda function as your identity provider. If you choose this value, you must specify the ARN for the Lambda function in the ``Function`` parameter for the ``IdentityProviderDetails`` data type.
3994
+ :param ip_address_type: Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your AWS Transfer Family endpoint. The default value is ``IPV4`` . .. epigraph:: The ``IpAddressType`` parameter has the following limitations: - It cannot be changed while the server is online. You must stop the server before modifying this parameter. - It cannot be updated to ``DUALSTACK`` if the server has ``AddressAllocationIds`` specified. > When using ``DUALSTACK`` as the ``IpAddressType`` , you cannot set the ``AddressAllocationIds`` parameter for the `EndpointDetails <https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html>`_ for the server.
3487
3995
  :param logging_role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, you can view user activity in your CloudWatch logs.
3488
3996
  :param post_authentication_login_banner: Specifies a string to display when users connect to a server. This string is displayed after the user authenticates. .. epigraph:: The SFTP protocol does not support post-authentication display banners.
3489
3997
  :param pre_authentication_login_banner: Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. For example, the following banner displays details about using the system: ``This system is for the use of authorized users only. Individuals using this computer system without authority, or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by system personnel.``
3490
3998
  :param protocol_details: The protocol settings that are configured for your server. - 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. - 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. - To determine whether your AWS Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the ``TlsSessionResumptionMode`` parameter. - ``As2Transports`` indicates the transport method for the AS2 messages. Currently, only HTTP is supported. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
3491
- :param protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: - ``SFTP`` (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH - ``FTPS`` (File Transfer Protocol Secure): File transfer with TLS encryption - ``FTP`` (File Transfer Protocol): Unencrypted file transfer - ``AS2`` (Applicability Statement 2): used for transporting structured business-to-business data .. epigraph:: - If you select ``FTPS`` , you must choose a certificate stored in AWS Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS. - If ``Protocol`` includes either ``FTP`` or ``FTPS`` , then the ``EndpointType`` must be ``VPC`` and the ``IdentityProviderType`` must be either ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``FTP`` , then ``AddressAllocationIds`` cannot be associated. - If ``Protocol`` is set only to ``SFTP`` , the ``EndpointType`` can be set to ``PUBLIC`` and the ``IdentityProviderType`` can be set any of the supported identity types: ``SERVICE_MANAGED`` , ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``AS2`` , then the ``EndpointType`` must be ``VPC`` , and domain must be Amazon S3. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
3492
- :param s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3999
+ :param protocols: Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are: - ``SFTP`` (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH - ``FTPS`` (File Transfer Protocol Secure): File transfer with TLS encryption - ``FTP`` (File Transfer Protocol): Unencrypted file transfer - ``AS2`` (Applicability Statement 2): used for transporting structured business-to-business data .. epigraph:: - If you select ``FTPS`` , you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS. - If ``Protocol`` includes either ``FTP`` or ``FTPS`` , then the ``EndpointType`` must be ``VPC`` and the ``IdentityProviderType`` must be either ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``FTP`` , then ``AddressAllocationIds`` cannot be associated. - If ``Protocol`` is set only to ``SFTP`` , the ``EndpointType`` can be set to ``PUBLIC`` and the ``IdentityProviderType`` can be set any of the supported identity types: ``SERVICE_MANAGED`` , ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` . - If ``Protocol`` includes ``AS2`` , then the ``EndpointType`` must be ``VPC`` , and domain must be Amazon S3. The ``Protocols`` parameter is an array of strings. *Allowed values* : One or more of ``SFTP`` , ``FTPS`` , ``FTP`` , ``AS2``
4000
+ :param s3_storage_options: Specifies whether or not performance for your Amazon S3 directories is optimized. - If using the console, this is enabled by default. - If using the API or CLI, this is disabled by default. By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3493
4001
  :param security_policy_name: Specifies the name of the security policy for the server.
3494
4002
  :param structured_log_destinations: Specifies the log groups to which your server logs are sent. To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows: ``arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*`` For example, ``arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*`` If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an ``update-server`` call. For example: ``update-server --server-id s-1234567890abcdef0 --structured-log-destinations``
3495
4003
  :param tags: Key-value pairs that can be used to group and search for servers.
@@ -3523,6 +4031,7 @@ class CfnServerProps:
3523
4031
  url="url"
3524
4032
  ),
3525
4033
  identity_provider_type="identityProviderType",
4034
+ ip_address_type="ipAddressType",
3526
4035
  logging_role="loggingRole",
3527
4036
  post_authentication_login_banner="postAuthenticationLoginBanner",
3528
4037
  pre_authentication_login_banner="preAuthenticationLoginBanner",
@@ -3562,6 +4071,7 @@ class CfnServerProps:
3562
4071
  check_type(argname="argument endpoint_type", value=endpoint_type, expected_type=type_hints["endpoint_type"])
3563
4072
  check_type(argname="argument identity_provider_details", value=identity_provider_details, expected_type=type_hints["identity_provider_details"])
3564
4073
  check_type(argname="argument identity_provider_type", value=identity_provider_type, expected_type=type_hints["identity_provider_type"])
4074
+ check_type(argname="argument ip_address_type", value=ip_address_type, expected_type=type_hints["ip_address_type"])
3565
4075
  check_type(argname="argument logging_role", value=logging_role, expected_type=type_hints["logging_role"])
3566
4076
  check_type(argname="argument post_authentication_login_banner", value=post_authentication_login_banner, expected_type=type_hints["post_authentication_login_banner"])
3567
4077
  check_type(argname="argument pre_authentication_login_banner", value=pre_authentication_login_banner, expected_type=type_hints["pre_authentication_login_banner"])
@@ -3585,6 +4095,8 @@ class CfnServerProps:
3585
4095
  self._values["identity_provider_details"] = identity_provider_details
3586
4096
  if identity_provider_type is not None:
3587
4097
  self._values["identity_provider_type"] = identity_provider_type
4098
+ if ip_address_type is not None:
4099
+ self._values["ip_address_type"] = ip_address_type
3588
4100
  if logging_role is not None:
3589
4101
  self._values["logging_role"] = logging_role
3590
4102
  if post_authentication_login_banner is not None:
@@ -3608,15 +4120,13 @@ class CfnServerProps:
3608
4120
 
3609
4121
  @builtins.property
3610
4122
  def certificate(self) -> typing.Optional[builtins.str]:
3611
- '''The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate.
4123
+ '''The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required when ``Protocols`` is set to ``FTPS`` .
3612
4124
 
3613
- Required when ``Protocols`` is set to ``FTPS`` .
4125
+ To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *Certificate Manager User Guide* .
3614
4126
 
3615
- To request a new public certificate, see `Request a public certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html>`_ in the *AWS Certificate Manager User Guide* .
4127
+ To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *Certificate Manager User Guide* .
3616
4128
 
3617
- To import an existing certificate into ACM, see `Importing certificates into ACM <https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html>`_ in the *AWS Certificate Manager User Guide* .
3618
-
3619
- To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *AWS Certificate Manager User Guide* .
4129
+ To request a private certificate to use FTPS through private IP addresses, see `Request a private certificate <https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html>`_ in the *Certificate Manager User Guide* .
3620
4130
 
3621
4131
  Certificates with the following cryptographic algorithms and key sizes are supported:
3622
4132
 
@@ -3707,6 +4217,23 @@ class CfnServerProps:
3707
4217
  result = self._values.get("identity_provider_type")
3708
4218
  return typing.cast(typing.Optional[builtins.str], result)
3709
4219
 
4220
+ @builtins.property
4221
+ def ip_address_type(self) -> typing.Optional[builtins.str]:
4222
+ '''Specifies whether to use IPv4 only, or to use dual-stack (IPv4 and IPv6) for your AWS Transfer Family endpoint.
4223
+
4224
+ The default value is ``IPV4`` .
4225
+ .. epigraph::
4226
+
4227
+ The ``IpAddressType`` parameter has the following limitations:
4228
+
4229
+ - It cannot be changed while the server is online. You must stop the server before modifying this parameter.
4230
+ - It cannot be updated to ``DUALSTACK`` if the server has ``AddressAllocationIds`` specified. > When using ``DUALSTACK`` as the ``IpAddressType`` , you cannot set the ``AddressAllocationIds`` parameter for the `EndpointDetails <https://docs.aws.amazon.com/transfer/latest/APIReference/API_EndpointDetails.html>`_ for the server.
4231
+
4232
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html#cfn-transfer-server-ipaddresstype
4233
+ '''
4234
+ result = self._values.get("ip_address_type")
4235
+ return typing.cast(typing.Optional[builtins.str], result)
4236
+
3710
4237
  @builtins.property
3711
4238
  def logging_role(self) -> typing.Optional[builtins.str]:
3712
4239
  '''The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events.
@@ -3777,7 +4304,7 @@ class CfnServerProps:
3777
4304
 
3778
4305
  .. epigraph::
3779
4306
 
3780
- - If you select ``FTPS`` , you must choose a certificate stored in AWS Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.
4307
+ - If you select ``FTPS`` , you must choose a certificate stored in Certificate Manager (ACM) which is used to identify your server when clients connect to it over FTPS.
3781
4308
  - If ``Protocol`` includes either ``FTP`` or ``FTPS`` , then the ``EndpointType`` must be ``VPC`` and the ``IdentityProviderType`` must be either ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` .
3782
4309
  - If ``Protocol`` includes ``FTP`` , then ``AddressAllocationIds`` cannot be associated.
3783
4310
  - If ``Protocol`` is set only to ``SFTP`` , the ``EndpointType`` can be set to ``PUBLIC`` and the ``IdentityProviderType`` can be set any of the supported identity types: ``SERVICE_MANAGED`` , ``AWS_DIRECTORY_SERVICE`` , ``AWS_LAMBDA`` , or ``API_GATEWAY`` .
@@ -3796,7 +4323,10 @@ class CfnServerProps:
3796
4323
  def s3_storage_options(
3797
4324
  self,
3798
4325
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnServer.S3StorageOptionsProperty]]:
3799
- '''Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.
4326
+ '''Specifies whether or not performance for your Amazon S3 directories is optimized.
4327
+
4328
+ - If using the console, this is enabled by default.
4329
+ - If using the API or CLI, this is disabled by default.
3800
4330
 
3801
4331
  By default, home directory mappings have a ``TYPE`` of ``DIRECTORY`` . If you enable this option, you would then need to explicitly set the ``HomeDirectoryMapEntry`` ``Type`` to ``FILE`` if you want a mapping to have a file target.
3802
4332
 
@@ -3867,7 +4397,7 @@ class CfnServerProps:
3867
4397
  )
3868
4398
 
3869
4399
 
3870
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
4400
+ @jsii.implements(_IInspectable_c2943556, _IUserRef_344ece73, _ITaggable_36806126)
3871
4401
  class CfnUser(
3872
4402
  _CfnResource_9df397a6,
3873
4403
  metaclass=jsii.JSIIMeta,
@@ -3934,13 +4464,14 @@ class CfnUser(
3934
4464
  ssh_public_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
3935
4465
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
3936
4466
  ) -> None:
3937
- '''
4467
+ '''Create a new ``AWS::Transfer::User``.
4468
+
3938
4469
  :param scope: Scope in which this resource is defined.
3939
4470
  :param id: Construct identifier for this resource (unique in its scope).
3940
4471
  :param role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.
3941
4472
  :param server_id: A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.
3942
4473
  :param user_name: A unique string that identifies a user and is associated with a ``ServerId`` . This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
3943
- :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
4474
+ :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
3944
4475
  :param home_directory_mappings: Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the ``Entry`` and ``Target`` pair, where ``Entry`` shows how the path is made visible and ``Target`` is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your AWS Identity and Access Management (IAM) role provides access to paths in ``Target`` . This value can be set only when ``HomeDirectoryType`` is set to *LOGICAL* . The following is an ``Entry`` and ``Target`` pair example. ``[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]`` In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (" ``chroot`` "). To do this, you can set ``Entry`` to ``/`` and set ``Target`` to the value the user should see for their home directory when they log in. The following is an ``Entry`` and ``Target`` pair example for ``chroot`` . ``[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]``
3945
4476
  :param home_directory_type: The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to ``PATH`` , the user will see the absolute Amazon S3 bucket or Amazon EFS path as is in their file transfer protocol clients. If you set it to ``LOGICAL`` , you need to provide mappings in the ``HomeDirectoryMappings`` for how you want to make Amazon S3 or Amazon EFS paths visible to your users. .. epigraph:: If ``HomeDirectoryType`` is ``LOGICAL`` , you must provide mappings, using the ``HomeDirectoryMappings`` parameter. If, on the other hand, ``HomeDirectoryType`` is ``PATH`` , you provide an absolute path using the ``HomeDirectory`` parameter. You cannot have both ``HomeDirectory`` and ``HomeDirectoryMappings`` in your template.
3946
4477
  :param policy: A session policy for your user so you can use the same IAM role across multiple users. This policy restricts user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ``${Transfer:UserName}`` , ``${Transfer:HomeDirectory}`` , and ``${Transfer:HomeBucket}`` . .. epigraph:: For session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ``Policy`` argument. For an example of a session policy, see `Example session policy <https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html>`_ . For more information, see `AssumeRole <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_ in the *AWS Security Token Service API Reference* .
@@ -4041,6 +4572,12 @@ class CfnUser(
4041
4572
  '''Tag Manager which manages the tags for this resource.'''
4042
4573
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
4043
4574
 
4575
+ @builtins.property
4576
+ @jsii.member(jsii_name="userRef")
4577
+ def user_ref(self) -> _UserReference_c3e4eb82:
4578
+ '''A reference to a User resource.'''
4579
+ return typing.cast(_UserReference_c3e4eb82, jsii.get(self, "userRef"))
4580
+
4044
4581
  @builtins.property
4045
4582
  @jsii.member(jsii_name="role")
4046
4583
  def role(self) -> builtins.str:
@@ -4406,7 +4943,7 @@ class CfnUserProps:
4406
4943
  :param role: The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust relationship that allows the server to access your resources when servicing your users' transfer requests.
4407
4944
  :param server_id: A system-assigned unique identifier for a server instance. This is the specific server that you added your user to.
4408
4945
  :param user_name: A unique string that identifies a user and is associated with a ``ServerId`` . This user name must be a minimum of 3 and a maximum of 100 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't start with a hyphen, period, or at sign.
4409
- :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
4946
+ :param home_directory: The landing directory (folder) for a user when they log in to the server using the client. A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` . .. epigraph:: You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
4410
4947
  :param home_directory_mappings: Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should be visible to your user and how you want to make them visible. You must specify the ``Entry`` and ``Target`` pair, where ``Entry`` shows how the path is made visible and ``Target`` is the actual Amazon S3 or Amazon EFS path. If you only specify a target, it is displayed as is. You also must ensure that your AWS Identity and Access Management (IAM) role provides access to paths in ``Target`` . This value can be set only when ``HomeDirectoryType`` is set to *LOGICAL* . The following is an ``Entry`` and ``Target`` pair example. ``[ { "Entry": "/directory1", "Target": "/bucket_name/home/mydirectory" } ]`` In most cases, you can use this value instead of the session policy to lock your user down to the designated home directory (" ``chroot`` "). To do this, you can set ``Entry`` to ``/`` and set ``Target`` to the value the user should see for their home directory when they log in. The following is an ``Entry`` and ``Target`` pair example for ``chroot`` . ``[ { "Entry": "/", "Target": "/bucket_name/home/mydirectory" } ]``
4411
4948
  :param home_directory_type: The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. If you set it to ``PATH`` , the user will see the absolute Amazon S3 bucket or Amazon EFS path as is in their file transfer protocol clients. If you set it to ``LOGICAL`` , you need to provide mappings in the ``HomeDirectoryMappings`` for how you want to make Amazon S3 or Amazon EFS paths visible to your users. .. epigraph:: If ``HomeDirectoryType`` is ``LOGICAL`` , you must provide mappings, using the ``HomeDirectoryMappings`` parameter. If, on the other hand, ``HomeDirectoryType`` is ``PATH`` , you provide an absolute path using the ``HomeDirectory`` parameter. You cannot have both ``HomeDirectory`` and ``HomeDirectoryMappings`` in your template.
4412
4949
  :param policy: A session policy for your user so you can use the same IAM role across multiple users. This policy restricts user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ``${Transfer:UserName}`` , ``${Transfer:HomeDirectory}`` , and ``${Transfer:HomeBucket}`` . .. epigraph:: For session policies, AWS Transfer Family stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ``Policy`` argument. For an example of a session policy, see `Example session policy <https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html>`_ . For more information, see `AssumeRole <https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html>`_ in the *AWS Security Token Service API Reference* .
@@ -4528,7 +5065,7 @@ class CfnUserProps:
4528
5065
  A ``HomeDirectory`` example is ``/bucket_name/home/mydirectory`` .
4529
5066
  .. epigraph::
4530
5067
 
4531
- The ``HomeDirectory`` parameter is only used if ``HomeDirectoryType`` is set to ``PATH`` .
5068
+ You can use the ``HomeDirectory`` parameter for ``HomeDirectoryType`` when it is set to either ``PATH`` or ``LOGICAL`` .
4532
5069
 
4533
5070
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html#cfn-transfer-user-homedirectory
4534
5071
  '''
@@ -4641,7 +5178,7 @@ class CfnUserProps:
4641
5178
  )
4642
5179
 
4643
5180
 
4644
- @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
5181
+ @jsii.implements(_IInspectable_c2943556, _IWebAppRef_5ec8f507, _ITaggableV2_4e6798f8)
4645
5182
  class CfnWebApp(
4646
5183
  _CfnResource_9df397a6,
4647
5184
  metaclass=jsii.JSIIMeta,
@@ -4696,7 +5233,8 @@ class CfnWebApp(
4696
5233
  web_app_endpoint_policy: typing.Optional[builtins.str] = None,
4697
5234
  web_app_units: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebApp.WebAppUnitsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4698
5235
  ) -> None:
4699
- '''
5236
+ '''Create a new ``AWS::Transfer::WebApp``.
5237
+
4700
5238
  :param scope: Scope in which this resource is defined.
4701
5239
  :param id: Construct identifier for this resource (unique in its scope).
4702
5240
  :param identity_provider_details: You can provide a structure that contains the details for the identity provider to use with your web app. For more details about this parameter, see `Configure your identity provider for Transfer Family web apps <https://docs.aws.amazon.com//transfer/latest/userguide/webapp-identity-center.html>`_ .
@@ -4789,6 +5327,12 @@ class CfnWebApp(
4789
5327
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4790
5328
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4791
5329
 
5330
+ @builtins.property
5331
+ @jsii.member(jsii_name="webAppRef")
5332
+ def web_app_ref(self) -> _WebAppReference_b5630dd4:
5333
+ '''A reference to a WebApp resource.'''
5334
+ return typing.cast(_WebAppReference_b5630dd4, jsii.get(self, "webAppRef"))
5335
+
4792
5336
  @builtins.property
4793
5337
  @jsii.member(jsii_name="identityProviderDetails")
4794
5338
  def identity_provider_details(
@@ -5292,7 +5836,7 @@ class CfnWebAppProps:
5292
5836
  )
5293
5837
 
5294
5838
 
5295
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
5839
+ @jsii.implements(_IInspectable_c2943556, _IWorkflowRef_1a79a531, _ITaggable_36806126)
5296
5840
  class CfnWorkflow(
5297
5841
  _CfnResource_9df397a6,
5298
5842
  metaclass=jsii.JSIIMeta,
@@ -5388,7 +5932,8 @@ class CfnWorkflow(
5388
5932
  on_exception_steps: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWorkflow.WorkflowStepProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5389
5933
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
5390
5934
  ) -> None:
5391
- '''
5935
+ '''Create a new ``AWS::Transfer::Workflow``.
5936
+
5392
5937
  :param scope: Scope in which this resource is defined.
5393
5938
  :param id: Construct identifier for this resource (unique in its scope).
5394
5939
  :param steps: Specifies the details for the steps that are in the specified workflow.
@@ -5409,6 +5954,48 @@ class CfnWorkflow(
5409
5954
 
5410
5955
  jsii.create(self.__class__, self, [scope, id, props])
5411
5956
 
5957
+ @jsii.member(jsii_name="fromWorkflowArn")
5958
+ @builtins.classmethod
5959
+ def from_workflow_arn(
5960
+ cls,
5961
+ scope: _constructs_77d1e7e8.Construct,
5962
+ id: builtins.str,
5963
+ arn: builtins.str,
5964
+ ) -> _IWorkflowRef_1a79a531:
5965
+ '''Creates a new IWorkflowRef from an ARN.
5966
+
5967
+ :param scope: -
5968
+ :param id: -
5969
+ :param arn: -
5970
+ '''
5971
+ if __debug__:
5972
+ type_hints = typing.get_type_hints(_typecheckingstub__fe53c79c7532b3619e6be4cd157702c5cab36a8777950667b5647332a0038621)
5973
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
5974
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
5975
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
5976
+ return typing.cast(_IWorkflowRef_1a79a531, jsii.sinvoke(cls, "fromWorkflowArn", [scope, id, arn]))
5977
+
5978
+ @jsii.member(jsii_name="fromWorkflowId")
5979
+ @builtins.classmethod
5980
+ def from_workflow_id(
5981
+ cls,
5982
+ scope: _constructs_77d1e7e8.Construct,
5983
+ id: builtins.str,
5984
+ workflow_id: builtins.str,
5985
+ ) -> _IWorkflowRef_1a79a531:
5986
+ '''Creates a new IWorkflowRef from a workflowId.
5987
+
5988
+ :param scope: -
5989
+ :param id: -
5990
+ :param workflow_id: -
5991
+ '''
5992
+ if __debug__:
5993
+ type_hints = typing.get_type_hints(_typecheckingstub__42c6ff2311d814991108aadd101319b04b1b334b1daf50bcd421d633d00c8645)
5994
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
5995
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
5996
+ check_type(argname="argument workflow_id", value=workflow_id, expected_type=type_hints["workflow_id"])
5997
+ return typing.cast(_IWorkflowRef_1a79a531, jsii.sinvoke(cls, "fromWorkflowId", [scope, id, workflow_id]))
5998
+
5412
5999
  @jsii.member(jsii_name="inspect")
5413
6000
  def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
5414
6001
  '''Examines the CloudFormation resource and discloses attributes.
@@ -5468,6 +6055,12 @@ class CfnWorkflow(
5468
6055
  '''Tag Manager which manages the tags for this resource.'''
5469
6056
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
5470
6057
 
6058
+ @builtins.property
6059
+ @jsii.member(jsii_name="workflowRef")
6060
+ def workflow_ref(self) -> _WorkflowReference_25a0bf6c:
6061
+ '''A reference to a Workflow resource.'''
6062
+ return typing.cast(_WorkflowReference_25a0bf6c, jsii.get(self, "workflowRef"))
6063
+
5471
6064
  @builtins.property
5472
6065
  @jsii.member(jsii_name="steps")
5473
6066
  def steps(
@@ -6979,6 +7572,22 @@ def _typecheckingstub__0f95ee160137bed43b6b325f0de8dc95bc0d10db792e4492913f9d664
6979
7572
  """Type checking stubs"""
6980
7573
  pass
6981
7574
 
7575
+ def _typecheckingstub__dc4fb6b44e5c3b46d7a4b6d2cddd238e6967e5ba869d0beec1e241cd289794f0(
7576
+ scope: _constructs_77d1e7e8.Construct,
7577
+ id: builtins.str,
7578
+ arn: builtins.str,
7579
+ ) -> None:
7580
+ """Type checking stubs"""
7581
+ pass
7582
+
7583
+ def _typecheckingstub__5ac0c4753dbb35aa2c4992fbcf97129e0a6a0be0b5fee455f1416d86edcba9ea(
7584
+ scope: _constructs_77d1e7e8.Construct,
7585
+ id: builtins.str,
7586
+ certificate_id: builtins.str,
7587
+ ) -> None:
7588
+ """Type checking stubs"""
7589
+ pass
7590
+
6982
7591
  def _typecheckingstub__f1474a816abc465fbde815216c7dd03f20d910c99fb002aee78d0f01c8d4f55c(
6983
7592
  inspector: _TreeInspector_488e0dd5,
6984
7593
  ) -> None:
@@ -7058,12 +7667,30 @@ def _typecheckingstub__2a3d92be7ab611ebe6dbf531ad899c2a95b3655fb829aeffdf52fdb11
7058
7667
  id: builtins.str,
7059
7668
  *,
7060
7669
  access_role: builtins.str,
7061
- url: builtins.str,
7062
7670
  as2_config: typing.Any = None,
7671
+ egress_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.ConnectorEgressConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7672
+ egress_type: typing.Optional[builtins.str] = None,
7063
7673
  logging_role: typing.Optional[builtins.str] = None,
7064
7674
  security_policy_name: typing.Optional[builtins.str] = None,
7065
7675
  sftp_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.SftpConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7066
7676
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7677
+ url: typing.Optional[builtins.str] = None,
7678
+ ) -> None:
7679
+ """Type checking stubs"""
7680
+ pass
7681
+
7682
+ def _typecheckingstub__a59af73cca17d333ea4e8a725b5ea84947fbdf727ceaa58fb5d37dde8ba99e43(
7683
+ scope: _constructs_77d1e7e8.Construct,
7684
+ id: builtins.str,
7685
+ arn: builtins.str,
7686
+ ) -> None:
7687
+ """Type checking stubs"""
7688
+ pass
7689
+
7690
+ def _typecheckingstub__38a8932f140563c5eae5ee417477d8ef0fb37d560d4497ce233ca03fcfedea17(
7691
+ scope: _constructs_77d1e7e8.Construct,
7692
+ id: builtins.str,
7693
+ connector_id: builtins.str,
7067
7694
  ) -> None:
7068
7695
  """Type checking stubs"""
7069
7696
  pass
@@ -7086,14 +7713,20 @@ def _typecheckingstub__9f4bab9f1a3e47eaac0c429ed6125ef23e8b2d8f33fac6396c2ef4a60
7086
7713
  """Type checking stubs"""
7087
7714
  pass
7088
7715
 
7089
- def _typecheckingstub__7f2f8d48aab925fcdb11fb86f8b12aeae11aa8b85048a7ded27a817b5864536d(
7090
- value: builtins.str,
7716
+ def _typecheckingstub__b16726d88010ccba3b94afdf2e5c9f9c1e8e4dc3d9f7d56e2edf0140e687d75c(
7717
+ value: typing.Any,
7091
7718
  ) -> None:
7092
7719
  """Type checking stubs"""
7093
7720
  pass
7094
7721
 
7095
- def _typecheckingstub__b16726d88010ccba3b94afdf2e5c9f9c1e8e4dc3d9f7d56e2edf0140e687d75c(
7096
- value: typing.Any,
7722
+ def _typecheckingstub__55aea3d9a7ecfbca3e7720afc14e3094de156e071c5256ed2311a1836a9c6b83(
7723
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnConnector.ConnectorEgressConfigProperty]],
7724
+ ) -> None:
7725
+ """Type checking stubs"""
7726
+ pass
7727
+
7728
+ def _typecheckingstub__76cb18c9a86ea56efbf380e02f9b601550c701ceae1cc70d08ec7b3e6acf483f(
7729
+ value: typing.Optional[builtins.str],
7097
7730
  ) -> None:
7098
7731
  """Type checking stubs"""
7099
7732
  pass
@@ -7122,6 +7755,12 @@ def _typecheckingstub__207f7abcb769a2e1717d82ad1c8c7df0c05b8d8d3d89a23127362727d
7122
7755
  """Type checking stubs"""
7123
7756
  pass
7124
7757
 
7758
+ def _typecheckingstub__7f2f8d48aab925fcdb11fb86f8b12aeae11aa8b85048a7ded27a817b5864536d(
7759
+ value: typing.Optional[builtins.str],
7760
+ ) -> None:
7761
+ """Type checking stubs"""
7762
+ pass
7763
+
7125
7764
  def _typecheckingstub__328497a7bbb181a996e0747268f6105731221ad3f578e8a5ca68e405dcdd7e63(
7126
7765
  *,
7127
7766
  basic_auth_secret_id: typing.Optional[builtins.str] = None,
@@ -7138,8 +7777,24 @@ def _typecheckingstub__328497a7bbb181a996e0747268f6105731221ad3f578e8a5ca68e405d
7138
7777
  """Type checking stubs"""
7139
7778
  pass
7140
7779
 
7780
+ def _typecheckingstub__3c92ac24e9baf6146c2fe287847ce0fba33a6a7c52ec7e38c13aebcf95a5687a(
7781
+ *,
7782
+ vpc_lattice: typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.ConnectorVpcLatticeEgressConfigProperty, typing.Dict[builtins.str, typing.Any]]],
7783
+ ) -> None:
7784
+ """Type checking stubs"""
7785
+ pass
7786
+
7787
+ def _typecheckingstub__53a48f28bdc82ead21fcc7f4a6cb2d63a8b7bb31c09769a4d8ab452c1da15927(
7788
+ *,
7789
+ resource_configuration_arn: builtins.str,
7790
+ port_number: typing.Optional[jsii.Number] = None,
7791
+ ) -> None:
7792
+ """Type checking stubs"""
7793
+ pass
7794
+
7141
7795
  def _typecheckingstub__f4f8d4be2ad63a06a458c41605c9c21318e1d9117d48f21b9ee2ea6bb109d2e8(
7142
7796
  *,
7797
+ max_concurrent_connections: typing.Optional[jsii.Number] = None,
7143
7798
  trusted_host_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
7144
7799
  user_secret_id: typing.Optional[builtins.str] = None,
7145
7800
  ) -> None:
@@ -7149,12 +7804,14 @@ def _typecheckingstub__f4f8d4be2ad63a06a458c41605c9c21318e1d9117d48f21b9ee2ea6bb
7149
7804
  def _typecheckingstub__7675f9dcded8f51977cf70f499821100319fe5d62996cb917457f772cfcc9a2e(
7150
7805
  *,
7151
7806
  access_role: builtins.str,
7152
- url: builtins.str,
7153
7807
  as2_config: typing.Any = None,
7808
+ egress_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.ConnectorEgressConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7809
+ egress_type: typing.Optional[builtins.str] = None,
7154
7810
  logging_role: typing.Optional[builtins.str] = None,
7155
7811
  security_policy_name: typing.Optional[builtins.str] = None,
7156
7812
  sftp_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnConnector.SftpConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7157
7813
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7814
+ url: typing.Optional[builtins.str] = None,
7158
7815
  ) -> None:
7159
7816
  """Type checking stubs"""
7160
7817
  pass
@@ -7171,6 +7828,22 @@ def _typecheckingstub__f5b82428b7fd1ac13f1a57b868694175d216c1f61c671da5b091d46d8
7171
7828
  """Type checking stubs"""
7172
7829
  pass
7173
7830
 
7831
+ def _typecheckingstub__06008f4a63def34bd89f1208264539fe9dfb8dc17a9fd244d185273546799142(
7832
+ scope: _constructs_77d1e7e8.Construct,
7833
+ id: builtins.str,
7834
+ arn: builtins.str,
7835
+ ) -> None:
7836
+ """Type checking stubs"""
7837
+ pass
7838
+
7839
+ def _typecheckingstub__feb8675e38aa0953f2ede297f189ff49cd5a30c0b0176aac11fd742a2fda9b49(
7840
+ scope: _constructs_77d1e7e8.Construct,
7841
+ id: builtins.str,
7842
+ profile_id: builtins.str,
7843
+ ) -> None:
7844
+ """Type checking stubs"""
7845
+ pass
7846
+
7174
7847
  def _typecheckingstub__56325834528256f6c2bd12b40bde80e132a645d3bffd84876d0f808ee64a8d81(
7175
7848
  inspector: _TreeInspector_488e0dd5,
7176
7849
  ) -> None:
@@ -7227,6 +7900,7 @@ def _typecheckingstub__bf4192baa4fd5a52c9092a6bab5b78398f0e5f14bdad138f58e799069
7227
7900
  endpoint_type: typing.Optional[builtins.str] = None,
7228
7901
  identity_provider_details: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServer.IdentityProviderDetailsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7229
7902
  identity_provider_type: typing.Optional[builtins.str] = None,
7903
+ ip_address_type: typing.Optional[builtins.str] = None,
7230
7904
  logging_role: typing.Optional[builtins.str] = None,
7231
7905
  post_authentication_login_banner: typing.Optional[builtins.str] = None,
7232
7906
  pre_authentication_login_banner: typing.Optional[builtins.str] = None,
@@ -7289,6 +7963,12 @@ def _typecheckingstub__08a6cb2bcf7a55379e6b89fa02d0735271e11fc131bf9d9b0693cea39
7289
7963
  """Type checking stubs"""
7290
7964
  pass
7291
7965
 
7966
+ def _typecheckingstub__8cfe7d7f7218e63daf2394f025140f03c85b4b448857853b83b58f4e59a3eee0(
7967
+ value: typing.Optional[builtins.str],
7968
+ ) -> None:
7969
+ """Type checking stubs"""
7970
+ pass
7971
+
7292
7972
  def _typecheckingstub__85db09859b7fcfcae20f45283fb5e74d7f731e8583b8055856472647123250d9(
7293
7973
  value: typing.Optional[builtins.str],
7294
7974
  ) -> None:
@@ -7412,6 +8092,7 @@ def _typecheckingstub__755735299782e941527b817551c61582134dc6f25d12aff5d9120aeeb
7412
8092
  endpoint_type: typing.Optional[builtins.str] = None,
7413
8093
  identity_provider_details: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnServer.IdentityProviderDetailsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7414
8094
  identity_provider_type: typing.Optional[builtins.str] = None,
8095
+ ip_address_type: typing.Optional[builtins.str] = None,
7415
8096
  logging_role: typing.Optional[builtins.str] = None,
7416
8097
  post_authentication_login_banner: typing.Optional[builtins.str] = None,
7417
8098
  pre_authentication_login_banner: typing.Optional[builtins.str] = None,
@@ -7661,6 +8342,22 @@ def _typecheckingstub__9a86ecf6f123d228f6edf61149bc2542f6ce02d9365ac8986ec7c6468
7661
8342
  """Type checking stubs"""
7662
8343
  pass
7663
8344
 
8345
+ def _typecheckingstub__fe53c79c7532b3619e6be4cd157702c5cab36a8777950667b5647332a0038621(
8346
+ scope: _constructs_77d1e7e8.Construct,
8347
+ id: builtins.str,
8348
+ arn: builtins.str,
8349
+ ) -> None:
8350
+ """Type checking stubs"""
8351
+ pass
8352
+
8353
+ def _typecheckingstub__42c6ff2311d814991108aadd101319b04b1b334b1daf50bcd421d633d00c8645(
8354
+ scope: _constructs_77d1e7e8.Construct,
8355
+ id: builtins.str,
8356
+ workflow_id: builtins.str,
8357
+ ) -> None:
8358
+ """Type checking stubs"""
8359
+ pass
8360
+
7664
8361
  def _typecheckingstub__fcf8488f51b3aba3af306d264af9434fa1e0040f1b353a0381fc97849f0e69f1(
7665
8362
  inspector: _TreeInspector_488e0dd5,
7666
8363
  ) -> None: