@aws-cdk/mixins-preview 2.240.0-alpha.0 → 2.242.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1615) hide show
  1. package/.jsii.gz +0 -0
  2. package/.jsii.tabl.json.gz +0 -0
  3. package/.warnings.jsii.js +9657 -1151
  4. package/NOTICE +0 -108
  5. package/README.md +113 -183
  6. package/lib/index.d.ts +0 -1
  7. package/lib/index.js +1 -2
  8. package/lib/mixins/property-mixins.d.ts +4 -15
  9. package/lib/mixins/property-mixins.js +2 -14
  10. package/lib/services/alexa-ask/.jsiirc.json +1 -2
  11. package/lib/services/alexa-ask/.mixins.jsiirc.json +1 -2
  12. package/lib/services/alexa-ask/cfn-props-mixins.generated.d.ts +2 -3
  13. package/lib/services/alexa-ask/cfn-props-mixins.generated.js +4 -11
  14. package/lib/services/aws-accessanalyzer/.jsiirc.json +1 -2
  15. package/lib/services/aws-accessanalyzer/.mixins.jsiirc.json +1 -2
  16. package/lib/services/aws-accessanalyzer/cfn-props-mixins.generated.d.ts +2 -3
  17. package/lib/services/aws-accessanalyzer/cfn-props-mixins.generated.js +4 -11
  18. package/lib/services/aws-acmpca/.jsiirc.json +1 -2
  19. package/lib/services/aws-acmpca/.mixins.jsiirc.json +1 -2
  20. package/lib/services/aws-acmpca/cfn-props-mixins.generated.d.ts +14 -14
  21. package/lib/services/aws-acmpca/cfn-props-mixins.generated.js +88 -42
  22. package/lib/services/aws-aiops/.jsiirc.json +1 -2
  23. package/lib/services/aws-aiops/.mixins.jsiirc.json +1 -2
  24. package/lib/services/aws-aiops/cfn-props-mixins.generated.d.ts +2 -3
  25. package/lib/services/aws-aiops/cfn-props-mixins.generated.js +4 -11
  26. package/lib/services/aws-amazonmq/.jsiirc.json +1 -2
  27. package/lib/services/aws-amazonmq/.mixins.jsiirc.json +1 -2
  28. package/lib/services/aws-amazonmq/cfn-props-mixins.generated.d.ts +6 -7
  29. package/lib/services/aws-amazonmq/cfn-props-mixins.generated.js +12 -29
  30. package/lib/services/aws-amplify/.jsiirc.json +1 -2
  31. package/lib/services/aws-amplify/.mixins.jsiirc.json +1 -2
  32. package/lib/services/aws-amplify/cfn-props-mixins.generated.d.ts +9 -9
  33. package/lib/services/aws-amplify/cfn-props-mixins.generated.js +47 -32
  34. package/lib/services/aws-amplifyuibuilder/.jsiirc.json +1 -2
  35. package/lib/services/aws-amplifyuibuilder/.mixins.jsiirc.json +1 -2
  36. package/lib/services/aws-amplifyuibuilder/cfn-props-mixins.generated.d.ts +6 -7
  37. package/lib/services/aws-amplifyuibuilder/cfn-props-mixins.generated.js +12 -29
  38. package/lib/services/aws-apigateway/.jsiirc.json +1 -2
  39. package/lib/services/aws-apigateway/.mixins.jsiirc.json +1 -2
  40. package/lib/services/aws-apigateway/cfn-props-mixins.generated.d.ts +82 -82
  41. package/lib/services/aws-apigateway/cfn-props-mixins.generated.js +390 -217
  42. package/lib/services/aws-apigatewayv2/.jsiirc.json +1 -2
  43. package/lib/services/aws-apigatewayv2/.mixins.jsiirc.json +1 -2
  44. package/lib/services/aws-apigatewayv2/cfn-props-mixins.generated.d.ts +46 -46
  45. package/lib/services/aws-apigatewayv2/cfn-props-mixins.generated.js +180 -138
  46. package/lib/services/aws-appconfig/.jsiirc.json +1 -2
  47. package/lib/services/aws-appconfig/.mixins.jsiirc.json +1 -2
  48. package/lib/services/aws-appconfig/cfn-props-mixins.generated.d.ts +126 -27
  49. package/lib/services/aws-appconfig/cfn-props-mixins.generated.js +100 -77
  50. package/lib/services/aws-appflow/.jsiirc.json +1 -2
  51. package/lib/services/aws-appflow/.mixins.jsiirc.json +1 -2
  52. package/lib/services/aws-appflow/cfn-props-mixins.generated.d.ts +14 -14
  53. package/lib/services/aws-appflow/cfn-props-mixins.generated.js +218 -30
  54. package/lib/services/aws-appintegrations/.jsiirc.json +1 -2
  55. package/lib/services/aws-appintegrations/.mixins.jsiirc.json +1 -2
  56. package/lib/services/aws-appintegrations/cfn-props-mixins.generated.d.ts +6 -7
  57. package/lib/services/aws-appintegrations/cfn-props-mixins.generated.js +12 -29
  58. package/lib/services/aws-applicationautoscaling/.jsiirc.json +1 -2
  59. package/lib/services/aws-applicationautoscaling/.mixins.jsiirc.json +1 -2
  60. package/lib/services/aws-applicationautoscaling/cfn-props-mixins.generated.d.ts +8 -8
  61. package/lib/services/aws-applicationautoscaling/cfn-props-mixins.generated.js +32 -22
  62. package/lib/services/aws-applicationinsights/.jsiirc.json +1 -2
  63. package/lib/services/aws-applicationinsights/.mixins.jsiirc.json +1 -2
  64. package/lib/services/aws-applicationinsights/cfn-props-mixins.generated.d.ts +2 -3
  65. package/lib/services/aws-applicationinsights/cfn-props-mixins.generated.js +4 -11
  66. package/lib/services/aws-applicationsignals/.jsiirc.json +1 -2
  67. package/lib/services/aws-applicationsignals/.mixins.jsiirc.json +1 -2
  68. package/lib/services/aws-applicationsignals/cfn-props-mixins.generated.d.ts +6 -7
  69. package/lib/services/aws-applicationsignals/cfn-props-mixins.generated.js +12 -29
  70. package/lib/services/aws-appmesh/.events.jsiirc.json +16 -0
  71. package/lib/services/aws-appmesh/.jsiirc.json +1 -2
  72. package/lib/services/aws-appmesh/.mixins.jsiirc.json +1 -2
  73. package/lib/services/aws-appmesh/cfn-props-mixins.generated.d.ts +14 -15
  74. package/lib/services/aws-appmesh/cfn-props-mixins.generated.js +28 -65
  75. package/lib/services/aws-appmesh/events.d.ts +1 -0
  76. package/lib/services/aws-appmesh/events.generated.d.ts +182 -0
  77. package/lib/services/aws-appmesh/events.generated.js +91 -0
  78. package/lib/{core/index.js → services/aws-appmesh/events.js} +1 -4
  79. package/lib/services/aws-appmesh/index.d.ts +1 -0
  80. package/lib/services/aws-appmesh/index.js +2 -1
  81. package/lib/services/aws-apprunner/.jsiirc.json +1 -2
  82. package/lib/services/aws-apprunner/.mixins.jsiirc.json +1 -2
  83. package/lib/services/aws-apprunner/cfn-props-mixins.generated.d.ts +15 -15
  84. package/lib/services/aws-apprunner/cfn-props-mixins.generated.js +95 -49
  85. package/lib/services/aws-appstream/.jsiirc.json +1 -2
  86. package/lib/services/aws-appstream/.mixins.jsiirc.json +1 -2
  87. package/lib/services/aws-appstream/cfn-props-mixins.generated.d.ts +26 -27
  88. package/lib/services/aws-appstream/cfn-props-mixins.generated.js +52 -119
  89. package/lib/services/aws-appsync/.jsiirc.json +1 -2
  90. package/lib/services/aws-appsync/.mixins.jsiirc.json +1 -2
  91. package/lib/services/aws-appsync/cfn-props-mixins.generated.d.ts +37 -37
  92. package/lib/services/aws-appsync/cfn-props-mixins.generated.js +237 -115
  93. package/lib/services/aws-apptest/.jsiirc.json +1 -2
  94. package/lib/services/aws-apptest/.mixins.jsiirc.json +1 -2
  95. package/lib/services/aws-apptest/cfn-props-mixins.generated.d.ts +2 -3
  96. package/lib/services/aws-apptest/cfn-props-mixins.generated.js +4 -11
  97. package/lib/services/aws-aps/.jsiirc.json +1 -2
  98. package/lib/services/aws-aps/.mixins.jsiirc.json +1 -2
  99. package/lib/services/aws-aps/cfn-props-mixins.generated.d.ts +10 -11
  100. package/lib/services/aws-aps/cfn-props-mixins.generated.js +20 -47
  101. package/lib/services/aws-aps/logs-delivery-mixins.generated.d.ts +109 -9
  102. package/lib/services/aws-aps/logs-delivery-mixins.generated.js +151 -22
  103. package/lib/services/aws-arcregionswitch/.jsiirc.json +1 -2
  104. package/lib/services/aws-arcregionswitch/.mixins.jsiirc.json +1 -2
  105. package/lib/services/aws-arcregionswitch/cfn-props-mixins.generated.d.ts +58 -3
  106. package/lib/services/aws-arcregionswitch/cfn-props-mixins.generated.js +4 -11
  107. package/lib/services/aws-arczonalshift/.jsiirc.json +1 -2
  108. package/lib/services/aws-arczonalshift/.mixins.jsiirc.json +1 -2
  109. package/lib/services/aws-arczonalshift/cfn-props-mixins.generated.d.ts +4 -5
  110. package/lib/services/aws-arczonalshift/cfn-props-mixins.generated.js +8 -20
  111. package/lib/services/aws-athena/.events.jsiirc.json +1 -2
  112. package/lib/services/aws-athena/.jsiirc.json +1 -2
  113. package/lib/services/aws-athena/.mixins.jsiirc.json +1 -2
  114. package/lib/services/aws-athena/cfn-props-mixins.generated.d.ts +17 -17
  115. package/lib/services/aws-athena/cfn-props-mixins.generated.js +140 -50
  116. package/lib/services/aws-athena/events.generated.d.ts +79 -77
  117. package/lib/services/aws-athena/events.generated.js +52 -32
  118. package/lib/services/aws-auditmanager/.jsiirc.json +1 -2
  119. package/lib/services/aws-auditmanager/.mixins.jsiirc.json +1 -2
  120. package/lib/services/aws-auditmanager/cfn-props-mixins.generated.d.ts +2 -3
  121. package/lib/services/aws-auditmanager/cfn-props-mixins.generated.js +4 -11
  122. package/lib/services/aws-autoscaling/.events.jsiirc.json +1 -2
  123. package/lib/services/aws-autoscaling/.jsiirc.json +1 -2
  124. package/lib/services/aws-autoscaling/.mixins.jsiirc.json +1 -2
  125. package/lib/services/aws-autoscaling/cfn-props-mixins.generated.d.ts +32 -30
  126. package/lib/services/aws-autoscaling/cfn-props-mixins.generated.js +323 -62
  127. package/lib/services/aws-autoscaling/events.generated.d.ts +1666 -740
  128. package/lib/services/aws-autoscaling/events.generated.js +538 -86
  129. package/lib/services/aws-autoscalingplans/.jsiirc.json +1 -2
  130. package/lib/services/aws-autoscalingplans/.mixins.jsiirc.json +1 -2
  131. package/lib/services/aws-autoscalingplans/cfn-props-mixins.generated.d.ts +2 -3
  132. package/lib/services/aws-autoscalingplans/cfn-props-mixins.generated.js +4 -11
  133. package/lib/services/aws-b2bi/.events.jsiirc.json +16 -0
  134. package/lib/services/aws-b2bi/.jsiirc.json +1 -2
  135. package/lib/services/aws-b2bi/.mixins.jsiirc.json +1 -2
  136. package/lib/services/aws-b2bi/cfn-props-mixins.generated.d.ts +8 -9
  137. package/lib/services/aws-b2bi/cfn-props-mixins.generated.js +16 -38
  138. package/lib/services/aws-b2bi/events.d.ts +1 -0
  139. package/lib/services/aws-b2bi/events.generated.d.ts +604 -0
  140. package/lib/services/aws-b2bi/events.generated.js +310 -0
  141. package/lib/services/aws-b2bi/events.js +17 -0
  142. package/lib/services/aws-b2bi/index.d.ts +1 -0
  143. package/lib/services/aws-b2bi/index.js +2 -1
  144. package/lib/services/aws-b2bi/logs-delivery-mixins.generated.d.ts +55 -5
  145. package/lib/services/aws-b2bi/logs-delivery-mixins.generated.js +76 -12
  146. package/lib/services/aws-backup/.jsiirc.json +1 -2
  147. package/lib/services/aws-backup/.mixins.jsiirc.json +1 -2
  148. package/lib/services/aws-backup/cfn-props-mixins.generated.d.ts +26 -26
  149. package/lib/services/aws-backup/cfn-props-mixins.generated.js +135 -86
  150. package/lib/services/aws-backupgateway/.jsiirc.json +1 -2
  151. package/lib/services/aws-backupgateway/.mixins.jsiirc.json +1 -2
  152. package/lib/services/aws-backupgateway/cfn-props-mixins.generated.d.ts +2 -3
  153. package/lib/services/aws-backupgateway/cfn-props-mixins.generated.js +4 -11
  154. package/lib/services/aws-backupgateway/logs-delivery-mixins.generated.d.ts +108 -8
  155. package/lib/services/aws-backupgateway/logs-delivery-mixins.generated.js +149 -20
  156. package/lib/services/aws-batch/.events.jsiirc.json +16 -0
  157. package/lib/services/aws-batch/.jsiirc.json +1 -2
  158. package/lib/services/aws-batch/.mixins.jsiirc.json +1 -2
  159. package/lib/services/aws-batch/cfn-props-mixins.generated.d.ts +37 -22
  160. package/lib/services/aws-batch/cfn-props-mixins.generated.js +97 -58
  161. package/lib/services/aws-batch/events.d.ts +1 -0
  162. package/lib/services/aws-batch/events.generated.d.ts +946 -0
  163. package/lib/services/aws-batch/events.generated.js +444 -0
  164. package/lib/services/aws-batch/events.js +17 -0
  165. package/lib/services/aws-batch/index.d.ts +1 -0
  166. package/lib/services/aws-batch/index.js +2 -1
  167. package/lib/services/aws-bcmdataexports/.jsiirc.json +1 -2
  168. package/lib/services/aws-bcmdataexports/.mixins.jsiirc.json +1 -2
  169. package/lib/services/aws-bcmdataexports/cfn-props-mixins.generated.d.ts +2 -3
  170. package/lib/services/aws-bcmdataexports/cfn-props-mixins.generated.js +4 -11
  171. package/lib/services/aws-bedrock/.jsiirc.json +1 -2
  172. package/lib/services/aws-bedrock/.mixins.jsiirc.json +1 -2
  173. package/lib/services/aws-bedrock/cfn-props-mixins.generated.d.ts +98 -99
  174. package/lib/services/aws-bedrock/cfn-props-mixins.generated.js +68 -155
  175. package/lib/services/aws-bedrock/logs-delivery-mixins.generated.d.ts +451 -27
  176. package/lib/services/aws-bedrock/logs-delivery-mixins.generated.js +533 -60
  177. package/lib/services/aws-bedrockagentcore/.jsiirc.json +1 -2
  178. package/lib/services/aws-bedrockagentcore/.mixins.jsiirc.json +1 -2
  179. package/lib/services/aws-bedrockagentcore/cfn-props-mixins.generated.d.ts +759 -17
  180. package/lib/services/aws-bedrockagentcore/cfn-props-mixins.generated.js +282 -74
  181. package/lib/services/aws-bedrockagentcore/logs-delivery-mixins.generated.d.ts +796 -45
  182. package/lib/services/aws-bedrockagentcore/logs-delivery-mixins.generated.js +952 -101
  183. package/lib/services/aws-bedrockmantle/.jsiirc.json +16 -0
  184. package/lib/services/aws-bedrockmantle/.mixins.jsiirc.json +16 -0
  185. package/lib/services/aws-bedrockmantle/cfn-props-mixins.generated.d.ts +53 -0
  186. package/lib/services/aws-bedrockmantle/cfn-props-mixins.generated.js +59 -0
  187. package/lib/services/aws-bedrockmantle/index.d.ts +1 -0
  188. package/lib/services/aws-bedrockmantle/index.js +4 -0
  189. package/lib/services/aws-bedrockmantle/mixins.d.ts +1 -0
  190. package/lib/services/aws-bedrockmantle/mixins.js +17 -0
  191. package/lib/services/aws-billing/.jsiirc.json +1 -2
  192. package/lib/services/aws-billing/.mixins.jsiirc.json +1 -2
  193. package/lib/services/aws-billing/cfn-props-mixins.generated.d.ts +2 -3
  194. package/lib/services/aws-billing/cfn-props-mixins.generated.js +3 -10
  195. package/lib/services/aws-billingconductor/.jsiirc.json +1 -2
  196. package/lib/services/aws-billingconductor/.mixins.jsiirc.json +1 -2
  197. package/lib/services/aws-billingconductor/cfn-props-mixins.generated.d.ts +8 -9
  198. package/lib/services/aws-billingconductor/cfn-props-mixins.generated.js +16 -38
  199. package/lib/services/aws-budgets/.jsiirc.json +1 -2
  200. package/lib/services/aws-budgets/.mixins.jsiirc.json +1 -2
  201. package/lib/services/aws-budgets/cfn-props-mixins.generated.d.ts +4 -5
  202. package/lib/services/aws-budgets/cfn-props-mixins.generated.js +8 -20
  203. package/lib/services/aws-cases/.jsiirc.json +1 -2
  204. package/lib/services/aws-cases/.mixins.jsiirc.json +1 -2
  205. package/lib/services/aws-cases/cfn-props-mixins.generated.d.ts +48 -11
  206. package/lib/services/aws-cases/cfn-props-mixins.generated.js +21 -48
  207. package/lib/services/aws-cassandra/.jsiirc.json +1 -2
  208. package/lib/services/aws-cassandra/.mixins.jsiirc.json +1 -2
  209. package/lib/services/aws-cassandra/cfn-props-mixins.generated.d.ts +6 -7
  210. package/lib/services/aws-cassandra/cfn-props-mixins.generated.js +12 -29
  211. package/lib/services/aws-ce/.jsiirc.json +1 -2
  212. package/lib/services/aws-ce/.mixins.jsiirc.json +1 -2
  213. package/lib/services/aws-ce/cfn-props-mixins.generated.d.ts +9 -9
  214. package/lib/services/aws-ce/cfn-props-mixins.generated.js +35 -30
  215. package/lib/services/aws-certificatemanager/.jsiirc.json +1 -2
  216. package/lib/services/aws-certificatemanager/.mixins.jsiirc.json +1 -2
  217. package/lib/services/aws-certificatemanager/cfn-props-mixins.generated.d.ts +4 -5
  218. package/lib/services/aws-certificatemanager/cfn-props-mixins.generated.js +8 -20
  219. package/lib/services/aws-chatbot/.jsiirc.json +1 -2
  220. package/lib/services/aws-chatbot/.mixins.jsiirc.json +1 -2
  221. package/lib/services/aws-chatbot/cfn-props-mixins.generated.d.ts +9 -9
  222. package/lib/services/aws-chatbot/cfn-props-mixins.generated.js +25 -30
  223. package/lib/services/aws-cleanrooms/.jsiirc.json +1 -2
  224. package/lib/services/aws-cleanrooms/.mixins.jsiirc.json +1 -2
  225. package/lib/services/aws-cleanrooms/cfn-props-mixins.generated.d.ts +16 -17
  226. package/lib/services/aws-cleanrooms/cfn-props-mixins.generated.js +32 -74
  227. package/lib/services/aws-cleanrooms/logs-delivery-mixins.generated.d.ts +55 -5
  228. package/lib/services/aws-cleanrooms/logs-delivery-mixins.generated.js +76 -12
  229. package/lib/services/aws-cleanroomsml/.jsiirc.json +1 -2
  230. package/lib/services/aws-cleanroomsml/.mixins.jsiirc.json +1 -2
  231. package/lib/services/aws-cleanroomsml/cfn-props-mixins.generated.d.ts +2 -3
  232. package/lib/services/aws-cleanroomsml/cfn-props-mixins.generated.js +4 -11
  233. package/lib/services/aws-cloud9/.jsiirc.json +1 -2
  234. package/lib/services/aws-cloud9/.mixins.jsiirc.json +1 -2
  235. package/lib/services/aws-cloud9/cfn-props-mixins.generated.d.ts +2 -3
  236. package/lib/services/aws-cloud9/cfn-props-mixins.generated.js +4 -11
  237. package/lib/services/aws-cloudformation/.events.jsiirc.json +16 -0
  238. package/lib/services/aws-cloudformation/.jsiirc.json +1 -2
  239. package/lib/services/aws-cloudformation/.mixins.jsiirc.json +1 -2
  240. package/lib/services/aws-cloudformation/cfn-props-mixins.generated.d.ts +41 -41
  241. package/lib/services/aws-cloudformation/cfn-props-mixins.generated.js +107 -167
  242. package/lib/services/aws-cloudformation/events.d.ts +1 -0
  243. package/lib/services/aws-cloudformation/events.generated.d.ts +189 -0
  244. package/lib/services/aws-cloudformation/events.generated.js +104 -0
  245. package/lib/services/aws-cloudformation/events.js +17 -0
  246. package/lib/services/aws-cloudformation/index.d.ts +1 -0
  247. package/lib/services/aws-cloudformation/index.js +2 -1
  248. package/lib/services/aws-cloudfront/.jsiirc.json +1 -2
  249. package/lib/services/aws-cloudfront/.mixins.jsiirc.json +1 -2
  250. package/lib/services/aws-cloudfront/cfn-props-mixins.generated.d.ts +73 -61
  251. package/lib/services/aws-cloudfront/cfn-props-mixins.generated.js +279 -187
  252. package/lib/services/aws-cloudfront/logs-delivery-mixins.generated.d.ts +204 -10
  253. package/lib/services/aws-cloudfront/logs-delivery-mixins.generated.js +229 -22
  254. package/lib/services/aws-cloudtrail/.jsiirc.json +1 -2
  255. package/lib/services/aws-cloudtrail/.mixins.jsiirc.json +1 -2
  256. package/lib/services/aws-cloudtrail/cfn-props-mixins.generated.d.ts +16 -16
  257. package/lib/services/aws-cloudtrail/cfn-props-mixins.generated.js +61 -48
  258. package/lib/services/aws-cloudwatch/.events.jsiirc.json +1 -2
  259. package/lib/services/aws-cloudwatch/.jsiirc.json +1 -2
  260. package/lib/services/aws-cloudwatch/.mixins.jsiirc.json +1 -2
  261. package/lib/services/aws-cloudwatch/cfn-props-mixins.generated.d.ts +159 -21
  262. package/lib/services/aws-cloudwatch/cfn-props-mixins.generated.js +118 -60
  263. package/lib/services/aws-cloudwatch/events.generated.d.ts +611 -605
  264. package/lib/services/aws-cloudwatch/events.generated.js +104 -62
  265. package/lib/services/aws-codeartifact/.jsiirc.json +1 -2
  266. package/lib/services/aws-codeartifact/.mixins.jsiirc.json +1 -2
  267. package/lib/services/aws-codeartifact/cfn-props-mixins.generated.d.ts +6 -7
  268. package/lib/services/aws-codeartifact/cfn-props-mixins.generated.js +25 -30
  269. package/lib/services/aws-codebuild/.events.jsiirc.json +1 -2
  270. package/lib/services/aws-codebuild/.jsiirc.json +1 -2
  271. package/lib/services/aws-codebuild/.mixins.jsiirc.json +1 -2
  272. package/lib/services/aws-codebuild/cfn-props-mixins.generated.d.ts +8 -9
  273. package/lib/services/aws-codebuild/cfn-props-mixins.generated.js +16 -38
  274. package/lib/services/aws-codebuild/events.generated.d.ts +2625 -1153
  275. package/lib/services/aws-codebuild/events.generated.js +663 -44
  276. package/lib/services/aws-codecommit/.events.jsiirc.json +1 -2
  277. package/lib/services/aws-codecommit/.jsiirc.json +1 -2
  278. package/lib/services/aws-codecommit/.mixins.jsiirc.json +1 -2
  279. package/lib/services/aws-codecommit/cfn-props-mixins.generated.d.ts +2 -3
  280. package/lib/services/aws-codecommit/cfn-props-mixins.generated.js +4 -11
  281. package/lib/services/aws-codecommit/events.generated.d.ts +2137 -886
  282. package/lib/services/aws-codecommit/events.generated.js +670 -105
  283. package/lib/services/aws-codeconnections/.jsiirc.json +1 -2
  284. package/lib/services/aws-codeconnections/.mixins.jsiirc.json +1 -2
  285. package/lib/services/aws-codeconnections/cfn-props-mixins.generated.d.ts +2 -3
  286. package/lib/services/aws-codeconnections/cfn-props-mixins.generated.js +4 -11
  287. package/lib/services/aws-codedeploy/.events.jsiirc.json +16 -0
  288. package/lib/services/aws-codedeploy/.jsiirc.json +1 -2
  289. package/lib/services/aws-codedeploy/.mixins.jsiirc.json +1 -2
  290. package/lib/services/aws-codedeploy/cfn-props-mixins.generated.d.ts +8 -8
  291. package/lib/services/aws-codedeploy/cfn-props-mixins.generated.js +23 -30
  292. package/lib/services/aws-codedeploy/events.d.ts +1 -0
  293. package/lib/services/aws-codedeploy/events.generated.d.ts +150 -0
  294. package/lib/services/aws-codedeploy/events.generated.js +102 -0
  295. package/lib/services/aws-codedeploy/events.js +17 -0
  296. package/lib/services/aws-codedeploy/index.d.ts +1 -0
  297. package/lib/services/aws-codedeploy/index.js +2 -1
  298. package/lib/services/aws-codeguruprofiler/.events.jsiirc.json +16 -0
  299. package/lib/services/aws-codeguruprofiler/.jsiirc.json +1 -2
  300. package/lib/services/aws-codeguruprofiler/.mixins.jsiirc.json +1 -2
  301. package/lib/services/aws-codeguruprofiler/cfn-props-mixins.generated.d.ts +5 -5
  302. package/lib/services/aws-codeguruprofiler/cfn-props-mixins.generated.js +23 -12
  303. package/lib/services/aws-codeguruprofiler/events.d.ts +1 -0
  304. package/lib/services/aws-codeguruprofiler/events.generated.d.ts +226 -0
  305. package/lib/services/aws-codeguruprofiler/events.generated.js +145 -0
  306. package/lib/services/aws-codeguruprofiler/events.js +17 -0
  307. package/lib/services/aws-codeguruprofiler/index.d.ts +1 -0
  308. package/lib/services/aws-codeguruprofiler/index.js +2 -1
  309. package/lib/services/aws-codegurureviewer/.jsiirc.json +1 -2
  310. package/lib/services/aws-codegurureviewer/.mixins.jsiirc.json +1 -2
  311. package/lib/services/aws-codegurureviewer/cfn-props-mixins.generated.d.ts +2 -3
  312. package/lib/services/aws-codegurureviewer/cfn-props-mixins.generated.js +4 -11
  313. package/lib/services/aws-codepipeline/.events.jsiirc.json +16 -0
  314. package/lib/services/aws-codepipeline/.jsiirc.json +1 -2
  315. package/lib/services/aws-codepipeline/.mixins.jsiirc.json +1 -2
  316. package/lib/services/aws-codepipeline/cfn-props-mixins.generated.d.ts +11 -11
  317. package/lib/services/aws-codepipeline/cfn-props-mixins.generated.js +90 -30
  318. package/lib/services/aws-codepipeline/events.d.ts +1 -0
  319. package/lib/services/aws-codepipeline/events.generated.d.ts +398 -0
  320. package/lib/services/aws-codepipeline/events.generated.js +245 -0
  321. package/lib/services/aws-codepipeline/events.js +17 -0
  322. package/lib/services/aws-codepipeline/index.d.ts +1 -0
  323. package/lib/services/aws-codepipeline/index.js +2 -1
  324. package/lib/services/aws-codestar/.jsiirc.json +1 -2
  325. package/lib/services/aws-codestar/.mixins.jsiirc.json +1 -2
  326. package/lib/services/aws-codestar/cfn-props-mixins.generated.d.ts +2 -3
  327. package/lib/services/aws-codestar/cfn-props-mixins.generated.js +4 -11
  328. package/lib/services/aws-codestarconnections/.jsiirc.json +1 -2
  329. package/lib/services/aws-codestarconnections/.mixins.jsiirc.json +1 -2
  330. package/lib/services/aws-codestarconnections/cfn-props-mixins.generated.d.ts +6 -7
  331. package/lib/services/aws-codestarconnections/cfn-props-mixins.generated.js +12 -29
  332. package/lib/services/aws-codestarnotifications/.jsiirc.json +1 -2
  333. package/lib/services/aws-codestarnotifications/.mixins.jsiirc.json +1 -2
  334. package/lib/services/aws-codestarnotifications/cfn-props-mixins.generated.d.ts +4 -4
  335. package/lib/services/aws-codestarnotifications/cfn-props-mixins.generated.js +24 -12
  336. package/lib/services/aws-cognito/.jsiirc.json +1 -2
  337. package/lib/services/aws-cognito/.mixins.jsiirc.json +1 -2
  338. package/lib/services/aws-cognito/cfn-props-mixins.generated.d.ts +59 -59
  339. package/lib/services/aws-cognito/cfn-props-mixins.generated.js +249 -156
  340. package/lib/services/aws-cognito/logs-delivery-mixins.generated.d.ts +55 -5
  341. package/lib/services/aws-cognito/logs-delivery-mixins.generated.js +76 -12
  342. package/lib/services/aws-comprehend/.jsiirc.json +1 -2
  343. package/lib/services/aws-comprehend/.mixins.jsiirc.json +1 -2
  344. package/lib/services/aws-comprehend/cfn-props-mixins.generated.d.ts +4 -5
  345. package/lib/services/aws-comprehend/cfn-props-mixins.generated.js +8 -20
  346. package/lib/services/aws-computeoptimizer/.jsiirc.json +16 -0
  347. package/lib/services/aws-computeoptimizer/.mixins.jsiirc.json +16 -0
  348. package/lib/services/aws-computeoptimizer/cfn-props-mixins.generated.d.ts +246 -0
  349. package/lib/services/aws-computeoptimizer/cfn-props-mixins.generated.js +61 -0
  350. package/lib/services/aws-computeoptimizer/index.d.ts +1 -0
  351. package/lib/services/aws-computeoptimizer/index.js +4 -0
  352. package/lib/services/aws-computeoptimizer/mixins.d.ts +1 -0
  353. package/lib/services/aws-computeoptimizer/mixins.js +17 -0
  354. package/lib/services/aws-config/.jsiirc.json +1 -2
  355. package/lib/services/aws-config/.mixins.jsiirc.json +1 -2
  356. package/lib/services/aws-config/cfn-props-mixins.generated.d.ts +24 -24
  357. package/lib/services/aws-config/cfn-props-mixins.generated.js +86 -94
  358. package/lib/services/aws-connect/.events.jsiirc.json +1 -2
  359. package/lib/services/aws-connect/.jsiirc.json +1 -2
  360. package/lib/services/aws-connect/.mixins.jsiirc.json +1 -2
  361. package/lib/services/aws-connect/cfn-props-mixins.generated.d.ts +384 -79
  362. package/lib/services/aws-connect/cfn-props-mixins.generated.js +451 -298
  363. package/lib/services/aws-connect/events.generated.d.ts +272 -262
  364. package/lib/services/aws-connect/events.generated.js +141 -77
  365. package/lib/services/aws-connect/logs-delivery-mixins.generated.d.ts +96 -6
  366. package/lib/services/aws-connect/logs-delivery-mixins.generated.js +109 -13
  367. package/lib/services/aws-connectcampaigns/.jsiirc.json +1 -2
  368. package/lib/services/aws-connectcampaigns/.mixins.jsiirc.json +1 -2
  369. package/lib/services/aws-connectcampaigns/cfn-props-mixins.generated.d.ts +2 -3
  370. package/lib/services/aws-connectcampaigns/cfn-props-mixins.generated.js +4 -11
  371. package/lib/services/aws-connectcampaignsv2/.jsiirc.json +1 -2
  372. package/lib/services/aws-connectcampaignsv2/.mixins.jsiirc.json +1 -2
  373. package/lib/services/aws-connectcampaignsv2/cfn-props-mixins.generated.d.ts +2 -3
  374. package/lib/services/aws-connectcampaignsv2/cfn-props-mixins.generated.js +4 -11
  375. package/lib/services/aws-controltower/.jsiirc.json +1 -2
  376. package/lib/services/aws-controltower/.mixins.jsiirc.json +1 -2
  377. package/lib/services/aws-controltower/cfn-props-mixins.generated.d.ts +6 -7
  378. package/lib/services/aws-controltower/cfn-props-mixins.generated.js +12 -29
  379. package/lib/services/aws-cur/.jsiirc.json +1 -2
  380. package/lib/services/aws-cur/.mixins.jsiirc.json +1 -2
  381. package/lib/services/aws-cur/cfn-props-mixins.generated.d.ts +4 -4
  382. package/lib/services/aws-cur/cfn-props-mixins.generated.js +15 -12
  383. package/lib/services/aws-customerprofiles/.jsiirc.json +1 -2
  384. package/lib/services/aws-customerprofiles/.mixins.jsiirc.json +1 -2
  385. package/lib/services/aws-customerprofiles/cfn-props-mixins.generated.d.ts +28 -15
  386. package/lib/services/aws-customerprofiles/cfn-props-mixins.generated.js +30 -67
  387. package/lib/services/aws-databrew/.jsiirc.json +1 -2
  388. package/lib/services/aws-databrew/.mixins.jsiirc.json +1 -2
  389. package/lib/services/aws-databrew/cfn-props-mixins.generated.d.ts +12 -13
  390. package/lib/services/aws-databrew/cfn-props-mixins.generated.js +24 -56
  391. package/lib/services/aws-datapipeline/.jsiirc.json +1 -2
  392. package/lib/services/aws-datapipeline/.mixins.jsiirc.json +1 -2
  393. package/lib/services/aws-datapipeline/cfn-props-mixins.generated.d.ts +5 -5
  394. package/lib/services/aws-datapipeline/cfn-props-mixins.generated.js +46 -12
  395. package/lib/services/aws-datasync/.events.jsiirc.json +16 -0
  396. package/lib/services/aws-datasync/.jsiirc.json +1 -2
  397. package/lib/services/aws-datasync/.mixins.jsiirc.json +1 -2
  398. package/lib/services/aws-datasync/cfn-props-mixins.generated.d.ts +263 -34
  399. package/lib/services/aws-datasync/cfn-props-mixins.generated.js +122 -125
  400. package/lib/services/aws-datasync/events.d.ts +1 -0
  401. package/lib/services/aws-datasync/events.generated.d.ts +122 -0
  402. package/lib/services/aws-datasync/events.generated.js +177 -0
  403. package/lib/services/aws-datasync/events.js +17 -0
  404. package/lib/services/aws-datasync/index.d.ts +1 -0
  405. package/lib/services/aws-datasync/index.js +2 -1
  406. package/lib/services/aws-datazone/.jsiirc.json +1 -2
  407. package/lib/services/aws-datazone/.mixins.jsiirc.json +1 -2
  408. package/lib/services/aws-datazone/cfn-props-mixins.generated.d.ts +34 -35
  409. package/lib/services/aws-datazone/cfn-props-mixins.generated.js +68 -155
  410. package/lib/services/aws-dax/.jsiirc.json +1 -2
  411. package/lib/services/aws-dax/.mixins.jsiirc.json +1 -2
  412. package/lib/services/aws-dax/cfn-props-mixins.generated.d.ts +6 -7
  413. package/lib/services/aws-dax/cfn-props-mixins.generated.js +12 -29
  414. package/lib/services/aws-deadline/.events.jsiirc.json +16 -0
  415. package/lib/services/aws-deadline/.jsiirc.json +1 -2
  416. package/lib/services/aws-deadline/.mixins.jsiirc.json +1 -2
  417. package/lib/services/aws-deadline/cfn-props-mixins.generated.d.ts +22 -23
  418. package/lib/services/aws-deadline/cfn-props-mixins.generated.js +44 -101
  419. package/lib/services/aws-deadline/events.d.ts +1 -0
  420. package/lib/services/aws-deadline/events.generated.d.ts +56 -0
  421. package/lib/services/aws-deadline/events.generated.js +51 -0
  422. package/lib/services/aws-deadline/events.js +17 -0
  423. package/lib/services/aws-deadline/index.d.ts +1 -0
  424. package/lib/services/aws-deadline/index.js +2 -1
  425. package/lib/services/aws-detective/.jsiirc.json +1 -2
  426. package/lib/services/aws-detective/.mixins.jsiirc.json +1 -2
  427. package/lib/services/aws-detective/cfn-props-mixins.generated.d.ts +6 -7
  428. package/lib/services/aws-detective/cfn-props-mixins.generated.js +12 -29
  429. package/lib/services/aws-devicefarm/.jsiirc.json +1 -2
  430. package/lib/services/aws-devicefarm/.mixins.jsiirc.json +1 -2
  431. package/lib/services/aws-devicefarm/cfn-props-mixins.generated.d.ts +12 -13
  432. package/lib/services/aws-devicefarm/cfn-props-mixins.generated.js +24 -56
  433. package/lib/services/aws-devopsagent/.jsiirc.json +1 -2
  434. package/lib/services/aws-devopsagent/.mixins.jsiirc.json +1 -2
  435. package/lib/services/aws-devopsagent/cfn-props-mixins.generated.d.ts +744 -5
  436. package/lib/services/aws-devopsagent/cfn-props-mixins.generated.js +60 -22
  437. package/lib/services/aws-devopsagent/logs-delivery-mixins.generated.d.ts +98 -6
  438. package/lib/services/aws-devopsagent/logs-delivery-mixins.generated.js +111 -13
  439. package/lib/services/aws-devopsguru/.events.jsiirc.json +16 -0
  440. package/lib/services/aws-devopsguru/.jsiirc.json +1 -2
  441. package/lib/services/aws-devopsguru/.mixins.jsiirc.json +1 -2
  442. package/lib/services/aws-devopsguru/cfn-props-mixins.generated.d.ts +8 -8
  443. package/lib/services/aws-devopsguru/cfn-props-mixins.generated.js +40 -30
  444. package/lib/services/aws-devopsguru/events.d.ts +1 -0
  445. package/lib/services/aws-devopsguru/events.generated.d.ts +3010 -0
  446. package/lib/services/aws-devopsguru/events.generated.js +1329 -0
  447. package/lib/services/aws-devopsguru/events.js +17 -0
  448. package/lib/services/aws-devopsguru/index.d.ts +1 -0
  449. package/lib/services/aws-devopsguru/index.js +2 -1
  450. package/lib/services/aws-directconnect/.jsiirc.json +16 -0
  451. package/lib/services/aws-directconnect/.mixins.jsiirc.json +16 -0
  452. package/lib/services/aws-directconnect/cfn-props-mixins.generated.d.ts +691 -0
  453. package/lib/services/aws-directconnect/cfn-props-mixins.generated.js +415 -0
  454. package/lib/services/aws-directconnect/index.d.ts +1 -0
  455. package/lib/services/aws-directconnect/index.js +4 -0
  456. package/lib/services/aws-directconnect/mixins.d.ts +1 -0
  457. package/lib/services/aws-directconnect/mixins.js +17 -0
  458. package/lib/services/aws-directoryservice/.jsiirc.json +1 -2
  459. package/lib/services/aws-directoryservice/.mixins.jsiirc.json +1 -2
  460. package/lib/services/aws-directoryservice/cfn-props-mixins.generated.d.ts +11 -7
  461. package/lib/services/aws-directoryservice/cfn-props-mixins.generated.js +29 -22
  462. package/lib/services/aws-dlm/.events.jsiirc.json +16 -0
  463. package/lib/services/aws-dlm/.jsiirc.json +1 -2
  464. package/lib/services/aws-dlm/.mixins.jsiirc.json +1 -2
  465. package/lib/services/aws-dlm/cfn-props-mixins.generated.d.ts +2 -3
  466. package/lib/services/aws-dlm/cfn-props-mixins.generated.js +4 -11
  467. package/lib/services/aws-dlm/events.d.ts +1 -0
  468. package/lib/services/aws-dlm/events.generated.d.ts +601 -0
  469. package/lib/services/aws-dlm/events.generated.js +316 -0
  470. package/lib/services/aws-dlm/events.js +17 -0
  471. package/lib/services/aws-dlm/index.d.ts +1 -0
  472. package/lib/services/aws-dlm/index.js +2 -1
  473. package/lib/services/aws-dms/.jsiirc.json +1 -2
  474. package/lib/services/aws-dms/.mixins.jsiirc.json +1 -2
  475. package/lib/services/aws-dms/cfn-props-mixins.generated.d.ts +22 -23
  476. package/lib/services/aws-dms/cfn-props-mixins.generated.js +44 -101
  477. package/lib/services/aws-docdb/.jsiirc.json +1 -2
  478. package/lib/services/aws-docdb/.mixins.jsiirc.json +1 -2
  479. package/lib/services/aws-docdb/cfn-props-mixins.generated.d.ts +12 -13
  480. package/lib/services/aws-docdb/cfn-props-mixins.generated.js +24 -56
  481. package/lib/services/aws-docdbelastic/.jsiirc.json +1 -2
  482. package/lib/services/aws-docdbelastic/.mixins.jsiirc.json +1 -2
  483. package/lib/services/aws-docdbelastic/cfn-props-mixins.generated.d.ts +5 -5
  484. package/lib/services/aws-docdbelastic/cfn-props-mixins.generated.js +17 -12
  485. package/lib/services/aws-dsql/.jsiirc.json +1 -2
  486. package/lib/services/aws-dsql/.mixins.jsiirc.json +1 -2
  487. package/lib/services/aws-dsql/cfn-props-mixins.generated.d.ts +2 -3
  488. package/lib/services/aws-dsql/cfn-props-mixins.generated.js +4 -11
  489. package/lib/services/aws-dynamodb/.jsiirc.json +1 -2
  490. package/lib/services/aws-dynamodb/.mixins.jsiirc.json +1 -2
  491. package/lib/services/aws-dynamodb/cfn-props-mixins.generated.d.ts +8 -8
  492. package/lib/services/aws-dynamodb/cfn-props-mixins.generated.js +80 -22
  493. package/lib/services/aws-ec2/.events.jsiirc.json +1 -2
  494. package/lib/services/aws-ec2/.jsiirc.json +1 -2
  495. package/lib/services/aws-ec2/.mixins.jsiirc.json +1 -2
  496. package/lib/services/aws-ec2/cfn-props-mixins.generated.d.ts +511 -321
  497. package/lib/services/aws-ec2/cfn-props-mixins.generated.js +1330 -1037
  498. package/lib/services/aws-ec2/events.generated.d.ts +2808 -2495
  499. package/lib/services/aws-ec2/events.generated.js +327 -56
  500. package/lib/services/aws-ec2/logs-delivery-mixins.generated.d.ts +357 -23
  501. package/lib/services/aws-ec2/logs-delivery-mixins.generated.js +437 -53
  502. package/lib/services/aws-ecr/.events.jsiirc.json +1 -2
  503. package/lib/services/aws-ecr/.jsiirc.json +1 -2
  504. package/lib/services/aws-ecr/.mixins.jsiirc.json +1 -2
  505. package/lib/services/aws-ecr/cfn-props-mixins.generated.d.ts +21 -21
  506. package/lib/services/aws-ecr/cfn-props-mixins.generated.js +93 -85
  507. package/lib/services/aws-ecr/events.generated.d.ts +799 -777
  508. package/lib/services/aws-ecr/events.generated.js +312 -182
  509. package/lib/services/aws-ecs/.events.jsiirc.json +1 -2
  510. package/lib/services/aws-ecs/.jsiirc.json +1 -2
  511. package/lib/services/aws-ecs/.mixins.jsiirc.json +1 -2
  512. package/lib/services/aws-ecs/cfn-props-mixins.generated.d.ts +54 -35
  513. package/lib/services/aws-ecs/cfn-props-mixins.generated.js +249 -79
  514. package/lib/services/aws-ecs/events.generated.d.ts +2099 -2085
  515. package/lib/services/aws-ecs/events.generated.js +208 -122
  516. package/lib/services/aws-ecs/mixins.d.ts +0 -1
  517. package/lib/services/aws-ecs/mixins.js +0 -1
  518. package/lib/services/aws-efs/.jsiirc.json +1 -2
  519. package/lib/services/aws-efs/.mixins.jsiirc.json +1 -2
  520. package/lib/services/aws-efs/cfn-props-mixins.generated.d.ts +12 -12
  521. package/lib/services/aws-efs/cfn-props-mixins.generated.js +49 -32
  522. package/lib/services/aws-eks/.jsiirc.json +1 -2
  523. package/lib/services/aws-eks/.mixins.jsiirc.json +1 -2
  524. package/lib/services/aws-eks/cfn-props-mixins.generated.d.ts +136 -130
  525. package/lib/services/aws-eks/cfn-props-mixins.generated.js +98 -78
  526. package/lib/services/aws-eks/logs-delivery-mixins.generated.d.ts +358 -18
  527. package/lib/services/aws-eks/logs-delivery-mixins.generated.js +407 -40
  528. package/lib/services/aws-elasticache/.events.jsiirc.json +16 -0
  529. package/lib/services/aws-elasticache/.jsiirc.json +1 -2
  530. package/lib/services/aws-elasticache/.mixins.jsiirc.json +1 -2
  531. package/lib/services/aws-elasticache/cfn-props-mixins.generated.d.ts +26 -26
  532. package/lib/services/aws-elasticache/cfn-props-mixins.generated.js +79 -95
  533. package/lib/services/aws-elasticache/events.d.ts +1 -0
  534. package/lib/services/aws-elasticache/events.generated.d.ts +702 -0
  535. package/lib/services/aws-elasticache/events.generated.js +485 -0
  536. package/lib/services/aws-elasticache/events.js +17 -0
  537. package/lib/services/aws-elasticache/index.d.ts +1 -0
  538. package/lib/services/aws-elasticache/index.js +2 -1
  539. package/lib/services/aws-elasticbeanstalk/.jsiirc.json +1 -2
  540. package/lib/services/aws-elasticbeanstalk/.mixins.jsiirc.json +1 -2
  541. package/lib/services/aws-elasticbeanstalk/cfn-props-mixins.generated.d.ts +14 -14
  542. package/lib/services/aws-elasticbeanstalk/cfn-props-mixins.generated.js +64 -41
  543. package/lib/services/aws-elasticloadbalancing/.events.jsiirc.json +16 -0
  544. package/lib/services/aws-elasticloadbalancing/.jsiirc.json +1 -2
  545. package/lib/services/aws-elasticloadbalancing/.mixins.jsiirc.json +1 -2
  546. package/lib/services/aws-elasticloadbalancing/cfn-props-mixins.generated.d.ts +7 -7
  547. package/lib/services/aws-elasticloadbalancing/cfn-props-mixins.generated.js +32 -12
  548. package/lib/services/aws-elasticloadbalancing/events.d.ts +1 -0
  549. package/lib/services/aws-elasticloadbalancing/events.generated.d.ts +565 -0
  550. package/lib/services/aws-elasticloadbalancing/events.generated.js +248 -0
  551. package/lib/services/aws-elasticloadbalancing/events.js +17 -0
  552. package/lib/services/aws-elasticloadbalancing/index.d.ts +1 -0
  553. package/lib/services/aws-elasticloadbalancing/index.js +2 -1
  554. package/lib/services/aws-elasticloadbalancingv2/.jsiirc.json +1 -2
  555. package/lib/services/aws-elasticloadbalancingv2/.mixins.jsiirc.json +1 -2
  556. package/lib/services/aws-elasticloadbalancingv2/cfn-props-mixins.generated.d.ts +32 -32
  557. package/lib/services/aws-elasticloadbalancingv2/cfn-props-mixins.generated.js +224 -69
  558. package/lib/services/aws-elasticloadbalancingv2/logs-delivery-mixins.generated.d.ts +100 -6
  559. package/lib/services/aws-elasticloadbalancingv2/logs-delivery-mixins.generated.js +113 -13
  560. package/lib/services/aws-elasticsearch/.jsiirc.json +1 -2
  561. package/lib/services/aws-elasticsearch/.mixins.jsiirc.json +1 -2
  562. package/lib/services/aws-elasticsearch/cfn-props-mixins.generated.d.ts +2 -3
  563. package/lib/services/aws-elasticsearch/cfn-props-mixins.generated.js +4 -11
  564. package/lib/services/aws-emr/.events.jsiirc.json +16 -0
  565. package/lib/services/aws-emr/.jsiirc.json +1 -2
  566. package/lib/services/aws-emr/.mixins.jsiirc.json +1 -2
  567. package/lib/services/aws-emr/cfn-props-mixins.generated.d.ts +27 -27
  568. package/lib/services/aws-emr/cfn-props-mixins.generated.js +70 -76
  569. package/lib/services/aws-emr/events.d.ts +1 -0
  570. package/lib/services/aws-emr/events.generated.d.ts +604 -0
  571. package/lib/services/aws-emr/events.generated.js +355 -0
  572. package/lib/services/aws-emr/events.js +17 -0
  573. package/lib/services/aws-emr/index.d.ts +1 -0
  574. package/lib/services/aws-emr/index.js +2 -1
  575. package/lib/services/aws-emrcontainers/.jsiirc.json +1 -2
  576. package/lib/services/aws-emrcontainers/.mixins.jsiirc.json +1 -2
  577. package/lib/services/aws-emrcontainers/cfn-props-mixins.generated.d.ts +6 -7
  578. package/lib/services/aws-emrcontainers/cfn-props-mixins.generated.js +12 -29
  579. package/lib/services/aws-emrserverless/.jsiirc.json +1 -2
  580. package/lib/services/aws-emrserverless/.mixins.jsiirc.json +1 -2
  581. package/lib/services/aws-emrserverless/cfn-props-mixins.generated.d.ts +2 -3
  582. package/lib/services/aws-emrserverless/cfn-props-mixins.generated.js +4 -11
  583. package/lib/services/aws-entityresolution/.jsiirc.json +1 -2
  584. package/lib/services/aws-entityresolution/.mixins.jsiirc.json +1 -2
  585. package/lib/services/aws-entityresolution/cfn-props-mixins.generated.d.ts +10 -11
  586. package/lib/services/aws-entityresolution/cfn-props-mixins.generated.js +20 -47
  587. package/lib/services/aws-entityresolution/logs-delivery-mixins.generated.d.ts +183 -11
  588. package/lib/services/aws-entityresolution/logs-delivery-mixins.generated.js +209 -24
  589. package/lib/services/aws-events/.events.jsiirc.json +16 -0
  590. package/lib/services/aws-events/.jsiirc.json +1 -2
  591. package/lib/services/aws-events/.mixins.jsiirc.json +1 -2
  592. package/lib/services/aws-events/cfn-props-mixins.generated.d.ts +40 -25
  593. package/lib/services/aws-events/cfn-props-mixins.generated.js +135 -60
  594. package/lib/services/aws-events/events.d.ts +1 -0
  595. package/lib/services/aws-events/events.generated.d.ts +24 -0
  596. package/lib/services/aws-events/events.generated.js +34 -0
  597. package/lib/services/aws-events/events.js +17 -0
  598. package/lib/services/aws-events/index.d.ts +1 -0
  599. package/lib/services/aws-events/index.js +2 -1
  600. package/lib/services/aws-events/logs-delivery-mixins.generated.d.ts +260 -14
  601. package/lib/services/aws-events/logs-delivery-mixins.generated.js +206 -24
  602. package/lib/services/aws-eventschemas/.jsiirc.json +1 -2
  603. package/lib/services/aws-eventschemas/.mixins.jsiirc.json +1 -2
  604. package/lib/services/aws-eventschemas/cfn-props-mixins.generated.d.ts +11 -11
  605. package/lib/services/aws-eventschemas/cfn-props-mixins.generated.js +38 -40
  606. package/lib/services/aws-evidently/.jsiirc.json +1 -2
  607. package/lib/services/aws-evidently/.mixins.jsiirc.json +1 -2
  608. package/lib/services/aws-evidently/cfn-props-mixins.generated.d.ts +16 -16
  609. package/lib/services/aws-evidently/cfn-props-mixins.generated.js +82 -50
  610. package/lib/services/aws-evs/.jsiirc.json +1 -2
  611. package/lib/services/aws-evs/.mixins.jsiirc.json +1 -2
  612. package/lib/services/aws-evs/cfn-props-mixins.generated.d.ts +2 -3
  613. package/lib/services/aws-evs/cfn-props-mixins.generated.js +4 -11
  614. package/lib/services/aws-finspace/.jsiirc.json +1 -2
  615. package/lib/services/aws-finspace/.mixins.jsiirc.json +1 -2
  616. package/lib/services/aws-finspace/cfn-props-mixins.generated.d.ts +2 -3
  617. package/lib/services/aws-finspace/cfn-props-mixins.generated.js +4 -11
  618. package/lib/services/aws-fis/.events.jsiirc.json +16 -0
  619. package/lib/services/aws-fis/.jsiirc.json +1 -2
  620. package/lib/services/aws-fis/.mixins.jsiirc.json +1 -2
  621. package/lib/services/aws-fis/cfn-props-mixins.generated.d.ts +7 -7
  622. package/lib/services/aws-fis/cfn-props-mixins.generated.js +30 -21
  623. package/lib/services/aws-fis/events.d.ts +1 -0
  624. package/lib/services/aws-fis/events.generated.d.ts +94 -0
  625. package/lib/services/aws-fis/events.generated.js +80 -0
  626. package/lib/services/aws-fis/events.js +17 -0
  627. package/lib/services/aws-fis/index.d.ts +1 -0
  628. package/lib/services/aws-fis/index.js +2 -1
  629. package/lib/services/aws-fms/.jsiirc.json +1 -2
  630. package/lib/services/aws-fms/.mixins.jsiirc.json +1 -2
  631. package/lib/services/aws-fms/cfn-props-mixins.generated.d.ts +6 -7
  632. package/lib/services/aws-fms/cfn-props-mixins.generated.js +12 -29
  633. package/lib/services/aws-forecast/.jsiirc.json +1 -2
  634. package/lib/services/aws-forecast/.mixins.jsiirc.json +1 -2
  635. package/lib/services/aws-forecast/cfn-props-mixins.generated.d.ts +4 -5
  636. package/lib/services/aws-forecast/cfn-props-mixins.generated.js +8 -20
  637. package/lib/services/aws-frauddetector/.jsiirc.json +1 -2
  638. package/lib/services/aws-frauddetector/.mixins.jsiirc.json +1 -2
  639. package/lib/services/aws-frauddetector/cfn-props-mixins.generated.d.ts +14 -15
  640. package/lib/services/aws-frauddetector/cfn-props-mixins.generated.js +28 -65
  641. package/lib/services/aws-fsx/.jsiirc.json +1 -2
  642. package/lib/services/aws-fsx/.mixins.jsiirc.json +1 -2
  643. package/lib/services/aws-fsx/cfn-props-mixins.generated.d.ts +12 -13
  644. package/lib/services/aws-fsx/cfn-props-mixins.generated.js +24 -56
  645. package/lib/services/aws-gamelift/.events.jsiirc.json +16 -0
  646. package/lib/services/aws-gamelift/.jsiirc.json +1 -2
  647. package/lib/services/aws-gamelift/.mixins.jsiirc.json +1 -2
  648. package/lib/services/aws-gamelift/cfn-props-mixins.generated.d.ts +248 -204
  649. package/lib/services/aws-gamelift/cfn-props-mixins.generated.js +46 -103
  650. package/lib/services/aws-gamelift/events.d.ts +1 -0
  651. package/lib/services/aws-gamelift/events.generated.d.ts +361 -0
  652. package/lib/services/aws-gamelift/events.generated.js +189 -0
  653. package/lib/services/aws-gamelift/events.js +17 -0
  654. package/lib/services/aws-gamelift/index.d.ts +1 -0
  655. package/lib/services/aws-gamelift/index.js +2 -1
  656. package/lib/services/aws-gameliftstreams/.jsiirc.json +1 -2
  657. package/lib/services/aws-gameliftstreams/.mixins.jsiirc.json +1 -2
  658. package/lib/services/aws-gameliftstreams/cfn-props-mixins.generated.d.ts +4 -5
  659. package/lib/services/aws-gameliftstreams/cfn-props-mixins.generated.js +8 -20
  660. package/lib/services/aws-globalaccelerator/.jsiirc.json +1 -2
  661. package/lib/services/aws-globalaccelerator/.mixins.jsiirc.json +1 -2
  662. package/lib/services/aws-globalaccelerator/cfn-props-mixins.generated.d.ts +12 -12
  663. package/lib/services/aws-globalaccelerator/cfn-props-mixins.generated.js +51 -40
  664. package/lib/services/aws-glue/.events.jsiirc.json +1 -2
  665. package/lib/services/aws-glue/.jsiirc.json +1 -2
  666. package/lib/services/aws-glue/.mixins.jsiirc.json +1 -2
  667. package/lib/services/aws-glue/cfn-props-mixins.generated.d.ts +60 -60
  668. package/lib/services/aws-glue/cfn-props-mixins.generated.js +237 -224
  669. package/lib/services/aws-glue/events.generated.d.ts +561 -545
  670. package/lib/services/aws-glue/events.generated.js +230 -124
  671. package/lib/services/aws-grafana/.jsiirc.json +1 -2
  672. package/lib/services/aws-grafana/.mixins.jsiirc.json +1 -2
  673. package/lib/services/aws-grafana/cfn-props-mixins.generated.d.ts +4 -4
  674. package/lib/services/aws-grafana/cfn-props-mixins.generated.js +15 -12
  675. package/lib/services/aws-greengrass/.jsiirc.json +1 -2
  676. package/lib/services/aws-greengrass/.mixins.jsiirc.json +1 -2
  677. package/lib/services/aws-greengrass/cfn-props-mixins.generated.d.ts +32 -33
  678. package/lib/services/aws-greengrass/cfn-props-mixins.generated.js +64 -146
  679. package/lib/services/aws-greengrassv2/.jsiirc.json +1 -2
  680. package/lib/services/aws-greengrassv2/.mixins.jsiirc.json +1 -2
  681. package/lib/services/aws-greengrassv2/cfn-props-mixins.generated.d.ts +4 -5
  682. package/lib/services/aws-greengrassv2/cfn-props-mixins.generated.js +8 -20
  683. package/lib/services/aws-groundstation/.jsiirc.json +1 -2
  684. package/lib/services/aws-groundstation/.mixins.jsiirc.json +1 -2
  685. package/lib/services/aws-groundstation/cfn-props-mixins.generated.d.ts +14 -14
  686. package/lib/services/aws-groundstation/cfn-props-mixins.generated.js +74 -40
  687. package/lib/services/aws-guardduty/.events.jsiirc.json +1 -2
  688. package/lib/services/aws-guardduty/.jsiirc.json +1 -2
  689. package/lib/services/aws-guardduty/.mixins.jsiirc.json +1 -2
  690. package/lib/services/aws-guardduty/cfn-props-mixins.generated.d.ts +20 -21
  691. package/lib/services/aws-guardduty/cfn-props-mixins.generated.js +40 -92
  692. package/lib/services/aws-guardduty/events.generated.d.ts +4340 -3814
  693. package/lib/services/aws-guardduty/events.generated.js +428 -25
  694. package/lib/services/aws-healthimaging/.events.jsiirc.json +1 -2
  695. package/lib/services/aws-healthimaging/.jsiirc.json +1 -2
  696. package/lib/services/aws-healthimaging/.mixins.jsiirc.json +1 -2
  697. package/lib/services/aws-healthimaging/cfn-props-mixins.generated.d.ts +3 -3
  698. package/lib/services/aws-healthimaging/cfn-props-mixins.generated.js +4 -11
  699. package/lib/services/aws-healthimaging/events.generated.d.ts +1164 -1090
  700. package/lib/services/aws-healthimaging/events.generated.js +603 -187
  701. package/lib/services/aws-healthlake/.events.jsiirc.json +16 -0
  702. package/lib/services/aws-healthlake/.jsiirc.json +1 -2
  703. package/lib/services/aws-healthlake/.mixins.jsiirc.json +1 -2
  704. package/lib/services/aws-healthlake/cfn-props-mixins.generated.d.ts +2 -3
  705. package/lib/services/aws-healthlake/cfn-props-mixins.generated.js +4 -11
  706. package/lib/services/aws-healthlake/events.d.ts +1 -0
  707. package/lib/services/aws-healthlake/events.generated.d.ts +908 -0
  708. package/lib/services/aws-healthlake/events.generated.js +789 -0
  709. package/lib/services/aws-healthlake/events.js +17 -0
  710. package/lib/services/aws-healthlake/index.d.ts +1 -0
  711. package/lib/services/aws-healthlake/index.js +2 -1
  712. package/lib/services/aws-iam/.jsiirc.json +1 -2
  713. package/lib/services/aws-iam/.mixins.jsiirc.json +1 -2
  714. package/lib/services/aws-iam/cfn-props-mixins.generated.d.ts +43 -43
  715. package/lib/services/aws-iam/cfn-props-mixins.generated.js +129 -151
  716. package/lib/services/aws-identitystore/.jsiirc.json +1 -2
  717. package/lib/services/aws-identitystore/.mixins.jsiirc.json +1 -2
  718. package/lib/services/aws-identitystore/cfn-props-mixins.generated.d.ts +4 -5
  719. package/lib/services/aws-identitystore/cfn-props-mixins.generated.js +8 -20
  720. package/lib/services/aws-imagebuilder/.events.jsiirc.json +16 -0
  721. package/lib/services/aws-imagebuilder/.jsiirc.json +1 -2
  722. package/lib/services/aws-imagebuilder/.mixins.jsiirc.json +1 -2
  723. package/lib/services/aws-imagebuilder/cfn-props-mixins.generated.d.ts +32 -32
  724. package/lib/services/aws-imagebuilder/cfn-props-mixins.generated.js +175 -89
  725. package/lib/services/aws-imagebuilder/events.d.ts +1 -0
  726. package/lib/services/aws-imagebuilder/events.generated.d.ts +186 -0
  727. package/lib/services/aws-imagebuilder/events.generated.js +170 -0
  728. package/lib/services/aws-imagebuilder/events.js +17 -0
  729. package/lib/services/aws-imagebuilder/index.d.ts +1 -0
  730. package/lib/services/aws-imagebuilder/index.js +2 -1
  731. package/lib/services/aws-inspector/.jsiirc.json +1 -2
  732. package/lib/services/aws-inspector/.mixins.jsiirc.json +1 -2
  733. package/lib/services/aws-inspector/cfn-props-mixins.generated.d.ts +9 -9
  734. package/lib/services/aws-inspector/cfn-props-mixins.generated.js +34 -31
  735. package/lib/services/aws-inspectorv2/.jsiirc.json +1 -2
  736. package/lib/services/aws-inspectorv2/.mixins.jsiirc.json +1 -2
  737. package/lib/services/aws-inspectorv2/cfn-props-mixins.generated.d.ts +8 -9
  738. package/lib/services/aws-inspectorv2/cfn-props-mixins.generated.js +16 -38
  739. package/lib/services/aws-internetmonitor/.jsiirc.json +1 -2
  740. package/lib/services/aws-internetmonitor/.mixins.jsiirc.json +1 -2
  741. package/lib/services/aws-internetmonitor/cfn-props-mixins.generated.d.ts +2 -3
  742. package/lib/services/aws-internetmonitor/cfn-props-mixins.generated.js +4 -11
  743. package/lib/services/aws-invoicing/.jsiirc.json +1 -2
  744. package/lib/services/aws-invoicing/.mixins.jsiirc.json +1 -2
  745. package/lib/services/aws-invoicing/cfn-props-mixins.generated.d.ts +2 -3
  746. package/lib/services/aws-invoicing/cfn-props-mixins.generated.js +4 -11
  747. package/lib/services/aws-iot/.jsiirc.json +1 -2
  748. package/lib/services/aws-iot/.mixins.jsiirc.json +1 -2
  749. package/lib/services/aws-iot/cfn-props-mixins.generated.d.ts +80 -80
  750. package/lib/services/aws-iot/cfn-props-mixins.generated.js +316 -276
  751. package/lib/services/aws-iotanalytics/.events.jsiirc.json +1 -2
  752. package/lib/services/aws-iotanalytics/.jsiirc.json +1 -2
  753. package/lib/services/aws-iotanalytics/.mixins.jsiirc.json +1 -2
  754. package/lib/services/aws-iotanalytics/cfn-props-mixins.generated.d.ts +12 -12
  755. package/lib/services/aws-iotanalytics/cfn-props-mixins.generated.js +95 -40
  756. package/lib/services/aws-iotanalytics/events.generated.d.ts +1025 -69
  757. package/lib/services/aws-iotanalytics/events.generated.js +449 -28
  758. package/lib/services/aws-iotcoredeviceadvisor/.jsiirc.json +1 -2
  759. package/lib/services/aws-iotcoredeviceadvisor/.mixins.jsiirc.json +1 -2
  760. package/lib/services/aws-iotcoredeviceadvisor/cfn-props-mixins.generated.d.ts +2 -3
  761. package/lib/services/aws-iotcoredeviceadvisor/cfn-props-mixins.generated.js +4 -11
  762. package/lib/services/aws-iotevents/.jsiirc.json +1 -2
  763. package/lib/services/aws-iotevents/.mixins.jsiirc.json +1 -2
  764. package/lib/services/aws-iotevents/cfn-props-mixins.generated.d.ts +9 -9
  765. package/lib/services/aws-iotevents/cfn-props-mixins.generated.js +120 -30
  766. package/lib/services/aws-iotfleethub/.jsiirc.json +1 -2
  767. package/lib/services/aws-iotfleethub/.mixins.jsiirc.json +1 -2
  768. package/lib/services/aws-iotfleethub/cfn-props-mixins.generated.d.ts +2 -3
  769. package/lib/services/aws-iotfleethub/cfn-props-mixins.generated.js +4 -11
  770. package/lib/services/aws-iotfleetwise/.jsiirc.json +1 -2
  771. package/lib/services/aws-iotfleetwise/.mixins.jsiirc.json +1 -2
  772. package/lib/services/aws-iotfleetwise/cfn-props-mixins.generated.d.ts +14 -15
  773. package/lib/services/aws-iotfleetwise/cfn-props-mixins.generated.js +28 -65
  774. package/lib/services/aws-iotfleetwise/logs-delivery-mixins.generated.d.ts +109 -9
  775. package/lib/services/aws-iotfleetwise/logs-delivery-mixins.generated.js +151 -22
  776. package/lib/services/aws-iotsitewise/.jsiirc.json +1 -2
  777. package/lib/services/aws-iotsitewise/.mixins.jsiirc.json +1 -2
  778. package/lib/services/aws-iotsitewise/cfn-props-mixins.generated.d.ts +20 -20
  779. package/lib/services/aws-iotsitewise/cfn-props-mixins.generated.js +47 -84
  780. package/lib/services/aws-iotthingsgraph/.jsiirc.json +1 -2
  781. package/lib/services/aws-iotthingsgraph/.mixins.jsiirc.json +1 -2
  782. package/lib/services/aws-iotthingsgraph/cfn-props-mixins.generated.d.ts +2 -3
  783. package/lib/services/aws-iotthingsgraph/cfn-props-mixins.generated.js +4 -11
  784. package/lib/services/aws-iottwinmaker/.jsiirc.json +1 -2
  785. package/lib/services/aws-iottwinmaker/.mixins.jsiirc.json +1 -2
  786. package/lib/services/aws-iottwinmaker/cfn-props-mixins.generated.d.ts +13 -13
  787. package/lib/services/aws-iottwinmaker/cfn-props-mixins.generated.js +33 -48
  788. package/lib/services/aws-iotwireless/.jsiirc.json +1 -2
  789. package/lib/services/aws-iotwireless/.mixins.jsiirc.json +1 -2
  790. package/lib/services/aws-iotwireless/cfn-props-mixins.generated.d.ts +22 -23
  791. package/lib/services/aws-iotwireless/cfn-props-mixins.generated.js +44 -101
  792. package/lib/services/aws-ivs/.events.jsiirc.json +16 -0
  793. package/lib/services/aws-ivs/.jsiirc.json +1 -2
  794. package/lib/services/aws-ivs/.mixins.jsiirc.json +1 -2
  795. package/lib/services/aws-ivs/cfn-props-mixins.generated.d.ts +24 -24
  796. package/lib/services/aws-ivs/cfn-props-mixins.generated.js +89 -95
  797. package/lib/services/aws-ivs/events.d.ts +1 -0
  798. package/lib/services/aws-ivs/events.generated.d.ts +218 -0
  799. package/lib/services/aws-ivs/events.generated.js +189 -0
  800. package/lib/services/aws-ivs/events.js +17 -0
  801. package/lib/services/aws-ivs/index.d.ts +1 -0
  802. package/lib/services/aws-ivs/index.js +2 -1
  803. package/lib/services/aws-ivschat/.jsiirc.json +1 -2
  804. package/lib/services/aws-ivschat/.mixins.jsiirc.json +1 -2
  805. package/lib/services/aws-ivschat/cfn-props-mixins.generated.d.ts +10 -10
  806. package/lib/services/aws-ivschat/cfn-props-mixins.generated.js +75 -22
  807. package/lib/services/aws-ivschat/logs-delivery-mixins.generated.d.ts +55 -5
  808. package/lib/services/aws-ivschat/logs-delivery-mixins.generated.js +76 -12
  809. package/lib/services/aws-kafkaconnect/.jsiirc.json +1 -2
  810. package/lib/services/aws-kafkaconnect/.mixins.jsiirc.json +1 -2
  811. package/lib/services/aws-kafkaconnect/cfn-props-mixins.generated.d.ts +12 -7
  812. package/lib/services/aws-kafkaconnect/cfn-props-mixins.generated.js +12 -29
  813. package/lib/services/aws-kafkaconnect/logs-delivery-mixins.generated.d.ts +55 -5
  814. package/lib/services/aws-kafkaconnect/logs-delivery-mixins.generated.js +76 -12
  815. package/lib/services/aws-kendra/.jsiirc.json +1 -2
  816. package/lib/services/aws-kendra/.mixins.jsiirc.json +1 -2
  817. package/lib/services/aws-kendra/cfn-props-mixins.generated.d.ts +15 -15
  818. package/lib/services/aws-kendra/cfn-props-mixins.generated.js +153 -31
  819. package/lib/services/aws-kendraranking/.jsiirc.json +1 -2
  820. package/lib/services/aws-kendraranking/.mixins.jsiirc.json +1 -2
  821. package/lib/services/aws-kendraranking/cfn-props-mixins.generated.d.ts +2 -3
  822. package/lib/services/aws-kendraranking/cfn-props-mixins.generated.js +4 -11
  823. package/lib/services/aws-kinesis/.jsiirc.json +1 -2
  824. package/lib/services/aws-kinesis/.mixins.jsiirc.json +1 -2
  825. package/lib/services/aws-kinesis/cfn-props-mixins.generated.d.ts +9 -9
  826. package/lib/services/aws-kinesis/cfn-props-mixins.generated.js +43 -31
  827. package/lib/services/aws-kinesisanalytics/.jsiirc.json +1 -2
  828. package/lib/services/aws-kinesisanalytics/.mixins.jsiirc.json +1 -2
  829. package/lib/services/aws-kinesisanalytics/cfn-props-mixins.generated.d.ts +6 -7
  830. package/lib/services/aws-kinesisanalytics/cfn-props-mixins.generated.js +12 -29
  831. package/lib/services/aws-kinesisanalyticsv2/.jsiirc.json +1 -2
  832. package/lib/services/aws-kinesisanalyticsv2/.mixins.jsiirc.json +1 -2
  833. package/lib/services/aws-kinesisanalyticsv2/cfn-props-mixins.generated.d.ts +10 -10
  834. package/lib/services/aws-kinesisanalyticsv2/cfn-props-mixins.generated.js +27 -39
  835. package/lib/services/aws-kinesisfirehose/.jsiirc.json +1 -2
  836. package/lib/services/aws-kinesisfirehose/.mixins.jsiirc.json +1 -2
  837. package/lib/services/aws-kinesisfirehose/cfn-props-mixins.generated.d.ts +25 -25
  838. package/lib/services/aws-kinesisfirehose/cfn-props-mixins.generated.js +341 -12
  839. package/lib/services/aws-kinesisvideo/.jsiirc.json +1 -2
  840. package/lib/services/aws-kinesisvideo/.mixins.jsiirc.json +1 -2
  841. package/lib/services/aws-kinesisvideo/cfn-props-mixins.generated.d.ts +4 -5
  842. package/lib/services/aws-kinesisvideo/cfn-props-mixins.generated.js +8 -20
  843. package/lib/services/aws-kms/.events.jsiirc.json +1 -2
  844. package/lib/services/aws-kms/.jsiirc.json +1 -2
  845. package/lib/services/aws-kms/.mixins.jsiirc.json +1 -2
  846. package/lib/services/aws-kms/cfn-props-mixins.generated.d.ts +8 -8
  847. package/lib/services/aws-kms/cfn-props-mixins.generated.js +23 -30
  848. package/lib/services/aws-kms/events.generated.d.ts +457 -443
  849. package/lib/services/aws-kms/events.generated.js +208 -122
  850. package/lib/services/aws-lakeformation/.jsiirc.json +1 -2
  851. package/lib/services/aws-lakeformation/.mixins.jsiirc.json +1 -2
  852. package/lib/services/aws-lakeformation/cfn-props-mixins.generated.d.ts +16 -16
  853. package/lib/services/aws-lakeformation/cfn-props-mixins.generated.js +47 -66
  854. package/lib/services/aws-lambda/.jsiirc.json +1 -2
  855. package/lib/services/aws-lambda/.mixins.jsiirc.json +1 -2
  856. package/lib/services/aws-lambda/cfn-props-mixins.generated.d.ts +48 -52
  857. package/lib/services/aws-lambda/cfn-props-mixins.generated.js +294 -111
  858. package/lib/services/aws-launchwizard/.jsiirc.json +1 -2
  859. package/lib/services/aws-launchwizard/.mixins.jsiirc.json +1 -2
  860. package/lib/services/aws-launchwizard/cfn-props-mixins.generated.d.ts +2 -3
  861. package/lib/services/aws-launchwizard/cfn-props-mixins.generated.js +4 -11
  862. package/lib/services/aws-lex/.jsiirc.json +1 -2
  863. package/lib/services/aws-lex/.mixins.jsiirc.json +1 -2
  864. package/lib/services/aws-lex/cfn-props-mixins.generated.d.ts +14 -14
  865. package/lib/services/aws-lex/cfn-props-mixins.generated.js +148 -41
  866. package/lib/services/aws-licensemanager/.jsiirc.json +1 -2
  867. package/lib/services/aws-licensemanager/.mixins.jsiirc.json +1 -2
  868. package/lib/services/aws-licensemanager/cfn-props-mixins.generated.d.ts +4 -5
  869. package/lib/services/aws-licensemanager/cfn-props-mixins.generated.js +8 -20
  870. package/lib/services/aws-lightsail/.jsiirc.json +1 -2
  871. package/lib/services/aws-lightsail/.mixins.jsiirc.json +1 -2
  872. package/lib/services/aws-lightsail/cfn-props-mixins.generated.d.ts +30 -31
  873. package/lib/services/aws-lightsail/cfn-props-mixins.generated.js +60 -137
  874. package/lib/services/aws-location/.jsiirc.json +1 -2
  875. package/lib/services/aws-location/.mixins.jsiirc.json +1 -2
  876. package/lib/services/aws-location/cfn-props-mixins.generated.d.ts +14 -15
  877. package/lib/services/aws-location/cfn-props-mixins.generated.js +28 -65
  878. package/lib/services/aws-logs/.events.jsiirc.json +1 -2
  879. package/lib/services/aws-logs/.jsiirc.json +1 -2
  880. package/lib/services/aws-logs/.mixins.jsiirc.json +1 -2
  881. package/lib/services/aws-logs/cfn-props-mixins.generated.d.ts +41 -41
  882. package/lib/services/aws-logs/cfn-props-mixins.generated.js +134 -143
  883. package/lib/services/aws-logs/events.generated.d.ts +330 -328
  884. package/lib/services/aws-logs/events.generated.js +52 -32
  885. package/lib/services/aws-logs/index.d.ts +1 -0
  886. package/lib/services/aws-logs/index.js +1 -0
  887. package/lib/services/aws-logs/logs-delivery-mixins.generated.d.ts +149 -0
  888. package/lib/services/aws-logs/logs-delivery-mixins.generated.js +213 -0
  889. package/lib/services/aws-logs/logs-delivery.d.ts +47 -53
  890. package/lib/services/aws-logs/logs-delivery.js +115 -220
  891. package/lib/services/aws-logs/logs-destination.d.ts +140 -0
  892. package/lib/services/aws-logs/logs-destination.js +322 -0
  893. package/lib/services/aws-logs/mixins.d.ts +1 -0
  894. package/lib/services/aws-logs/mixins.js +1 -0
  895. package/lib/services/aws-logs/reflections.d.ts +21 -0
  896. package/lib/services/aws-logs/reflections.js +39 -0
  897. package/lib/services/aws-lookoutequipment/.jsiirc.json +1 -2
  898. package/lib/services/aws-lookoutequipment/.mixins.jsiirc.json +1 -2
  899. package/lib/services/aws-lookoutequipment/cfn-props-mixins.generated.d.ts +2 -3
  900. package/lib/services/aws-lookoutequipment/cfn-props-mixins.generated.js +4 -11
  901. package/lib/services/aws-lookoutmetrics/.jsiirc.json +1 -2
  902. package/lib/services/aws-lookoutmetrics/.mixins.jsiirc.json +1 -2
  903. package/lib/services/aws-lookoutmetrics/cfn-props-mixins.generated.d.ts +13 -13
  904. package/lib/services/aws-lookoutmetrics/cfn-props-mixins.generated.js +145 -22
  905. package/lib/services/aws-lookoutvision/.jsiirc.json +1 -2
  906. package/lib/services/aws-lookoutvision/.mixins.jsiirc.json +1 -2
  907. package/lib/services/aws-lookoutvision/cfn-props-mixins.generated.d.ts +3 -3
  908. package/lib/services/aws-lookoutvision/cfn-props-mixins.generated.js +4 -11
  909. package/lib/services/aws-m2/.jsiirc.json +1 -2
  910. package/lib/services/aws-m2/.mixins.jsiirc.json +1 -2
  911. package/lib/services/aws-m2/cfn-props-mixins.generated.d.ts +6 -7
  912. package/lib/services/aws-m2/cfn-props-mixins.generated.js +12 -29
  913. package/lib/services/aws-m2/logs-delivery-mixins.generated.d.ts +214 -14
  914. package/lib/services/aws-m2/logs-delivery-mixins.generated.js +295 -36
  915. package/lib/services/aws-macie/.jsiirc.json +1 -2
  916. package/lib/services/aws-macie/.mixins.jsiirc.json +1 -2
  917. package/lib/services/aws-macie/cfn-props-mixins.generated.d.ts +8 -9
  918. package/lib/services/aws-macie/cfn-props-mixins.generated.js +16 -38
  919. package/lib/services/aws-managedblockchain/.events.jsiirc.json +16 -0
  920. package/lib/services/aws-managedblockchain/.jsiirc.json +1 -2
  921. package/lib/services/aws-managedblockchain/.mixins.jsiirc.json +1 -2
  922. package/lib/services/aws-managedblockchain/cfn-props-mixins.generated.d.ts +6 -7
  923. package/lib/services/aws-managedblockchain/cfn-props-mixins.generated.js +12 -29
  924. package/lib/services/aws-managedblockchain/events.d.ts +1 -0
  925. package/lib/services/aws-managedblockchain/events.generated.d.ts +174 -0
  926. package/lib/services/aws-managedblockchain/events.generated.js +105 -0
  927. package/lib/services/aws-managedblockchain/events.js +17 -0
  928. package/lib/services/aws-managedblockchain/index.d.ts +1 -0
  929. package/lib/services/aws-managedblockchain/index.js +2 -1
  930. package/lib/services/aws-mediaconnect/.jsiirc.json +1 -2
  931. package/lib/services/aws-mediaconnect/.mixins.jsiirc.json +1 -2
  932. package/lib/services/aws-mediaconnect/cfn-props-mixins.generated.d.ts +24 -25
  933. package/lib/services/aws-mediaconnect/cfn-props-mixins.generated.js +48 -110
  934. package/lib/services/aws-mediaconvert/.jsiirc.json +1 -2
  935. package/lib/services/aws-mediaconvert/.mixins.jsiirc.json +1 -2
  936. package/lib/services/aws-mediaconvert/cfn-props-mixins.generated.d.ts +6 -7
  937. package/lib/services/aws-mediaconvert/cfn-props-mixins.generated.js +12 -29
  938. package/lib/services/aws-medialive/.events.jsiirc.json +1 -2
  939. package/lib/services/aws-medialive/.jsiirc.json +1 -2
  940. package/lib/services/aws-medialive/.mixins.jsiirc.json +1 -2
  941. package/lib/services/aws-medialive/cfn-props-mixins.generated.d.ts +82 -29
  942. package/lib/services/aws-medialive/cfn-props-mixins.generated.js +57 -129
  943. package/lib/services/aws-medialive/events.generated.d.ts +295 -61
  944. package/lib/services/aws-medialive/events.generated.js +231 -25
  945. package/lib/services/aws-mediapackage/.events.jsiirc.json +1 -2
  946. package/lib/services/aws-mediapackage/.jsiirc.json +1 -2
  947. package/lib/services/aws-mediapackage/.mixins.jsiirc.json +1 -2
  948. package/lib/services/aws-mediapackage/cfn-props-mixins.generated.d.ts +10 -11
  949. package/lib/services/aws-mediapackage/cfn-props-mixins.generated.js +20 -47
  950. package/lib/services/aws-mediapackage/events.generated.d.ts +225 -131
  951. package/lib/services/aws-mediapackage/events.generated.js +136 -26
  952. package/lib/services/aws-mediapackagev2/.jsiirc.json +1 -2
  953. package/lib/services/aws-mediapackagev2/.mixins.jsiirc.json +1 -2
  954. package/lib/services/aws-mediapackagev2/cfn-props-mixins.generated.d.ts +10 -11
  955. package/lib/services/aws-mediapackagev2/cfn-props-mixins.generated.js +20 -47
  956. package/lib/services/aws-mediapackagev2/logs-delivery-mixins.generated.d.ts +195 -10
  957. package/lib/services/aws-mediapackagev2/logs-delivery-mixins.generated.js +220 -22
  958. package/lib/services/aws-mediastore/.jsiirc.json +1 -2
  959. package/lib/services/aws-mediastore/.mixins.jsiirc.json +1 -2
  960. package/lib/services/aws-mediastore/cfn-props-mixins.generated.d.ts +2 -3
  961. package/lib/services/aws-mediastore/cfn-props-mixins.generated.js +4 -11
  962. package/lib/services/aws-mediatailor/.jsiirc.json +1 -2
  963. package/lib/services/aws-mediatailor/.mixins.jsiirc.json +1 -2
  964. package/lib/services/aws-mediatailor/cfn-props-mixins.generated.d.ts +12 -13
  965. package/lib/services/aws-mediatailor/cfn-props-mixins.generated.js +24 -56
  966. package/lib/services/aws-mediatailor/logs-delivery-mixins.generated.d.ts +299 -14
  967. package/lib/services/aws-mediatailor/logs-delivery-mixins.generated.js +336 -31
  968. package/lib/services/aws-memorydb/.jsiirc.json +1 -2
  969. package/lib/services/aws-memorydb/.mixins.jsiirc.json +1 -2
  970. package/lib/services/aws-memorydb/cfn-props-mixins.generated.d.ts +15 -15
  971. package/lib/services/aws-memorydb/cfn-props-mixins.generated.js +46 -58
  972. package/lib/services/aws-mpa/.jsiirc.json +1 -2
  973. package/lib/services/aws-mpa/.mixins.jsiirc.json +1 -2
  974. package/lib/services/aws-mpa/cfn-props-mixins.generated.d.ts +4 -5
  975. package/lib/services/aws-mpa/cfn-props-mixins.generated.js +8 -20
  976. package/lib/services/aws-msk/.jsiirc.json +1 -2
  977. package/lib/services/aws-msk/.mixins.jsiirc.json +1 -2
  978. package/lib/services/aws-msk/cfn-props-mixins.generated.d.ts +25 -25
  979. package/lib/services/aws-msk/cfn-props-mixins.generated.js +156 -76
  980. package/lib/services/aws-msk/logs-delivery-mixins.generated.d.ts +188 -5
  981. package/lib/services/aws-msk/logs-delivery-mixins.generated.js +269 -12
  982. package/lib/services/aws-mwaa/.jsiirc.json +1 -2
  983. package/lib/services/aws-mwaa/.mixins.jsiirc.json +1 -2
  984. package/lib/services/aws-mwaa/cfn-props-mixins.generated.d.ts +8 -8
  985. package/lib/services/aws-mwaa/cfn-props-mixins.generated.js +30 -12
  986. package/lib/services/aws-mwaaserverless/.jsiirc.json +1 -2
  987. package/lib/services/aws-mwaaserverless/.mixins.jsiirc.json +1 -2
  988. package/lib/services/aws-mwaaserverless/cfn-props-mixins.generated.d.ts +2 -3
  989. package/lib/services/aws-mwaaserverless/cfn-props-mixins.generated.js +4 -11
  990. package/lib/services/aws-neptune/.jsiirc.json +1 -2
  991. package/lib/services/aws-neptune/.mixins.jsiirc.json +1 -2
  992. package/lib/services/aws-neptune/cfn-props-mixins.generated.d.ts +16 -16
  993. package/lib/services/aws-neptune/cfn-props-mixins.generated.js +48 -57
  994. package/lib/services/aws-neptunegraph/.jsiirc.json +1 -2
  995. package/lib/services/aws-neptunegraph/.mixins.jsiirc.json +1 -2
  996. package/lib/services/aws-neptunegraph/cfn-props-mixins.generated.d.ts +4 -5
  997. package/lib/services/aws-neptunegraph/cfn-props-mixins.generated.js +8 -20
  998. package/lib/services/aws-networkfirewall/.jsiirc.json +1 -2
  999. package/lib/services/aws-networkfirewall/.mixins.jsiirc.json +1 -2
  1000. package/lib/services/aws-networkfirewall/cfn-props-mixins.generated.d.ts +19 -19
  1001. package/lib/services/aws-networkfirewall/cfn-props-mixins.generated.js +107 -59
  1002. package/lib/services/aws-networkfirewall/logs-delivery-mixins.generated.d.ts +161 -11
  1003. package/lib/services/aws-networkfirewall/logs-delivery-mixins.generated.js +222 -28
  1004. package/lib/services/aws-networkmanager/.events.jsiirc.json +1 -2
  1005. package/lib/services/aws-networkmanager/.jsiirc.json +1 -2
  1006. package/lib/services/aws-networkmanager/.mixins.jsiirc.json +1 -2
  1007. package/lib/services/aws-networkmanager/cfn-props-mixins.generated.d.ts +34 -34
  1008. package/lib/services/aws-networkmanager/cfn-props-mixins.generated.js +75 -147
  1009. package/lib/services/aws-networkmanager/events.generated.d.ts +160 -154
  1010. package/lib/services/aws-networkmanager/events.generated.js +76 -34
  1011. package/lib/services/aws-nimblestudio/.jsiirc.json +1 -2
  1012. package/lib/services/aws-nimblestudio/.mixins.jsiirc.json +1 -2
  1013. package/lib/services/aws-nimblestudio/cfn-props-mixins.generated.d.ts +11 -11
  1014. package/lib/services/aws-nimblestudio/cfn-props-mixins.generated.js +29 -39
  1015. package/lib/services/aws-notifications/.jsiirc.json +1 -2
  1016. package/lib/services/aws-notifications/.mixins.jsiirc.json +1 -2
  1017. package/lib/services/aws-notifications/cfn-props-mixins.generated.d.ts +14 -15
  1018. package/lib/services/aws-notifications/cfn-props-mixins.generated.js +28 -65
  1019. package/lib/services/aws-notificationscontacts/.jsiirc.json +1 -2
  1020. package/lib/services/aws-notificationscontacts/.mixins.jsiirc.json +1 -2
  1021. package/lib/services/aws-notificationscontacts/cfn-props-mixins.generated.d.ts +2 -3
  1022. package/lib/services/aws-notificationscontacts/cfn-props-mixins.generated.js +4 -11
  1023. package/lib/services/aws-oam/.jsiirc.json +1 -2
  1024. package/lib/services/aws-oam/.mixins.jsiirc.json +1 -2
  1025. package/lib/services/aws-oam/cfn-props-mixins.generated.d.ts +4 -5
  1026. package/lib/services/aws-oam/cfn-props-mixins.generated.js +8 -20
  1027. package/lib/services/aws-observabilityadmin/.jsiirc.json +1 -2
  1028. package/lib/services/aws-observabilityadmin/.mixins.jsiirc.json +1 -2
  1029. package/lib/services/aws-observabilityadmin/cfn-props-mixins.generated.d.ts +25 -11
  1030. package/lib/services/aws-observabilityadmin/cfn-props-mixins.generated.js +20 -47
  1031. package/lib/services/aws-odb/.jsiirc.json +1 -2
  1032. package/lib/services/aws-odb/.mixins.jsiirc.json +1 -2
  1033. package/lib/services/aws-odb/cfn-props-mixins.generated.d.ts +10 -11
  1034. package/lib/services/aws-odb/cfn-props-mixins.generated.js +20 -47
  1035. package/lib/services/aws-omics/.events.jsiirc.json +1 -2
  1036. package/lib/services/aws-omics/.jsiirc.json +1 -2
  1037. package/lib/services/aws-omics/.mixins.jsiirc.json +1 -2
  1038. package/lib/services/aws-omics/cfn-props-mixins.generated.d.ts +14 -15
  1039. package/lib/services/aws-omics/cfn-props-mixins.generated.js +28 -65
  1040. package/lib/services/aws-omics/events.generated.d.ts +955 -363
  1041. package/lib/services/aws-omics/events.generated.js +668 -76
  1042. package/lib/services/aws-opensearchserverless/.jsiirc.json +1 -2
  1043. package/lib/services/aws-opensearchserverless/.mixins.jsiirc.json +1 -2
  1044. package/lib/services/aws-opensearchserverless/cfn-props-mixins.generated.d.ts +114 -16
  1045. package/lib/services/aws-opensearchserverless/cfn-props-mixins.generated.js +90 -67
  1046. package/lib/services/aws-opensearchservice/.jsiirc.json +1 -2
  1047. package/lib/services/aws-opensearchservice/.mixins.jsiirc.json +1 -2
  1048. package/lib/services/aws-opensearchservice/cfn-props-mixins.generated.d.ts +18 -12
  1049. package/lib/services/aws-opensearchservice/cfn-props-mixins.generated.js +80 -22
  1050. package/lib/services/aws-opsworks/.events.jsiirc.json +1 -2
  1051. package/lib/services/aws-opsworks/.jsiirc.json +1 -2
  1052. package/lib/services/aws-opsworks/.mixins.jsiirc.json +1 -2
  1053. package/lib/services/aws-opsworks/cfn-props-mixins.generated.d.ts +14 -15
  1054. package/lib/services/aws-opsworks/cfn-props-mixins.generated.js +28 -65
  1055. package/lib/services/aws-opsworks/events.generated.d.ts +244 -232
  1056. package/lib/services/aws-opsworks/events.generated.js +154 -70
  1057. package/lib/services/aws-opsworkscm/.jsiirc.json +1 -2
  1058. package/lib/services/aws-opsworkscm/.mixins.jsiirc.json +1 -2
  1059. package/lib/services/aws-opsworkscm/cfn-props-mixins.generated.d.ts +2 -3
  1060. package/lib/services/aws-opsworkscm/cfn-props-mixins.generated.js +4 -11
  1061. package/lib/services/aws-organizations/.events.jsiirc.json +1 -2
  1062. package/lib/services/aws-organizations/.jsiirc.json +1 -2
  1063. package/lib/services/aws-organizations/.mixins.jsiirc.json +1 -2
  1064. package/lib/services/aws-organizations/cfn-props-mixins.generated.d.ts +10 -11
  1065. package/lib/services/aws-organizations/cfn-props-mixins.generated.js +20 -47
  1066. package/lib/services/aws-organizations/events.generated.d.ts +212 -210
  1067. package/lib/services/aws-organizations/events.generated.js +52 -32
  1068. package/lib/services/aws-osis/.jsiirc.json +1 -2
  1069. package/lib/services/aws-osis/.mixins.jsiirc.json +1 -2
  1070. package/lib/services/aws-osis/cfn-props-mixins.generated.d.ts +2 -3
  1071. package/lib/services/aws-osis/cfn-props-mixins.generated.js +4 -11
  1072. package/lib/services/aws-osis/logs-delivery-mixins.generated.d.ts +55 -5
  1073. package/lib/services/aws-osis/logs-delivery-mixins.generated.js +76 -12
  1074. package/lib/services/aws-panorama/.jsiirc.json +1 -2
  1075. package/lib/services/aws-panorama/.mixins.jsiirc.json +1 -2
  1076. package/lib/services/aws-panorama/cfn-props-mixins.generated.d.ts +6 -7
  1077. package/lib/services/aws-panorama/cfn-props-mixins.generated.js +12 -29
  1078. package/lib/services/aws-paymentcryptography/.jsiirc.json +1 -2
  1079. package/lib/services/aws-paymentcryptography/.mixins.jsiirc.json +1 -2
  1080. package/lib/services/aws-paymentcryptography/cfn-props-mixins.generated.d.ts +4 -5
  1081. package/lib/services/aws-paymentcryptography/cfn-props-mixins.generated.js +8 -20
  1082. package/lib/services/aws-pcaconnectorad/.jsiirc.json +1 -2
  1083. package/lib/services/aws-pcaconnectorad/.mixins.jsiirc.json +1 -2
  1084. package/lib/services/aws-pcaconnectorad/cfn-props-mixins.generated.d.ts +10 -11
  1085. package/lib/services/aws-pcaconnectorad/cfn-props-mixins.generated.js +20 -47
  1086. package/lib/services/aws-pcaconnectorscep/.jsiirc.json +1 -2
  1087. package/lib/services/aws-pcaconnectorscep/.mixins.jsiirc.json +1 -2
  1088. package/lib/services/aws-pcaconnectorscep/cfn-props-mixins.generated.d.ts +8 -5
  1089. package/lib/services/aws-pcaconnectorscep/cfn-props-mixins.generated.js +9 -21
  1090. package/lib/services/aws-pcs/.jsiirc.json +1 -2
  1091. package/lib/services/aws-pcs/.mixins.jsiirc.json +1 -2
  1092. package/lib/services/aws-pcs/cfn-props-mixins.generated.d.ts +6 -7
  1093. package/lib/services/aws-pcs/cfn-props-mixins.generated.js +12 -29
  1094. package/lib/services/aws-pcs/logs-delivery-mixins.generated.d.ts +283 -10
  1095. package/lib/services/aws-pcs/logs-delivery-mixins.generated.js +345 -22
  1096. package/lib/services/aws-personalize/.jsiirc.json +1 -2
  1097. package/lib/services/aws-personalize/.mixins.jsiirc.json +1 -2
  1098. package/lib/services/aws-personalize/cfn-props-mixins.generated.d.ts +8 -9
  1099. package/lib/services/aws-personalize/cfn-props-mixins.generated.js +16 -38
  1100. package/lib/services/aws-pinpoint/.jsiirc.json +1 -2
  1101. package/lib/services/aws-pinpoint/.mixins.jsiirc.json +1 -2
  1102. package/lib/services/aws-pinpoint/cfn-props-mixins.generated.d.ts +38 -39
  1103. package/lib/services/aws-pinpoint/cfn-props-mixins.generated.js +76 -173
  1104. package/lib/services/aws-pinpointemail/.jsiirc.json +1 -2
  1105. package/lib/services/aws-pinpointemail/.mixins.jsiirc.json +1 -2
  1106. package/lib/services/aws-pinpointemail/cfn-props-mixins.generated.d.ts +91 -9
  1107. package/lib/services/aws-pinpointemail/cfn-props-mixins.generated.js +16 -38
  1108. package/lib/services/aws-pipes/.jsiirc.json +1 -2
  1109. package/lib/services/aws-pipes/.mixins.jsiirc.json +1 -2
  1110. package/lib/services/aws-pipes/cfn-props-mixins.generated.d.ts +8 -8
  1111. package/lib/services/aws-pipes/cfn-props-mixins.generated.js +77 -12
  1112. package/lib/services/aws-pipes/logs-delivery-mixins.generated.d.ts +55 -5
  1113. package/lib/services/aws-pipes/logs-delivery-mixins.generated.js +76 -12
  1114. package/lib/services/aws-proton/.jsiirc.json +1 -2
  1115. package/lib/services/aws-proton/.mixins.jsiirc.json +1 -2
  1116. package/lib/services/aws-proton/cfn-props-mixins.generated.d.ts +6 -7
  1117. package/lib/services/aws-proton/cfn-props-mixins.generated.js +12 -29
  1118. package/lib/services/aws-qbusiness/.jsiirc.json +1 -2
  1119. package/lib/services/aws-qbusiness/.mixins.jsiirc.json +1 -2
  1120. package/lib/services/aws-qbusiness/cfn-props-mixins.generated.d.ts +16 -17
  1121. package/lib/services/aws-qbusiness/cfn-props-mixins.generated.js +32 -74
  1122. package/lib/services/aws-qbusiness/logs-delivery-mixins.generated.d.ts +200 -10
  1123. package/lib/services/aws-qbusiness/logs-delivery-mixins.generated.js +225 -22
  1124. package/lib/services/aws-qldb/.events.jsiirc.json +16 -0
  1125. package/lib/services/aws-qldb/.jsiirc.json +1 -2
  1126. package/lib/services/aws-qldb/.mixins.jsiirc.json +1 -2
  1127. package/lib/services/aws-qldb/cfn-props-mixins.generated.d.ts +7 -7
  1128. package/lib/services/aws-qldb/cfn-props-mixins.generated.js +30 -21
  1129. package/lib/services/aws-qldb/events.d.ts +1 -0
  1130. package/lib/services/aws-qldb/events.generated.d.ts +40 -0
  1131. package/lib/services/aws-qldb/events.generated.js +49 -0
  1132. package/lib/services/aws-qldb/events.js +17 -0
  1133. package/lib/services/aws-qldb/index.d.ts +1 -0
  1134. package/lib/services/aws-qldb/index.js +2 -1
  1135. package/lib/services/aws-quicksight/.jsiirc.json +1 -2
  1136. package/lib/services/aws-quicksight/.mixins.jsiirc.json +1 -2
  1137. package/lib/services/aws-quicksight/cfn-props-mixins.generated.d.ts +63 -63
  1138. package/lib/services/aws-quicksight/cfn-props-mixins.generated.js +282 -120
  1139. package/lib/services/aws-ram/.jsiirc.json +1 -2
  1140. package/lib/services/aws-ram/.mixins.jsiirc.json +1 -2
  1141. package/lib/services/aws-ram/cfn-props-mixins.generated.d.ts +4 -5
  1142. package/lib/services/aws-ram/cfn-props-mixins.generated.js +8 -20
  1143. package/lib/services/aws-rbin/.jsiirc.json +1 -2
  1144. package/lib/services/aws-rbin/.mixins.jsiirc.json +1 -2
  1145. package/lib/services/aws-rbin/cfn-props-mixins.generated.d.ts +2 -3
  1146. package/lib/services/aws-rbin/cfn-props-mixins.generated.js +4 -11
  1147. package/lib/services/aws-rds/.events.jsiirc.json +16 -0
  1148. package/lib/services/aws-rds/.jsiirc.json +1 -2
  1149. package/lib/services/aws-rds/.mixins.jsiirc.json +1 -2
  1150. package/lib/services/aws-rds/cfn-props-mixins.generated.d.ts +61 -61
  1151. package/lib/services/aws-rds/cfn-props-mixins.generated.js +231 -154
  1152. package/lib/services/aws-rds/events.d.ts +1 -0
  1153. package/lib/services/aws-rds/events.generated.d.ts +556 -0
  1154. package/lib/services/aws-rds/events.generated.js +349 -0
  1155. package/lib/services/aws-rds/events.js +17 -0
  1156. package/lib/services/aws-rds/index.d.ts +1 -0
  1157. package/lib/services/aws-rds/index.js +2 -1
  1158. package/lib/services/aws-redshift/.jsiirc.json +1 -2
  1159. package/lib/services/aws-redshift/.mixins.jsiirc.json +1 -2
  1160. package/lib/services/aws-redshift/cfn-props-mixins.generated.d.ts +36 -36
  1161. package/lib/services/aws-redshift/cfn-props-mixins.generated.js +134 -97
  1162. package/lib/services/aws-redshiftserverless/.jsiirc.json +1 -2
  1163. package/lib/services/aws-redshiftserverless/.mixins.jsiirc.json +1 -2
  1164. package/lib/services/aws-redshiftserverless/cfn-props-mixins.generated.d.ts +12 -12
  1165. package/lib/services/aws-redshiftserverless/cfn-props-mixins.generated.js +40 -31
  1166. package/lib/services/aws-refactorspaces/.jsiirc.json +1 -2
  1167. package/lib/services/aws-refactorspaces/.mixins.jsiirc.json +1 -2
  1168. package/lib/services/aws-refactorspaces/cfn-props-mixins.generated.d.ts +18 -18
  1169. package/lib/services/aws-refactorspaces/cfn-props-mixins.generated.js +69 -41
  1170. package/lib/services/aws-rekognition/.jsiirc.json +1 -2
  1171. package/lib/services/aws-rekognition/.mixins.jsiirc.json +1 -2
  1172. package/lib/services/aws-rekognition/cfn-props-mixins.generated.d.ts +6 -7
  1173. package/lib/services/aws-rekognition/cfn-props-mixins.generated.js +12 -29
  1174. package/lib/services/aws-resiliencehub/.jsiirc.json +1 -2
  1175. package/lib/services/aws-resiliencehub/.mixins.jsiirc.json +1 -2
  1176. package/lib/services/aws-resiliencehub/cfn-props-mixins.generated.d.ts +4 -5
  1177. package/lib/services/aws-resiliencehub/cfn-props-mixins.generated.js +8 -20
  1178. package/lib/services/aws-resourceexplorer2/.jsiirc.json +1 -2
  1179. package/lib/services/aws-resourceexplorer2/.mixins.jsiirc.json +1 -2
  1180. package/lib/services/aws-resourceexplorer2/cfn-props-mixins.generated.d.ts +6 -7
  1181. package/lib/services/aws-resourceexplorer2/cfn-props-mixins.generated.js +12 -29
  1182. package/lib/services/aws-resourcegroups/.jsiirc.json +1 -2
  1183. package/lib/services/aws-resourcegroups/.mixins.jsiirc.json +1 -2
  1184. package/lib/services/aws-resourcegroups/cfn-props-mixins.generated.d.ts +4 -5
  1185. package/lib/services/aws-resourcegroups/cfn-props-mixins.generated.js +8 -20
  1186. package/lib/services/aws-robomaker/.jsiirc.json +1 -2
  1187. package/lib/services/aws-robomaker/.mixins.jsiirc.json +1 -2
  1188. package/lib/services/aws-robomaker/cfn-props-mixins.generated.d.ts +16 -16
  1189. package/lib/services/aws-robomaker/cfn-props-mixins.generated.js +57 -59
  1190. package/lib/services/aws-rolesanywhere/.jsiirc.json +1 -2
  1191. package/lib/services/aws-rolesanywhere/.mixins.jsiirc.json +1 -2
  1192. package/lib/services/aws-rolesanywhere/cfn-props-mixins.generated.d.ts +8 -8
  1193. package/lib/services/aws-rolesanywhere/cfn-props-mixins.generated.js +23 -30
  1194. package/lib/services/aws-route53/.jsiirc.json +1 -2
  1195. package/lib/services/aws-route53/.mixins.jsiirc.json +1 -2
  1196. package/lib/services/aws-route53/cfn-props-mixins.generated.d.ts +21 -21
  1197. package/lib/services/aws-route53/cfn-props-mixins.generated.js +102 -67
  1198. package/lib/services/aws-route53profiles/.jsiirc.json +1 -2
  1199. package/lib/services/aws-route53profiles/.mixins.jsiirc.json +1 -2
  1200. package/lib/services/aws-route53profiles/cfn-props-mixins.generated.d.ts +6 -7
  1201. package/lib/services/aws-route53profiles/cfn-props-mixins.generated.js +12 -29
  1202. package/lib/services/aws-route53profiles/logs-delivery-mixins.generated.d.ts +55 -5
  1203. package/lib/services/aws-route53profiles/logs-delivery-mixins.generated.js +76 -12
  1204. package/lib/services/aws-route53recoverycontrol/.jsiirc.json +1 -2
  1205. package/lib/services/aws-route53recoverycontrol/.mixins.jsiirc.json +1 -2
  1206. package/lib/services/aws-route53recoverycontrol/cfn-props-mixins.generated.d.ts +14 -14
  1207. package/lib/services/aws-route53recoverycontrol/cfn-props-mixins.generated.js +62 -41
  1208. package/lib/services/aws-route53recoveryreadiness/.events.jsiirc.json +1 -2
  1209. package/lib/services/aws-route53recoveryreadiness/.jsiirc.json +1 -2
  1210. package/lib/services/aws-route53recoveryreadiness/.mixins.jsiirc.json +1 -2
  1211. package/lib/services/aws-route53recoveryreadiness/cfn-props-mixins.generated.d.ts +8 -9
  1212. package/lib/services/aws-route53recoveryreadiness/cfn-props-mixins.generated.js +16 -38
  1213. package/lib/services/aws-route53recoveryreadiness/events.generated.d.ts +168 -162
  1214. package/lib/services/aws-route53recoveryreadiness/events.generated.js +128 -68
  1215. package/lib/services/aws-route53resolver/.events.jsiirc.json +1 -2
  1216. package/lib/services/aws-route53resolver/.jsiirc.json +1 -2
  1217. package/lib/services/aws-route53resolver/.mixins.jsiirc.json +1 -2
  1218. package/lib/services/aws-route53resolver/cfn-props-mixins.generated.d.ts +31 -31
  1219. package/lib/services/aws-route53resolver/cfn-props-mixins.generated.js +124 -106
  1220. package/lib/services/aws-route53resolver/events.generated.d.ts +367 -361
  1221. package/lib/services/aws-route53resolver/events.generated.js +105 -63
  1222. package/lib/services/aws-rtbfabric/.jsiirc.json +1 -2
  1223. package/lib/services/aws-rtbfabric/.mixins.jsiirc.json +1 -2
  1224. package/lib/services/aws-rtbfabric/cfn-props-mixins.generated.d.ts +17 -17
  1225. package/lib/services/aws-rtbfabric/cfn-props-mixins.generated.js +50 -49
  1226. package/lib/services/aws-rum/.jsiirc.json +1 -2
  1227. package/lib/services/aws-rum/.mixins.jsiirc.json +1 -2
  1228. package/lib/services/aws-rum/cfn-props-mixins.generated.d.ts +5 -5
  1229. package/lib/services/aws-rum/cfn-props-mixins.generated.js +32 -12
  1230. package/lib/services/aws-rum/logs-delivery-mixins.generated.d.ts +161 -11
  1231. package/lib/services/aws-rum/logs-delivery-mixins.generated.js +222 -28
  1232. package/lib/services/aws-s3/.events.jsiirc.json +1 -2
  1233. package/lib/services/aws-s3/.jsiirc.json +1 -2
  1234. package/lib/services/aws-s3/.mixins.jsiirc.json +1 -2
  1235. package/lib/services/aws-s3/cfn-props-mixins.generated.d.ts +34 -34
  1236. package/lib/services/aws-s3/cfn-props-mixins.generated.js +330 -96
  1237. package/lib/services/aws-s3/events.generated.d.ts +1855 -1813
  1238. package/lib/services/aws-s3/events.generated.js +570 -330
  1239. package/lib/services/aws-s3/logs-delivery-mixins.generated.d.ts +102 -6
  1240. package/lib/services/aws-s3/logs-delivery-mixins.generated.js +115 -13
  1241. package/lib/services/aws-s3/mixins.d.ts +0 -2
  1242. package/lib/services/aws-s3/mixins.js +0 -2
  1243. package/lib/services/aws-s3express/.jsiirc.json +1 -2
  1244. package/lib/services/aws-s3express/.mixins.jsiirc.json +1 -2
  1245. package/lib/services/aws-s3express/cfn-props-mixins.generated.d.ts +8 -8
  1246. package/lib/services/aws-s3express/cfn-props-mixins.generated.js +49 -30
  1247. package/lib/services/aws-s3objectlambda/.jsiirc.json +1 -2
  1248. package/lib/services/aws-s3objectlambda/.mixins.jsiirc.json +1 -2
  1249. package/lib/services/aws-s3objectlambda/cfn-props-mixins.generated.d.ts +6 -6
  1250. package/lib/services/aws-s3objectlambda/cfn-props-mixins.generated.js +30 -21
  1251. package/lib/services/aws-s3outposts/.jsiirc.json +1 -2
  1252. package/lib/services/aws-s3outposts/.mixins.jsiirc.json +1 -2
  1253. package/lib/services/aws-s3outposts/cfn-props-mixins.generated.d.ts +8 -9
  1254. package/lib/services/aws-s3outposts/cfn-props-mixins.generated.js +16 -38
  1255. package/lib/services/aws-s3tables/.jsiirc.json +1 -2
  1256. package/lib/services/aws-s3tables/.mixins.jsiirc.json +1 -2
  1257. package/lib/services/aws-s3tables/cfn-props-mixins.generated.d.ts +142 -11
  1258. package/lib/services/aws-s3tables/cfn-props-mixins.generated.js +20 -47
  1259. package/lib/services/aws-s3vectors/.jsiirc.json +1 -2
  1260. package/lib/services/aws-s3vectors/.mixins.jsiirc.json +1 -2
  1261. package/lib/services/aws-s3vectors/cfn-props-mixins.generated.d.ts +6 -7
  1262. package/lib/services/aws-s3vectors/cfn-props-mixins.generated.js +12 -29
  1263. package/lib/services/aws-sagemaker/.events.jsiirc.json +1 -2
  1264. package/lib/services/aws-sagemaker/.jsiirc.json +1 -2
  1265. package/lib/services/aws-sagemaker/.mixins.jsiirc.json +1 -2
  1266. package/lib/services/aws-sagemaker/cfn-props-mixins.generated.d.ts +107 -107
  1267. package/lib/services/aws-sagemaker/cfn-props-mixins.generated.js +324 -318
  1268. package/lib/services/aws-sagemaker/events.generated.d.ts +3118 -1301
  1269. package/lib/services/aws-sagemaker/events.generated.js +1189 -69
  1270. package/lib/services/aws-sagemaker/logs-delivery-mixins.generated.d.ts +41 -4
  1271. package/lib/services/aws-sagemaker/logs-delivery-mixins.generated.js +53 -10
  1272. package/lib/services/aws-sam/.jsiirc.json +1 -2
  1273. package/lib/services/aws-sam/.mixins.jsiirc.json +1 -2
  1274. package/lib/services/aws-sam/cfn-props-mixins.generated.d.ts +14 -15
  1275. package/lib/services/aws-sam/cfn-props-mixins.generated.js +28 -65
  1276. package/lib/services/aws-scheduler/.jsiirc.json +1 -2
  1277. package/lib/services/aws-scheduler/.mixins.jsiirc.json +1 -2
  1278. package/lib/services/aws-scheduler/cfn-props-mixins.generated.d.ts +9 -9
  1279. package/lib/services/aws-scheduler/cfn-props-mixins.generated.js +46 -21
  1280. package/lib/services/aws-sdb/.jsiirc.json +1 -2
  1281. package/lib/services/aws-sdb/.mixins.jsiirc.json +1 -2
  1282. package/lib/services/aws-sdb/cfn-props-mixins.generated.d.ts +3 -3
  1283. package/lib/services/aws-sdb/cfn-props-mixins.generated.js +4 -11
  1284. package/lib/services/aws-secretsmanager/.jsiirc.json +1 -2
  1285. package/lib/services/aws-secretsmanager/.mixins.jsiirc.json +1 -2
  1286. package/lib/services/aws-secretsmanager/cfn-props-mixins.generated.d.ts +11 -11
  1287. package/lib/services/aws-secretsmanager/cfn-props-mixins.generated.js +38 -40
  1288. package/lib/services/aws-securityhub/.events.jsiirc.json +16 -0
  1289. package/lib/services/aws-securityhub/.jsiirc.json +1 -2
  1290. package/lib/services/aws-securityhub/.mixins.jsiirc.json +1 -2
  1291. package/lib/services/aws-securityhub/cfn-props-mixins.generated.d.ts +30 -31
  1292. package/lib/services/aws-securityhub/cfn-props-mixins.generated.js +60 -137
  1293. package/lib/services/aws-securityhub/events.d.ts +1 -0
  1294. package/lib/services/aws-securityhub/events.generated.d.ts +132 -0
  1295. package/lib/services/aws-securityhub/events.generated.js +139 -0
  1296. package/lib/services/aws-securityhub/events.js +17 -0
  1297. package/lib/services/aws-securityhub/index.d.ts +1 -0
  1298. package/lib/services/aws-securityhub/index.js +2 -1
  1299. package/lib/services/aws-securitylake/.jsiirc.json +1 -2
  1300. package/lib/services/aws-securitylake/.mixins.jsiirc.json +1 -2
  1301. package/lib/services/aws-securitylake/cfn-props-mixins.generated.d.ts +8 -9
  1302. package/lib/services/aws-securitylake/cfn-props-mixins.generated.js +16 -38
  1303. package/lib/services/aws-servicecatalog/.jsiirc.json +1 -2
  1304. package/lib/services/aws-servicecatalog/.mixins.jsiirc.json +1 -2
  1305. package/lib/services/aws-servicecatalog/cfn-props-mixins.generated.d.ts +34 -34
  1306. package/lib/services/aws-servicecatalog/cfn-props-mixins.generated.js +75 -147
  1307. package/lib/services/aws-servicecatalogappregistry/.jsiirc.json +1 -2
  1308. package/lib/services/aws-servicecatalogappregistry/.mixins.jsiirc.json +1 -2
  1309. package/lib/services/aws-servicecatalogappregistry/cfn-props-mixins.generated.d.ts +8 -9
  1310. package/lib/services/aws-servicecatalogappregistry/cfn-props-mixins.generated.js +16 -38
  1311. package/lib/services/aws-servicediscovery/.jsiirc.json +1 -2
  1312. package/lib/services/aws-servicediscovery/.mixins.jsiirc.json +1 -2
  1313. package/lib/services/aws-servicediscovery/cfn-props-mixins.generated.d.ts +10 -11
  1314. package/lib/services/aws-servicediscovery/cfn-props-mixins.generated.js +20 -47
  1315. package/lib/services/aws-ses/.events.jsiirc.json +16 -0
  1316. package/lib/services/aws-ses/.jsiirc.json +1 -2
  1317. package/lib/services/aws-ses/.mixins.jsiirc.json +1 -2
  1318. package/lib/services/aws-ses/cfn-props-mixins.generated.d.ts +128 -47
  1319. package/lib/services/aws-ses/cfn-props-mixins.generated.js +215 -186
  1320. package/lib/services/aws-ses/events.d.ts +1 -0
  1321. package/lib/services/aws-ses/events.generated.d.ts +78 -0
  1322. package/lib/services/aws-ses/events.generated.js +93 -0
  1323. package/lib/services/aws-ses/events.js +17 -0
  1324. package/lib/services/aws-ses/index.d.ts +1 -0
  1325. package/lib/services/aws-ses/index.js +2 -1
  1326. package/lib/services/aws-ses/logs-delivery-mixins.generated.d.ts +267 -15
  1327. package/lib/services/aws-ses/logs-delivery-mixins.generated.js +305 -33
  1328. package/lib/services/aws-shield/.jsiirc.json +1 -2
  1329. package/lib/services/aws-shield/.mixins.jsiirc.json +1 -2
  1330. package/lib/services/aws-shield/cfn-props-mixins.generated.d.ts +8 -9
  1331. package/lib/services/aws-shield/cfn-props-mixins.generated.js +16 -38
  1332. package/lib/services/aws-shield/logs-delivery-mixins.generated.d.ts +95 -6
  1333. package/lib/services/aws-shield/logs-delivery-mixins.generated.js +108 -13
  1334. package/lib/services/aws-signer/.jsiirc.json +1 -2
  1335. package/lib/services/aws-signer/.mixins.jsiirc.json +1 -2
  1336. package/lib/services/aws-signer/cfn-props-mixins.generated.d.ts +4 -5
  1337. package/lib/services/aws-signer/cfn-props-mixins.generated.js +19 -21
  1338. package/lib/services/aws-simspaceweaver/.jsiirc.json +1 -2
  1339. package/lib/services/aws-simspaceweaver/.mixins.jsiirc.json +1 -2
  1340. package/lib/services/aws-simspaceweaver/cfn-props-mixins.generated.d.ts +2 -3
  1341. package/lib/services/aws-simspaceweaver/cfn-props-mixins.generated.js +4 -11
  1342. package/lib/services/aws-smsvoice/.jsiirc.json +1 -2
  1343. package/lib/services/aws-smsvoice/.mixins.jsiirc.json +1 -2
  1344. package/lib/services/aws-smsvoice/cfn-props-mixins.generated.d.ts +14 -15
  1345. package/lib/services/aws-smsvoice/cfn-props-mixins.generated.js +28 -65
  1346. package/lib/services/aws-sns/.jsiirc.json +1 -2
  1347. package/lib/services/aws-sns/.mixins.jsiirc.json +1 -2
  1348. package/lib/services/aws-sns/cfn-props-mixins.generated.d.ts +14 -14
  1349. package/lib/services/aws-sns/cfn-props-mixins.generated.js +53 -40
  1350. package/lib/services/aws-sqs/.jsiirc.json +1 -2
  1351. package/lib/services/aws-sqs/.mixins.jsiirc.json +1 -2
  1352. package/lib/services/aws-sqs/cfn-props-mixins.generated.d.ts +8 -8
  1353. package/lib/services/aws-sqs/cfn-props-mixins.generated.js +23 -30
  1354. package/lib/services/aws-ssm/.events.jsiirc.json +16 -0
  1355. package/lib/services/aws-ssm/.jsiirc.json +1 -2
  1356. package/lib/services/aws-ssm/.mixins.jsiirc.json +1 -2
  1357. package/lib/services/aws-ssm/cfn-props-mixins.generated.d.ts +23 -23
  1358. package/lib/services/aws-ssm/cfn-props-mixins.generated.js +89 -85
  1359. package/lib/services/aws-ssm/events.d.ts +1 -0
  1360. package/lib/services/aws-ssm/events.generated.d.ts +48 -0
  1361. package/lib/services/aws-ssm/events.generated.js +50 -0
  1362. package/lib/services/aws-ssm/events.js +17 -0
  1363. package/lib/services/aws-ssm/index.d.ts +1 -0
  1364. package/lib/services/aws-ssm/index.js +2 -1
  1365. package/lib/services/aws-ssmcontacts/.jsiirc.json +1 -2
  1366. package/lib/services/aws-ssmcontacts/.mixins.jsiirc.json +1 -2
  1367. package/lib/services/aws-ssmcontacts/cfn-props-mixins.generated.d.ts +8 -9
  1368. package/lib/services/aws-ssmcontacts/cfn-props-mixins.generated.js +16 -38
  1369. package/lib/services/aws-ssmguiconnect/.jsiirc.json +1 -2
  1370. package/lib/services/aws-ssmguiconnect/.mixins.jsiirc.json +1 -2
  1371. package/lib/services/aws-ssmguiconnect/cfn-props-mixins.generated.d.ts +2 -3
  1372. package/lib/services/aws-ssmguiconnect/cfn-props-mixins.generated.js +4 -11
  1373. package/lib/services/aws-ssmincidents/.jsiirc.json +1 -2
  1374. package/lib/services/aws-ssmincidents/.mixins.jsiirc.json +1 -2
  1375. package/lib/services/aws-ssmincidents/cfn-props-mixins.generated.d.ts +4 -5
  1376. package/lib/services/aws-ssmincidents/cfn-props-mixins.generated.js +8 -20
  1377. package/lib/services/aws-ssmquicksetup/.jsiirc.json +1 -2
  1378. package/lib/services/aws-ssmquicksetup/.mixins.jsiirc.json +1 -2
  1379. package/lib/services/aws-ssmquicksetup/cfn-props-mixins.generated.d.ts +4 -5
  1380. package/lib/services/aws-ssmquicksetup/cfn-props-mixins.generated.js +8 -20
  1381. package/lib/services/aws-sso/.jsiirc.json +1 -2
  1382. package/lib/services/aws-sso/.mixins.jsiirc.json +1 -2
  1383. package/lib/services/aws-sso/cfn-props-mixins.generated.d.ts +12 -13
  1384. package/lib/services/aws-sso/cfn-props-mixins.generated.js +24 -56
  1385. package/lib/services/aws-stepfunctions/.jsiirc.json +1 -2
  1386. package/lib/services/aws-stepfunctions/.mixins.jsiirc.json +1 -2
  1387. package/lib/services/aws-stepfunctions/cfn-props-mixins.generated.d.ts +12 -12
  1388. package/lib/services/aws-stepfunctions/cfn-props-mixins.generated.js +57 -39
  1389. package/lib/services/aws-stepfunctions/logs-delivery-mixins.generated.d.ts +90 -6
  1390. package/lib/services/aws-stepfunctions/logs-delivery-mixins.generated.js +123 -14
  1391. package/lib/services/aws-supportapp/.jsiirc.json +1 -2
  1392. package/lib/services/aws-supportapp/.mixins.jsiirc.json +1 -2
  1393. package/lib/services/aws-supportapp/cfn-props-mixins.generated.d.ts +8 -8
  1394. package/lib/services/aws-supportapp/cfn-props-mixins.generated.js +23 -30
  1395. package/lib/services/aws-synthetics/.events.jsiirc.json +16 -0
  1396. package/lib/services/aws-synthetics/.jsiirc.json +1 -2
  1397. package/lib/services/aws-synthetics/.mixins.jsiirc.json +1 -2
  1398. package/lib/services/aws-synthetics/cfn-props-mixins.generated.d.ts +9 -9
  1399. package/lib/services/aws-synthetics/cfn-props-mixins.generated.js +49 -21
  1400. package/lib/services/aws-synthetics/events.d.ts +1 -0
  1401. package/lib/services/aws-synthetics/events.generated.d.ts +399 -0
  1402. package/lib/services/aws-synthetics/events.generated.js +233 -0
  1403. package/lib/services/aws-synthetics/events.js +17 -0
  1404. package/lib/services/aws-synthetics/index.d.ts +1 -0
  1405. package/lib/services/aws-synthetics/index.js +2 -1
  1406. package/lib/services/aws-systemsmanagersap/.jsiirc.json +1 -2
  1407. package/lib/services/aws-systemsmanagersap/.mixins.jsiirc.json +1 -2
  1408. package/lib/services/aws-systemsmanagersap/cfn-props-mixins.generated.d.ts +2 -3
  1409. package/lib/services/aws-systemsmanagersap/cfn-props-mixins.generated.js +4 -11
  1410. package/lib/services/aws-timestream/.jsiirc.json +1 -2
  1411. package/lib/services/aws-timestream/.mixins.jsiirc.json +1 -2
  1412. package/lib/services/aws-timestream/cfn-props-mixins.generated.d.ts +200 -16
  1413. package/lib/services/aws-timestream/cfn-props-mixins.generated.js +168 -42
  1414. package/lib/services/aws-transfer/.events.jsiirc.json +1 -2
  1415. package/lib/services/aws-transfer/.jsiirc.json +1 -2
  1416. package/lib/services/aws-transfer/.mixins.jsiirc.json +1 -2
  1417. package/lib/services/aws-transfer/cfn-props-mixins.generated.d.ts +16 -17
  1418. package/lib/services/aws-transfer/cfn-props-mixins.generated.js +32 -74
  1419. package/lib/services/aws-transfer/events.generated.d.ts +6671 -2747
  1420. package/lib/services/aws-transfer/events.generated.js +2564 -276
  1421. package/lib/services/aws-transfer/logs-delivery-mixins.generated.d.ts +55 -5
  1422. package/lib/services/aws-transfer/logs-delivery-mixins.generated.js +76 -12
  1423. package/lib/services/aws-verifiedpermissions/.jsiirc.json +1 -2
  1424. package/lib/services/aws-verifiedpermissions/.mixins.jsiirc.json +1 -2
  1425. package/lib/services/aws-verifiedpermissions/cfn-props-mixins.generated.d.ts +72 -9
  1426. package/lib/services/aws-verifiedpermissions/cfn-props-mixins.generated.js +17 -39
  1427. package/lib/services/aws-voiceid/.events.jsiirc.json +1 -2
  1428. package/lib/services/aws-voiceid/.jsiirc.json +1 -2
  1429. package/lib/services/aws-voiceid/.mixins.jsiirc.json +1 -2
  1430. package/lib/services/aws-voiceid/cfn-props-mixins.generated.d.ts +2 -3
  1431. package/lib/services/aws-voiceid/cfn-props-mixins.generated.js +4 -11
  1432. package/lib/services/aws-voiceid/events.generated.d.ts +1774 -1744
  1433. package/lib/services/aws-voiceid/events.generated.js +343 -169
  1434. package/lib/services/aws-vpclattice/.jsiirc.json +1 -2
  1435. package/lib/services/aws-vpclattice/.mixins.jsiirc.json +1 -2
  1436. package/lib/services/aws-vpclattice/cfn-props-mixins.generated.d.ts +31 -31
  1437. package/lib/services/aws-vpclattice/cfn-props-mixins.generated.js +69 -129
  1438. package/lib/services/aws-vpclattice/logs-delivery-mixins.generated.d.ts +109 -9
  1439. package/lib/services/aws-vpclattice/logs-delivery-mixins.generated.js +151 -22
  1440. package/lib/services/aws-waf/.jsiirc.json +1 -2
  1441. package/lib/services/aws-waf/.mixins.jsiirc.json +1 -2
  1442. package/lib/services/aws-waf/cfn-props-mixins.generated.d.ts +14 -15
  1443. package/lib/services/aws-waf/cfn-props-mixins.generated.js +28 -65
  1444. package/lib/services/aws-wafregional/.jsiirc.json +1 -2
  1445. package/lib/services/aws-wafregional/.mixins.jsiirc.json +1 -2
  1446. package/lib/services/aws-wafregional/cfn-props-mixins.generated.d.ts +22 -23
  1447. package/lib/services/aws-wafregional/cfn-props-mixins.generated.js +44 -101
  1448. package/lib/services/aws-wafv2/.jsiirc.json +1 -2
  1449. package/lib/services/aws-wafv2/.mixins.jsiirc.json +1 -2
  1450. package/lib/services/aws-wafv2/cfn-props-mixins.generated.d.ts +16 -16
  1451. package/lib/services/aws-wafv2/cfn-props-mixins.generated.js +48 -58
  1452. package/lib/services/aws-wafv2/logs-delivery-mixins.generated.d.ts +108 -8
  1453. package/lib/services/aws-wafv2/logs-delivery-mixins.generated.js +149 -20
  1454. package/lib/services/aws-wisdom/.jsiirc.json +1 -2
  1455. package/lib/services/aws-wisdom/.mixins.jsiirc.json +1 -2
  1456. package/lib/services/aws-wisdom/cfn-props-mixins.generated.d.ts +24 -25
  1457. package/lib/services/aws-wisdom/cfn-props-mixins.generated.js +48 -110
  1458. package/lib/services/aws-wisdom/logs-delivery-mixins.generated.d.ts +121 -6
  1459. package/lib/services/aws-wisdom/logs-delivery-mixins.generated.js +134 -13
  1460. package/lib/services/aws-workspaces/.events.jsiirc.json +1 -2
  1461. package/lib/services/aws-workspaces/.jsiirc.json +1 -2
  1462. package/lib/services/aws-workspaces/.mixins.jsiirc.json +1 -2
  1463. package/lib/services/aws-workspaces/cfn-props-mixins.generated.d.ts +6 -7
  1464. package/lib/services/aws-workspaces/cfn-props-mixins.generated.js +12 -29
  1465. package/lib/services/aws-workspaces/events.generated.d.ts +79 -77
  1466. package/lib/services/aws-workspaces/events.generated.js +52 -32
  1467. package/lib/services/aws-workspacesinstances/.jsiirc.json +1 -2
  1468. package/lib/services/aws-workspacesinstances/.mixins.jsiirc.json +1 -2
  1469. package/lib/services/aws-workspacesinstances/cfn-props-mixins.generated.d.ts +6 -7
  1470. package/lib/services/aws-workspacesinstances/cfn-props-mixins.generated.js +12 -29
  1471. package/lib/services/aws-workspacesthinclient/.jsiirc.json +1 -2
  1472. package/lib/services/aws-workspacesthinclient/.mixins.jsiirc.json +1 -2
  1473. package/lib/services/aws-workspacesthinclient/cfn-props-mixins.generated.d.ts +2 -3
  1474. package/lib/services/aws-workspacesthinclient/cfn-props-mixins.generated.js +4 -11
  1475. package/lib/services/aws-workspacesweb/.jsiirc.json +1 -2
  1476. package/lib/services/aws-workspacesweb/.mixins.jsiirc.json +1 -2
  1477. package/lib/services/aws-workspacesweb/cfn-props-mixins.generated.d.ts +20 -21
  1478. package/lib/services/aws-workspacesweb/cfn-props-mixins.generated.js +40 -92
  1479. package/lib/services/aws-xray/.events.jsiirc.json +16 -0
  1480. package/lib/services/aws-xray/.jsiirc.json +1 -2
  1481. package/lib/services/aws-xray/.mixins.jsiirc.json +1 -2
  1482. package/lib/services/aws-xray/cfn-props-mixins.generated.d.ts +8 -9
  1483. package/lib/services/aws-xray/cfn-props-mixins.generated.js +16 -38
  1484. package/lib/services/aws-xray/events.d.ts +1 -0
  1485. package/lib/services/aws-xray/events.generated.d.ts +291 -0
  1486. package/lib/services/aws-xray/events.generated.js +141 -0
  1487. package/lib/services/aws-xray/events.js +17 -0
  1488. package/lib/services/aws-xray/index.d.ts +1 -0
  1489. package/lib/services/aws-xray/index.js +2 -1
  1490. package/lib/services/index.d.ts +3 -0
  1491. package/lib/services/index.js +9 -6
  1492. package/lib/with.d.ts +0 -9
  1493. package/lib/with.js +3 -21
  1494. package/package.json +48 -22
  1495. package/rosetta/default.ts-fixture +27 -8
  1496. package/scripts/gen.js +52 -125
  1497. package/scripts/spec2eventbridge/builder.d.ts +3 -1
  1498. package/scripts/spec2eventbridge/builder.js +382 -256
  1499. package/scripts/spec2eventbridge/generate.d.ts +2 -2
  1500. package/scripts/spec2eventbridge/generate.js +18 -11
  1501. package/scripts/spec2logs/builder.js +226 -10
  1502. package/scripts/spec2logs/generate.d.ts +2 -2
  1503. package/scripts/spec2logs/generate.js +18 -12
  1504. package/scripts/spec2logs/helpers.d.ts +0 -1
  1505. package/scripts/spec2logs/helpers.js +0 -1
  1506. package/scripts/spec2mixins/index.d.ts +6 -2
  1507. package/scripts/spec2mixins/index.js +10 -16
  1508. package/lib/core/applicator.d.ts +0 -63
  1509. package/lib/core/applicator.js +0 -153
  1510. package/lib/core/index.d.ts +0 -3
  1511. package/lib/core/mixins.d.ts +0 -41
  1512. package/lib/core/mixins.js +0 -52
  1513. package/lib/core/private/metadata.d.ts +0 -4
  1514. package/lib/core/private/metadata.js +0 -24
  1515. package/lib/core/selectors.d.ts +0 -41
  1516. package/lib/core/selectors.js +0 -115
  1517. package/lib/custom-resource-handlers/aws-s3/auto-delete-objects-provider.d.ts +0 -8
  1518. package/lib/custom-resource-handlers/aws-s3/auto-delete-objects-provider.js +0 -25
  1519. package/lib/custom-resource-handlers/dist/aws-s3/auto-delete-objects-handler/index.js +0 -1
  1520. package/lib/mixins/private/reflections.d.ts +0 -29
  1521. package/lib/mixins/private/reflections.js +0 -122
  1522. package/lib/services/aws-ecs/cluster.d.ts +0 -15
  1523. package/lib/services/aws-ecs/cluster.js +0 -44
  1524. package/lib/services/aws-s3/bucket-policy.d.ts +0 -19
  1525. package/lib/services/aws-s3/bucket-policy.js +0 -41
  1526. package/lib/services/aws-s3/bucket.d.ts +0 -30
  1527. package/lib/services/aws-s3/bucket.js +0 -122
  1528. package/lib/util/property-mixins.d.ts +0 -14
  1529. package/lib/util/property-mixins.js +0 -169
  1530. package/node_modules/balanced-match/LICENSE.md +0 -23
  1531. package/node_modules/balanced-match/README.md +0 -57
  1532. package/node_modules/balanced-match/dist/commonjs/index.d.ts +0 -9
  1533. package/node_modules/balanced-match/dist/commonjs/index.d.ts.map +0 -1
  1534. package/node_modules/balanced-match/dist/commonjs/index.js +0 -59
  1535. package/node_modules/balanced-match/dist/commonjs/index.js.map +0 -1
  1536. package/node_modules/balanced-match/dist/commonjs/package.json +0 -3
  1537. package/node_modules/balanced-match/dist/esm/index.d.ts +0 -9
  1538. package/node_modules/balanced-match/dist/esm/index.d.ts.map +0 -1
  1539. package/node_modules/balanced-match/dist/esm/index.js +0 -54
  1540. package/node_modules/balanced-match/dist/esm/index.js.map +0 -1
  1541. package/node_modules/balanced-match/dist/esm/package.json +0 -3
  1542. package/node_modules/balanced-match/package.json +0 -68
  1543. package/node_modules/brace-expansion/LICENSE +0 -23
  1544. package/node_modules/brace-expansion/README.md +0 -94
  1545. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +0 -6
  1546. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +0 -1
  1547. package/node_modules/brace-expansion/dist/commonjs/index.js +0 -199
  1548. package/node_modules/brace-expansion/dist/commonjs/index.js.map +0 -1
  1549. package/node_modules/brace-expansion/dist/commonjs/package.json +0 -3
  1550. package/node_modules/brace-expansion/dist/esm/index.d.ts +0 -6
  1551. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +0 -1
  1552. package/node_modules/brace-expansion/dist/esm/index.js +0 -195
  1553. package/node_modules/brace-expansion/dist/esm/index.js.map +0 -1
  1554. package/node_modules/brace-expansion/dist/esm/package.json +0 -3
  1555. package/node_modules/brace-expansion/package.json +0 -64
  1556. package/node_modules/minimatch/LICENSE.md +0 -55
  1557. package/node_modules/minimatch/README.md +0 -455
  1558. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts +0 -2
  1559. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map +0 -1
  1560. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js +0 -14
  1561. package/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map +0 -1
  1562. package/node_modules/minimatch/dist/commonjs/ast.d.ts +0 -20
  1563. package/node_modules/minimatch/dist/commonjs/ast.d.ts.map +0 -1
  1564. package/node_modules/minimatch/dist/commonjs/ast.js +0 -601
  1565. package/node_modules/minimatch/dist/commonjs/ast.js.map +0 -1
  1566. package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts +0 -8
  1567. package/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map +0 -1
  1568. package/node_modules/minimatch/dist/commonjs/brace-expressions.js +0 -150
  1569. package/node_modules/minimatch/dist/commonjs/brace-expressions.js.map +0 -1
  1570. package/node_modules/minimatch/dist/commonjs/escape.d.ts +0 -15
  1571. package/node_modules/minimatch/dist/commonjs/escape.d.ts.map +0 -1
  1572. package/node_modules/minimatch/dist/commonjs/escape.js +0 -30
  1573. package/node_modules/minimatch/dist/commonjs/escape.js.map +0 -1
  1574. package/node_modules/minimatch/dist/commonjs/index.d.ts +0 -144
  1575. package/node_modules/minimatch/dist/commonjs/index.d.ts.map +0 -1
  1576. package/node_modules/minimatch/dist/commonjs/index.js +0 -1035
  1577. package/node_modules/minimatch/dist/commonjs/index.js.map +0 -1
  1578. package/node_modules/minimatch/dist/commonjs/package.json +0 -3
  1579. package/node_modules/minimatch/dist/commonjs/unescape.d.ts +0 -22
  1580. package/node_modules/minimatch/dist/commonjs/unescape.d.ts.map +0 -1
  1581. package/node_modules/minimatch/dist/commonjs/unescape.js +0 -38
  1582. package/node_modules/minimatch/dist/commonjs/unescape.js.map +0 -1
  1583. package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts +0 -2
  1584. package/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map +0 -1
  1585. package/node_modules/minimatch/dist/esm/assert-valid-pattern.js +0 -10
  1586. package/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map +0 -1
  1587. package/node_modules/minimatch/dist/esm/ast.d.ts +0 -20
  1588. package/node_modules/minimatch/dist/esm/ast.d.ts.map +0 -1
  1589. package/node_modules/minimatch/dist/esm/ast.js +0 -597
  1590. package/node_modules/minimatch/dist/esm/ast.js.map +0 -1
  1591. package/node_modules/minimatch/dist/esm/brace-expressions.d.ts +0 -8
  1592. package/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map +0 -1
  1593. package/node_modules/minimatch/dist/esm/brace-expressions.js +0 -146
  1594. package/node_modules/minimatch/dist/esm/brace-expressions.js.map +0 -1
  1595. package/node_modules/minimatch/dist/esm/escape.d.ts +0 -15
  1596. package/node_modules/minimatch/dist/esm/escape.d.ts.map +0 -1
  1597. package/node_modules/minimatch/dist/esm/escape.js +0 -26
  1598. package/node_modules/minimatch/dist/esm/escape.js.map +0 -1
  1599. package/node_modules/minimatch/dist/esm/index.d.ts +0 -144
  1600. package/node_modules/minimatch/dist/esm/index.d.ts.map +0 -1
  1601. package/node_modules/minimatch/dist/esm/index.js +0 -1022
  1602. package/node_modules/minimatch/dist/esm/index.js.map +0 -1
  1603. package/node_modules/minimatch/dist/esm/package.json +0 -3
  1604. package/node_modules/minimatch/dist/esm/unescape.d.ts +0 -22
  1605. package/node_modules/minimatch/dist/esm/unescape.d.ts.map +0 -1
  1606. package/node_modules/minimatch/dist/esm/unescape.js +0 -34
  1607. package/node_modules/minimatch/dist/esm/unescape.js.map +0 -1
  1608. package/node_modules/minimatch/package.json +0 -67
  1609. package/scripts/airlift-custom-resource-handlers.sh +0 -31
  1610. package/scripts/spec2mixins/builder.d.ts +0 -21
  1611. package/scripts/spec2mixins/builder.js +0 -215
  1612. package/scripts/spec2mixins/generate.d.ts +0 -6
  1613. package/scripts/spec2mixins/generate.js +0 -40
  1614. package/scripts/spec2mixins/helpers.d.ts +0 -17
  1615. package/scripts/spec2mixins/helpers.js +0 -19
@@ -1,15 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CfnSecurityGroupEgressPropsMixin = exports.CfnSecurityGroupPropsMixin = exports.CfnRouteTablePropsMixin = exports.CfnRoutePropsMixin = exports.CfnPrefixListPropsMixin = exports.CfnPlacementGroupPropsMixin = exports.CfnNetworkPerformanceMetricSubscriptionPropsMixin = exports.CfnNetworkInterfacePermissionPropsMixin = exports.CfnNetworkInterfaceAttachmentPropsMixin = exports.CfnNetworkInterfacePropsMixin = exports.CfnNetworkInsightsPathPropsMixin = exports.CfnNetworkInsightsAnalysisPropsMixin = exports.CfnNetworkInsightsAccessScopeAnalysisPropsMixin = exports.CfnNetworkInsightsAccessScopePropsMixin = exports.CfnNetworkAclEntryPropsMixin = exports.CfnNetworkAclPropsMixin = exports.CfnNatGatewayPropsMixin = exports.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin = exports.CfnLocalGatewayRouteTableVPCAssociationPropsMixin = exports.CfnLocalGatewayRouteTablePropsMixin = exports.CfnLocalGatewayRoutePropsMixin = exports.CfnLaunchTemplatePropsMixin = exports.CfnKeyPairPropsMixin = exports.CfnInternetGatewayPropsMixin = exports.CfnInstanceConnectEndpointPropsMixin = exports.CfnInstancePropsMixin = exports.CfnIPAMScopePropsMixin = exports.CfnIPAMResourceDiscoveryAssociationPropsMixin = exports.CfnIPAMResourceDiscoveryPropsMixin = exports.CfnIPAMPoolCidrPropsMixin = exports.CfnIPAMPoolPropsMixin = exports.CfnIPAMAllocationPropsMixin = exports.CfnIPAMPropsMixin = exports.CfnHostPropsMixin = exports.CfnGatewayRouteTableAssociationPropsMixin = exports.CfnFlowLogPropsMixin = exports.CfnEnclaveCertificateIamRoleAssociationPropsMixin = exports.CfnEgressOnlyInternetGatewayPropsMixin = exports.CfnEIPAssociationPropsMixin = exports.CfnEIPPropsMixin = exports.CfnEC2FleetPropsMixin = exports.CfnDHCPOptionsPropsMixin = exports.CfnCustomerGatewayPropsMixin = exports.CfnClientVpnTargetNetworkAssociationPropsMixin = exports.CfnClientVpnRoutePropsMixin = exports.CfnClientVpnEndpointPropsMixin = exports.CfnClientVpnAuthorizationRulePropsMixin = exports.CfnCarrierGatewayPropsMixin = exports.CfnCapacityReservationFleetPropsMixin = exports.CfnCapacityReservationPropsMixin = void 0;
4
- exports.CfnRouteServerPeerPropsMixin = exports.CfnRouteServerEndpointPropsMixin = exports.CfnRouteServerAssociationPropsMixin = exports.CfnRouteServerPropsMixin = exports.CfnLocalGatewayVirtualInterfaceGroupPropsMixin = exports.CfnLocalGatewayVirtualInterfacePropsMixin = exports.CfnIpPoolRouteTableAssociationPropsMixin = exports.CfnCapacityManagerDataExportPropsMixin = exports.CfnVolumeAttachmentPropsMixin = exports.CfnVolumePropsMixin = exports.CfnVerifiedAccessTrustProviderPropsMixin = exports.CfnVerifiedAccessInstancePropsMixin = exports.CfnVerifiedAccessGroupPropsMixin = exports.CfnVerifiedAccessEndpointPropsMixin = exports.CfnVPNGatewayRoutePropagationPropsMixin = exports.CfnVPNGatewayPropsMixin = exports.CfnVPNConnectionRoutePropsMixin = exports.CfnVPNConnectionPropsMixin = exports.CfnVPCPeeringConnectionPropsMixin = exports.CfnVPCGatewayAttachmentPropsMixin = exports.CfnVPCEndpointServicePermissionsPropsMixin = exports.CfnVPCEndpointServicePropsMixin = exports.CfnVPCEndpointConnectionNotificationPropsMixin = exports.CfnVPCEndpointPropsMixin = exports.CfnVPCDHCPOptionsAssociationPropsMixin = exports.CfnVPCCidrBlockPropsMixin = exports.CfnVPCPropsMixin = exports.CfnTransitGatewayVpcAttachmentPropsMixin = exports.CfnTransitGatewayRouteTablePropagationPropsMixin = exports.CfnTransitGatewayRouteTableAssociationPropsMixin = exports.CfnTransitGatewayRouteTablePropsMixin = exports.CfnTransitGatewayRoutePropsMixin = exports.CfnTransitGatewayPeeringAttachmentPropsMixin = exports.CfnTransitGatewayMulticastGroupSourcePropsMixin = exports.CfnTransitGatewayMulticastGroupMemberPropsMixin = exports.CfnTransitGatewayMulticastDomainAssociationPropsMixin = exports.CfnTransitGatewayMulticastDomainPropsMixin = exports.CfnTransitGatewayConnectPropsMixin = exports.CfnTransitGatewayAttachmentPropsMixin = exports.CfnTransitGatewayPropsMixin = exports.CfnTrafficMirrorTargetPropsMixin = exports.CfnTrafficMirrorSessionPropsMixin = exports.CfnTrafficMirrorFilterRulePropsMixin = exports.CfnTrafficMirrorFilterPropsMixin = exports.CfnSubnetRouteTableAssociationPropsMixin = exports.CfnSubnetNetworkAclAssociationPropsMixin = exports.CfnSubnetCidrBlockPropsMixin = exports.CfnSubnetPropsMixin = exports.CfnSpotFleetPropsMixin = exports.CfnSecurityGroupIngressPropsMixin = void 0;
5
- exports.CfnVPNConcentratorPropsMixin = exports.CfnVPCEncryptionControlPropsMixin = exports.CfnVPCBlockPublicAccessOptionsPropsMixin = exports.CfnVPCBlockPublicAccessExclusionPropsMixin = exports.CfnTransitGatewayMeteringPolicyEntryPropsMixin = exports.CfnTransitGatewayMeteringPolicyPropsMixin = exports.CfnTransitGatewayConnectPeerPropsMixin = exports.CfnSnapshotBlockPublicAccessPropsMixin = exports.CfnSecurityGroupVpcAssociationPropsMixin = exports.CfnRouteServerPropagationPropsMixin = void 0;
4
+ exports.CfnRouteServerEndpointPropsMixin = exports.CfnRouteServerAssociationPropsMixin = exports.CfnRouteServerPropsMixin = exports.CfnLocalGatewayVirtualInterfaceGroupPropsMixin = exports.CfnLocalGatewayVirtualInterfacePropsMixin = exports.CfnIpPoolRouteTableAssociationPropsMixin = exports.CfnIPAMPrefixListResolverPropsMixin = exports.CfnCapacityManagerDataExportPropsMixin = exports.CfnVolumeAttachmentPropsMixin = exports.CfnVolumePropsMixin = exports.CfnVerifiedAccessTrustProviderPropsMixin = exports.CfnVerifiedAccessInstancePropsMixin = exports.CfnVerifiedAccessGroupPropsMixin = exports.CfnVerifiedAccessEndpointPropsMixin = exports.CfnVPNGatewayRoutePropagationPropsMixin = exports.CfnVPNGatewayPropsMixin = exports.CfnVPNConnectionRoutePropsMixin = exports.CfnVPNConnectionPropsMixin = exports.CfnVPCPeeringConnectionPropsMixin = exports.CfnVPCGatewayAttachmentPropsMixin = exports.CfnVPCEndpointServicePermissionsPropsMixin = exports.CfnVPCEndpointServicePropsMixin = exports.CfnVPCEndpointConnectionNotificationPropsMixin = exports.CfnVPCEndpointPropsMixin = exports.CfnVPCDHCPOptionsAssociationPropsMixin = exports.CfnVPCCidrBlockPropsMixin = exports.CfnVPCPropsMixin = exports.CfnTransitGatewayVpcAttachmentPropsMixin = exports.CfnTransitGatewayRouteTablePropagationPropsMixin = exports.CfnTransitGatewayRouteTableAssociationPropsMixin = exports.CfnTransitGatewayRouteTablePropsMixin = exports.CfnTransitGatewayRoutePropsMixin = exports.CfnTransitGatewayPeeringAttachmentPropsMixin = exports.CfnTransitGatewayMulticastGroupSourcePropsMixin = exports.CfnTransitGatewayMulticastGroupMemberPropsMixin = exports.CfnTransitGatewayMulticastDomainAssociationPropsMixin = exports.CfnTransitGatewayMulticastDomainPropsMixin = exports.CfnTransitGatewayConnectPropsMixin = exports.CfnTransitGatewayAttachmentPropsMixin = exports.CfnTransitGatewayPropsMixin = exports.CfnTrafficMirrorTargetPropsMixin = exports.CfnTrafficMirrorSessionPropsMixin = exports.CfnTrafficMirrorFilterRulePropsMixin = exports.CfnTrafficMirrorFilterPropsMixin = exports.CfnSubnetRouteTableAssociationPropsMixin = exports.CfnSubnetNetworkAclAssociationPropsMixin = exports.CfnSubnetCidrBlockPropsMixin = exports.CfnSubnetPropsMixin = exports.CfnSpotFleetPropsMixin = exports.CfnSecurityGroupIngressPropsMixin = void 0;
5
+ exports.CfnVPNConcentratorPropsMixin = exports.CfnVPCEncryptionControlPropsMixin = exports.CfnVPCBlockPublicAccessOptionsPropsMixin = exports.CfnVPCBlockPublicAccessExclusionPropsMixin = exports.CfnTransitGatewayMeteringPolicyEntryPropsMixin = exports.CfnTransitGatewayMeteringPolicyPropsMixin = exports.CfnTransitGatewayConnectPeerPropsMixin = exports.CfnSnapshotBlockPublicAccessPropsMixin = exports.CfnSecurityGroupVpcAssociationPropsMixin = exports.CfnRouteServerPropagationPropsMixin = exports.CfnRouteServerPeerPropsMixin = void 0;
6
6
  const jsiiDeprecationWarnings = require("../../../.warnings.jsii.js");
7
7
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
8
8
  /* eslint-disable @stylistic/max-len, eol-last */
9
9
  const cdk = require("aws-cdk-lib/core");
10
- const core = require("../../core");
11
10
  const mixins = require("../../mixins");
12
- const helpers = require("../../util/property-mixins");
13
11
  const service = require("aws-cdk-lib/aws-ec2");
14
12
  /**
15
13
  * Creates a new Capacity Reservation with the specified attributes.
@@ -21,8 +19,8 @@ const service = require("aws-cdk-lib/aws-ec2");
21
19
  * @stability external
22
20
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservation.html
23
21
  */
24
- class CfnCapacityReservationPropsMixin extends core.Mixin {
25
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityReservationPropsMixin", version: "2.240.0-alpha.0" };
22
+ class CfnCapacityReservationPropsMixin extends cdk.Mixin {
23
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityReservationPropsMixin", version: "2.242.0-alpha.0" };
26
24
  static CFN_PROPERTY_KEYS = ["availabilityZone", "availabilityZoneId", "ebsOptimized", "endDate", "endDateType", "ephemeralStorage", "instanceCount", "instanceMatchCriteria", "instancePlatform", "instanceType", "outPostArn", "placementGroupArn", "tagSpecifications", "tenancy", "unusedReservationBillingOwnerId"];
27
25
  props;
28
26
  strategy;
@@ -45,7 +43,7 @@ class CfnCapacityReservationPropsMixin extends core.Mixin {
45
43
  throw error;
46
44
  }
47
45
  this.props = props;
48
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
46
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
49
47
  }
50
48
  /**
51
49
  * Check if this mixin supports the given construct
@@ -58,12 +56,7 @@ class CfnCapacityReservationPropsMixin extends core.Mixin {
58
56
  */
59
57
  applyTo(construct) {
60
58
  if (this.supports(construct)) {
61
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
62
- helpers.deepMerge(construct, this.props, CfnCapacityReservationPropsMixin.CFN_PROPERTY_KEYS);
63
- }
64
- else {
65
- helpers.shallowAssign(construct, this.props, CfnCapacityReservationPropsMixin.CFN_PROPERTY_KEYS);
66
- }
59
+ this.strategy.apply(construct, this.props, CfnCapacityReservationPropsMixin.CFN_PROPERTY_KEYS);
67
60
  }
68
61
  }
69
62
  }
@@ -78,8 +71,8 @@ exports.CfnCapacityReservationPropsMixin = CfnCapacityReservationPropsMixin;
78
71
  * @stability external
79
72
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacityreservationfleet.html
80
73
  */
81
- class CfnCapacityReservationFleetPropsMixin extends core.Mixin {
82
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityReservationFleetPropsMixin", version: "2.240.0-alpha.0" };
74
+ class CfnCapacityReservationFleetPropsMixin extends cdk.Mixin {
75
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityReservationFleetPropsMixin", version: "2.242.0-alpha.0" };
83
76
  static CFN_PROPERTY_KEYS = ["allocationStrategy", "endDate", "instanceMatchCriteria", "instanceTypeSpecifications", "noRemoveEndDate", "removeEndDate", "tagSpecifications", "tenancy", "totalTargetCapacity"];
84
77
  props;
85
78
  strategy;
@@ -102,7 +95,7 @@ class CfnCapacityReservationFleetPropsMixin extends core.Mixin {
102
95
  throw error;
103
96
  }
104
97
  this.props = props;
105
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
98
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
106
99
  }
107
100
  /**
108
101
  * Check if this mixin supports the given construct
@@ -115,12 +108,7 @@ class CfnCapacityReservationFleetPropsMixin extends core.Mixin {
115
108
  */
116
109
  applyTo(construct) {
117
110
  if (this.supports(construct)) {
118
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
119
- helpers.deepMerge(construct, this.props, CfnCapacityReservationFleetPropsMixin.CFN_PROPERTY_KEYS);
120
- }
121
- else {
122
- helpers.shallowAssign(construct, this.props, CfnCapacityReservationFleetPropsMixin.CFN_PROPERTY_KEYS);
123
- }
111
+ this.strategy.apply(construct, this.props, CfnCapacityReservationFleetPropsMixin.CFN_PROPERTY_KEYS);
124
112
  }
125
113
  }
126
114
  }
@@ -135,8 +123,8 @@ exports.CfnCapacityReservationFleetPropsMixin = CfnCapacityReservationFleetProps
135
123
  * @stability external
136
124
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-carriergateway.html
137
125
  */
138
- class CfnCarrierGatewayPropsMixin extends core.Mixin {
139
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCarrierGatewayPropsMixin", version: "2.240.0-alpha.0" };
126
+ class CfnCarrierGatewayPropsMixin extends cdk.Mixin {
127
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCarrierGatewayPropsMixin", version: "2.242.0-alpha.0" };
140
128
  static CFN_PROPERTY_KEYS = ["tags", "vpcId"];
141
129
  props;
142
130
  strategy;
@@ -158,8 +146,11 @@ class CfnCarrierGatewayPropsMixin extends core.Mixin {
158
146
  }
159
147
  throw error;
160
148
  }
161
- this.props = props;
162
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
149
+ this.props = {
150
+ ...props,
151
+ ...flattenCfnCarrierGatewayMixinProps(props)
152
+ };
153
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
163
154
  }
164
155
  /**
165
156
  * Check if this mixin supports the given construct
@@ -172,16 +163,18 @@ class CfnCarrierGatewayPropsMixin extends core.Mixin {
172
163
  */
173
164
  applyTo(construct) {
174
165
  if (this.supports(construct)) {
175
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
176
- helpers.deepMerge(construct, this.props, CfnCarrierGatewayPropsMixin.CFN_PROPERTY_KEYS);
177
- }
178
- else {
179
- helpers.shallowAssign(construct, this.props, CfnCarrierGatewayPropsMixin.CFN_PROPERTY_KEYS);
180
- }
166
+ this.strategy.apply(construct, this.props, CfnCarrierGatewayPropsMixin.CFN_PROPERTY_KEYS);
181
167
  }
182
168
  }
183
169
  }
184
170
  exports.CfnCarrierGatewayPropsMixin = CfnCarrierGatewayPropsMixin;
171
+ // @ts-ignore TS6133
172
+ function flattenCfnCarrierGatewayMixinProps(props) {
173
+ const ret = {};
174
+ if ((props.vpcId !== undefined))
175
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
176
+ return ret;
177
+ }
185
178
  /**
186
179
  * Specifies an ingress authorization rule to add to a Client VPN endpoint.
187
180
  *
@@ -192,8 +185,8 @@ exports.CfnCarrierGatewayPropsMixin = CfnCarrierGatewayPropsMixin;
192
185
  * @stability external
193
186
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnauthorizationrule.html
194
187
  */
195
- class CfnClientVpnAuthorizationRulePropsMixin extends core.Mixin {
196
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnAuthorizationRulePropsMixin", version: "2.240.0-alpha.0" };
188
+ class CfnClientVpnAuthorizationRulePropsMixin extends cdk.Mixin {
189
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnAuthorizationRulePropsMixin", version: "2.242.0-alpha.0" };
197
190
  static CFN_PROPERTY_KEYS = ["accessGroupId", "authorizeAllGroups", "clientVpnEndpointId", "description", "targetNetworkCidr"];
198
191
  props;
199
192
  strategy;
@@ -216,7 +209,7 @@ class CfnClientVpnAuthorizationRulePropsMixin extends core.Mixin {
216
209
  throw error;
217
210
  }
218
211
  this.props = props;
219
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
212
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
220
213
  }
221
214
  /**
222
215
  * Check if this mixin supports the given construct
@@ -229,12 +222,7 @@ class CfnClientVpnAuthorizationRulePropsMixin extends core.Mixin {
229
222
  */
230
223
  applyTo(construct) {
231
224
  if (this.supports(construct)) {
232
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
233
- helpers.deepMerge(construct, this.props, CfnClientVpnAuthorizationRulePropsMixin.CFN_PROPERTY_KEYS);
234
- }
235
- else {
236
- helpers.shallowAssign(construct, this.props, CfnClientVpnAuthorizationRulePropsMixin.CFN_PROPERTY_KEYS);
237
- }
225
+ this.strategy.apply(construct, this.props, CfnClientVpnAuthorizationRulePropsMixin.CFN_PROPERTY_KEYS);
238
226
  }
239
227
  }
240
228
  }
@@ -249,8 +237,8 @@ exports.CfnClientVpnAuthorizationRulePropsMixin = CfnClientVpnAuthorizationRuleP
249
237
  * @stability external
250
238
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnendpoint.html
251
239
  */
252
- class CfnClientVpnEndpointPropsMixin extends core.Mixin {
253
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnEndpointPropsMixin", version: "2.240.0-alpha.0" };
240
+ class CfnClientVpnEndpointPropsMixin extends cdk.Mixin {
241
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnEndpointPropsMixin", version: "2.242.0-alpha.0" };
254
242
  static CFN_PROPERTY_KEYS = ["authenticationOptions", "clientCidrBlock", "clientConnectOptions", "clientLoginBannerOptions", "clientRouteEnforcementOptions", "connectionLogOptions", "description", "disconnectOnSessionTimeout", "dnsServers", "endpointIpAddressType", "securityGroupIds", "selfServicePortal", "serverCertificateArn", "sessionTimeoutHours", "splitTunnel", "tagSpecifications", "trafficIpAddressType", "transportProtocol", "vpcId", "vpnPort"];
255
243
  props;
256
244
  strategy;
@@ -273,7 +261,7 @@ class CfnClientVpnEndpointPropsMixin extends core.Mixin {
273
261
  throw error;
274
262
  }
275
263
  this.props = props;
276
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
264
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
277
265
  }
278
266
  /**
279
267
  * Check if this mixin supports the given construct
@@ -286,12 +274,7 @@ class CfnClientVpnEndpointPropsMixin extends core.Mixin {
286
274
  */
287
275
  applyTo(construct) {
288
276
  if (this.supports(construct)) {
289
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
290
- helpers.deepMerge(construct, this.props, CfnClientVpnEndpointPropsMixin.CFN_PROPERTY_KEYS);
291
- }
292
- else {
293
- helpers.shallowAssign(construct, this.props, CfnClientVpnEndpointPropsMixin.CFN_PROPERTY_KEYS);
294
- }
277
+ this.strategy.apply(construct, this.props, CfnClientVpnEndpointPropsMixin.CFN_PROPERTY_KEYS);
295
278
  }
296
279
  }
297
280
  }
@@ -308,8 +291,8 @@ exports.CfnClientVpnEndpointPropsMixin = CfnClientVpnEndpointPropsMixin;
308
291
  * @stability external
309
292
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpnroute.html
310
293
  */
311
- class CfnClientVpnRoutePropsMixin extends core.Mixin {
312
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnRoutePropsMixin", version: "2.240.0-alpha.0" };
294
+ class CfnClientVpnRoutePropsMixin extends cdk.Mixin {
295
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnRoutePropsMixin", version: "2.242.0-alpha.0" };
313
296
  static CFN_PROPERTY_KEYS = ["clientVpnEndpointId", "description", "destinationCidrBlock", "targetVpcSubnetId"];
314
297
  props;
315
298
  strategy;
@@ -332,7 +315,7 @@ class CfnClientVpnRoutePropsMixin extends core.Mixin {
332
315
  throw error;
333
316
  }
334
317
  this.props = props;
335
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
318
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
336
319
  }
337
320
  /**
338
321
  * Check if this mixin supports the given construct
@@ -345,12 +328,7 @@ class CfnClientVpnRoutePropsMixin extends core.Mixin {
345
328
  */
346
329
  applyTo(construct) {
347
330
  if (this.supports(construct)) {
348
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
349
- helpers.deepMerge(construct, this.props, CfnClientVpnRoutePropsMixin.CFN_PROPERTY_KEYS);
350
- }
351
- else {
352
- helpers.shallowAssign(construct, this.props, CfnClientVpnRoutePropsMixin.CFN_PROPERTY_KEYS);
353
- }
331
+ this.strategy.apply(construct, this.props, CfnClientVpnRoutePropsMixin.CFN_PROPERTY_KEYS);
354
332
  }
355
333
  }
356
334
  }
@@ -365,8 +343,8 @@ exports.CfnClientVpnRoutePropsMixin = CfnClientVpnRoutePropsMixin;
365
343
  * @stability external
366
344
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-clientvpntargetnetworkassociation.html
367
345
  */
368
- class CfnClientVpnTargetNetworkAssociationPropsMixin extends core.Mixin {
369
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnTargetNetworkAssociationPropsMixin", version: "2.240.0-alpha.0" };
346
+ class CfnClientVpnTargetNetworkAssociationPropsMixin extends cdk.Mixin {
347
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnClientVpnTargetNetworkAssociationPropsMixin", version: "2.242.0-alpha.0" };
370
348
  static CFN_PROPERTY_KEYS = ["clientVpnEndpointId", "subnetId"];
371
349
  props;
372
350
  strategy;
@@ -389,7 +367,7 @@ class CfnClientVpnTargetNetworkAssociationPropsMixin extends core.Mixin {
389
367
  throw error;
390
368
  }
391
369
  this.props = props;
392
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
370
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
393
371
  }
394
372
  /**
395
373
  * Check if this mixin supports the given construct
@@ -402,12 +380,7 @@ class CfnClientVpnTargetNetworkAssociationPropsMixin extends core.Mixin {
402
380
  */
403
381
  applyTo(construct) {
404
382
  if (this.supports(construct)) {
405
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
406
- helpers.deepMerge(construct, this.props, CfnClientVpnTargetNetworkAssociationPropsMixin.CFN_PROPERTY_KEYS);
407
- }
408
- else {
409
- helpers.shallowAssign(construct, this.props, CfnClientVpnTargetNetworkAssociationPropsMixin.CFN_PROPERTY_KEYS);
410
- }
383
+ this.strategy.apply(construct, this.props, CfnClientVpnTargetNetworkAssociationPropsMixin.CFN_PROPERTY_KEYS);
411
384
  }
412
385
  }
413
386
  }
@@ -420,8 +393,8 @@ exports.CfnClientVpnTargetNetworkAssociationPropsMixin = CfnClientVpnTargetNetwo
420
393
  * @stability external
421
394
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-customergateway.html
422
395
  */
423
- class CfnCustomerGatewayPropsMixin extends core.Mixin {
424
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCustomerGatewayPropsMixin", version: "2.240.0-alpha.0" };
396
+ class CfnCustomerGatewayPropsMixin extends cdk.Mixin {
397
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCustomerGatewayPropsMixin", version: "2.242.0-alpha.0" };
425
398
  static CFN_PROPERTY_KEYS = ["bgpAsn", "bgpAsnExtended", "certificateArn", "deviceName", "ipAddress", "tags", "type"];
426
399
  props;
427
400
  strategy;
@@ -443,8 +416,11 @@ class CfnCustomerGatewayPropsMixin extends core.Mixin {
443
416
  }
444
417
  throw error;
445
418
  }
446
- this.props = props;
447
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
419
+ this.props = {
420
+ ...props,
421
+ ...flattenCfnCustomerGatewayMixinProps(props)
422
+ };
423
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
448
424
  }
449
425
  /**
450
426
  * Check if this mixin supports the given construct
@@ -457,16 +433,18 @@ class CfnCustomerGatewayPropsMixin extends core.Mixin {
457
433
  */
458
434
  applyTo(construct) {
459
435
  if (this.supports(construct)) {
460
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
461
- helpers.deepMerge(construct, this.props, CfnCustomerGatewayPropsMixin.CFN_PROPERTY_KEYS);
462
- }
463
- else {
464
- helpers.shallowAssign(construct, this.props, CfnCustomerGatewayPropsMixin.CFN_PROPERTY_KEYS);
465
- }
436
+ this.strategy.apply(construct, this.props, CfnCustomerGatewayPropsMixin.CFN_PROPERTY_KEYS);
466
437
  }
467
438
  }
468
439
  }
469
440
  exports.CfnCustomerGatewayPropsMixin = CfnCustomerGatewayPropsMixin;
441
+ // @ts-ignore TS6133
442
+ function flattenCfnCustomerGatewayMixinProps(props) {
443
+ const ret = {};
444
+ if ((props.ipAddress !== undefined))
445
+ ret.ipAddress = props.ipAddress;
446
+ return ret;
447
+ }
470
448
  /**
471
449
  * Specifies a set of DHCP options for your VPC.
472
450
  *
@@ -477,8 +455,8 @@ exports.CfnCustomerGatewayPropsMixin = CfnCustomerGatewayPropsMixin;
477
455
  * @stability external
478
456
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcpoptions.html
479
457
  */
480
- class CfnDHCPOptionsPropsMixin extends core.Mixin {
481
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnDHCPOptionsPropsMixin", version: "2.240.0-alpha.0" };
458
+ class CfnDHCPOptionsPropsMixin extends cdk.Mixin {
459
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnDHCPOptionsPropsMixin", version: "2.242.0-alpha.0" };
482
460
  static CFN_PROPERTY_KEYS = ["domainName", "domainNameServers", "ipv6AddressPreferredLeaseTime", "netbiosNameServers", "netbiosNodeType", "ntpServers", "tags"];
483
461
  props;
484
462
  strategy;
@@ -501,7 +479,7 @@ class CfnDHCPOptionsPropsMixin extends core.Mixin {
501
479
  throw error;
502
480
  }
503
481
  this.props = props;
504
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
482
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
505
483
  }
506
484
  /**
507
485
  * Check if this mixin supports the given construct
@@ -514,12 +492,7 @@ class CfnDHCPOptionsPropsMixin extends core.Mixin {
514
492
  */
515
493
  applyTo(construct) {
516
494
  if (this.supports(construct)) {
517
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
518
- helpers.deepMerge(construct, this.props, CfnDHCPOptionsPropsMixin.CFN_PROPERTY_KEYS);
519
- }
520
- else {
521
- helpers.shallowAssign(construct, this.props, CfnDHCPOptionsPropsMixin.CFN_PROPERTY_KEYS);
522
- }
495
+ this.strategy.apply(construct, this.props, CfnDHCPOptionsPropsMixin.CFN_PROPERTY_KEYS);
523
496
  }
524
497
  }
525
498
  }
@@ -534,8 +507,8 @@ exports.CfnDHCPOptionsPropsMixin = CfnDHCPOptionsPropsMixin;
534
507
  * @stability external
535
508
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html
536
509
  */
537
- class CfnEC2FleetPropsMixin extends core.Mixin {
538
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEC2FleetPropsMixin", version: "2.240.0-alpha.0" };
510
+ class CfnEC2FleetPropsMixin extends cdk.Mixin {
511
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEC2FleetPropsMixin", version: "2.242.0-alpha.0" };
539
512
  static CFN_PROPERTY_KEYS = ["context", "excessCapacityTerminationPolicy", "launchTemplateConfigs", "onDemandOptions", "replaceUnhealthyInstances", "spotOptions", "tagSpecifications", "targetCapacitySpecification", "terminateInstancesWithExpiration", "type", "validFrom", "validUntil"];
540
513
  props;
541
514
  strategy;
@@ -558,7 +531,7 @@ class CfnEC2FleetPropsMixin extends core.Mixin {
558
531
  throw error;
559
532
  }
560
533
  this.props = props;
561
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
534
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
562
535
  }
563
536
  /**
564
537
  * Check if this mixin supports the given construct
@@ -571,12 +544,7 @@ class CfnEC2FleetPropsMixin extends core.Mixin {
571
544
  */
572
545
  applyTo(construct) {
573
546
  if (this.supports(construct)) {
574
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
575
- helpers.deepMerge(construct, this.props, CfnEC2FleetPropsMixin.CFN_PROPERTY_KEYS);
576
- }
577
- else {
578
- helpers.shallowAssign(construct, this.props, CfnEC2FleetPropsMixin.CFN_PROPERTY_KEYS);
579
- }
547
+ this.strategy.apply(construct, this.props, CfnEC2FleetPropsMixin.CFN_PROPERTY_KEYS);
580
548
  }
581
549
  }
582
550
  }
@@ -593,8 +561,8 @@ exports.CfnEC2FleetPropsMixin = CfnEC2FleetPropsMixin;
593
561
  * @stability external
594
562
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eip.html
595
563
  */
596
- class CfnEIPPropsMixin extends core.Mixin {
597
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEIPPropsMixin", version: "2.240.0-alpha.0" };
564
+ class CfnEIPPropsMixin extends cdk.Mixin {
565
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEIPPropsMixin", version: "2.242.0-alpha.0" };
598
566
  static CFN_PROPERTY_KEYS = ["address", "domain", "instanceId", "ipamPoolId", "networkBorderGroup", "publicIpv4Pool", "tags", "transferAddress"];
599
567
  props;
600
568
  strategy;
@@ -616,8 +584,11 @@ class CfnEIPPropsMixin extends core.Mixin {
616
584
  }
617
585
  throw error;
618
586
  }
619
- this.props = props;
620
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
587
+ this.props = {
588
+ ...props,
589
+ ...flattenCfnEIPMixinProps(props)
590
+ };
591
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
621
592
  }
622
593
  /**
623
594
  * Check if this mixin supports the given construct
@@ -630,16 +601,18 @@ class CfnEIPPropsMixin extends core.Mixin {
630
601
  */
631
602
  applyTo(construct) {
632
603
  if (this.supports(construct)) {
633
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
634
- helpers.deepMerge(construct, this.props, CfnEIPPropsMixin.CFN_PROPERTY_KEYS);
635
- }
636
- else {
637
- helpers.shallowAssign(construct, this.props, CfnEIPPropsMixin.CFN_PROPERTY_KEYS);
638
- }
604
+ this.strategy.apply(construct, this.props, CfnEIPPropsMixin.CFN_PROPERTY_KEYS);
639
605
  }
640
606
  }
641
607
  }
642
608
  exports.CfnEIPPropsMixin = CfnEIPPropsMixin;
609
+ // @ts-ignore TS6133
610
+ function flattenCfnEIPMixinProps(props) {
611
+ const ret = {};
612
+ if ((props.instanceId !== undefined))
613
+ ret.instanceId = cdk.getRefProperty(props.instanceId?.instanceRef, 'instanceId') ?? cdk.ensureStringOrUndefined(props.instanceId, "instanceId", "ec2.IInstanceRef | string");
614
+ return ret;
615
+ }
643
616
  /**
644
617
  * Associates an Elastic IP address with an instance or a network interface.
645
618
  *
@@ -652,8 +625,8 @@ exports.CfnEIPPropsMixin = CfnEIPPropsMixin;
652
625
  * @stability external
653
626
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-eipassociation.html
654
627
  */
655
- class CfnEIPAssociationPropsMixin extends core.Mixin {
656
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEIPAssociationPropsMixin", version: "2.240.0-alpha.0" };
628
+ class CfnEIPAssociationPropsMixin extends cdk.Mixin {
629
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEIPAssociationPropsMixin", version: "2.242.0-alpha.0" };
657
630
  static CFN_PROPERTY_KEYS = ["allocationId", "eip", "instanceId", "networkInterfaceId", "privateIpAddress"];
658
631
  props;
659
632
  strategy;
@@ -675,8 +648,11 @@ class CfnEIPAssociationPropsMixin extends core.Mixin {
675
648
  }
676
649
  throw error;
677
650
  }
678
- this.props = props;
679
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
651
+ this.props = {
652
+ ...props,
653
+ ...flattenCfnEIPAssociationMixinProps(props)
654
+ };
655
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
680
656
  }
681
657
  /**
682
658
  * Check if this mixin supports the given construct
@@ -689,16 +665,22 @@ class CfnEIPAssociationPropsMixin extends core.Mixin {
689
665
  */
690
666
  applyTo(construct) {
691
667
  if (this.supports(construct)) {
692
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
693
- helpers.deepMerge(construct, this.props, CfnEIPAssociationPropsMixin.CFN_PROPERTY_KEYS);
694
- }
695
- else {
696
- helpers.shallowAssign(construct, this.props, CfnEIPAssociationPropsMixin.CFN_PROPERTY_KEYS);
697
- }
668
+ this.strategy.apply(construct, this.props, CfnEIPAssociationPropsMixin.CFN_PROPERTY_KEYS);
698
669
  }
699
670
  }
700
671
  }
701
672
  exports.CfnEIPAssociationPropsMixin = CfnEIPAssociationPropsMixin;
673
+ // @ts-ignore TS6133
674
+ function flattenCfnEIPAssociationMixinProps(props) {
675
+ const ret = {};
676
+ if ((props.eip !== undefined))
677
+ ret.eip = cdk.getRefProperty(props.eip?.eipRef, 'publicIp') ?? cdk.getRefProperty(props.eip?.eipRef, 'allocationId') ?? cdk.ensureStringOrUndefined(props.eip, "eip", "ec2.IEIPRef | string");
678
+ if ((props.instanceId !== undefined))
679
+ ret.instanceId = cdk.getRefProperty(props.instanceId?.instanceRef, 'instanceId') ?? cdk.ensureStringOrUndefined(props.instanceId, "instanceId", "ec2.IInstanceRef | string");
680
+ if ((props.networkInterfaceId !== undefined))
681
+ ret.networkInterfaceId = cdk.getRefProperty(props.networkInterfaceId?.networkInterfaceRef, 'networkInterfaceId') ?? cdk.ensureStringOrUndefined(props.networkInterfaceId, "networkInterfaceId", "ec2.INetworkInterfaceRef | string");
682
+ return ret;
683
+ }
702
684
  /**
703
685
  * [IPv6 only] Specifies an egress-only internet gateway for your VPC.
704
686
  *
@@ -711,8 +693,8 @@ exports.CfnEIPAssociationPropsMixin = CfnEIPAssociationPropsMixin;
711
693
  * @stability external
712
694
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-egressonlyinternetgateway.html
713
695
  */
714
- class CfnEgressOnlyInternetGatewayPropsMixin extends core.Mixin {
715
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEgressOnlyInternetGatewayPropsMixin", version: "2.240.0-alpha.0" };
696
+ class CfnEgressOnlyInternetGatewayPropsMixin extends cdk.Mixin {
697
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEgressOnlyInternetGatewayPropsMixin", version: "2.242.0-alpha.0" };
716
698
  static CFN_PROPERTY_KEYS = ["tags", "vpcId"];
717
699
  props;
718
700
  strategy;
@@ -734,8 +716,11 @@ class CfnEgressOnlyInternetGatewayPropsMixin extends core.Mixin {
734
716
  }
735
717
  throw error;
736
718
  }
737
- this.props = props;
738
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
719
+ this.props = {
720
+ ...props,
721
+ ...flattenCfnEgressOnlyInternetGatewayMixinProps(props)
722
+ };
723
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
739
724
  }
740
725
  /**
741
726
  * Check if this mixin supports the given construct
@@ -748,16 +733,18 @@ class CfnEgressOnlyInternetGatewayPropsMixin extends core.Mixin {
748
733
  */
749
734
  applyTo(construct) {
750
735
  if (this.supports(construct)) {
751
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
752
- helpers.deepMerge(construct, this.props, CfnEgressOnlyInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
753
- }
754
- else {
755
- helpers.shallowAssign(construct, this.props, CfnEgressOnlyInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
756
- }
736
+ this.strategy.apply(construct, this.props, CfnEgressOnlyInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
757
737
  }
758
738
  }
759
739
  }
760
740
  exports.CfnEgressOnlyInternetGatewayPropsMixin = CfnEgressOnlyInternetGatewayPropsMixin;
741
+ // @ts-ignore TS6133
742
+ function flattenCfnEgressOnlyInternetGatewayMixinProps(props) {
743
+ const ret = {};
744
+ if ((props.vpcId !== undefined))
745
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
746
+ return ret;
747
+ }
761
748
  /**
762
749
  * Associates an AWS Identity and Access Management (IAM) role with an Certificate Manager (ACM) certificate.
763
750
  *
@@ -772,8 +759,8 @@ exports.CfnEgressOnlyInternetGatewayPropsMixin = CfnEgressOnlyInternetGatewayPro
772
759
  * @stability external
773
760
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-enclavecertificateiamroleassociation.html
774
761
  */
775
- class CfnEnclaveCertificateIamRoleAssociationPropsMixin extends core.Mixin {
776
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEnclaveCertificateIamRoleAssociationPropsMixin", version: "2.240.0-alpha.0" };
762
+ class CfnEnclaveCertificateIamRoleAssociationPropsMixin extends cdk.Mixin {
763
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnEnclaveCertificateIamRoleAssociationPropsMixin", version: "2.242.0-alpha.0" };
777
764
  static CFN_PROPERTY_KEYS = ["certificateArn", "roleArn"];
778
765
  props;
779
766
  strategy;
@@ -796,7 +783,7 @@ class CfnEnclaveCertificateIamRoleAssociationPropsMixin extends core.Mixin {
796
783
  throw error;
797
784
  }
798
785
  this.props = props;
799
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
786
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
800
787
  }
801
788
  /**
802
789
  * Check if this mixin supports the given construct
@@ -809,12 +796,7 @@ class CfnEnclaveCertificateIamRoleAssociationPropsMixin extends core.Mixin {
809
796
  */
810
797
  applyTo(construct) {
811
798
  if (this.supports(construct)) {
812
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
813
- helpers.deepMerge(construct, this.props, CfnEnclaveCertificateIamRoleAssociationPropsMixin.CFN_PROPERTY_KEYS);
814
- }
815
- else {
816
- helpers.shallowAssign(construct, this.props, CfnEnclaveCertificateIamRoleAssociationPropsMixin.CFN_PROPERTY_KEYS);
817
- }
799
+ this.strategy.apply(construct, this.props, CfnEnclaveCertificateIamRoleAssociationPropsMixin.CFN_PROPERTY_KEYS);
818
800
  }
819
801
  }
820
802
  }
@@ -829,8 +811,8 @@ exports.CfnEnclaveCertificateIamRoleAssociationPropsMixin = CfnEnclaveCertificat
829
811
  * @stability external
830
812
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html
831
813
  */
832
- class CfnFlowLogPropsMixin extends core.Mixin {
833
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnFlowLogPropsMixin", version: "2.240.0-alpha.0" };
814
+ class CfnFlowLogPropsMixin extends cdk.Mixin {
815
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnFlowLogPropsMixin", version: "2.242.0-alpha.0" };
834
816
  static CFN_PROPERTY_KEYS = ["deliverCrossAccountRole", "deliverLogsPermissionArn", "destinationOptions", "logDestination", "logDestinationType", "logFormat", "logGroupName", "maxAggregationInterval", "resourceId", "resourceType", "tags", "trafficType"];
835
817
  props;
836
818
  strategy;
@@ -852,8 +834,11 @@ class CfnFlowLogPropsMixin extends core.Mixin {
852
834
  }
853
835
  throw error;
854
836
  }
855
- this.props = props;
856
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
837
+ this.props = {
838
+ ...props,
839
+ ...flattenCfnFlowLogMixinProps(props)
840
+ };
841
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
857
842
  }
858
843
  /**
859
844
  * Check if this mixin supports the given construct
@@ -866,16 +851,24 @@ class CfnFlowLogPropsMixin extends core.Mixin {
866
851
  */
867
852
  applyTo(construct) {
868
853
  if (this.supports(construct)) {
869
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
870
- helpers.deepMerge(construct, this.props, CfnFlowLogPropsMixin.CFN_PROPERTY_KEYS);
871
- }
872
- else {
873
- helpers.shallowAssign(construct, this.props, CfnFlowLogPropsMixin.CFN_PROPERTY_KEYS);
874
- }
854
+ this.strategy.apply(construct, this.props, CfnFlowLogPropsMixin.CFN_PROPERTY_KEYS);
875
855
  }
876
856
  }
877
857
  }
878
858
  exports.CfnFlowLogPropsMixin = CfnFlowLogPropsMixin;
859
+ // @ts-ignore TS6133
860
+ function flattenCfnFlowLogMixinProps(props) {
861
+ const ret = {};
862
+ if ((props.deliverLogsPermissionArn !== undefined))
863
+ ret.deliverLogsPermissionArn = cdk.getRefProperty(props.deliverLogsPermissionArn?.roleRef, 'roleArn') ?? cdk.ensureStringOrUndefined(props.deliverLogsPermissionArn, "deliverLogsPermissionArn", "iam.IRoleRef | string");
864
+ if ((props.logDestination !== undefined))
865
+ ret.logDestination = cdk.getRefProperty(props.logDestination?.bucketRef, 'bucketArn') ?? cdk.getRefProperty(props.logDestination?.logGroupRef, 'logGroupArn') ?? cdk.ensureStringOrUndefined(props.logDestination, "logDestination", "s3.IBucketRef | logs.ILogGroupRef | string");
866
+ if ((props.logGroupName !== undefined))
867
+ ret.logGroupName = cdk.getRefProperty(props.logGroupName?.logGroupRef, 'logGroupName') ?? cdk.ensureStringOrUndefined(props.logGroupName, "logGroupName", "logs.ILogGroupRef | string");
868
+ if ((props.resourceId !== undefined))
869
+ ret.resourceId = cdk.getRefProperty(props.resourceId?.vpcRef, 'vpcId') ?? cdk.getRefProperty(props.resourceId?.subnetRef, 'subnetId') ?? cdk.getRefProperty(props.resourceId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.resourceId, "resourceId", "ec2.IVPCRef | ec2.ISubnetRef | ec2.ITransitGatewayRef | string");
870
+ return ret;
871
+ }
879
872
  /**
880
873
  * Associates a virtual private gateway or internet gateway with a route table.
881
874
  *
@@ -886,8 +879,8 @@ exports.CfnFlowLogPropsMixin = CfnFlowLogPropsMixin;
886
879
  * @stability external
887
880
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-gatewayroutetableassociation.html
888
881
  */
889
- class CfnGatewayRouteTableAssociationPropsMixin extends core.Mixin {
890
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnGatewayRouteTableAssociationPropsMixin", version: "2.240.0-alpha.0" };
882
+ class CfnGatewayRouteTableAssociationPropsMixin extends cdk.Mixin {
883
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnGatewayRouteTableAssociationPropsMixin", version: "2.242.0-alpha.0" };
891
884
  static CFN_PROPERTY_KEYS = ["gatewayId", "routeTableId"];
892
885
  props;
893
886
  strategy;
@@ -909,8 +902,11 @@ class CfnGatewayRouteTableAssociationPropsMixin extends core.Mixin {
909
902
  }
910
903
  throw error;
911
904
  }
912
- this.props = props;
913
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
905
+ this.props = {
906
+ ...props,
907
+ ...flattenCfnGatewayRouteTableAssociationMixinProps(props)
908
+ };
909
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
914
910
  }
915
911
  /**
916
912
  * Check if this mixin supports the given construct
@@ -923,16 +919,20 @@ class CfnGatewayRouteTableAssociationPropsMixin extends core.Mixin {
923
919
  */
924
920
  applyTo(construct) {
925
921
  if (this.supports(construct)) {
926
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
927
- helpers.deepMerge(construct, this.props, CfnGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
928
- }
929
- else {
930
- helpers.shallowAssign(construct, this.props, CfnGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
931
- }
922
+ this.strategy.apply(construct, this.props, CfnGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
932
923
  }
933
924
  }
934
925
  }
935
926
  exports.CfnGatewayRouteTableAssociationPropsMixin = CfnGatewayRouteTableAssociationPropsMixin;
927
+ // @ts-ignore TS6133
928
+ function flattenCfnGatewayRouteTableAssociationMixinProps(props) {
929
+ const ret = {};
930
+ if ((props.gatewayId !== undefined))
931
+ ret.gatewayId = cdk.getRefProperty(props.gatewayId?.internetGatewayRef, 'internetGatewayId') ?? cdk.getRefProperty(props.gatewayId?.vpnGatewayRef, 'vpnGatewayId') ?? cdk.ensureStringOrUndefined(props.gatewayId, "gatewayId", "ec2.IInternetGatewayRef | ec2.IVPNGatewayRef | string");
932
+ if ((props.routeTableId !== undefined))
933
+ ret.routeTableId = cdk.getRefProperty(props.routeTableId?.routeTableRef, 'routeTableId') ?? cdk.ensureStringOrUndefined(props.routeTableId, "routeTableId", "ec2.IRouteTableRef | string");
934
+ return ret;
935
+ }
936
936
  /**
937
937
  * Allocates a fully dedicated physical server for launching EC2 instances.
938
938
  *
@@ -943,8 +943,8 @@ exports.CfnGatewayRouteTableAssociationPropsMixin = CfnGatewayRouteTableAssociat
943
943
  * @stability external
944
944
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html
945
945
  */
946
- class CfnHostPropsMixin extends core.Mixin {
947
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnHostPropsMixin", version: "2.240.0-alpha.0" };
946
+ class CfnHostPropsMixin extends cdk.Mixin {
947
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnHostPropsMixin", version: "2.242.0-alpha.0" };
948
948
  static CFN_PROPERTY_KEYS = ["assetId", "autoPlacement", "availabilityZone", "hostMaintenance", "hostRecovery", "instanceFamily", "instanceType", "outpostArn", "tags"];
949
949
  props;
950
950
  strategy;
@@ -967,7 +967,7 @@ class CfnHostPropsMixin extends core.Mixin {
967
967
  throw error;
968
968
  }
969
969
  this.props = props;
970
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
970
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
971
971
  }
972
972
  /**
973
973
  * Check if this mixin supports the given construct
@@ -980,12 +980,7 @@ class CfnHostPropsMixin extends core.Mixin {
980
980
  */
981
981
  applyTo(construct) {
982
982
  if (this.supports(construct)) {
983
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
984
- helpers.deepMerge(construct, this.props, CfnHostPropsMixin.CFN_PROPERTY_KEYS);
985
- }
986
- else {
987
- helpers.shallowAssign(construct, this.props, CfnHostPropsMixin.CFN_PROPERTY_KEYS);
988
- }
983
+ this.strategy.apply(construct, this.props, CfnHostPropsMixin.CFN_PROPERTY_KEYS);
989
984
  }
990
985
  }
991
986
  }
@@ -1002,8 +997,8 @@ exports.CfnHostPropsMixin = CfnHostPropsMixin;
1002
997
  * @stability external
1003
998
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html
1004
999
  */
1005
- class CfnIPAMPropsMixin extends core.Mixin {
1006
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPropsMixin", version: "2.240.0-alpha.0" };
1000
+ class CfnIPAMPropsMixin extends cdk.Mixin {
1001
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPropsMixin", version: "2.242.0-alpha.0" };
1007
1002
  static CFN_PROPERTY_KEYS = ["defaultResourceDiscoveryOrganizationalUnitExclusions", "description", "enablePrivateGua", "meteredAccount", "operatingRegions", "tags", "tier"];
1008
1003
  props;
1009
1004
  strategy;
@@ -1026,7 +1021,7 @@ class CfnIPAMPropsMixin extends core.Mixin {
1026
1021
  throw error;
1027
1022
  }
1028
1023
  this.props = props;
1029
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1024
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1030
1025
  }
1031
1026
  /**
1032
1027
  * Check if this mixin supports the given construct
@@ -1039,12 +1034,7 @@ class CfnIPAMPropsMixin extends core.Mixin {
1039
1034
  */
1040
1035
  applyTo(construct) {
1041
1036
  if (this.supports(construct)) {
1042
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1043
- helpers.deepMerge(construct, this.props, CfnIPAMPropsMixin.CFN_PROPERTY_KEYS);
1044
- }
1045
- else {
1046
- helpers.shallowAssign(construct, this.props, CfnIPAMPropsMixin.CFN_PROPERTY_KEYS);
1047
- }
1037
+ this.strategy.apply(construct, this.props, CfnIPAMPropsMixin.CFN_PROPERTY_KEYS);
1048
1038
  }
1049
1039
  }
1050
1040
  }
@@ -1057,8 +1047,8 @@ exports.CfnIPAMPropsMixin = CfnIPAMPropsMixin;
1057
1047
  * @stability external
1058
1048
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamallocation.html
1059
1049
  */
1060
- class CfnIPAMAllocationPropsMixin extends core.Mixin {
1061
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMAllocationPropsMixin", version: "2.240.0-alpha.0" };
1050
+ class CfnIPAMAllocationPropsMixin extends cdk.Mixin {
1051
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMAllocationPropsMixin", version: "2.242.0-alpha.0" };
1062
1052
  static CFN_PROPERTY_KEYS = ["cidr", "description", "ipamPoolId", "netmaskLength"];
1063
1053
  props;
1064
1054
  strategy;
@@ -1081,7 +1071,7 @@ class CfnIPAMAllocationPropsMixin extends core.Mixin {
1081
1071
  throw error;
1082
1072
  }
1083
1073
  this.props = props;
1084
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1074
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1085
1075
  }
1086
1076
  /**
1087
1077
  * Check if this mixin supports the given construct
@@ -1094,12 +1084,7 @@ class CfnIPAMAllocationPropsMixin extends core.Mixin {
1094
1084
  */
1095
1085
  applyTo(construct) {
1096
1086
  if (this.supports(construct)) {
1097
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1098
- helpers.deepMerge(construct, this.props, CfnIPAMAllocationPropsMixin.CFN_PROPERTY_KEYS);
1099
- }
1100
- else {
1101
- helpers.shallowAssign(construct, this.props, CfnIPAMAllocationPropsMixin.CFN_PROPERTY_KEYS);
1102
- }
1087
+ this.strategy.apply(construct, this.props, CfnIPAMAllocationPropsMixin.CFN_PROPERTY_KEYS);
1103
1088
  }
1104
1089
  }
1105
1090
  }
@@ -1114,8 +1099,8 @@ exports.CfnIPAMAllocationPropsMixin = CfnIPAMAllocationPropsMixin;
1114
1099
  * @stability external
1115
1100
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html
1116
1101
  */
1117
- class CfnIPAMPoolPropsMixin extends core.Mixin {
1118
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPoolPropsMixin", version: "2.240.0-alpha.0" };
1102
+ class CfnIPAMPoolPropsMixin extends cdk.Mixin {
1103
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPoolPropsMixin", version: "2.242.0-alpha.0" };
1119
1104
  static CFN_PROPERTY_KEYS = ["addressFamily", "allocationDefaultNetmaskLength", "allocationMaxNetmaskLength", "allocationMinNetmaskLength", "allocationResourceTags", "autoImport", "awsService", "description", "ipamScopeId", "locale", "provisionedCidrs", "publicIpSource", "publiclyAdvertisable", "sourceIpamPoolId", "sourceResource", "tags"];
1120
1105
  props;
1121
1106
  strategy;
@@ -1138,7 +1123,7 @@ class CfnIPAMPoolPropsMixin extends core.Mixin {
1138
1123
  throw error;
1139
1124
  }
1140
1125
  this.props = props;
1141
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1126
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1142
1127
  }
1143
1128
  /**
1144
1129
  * Check if this mixin supports the given construct
@@ -1151,12 +1136,7 @@ class CfnIPAMPoolPropsMixin extends core.Mixin {
1151
1136
  */
1152
1137
  applyTo(construct) {
1153
1138
  if (this.supports(construct)) {
1154
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1155
- helpers.deepMerge(construct, this.props, CfnIPAMPoolPropsMixin.CFN_PROPERTY_KEYS);
1156
- }
1157
- else {
1158
- helpers.shallowAssign(construct, this.props, CfnIPAMPoolPropsMixin.CFN_PROPERTY_KEYS);
1159
- }
1139
+ this.strategy.apply(construct, this.props, CfnIPAMPoolPropsMixin.CFN_PROPERTY_KEYS);
1160
1140
  }
1161
1141
  }
1162
1142
  }
@@ -1169,8 +1149,8 @@ exports.CfnIPAMPoolPropsMixin = CfnIPAMPoolPropsMixin;
1169
1149
  * @stability external
1170
1150
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html
1171
1151
  */
1172
- class CfnIPAMPoolCidrPropsMixin extends core.Mixin {
1173
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPoolCidrPropsMixin", version: "2.240.0-alpha.0" };
1152
+ class CfnIPAMPoolCidrPropsMixin extends cdk.Mixin {
1153
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPoolCidrPropsMixin", version: "2.242.0-alpha.0" };
1174
1154
  static CFN_PROPERTY_KEYS = ["cidr", "ipamPoolId", "netmaskLength"];
1175
1155
  props;
1176
1156
  strategy;
@@ -1193,7 +1173,7 @@ class CfnIPAMPoolCidrPropsMixin extends core.Mixin {
1193
1173
  throw error;
1194
1174
  }
1195
1175
  this.props = props;
1196
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1176
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1197
1177
  }
1198
1178
  /**
1199
1179
  * Check if this mixin supports the given construct
@@ -1206,12 +1186,7 @@ class CfnIPAMPoolCidrPropsMixin extends core.Mixin {
1206
1186
  */
1207
1187
  applyTo(construct) {
1208
1188
  if (this.supports(construct)) {
1209
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1210
- helpers.deepMerge(construct, this.props, CfnIPAMPoolCidrPropsMixin.CFN_PROPERTY_KEYS);
1211
- }
1212
- else {
1213
- helpers.shallowAssign(construct, this.props, CfnIPAMPoolCidrPropsMixin.CFN_PROPERTY_KEYS);
1214
- }
1189
+ this.strategy.apply(construct, this.props, CfnIPAMPoolCidrPropsMixin.CFN_PROPERTY_KEYS);
1215
1190
  }
1216
1191
  }
1217
1192
  }
@@ -1224,8 +1199,8 @@ exports.CfnIPAMPoolCidrPropsMixin = CfnIPAMPoolCidrPropsMixin;
1224
1199
  * @stability external
1225
1200
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscovery.html
1226
1201
  */
1227
- class CfnIPAMResourceDiscoveryPropsMixin extends core.Mixin {
1228
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMResourceDiscoveryPropsMixin", version: "2.240.0-alpha.0" };
1202
+ class CfnIPAMResourceDiscoveryPropsMixin extends cdk.Mixin {
1203
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMResourceDiscoveryPropsMixin", version: "2.242.0-alpha.0" };
1229
1204
  static CFN_PROPERTY_KEYS = ["description", "operatingRegions", "organizationalUnitExclusions", "tags"];
1230
1205
  props;
1231
1206
  strategy;
@@ -1248,7 +1223,7 @@ class CfnIPAMResourceDiscoveryPropsMixin extends core.Mixin {
1248
1223
  throw error;
1249
1224
  }
1250
1225
  this.props = props;
1251
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1226
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1252
1227
  }
1253
1228
  /**
1254
1229
  * Check if this mixin supports the given construct
@@ -1261,12 +1236,7 @@ class CfnIPAMResourceDiscoveryPropsMixin extends core.Mixin {
1261
1236
  */
1262
1237
  applyTo(construct) {
1263
1238
  if (this.supports(construct)) {
1264
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1265
- helpers.deepMerge(construct, this.props, CfnIPAMResourceDiscoveryPropsMixin.CFN_PROPERTY_KEYS);
1266
- }
1267
- else {
1268
- helpers.shallowAssign(construct, this.props, CfnIPAMResourceDiscoveryPropsMixin.CFN_PROPERTY_KEYS);
1269
- }
1239
+ this.strategy.apply(construct, this.props, CfnIPAMResourceDiscoveryPropsMixin.CFN_PROPERTY_KEYS);
1270
1240
  }
1271
1241
  }
1272
1242
  }
@@ -1281,8 +1251,8 @@ exports.CfnIPAMResourceDiscoveryPropsMixin = CfnIPAMResourceDiscoveryPropsMixin;
1281
1251
  * @stability external
1282
1252
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamresourcediscoveryassociation.html
1283
1253
  */
1284
- class CfnIPAMResourceDiscoveryAssociationPropsMixin extends core.Mixin {
1285
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMResourceDiscoveryAssociationPropsMixin", version: "2.240.0-alpha.0" };
1254
+ class CfnIPAMResourceDiscoveryAssociationPropsMixin extends cdk.Mixin {
1255
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMResourceDiscoveryAssociationPropsMixin", version: "2.242.0-alpha.0" };
1286
1256
  static CFN_PROPERTY_KEYS = ["ipamId", "ipamResourceDiscoveryId", "tags"];
1287
1257
  props;
1288
1258
  strategy;
@@ -1305,7 +1275,7 @@ class CfnIPAMResourceDiscoveryAssociationPropsMixin extends core.Mixin {
1305
1275
  throw error;
1306
1276
  }
1307
1277
  this.props = props;
1308
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1278
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1309
1279
  }
1310
1280
  /**
1311
1281
  * Check if this mixin supports the given construct
@@ -1318,12 +1288,7 @@ class CfnIPAMResourceDiscoveryAssociationPropsMixin extends core.Mixin {
1318
1288
  */
1319
1289
  applyTo(construct) {
1320
1290
  if (this.supports(construct)) {
1321
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1322
- helpers.deepMerge(construct, this.props, CfnIPAMResourceDiscoveryAssociationPropsMixin.CFN_PROPERTY_KEYS);
1323
- }
1324
- else {
1325
- helpers.shallowAssign(construct, this.props, CfnIPAMResourceDiscoveryAssociationPropsMixin.CFN_PROPERTY_KEYS);
1326
- }
1291
+ this.strategy.apply(construct, this.props, CfnIPAMResourceDiscoveryAssociationPropsMixin.CFN_PROPERTY_KEYS);
1327
1292
  }
1328
1293
  }
1329
1294
  }
@@ -1340,8 +1305,8 @@ exports.CfnIPAMResourceDiscoveryAssociationPropsMixin = CfnIPAMResourceDiscovery
1340
1305
  * @stability external
1341
1306
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html
1342
1307
  */
1343
- class CfnIPAMScopePropsMixin extends core.Mixin {
1344
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMScopePropsMixin", version: "2.240.0-alpha.0" };
1308
+ class CfnIPAMScopePropsMixin extends cdk.Mixin {
1309
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMScopePropsMixin", version: "2.242.0-alpha.0" };
1345
1310
  static CFN_PROPERTY_KEYS = ["description", "externalAuthorityConfiguration", "ipamId", "tags"];
1346
1311
  props;
1347
1312
  strategy;
@@ -1364,7 +1329,7 @@ class CfnIPAMScopePropsMixin extends core.Mixin {
1364
1329
  throw error;
1365
1330
  }
1366
1331
  this.props = props;
1367
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1332
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1368
1333
  }
1369
1334
  /**
1370
1335
  * Check if this mixin supports the given construct
@@ -1377,12 +1342,7 @@ class CfnIPAMScopePropsMixin extends core.Mixin {
1377
1342
  */
1378
1343
  applyTo(construct) {
1379
1344
  if (this.supports(construct)) {
1380
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1381
- helpers.deepMerge(construct, this.props, CfnIPAMScopePropsMixin.CFN_PROPERTY_KEYS);
1382
- }
1383
- else {
1384
- helpers.shallowAssign(construct, this.props, CfnIPAMScopePropsMixin.CFN_PROPERTY_KEYS);
1385
- }
1345
+ this.strategy.apply(construct, this.props, CfnIPAMScopePropsMixin.CFN_PROPERTY_KEYS);
1386
1346
  }
1387
1347
  }
1388
1348
  }
@@ -1397,8 +1357,8 @@ exports.CfnIPAMScopePropsMixin = CfnIPAMScopePropsMixin;
1397
1357
  * @stability external
1398
1358
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html
1399
1359
  */
1400
- class CfnInstancePropsMixin extends core.Mixin {
1401
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInstancePropsMixin", version: "2.240.0-alpha.0" };
1360
+ class CfnInstancePropsMixin extends cdk.Mixin {
1361
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInstancePropsMixin", version: "2.242.0-alpha.0" };
1402
1362
  static CFN_PROPERTY_KEYS = ["additionalInfo", "affinity", "availabilityZone", "blockDeviceMappings", "cpuOptions", "creditSpecification", "disableApiTermination", "ebsOptimized", "elasticGpuSpecifications", "elasticInferenceAccelerators", "enclaveOptions", "hibernationOptions", "hostId", "hostResourceGroupArn", "iamInstanceProfile", "imageId", "instanceInitiatedShutdownBehavior", "instanceType", "ipv6AddressCount", "ipv6Addresses", "kernelId", "keyName", "launchTemplate", "licenseSpecifications", "metadataOptions", "monitoring", "networkInterfaces", "placementGroupName", "privateDnsNameOptions", "privateIpAddress", "propagateTagsToVolumeOnCreation", "ramdiskId", "securityGroupIds", "securityGroups", "sourceDestCheck", "ssmAssociations", "subnetId", "tags", "tenancy", "userData", "volumes"];
1403
1363
  props;
1404
1364
  strategy;
@@ -1420,8 +1380,11 @@ class CfnInstancePropsMixin extends core.Mixin {
1420
1380
  }
1421
1381
  throw error;
1422
1382
  }
1423
- this.props = props;
1424
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1383
+ this.props = {
1384
+ ...props,
1385
+ ...flattenCfnInstanceMixinProps(props)
1386
+ };
1387
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1425
1388
  }
1426
1389
  /**
1427
1390
  * Check if this mixin supports the given construct
@@ -1434,16 +1397,110 @@ class CfnInstancePropsMixin extends core.Mixin {
1434
1397
  */
1435
1398
  applyTo(construct) {
1436
1399
  if (this.supports(construct)) {
1437
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1438
- helpers.deepMerge(construct, this.props, CfnInstancePropsMixin.CFN_PROPERTY_KEYS);
1439
- }
1440
- else {
1441
- helpers.shallowAssign(construct, this.props, CfnInstancePropsMixin.CFN_PROPERTY_KEYS);
1442
- }
1400
+ this.strategy.apply(construct, this.props, CfnInstancePropsMixin.CFN_PROPERTY_KEYS);
1443
1401
  }
1444
1402
  }
1445
1403
  }
1446
1404
  exports.CfnInstancePropsMixin = CfnInstancePropsMixin;
1405
+ // @ts-ignore TS6133
1406
+ function flattenCfnInstancePropsMixinEbsProperty(props) {
1407
+ if (cdk.isResolvableObject(props))
1408
+ return props;
1409
+ return {
1410
+ deleteOnTermination: (!props.deleteOnTermination ? undefined : props.deleteOnTermination),
1411
+ encrypted: (!props.encrypted ? undefined : props.encrypted),
1412
+ iops: (!props.iops ? undefined : props.iops),
1413
+ kmsKeyId: (!props.kmsKeyId ? undefined : cdk.getRefProperty(props.kmsKeyId?.keyRef, 'keyArn') ?? cdk.getRefProperty(props.kmsKeyId?.keyRef, 'keyId') ?? cdk.ensureStringOrUndefined(props.kmsKeyId, "kmsKeyId", "kms.IKeyRef | string")),
1414
+ snapshotId: (!props.snapshotId ? undefined : props.snapshotId),
1415
+ volumeSize: (!props.volumeSize ? undefined : props.volumeSize),
1416
+ volumeType: (!props.volumeType ? undefined : props.volumeType)
1417
+ };
1418
+ }
1419
+ // @ts-ignore TS6133
1420
+ function flattenCfnInstancePropsMixinBlockDeviceMappingProperty(props) {
1421
+ if (cdk.isResolvableObject(props))
1422
+ return props;
1423
+ return {
1424
+ deviceName: (!props.deviceName ? undefined : props.deviceName),
1425
+ ebs: (!props.ebs ? undefined : (!props.ebs ? undefined : flattenCfnInstancePropsMixinEbsProperty(props.ebs))),
1426
+ noDevice: (!props.noDevice ? undefined : props.noDevice),
1427
+ virtualName: (!props.virtualName ? undefined : props.virtualName)
1428
+ };
1429
+ }
1430
+ // @ts-ignore TS6133
1431
+ function flattenCfnInstancePropsMixinLaunchTemplateSpecificationProperty(props) {
1432
+ if (cdk.isResolvableObject(props))
1433
+ return props;
1434
+ return {
1435
+ launchTemplateId: (!props.launchTemplateId ? undefined : cdk.getRefProperty(props.launchTemplateId?.launchTemplateRef, 'launchTemplateId') ?? cdk.ensureStringOrUndefined(props.launchTemplateId, "launchTemplateId", "ec2.ILaunchTemplateRef | string")),
1436
+ launchTemplateName: (!props.launchTemplateName ? undefined : props.launchTemplateName),
1437
+ version: (!props.version ? undefined : props.version)
1438
+ };
1439
+ }
1440
+ // @ts-ignore TS6133
1441
+ function flattenCfnInstancePropsMixinNetworkInterfaceProperty(props) {
1442
+ if (cdk.isResolvableObject(props))
1443
+ return props;
1444
+ return {
1445
+ associateCarrierIpAddress: (!props.associateCarrierIpAddress ? undefined : props.associateCarrierIpAddress),
1446
+ associatePublicIpAddress: (!props.associatePublicIpAddress ? undefined : props.associatePublicIpAddress),
1447
+ deleteOnTermination: (!props.deleteOnTermination ? undefined : props.deleteOnTermination),
1448
+ description: (!props.description ? undefined : props.description),
1449
+ deviceIndex: (!props.deviceIndex ? undefined : props.deviceIndex),
1450
+ enaSrdSpecification: (!props.enaSrdSpecification ? undefined : props.enaSrdSpecification),
1451
+ groupSet: (!props.groupSet ? undefined : cdk.mapArrayInPlace(props.groupSet, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "groupSet", "ec2.ISecurityGroupRef | string"))),
1452
+ ipv6AddressCount: (!props.ipv6AddressCount ? undefined : props.ipv6AddressCount),
1453
+ ipv6Addresses: (!props.ipv6Addresses ? undefined : props.ipv6Addresses),
1454
+ networkInterfaceId: (!props.networkInterfaceId ? undefined : cdk.getRefProperty(props.networkInterfaceId?.networkInterfaceRef, 'networkInterfaceId') ?? cdk.ensureStringOrUndefined(props.networkInterfaceId, "networkInterfaceId", "ec2.INetworkInterfaceRef | string")),
1455
+ privateIpAddress: (!props.privateIpAddress ? undefined : props.privateIpAddress),
1456
+ privateIpAddresses: (!props.privateIpAddresses ? undefined : props.privateIpAddresses),
1457
+ secondaryPrivateIpAddressCount: (!props.secondaryPrivateIpAddressCount ? undefined : props.secondaryPrivateIpAddressCount),
1458
+ subnetId: (!props.subnetId ? undefined : cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string"))
1459
+ };
1460
+ }
1461
+ // @ts-ignore TS6133
1462
+ function flattenCfnInstancePropsMixinSsmAssociationProperty(props) {
1463
+ if (cdk.isResolvableObject(props))
1464
+ return props;
1465
+ return {
1466
+ associationParameters: (!props.associationParameters ? undefined : props.associationParameters),
1467
+ documentName: (!props.documentName ? undefined : cdk.getRefProperty(props.documentName?.documentRef, 'documentName') ?? cdk.ensureStringOrUndefined(props.documentName, "documentName", "ssm.IDocumentRef | string"))
1468
+ };
1469
+ }
1470
+ // @ts-ignore TS6133
1471
+ function flattenCfnInstancePropsMixinVolumeProperty(props) {
1472
+ if (cdk.isResolvableObject(props))
1473
+ return props;
1474
+ return {
1475
+ device: (!props.device ? undefined : props.device),
1476
+ volumeId: (!props.volumeId ? undefined : cdk.getRefProperty(props.volumeId?.volumeRef, 'volumeId') ?? cdk.ensureStringOrUndefined(props.volumeId, "volumeId", "ec2.IVolumeRef | string"))
1477
+ };
1478
+ }
1479
+ // @ts-ignore TS6133
1480
+ function flattenCfnInstanceMixinProps(props) {
1481
+ const ret = {};
1482
+ if ((props.blockDeviceMappings !== undefined))
1483
+ ret.blockDeviceMappings = (cdk.isResolvableObject(props.blockDeviceMappings) ? props.blockDeviceMappings : cdk.mapArrayInPlace(props.blockDeviceMappings, (item) => flattenCfnInstancePropsMixinBlockDeviceMappingProperty(item)));
1484
+ if ((props.hostId !== undefined))
1485
+ ret.hostId = cdk.getRefProperty(props.hostId?.hostRef, 'hostId') ?? cdk.ensureStringOrUndefined(props.hostId, "hostId", "ec2.IHostRef | string");
1486
+ if ((props.iamInstanceProfile !== undefined))
1487
+ ret.iamInstanceProfile = cdk.getRefProperty(props.iamInstanceProfile?.instanceProfileRef, 'instanceProfileName') ?? cdk.ensureStringOrUndefined(props.iamInstanceProfile, "iamInstanceProfile", "iam.IInstanceProfileRef | string");
1488
+ if ((props.launchTemplate !== undefined))
1489
+ ret.launchTemplate = flattenCfnInstancePropsMixinLaunchTemplateSpecificationProperty(props.launchTemplate);
1490
+ if ((props.networkInterfaces !== undefined))
1491
+ ret.networkInterfaces = (cdk.isResolvableObject(props.networkInterfaces) ? props.networkInterfaces : cdk.mapArrayInPlace(props.networkInterfaces, (item) => flattenCfnInstancePropsMixinNetworkInterfaceProperty(item)));
1492
+ if ((props.placementGroupName !== undefined))
1493
+ ret.placementGroupName = cdk.getRefProperty(props.placementGroupName?.placementGroupRef, 'groupName') ?? cdk.ensureStringOrUndefined(props.placementGroupName, "placementGroupName", "ec2.IPlacementGroupRef | string");
1494
+ if ((props.securityGroupIds !== undefined))
1495
+ ret.securityGroupIds = cdk.mapArrayInPlace(props.securityGroupIds, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "securityGroupIds", "ec2.ISecurityGroupRef | string"));
1496
+ if ((props.ssmAssociations !== undefined))
1497
+ ret.ssmAssociations = (cdk.isResolvableObject(props.ssmAssociations) ? props.ssmAssociations : cdk.mapArrayInPlace(props.ssmAssociations, (item) => flattenCfnInstancePropsMixinSsmAssociationProperty(item)));
1498
+ if ((props.subnetId !== undefined))
1499
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
1500
+ if ((props.volumes !== undefined))
1501
+ ret.volumes = (cdk.isResolvableObject(props.volumes) ? props.volumes : cdk.mapArrayInPlace(props.volumes, (item) => flattenCfnInstancePropsMixinVolumeProperty(item)));
1502
+ return ret;
1503
+ }
1447
1504
  /**
1448
1505
  * Creates an EC2 Instance Connect Endpoint.
1449
1506
  *
@@ -1456,8 +1513,8 @@ exports.CfnInstancePropsMixin = CfnInstancePropsMixin;
1456
1513
  * @stability external
1457
1514
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instanceconnectendpoint.html
1458
1515
  */
1459
- class CfnInstanceConnectEndpointPropsMixin extends core.Mixin {
1460
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInstanceConnectEndpointPropsMixin", version: "2.240.0-alpha.0" };
1516
+ class CfnInstanceConnectEndpointPropsMixin extends cdk.Mixin {
1517
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInstanceConnectEndpointPropsMixin", version: "2.242.0-alpha.0" };
1461
1518
  static CFN_PROPERTY_KEYS = ["clientToken", "preserveClientIp", "securityGroupIds", "subnetId", "tags"];
1462
1519
  props;
1463
1520
  strategy;
@@ -1480,7 +1537,7 @@ class CfnInstanceConnectEndpointPropsMixin extends core.Mixin {
1480
1537
  throw error;
1481
1538
  }
1482
1539
  this.props = props;
1483
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1540
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1484
1541
  }
1485
1542
  /**
1486
1543
  * Check if this mixin supports the given construct
@@ -1493,12 +1550,7 @@ class CfnInstanceConnectEndpointPropsMixin extends core.Mixin {
1493
1550
  */
1494
1551
  applyTo(construct) {
1495
1552
  if (this.supports(construct)) {
1496
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1497
- helpers.deepMerge(construct, this.props, CfnInstanceConnectEndpointPropsMixin.CFN_PROPERTY_KEYS);
1498
- }
1499
- else {
1500
- helpers.shallowAssign(construct, this.props, CfnInstanceConnectEndpointPropsMixin.CFN_PROPERTY_KEYS);
1501
- }
1553
+ this.strategy.apply(construct, this.props, CfnInstanceConnectEndpointPropsMixin.CFN_PROPERTY_KEYS);
1502
1554
  }
1503
1555
  }
1504
1556
  }
@@ -1513,8 +1565,8 @@ exports.CfnInstanceConnectEndpointPropsMixin = CfnInstanceConnectEndpointPropsMi
1513
1565
  * @stability external
1514
1566
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html
1515
1567
  */
1516
- class CfnInternetGatewayPropsMixin extends core.Mixin {
1517
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInternetGatewayPropsMixin", version: "2.240.0-alpha.0" };
1568
+ class CfnInternetGatewayPropsMixin extends cdk.Mixin {
1569
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnInternetGatewayPropsMixin", version: "2.242.0-alpha.0" };
1518
1570
  static CFN_PROPERTY_KEYS = ["tags"];
1519
1571
  props;
1520
1572
  strategy;
@@ -1537,7 +1589,7 @@ class CfnInternetGatewayPropsMixin extends core.Mixin {
1537
1589
  throw error;
1538
1590
  }
1539
1591
  this.props = props;
1540
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1592
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1541
1593
  }
1542
1594
  /**
1543
1595
  * Check if this mixin supports the given construct
@@ -1550,12 +1602,7 @@ class CfnInternetGatewayPropsMixin extends core.Mixin {
1550
1602
  */
1551
1603
  applyTo(construct) {
1552
1604
  if (this.supports(construct)) {
1553
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1554
- helpers.deepMerge(construct, this.props, CfnInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
1555
- }
1556
- else {
1557
- helpers.shallowAssign(construct, this.props, CfnInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
1558
- }
1605
+ this.strategy.apply(construct, this.props, CfnInternetGatewayPropsMixin.CFN_PROPERTY_KEYS);
1559
1606
  }
1560
1607
  }
1561
1608
  }
@@ -1577,8 +1624,8 @@ exports.CfnInternetGatewayPropsMixin = CfnInternetGatewayPropsMixin;
1577
1624
  * @stability external
1578
1625
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-keypair.html
1579
1626
  */
1580
- class CfnKeyPairPropsMixin extends core.Mixin {
1581
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnKeyPairPropsMixin", version: "2.240.0-alpha.0" };
1627
+ class CfnKeyPairPropsMixin extends cdk.Mixin {
1628
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnKeyPairPropsMixin", version: "2.242.0-alpha.0" };
1582
1629
  static CFN_PROPERTY_KEYS = ["keyFormat", "keyName", "keyType", "publicKeyMaterial", "tags"];
1583
1630
  props;
1584
1631
  strategy;
@@ -1601,7 +1648,7 @@ class CfnKeyPairPropsMixin extends core.Mixin {
1601
1648
  throw error;
1602
1649
  }
1603
1650
  this.props = props;
1604
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1651
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1605
1652
  }
1606
1653
  /**
1607
1654
  * Check if this mixin supports the given construct
@@ -1614,12 +1661,7 @@ class CfnKeyPairPropsMixin extends core.Mixin {
1614
1661
  */
1615
1662
  applyTo(construct) {
1616
1663
  if (this.supports(construct)) {
1617
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1618
- helpers.deepMerge(construct, this.props, CfnKeyPairPropsMixin.CFN_PROPERTY_KEYS);
1619
- }
1620
- else {
1621
- helpers.shallowAssign(construct, this.props, CfnKeyPairPropsMixin.CFN_PROPERTY_KEYS);
1622
- }
1664
+ this.strategy.apply(construct, this.props, CfnKeyPairPropsMixin.CFN_PROPERTY_KEYS);
1623
1665
  }
1624
1666
  }
1625
1667
  }
@@ -1641,8 +1683,8 @@ exports.CfnKeyPairPropsMixin = CfnKeyPairPropsMixin;
1641
1683
  * @stability external
1642
1684
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html
1643
1685
  */
1644
- class CfnLaunchTemplatePropsMixin extends core.Mixin {
1645
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLaunchTemplatePropsMixin", version: "2.240.0-alpha.0" };
1686
+ class CfnLaunchTemplatePropsMixin extends cdk.Mixin {
1687
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLaunchTemplatePropsMixin", version: "2.242.0-alpha.0" };
1646
1688
  static CFN_PROPERTY_KEYS = ["launchTemplateData", "launchTemplateName", "tagSpecifications", "versionDescription"];
1647
1689
  props;
1648
1690
  strategy;
@@ -1664,8 +1706,11 @@ class CfnLaunchTemplatePropsMixin extends core.Mixin {
1664
1706
  }
1665
1707
  throw error;
1666
1708
  }
1667
- this.props = props;
1668
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1709
+ this.props = {
1710
+ ...props,
1711
+ ...flattenCfnLaunchTemplateMixinProps(props)
1712
+ };
1713
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1669
1714
  }
1670
1715
  /**
1671
1716
  * Check if this mixin supports the given construct
@@ -1678,16 +1723,140 @@ class CfnLaunchTemplatePropsMixin extends core.Mixin {
1678
1723
  */
1679
1724
  applyTo(construct) {
1680
1725
  if (this.supports(construct)) {
1681
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1682
- helpers.deepMerge(construct, this.props, CfnLaunchTemplatePropsMixin.CFN_PROPERTY_KEYS);
1683
- }
1684
- else {
1685
- helpers.shallowAssign(construct, this.props, CfnLaunchTemplatePropsMixin.CFN_PROPERTY_KEYS);
1686
- }
1726
+ this.strategy.apply(construct, this.props, CfnLaunchTemplatePropsMixin.CFN_PROPERTY_KEYS);
1687
1727
  }
1688
1728
  }
1689
1729
  }
1690
1730
  exports.CfnLaunchTemplatePropsMixin = CfnLaunchTemplatePropsMixin;
1731
+ // @ts-ignore TS6133
1732
+ function flattenCfnLaunchTemplatePropsMixinEbsProperty(props) {
1733
+ if (cdk.isResolvableObject(props))
1734
+ return props;
1735
+ return {
1736
+ deleteOnTermination: (!props.deleteOnTermination ? undefined : props.deleteOnTermination),
1737
+ ebsCardIndex: (!props.ebsCardIndex ? undefined : props.ebsCardIndex),
1738
+ encrypted: (!props.encrypted ? undefined : props.encrypted),
1739
+ iops: (!props.iops ? undefined : props.iops),
1740
+ kmsKeyId: (!props.kmsKeyId ? undefined : cdk.getRefProperty(props.kmsKeyId?.keyRef, 'keyArn') ?? cdk.getRefProperty(props.kmsKeyId?.keyRef, 'keyId') ?? cdk.ensureStringOrUndefined(props.kmsKeyId, "kmsKeyId", "kms.IKeyRef | string")),
1741
+ snapshotId: (!props.snapshotId ? undefined : props.snapshotId),
1742
+ throughput: (!props.throughput ? undefined : props.throughput),
1743
+ volumeInitializationRate: (!props.volumeInitializationRate ? undefined : props.volumeInitializationRate),
1744
+ volumeSize: (!props.volumeSize ? undefined : props.volumeSize),
1745
+ volumeType: (!props.volumeType ? undefined : props.volumeType)
1746
+ };
1747
+ }
1748
+ // @ts-ignore TS6133
1749
+ function flattenCfnLaunchTemplatePropsMixinBlockDeviceMappingProperty(props) {
1750
+ if (cdk.isResolvableObject(props))
1751
+ return props;
1752
+ return {
1753
+ deviceName: (!props.deviceName ? undefined : props.deviceName),
1754
+ ebs: (!props.ebs ? undefined : (!props.ebs ? undefined : flattenCfnLaunchTemplatePropsMixinEbsProperty(props.ebs))),
1755
+ noDevice: (!props.noDevice ? undefined : props.noDevice),
1756
+ virtualName: (!props.virtualName ? undefined : props.virtualName)
1757
+ };
1758
+ }
1759
+ // @ts-ignore TS6133
1760
+ function flattenCfnLaunchTemplatePropsMixinIamInstanceProfileProperty(props) {
1761
+ if (cdk.isResolvableObject(props))
1762
+ return props;
1763
+ return {
1764
+ arn: (!props.arn ? undefined : props.arn),
1765
+ name: (!props.name ? undefined : cdk.getRefProperty(props.name?.instanceProfileRef, 'instanceProfileName') ?? cdk.ensureStringOrUndefined(props.name, "name", "iam.IInstanceProfileRef | string"))
1766
+ };
1767
+ }
1768
+ // @ts-ignore TS6133
1769
+ function flattenCfnLaunchTemplatePropsMixinPlacementProperty(props) {
1770
+ if (cdk.isResolvableObject(props))
1771
+ return props;
1772
+ return {
1773
+ affinity: (!props.affinity ? undefined : props.affinity),
1774
+ availabilityZone: (!props.availabilityZone ? undefined : props.availabilityZone),
1775
+ groupId: (!props.groupId ? undefined : props.groupId),
1776
+ groupName: (!props.groupName ? undefined : cdk.getRefProperty(props.groupName?.placementGroupRef, 'groupName') ?? cdk.ensureStringOrUndefined(props.groupName, "groupName", "ec2.IPlacementGroupRef | string")),
1777
+ hostId: (!props.hostId ? undefined : props.hostId),
1778
+ hostResourceGroupArn: (!props.hostResourceGroupArn ? undefined : props.hostResourceGroupArn),
1779
+ partitionNumber: (!props.partitionNumber ? undefined : props.partitionNumber),
1780
+ spreadDomain: (!props.spreadDomain ? undefined : props.spreadDomain),
1781
+ tenancy: (!props.tenancy ? undefined : props.tenancy)
1782
+ };
1783
+ }
1784
+ // @ts-ignore TS6133
1785
+ function flattenCfnLaunchTemplatePropsMixinNetworkInterfaceProperty(props) {
1786
+ if (cdk.isResolvableObject(props))
1787
+ return props;
1788
+ return {
1789
+ associateCarrierIpAddress: (!props.associateCarrierIpAddress ? undefined : props.associateCarrierIpAddress),
1790
+ associatePublicIpAddress: (!props.associatePublicIpAddress ? undefined : props.associatePublicIpAddress),
1791
+ connectionTrackingSpecification: (!props.connectionTrackingSpecification ? undefined : props.connectionTrackingSpecification),
1792
+ deleteOnTermination: (!props.deleteOnTermination ? undefined : props.deleteOnTermination),
1793
+ description: (!props.description ? undefined : props.description),
1794
+ deviceIndex: (!props.deviceIndex ? undefined : props.deviceIndex),
1795
+ enaQueueCount: (!props.enaQueueCount ? undefined : props.enaQueueCount),
1796
+ enaSrdSpecification: (!props.enaSrdSpecification ? undefined : props.enaSrdSpecification),
1797
+ groups: (!props.groups ? undefined : cdk.mapArrayInPlace(props.groups, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "groups", "ec2.ISecurityGroupRef | string"))),
1798
+ interfaceType: (!props.interfaceType ? undefined : props.interfaceType),
1799
+ ipv4PrefixCount: (!props.ipv4PrefixCount ? undefined : props.ipv4PrefixCount),
1800
+ ipv4Prefixes: (!props.ipv4Prefixes ? undefined : props.ipv4Prefixes),
1801
+ ipv6AddressCount: (!props.ipv6AddressCount ? undefined : props.ipv6AddressCount),
1802
+ ipv6Addresses: (!props.ipv6Addresses ? undefined : props.ipv6Addresses),
1803
+ ipv6PrefixCount: (!props.ipv6PrefixCount ? undefined : props.ipv6PrefixCount),
1804
+ ipv6Prefixes: (!props.ipv6Prefixes ? undefined : props.ipv6Prefixes),
1805
+ networkCardIndex: (!props.networkCardIndex ? undefined : props.networkCardIndex),
1806
+ networkInterfaceId: (!props.networkInterfaceId ? undefined : cdk.getRefProperty(props.networkInterfaceId?.networkInterfaceRef, 'networkInterfaceId') ?? cdk.ensureStringOrUndefined(props.networkInterfaceId, "networkInterfaceId", "ec2.INetworkInterfaceRef | string")),
1807
+ primaryIpv6: (!props.primaryIpv6 ? undefined : props.primaryIpv6),
1808
+ privateIpAddress: (!props.privateIpAddress ? undefined : props.privateIpAddress),
1809
+ privateIpAddresses: (!props.privateIpAddresses ? undefined : props.privateIpAddresses),
1810
+ secondaryPrivateIpAddressCount: (!props.secondaryPrivateIpAddressCount ? undefined : props.secondaryPrivateIpAddressCount),
1811
+ subnetId: (!props.subnetId ? undefined : cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string"))
1812
+ };
1813
+ }
1814
+ // @ts-ignore TS6133
1815
+ function flattenCfnLaunchTemplatePropsMixinLaunchTemplateDataProperty(props) {
1816
+ if (cdk.isResolvableObject(props))
1817
+ return props;
1818
+ return {
1819
+ blockDeviceMappings: (!props.blockDeviceMappings ? undefined : (cdk.isResolvableObject(props.blockDeviceMappings) ? props.blockDeviceMappings : (!props.blockDeviceMappings ? undefined : cdk.mapArrayInPlace(props.blockDeviceMappings, (item) => flattenCfnLaunchTemplatePropsMixinBlockDeviceMappingProperty(item))))),
1820
+ capacityReservationSpecification: (!props.capacityReservationSpecification ? undefined : props.capacityReservationSpecification),
1821
+ cpuOptions: (!props.cpuOptions ? undefined : props.cpuOptions),
1822
+ creditSpecification: (!props.creditSpecification ? undefined : props.creditSpecification),
1823
+ disableApiStop: (!props.disableApiStop ? undefined : props.disableApiStop),
1824
+ disableApiTermination: (!props.disableApiTermination ? undefined : props.disableApiTermination),
1825
+ ebsOptimized: (!props.ebsOptimized ? undefined : props.ebsOptimized),
1826
+ elasticGpuSpecifications: (!props.elasticGpuSpecifications ? undefined : props.elasticGpuSpecifications),
1827
+ elasticInferenceAccelerators: (!props.elasticInferenceAccelerators ? undefined : props.elasticInferenceAccelerators),
1828
+ enclaveOptions: (!props.enclaveOptions ? undefined : props.enclaveOptions),
1829
+ hibernationOptions: (!props.hibernationOptions ? undefined : props.hibernationOptions),
1830
+ iamInstanceProfile: (!props.iamInstanceProfile ? undefined : (!props.iamInstanceProfile ? undefined : flattenCfnLaunchTemplatePropsMixinIamInstanceProfileProperty(props.iamInstanceProfile))),
1831
+ imageId: (!props.imageId ? undefined : props.imageId),
1832
+ instanceInitiatedShutdownBehavior: (!props.instanceInitiatedShutdownBehavior ? undefined : props.instanceInitiatedShutdownBehavior),
1833
+ instanceMarketOptions: (!props.instanceMarketOptions ? undefined : props.instanceMarketOptions),
1834
+ instanceRequirements: (!props.instanceRequirements ? undefined : props.instanceRequirements),
1835
+ instanceType: (!props.instanceType ? undefined : props.instanceType),
1836
+ kernelId: (!props.kernelId ? undefined : props.kernelId),
1837
+ keyName: (!props.keyName ? undefined : props.keyName),
1838
+ licenseSpecifications: (!props.licenseSpecifications ? undefined : props.licenseSpecifications),
1839
+ maintenanceOptions: (!props.maintenanceOptions ? undefined : props.maintenanceOptions),
1840
+ metadataOptions: (!props.metadataOptions ? undefined : props.metadataOptions),
1841
+ monitoring: (!props.monitoring ? undefined : props.monitoring),
1842
+ networkInterfaces: (!props.networkInterfaces ? undefined : (cdk.isResolvableObject(props.networkInterfaces) ? props.networkInterfaces : (!props.networkInterfaces ? undefined : cdk.mapArrayInPlace(props.networkInterfaces, (item) => flattenCfnLaunchTemplatePropsMixinNetworkInterfaceProperty(item))))),
1843
+ networkPerformanceOptions: (!props.networkPerformanceOptions ? undefined : props.networkPerformanceOptions),
1844
+ placement: (!props.placement ? undefined : (!props.placement ? undefined : flattenCfnLaunchTemplatePropsMixinPlacementProperty(props.placement))),
1845
+ privateDnsNameOptions: (!props.privateDnsNameOptions ? undefined : props.privateDnsNameOptions),
1846
+ ramDiskId: (!props.ramDiskId ? undefined : props.ramDiskId),
1847
+ securityGroupIds: (!props.securityGroupIds ? undefined : cdk.mapArrayInPlace(props.securityGroupIds, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "securityGroupIds", "ec2.ISecurityGroupRef | string"))),
1848
+ securityGroups: (!props.securityGroups ? undefined : props.securityGroups),
1849
+ tagSpecifications: (!props.tagSpecifications ? undefined : props.tagSpecifications),
1850
+ userData: (!props.userData ? undefined : props.userData)
1851
+ };
1852
+ }
1853
+ // @ts-ignore TS6133
1854
+ function flattenCfnLaunchTemplateMixinProps(props) {
1855
+ const ret = {};
1856
+ if ((props.launchTemplateData !== undefined))
1857
+ ret.launchTemplateData = flattenCfnLaunchTemplatePropsMixinLaunchTemplateDataProperty(props.launchTemplateData);
1858
+ return ret;
1859
+ }
1691
1860
  /**
1692
1861
  * Creates a static route for the specified local gateway route table. You must specify one of the following targets:.
1693
1862
  *
@@ -1699,8 +1868,8 @@ exports.CfnLaunchTemplatePropsMixin = CfnLaunchTemplatePropsMixin;
1699
1868
  * @stability external
1700
1869
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroute.html
1701
1870
  */
1702
- class CfnLocalGatewayRoutePropsMixin extends core.Mixin {
1703
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRoutePropsMixin", version: "2.240.0-alpha.0" };
1871
+ class CfnLocalGatewayRoutePropsMixin extends cdk.Mixin {
1872
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRoutePropsMixin", version: "2.242.0-alpha.0" };
1704
1873
  static CFN_PROPERTY_KEYS = ["destinationCidrBlock", "localGatewayRouteTableId", "localGatewayVirtualInterfaceGroupId", "networkInterfaceId"];
1705
1874
  props;
1706
1875
  strategy;
@@ -1723,7 +1892,7 @@ class CfnLocalGatewayRoutePropsMixin extends core.Mixin {
1723
1892
  throw error;
1724
1893
  }
1725
1894
  this.props = props;
1726
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1895
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1727
1896
  }
1728
1897
  /**
1729
1898
  * Check if this mixin supports the given construct
@@ -1736,12 +1905,7 @@ class CfnLocalGatewayRoutePropsMixin extends core.Mixin {
1736
1905
  */
1737
1906
  applyTo(construct) {
1738
1907
  if (this.supports(construct)) {
1739
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1740
- helpers.deepMerge(construct, this.props, CfnLocalGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
1741
- }
1742
- else {
1743
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
1744
- }
1908
+ this.strategy.apply(construct, this.props, CfnLocalGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
1745
1909
  }
1746
1910
  }
1747
1911
  }
@@ -1754,8 +1918,8 @@ exports.CfnLocalGatewayRoutePropsMixin = CfnLocalGatewayRoutePropsMixin;
1754
1918
  * @stability external
1755
1919
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetable.html
1756
1920
  */
1757
- class CfnLocalGatewayRouteTablePropsMixin extends core.Mixin {
1758
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTablePropsMixin", version: "2.240.0-alpha.0" };
1921
+ class CfnLocalGatewayRouteTablePropsMixin extends cdk.Mixin {
1922
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTablePropsMixin", version: "2.242.0-alpha.0" };
1759
1923
  static CFN_PROPERTY_KEYS = ["localGatewayId", "mode", "tags"];
1760
1924
  props;
1761
1925
  strategy;
@@ -1778,7 +1942,7 @@ class CfnLocalGatewayRouteTablePropsMixin extends core.Mixin {
1778
1942
  throw error;
1779
1943
  }
1780
1944
  this.props = props;
1781
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1945
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1782
1946
  }
1783
1947
  /**
1784
1948
  * Check if this mixin supports the given construct
@@ -1791,12 +1955,7 @@ class CfnLocalGatewayRouteTablePropsMixin extends core.Mixin {
1791
1955
  */
1792
1956
  applyTo(construct) {
1793
1957
  if (this.supports(construct)) {
1794
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1795
- helpers.deepMerge(construct, this.props, CfnLocalGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
1796
- }
1797
- else {
1798
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
1799
- }
1958
+ this.strategy.apply(construct, this.props, CfnLocalGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
1800
1959
  }
1801
1960
  }
1802
1961
  }
@@ -1809,8 +1968,8 @@ exports.CfnLocalGatewayRouteTablePropsMixin = CfnLocalGatewayRouteTablePropsMixi
1809
1968
  * @stability external
1810
1969
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevpcassociation.html
1811
1970
  */
1812
- class CfnLocalGatewayRouteTableVPCAssociationPropsMixin extends core.Mixin {
1813
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTableVPCAssociationPropsMixin", version: "2.240.0-alpha.0" };
1971
+ class CfnLocalGatewayRouteTableVPCAssociationPropsMixin extends cdk.Mixin {
1972
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTableVPCAssociationPropsMixin", version: "2.242.0-alpha.0" };
1814
1973
  static CFN_PROPERTY_KEYS = ["localGatewayRouteTableId", "tags", "vpcId"];
1815
1974
  props;
1816
1975
  strategy;
@@ -1832,8 +1991,11 @@ class CfnLocalGatewayRouteTableVPCAssociationPropsMixin extends core.Mixin {
1832
1991
  }
1833
1992
  throw error;
1834
1993
  }
1835
- this.props = props;
1836
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
1994
+ this.props = {
1995
+ ...props,
1996
+ ...flattenCfnLocalGatewayRouteTableVPCAssociationMixinProps(props)
1997
+ };
1998
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1837
1999
  }
1838
2000
  /**
1839
2001
  * Check if this mixin supports the given construct
@@ -1846,16 +2008,18 @@ class CfnLocalGatewayRouteTableVPCAssociationPropsMixin extends core.Mixin {
1846
2008
  */
1847
2009
  applyTo(construct) {
1848
2010
  if (this.supports(construct)) {
1849
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1850
- helpers.deepMerge(construct, this.props, CfnLocalGatewayRouteTableVPCAssociationPropsMixin.CFN_PROPERTY_KEYS);
1851
- }
1852
- else {
1853
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayRouteTableVPCAssociationPropsMixin.CFN_PROPERTY_KEYS);
1854
- }
2011
+ this.strategy.apply(construct, this.props, CfnLocalGatewayRouteTableVPCAssociationPropsMixin.CFN_PROPERTY_KEYS);
1855
2012
  }
1856
2013
  }
1857
2014
  }
1858
2015
  exports.CfnLocalGatewayRouteTableVPCAssociationPropsMixin = CfnLocalGatewayRouteTableVPCAssociationPropsMixin;
2016
+ // @ts-ignore TS6133
2017
+ function flattenCfnLocalGatewayRouteTableVPCAssociationMixinProps(props) {
2018
+ const ret = {};
2019
+ if ((props.vpcId !== undefined))
2020
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
2021
+ return ret;
2022
+ }
1859
2023
  /**
1860
2024
  * Describes an association between a local gateway route table and a virtual interface group.
1861
2025
  *
@@ -1864,8 +2028,8 @@ exports.CfnLocalGatewayRouteTableVPCAssociationPropsMixin = CfnLocalGatewayRoute
1864
2028
  * @stability external
1865
2029
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayroutetablevirtualinterfacegroupassociation.html
1866
2030
  */
1867
- class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin extends core.Mixin {
1868
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin", version: "2.240.0-alpha.0" };
2031
+ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin extends cdk.Mixin {
2032
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin", version: "2.242.0-alpha.0" };
1869
2033
  static CFN_PROPERTY_KEYS = ["localGatewayRouteTableId", "localGatewayVirtualInterfaceGroupId", "tags"];
1870
2034
  props;
1871
2035
  strategy;
@@ -1888,7 +2052,7 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin extend
1888
2052
  throw error;
1889
2053
  }
1890
2054
  this.props = props;
1891
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2055
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1892
2056
  }
1893
2057
  /**
1894
2058
  * Check if this mixin supports the given construct
@@ -1901,12 +2065,7 @@ class CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin extend
1901
2065
  */
1902
2066
  applyTo(construct) {
1903
2067
  if (this.supports(construct)) {
1904
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1905
- helpers.deepMerge(construct, this.props, CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin.CFN_PROPERTY_KEYS);
1906
- }
1907
- else {
1908
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin.CFN_PROPERTY_KEYS);
1909
- }
2068
+ this.strategy.apply(construct, this.props, CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin.CFN_PROPERTY_KEYS);
1910
2069
  }
1911
2070
  }
1912
2071
  }
@@ -1927,8 +2086,8 @@ exports.CfnLocalGatewayRouteTableVirtualInterfaceGroupAssociationPropsMixin = Cf
1927
2086
  * @stability external
1928
2087
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-natgateway.html
1929
2088
  */
1930
- class CfnNatGatewayPropsMixin extends core.Mixin {
1931
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNatGatewayPropsMixin", version: "2.240.0-alpha.0" };
2089
+ class CfnNatGatewayPropsMixin extends cdk.Mixin {
2090
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNatGatewayPropsMixin", version: "2.242.0-alpha.0" };
1932
2091
  static CFN_PROPERTY_KEYS = ["allocationId", "availabilityMode", "availabilityZoneAddresses", "connectivityType", "maxDrainDurationSeconds", "privateIpAddress", "secondaryAllocationIds", "secondaryPrivateIpAddressCount", "secondaryPrivateIpAddresses", "subnetId", "tags", "vpcId"];
1933
2092
  props;
1934
2093
  strategy;
@@ -1950,8 +2109,11 @@ class CfnNatGatewayPropsMixin extends core.Mixin {
1950
2109
  }
1951
2110
  throw error;
1952
2111
  }
1953
- this.props = props;
1954
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2112
+ this.props = {
2113
+ ...props,
2114
+ ...flattenCfnNatGatewayMixinProps(props)
2115
+ };
2116
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
1955
2117
  }
1956
2118
  /**
1957
2119
  * Check if this mixin supports the given construct
@@ -1964,16 +2126,20 @@ class CfnNatGatewayPropsMixin extends core.Mixin {
1964
2126
  */
1965
2127
  applyTo(construct) {
1966
2128
  if (this.supports(construct)) {
1967
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
1968
- helpers.deepMerge(construct, this.props, CfnNatGatewayPropsMixin.CFN_PROPERTY_KEYS);
1969
- }
1970
- else {
1971
- helpers.shallowAssign(construct, this.props, CfnNatGatewayPropsMixin.CFN_PROPERTY_KEYS);
1972
- }
2129
+ this.strategy.apply(construct, this.props, CfnNatGatewayPropsMixin.CFN_PROPERTY_KEYS);
1973
2130
  }
1974
2131
  }
1975
2132
  }
1976
2133
  exports.CfnNatGatewayPropsMixin = CfnNatGatewayPropsMixin;
2134
+ // @ts-ignore TS6133
2135
+ function flattenCfnNatGatewayMixinProps(props) {
2136
+ const ret = {};
2137
+ if ((props.allocationId !== undefined))
2138
+ ret.allocationId = cdk.getRefProperty(props.allocationId?.eipRef, 'allocationId') ?? cdk.ensureStringOrUndefined(props.allocationId, "allocationId", "ec2.IEIPRef | string");
2139
+ if ((props.subnetId !== undefined))
2140
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
2141
+ return ret;
2142
+ }
1977
2143
  /**
1978
2144
  * Specifies a network ACL for your VPC.
1979
2145
  *
@@ -1984,8 +2150,8 @@ exports.CfnNatGatewayPropsMixin = CfnNatGatewayPropsMixin;
1984
2150
  * @stability external
1985
2151
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkacl.html
1986
2152
  */
1987
- class CfnNetworkAclPropsMixin extends core.Mixin {
1988
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkAclPropsMixin", version: "2.240.0-alpha.0" };
2153
+ class CfnNetworkAclPropsMixin extends cdk.Mixin {
2154
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkAclPropsMixin", version: "2.242.0-alpha.0" };
1989
2155
  static CFN_PROPERTY_KEYS = ["tags", "vpcId"];
1990
2156
  props;
1991
2157
  strategy;
@@ -2007,8 +2173,11 @@ class CfnNetworkAclPropsMixin extends core.Mixin {
2007
2173
  }
2008
2174
  throw error;
2009
2175
  }
2010
- this.props = props;
2011
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2176
+ this.props = {
2177
+ ...props,
2178
+ ...flattenCfnNetworkAclMixinProps(props)
2179
+ };
2180
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2012
2181
  }
2013
2182
  /**
2014
2183
  * Check if this mixin supports the given construct
@@ -2021,16 +2190,18 @@ class CfnNetworkAclPropsMixin extends core.Mixin {
2021
2190
  */
2022
2191
  applyTo(construct) {
2023
2192
  if (this.supports(construct)) {
2024
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2025
- helpers.deepMerge(construct, this.props, CfnNetworkAclPropsMixin.CFN_PROPERTY_KEYS);
2026
- }
2027
- else {
2028
- helpers.shallowAssign(construct, this.props, CfnNetworkAclPropsMixin.CFN_PROPERTY_KEYS);
2029
- }
2193
+ this.strategy.apply(construct, this.props, CfnNetworkAclPropsMixin.CFN_PROPERTY_KEYS);
2030
2194
  }
2031
2195
  }
2032
2196
  }
2033
2197
  exports.CfnNetworkAclPropsMixin = CfnNetworkAclPropsMixin;
2198
+ // @ts-ignore TS6133
2199
+ function flattenCfnNetworkAclMixinProps(props) {
2200
+ const ret = {};
2201
+ if ((props.vpcId !== undefined))
2202
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
2203
+ return ret;
2204
+ }
2034
2205
  /**
2035
2206
  * Specifies an entry, known as a rule, in a network ACL with a rule number you specify.
2036
2207
  *
@@ -2045,8 +2216,8 @@ exports.CfnNetworkAclPropsMixin = CfnNetworkAclPropsMixin;
2045
2216
  * @stability external
2046
2217
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkaclentry.html
2047
2218
  */
2048
- class CfnNetworkAclEntryPropsMixin extends core.Mixin {
2049
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkAclEntryPropsMixin", version: "2.240.0-alpha.0" };
2219
+ class CfnNetworkAclEntryPropsMixin extends cdk.Mixin {
2220
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkAclEntryPropsMixin", version: "2.242.0-alpha.0" };
2050
2221
  static CFN_PROPERTY_KEYS = ["cidrBlock", "egress", "icmp", "ipv6CidrBlock", "networkAclId", "portRange", "protocol", "ruleAction", "ruleNumber"];
2051
2222
  props;
2052
2223
  strategy;
@@ -2069,7 +2240,7 @@ class CfnNetworkAclEntryPropsMixin extends core.Mixin {
2069
2240
  throw error;
2070
2241
  }
2071
2242
  this.props = props;
2072
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2243
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2073
2244
  }
2074
2245
  /**
2075
2246
  * Check if this mixin supports the given construct
@@ -2082,12 +2253,7 @@ class CfnNetworkAclEntryPropsMixin extends core.Mixin {
2082
2253
  */
2083
2254
  applyTo(construct) {
2084
2255
  if (this.supports(construct)) {
2085
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2086
- helpers.deepMerge(construct, this.props, CfnNetworkAclEntryPropsMixin.CFN_PROPERTY_KEYS);
2087
- }
2088
- else {
2089
- helpers.shallowAssign(construct, this.props, CfnNetworkAclEntryPropsMixin.CFN_PROPERTY_KEYS);
2090
- }
2256
+ this.strategy.apply(construct, this.props, CfnNetworkAclEntryPropsMixin.CFN_PROPERTY_KEYS);
2091
2257
  }
2092
2258
  }
2093
2259
  }
@@ -2104,8 +2270,8 @@ exports.CfnNetworkAclEntryPropsMixin = CfnNetworkAclEntryPropsMixin;
2104
2270
  * @stability external
2105
2271
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscope.html
2106
2272
  */
2107
- class CfnNetworkInsightsAccessScopePropsMixin extends core.Mixin {
2108
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAccessScopePropsMixin", version: "2.240.0-alpha.0" };
2273
+ class CfnNetworkInsightsAccessScopePropsMixin extends cdk.Mixin {
2274
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAccessScopePropsMixin", version: "2.242.0-alpha.0" };
2109
2275
  static CFN_PROPERTY_KEYS = ["excludePaths", "matchPaths", "tags"];
2110
2276
  props;
2111
2277
  strategy;
@@ -2128,7 +2294,7 @@ class CfnNetworkInsightsAccessScopePropsMixin extends core.Mixin {
2128
2294
  throw error;
2129
2295
  }
2130
2296
  this.props = props;
2131
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2297
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2132
2298
  }
2133
2299
  /**
2134
2300
  * Check if this mixin supports the given construct
@@ -2141,12 +2307,7 @@ class CfnNetworkInsightsAccessScopePropsMixin extends core.Mixin {
2141
2307
  */
2142
2308
  applyTo(construct) {
2143
2309
  if (this.supports(construct)) {
2144
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2145
- helpers.deepMerge(construct, this.props, CfnNetworkInsightsAccessScopePropsMixin.CFN_PROPERTY_KEYS);
2146
- }
2147
- else {
2148
- helpers.shallowAssign(construct, this.props, CfnNetworkInsightsAccessScopePropsMixin.CFN_PROPERTY_KEYS);
2149
- }
2310
+ this.strategy.apply(construct, this.props, CfnNetworkInsightsAccessScopePropsMixin.CFN_PROPERTY_KEYS);
2150
2311
  }
2151
2312
  }
2152
2313
  }
@@ -2159,8 +2320,8 @@ exports.CfnNetworkInsightsAccessScopePropsMixin = CfnNetworkInsightsAccessScopeP
2159
2320
  * @stability external
2160
2321
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsaccessscopeanalysis.html
2161
2322
  */
2162
- class CfnNetworkInsightsAccessScopeAnalysisPropsMixin extends core.Mixin {
2163
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAccessScopeAnalysisPropsMixin", version: "2.240.0-alpha.0" };
2323
+ class CfnNetworkInsightsAccessScopeAnalysisPropsMixin extends cdk.Mixin {
2324
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAccessScopeAnalysisPropsMixin", version: "2.242.0-alpha.0" };
2164
2325
  static CFN_PROPERTY_KEYS = ["networkInsightsAccessScopeId", "tags"];
2165
2326
  props;
2166
2327
  strategy;
@@ -2183,7 +2344,7 @@ class CfnNetworkInsightsAccessScopeAnalysisPropsMixin extends core.Mixin {
2183
2344
  throw error;
2184
2345
  }
2185
2346
  this.props = props;
2186
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2347
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2187
2348
  }
2188
2349
  /**
2189
2350
  * Check if this mixin supports the given construct
@@ -2196,12 +2357,7 @@ class CfnNetworkInsightsAccessScopeAnalysisPropsMixin extends core.Mixin {
2196
2357
  */
2197
2358
  applyTo(construct) {
2198
2359
  if (this.supports(construct)) {
2199
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2200
- helpers.deepMerge(construct, this.props, CfnNetworkInsightsAccessScopeAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2201
- }
2202
- else {
2203
- helpers.shallowAssign(construct, this.props, CfnNetworkInsightsAccessScopeAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2204
- }
2360
+ this.strategy.apply(construct, this.props, CfnNetworkInsightsAccessScopeAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2205
2361
  }
2206
2362
  }
2207
2363
  }
@@ -2214,8 +2370,8 @@ exports.CfnNetworkInsightsAccessScopeAnalysisPropsMixin = CfnNetworkInsightsAcce
2214
2370
  * @stability external
2215
2371
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightsanalysis.html
2216
2372
  */
2217
- class CfnNetworkInsightsAnalysisPropsMixin extends core.Mixin {
2218
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAnalysisPropsMixin", version: "2.240.0-alpha.0" };
2373
+ class CfnNetworkInsightsAnalysisPropsMixin extends cdk.Mixin {
2374
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsAnalysisPropsMixin", version: "2.242.0-alpha.0" };
2219
2375
  static CFN_PROPERTY_KEYS = ["additionalAccounts", "filterInArns", "filterOutArns", "networkInsightsPathId", "tags"];
2220
2376
  props;
2221
2377
  strategy;
@@ -2238,7 +2394,7 @@ class CfnNetworkInsightsAnalysisPropsMixin extends core.Mixin {
2238
2394
  throw error;
2239
2395
  }
2240
2396
  this.props = props;
2241
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2397
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2242
2398
  }
2243
2399
  /**
2244
2400
  * Check if this mixin supports the given construct
@@ -2251,12 +2407,7 @@ class CfnNetworkInsightsAnalysisPropsMixin extends core.Mixin {
2251
2407
  */
2252
2408
  applyTo(construct) {
2253
2409
  if (this.supports(construct)) {
2254
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2255
- helpers.deepMerge(construct, this.props, CfnNetworkInsightsAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2256
- }
2257
- else {
2258
- helpers.shallowAssign(construct, this.props, CfnNetworkInsightsAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2259
- }
2410
+ this.strategy.apply(construct, this.props, CfnNetworkInsightsAnalysisPropsMixin.CFN_PROPERTY_KEYS);
2260
2411
  }
2261
2412
  }
2262
2413
  }
@@ -2271,8 +2422,8 @@ exports.CfnNetworkInsightsAnalysisPropsMixin = CfnNetworkInsightsAnalysisPropsMi
2271
2422
  * @stability external
2272
2423
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinsightspath.html
2273
2424
  */
2274
- class CfnNetworkInsightsPathPropsMixin extends core.Mixin {
2275
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsPathPropsMixin", version: "2.240.0-alpha.0" };
2425
+ class CfnNetworkInsightsPathPropsMixin extends cdk.Mixin {
2426
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInsightsPathPropsMixin", version: "2.242.0-alpha.0" };
2276
2427
  static CFN_PROPERTY_KEYS = ["destination", "destinationIp", "destinationPort", "filterAtDestination", "filterAtSource", "protocol", "source", "sourceIp", "tags"];
2277
2428
  props;
2278
2429
  strategy;
@@ -2295,7 +2446,7 @@ class CfnNetworkInsightsPathPropsMixin extends core.Mixin {
2295
2446
  throw error;
2296
2447
  }
2297
2448
  this.props = props;
2298
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2449
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2299
2450
  }
2300
2451
  /**
2301
2452
  * Check if this mixin supports the given construct
@@ -2308,12 +2459,7 @@ class CfnNetworkInsightsPathPropsMixin extends core.Mixin {
2308
2459
  */
2309
2460
  applyTo(construct) {
2310
2461
  if (this.supports(construct)) {
2311
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2312
- helpers.deepMerge(construct, this.props, CfnNetworkInsightsPathPropsMixin.CFN_PROPERTY_KEYS);
2313
- }
2314
- else {
2315
- helpers.shallowAssign(construct, this.props, CfnNetworkInsightsPathPropsMixin.CFN_PROPERTY_KEYS);
2316
- }
2462
+ this.strategy.apply(construct, this.props, CfnNetworkInsightsPathPropsMixin.CFN_PROPERTY_KEYS);
2317
2463
  }
2318
2464
  }
2319
2465
  }
@@ -2326,8 +2472,8 @@ exports.CfnNetworkInsightsPathPropsMixin = CfnNetworkInsightsPathPropsMixin;
2326
2472
  * @stability external
2327
2473
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterface.html
2328
2474
  */
2329
- class CfnNetworkInterfacePropsMixin extends core.Mixin {
2330
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfacePropsMixin", version: "2.240.0-alpha.0" };
2475
+ class CfnNetworkInterfacePropsMixin extends cdk.Mixin {
2476
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfacePropsMixin", version: "2.242.0-alpha.0" };
2331
2477
  static CFN_PROPERTY_KEYS = ["connectionTrackingSpecification", "description", "enablePrimaryIpv6", "groupSet", "interfaceType", "ipv4PrefixCount", "ipv4Prefixes", "ipv6AddressCount", "ipv6Addresses", "ipv6PrefixCount", "ipv6Prefixes", "privateIpAddress", "privateIpAddresses", "publicIpDnsHostnameTypeSpecification", "secondaryPrivateIpAddressCount", "sourceDestCheck", "subnetId", "tags"];
2332
2478
  props;
2333
2479
  strategy;
@@ -2349,8 +2495,11 @@ class CfnNetworkInterfacePropsMixin extends core.Mixin {
2349
2495
  }
2350
2496
  throw error;
2351
2497
  }
2352
- this.props = props;
2353
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2498
+ this.props = {
2499
+ ...props,
2500
+ ...flattenCfnNetworkInterfaceMixinProps(props)
2501
+ };
2502
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2354
2503
  }
2355
2504
  /**
2356
2505
  * Check if this mixin supports the given construct
@@ -2363,16 +2512,20 @@ class CfnNetworkInterfacePropsMixin extends core.Mixin {
2363
2512
  */
2364
2513
  applyTo(construct) {
2365
2514
  if (this.supports(construct)) {
2366
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2367
- helpers.deepMerge(construct, this.props, CfnNetworkInterfacePropsMixin.CFN_PROPERTY_KEYS);
2368
- }
2369
- else {
2370
- helpers.shallowAssign(construct, this.props, CfnNetworkInterfacePropsMixin.CFN_PROPERTY_KEYS);
2371
- }
2515
+ this.strategy.apply(construct, this.props, CfnNetworkInterfacePropsMixin.CFN_PROPERTY_KEYS);
2372
2516
  }
2373
2517
  }
2374
2518
  }
2375
2519
  exports.CfnNetworkInterfacePropsMixin = CfnNetworkInterfacePropsMixin;
2520
+ // @ts-ignore TS6133
2521
+ function flattenCfnNetworkInterfaceMixinProps(props) {
2522
+ const ret = {};
2523
+ if ((props.groupSet !== undefined))
2524
+ ret.groupSet = cdk.mapArrayInPlace(props.groupSet, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "groupSet", "ec2.ISecurityGroupRef | string"));
2525
+ if ((props.subnetId !== undefined))
2526
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
2527
+ return ret;
2528
+ }
2376
2529
  /**
2377
2530
  * Attaches an elastic network interface (ENI) to an Amazon EC2 instance.
2378
2531
  *
@@ -2383,8 +2536,8 @@ exports.CfnNetworkInterfacePropsMixin = CfnNetworkInterfacePropsMixin;
2383
2536
  * @stability external
2384
2537
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfaceattachment.html
2385
2538
  */
2386
- class CfnNetworkInterfaceAttachmentPropsMixin extends core.Mixin {
2387
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfaceAttachmentPropsMixin", version: "2.240.0-alpha.0" };
2539
+ class CfnNetworkInterfaceAttachmentPropsMixin extends cdk.Mixin {
2540
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfaceAttachmentPropsMixin", version: "2.242.0-alpha.0" };
2388
2541
  static CFN_PROPERTY_KEYS = ["deleteOnTermination", "deviceIndex", "enaQueueCount", "enaSrdSpecification", "instanceId", "networkInterfaceId"];
2389
2542
  props;
2390
2543
  strategy;
@@ -2407,7 +2560,7 @@ class CfnNetworkInterfaceAttachmentPropsMixin extends core.Mixin {
2407
2560
  throw error;
2408
2561
  }
2409
2562
  this.props = props;
2410
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2563
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2411
2564
  }
2412
2565
  /**
2413
2566
  * Check if this mixin supports the given construct
@@ -2420,12 +2573,7 @@ class CfnNetworkInterfaceAttachmentPropsMixin extends core.Mixin {
2420
2573
  */
2421
2574
  applyTo(construct) {
2422
2575
  if (this.supports(construct)) {
2423
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2424
- helpers.deepMerge(construct, this.props, CfnNetworkInterfaceAttachmentPropsMixin.CFN_PROPERTY_KEYS);
2425
- }
2426
- else {
2427
- helpers.shallowAssign(construct, this.props, CfnNetworkInterfaceAttachmentPropsMixin.CFN_PROPERTY_KEYS);
2428
- }
2576
+ this.strategy.apply(construct, this.props, CfnNetworkInterfaceAttachmentPropsMixin.CFN_PROPERTY_KEYS);
2429
2577
  }
2430
2578
  }
2431
2579
  }
@@ -2438,8 +2586,8 @@ exports.CfnNetworkInterfaceAttachmentPropsMixin = CfnNetworkInterfaceAttachmentP
2438
2586
  * @stability external
2439
2587
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkinterfacepermission.html
2440
2588
  */
2441
- class CfnNetworkInterfacePermissionPropsMixin extends core.Mixin {
2442
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfacePermissionPropsMixin", version: "2.240.0-alpha.0" };
2589
+ class CfnNetworkInterfacePermissionPropsMixin extends cdk.Mixin {
2590
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkInterfacePermissionPropsMixin", version: "2.242.0-alpha.0" };
2443
2591
  static CFN_PROPERTY_KEYS = ["awsAccountId", "networkInterfaceId", "permission"];
2444
2592
  props;
2445
2593
  strategy;
@@ -2462,7 +2610,7 @@ class CfnNetworkInterfacePermissionPropsMixin extends core.Mixin {
2462
2610
  throw error;
2463
2611
  }
2464
2612
  this.props = props;
2465
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2613
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2466
2614
  }
2467
2615
  /**
2468
2616
  * Check if this mixin supports the given construct
@@ -2475,12 +2623,7 @@ class CfnNetworkInterfacePermissionPropsMixin extends core.Mixin {
2475
2623
  */
2476
2624
  applyTo(construct) {
2477
2625
  if (this.supports(construct)) {
2478
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2479
- helpers.deepMerge(construct, this.props, CfnNetworkInterfacePermissionPropsMixin.CFN_PROPERTY_KEYS);
2480
- }
2481
- else {
2482
- helpers.shallowAssign(construct, this.props, CfnNetworkInterfacePermissionPropsMixin.CFN_PROPERTY_KEYS);
2483
- }
2626
+ this.strategy.apply(construct, this.props, CfnNetworkInterfacePermissionPropsMixin.CFN_PROPERTY_KEYS);
2484
2627
  }
2485
2628
  }
2486
2629
  }
@@ -2493,8 +2636,8 @@ exports.CfnNetworkInterfacePermissionPropsMixin = CfnNetworkInterfacePermissionP
2493
2636
  * @stability external
2494
2637
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-networkperformancemetricsubscription.html
2495
2638
  */
2496
- class CfnNetworkPerformanceMetricSubscriptionPropsMixin extends core.Mixin {
2497
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkPerformanceMetricSubscriptionPropsMixin", version: "2.240.0-alpha.0" };
2639
+ class CfnNetworkPerformanceMetricSubscriptionPropsMixin extends cdk.Mixin {
2640
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnNetworkPerformanceMetricSubscriptionPropsMixin", version: "2.242.0-alpha.0" };
2498
2641
  static CFN_PROPERTY_KEYS = ["destination", "metric", "source", "statistic"];
2499
2642
  props;
2500
2643
  strategy;
@@ -2517,7 +2660,7 @@ class CfnNetworkPerformanceMetricSubscriptionPropsMixin extends core.Mixin {
2517
2660
  throw error;
2518
2661
  }
2519
2662
  this.props = props;
2520
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2663
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2521
2664
  }
2522
2665
  /**
2523
2666
  * Check if this mixin supports the given construct
@@ -2530,12 +2673,7 @@ class CfnNetworkPerformanceMetricSubscriptionPropsMixin extends core.Mixin {
2530
2673
  */
2531
2674
  applyTo(construct) {
2532
2675
  if (this.supports(construct)) {
2533
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2534
- helpers.deepMerge(construct, this.props, CfnNetworkPerformanceMetricSubscriptionPropsMixin.CFN_PROPERTY_KEYS);
2535
- }
2536
- else {
2537
- helpers.shallowAssign(construct, this.props, CfnNetworkPerformanceMetricSubscriptionPropsMixin.CFN_PROPERTY_KEYS);
2538
- }
2676
+ this.strategy.apply(construct, this.props, CfnNetworkPerformanceMetricSubscriptionPropsMixin.CFN_PROPERTY_KEYS);
2539
2677
  }
2540
2678
  }
2541
2679
  }
@@ -2554,8 +2692,8 @@ exports.CfnNetworkPerformanceMetricSubscriptionPropsMixin = CfnNetworkPerformanc
2554
2692
  * @stability external
2555
2693
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-placementgroup.html
2556
2694
  */
2557
- class CfnPlacementGroupPropsMixin extends core.Mixin {
2558
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnPlacementGroupPropsMixin", version: "2.240.0-alpha.0" };
2695
+ class CfnPlacementGroupPropsMixin extends cdk.Mixin {
2696
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnPlacementGroupPropsMixin", version: "2.242.0-alpha.0" };
2559
2697
  static CFN_PROPERTY_KEYS = ["partitionCount", "spreadLevel", "strategy", "tags"];
2560
2698
  props;
2561
2699
  strategy;
@@ -2578,7 +2716,7 @@ class CfnPlacementGroupPropsMixin extends core.Mixin {
2578
2716
  throw error;
2579
2717
  }
2580
2718
  this.props = props;
2581
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2719
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2582
2720
  }
2583
2721
  /**
2584
2722
  * Check if this mixin supports the given construct
@@ -2591,12 +2729,7 @@ class CfnPlacementGroupPropsMixin extends core.Mixin {
2591
2729
  */
2592
2730
  applyTo(construct) {
2593
2731
  if (this.supports(construct)) {
2594
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2595
- helpers.deepMerge(construct, this.props, CfnPlacementGroupPropsMixin.CFN_PROPERTY_KEYS);
2596
- }
2597
- else {
2598
- helpers.shallowAssign(construct, this.props, CfnPlacementGroupPropsMixin.CFN_PROPERTY_KEYS);
2599
- }
2732
+ this.strategy.apply(construct, this.props, CfnPlacementGroupPropsMixin.CFN_PROPERTY_KEYS);
2600
2733
  }
2601
2734
  }
2602
2735
  }
@@ -2611,8 +2744,8 @@ exports.CfnPlacementGroupPropsMixin = CfnPlacementGroupPropsMixin;
2611
2744
  * @stability external
2612
2745
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-prefixlist.html
2613
2746
  */
2614
- class CfnPrefixListPropsMixin extends core.Mixin {
2615
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnPrefixListPropsMixin", version: "2.240.0-alpha.0" };
2747
+ class CfnPrefixListPropsMixin extends cdk.Mixin {
2748
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnPrefixListPropsMixin", version: "2.242.0-alpha.0" };
2616
2749
  static CFN_PROPERTY_KEYS = ["addressFamily", "entries", "maxEntries", "prefixListName", "tags"];
2617
2750
  props;
2618
2751
  strategy;
@@ -2635,7 +2768,7 @@ class CfnPrefixListPropsMixin extends core.Mixin {
2635
2768
  throw error;
2636
2769
  }
2637
2770
  this.props = props;
2638
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2771
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2639
2772
  }
2640
2773
  /**
2641
2774
  * Check if this mixin supports the given construct
@@ -2648,12 +2781,7 @@ class CfnPrefixListPropsMixin extends core.Mixin {
2648
2781
  */
2649
2782
  applyTo(construct) {
2650
2783
  if (this.supports(construct)) {
2651
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2652
- helpers.deepMerge(construct, this.props, CfnPrefixListPropsMixin.CFN_PROPERTY_KEYS);
2653
- }
2654
- else {
2655
- helpers.shallowAssign(construct, this.props, CfnPrefixListPropsMixin.CFN_PROPERTY_KEYS);
2656
- }
2784
+ this.strategy.apply(construct, this.props, CfnPrefixListPropsMixin.CFN_PROPERTY_KEYS);
2657
2785
  }
2658
2786
  }
2659
2787
  }
@@ -2670,8 +2798,8 @@ exports.CfnPrefixListPropsMixin = CfnPrefixListPropsMixin;
2670
2798
  * @stability external
2671
2799
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html
2672
2800
  */
2673
- class CfnRoutePropsMixin extends core.Mixin {
2674
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRoutePropsMixin", version: "2.240.0-alpha.0" };
2801
+ class CfnRoutePropsMixin extends cdk.Mixin {
2802
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRoutePropsMixin", version: "2.242.0-alpha.0" };
2675
2803
  static CFN_PROPERTY_KEYS = ["carrierGatewayId", "coreNetworkArn", "destinationCidrBlock", "destinationIpv6CidrBlock", "destinationPrefixListId", "egressOnlyInternetGatewayId", "gatewayId", "instanceId", "localGatewayId", "natGatewayId", "networkInterfaceId", "routeTableId", "transitGatewayId", "vpcEndpointId", "vpcPeeringConnectionId"];
2676
2804
  props;
2677
2805
  strategy;
@@ -2693,8 +2821,11 @@ class CfnRoutePropsMixin extends core.Mixin {
2693
2821
  }
2694
2822
  throw error;
2695
2823
  }
2696
- this.props = props;
2697
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2824
+ this.props = {
2825
+ ...props,
2826
+ ...flattenCfnRouteMixinProps(props)
2827
+ };
2828
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2698
2829
  }
2699
2830
  /**
2700
2831
  * Check if this mixin supports the given construct
@@ -2707,16 +2838,32 @@ class CfnRoutePropsMixin extends core.Mixin {
2707
2838
  */
2708
2839
  applyTo(construct) {
2709
2840
  if (this.supports(construct)) {
2710
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2711
- helpers.deepMerge(construct, this.props, CfnRoutePropsMixin.CFN_PROPERTY_KEYS);
2712
- }
2713
- else {
2714
- helpers.shallowAssign(construct, this.props, CfnRoutePropsMixin.CFN_PROPERTY_KEYS);
2715
- }
2841
+ this.strategy.apply(construct, this.props, CfnRoutePropsMixin.CFN_PROPERTY_KEYS);
2716
2842
  }
2717
2843
  }
2718
2844
  }
2719
2845
  exports.CfnRoutePropsMixin = CfnRoutePropsMixin;
2846
+ // @ts-ignore TS6133
2847
+ function flattenCfnRouteMixinProps(props) {
2848
+ const ret = {};
2849
+ if ((props.carrierGatewayId !== undefined))
2850
+ ret.carrierGatewayId = cdk.getRefProperty(props.carrierGatewayId?.carrierGatewayRef, 'carrierGatewayId') ?? cdk.ensureStringOrUndefined(props.carrierGatewayId, "carrierGatewayId", "ec2.ICarrierGatewayRef | string");
2851
+ if ((props.egressOnlyInternetGatewayId !== undefined))
2852
+ ret.egressOnlyInternetGatewayId = cdk.getRefProperty(props.egressOnlyInternetGatewayId?.egressOnlyInternetGatewayRef, 'egressOnlyInternetGatewayId') ?? cdk.ensureStringOrUndefined(props.egressOnlyInternetGatewayId, "egressOnlyInternetGatewayId", "ec2.IEgressOnlyInternetGatewayRef | string");
2853
+ if ((props.gatewayId !== undefined))
2854
+ ret.gatewayId = cdk.getRefProperty(props.gatewayId?.internetGatewayRef, 'internetGatewayId') ?? cdk.getRefProperty(props.gatewayId?.vpnGatewayRef, 'vpnGatewayId') ?? cdk.ensureStringOrUndefined(props.gatewayId, "gatewayId", "ec2.IInternetGatewayRef | ec2.IVPNGatewayRef | string");
2855
+ if ((props.instanceId !== undefined))
2856
+ ret.instanceId = cdk.getRefProperty(props.instanceId?.instanceRef, 'instanceId') ?? cdk.ensureStringOrUndefined(props.instanceId, "instanceId", "ec2.IInstanceRef | string");
2857
+ if ((props.natGatewayId !== undefined))
2858
+ ret.natGatewayId = cdk.getRefProperty(props.natGatewayId?.natGatewayRef, 'natGatewayId') ?? cdk.ensureStringOrUndefined(props.natGatewayId, "natGatewayId", "ec2.INatGatewayRef | string");
2859
+ if ((props.routeTableId !== undefined))
2860
+ ret.routeTableId = cdk.getRefProperty(props.routeTableId?.routeTableRef, 'routeTableId') ?? cdk.ensureStringOrUndefined(props.routeTableId, "routeTableId", "ec2.IRouteTableRef | string");
2861
+ if ((props.transitGatewayId !== undefined))
2862
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
2863
+ if ((props.vpcPeeringConnectionId !== undefined))
2864
+ ret.vpcPeeringConnectionId = cdk.getRefProperty(props.vpcPeeringConnectionId?.vpcPeeringConnectionRef, 'vpcPeeringConnectionId') ?? cdk.ensureStringOrUndefined(props.vpcPeeringConnectionId, "vpcPeeringConnectionId", "ec2.IVPCPeeringConnectionRef | string");
2865
+ return ret;
2866
+ }
2720
2867
  /**
2721
2868
  * Specifies a route table for the specified VPC.
2722
2869
  *
@@ -2729,8 +2876,8 @@ exports.CfnRoutePropsMixin = CfnRoutePropsMixin;
2729
2876
  * @stability external
2730
2877
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html
2731
2878
  */
2732
- class CfnRouteTablePropsMixin extends core.Mixin {
2733
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteTablePropsMixin", version: "2.240.0-alpha.0" };
2879
+ class CfnRouteTablePropsMixin extends cdk.Mixin {
2880
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteTablePropsMixin", version: "2.242.0-alpha.0" };
2734
2881
  static CFN_PROPERTY_KEYS = ["tags", "vpcId"];
2735
2882
  props;
2736
2883
  strategy;
@@ -2752,8 +2899,11 @@ class CfnRouteTablePropsMixin extends core.Mixin {
2752
2899
  }
2753
2900
  throw error;
2754
2901
  }
2755
- this.props = props;
2756
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2902
+ this.props = {
2903
+ ...props,
2904
+ ...flattenCfnRouteTableMixinProps(props)
2905
+ };
2906
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2757
2907
  }
2758
2908
  /**
2759
2909
  * Check if this mixin supports the given construct
@@ -2766,16 +2916,18 @@ class CfnRouteTablePropsMixin extends core.Mixin {
2766
2916
  */
2767
2917
  applyTo(construct) {
2768
2918
  if (this.supports(construct)) {
2769
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2770
- helpers.deepMerge(construct, this.props, CfnRouteTablePropsMixin.CFN_PROPERTY_KEYS);
2771
- }
2772
- else {
2773
- helpers.shallowAssign(construct, this.props, CfnRouteTablePropsMixin.CFN_PROPERTY_KEYS);
2774
- }
2919
+ this.strategy.apply(construct, this.props, CfnRouteTablePropsMixin.CFN_PROPERTY_KEYS);
2775
2920
  }
2776
2921
  }
2777
2922
  }
2778
2923
  exports.CfnRouteTablePropsMixin = CfnRouteTablePropsMixin;
2924
+ // @ts-ignore TS6133
2925
+ function flattenCfnRouteTableMixinProps(props) {
2926
+ const ret = {};
2927
+ if ((props.vpcId !== undefined))
2928
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
2929
+ return ret;
2930
+ }
2779
2931
  /**
2780
2932
  * Specifies a security group.
2781
2933
  *
@@ -2794,8 +2946,8 @@ exports.CfnRouteTablePropsMixin = CfnRouteTablePropsMixin;
2794
2946
  * @stability external
2795
2947
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroup.html
2796
2948
  */
2797
- class CfnSecurityGroupPropsMixin extends core.Mixin {
2798
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupPropsMixin", version: "2.240.0-alpha.0" };
2949
+ class CfnSecurityGroupPropsMixin extends cdk.Mixin {
2950
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupPropsMixin", version: "2.242.0-alpha.0" };
2799
2951
  static CFN_PROPERTY_KEYS = ["groupDescription", "groupName", "securityGroupEgress", "securityGroupIngress", "tags", "vpcId"];
2800
2952
  props;
2801
2953
  strategy;
@@ -2817,8 +2969,11 @@ class CfnSecurityGroupPropsMixin extends core.Mixin {
2817
2969
  }
2818
2970
  throw error;
2819
2971
  }
2820
- this.props = props;
2821
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
2972
+ this.props = {
2973
+ ...props,
2974
+ ...flattenCfnSecurityGroupMixinProps(props)
2975
+ };
2976
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2822
2977
  }
2823
2978
  /**
2824
2979
  * Check if this mixin supports the given construct
@@ -2831,16 +2986,54 @@ class CfnSecurityGroupPropsMixin extends core.Mixin {
2831
2986
  */
2832
2987
  applyTo(construct) {
2833
2988
  if (this.supports(construct)) {
2834
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2835
- helpers.deepMerge(construct, this.props, CfnSecurityGroupPropsMixin.CFN_PROPERTY_KEYS);
2836
- }
2837
- else {
2838
- helpers.shallowAssign(construct, this.props, CfnSecurityGroupPropsMixin.CFN_PROPERTY_KEYS);
2839
- }
2989
+ this.strategy.apply(construct, this.props, CfnSecurityGroupPropsMixin.CFN_PROPERTY_KEYS);
2840
2990
  }
2841
2991
  }
2842
2992
  }
2843
2993
  exports.CfnSecurityGroupPropsMixin = CfnSecurityGroupPropsMixin;
2994
+ // @ts-ignore TS6133
2995
+ function flattenCfnSecurityGroupPropsMixinEgressProperty(props) {
2996
+ if (cdk.isResolvableObject(props))
2997
+ return props;
2998
+ return {
2999
+ cidrIp: (!props.cidrIp ? undefined : props.cidrIp),
3000
+ cidrIpv6: (!props.cidrIpv6 ? undefined : props.cidrIpv6),
3001
+ description: (!props.description ? undefined : props.description),
3002
+ destinationPrefixListId: (!props.destinationPrefixListId ? undefined : props.destinationPrefixListId),
3003
+ destinationSecurityGroupId: (!props.destinationSecurityGroupId ? undefined : cdk.getRefProperty(props.destinationSecurityGroupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.destinationSecurityGroupId, "destinationSecurityGroupId", "ec2.ISecurityGroupRef | string")),
3004
+ fromPort: (!props.fromPort ? undefined : props.fromPort),
3005
+ ipProtocol: (!props.ipProtocol ? undefined : props.ipProtocol),
3006
+ toPort: (!props.toPort ? undefined : props.toPort)
3007
+ };
3008
+ }
3009
+ // @ts-ignore TS6133
3010
+ function flattenCfnSecurityGroupPropsMixinIngressProperty(props) {
3011
+ if (cdk.isResolvableObject(props))
3012
+ return props;
3013
+ return {
3014
+ cidrIp: (!props.cidrIp ? undefined : props.cidrIp),
3015
+ cidrIpv6: (!props.cidrIpv6 ? undefined : props.cidrIpv6),
3016
+ description: (!props.description ? undefined : props.description),
3017
+ fromPort: (!props.fromPort ? undefined : props.fromPort),
3018
+ ipProtocol: (!props.ipProtocol ? undefined : props.ipProtocol),
3019
+ sourcePrefixListId: (!props.sourcePrefixListId ? undefined : props.sourcePrefixListId),
3020
+ sourceSecurityGroupId: (!props.sourceSecurityGroupId ? undefined : cdk.getRefProperty(props.sourceSecurityGroupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.sourceSecurityGroupId, "sourceSecurityGroupId", "ec2.ISecurityGroupRef | string")),
3021
+ sourceSecurityGroupName: (!props.sourceSecurityGroupName ? undefined : cdk.getRefProperty(props.sourceSecurityGroupName?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.sourceSecurityGroupName, "sourceSecurityGroupName", "ec2.ISecurityGroupRef | string")),
3022
+ sourceSecurityGroupOwnerId: (!props.sourceSecurityGroupOwnerId ? undefined : props.sourceSecurityGroupOwnerId),
3023
+ toPort: (!props.toPort ? undefined : props.toPort)
3024
+ };
3025
+ }
3026
+ // @ts-ignore TS6133
3027
+ function flattenCfnSecurityGroupMixinProps(props) {
3028
+ const ret = {};
3029
+ if ((props.securityGroupEgress !== undefined))
3030
+ ret.securityGroupEgress = (cdk.isResolvableObject(props.securityGroupEgress) ? props.securityGroupEgress : cdk.mapArrayInPlace(props.securityGroupEgress, (item) => flattenCfnSecurityGroupPropsMixinEgressProperty(item)));
3031
+ if ((props.securityGroupIngress !== undefined))
3032
+ ret.securityGroupIngress = (cdk.isResolvableObject(props.securityGroupIngress) ? props.securityGroupIngress : cdk.mapArrayInPlace(props.securityGroupIngress, (item) => flattenCfnSecurityGroupPropsMixinIngressProperty(item)));
3033
+ if ((props.vpcId !== undefined))
3034
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
3035
+ return ret;
3036
+ }
2844
3037
  /**
2845
3038
  * Adds the specified outbound (egress) rule to a security group.
2846
3039
  *
@@ -2857,8 +3050,8 @@ exports.CfnSecurityGroupPropsMixin = CfnSecurityGroupPropsMixin;
2857
3050
  * @stability external
2858
3051
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupegress.html
2859
3052
  */
2860
- class CfnSecurityGroupEgressPropsMixin extends core.Mixin {
2861
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupEgressPropsMixin", version: "2.240.0-alpha.0" };
3053
+ class CfnSecurityGroupEgressPropsMixin extends cdk.Mixin {
3054
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupEgressPropsMixin", version: "2.242.0-alpha.0" };
2862
3055
  static CFN_PROPERTY_KEYS = ["cidrIp", "cidrIpv6", "description", "destinationPrefixListId", "destinationSecurityGroupId", "fromPort", "groupId", "ipProtocol", "toPort"];
2863
3056
  props;
2864
3057
  strategy;
@@ -2880,8 +3073,11 @@ class CfnSecurityGroupEgressPropsMixin extends core.Mixin {
2880
3073
  }
2881
3074
  throw error;
2882
3075
  }
2883
- this.props = props;
2884
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3076
+ this.props = {
3077
+ ...props,
3078
+ ...flattenCfnSecurityGroupEgressMixinProps(props)
3079
+ };
3080
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2885
3081
  }
2886
3082
  /**
2887
3083
  * Check if this mixin supports the given construct
@@ -2894,16 +3090,20 @@ class CfnSecurityGroupEgressPropsMixin extends core.Mixin {
2894
3090
  */
2895
3091
  applyTo(construct) {
2896
3092
  if (this.supports(construct)) {
2897
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2898
- helpers.deepMerge(construct, this.props, CfnSecurityGroupEgressPropsMixin.CFN_PROPERTY_KEYS);
2899
- }
2900
- else {
2901
- helpers.shallowAssign(construct, this.props, CfnSecurityGroupEgressPropsMixin.CFN_PROPERTY_KEYS);
2902
- }
3093
+ this.strategy.apply(construct, this.props, CfnSecurityGroupEgressPropsMixin.CFN_PROPERTY_KEYS);
2903
3094
  }
2904
3095
  }
2905
3096
  }
2906
3097
  exports.CfnSecurityGroupEgressPropsMixin = CfnSecurityGroupEgressPropsMixin;
3098
+ // @ts-ignore TS6133
3099
+ function flattenCfnSecurityGroupEgressMixinProps(props) {
3100
+ const ret = {};
3101
+ if ((props.destinationSecurityGroupId !== undefined))
3102
+ ret.destinationSecurityGroupId = cdk.getRefProperty(props.destinationSecurityGroupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.destinationSecurityGroupId, "destinationSecurityGroupId", "ec2.ISecurityGroupRef | string");
3103
+ if ((props.groupId !== undefined))
3104
+ ret.groupId = cdk.getRefProperty(props.groupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.groupId, "groupId", "ec2.ISecurityGroupRef | string");
3105
+ return ret;
3106
+ }
2907
3107
  /**
2908
3108
  * Adds an inbound (ingress) rule to a security group.
2909
3109
  *
@@ -2920,8 +3120,8 @@ exports.CfnSecurityGroupEgressPropsMixin = CfnSecurityGroupEgressPropsMixin;
2920
3120
  * @stability external
2921
3121
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupingress.html
2922
3122
  */
2923
- class CfnSecurityGroupIngressPropsMixin extends core.Mixin {
2924
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupIngressPropsMixin", version: "2.240.0-alpha.0" };
3123
+ class CfnSecurityGroupIngressPropsMixin extends cdk.Mixin {
3124
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupIngressPropsMixin", version: "2.242.0-alpha.0" };
2925
3125
  static CFN_PROPERTY_KEYS = ["cidrIp", "cidrIpv6", "description", "fromPort", "groupId", "groupName", "ipProtocol", "sourcePrefixListId", "sourceSecurityGroupId", "sourceSecurityGroupName", "sourceSecurityGroupOwnerId", "toPort"];
2926
3126
  props;
2927
3127
  strategy;
@@ -2943,8 +3143,11 @@ class CfnSecurityGroupIngressPropsMixin extends core.Mixin {
2943
3143
  }
2944
3144
  throw error;
2945
3145
  }
2946
- this.props = props;
2947
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3146
+ this.props = {
3147
+ ...props,
3148
+ ...flattenCfnSecurityGroupIngressMixinProps(props)
3149
+ };
3150
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
2948
3151
  }
2949
3152
  /**
2950
3153
  * Check if this mixin supports the given construct
@@ -2957,16 +3160,26 @@ class CfnSecurityGroupIngressPropsMixin extends core.Mixin {
2957
3160
  */
2958
3161
  applyTo(construct) {
2959
3162
  if (this.supports(construct)) {
2960
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
2961
- helpers.deepMerge(construct, this.props, CfnSecurityGroupIngressPropsMixin.CFN_PROPERTY_KEYS);
2962
- }
2963
- else {
2964
- helpers.shallowAssign(construct, this.props, CfnSecurityGroupIngressPropsMixin.CFN_PROPERTY_KEYS);
2965
- }
3163
+ this.strategy.apply(construct, this.props, CfnSecurityGroupIngressPropsMixin.CFN_PROPERTY_KEYS);
2966
3164
  }
2967
3165
  }
2968
3166
  }
2969
3167
  exports.CfnSecurityGroupIngressPropsMixin = CfnSecurityGroupIngressPropsMixin;
3168
+ // @ts-ignore TS6133
3169
+ function flattenCfnSecurityGroupIngressMixinProps(props) {
3170
+ const ret = {};
3171
+ if ((props.cidrIp !== undefined))
3172
+ ret.cidrIp = props.cidrIp;
3173
+ if ((props.groupId !== undefined))
3174
+ ret.groupId = cdk.getRefProperty(props.groupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.groupId, "groupId", "ec2.ISecurityGroupRef | string");
3175
+ if ((props.groupName !== undefined))
3176
+ ret.groupName = cdk.getRefProperty(props.groupName?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.groupName, "groupName", "ec2.ISecurityGroupRef | string");
3177
+ if ((props.sourcePrefixListId !== undefined))
3178
+ ret.sourcePrefixListId = cdk.getRefProperty(props.sourcePrefixListId?.prefixListRef, 'prefixListId') ?? cdk.ensureStringOrUndefined(props.sourcePrefixListId, "sourcePrefixListId", "ec2.IPrefixListRef | string");
3179
+ if ((props.sourceSecurityGroupId !== undefined))
3180
+ ret.sourceSecurityGroupId = cdk.getRefProperty(props.sourceSecurityGroupId?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(props.sourceSecurityGroupId, "sourceSecurityGroupId", "ec2.ISecurityGroupRef | string");
3181
+ return ret;
3182
+ }
2970
3183
  /**
2971
3184
  * Specifies a Spot Fleet request.
2972
3185
  *
@@ -2987,8 +3200,8 @@ exports.CfnSecurityGroupIngressPropsMixin = CfnSecurityGroupIngressPropsMixin;
2987
3200
  * @stability external
2988
3201
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-spotfleet.html
2989
3202
  */
2990
- class CfnSpotFleetPropsMixin extends core.Mixin {
2991
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSpotFleetPropsMixin", version: "2.240.0-alpha.0" };
3203
+ class CfnSpotFleetPropsMixin extends cdk.Mixin {
3204
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSpotFleetPropsMixin", version: "2.242.0-alpha.0" };
2992
3205
  static CFN_PROPERTY_KEYS = ["spotFleetRequestConfigData", "tags"];
2993
3206
  props;
2994
3207
  strategy;
@@ -3010,8 +3223,11 @@ class CfnSpotFleetPropsMixin extends core.Mixin {
3010
3223
  }
3011
3224
  throw error;
3012
3225
  }
3013
- this.props = props;
3014
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3226
+ this.props = {
3227
+ ...props,
3228
+ ...flattenCfnSpotFleetMixinProps(props)
3229
+ };
3230
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3015
3231
  }
3016
3232
  /**
3017
3233
  * Check if this mixin supports the given construct
@@ -3024,16 +3240,67 @@ class CfnSpotFleetPropsMixin extends core.Mixin {
3024
3240
  */
3025
3241
  applyTo(construct) {
3026
3242
  if (this.supports(construct)) {
3027
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3028
- helpers.deepMerge(construct, this.props, CfnSpotFleetPropsMixin.CFN_PROPERTY_KEYS);
3029
- }
3030
- else {
3031
- helpers.shallowAssign(construct, this.props, CfnSpotFleetPropsMixin.CFN_PROPERTY_KEYS);
3032
- }
3243
+ this.strategy.apply(construct, this.props, CfnSpotFleetPropsMixin.CFN_PROPERTY_KEYS);
3033
3244
  }
3034
3245
  }
3035
3246
  }
3036
3247
  exports.CfnSpotFleetPropsMixin = CfnSpotFleetPropsMixin;
3248
+ // @ts-ignore TS6133
3249
+ function flattenCfnSpotFleetPropsMixinFleetLaunchTemplateSpecificationProperty(props) {
3250
+ if (cdk.isResolvableObject(props))
3251
+ return props;
3252
+ return {
3253
+ launchTemplateId: (!props.launchTemplateId ? undefined : cdk.getRefProperty(props.launchTemplateId?.launchTemplateRef, 'launchTemplateId') ?? cdk.ensureStringOrUndefined(props.launchTemplateId, "launchTemplateId", "ec2.ILaunchTemplateRef | string")),
3254
+ launchTemplateName: (!props.launchTemplateName ? undefined : props.launchTemplateName),
3255
+ version: (!props.version ? undefined : props.version)
3256
+ };
3257
+ }
3258
+ // @ts-ignore TS6133
3259
+ function flattenCfnSpotFleetPropsMixinLaunchTemplateConfigProperty(props) {
3260
+ if (cdk.isResolvableObject(props))
3261
+ return props;
3262
+ return {
3263
+ launchTemplateSpecification: (!props.launchTemplateSpecification ? undefined : (!props.launchTemplateSpecification ? undefined : flattenCfnSpotFleetPropsMixinFleetLaunchTemplateSpecificationProperty(props.launchTemplateSpecification))),
3264
+ overrides: (!props.overrides ? undefined : props.overrides)
3265
+ };
3266
+ }
3267
+ // @ts-ignore TS6133
3268
+ function flattenCfnSpotFleetPropsMixinSpotFleetRequestConfigDataProperty(props) {
3269
+ if (cdk.isResolvableObject(props))
3270
+ return props;
3271
+ return {
3272
+ allocationStrategy: (!props.allocationStrategy ? undefined : props.allocationStrategy),
3273
+ context: (!props.context ? undefined : props.context),
3274
+ excessCapacityTerminationPolicy: (!props.excessCapacityTerminationPolicy ? undefined : props.excessCapacityTerminationPolicy),
3275
+ iamFleetRole: (!props.iamFleetRole ? undefined : cdk.getRefProperty(props.iamFleetRole?.roleRef, 'roleArn') ?? cdk.ensureStringOrUndefined(props.iamFleetRole, "iamFleetRole", "iam.IRoleRef | string")),
3276
+ instanceInterruptionBehavior: (!props.instanceInterruptionBehavior ? undefined : props.instanceInterruptionBehavior),
3277
+ instancePoolsToUseCount: (!props.instancePoolsToUseCount ? undefined : props.instancePoolsToUseCount),
3278
+ launchSpecifications: (!props.launchSpecifications ? undefined : props.launchSpecifications),
3279
+ launchTemplateConfigs: (!props.launchTemplateConfigs ? undefined : (cdk.isResolvableObject(props.launchTemplateConfigs) ? props.launchTemplateConfigs : (!props.launchTemplateConfigs ? undefined : cdk.mapArrayInPlace(props.launchTemplateConfigs, (item) => flattenCfnSpotFleetPropsMixinLaunchTemplateConfigProperty(item))))),
3280
+ loadBalancersConfig: (!props.loadBalancersConfig ? undefined : props.loadBalancersConfig),
3281
+ onDemandAllocationStrategy: (!props.onDemandAllocationStrategy ? undefined : props.onDemandAllocationStrategy),
3282
+ onDemandMaxTotalPrice: (!props.onDemandMaxTotalPrice ? undefined : props.onDemandMaxTotalPrice),
3283
+ onDemandTargetCapacity: (!props.onDemandTargetCapacity ? undefined : props.onDemandTargetCapacity),
3284
+ replaceUnhealthyInstances: (!props.replaceUnhealthyInstances ? undefined : props.replaceUnhealthyInstances),
3285
+ spotMaintenanceStrategies: (!props.spotMaintenanceStrategies ? undefined : props.spotMaintenanceStrategies),
3286
+ spotMaxTotalPrice: (!props.spotMaxTotalPrice ? undefined : props.spotMaxTotalPrice),
3287
+ spotPrice: (!props.spotPrice ? undefined : props.spotPrice),
3288
+ tagSpecifications: (!props.tagSpecifications ? undefined : props.tagSpecifications),
3289
+ targetCapacity: (!props.targetCapacity ? undefined : props.targetCapacity),
3290
+ targetCapacityUnitType: (!props.targetCapacityUnitType ? undefined : props.targetCapacityUnitType),
3291
+ terminateInstancesWithExpiration: (!props.terminateInstancesWithExpiration ? undefined : props.terminateInstancesWithExpiration),
3292
+ type: (!props.type ? undefined : props.type),
3293
+ validFrom: (!props.validFrom ? undefined : props.validFrom),
3294
+ validUntil: (!props.validUntil ? undefined : props.validUntil)
3295
+ };
3296
+ }
3297
+ // @ts-ignore TS6133
3298
+ function flattenCfnSpotFleetMixinProps(props) {
3299
+ const ret = {};
3300
+ if ((props.spotFleetRequestConfigData !== undefined))
3301
+ ret.spotFleetRequestConfigData = flattenCfnSpotFleetPropsMixinSpotFleetRequestConfigDataProperty(props.spotFleetRequestConfigData);
3302
+ return ret;
3303
+ }
3037
3304
  /**
3038
3305
  * Specifies a subnet for the specified VPC.
3039
3306
  *
@@ -3046,8 +3313,8 @@ exports.CfnSpotFleetPropsMixin = CfnSpotFleetPropsMixin;
3046
3313
  * @stability external
3047
3314
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html
3048
3315
  */
3049
- class CfnSubnetPropsMixin extends core.Mixin {
3050
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetPropsMixin", version: "2.240.0-alpha.0" };
3316
+ class CfnSubnetPropsMixin extends cdk.Mixin {
3317
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetPropsMixin", version: "2.242.0-alpha.0" };
3051
3318
  static CFN_PROPERTY_KEYS = ["assignIpv6AddressOnCreation", "availabilityZone", "availabilityZoneId", "cidrBlock", "enableDns64", "enableLniAtDeviceIndex", "ipv4IpamPoolId", "ipv4NetmaskLength", "ipv6CidrBlock", "ipv6IpamPoolId", "ipv6Native", "ipv6NetmaskLength", "mapPublicIpOnLaunch", "outpostArn", "privateDnsNameOptionsOnLaunch", "tags", "vpcId"];
3052
3319
  props;
3053
3320
  strategy;
@@ -3069,8 +3336,11 @@ class CfnSubnetPropsMixin extends core.Mixin {
3069
3336
  }
3070
3337
  throw error;
3071
3338
  }
3072
- this.props = props;
3073
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3339
+ this.props = {
3340
+ ...props,
3341
+ ...flattenCfnSubnetMixinProps(props)
3342
+ };
3343
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3074
3344
  }
3075
3345
  /**
3076
3346
  * Check if this mixin supports the given construct
@@ -3083,16 +3353,18 @@ class CfnSubnetPropsMixin extends core.Mixin {
3083
3353
  */
3084
3354
  applyTo(construct) {
3085
3355
  if (this.supports(construct)) {
3086
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3087
- helpers.deepMerge(construct, this.props, CfnSubnetPropsMixin.CFN_PROPERTY_KEYS);
3088
- }
3089
- else {
3090
- helpers.shallowAssign(construct, this.props, CfnSubnetPropsMixin.CFN_PROPERTY_KEYS);
3091
- }
3356
+ this.strategy.apply(construct, this.props, CfnSubnetPropsMixin.CFN_PROPERTY_KEYS);
3092
3357
  }
3093
3358
  }
3094
3359
  }
3095
3360
  exports.CfnSubnetPropsMixin = CfnSubnetPropsMixin;
3361
+ // @ts-ignore TS6133
3362
+ function flattenCfnSubnetMixinProps(props) {
3363
+ const ret = {};
3364
+ if ((props.vpcId !== undefined))
3365
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
3366
+ return ret;
3367
+ }
3096
3368
  /**
3097
3369
  * Associates a CIDR block with your subnet.
3098
3370
  *
@@ -3103,8 +3375,8 @@ exports.CfnSubnetPropsMixin = CfnSubnetPropsMixin;
3103
3375
  * @stability external
3104
3376
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetcidrblock.html
3105
3377
  */
3106
- class CfnSubnetCidrBlockPropsMixin extends core.Mixin {
3107
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetCidrBlockPropsMixin", version: "2.240.0-alpha.0" };
3378
+ class CfnSubnetCidrBlockPropsMixin extends cdk.Mixin {
3379
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetCidrBlockPropsMixin", version: "2.242.0-alpha.0" };
3108
3380
  static CFN_PROPERTY_KEYS = ["ipv6CidrBlock", "ipv6IpamPoolId", "ipv6NetmaskLength", "subnetId"];
3109
3381
  props;
3110
3382
  strategy;
@@ -3126,8 +3398,11 @@ class CfnSubnetCidrBlockPropsMixin extends core.Mixin {
3126
3398
  }
3127
3399
  throw error;
3128
3400
  }
3129
- this.props = props;
3130
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3401
+ this.props = {
3402
+ ...props,
3403
+ ...flattenCfnSubnetCidrBlockMixinProps(props)
3404
+ };
3405
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3131
3406
  }
3132
3407
  /**
3133
3408
  * Check if this mixin supports the given construct
@@ -3140,16 +3415,18 @@ class CfnSubnetCidrBlockPropsMixin extends core.Mixin {
3140
3415
  */
3141
3416
  applyTo(construct) {
3142
3417
  if (this.supports(construct)) {
3143
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3144
- helpers.deepMerge(construct, this.props, CfnSubnetCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
3145
- }
3146
- else {
3147
- helpers.shallowAssign(construct, this.props, CfnSubnetCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
3148
- }
3418
+ this.strategy.apply(construct, this.props, CfnSubnetCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
3149
3419
  }
3150
3420
  }
3151
3421
  }
3152
3422
  exports.CfnSubnetCidrBlockPropsMixin = CfnSubnetCidrBlockPropsMixin;
3423
+ // @ts-ignore TS6133
3424
+ function flattenCfnSubnetCidrBlockMixinProps(props) {
3425
+ const ret = {};
3426
+ if ((props.subnetId !== undefined))
3427
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
3428
+ return ret;
3429
+ }
3153
3430
  /**
3154
3431
  * Associates a subnet with a network ACL. For more information, see [ReplaceNetworkAclAssociation](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-ReplaceNetworkAclAssociation.html) in the *Amazon EC2 API Reference* .
3155
3432
  *
@@ -3160,8 +3437,8 @@ exports.CfnSubnetCidrBlockPropsMixin = CfnSubnetCidrBlockPropsMixin;
3160
3437
  * @stability external
3161
3438
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetnetworkaclassociation.html
3162
3439
  */
3163
- class CfnSubnetNetworkAclAssociationPropsMixin extends core.Mixin {
3164
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetNetworkAclAssociationPropsMixin", version: "2.240.0-alpha.0" };
3440
+ class CfnSubnetNetworkAclAssociationPropsMixin extends cdk.Mixin {
3441
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetNetworkAclAssociationPropsMixin", version: "2.242.0-alpha.0" };
3165
3442
  static CFN_PROPERTY_KEYS = ["networkAclId", "subnetId"];
3166
3443
  props;
3167
3444
  strategy;
@@ -3183,8 +3460,11 @@ class CfnSubnetNetworkAclAssociationPropsMixin extends core.Mixin {
3183
3460
  }
3184
3461
  throw error;
3185
3462
  }
3186
- this.props = props;
3187
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3463
+ this.props = {
3464
+ ...props,
3465
+ ...flattenCfnSubnetNetworkAclAssociationMixinProps(props)
3466
+ };
3467
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3188
3468
  }
3189
3469
  /**
3190
3470
  * Check if this mixin supports the given construct
@@ -3197,16 +3477,20 @@ class CfnSubnetNetworkAclAssociationPropsMixin extends core.Mixin {
3197
3477
  */
3198
3478
  applyTo(construct) {
3199
3479
  if (this.supports(construct)) {
3200
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3201
- helpers.deepMerge(construct, this.props, CfnSubnetNetworkAclAssociationPropsMixin.CFN_PROPERTY_KEYS);
3202
- }
3203
- else {
3204
- helpers.shallowAssign(construct, this.props, CfnSubnetNetworkAclAssociationPropsMixin.CFN_PROPERTY_KEYS);
3205
- }
3480
+ this.strategy.apply(construct, this.props, CfnSubnetNetworkAclAssociationPropsMixin.CFN_PROPERTY_KEYS);
3206
3481
  }
3207
3482
  }
3208
3483
  }
3209
3484
  exports.CfnSubnetNetworkAclAssociationPropsMixin = CfnSubnetNetworkAclAssociationPropsMixin;
3485
+ // @ts-ignore TS6133
3486
+ function flattenCfnSubnetNetworkAclAssociationMixinProps(props) {
3487
+ const ret = {};
3488
+ if ((props.networkAclId !== undefined))
3489
+ ret.networkAclId = cdk.getRefProperty(props.networkAclId?.networkAclRef, 'networkAclId') ?? cdk.ensureStringOrUndefined(props.networkAclId, "networkAclId", "ec2.INetworkAclRef | string");
3490
+ if ((props.subnetId !== undefined))
3491
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
3492
+ return ret;
3493
+ }
3210
3494
  /**
3211
3495
  * Associates a subnet with a route table.
3212
3496
  *
@@ -3217,8 +3501,8 @@ exports.CfnSubnetNetworkAclAssociationPropsMixin = CfnSubnetNetworkAclAssociatio
3217
3501
  * @stability external
3218
3502
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnetroutetableassociation.html
3219
3503
  */
3220
- class CfnSubnetRouteTableAssociationPropsMixin extends core.Mixin {
3221
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetRouteTableAssociationPropsMixin", version: "2.240.0-alpha.0" };
3504
+ class CfnSubnetRouteTableAssociationPropsMixin extends cdk.Mixin {
3505
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSubnetRouteTableAssociationPropsMixin", version: "2.242.0-alpha.0" };
3222
3506
  static CFN_PROPERTY_KEYS = ["routeTableId", "subnetId"];
3223
3507
  props;
3224
3508
  strategy;
@@ -3240,8 +3524,11 @@ class CfnSubnetRouteTableAssociationPropsMixin extends core.Mixin {
3240
3524
  }
3241
3525
  throw error;
3242
3526
  }
3243
- this.props = props;
3244
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3527
+ this.props = {
3528
+ ...props,
3529
+ ...flattenCfnSubnetRouteTableAssociationMixinProps(props)
3530
+ };
3531
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3245
3532
  }
3246
3533
  /**
3247
3534
  * Check if this mixin supports the given construct
@@ -3254,16 +3541,20 @@ class CfnSubnetRouteTableAssociationPropsMixin extends core.Mixin {
3254
3541
  */
3255
3542
  applyTo(construct) {
3256
3543
  if (this.supports(construct)) {
3257
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3258
- helpers.deepMerge(construct, this.props, CfnSubnetRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
3259
- }
3260
- else {
3261
- helpers.shallowAssign(construct, this.props, CfnSubnetRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
3262
- }
3544
+ this.strategy.apply(construct, this.props, CfnSubnetRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
3263
3545
  }
3264
3546
  }
3265
3547
  }
3266
3548
  exports.CfnSubnetRouteTableAssociationPropsMixin = CfnSubnetRouteTableAssociationPropsMixin;
3549
+ // @ts-ignore TS6133
3550
+ function flattenCfnSubnetRouteTableAssociationMixinProps(props) {
3551
+ const ret = {};
3552
+ if ((props.routeTableId !== undefined))
3553
+ ret.routeTableId = cdk.getRefProperty(props.routeTableId?.routeTableRef, 'routeTableId') ?? cdk.ensureStringOrUndefined(props.routeTableId, "routeTableId", "ec2.IRouteTableRef | string");
3554
+ if ((props.subnetId !== undefined))
3555
+ ret.subnetId = cdk.getRefProperty(props.subnetId?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(props.subnetId, "subnetId", "ec2.ISubnetRef | string");
3556
+ return ret;
3557
+ }
3267
3558
  /**
3268
3559
  * Specifies a Traffic Mirror filter.
3269
3560
  *
@@ -3276,8 +3567,8 @@ exports.CfnSubnetRouteTableAssociationPropsMixin = CfnSubnetRouteTableAssociatio
3276
3567
  * @stability external
3277
3568
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilter.html
3278
3569
  */
3279
- class CfnTrafficMirrorFilterPropsMixin extends core.Mixin {
3280
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorFilterPropsMixin", version: "2.240.0-alpha.0" };
3570
+ class CfnTrafficMirrorFilterPropsMixin extends cdk.Mixin {
3571
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorFilterPropsMixin", version: "2.242.0-alpha.0" };
3281
3572
  static CFN_PROPERTY_KEYS = ["description", "networkServices", "tags"];
3282
3573
  props;
3283
3574
  strategy;
@@ -3300,7 +3591,7 @@ class CfnTrafficMirrorFilterPropsMixin extends core.Mixin {
3300
3591
  throw error;
3301
3592
  }
3302
3593
  this.props = props;
3303
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3594
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3304
3595
  }
3305
3596
  /**
3306
3597
  * Check if this mixin supports the given construct
@@ -3313,12 +3604,7 @@ class CfnTrafficMirrorFilterPropsMixin extends core.Mixin {
3313
3604
  */
3314
3605
  applyTo(construct) {
3315
3606
  if (this.supports(construct)) {
3316
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3317
- helpers.deepMerge(construct, this.props, CfnTrafficMirrorFilterPropsMixin.CFN_PROPERTY_KEYS);
3318
- }
3319
- else {
3320
- helpers.shallowAssign(construct, this.props, CfnTrafficMirrorFilterPropsMixin.CFN_PROPERTY_KEYS);
3321
- }
3607
+ this.strategy.apply(construct, this.props, CfnTrafficMirrorFilterPropsMixin.CFN_PROPERTY_KEYS);
3322
3608
  }
3323
3609
  }
3324
3610
  }
@@ -3335,8 +3621,8 @@ exports.CfnTrafficMirrorFilterPropsMixin = CfnTrafficMirrorFilterPropsMixin;
3335
3621
  * @stability external
3336
3622
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorfilterrule.html
3337
3623
  */
3338
- class CfnTrafficMirrorFilterRulePropsMixin extends core.Mixin {
3339
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorFilterRulePropsMixin", version: "2.240.0-alpha.0" };
3624
+ class CfnTrafficMirrorFilterRulePropsMixin extends cdk.Mixin {
3625
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorFilterRulePropsMixin", version: "2.242.0-alpha.0" };
3340
3626
  static CFN_PROPERTY_KEYS = ["description", "destinationCidrBlock", "destinationPortRange", "protocol", "ruleAction", "ruleNumber", "sourceCidrBlock", "sourcePortRange", "tags", "trafficDirection", "trafficMirrorFilterId"];
3341
3627
  props;
3342
3628
  strategy;
@@ -3359,7 +3645,7 @@ class CfnTrafficMirrorFilterRulePropsMixin extends core.Mixin {
3359
3645
  throw error;
3360
3646
  }
3361
3647
  this.props = props;
3362
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3648
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3363
3649
  }
3364
3650
  /**
3365
3651
  * Check if this mixin supports the given construct
@@ -3372,12 +3658,7 @@ class CfnTrafficMirrorFilterRulePropsMixin extends core.Mixin {
3372
3658
  */
3373
3659
  applyTo(construct) {
3374
3660
  if (this.supports(construct)) {
3375
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3376
- helpers.deepMerge(construct, this.props, CfnTrafficMirrorFilterRulePropsMixin.CFN_PROPERTY_KEYS);
3377
- }
3378
- else {
3379
- helpers.shallowAssign(construct, this.props, CfnTrafficMirrorFilterRulePropsMixin.CFN_PROPERTY_KEYS);
3380
- }
3661
+ this.strategy.apply(construct, this.props, CfnTrafficMirrorFilterRulePropsMixin.CFN_PROPERTY_KEYS);
3381
3662
  }
3382
3663
  }
3383
3664
  }
@@ -3396,8 +3677,8 @@ exports.CfnTrafficMirrorFilterRulePropsMixin = CfnTrafficMirrorFilterRulePropsMi
3396
3677
  * @stability external
3397
3678
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrorsession.html
3398
3679
  */
3399
- class CfnTrafficMirrorSessionPropsMixin extends core.Mixin {
3400
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorSessionPropsMixin", version: "2.240.0-alpha.0" };
3680
+ class CfnTrafficMirrorSessionPropsMixin extends cdk.Mixin {
3681
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorSessionPropsMixin", version: "2.242.0-alpha.0" };
3401
3682
  static CFN_PROPERTY_KEYS = ["description", "networkInterfaceId", "ownerId", "packetLength", "sessionNumber", "tags", "trafficMirrorFilterId", "trafficMirrorTargetId", "virtualNetworkId"];
3402
3683
  props;
3403
3684
  strategy;
@@ -3420,7 +3701,7 @@ class CfnTrafficMirrorSessionPropsMixin extends core.Mixin {
3420
3701
  throw error;
3421
3702
  }
3422
3703
  this.props = props;
3423
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3704
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3424
3705
  }
3425
3706
  /**
3426
3707
  * Check if this mixin supports the given construct
@@ -3433,12 +3714,7 @@ class CfnTrafficMirrorSessionPropsMixin extends core.Mixin {
3433
3714
  */
3434
3715
  applyTo(construct) {
3435
3716
  if (this.supports(construct)) {
3436
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3437
- helpers.deepMerge(construct, this.props, CfnTrafficMirrorSessionPropsMixin.CFN_PROPERTY_KEYS);
3438
- }
3439
- else {
3440
- helpers.shallowAssign(construct, this.props, CfnTrafficMirrorSessionPropsMixin.CFN_PROPERTY_KEYS);
3441
- }
3717
+ this.strategy.apply(construct, this.props, CfnTrafficMirrorSessionPropsMixin.CFN_PROPERTY_KEYS);
3442
3718
  }
3443
3719
  }
3444
3720
  }
@@ -3457,8 +3733,8 @@ exports.CfnTrafficMirrorSessionPropsMixin = CfnTrafficMirrorSessionPropsMixin;
3457
3733
  * @stability external
3458
3734
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-trafficmirrortarget.html
3459
3735
  */
3460
- class CfnTrafficMirrorTargetPropsMixin extends core.Mixin {
3461
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorTargetPropsMixin", version: "2.240.0-alpha.0" };
3736
+ class CfnTrafficMirrorTargetPropsMixin extends cdk.Mixin {
3737
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTrafficMirrorTargetPropsMixin", version: "2.242.0-alpha.0" };
3462
3738
  static CFN_PROPERTY_KEYS = ["description", "gatewayLoadBalancerEndpointId", "networkInterfaceId", "networkLoadBalancerArn", "tags"];
3463
3739
  props;
3464
3740
  strategy;
@@ -3481,7 +3757,7 @@ class CfnTrafficMirrorTargetPropsMixin extends core.Mixin {
3481
3757
  throw error;
3482
3758
  }
3483
3759
  this.props = props;
3484
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3760
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3485
3761
  }
3486
3762
  /**
3487
3763
  * Check if this mixin supports the given construct
@@ -3494,12 +3770,7 @@ class CfnTrafficMirrorTargetPropsMixin extends core.Mixin {
3494
3770
  */
3495
3771
  applyTo(construct) {
3496
3772
  if (this.supports(construct)) {
3497
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3498
- helpers.deepMerge(construct, this.props, CfnTrafficMirrorTargetPropsMixin.CFN_PROPERTY_KEYS);
3499
- }
3500
- else {
3501
- helpers.shallowAssign(construct, this.props, CfnTrafficMirrorTargetPropsMixin.CFN_PROPERTY_KEYS);
3502
- }
3773
+ this.strategy.apply(construct, this.props, CfnTrafficMirrorTargetPropsMixin.CFN_PROPERTY_KEYS);
3503
3774
  }
3504
3775
  }
3505
3776
  }
@@ -3522,8 +3793,8 @@ exports.CfnTrafficMirrorTargetPropsMixin = CfnTrafficMirrorTargetPropsMixin;
3522
3793
  * @stability external
3523
3794
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgateway.html
3524
3795
  */
3525
- class CfnTransitGatewayPropsMixin extends core.Mixin {
3526
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayPropsMixin", version: "2.240.0-alpha.0" };
3796
+ class CfnTransitGatewayPropsMixin extends cdk.Mixin {
3797
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayPropsMixin", version: "2.242.0-alpha.0" };
3527
3798
  static CFN_PROPERTY_KEYS = ["amazonSideAsn", "associationDefaultRouteTableId", "autoAcceptSharedAttachments", "defaultRouteTableAssociation", "defaultRouteTablePropagation", "description", "dnsSupport", "encryptionSupport", "multicastSupport", "propagationDefaultRouteTableId", "securityGroupReferencingSupport", "tags", "transitGatewayCidrBlocks", "vpnEcmpSupport"];
3528
3799
  props;
3529
3800
  strategy;
@@ -3546,7 +3817,7 @@ class CfnTransitGatewayPropsMixin extends core.Mixin {
3546
3817
  throw error;
3547
3818
  }
3548
3819
  this.props = props;
3549
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3820
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3550
3821
  }
3551
3822
  /**
3552
3823
  * Check if this mixin supports the given construct
@@ -3559,12 +3830,7 @@ class CfnTransitGatewayPropsMixin extends core.Mixin {
3559
3830
  */
3560
3831
  applyTo(construct) {
3561
3832
  if (this.supports(construct)) {
3562
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3563
- helpers.deepMerge(construct, this.props, CfnTransitGatewayPropsMixin.CFN_PROPERTY_KEYS);
3564
- }
3565
- else {
3566
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayPropsMixin.CFN_PROPERTY_KEYS);
3567
- }
3833
+ this.strategy.apply(construct, this.props, CfnTransitGatewayPropsMixin.CFN_PROPERTY_KEYS);
3568
3834
  }
3569
3835
  }
3570
3836
  }
@@ -3583,8 +3849,8 @@ exports.CfnTransitGatewayPropsMixin = CfnTransitGatewayPropsMixin;
3583
3849
  * @stability external
3584
3850
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayattachment.html
3585
3851
  */
3586
- class CfnTransitGatewayAttachmentPropsMixin extends core.Mixin {
3587
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayAttachmentPropsMixin", version: "2.240.0-alpha.0" };
3852
+ class CfnTransitGatewayAttachmentPropsMixin extends cdk.Mixin {
3853
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayAttachmentPropsMixin", version: "2.242.0-alpha.0" };
3588
3854
  static CFN_PROPERTY_KEYS = ["options", "subnetIds", "tags", "transitGatewayId", "vpcId"];
3589
3855
  props;
3590
3856
  strategy;
@@ -3606,8 +3872,11 @@ class CfnTransitGatewayAttachmentPropsMixin extends core.Mixin {
3606
3872
  }
3607
3873
  throw error;
3608
3874
  }
3609
- this.props = props;
3610
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3875
+ this.props = {
3876
+ ...props,
3877
+ ...flattenCfnTransitGatewayAttachmentMixinProps(props)
3878
+ };
3879
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3611
3880
  }
3612
3881
  /**
3613
3882
  * Check if this mixin supports the given construct
@@ -3620,16 +3889,22 @@ class CfnTransitGatewayAttachmentPropsMixin extends core.Mixin {
3620
3889
  */
3621
3890
  applyTo(construct) {
3622
3891
  if (this.supports(construct)) {
3623
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3624
- helpers.deepMerge(construct, this.props, CfnTransitGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3625
- }
3626
- else {
3627
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3628
- }
3892
+ this.strategy.apply(construct, this.props, CfnTransitGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3629
3893
  }
3630
3894
  }
3631
3895
  }
3632
3896
  exports.CfnTransitGatewayAttachmentPropsMixin = CfnTransitGatewayAttachmentPropsMixin;
3897
+ // @ts-ignore TS6133
3898
+ function flattenCfnTransitGatewayAttachmentMixinProps(props) {
3899
+ const ret = {};
3900
+ if ((props.subnetIds !== undefined))
3901
+ ret.subnetIds = cdk.mapArrayInPlace(props.subnetIds, (item) => cdk.getRefProperty(item?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(item, "subnetIds", "ec2.ISubnetRef | string"));
3902
+ if ((props.transitGatewayId !== undefined))
3903
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
3904
+ if ((props.vpcId !== undefined))
3905
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
3906
+ return ret;
3907
+ }
3633
3908
  /**
3634
3909
  * Creates a Connect attachment from a specified transit gateway attachment.
3635
3910
  *
@@ -3642,8 +3917,8 @@ exports.CfnTransitGatewayAttachmentPropsMixin = CfnTransitGatewayAttachmentProps
3642
3917
  * @stability external
3643
3918
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnect.html
3644
3919
  */
3645
- class CfnTransitGatewayConnectPropsMixin extends core.Mixin {
3646
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayConnectPropsMixin", version: "2.240.0-alpha.0" };
3920
+ class CfnTransitGatewayConnectPropsMixin extends cdk.Mixin {
3921
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayConnectPropsMixin", version: "2.242.0-alpha.0" };
3647
3922
  static CFN_PROPERTY_KEYS = ["options", "tags", "transportTransitGatewayAttachmentId"];
3648
3923
  props;
3649
3924
  strategy;
@@ -3665,8 +3940,11 @@ class CfnTransitGatewayConnectPropsMixin extends core.Mixin {
3665
3940
  }
3666
3941
  throw error;
3667
3942
  }
3668
- this.props = props;
3669
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
3943
+ this.props = {
3944
+ ...props,
3945
+ ...flattenCfnTransitGatewayConnectMixinProps(props)
3946
+ };
3947
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3670
3948
  }
3671
3949
  /**
3672
3950
  * Check if this mixin supports the given construct
@@ -3679,16 +3957,18 @@ class CfnTransitGatewayConnectPropsMixin extends core.Mixin {
3679
3957
  */
3680
3958
  applyTo(construct) {
3681
3959
  if (this.supports(construct)) {
3682
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3683
- helpers.deepMerge(construct, this.props, CfnTransitGatewayConnectPropsMixin.CFN_PROPERTY_KEYS);
3684
- }
3685
- else {
3686
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayConnectPropsMixin.CFN_PROPERTY_KEYS);
3687
- }
3960
+ this.strategy.apply(construct, this.props, CfnTransitGatewayConnectPropsMixin.CFN_PROPERTY_KEYS);
3688
3961
  }
3689
3962
  }
3690
3963
  }
3691
3964
  exports.CfnTransitGatewayConnectPropsMixin = CfnTransitGatewayConnectPropsMixin;
3965
+ // @ts-ignore TS6133
3966
+ function flattenCfnTransitGatewayConnectMixinProps(props) {
3967
+ const ret = {};
3968
+ if ((props.transportTransitGatewayAttachmentId !== undefined))
3969
+ ret.transportTransitGatewayAttachmentId = cdk.getRefProperty(props.transportTransitGatewayAttachmentId?.transitGatewayVpcAttachmentRef, 'transitGatewayVpcAttachmentId') ?? cdk.ensureStringOrUndefined(props.transportTransitGatewayAttachmentId, "transportTransitGatewayAttachmentId", "ec2.ITransitGatewayVpcAttachmentRef | string");
3970
+ return ret;
3971
+ }
3692
3972
  /**
3693
3973
  * Creates a multicast domain using the specified transit gateway.
3694
3974
  *
@@ -3699,8 +3979,8 @@ exports.CfnTransitGatewayConnectPropsMixin = CfnTransitGatewayConnectPropsMixin;
3699
3979
  * @stability external
3700
3980
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomain.html
3701
3981
  */
3702
- class CfnTransitGatewayMulticastDomainPropsMixin extends core.Mixin {
3703
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastDomainPropsMixin", version: "2.240.0-alpha.0" };
3982
+ class CfnTransitGatewayMulticastDomainPropsMixin extends cdk.Mixin {
3983
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastDomainPropsMixin", version: "2.242.0-alpha.0" };
3704
3984
  static CFN_PROPERTY_KEYS = ["options", "tags", "transitGatewayId"];
3705
3985
  props;
3706
3986
  strategy;
@@ -3723,7 +4003,7 @@ class CfnTransitGatewayMulticastDomainPropsMixin extends core.Mixin {
3723
4003
  throw error;
3724
4004
  }
3725
4005
  this.props = props;
3726
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4006
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3727
4007
  }
3728
4008
  /**
3729
4009
  * Check if this mixin supports the given construct
@@ -3736,12 +4016,7 @@ class CfnTransitGatewayMulticastDomainPropsMixin extends core.Mixin {
3736
4016
  */
3737
4017
  applyTo(construct) {
3738
4018
  if (this.supports(construct)) {
3739
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3740
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMulticastDomainPropsMixin.CFN_PROPERTY_KEYS);
3741
- }
3742
- else {
3743
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMulticastDomainPropsMixin.CFN_PROPERTY_KEYS);
3744
- }
4019
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMulticastDomainPropsMixin.CFN_PROPERTY_KEYS);
3745
4020
  }
3746
4021
  }
3747
4022
  }
@@ -3756,8 +4031,8 @@ exports.CfnTransitGatewayMulticastDomainPropsMixin = CfnTransitGatewayMulticastD
3756
4031
  * @stability external
3757
4032
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastdomainassociation.html
3758
4033
  */
3759
- class CfnTransitGatewayMulticastDomainAssociationPropsMixin extends core.Mixin {
3760
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastDomainAssociationPropsMixin", version: "2.240.0-alpha.0" };
4034
+ class CfnTransitGatewayMulticastDomainAssociationPropsMixin extends cdk.Mixin {
4035
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastDomainAssociationPropsMixin", version: "2.242.0-alpha.0" };
3761
4036
  static CFN_PROPERTY_KEYS = ["subnetId", "transitGatewayAttachmentId", "transitGatewayMulticastDomainId"];
3762
4037
  props;
3763
4038
  strategy;
@@ -3780,7 +4055,7 @@ class CfnTransitGatewayMulticastDomainAssociationPropsMixin extends core.Mixin {
3780
4055
  throw error;
3781
4056
  }
3782
4057
  this.props = props;
3783
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4058
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3784
4059
  }
3785
4060
  /**
3786
4061
  * Check if this mixin supports the given construct
@@ -3793,12 +4068,7 @@ class CfnTransitGatewayMulticastDomainAssociationPropsMixin extends core.Mixin {
3793
4068
  */
3794
4069
  applyTo(construct) {
3795
4070
  if (this.supports(construct)) {
3796
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3797
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMulticastDomainAssociationPropsMixin.CFN_PROPERTY_KEYS);
3798
- }
3799
- else {
3800
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMulticastDomainAssociationPropsMixin.CFN_PROPERTY_KEYS);
3801
- }
4071
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMulticastDomainAssociationPropsMixin.CFN_PROPERTY_KEYS);
3802
4072
  }
3803
4073
  }
3804
4074
  }
@@ -3813,8 +4083,8 @@ exports.CfnTransitGatewayMulticastDomainAssociationPropsMixin = CfnTransitGatewa
3813
4083
  * @stability external
3814
4084
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupmember.html
3815
4085
  */
3816
- class CfnTransitGatewayMulticastGroupMemberPropsMixin extends core.Mixin {
3817
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastGroupMemberPropsMixin", version: "2.240.0-alpha.0" };
4086
+ class CfnTransitGatewayMulticastGroupMemberPropsMixin extends cdk.Mixin {
4087
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastGroupMemberPropsMixin", version: "2.242.0-alpha.0" };
3818
4088
  static CFN_PROPERTY_KEYS = ["groupIpAddress", "networkInterfaceId", "transitGatewayMulticastDomainId"];
3819
4089
  props;
3820
4090
  strategy;
@@ -3837,7 +4107,7 @@ class CfnTransitGatewayMulticastGroupMemberPropsMixin extends core.Mixin {
3837
4107
  throw error;
3838
4108
  }
3839
4109
  this.props = props;
3840
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4110
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3841
4111
  }
3842
4112
  /**
3843
4113
  * Check if this mixin supports the given construct
@@ -3850,12 +4120,7 @@ class CfnTransitGatewayMulticastGroupMemberPropsMixin extends core.Mixin {
3850
4120
  */
3851
4121
  applyTo(construct) {
3852
4122
  if (this.supports(construct)) {
3853
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3854
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMulticastGroupMemberPropsMixin.CFN_PROPERTY_KEYS);
3855
- }
3856
- else {
3857
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMulticastGroupMemberPropsMixin.CFN_PROPERTY_KEYS);
3858
- }
4123
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMulticastGroupMemberPropsMixin.CFN_PROPERTY_KEYS);
3859
4124
  }
3860
4125
  }
3861
4126
  }
@@ -3870,8 +4135,8 @@ exports.CfnTransitGatewayMulticastGroupMemberPropsMixin = CfnTransitGatewayMulti
3870
4135
  * @stability external
3871
4136
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymulticastgroupsource.html
3872
4137
  */
3873
- class CfnTransitGatewayMulticastGroupSourcePropsMixin extends core.Mixin {
3874
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastGroupSourcePropsMixin", version: "2.240.0-alpha.0" };
4138
+ class CfnTransitGatewayMulticastGroupSourcePropsMixin extends cdk.Mixin {
4139
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMulticastGroupSourcePropsMixin", version: "2.242.0-alpha.0" };
3875
4140
  static CFN_PROPERTY_KEYS = ["groupIpAddress", "networkInterfaceId", "transitGatewayMulticastDomainId"];
3876
4141
  props;
3877
4142
  strategy;
@@ -3894,7 +4159,7 @@ class CfnTransitGatewayMulticastGroupSourcePropsMixin extends core.Mixin {
3894
4159
  throw error;
3895
4160
  }
3896
4161
  this.props = props;
3897
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4162
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3898
4163
  }
3899
4164
  /**
3900
4165
  * Check if this mixin supports the given construct
@@ -3907,12 +4172,7 @@ class CfnTransitGatewayMulticastGroupSourcePropsMixin extends core.Mixin {
3907
4172
  */
3908
4173
  applyTo(construct) {
3909
4174
  if (this.supports(construct)) {
3910
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3911
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMulticastGroupSourcePropsMixin.CFN_PROPERTY_KEYS);
3912
- }
3913
- else {
3914
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMulticastGroupSourcePropsMixin.CFN_PROPERTY_KEYS);
3915
- }
4175
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMulticastGroupSourcePropsMixin.CFN_PROPERTY_KEYS);
3916
4176
  }
3917
4177
  }
3918
4178
  }
@@ -3929,8 +4189,8 @@ exports.CfnTransitGatewayMulticastGroupSourcePropsMixin = CfnTransitGatewayMulti
3929
4189
  * @stability external
3930
4190
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaypeeringattachment.html
3931
4191
  */
3932
- class CfnTransitGatewayPeeringAttachmentPropsMixin extends core.Mixin {
3933
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayPeeringAttachmentPropsMixin", version: "2.240.0-alpha.0" };
4192
+ class CfnTransitGatewayPeeringAttachmentPropsMixin extends cdk.Mixin {
4193
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayPeeringAttachmentPropsMixin", version: "2.242.0-alpha.0" };
3934
4194
  static CFN_PROPERTY_KEYS = ["peerAccountId", "peerRegion", "peerTransitGatewayId", "tags", "transitGatewayId"];
3935
4195
  props;
3936
4196
  strategy;
@@ -3952,8 +4212,11 @@ class CfnTransitGatewayPeeringAttachmentPropsMixin extends core.Mixin {
3952
4212
  }
3953
4213
  throw error;
3954
4214
  }
3955
- this.props = props;
3956
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4215
+ this.props = {
4216
+ ...props,
4217
+ ...flattenCfnTransitGatewayPeeringAttachmentMixinProps(props)
4218
+ };
4219
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
3957
4220
  }
3958
4221
  /**
3959
4222
  * Check if this mixin supports the given construct
@@ -3966,16 +4229,18 @@ class CfnTransitGatewayPeeringAttachmentPropsMixin extends core.Mixin {
3966
4229
  */
3967
4230
  applyTo(construct) {
3968
4231
  if (this.supports(construct)) {
3969
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
3970
- helpers.deepMerge(construct, this.props, CfnTransitGatewayPeeringAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3971
- }
3972
- else {
3973
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayPeeringAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3974
- }
4232
+ this.strategy.apply(construct, this.props, CfnTransitGatewayPeeringAttachmentPropsMixin.CFN_PROPERTY_KEYS);
3975
4233
  }
3976
4234
  }
3977
4235
  }
3978
4236
  exports.CfnTransitGatewayPeeringAttachmentPropsMixin = CfnTransitGatewayPeeringAttachmentPropsMixin;
4237
+ // @ts-ignore TS6133
4238
+ function flattenCfnTransitGatewayPeeringAttachmentMixinProps(props) {
4239
+ const ret = {};
4240
+ if ((props.transitGatewayId !== undefined))
4241
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
4242
+ return ret;
4243
+ }
3979
4244
  /**
3980
4245
  * Specifies a static route for a transit gateway route table.
3981
4246
  *
@@ -3984,8 +4249,8 @@ exports.CfnTransitGatewayPeeringAttachmentPropsMixin = CfnTransitGatewayPeeringA
3984
4249
  * @stability external
3985
4250
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroute.html
3986
4251
  */
3987
- class CfnTransitGatewayRoutePropsMixin extends core.Mixin {
3988
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRoutePropsMixin", version: "2.240.0-alpha.0" };
4252
+ class CfnTransitGatewayRoutePropsMixin extends cdk.Mixin {
4253
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRoutePropsMixin", version: "2.242.0-alpha.0" };
3989
4254
  static CFN_PROPERTY_KEYS = ["blackhole", "destinationCidrBlock", "transitGatewayAttachmentId", "transitGatewayRouteTableId"];
3990
4255
  props;
3991
4256
  strategy;
@@ -4007,8 +4272,11 @@ class CfnTransitGatewayRoutePropsMixin extends core.Mixin {
4007
4272
  }
4008
4273
  throw error;
4009
4274
  }
4010
- this.props = props;
4011
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4275
+ this.props = {
4276
+ ...props,
4277
+ ...flattenCfnTransitGatewayRouteMixinProps(props)
4278
+ };
4279
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4012
4280
  }
4013
4281
  /**
4014
4282
  * Check if this mixin supports the given construct
@@ -4021,16 +4289,20 @@ class CfnTransitGatewayRoutePropsMixin extends core.Mixin {
4021
4289
  */
4022
4290
  applyTo(construct) {
4023
4291
  if (this.supports(construct)) {
4024
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4025
- helpers.deepMerge(construct, this.props, CfnTransitGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
4026
- }
4027
- else {
4028
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
4029
- }
4292
+ this.strategy.apply(construct, this.props, CfnTransitGatewayRoutePropsMixin.CFN_PROPERTY_KEYS);
4030
4293
  }
4031
4294
  }
4032
4295
  }
4033
4296
  exports.CfnTransitGatewayRoutePropsMixin = CfnTransitGatewayRoutePropsMixin;
4297
+ // @ts-ignore TS6133
4298
+ function flattenCfnTransitGatewayRouteMixinProps(props) {
4299
+ const ret = {};
4300
+ if ((props.transitGatewayAttachmentId !== undefined))
4301
+ ret.transitGatewayAttachmentId = cdk.getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef, 'transitGatewayAttachmentId') ?? cdk.getRefProperty(props.transitGatewayAttachmentId?.transitGatewayPeeringAttachmentRef, 'transitGatewayAttachmentId') ?? cdk.ensureStringOrUndefined(props.transitGatewayAttachmentId, "transitGatewayAttachmentId", "ec2.ITransitGatewayAttachmentRef | ec2.ITransitGatewayPeeringAttachmentRef | string");
4302
+ if ((props.transitGatewayRouteTableId !== undefined))
4303
+ ret.transitGatewayRouteTableId = cdk.getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef, 'transitGatewayRouteTableId') ?? cdk.ensureStringOrUndefined(props.transitGatewayRouteTableId, "transitGatewayRouteTableId", "ec2.ITransitGatewayRouteTableRef | string");
4304
+ return ret;
4305
+ }
4034
4306
  /**
4035
4307
  * Specifies a route table for a transit gateway.
4036
4308
  *
@@ -4039,8 +4311,8 @@ exports.CfnTransitGatewayRoutePropsMixin = CfnTransitGatewayRoutePropsMixin;
4039
4311
  * @stability external
4040
4312
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetable.html
4041
4313
  */
4042
- class CfnTransitGatewayRouteTablePropsMixin extends core.Mixin {
4043
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTablePropsMixin", version: "2.240.0-alpha.0" };
4314
+ class CfnTransitGatewayRouteTablePropsMixin extends cdk.Mixin {
4315
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTablePropsMixin", version: "2.242.0-alpha.0" };
4044
4316
  static CFN_PROPERTY_KEYS = ["tags", "transitGatewayId"];
4045
4317
  props;
4046
4318
  strategy;
@@ -4062,8 +4334,11 @@ class CfnTransitGatewayRouteTablePropsMixin extends core.Mixin {
4062
4334
  }
4063
4335
  throw error;
4064
4336
  }
4065
- this.props = props;
4066
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4337
+ this.props = {
4338
+ ...props,
4339
+ ...flattenCfnTransitGatewayRouteTableMixinProps(props)
4340
+ };
4341
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4067
4342
  }
4068
4343
  /**
4069
4344
  * Check if this mixin supports the given construct
@@ -4076,16 +4351,18 @@ class CfnTransitGatewayRouteTablePropsMixin extends core.Mixin {
4076
4351
  */
4077
4352
  applyTo(construct) {
4078
4353
  if (this.supports(construct)) {
4079
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4080
- helpers.deepMerge(construct, this.props, CfnTransitGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
4081
- }
4082
- else {
4083
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
4084
- }
4354
+ this.strategy.apply(construct, this.props, CfnTransitGatewayRouteTablePropsMixin.CFN_PROPERTY_KEYS);
4085
4355
  }
4086
4356
  }
4087
4357
  }
4088
4358
  exports.CfnTransitGatewayRouteTablePropsMixin = CfnTransitGatewayRouteTablePropsMixin;
4359
+ // @ts-ignore TS6133
4360
+ function flattenCfnTransitGatewayRouteTableMixinProps(props) {
4361
+ const ret = {};
4362
+ if ((props.transitGatewayId !== undefined))
4363
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
4364
+ return ret;
4365
+ }
4089
4366
  /**
4090
4367
  * Associates the specified attachment with the specified transit gateway route table.
4091
4368
  *
@@ -4098,8 +4375,8 @@ exports.CfnTransitGatewayRouteTablePropsMixin = CfnTransitGatewayRouteTableProps
4098
4375
  * @stability external
4099
4376
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetableassociation.html
4100
4377
  */
4101
- class CfnTransitGatewayRouteTableAssociationPropsMixin extends core.Mixin {
4102
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTableAssociationPropsMixin", version: "2.240.0-alpha.0" };
4378
+ class CfnTransitGatewayRouteTableAssociationPropsMixin extends cdk.Mixin {
4379
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTableAssociationPropsMixin", version: "2.242.0-alpha.0" };
4103
4380
  static CFN_PROPERTY_KEYS = ["transitGatewayAttachmentId", "transitGatewayRouteTableId"];
4104
4381
  props;
4105
4382
  strategy;
@@ -4121,8 +4398,11 @@ class CfnTransitGatewayRouteTableAssociationPropsMixin extends core.Mixin {
4121
4398
  }
4122
4399
  throw error;
4123
4400
  }
4124
- this.props = props;
4125
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4401
+ this.props = {
4402
+ ...props,
4403
+ ...flattenCfnTransitGatewayRouteTableAssociationMixinProps(props)
4404
+ };
4405
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4126
4406
  }
4127
4407
  /**
4128
4408
  * Check if this mixin supports the given construct
@@ -4135,16 +4415,20 @@ class CfnTransitGatewayRouteTableAssociationPropsMixin extends core.Mixin {
4135
4415
  */
4136
4416
  applyTo(construct) {
4137
4417
  if (this.supports(construct)) {
4138
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4139
- helpers.deepMerge(construct, this.props, CfnTransitGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
4140
- }
4141
- else {
4142
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
4143
- }
4418
+ this.strategy.apply(construct, this.props, CfnTransitGatewayRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
4144
4419
  }
4145
4420
  }
4146
4421
  }
4147
4422
  exports.CfnTransitGatewayRouteTableAssociationPropsMixin = CfnTransitGatewayRouteTableAssociationPropsMixin;
4423
+ // @ts-ignore TS6133
4424
+ function flattenCfnTransitGatewayRouteTableAssociationMixinProps(props) {
4425
+ const ret = {};
4426
+ if ((props.transitGatewayAttachmentId !== undefined))
4427
+ ret.transitGatewayAttachmentId = cdk.getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef, 'transitGatewayAttachmentId') ?? cdk.ensureStringOrUndefined(props.transitGatewayAttachmentId, "transitGatewayAttachmentId", "ec2.ITransitGatewayAttachmentRef | string");
4428
+ if ((props.transitGatewayRouteTableId !== undefined))
4429
+ ret.transitGatewayRouteTableId = cdk.getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef, 'transitGatewayRouteTableId') ?? cdk.ensureStringOrUndefined(props.transitGatewayRouteTableId, "transitGatewayRouteTableId", "ec2.ITransitGatewayRouteTableRef | string");
4430
+ return ret;
4431
+ }
4148
4432
  /**
4149
4433
  * Enables the specified attachment to propagate routes to the specified propagation route table.
4150
4434
  *
@@ -4155,8 +4439,8 @@ exports.CfnTransitGatewayRouteTableAssociationPropsMixin = CfnTransitGatewayRout
4155
4439
  * @stability external
4156
4440
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayroutetablepropagation.html
4157
4441
  */
4158
- class CfnTransitGatewayRouteTablePropagationPropsMixin extends core.Mixin {
4159
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTablePropagationPropsMixin", version: "2.240.0-alpha.0" };
4442
+ class CfnTransitGatewayRouteTablePropagationPropsMixin extends cdk.Mixin {
4443
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayRouteTablePropagationPropsMixin", version: "2.242.0-alpha.0" };
4160
4444
  static CFN_PROPERTY_KEYS = ["transitGatewayAttachmentId", "transitGatewayRouteTableId"];
4161
4445
  props;
4162
4446
  strategy;
@@ -4178,8 +4462,11 @@ class CfnTransitGatewayRouteTablePropagationPropsMixin extends core.Mixin {
4178
4462
  }
4179
4463
  throw error;
4180
4464
  }
4181
- this.props = props;
4182
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4465
+ this.props = {
4466
+ ...props,
4467
+ ...flattenCfnTransitGatewayRouteTablePropagationMixinProps(props)
4468
+ };
4469
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4183
4470
  }
4184
4471
  /**
4185
4472
  * Check if this mixin supports the given construct
@@ -4192,16 +4479,20 @@ class CfnTransitGatewayRouteTablePropagationPropsMixin extends core.Mixin {
4192
4479
  */
4193
4480
  applyTo(construct) {
4194
4481
  if (this.supports(construct)) {
4195
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4196
- helpers.deepMerge(construct, this.props, CfnTransitGatewayRouteTablePropagationPropsMixin.CFN_PROPERTY_KEYS);
4197
- }
4198
- else {
4199
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayRouteTablePropagationPropsMixin.CFN_PROPERTY_KEYS);
4200
- }
4482
+ this.strategy.apply(construct, this.props, CfnTransitGatewayRouteTablePropagationPropsMixin.CFN_PROPERTY_KEYS);
4201
4483
  }
4202
4484
  }
4203
4485
  }
4204
4486
  exports.CfnTransitGatewayRouteTablePropagationPropsMixin = CfnTransitGatewayRouteTablePropagationPropsMixin;
4487
+ // @ts-ignore TS6133
4488
+ function flattenCfnTransitGatewayRouteTablePropagationMixinProps(props) {
4489
+ const ret = {};
4490
+ if ((props.transitGatewayAttachmentId !== undefined))
4491
+ ret.transitGatewayAttachmentId = cdk.getRefProperty(props.transitGatewayAttachmentId?.transitGatewayAttachmentRef, 'transitGatewayAttachmentId') ?? cdk.ensureStringOrUndefined(props.transitGatewayAttachmentId, "transitGatewayAttachmentId", "ec2.ITransitGatewayAttachmentRef | string");
4492
+ if ((props.transitGatewayRouteTableId !== undefined))
4493
+ ret.transitGatewayRouteTableId = cdk.getRefProperty(props.transitGatewayRouteTableId?.transitGatewayRouteTableRef, 'transitGatewayRouteTableId') ?? cdk.ensureStringOrUndefined(props.transitGatewayRouteTableId, "transitGatewayRouteTableId", "ec2.ITransitGatewayRouteTableRef | string");
4494
+ return ret;
4495
+ }
4205
4496
  /**
4206
4497
  * Specifies a VPC attachment.
4207
4498
  *
@@ -4210,8 +4501,8 @@ exports.CfnTransitGatewayRouteTablePropagationPropsMixin = CfnTransitGatewayRout
4210
4501
  * @stability external
4211
4502
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayvpcattachment.html
4212
4503
  */
4213
- class CfnTransitGatewayVpcAttachmentPropsMixin extends core.Mixin {
4214
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayVpcAttachmentPropsMixin", version: "2.240.0-alpha.0" };
4504
+ class CfnTransitGatewayVpcAttachmentPropsMixin extends cdk.Mixin {
4505
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayVpcAttachmentPropsMixin", version: "2.242.0-alpha.0" };
4215
4506
  static CFN_PROPERTY_KEYS = ["addSubnetIds", "options", "removeSubnetIds", "subnetIds", "tags", "transitGatewayId", "vpcId"];
4216
4507
  props;
4217
4508
  strategy;
@@ -4233,8 +4524,11 @@ class CfnTransitGatewayVpcAttachmentPropsMixin extends core.Mixin {
4233
4524
  }
4234
4525
  throw error;
4235
4526
  }
4236
- this.props = props;
4237
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4527
+ this.props = {
4528
+ ...props,
4529
+ ...flattenCfnTransitGatewayVpcAttachmentMixinProps(props)
4530
+ };
4531
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4238
4532
  }
4239
4533
  /**
4240
4534
  * Check if this mixin supports the given construct
@@ -4247,16 +4541,18 @@ class CfnTransitGatewayVpcAttachmentPropsMixin extends core.Mixin {
4247
4541
  */
4248
4542
  applyTo(construct) {
4249
4543
  if (this.supports(construct)) {
4250
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4251
- helpers.deepMerge(construct, this.props, CfnTransitGatewayVpcAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4252
- }
4253
- else {
4254
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayVpcAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4255
- }
4544
+ this.strategy.apply(construct, this.props, CfnTransitGatewayVpcAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4256
4545
  }
4257
4546
  }
4258
4547
  }
4259
4548
  exports.CfnTransitGatewayVpcAttachmentPropsMixin = CfnTransitGatewayVpcAttachmentPropsMixin;
4549
+ // @ts-ignore TS6133
4550
+ function flattenCfnTransitGatewayVpcAttachmentMixinProps(props) {
4551
+ const ret = {};
4552
+ if ((props.transitGatewayId !== undefined))
4553
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
4554
+ return ret;
4555
+ }
4260
4556
  /**
4261
4557
  * Specifies a virtual private cloud (VPC).
4262
4558
  *
@@ -4269,8 +4565,8 @@ exports.CfnTransitGatewayVpcAttachmentPropsMixin = CfnTransitGatewayVpcAttachmen
4269
4565
  * @stability external
4270
4566
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html
4271
4567
  */
4272
- class CfnVPCPropsMixin extends core.Mixin {
4273
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCPropsMixin", version: "2.240.0-alpha.0" };
4568
+ class CfnVPCPropsMixin extends cdk.Mixin {
4569
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCPropsMixin", version: "2.242.0-alpha.0" };
4274
4570
  static CFN_PROPERTY_KEYS = ["cidrBlock", "enableDnsHostnames", "enableDnsSupport", "instanceTenancy", "ipv4IpamPoolId", "ipv4NetmaskLength", "tags"];
4275
4571
  props;
4276
4572
  strategy;
@@ -4293,7 +4589,7 @@ class CfnVPCPropsMixin extends core.Mixin {
4293
4589
  throw error;
4294
4590
  }
4295
4591
  this.props = props;
4296
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4592
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4297
4593
  }
4298
4594
  /**
4299
4595
  * Check if this mixin supports the given construct
@@ -4306,12 +4602,7 @@ class CfnVPCPropsMixin extends core.Mixin {
4306
4602
  */
4307
4603
  applyTo(construct) {
4308
4604
  if (this.supports(construct)) {
4309
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4310
- helpers.deepMerge(construct, this.props, CfnVPCPropsMixin.CFN_PROPERTY_KEYS);
4311
- }
4312
- else {
4313
- helpers.shallowAssign(construct, this.props, CfnVPCPropsMixin.CFN_PROPERTY_KEYS);
4314
- }
4605
+ this.strategy.apply(construct, this.props, CfnVPCPropsMixin.CFN_PROPERTY_KEYS);
4315
4606
  }
4316
4607
  }
4317
4608
  }
@@ -4328,8 +4619,8 @@ exports.CfnVPCPropsMixin = CfnVPCPropsMixin;
4328
4619
  * @stability external
4329
4620
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpccidrblock.html
4330
4621
  */
4331
- class CfnVPCCidrBlockPropsMixin extends core.Mixin {
4332
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCCidrBlockPropsMixin", version: "2.240.0-alpha.0" };
4622
+ class CfnVPCCidrBlockPropsMixin extends cdk.Mixin {
4623
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCCidrBlockPropsMixin", version: "2.242.0-alpha.0" };
4333
4624
  static CFN_PROPERTY_KEYS = ["amazonProvidedIpv6CidrBlock", "cidrBlock", "ipv4IpamPoolId", "ipv4NetmaskLength", "ipv6CidrBlock", "ipv6CidrBlockNetworkBorderGroup", "ipv6IpamPoolId", "ipv6NetmaskLength", "ipv6Pool", "vpcId"];
4334
4625
  props;
4335
4626
  strategy;
@@ -4351,8 +4642,11 @@ class CfnVPCCidrBlockPropsMixin extends core.Mixin {
4351
4642
  }
4352
4643
  throw error;
4353
4644
  }
4354
- this.props = props;
4355
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4645
+ this.props = {
4646
+ ...props,
4647
+ ...flattenCfnVPCCidrBlockMixinProps(props)
4648
+ };
4649
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4356
4650
  }
4357
4651
  /**
4358
4652
  * Check if this mixin supports the given construct
@@ -4365,16 +4659,18 @@ class CfnVPCCidrBlockPropsMixin extends core.Mixin {
4365
4659
  */
4366
4660
  applyTo(construct) {
4367
4661
  if (this.supports(construct)) {
4368
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4369
- helpers.deepMerge(construct, this.props, CfnVPCCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
4370
- }
4371
- else {
4372
- helpers.shallowAssign(construct, this.props, CfnVPCCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
4373
- }
4662
+ this.strategy.apply(construct, this.props, CfnVPCCidrBlockPropsMixin.CFN_PROPERTY_KEYS);
4374
4663
  }
4375
4664
  }
4376
4665
  }
4377
4666
  exports.CfnVPCCidrBlockPropsMixin = CfnVPCCidrBlockPropsMixin;
4667
+ // @ts-ignore TS6133
4668
+ function flattenCfnVPCCidrBlockMixinProps(props) {
4669
+ const ret = {};
4670
+ if ((props.vpcId !== undefined))
4671
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
4672
+ return ret;
4673
+ }
4378
4674
  /**
4379
4675
  * Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC.
4380
4676
  *
@@ -4385,8 +4681,8 @@ exports.CfnVPCCidrBlockPropsMixin = CfnVPCCidrBlockPropsMixin;
4385
4681
  * @stability external
4386
4682
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcdhcpoptionsassociation.html
4387
4683
  */
4388
- class CfnVPCDHCPOptionsAssociationPropsMixin extends core.Mixin {
4389
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCDHCPOptionsAssociationPropsMixin", version: "2.240.0-alpha.0" };
4684
+ class CfnVPCDHCPOptionsAssociationPropsMixin extends cdk.Mixin {
4685
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCDHCPOptionsAssociationPropsMixin", version: "2.242.0-alpha.0" };
4390
4686
  static CFN_PROPERTY_KEYS = ["dhcpOptionsId", "vpcId"];
4391
4687
  props;
4392
4688
  strategy;
@@ -4408,8 +4704,11 @@ class CfnVPCDHCPOptionsAssociationPropsMixin extends core.Mixin {
4408
4704
  }
4409
4705
  throw error;
4410
4706
  }
4411
- this.props = props;
4412
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4707
+ this.props = {
4708
+ ...props,
4709
+ ...flattenCfnVPCDHCPOptionsAssociationMixinProps(props)
4710
+ };
4711
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4413
4712
  }
4414
4713
  /**
4415
4714
  * Check if this mixin supports the given construct
@@ -4422,16 +4721,20 @@ class CfnVPCDHCPOptionsAssociationPropsMixin extends core.Mixin {
4422
4721
  */
4423
4722
  applyTo(construct) {
4424
4723
  if (this.supports(construct)) {
4425
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4426
- helpers.deepMerge(construct, this.props, CfnVPCDHCPOptionsAssociationPropsMixin.CFN_PROPERTY_KEYS);
4427
- }
4428
- else {
4429
- helpers.shallowAssign(construct, this.props, CfnVPCDHCPOptionsAssociationPropsMixin.CFN_PROPERTY_KEYS);
4430
- }
4724
+ this.strategy.apply(construct, this.props, CfnVPCDHCPOptionsAssociationPropsMixin.CFN_PROPERTY_KEYS);
4431
4725
  }
4432
4726
  }
4433
4727
  }
4434
4728
  exports.CfnVPCDHCPOptionsAssociationPropsMixin = CfnVPCDHCPOptionsAssociationPropsMixin;
4729
+ // @ts-ignore TS6133
4730
+ function flattenCfnVPCDHCPOptionsAssociationMixinProps(props) {
4731
+ const ret = {};
4732
+ if ((props.dhcpOptionsId !== undefined))
4733
+ ret.dhcpOptionsId = cdk.getRefProperty(props.dhcpOptionsId?.dhcpOptionsRef, 'dhcpOptionsId') ?? cdk.ensureStringOrUndefined(props.dhcpOptionsId, "dhcpOptionsId", "ec2.IDHCPOptionsRef | string");
4734
+ if ((props.vpcId !== undefined))
4735
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
4736
+ return ret;
4737
+ }
4435
4738
  /**
4436
4739
  * Specifies a VPC endpoint.
4437
4740
  *
@@ -4448,8 +4751,8 @@ exports.CfnVPCDHCPOptionsAssociationPropsMixin = CfnVPCDHCPOptionsAssociationPro
4448
4751
  * @stability external
4449
4752
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpoint.html
4450
4753
  */
4451
- class CfnVPCEndpointPropsMixin extends core.Mixin {
4452
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointPropsMixin", version: "2.240.0-alpha.0" };
4754
+ class CfnVPCEndpointPropsMixin extends cdk.Mixin {
4755
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointPropsMixin", version: "2.242.0-alpha.0" };
4453
4756
  static CFN_PROPERTY_KEYS = ["dnsOptions", "ipAddressType", "policyDocument", "privateDnsEnabled", "resourceConfigurationArn", "routeTableIds", "securityGroupIds", "serviceName", "serviceNetworkArn", "serviceRegion", "subnetIds", "tags", "vpcEndpointType", "vpcId"];
4454
4757
  props;
4455
4758
  strategy;
@@ -4471,8 +4774,11 @@ class CfnVPCEndpointPropsMixin extends core.Mixin {
4471
4774
  }
4472
4775
  throw error;
4473
4776
  }
4474
- this.props = props;
4475
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4777
+ this.props = {
4778
+ ...props,
4779
+ ...flattenCfnVPCEndpointMixinProps(props)
4780
+ };
4781
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4476
4782
  }
4477
4783
  /**
4478
4784
  * Check if this mixin supports the given construct
@@ -4485,16 +4791,24 @@ class CfnVPCEndpointPropsMixin extends core.Mixin {
4485
4791
  */
4486
4792
  applyTo(construct) {
4487
4793
  if (this.supports(construct)) {
4488
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4489
- helpers.deepMerge(construct, this.props, CfnVPCEndpointPropsMixin.CFN_PROPERTY_KEYS);
4490
- }
4491
- else {
4492
- helpers.shallowAssign(construct, this.props, CfnVPCEndpointPropsMixin.CFN_PROPERTY_KEYS);
4493
- }
4794
+ this.strategy.apply(construct, this.props, CfnVPCEndpointPropsMixin.CFN_PROPERTY_KEYS);
4494
4795
  }
4495
4796
  }
4496
4797
  }
4497
4798
  exports.CfnVPCEndpointPropsMixin = CfnVPCEndpointPropsMixin;
4799
+ // @ts-ignore TS6133
4800
+ function flattenCfnVPCEndpointMixinProps(props) {
4801
+ const ret = {};
4802
+ if ((props.routeTableIds !== undefined))
4803
+ ret.routeTableIds = cdk.mapArrayInPlace(props.routeTableIds, (item) => cdk.getRefProperty(item?.routeTableRef, 'routeTableId') ?? cdk.ensureStringOrUndefined(item, "routeTableIds", "ec2.IRouteTableRef | string"));
4804
+ if ((props.securityGroupIds !== undefined))
4805
+ ret.securityGroupIds = cdk.mapArrayInPlace(props.securityGroupIds, (item) => cdk.getRefProperty(item?.securityGroupRef, 'securityGroupId') ?? cdk.ensureStringOrUndefined(item, "securityGroupIds", "ec2.ISecurityGroupRef | string"));
4806
+ if ((props.subnetIds !== undefined))
4807
+ ret.subnetIds = cdk.mapArrayInPlace(props.subnetIds, (item) => cdk.getRefProperty(item?.subnetRef, 'subnetId') ?? cdk.ensureStringOrUndefined(item, "subnetIds", "ec2.ISubnetRef | string"));
4808
+ if ((props.vpcId !== undefined))
4809
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
4810
+ return ret;
4811
+ }
4498
4812
  /**
4499
4813
  * Specifies a connection notification for a VPC endpoint or VPC endpoint service.
4500
4814
  *
@@ -4507,8 +4821,8 @@ exports.CfnVPCEndpointPropsMixin = CfnVPCEndpointPropsMixin;
4507
4821
  * @stability external
4508
4822
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html
4509
4823
  */
4510
- class CfnVPCEndpointConnectionNotificationPropsMixin extends core.Mixin {
4511
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointConnectionNotificationPropsMixin", version: "2.240.0-alpha.0" };
4824
+ class CfnVPCEndpointConnectionNotificationPropsMixin extends cdk.Mixin {
4825
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointConnectionNotificationPropsMixin", version: "2.242.0-alpha.0" };
4512
4826
  static CFN_PROPERTY_KEYS = ["connectionEvents", "connectionNotificationArn", "serviceId", "vpcEndpointId"];
4513
4827
  props;
4514
4828
  strategy;
@@ -4530,8 +4844,11 @@ class CfnVPCEndpointConnectionNotificationPropsMixin extends core.Mixin {
4530
4844
  }
4531
4845
  throw error;
4532
4846
  }
4533
- this.props = props;
4534
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4847
+ this.props = {
4848
+ ...props,
4849
+ ...flattenCfnVPCEndpointConnectionNotificationMixinProps(props)
4850
+ };
4851
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4535
4852
  }
4536
4853
  /**
4537
4854
  * Check if this mixin supports the given construct
@@ -4544,16 +4861,20 @@ class CfnVPCEndpointConnectionNotificationPropsMixin extends core.Mixin {
4544
4861
  */
4545
4862
  applyTo(construct) {
4546
4863
  if (this.supports(construct)) {
4547
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4548
- helpers.deepMerge(construct, this.props, CfnVPCEndpointConnectionNotificationPropsMixin.CFN_PROPERTY_KEYS);
4549
- }
4550
- else {
4551
- helpers.shallowAssign(construct, this.props, CfnVPCEndpointConnectionNotificationPropsMixin.CFN_PROPERTY_KEYS);
4552
- }
4864
+ this.strategy.apply(construct, this.props, CfnVPCEndpointConnectionNotificationPropsMixin.CFN_PROPERTY_KEYS);
4553
4865
  }
4554
4866
  }
4555
4867
  }
4556
4868
  exports.CfnVPCEndpointConnectionNotificationPropsMixin = CfnVPCEndpointConnectionNotificationPropsMixin;
4869
+ // @ts-ignore TS6133
4870
+ function flattenCfnVPCEndpointConnectionNotificationMixinProps(props) {
4871
+ const ret = {};
4872
+ if ((props.connectionNotificationArn !== undefined))
4873
+ ret.connectionNotificationArn = cdk.getRefProperty(props.connectionNotificationArn?.topicRef, 'topicArn') ?? cdk.ensureStringOrUndefined(props.connectionNotificationArn, "connectionNotificationArn", "sns.ITopicRef | string");
4874
+ if ((props.serviceId !== undefined))
4875
+ ret.serviceId = cdk.getRefProperty(props.serviceId?.vpcEndpointServiceRef, 'serviceId') ?? cdk.ensureStringOrUndefined(props.serviceId, "serviceId", "ec2.IVPCEndpointServiceRef | string");
4876
+ return ret;
4877
+ }
4557
4878
  /**
4558
4879
  * Creates a VPC endpoint service configuration to which service consumers ( AWS accounts, users, and IAM roles) can connect.
4559
4880
  *
@@ -4569,8 +4890,8 @@ exports.CfnVPCEndpointConnectionNotificationPropsMixin = CfnVPCEndpointConnectio
4569
4890
  * @stability external
4570
4891
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html
4571
4892
  */
4572
- class CfnVPCEndpointServicePropsMixin extends core.Mixin {
4573
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointServicePropsMixin", version: "2.240.0-alpha.0" };
4893
+ class CfnVPCEndpointServicePropsMixin extends cdk.Mixin {
4894
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointServicePropsMixin", version: "2.242.0-alpha.0" };
4574
4895
  static CFN_PROPERTY_KEYS = ["acceptanceRequired", "contributorInsightsEnabled", "gatewayLoadBalancerArns", "networkLoadBalancerArns", "payerResponsibility", "supportedIpAddressTypes", "supportedRegions", "tags"];
4575
4896
  props;
4576
4897
  strategy;
@@ -4592,8 +4913,11 @@ class CfnVPCEndpointServicePropsMixin extends core.Mixin {
4592
4913
  }
4593
4914
  throw error;
4594
4915
  }
4595
- this.props = props;
4596
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4916
+ this.props = {
4917
+ ...props,
4918
+ ...flattenCfnVPCEndpointServiceMixinProps(props)
4919
+ };
4920
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4597
4921
  }
4598
4922
  /**
4599
4923
  * Check if this mixin supports the given construct
@@ -4606,16 +4930,18 @@ class CfnVPCEndpointServicePropsMixin extends core.Mixin {
4606
4930
  */
4607
4931
  applyTo(construct) {
4608
4932
  if (this.supports(construct)) {
4609
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4610
- helpers.deepMerge(construct, this.props, CfnVPCEndpointServicePropsMixin.CFN_PROPERTY_KEYS);
4611
- }
4612
- else {
4613
- helpers.shallowAssign(construct, this.props, CfnVPCEndpointServicePropsMixin.CFN_PROPERTY_KEYS);
4614
- }
4933
+ this.strategy.apply(construct, this.props, CfnVPCEndpointServicePropsMixin.CFN_PROPERTY_KEYS);
4615
4934
  }
4616
4935
  }
4617
4936
  }
4618
4937
  exports.CfnVPCEndpointServicePropsMixin = CfnVPCEndpointServicePropsMixin;
4938
+ // @ts-ignore TS6133
4939
+ function flattenCfnVPCEndpointServiceMixinProps(props) {
4940
+ const ret = {};
4941
+ if ((props.networkLoadBalancerArns !== undefined))
4942
+ ret.networkLoadBalancerArns = cdk.mapArrayInPlace(props.networkLoadBalancerArns, (item) => cdk.getRefProperty(item?.loadBalancerRef, 'loadBalancerArn') ?? cdk.ensureStringOrUndefined(item, "networkLoadBalancerArns", "elasticloadbalancingv2.ILoadBalancerRef | string"));
4943
+ return ret;
4944
+ }
4619
4945
  /**
4620
4946
  * Grant or revoke permissions for service consumers (users, IAM roles, and AWS accounts) to connect to a VPC endpoint service.
4621
4947
  *
@@ -4626,8 +4952,8 @@ exports.CfnVPCEndpointServicePropsMixin = CfnVPCEndpointServicePropsMixin;
4626
4952
  * @stability external
4627
4953
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservicepermissions.html
4628
4954
  */
4629
- class CfnVPCEndpointServicePermissionsPropsMixin extends core.Mixin {
4630
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointServicePermissionsPropsMixin", version: "2.240.0-alpha.0" };
4955
+ class CfnVPCEndpointServicePermissionsPropsMixin extends cdk.Mixin {
4956
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEndpointServicePermissionsPropsMixin", version: "2.242.0-alpha.0" };
4631
4957
  static CFN_PROPERTY_KEYS = ["allowedPrincipals", "serviceId"];
4632
4958
  props;
4633
4959
  strategy;
@@ -4649,8 +4975,11 @@ class CfnVPCEndpointServicePermissionsPropsMixin extends core.Mixin {
4649
4975
  }
4650
4976
  throw error;
4651
4977
  }
4652
- this.props = props;
4653
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
4978
+ this.props = {
4979
+ ...props,
4980
+ ...flattenCfnVPCEndpointServicePermissionsMixinProps(props)
4981
+ };
4982
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4654
4983
  }
4655
4984
  /**
4656
4985
  * Check if this mixin supports the given construct
@@ -4663,16 +4992,18 @@ class CfnVPCEndpointServicePermissionsPropsMixin extends core.Mixin {
4663
4992
  */
4664
4993
  applyTo(construct) {
4665
4994
  if (this.supports(construct)) {
4666
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4667
- helpers.deepMerge(construct, this.props, CfnVPCEndpointServicePermissionsPropsMixin.CFN_PROPERTY_KEYS);
4668
- }
4669
- else {
4670
- helpers.shallowAssign(construct, this.props, CfnVPCEndpointServicePermissionsPropsMixin.CFN_PROPERTY_KEYS);
4671
- }
4995
+ this.strategy.apply(construct, this.props, CfnVPCEndpointServicePermissionsPropsMixin.CFN_PROPERTY_KEYS);
4672
4996
  }
4673
4997
  }
4674
4998
  }
4675
4999
  exports.CfnVPCEndpointServicePermissionsPropsMixin = CfnVPCEndpointServicePermissionsPropsMixin;
5000
+ // @ts-ignore TS6133
5001
+ function flattenCfnVPCEndpointServicePermissionsMixinProps(props) {
5002
+ const ret = {};
5003
+ if ((props.serviceId !== undefined))
5004
+ ret.serviceId = cdk.getRefProperty(props.serviceId?.vpcEndpointServiceRef, 'serviceId') ?? cdk.ensureStringOrUndefined(props.serviceId, "serviceId", "ec2.IVPCEndpointServiceRef | string");
5005
+ return ret;
5006
+ }
4676
5007
  /**
4677
5008
  * Attaches an internet gateway, or a virtual private gateway to a VPC, enabling connectivity between the internet and the VPC.
4678
5009
  *
@@ -4681,8 +5012,8 @@ exports.CfnVPCEndpointServicePermissionsPropsMixin = CfnVPCEndpointServicePermis
4681
5012
  * @stability external
4682
5013
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcgatewayattachment.html
4683
5014
  */
4684
- class CfnVPCGatewayAttachmentPropsMixin extends core.Mixin {
4685
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCGatewayAttachmentPropsMixin", version: "2.240.0-alpha.0" };
5015
+ class CfnVPCGatewayAttachmentPropsMixin extends cdk.Mixin {
5016
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCGatewayAttachmentPropsMixin", version: "2.242.0-alpha.0" };
4686
5017
  static CFN_PROPERTY_KEYS = ["internetGatewayId", "vpcId", "vpnGatewayId"];
4687
5018
  props;
4688
5019
  strategy;
@@ -4704,8 +5035,11 @@ class CfnVPCGatewayAttachmentPropsMixin extends core.Mixin {
4704
5035
  }
4705
5036
  throw error;
4706
5037
  }
4707
- this.props = props;
4708
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5038
+ this.props = {
5039
+ ...props,
5040
+ ...flattenCfnVPCGatewayAttachmentMixinProps(props)
5041
+ };
5042
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4709
5043
  }
4710
5044
  /**
4711
5045
  * Check if this mixin supports the given construct
@@ -4718,16 +5052,22 @@ class CfnVPCGatewayAttachmentPropsMixin extends core.Mixin {
4718
5052
  */
4719
5053
  applyTo(construct) {
4720
5054
  if (this.supports(construct)) {
4721
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4722
- helpers.deepMerge(construct, this.props, CfnVPCGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4723
- }
4724
- else {
4725
- helpers.shallowAssign(construct, this.props, CfnVPCGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4726
- }
5055
+ this.strategy.apply(construct, this.props, CfnVPCGatewayAttachmentPropsMixin.CFN_PROPERTY_KEYS);
4727
5056
  }
4728
5057
  }
4729
5058
  }
4730
5059
  exports.CfnVPCGatewayAttachmentPropsMixin = CfnVPCGatewayAttachmentPropsMixin;
5060
+ // @ts-ignore TS6133
5061
+ function flattenCfnVPCGatewayAttachmentMixinProps(props) {
5062
+ const ret = {};
5063
+ if ((props.internetGatewayId !== undefined))
5064
+ ret.internetGatewayId = cdk.getRefProperty(props.internetGatewayId?.internetGatewayRef, 'internetGatewayId') ?? cdk.ensureStringOrUndefined(props.internetGatewayId, "internetGatewayId", "ec2.IInternetGatewayRef | string");
5065
+ if ((props.vpcId !== undefined))
5066
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
5067
+ if ((props.vpnGatewayId !== undefined))
5068
+ ret.vpnGatewayId = cdk.getRefProperty(props.vpnGatewayId?.vpnGatewayRef, 'vpnGatewayId') ?? cdk.ensureStringOrUndefined(props.vpnGatewayId, "vpnGatewayId", "ec2.IVPNGatewayRef | string");
5069
+ return ret;
5070
+ }
4731
5071
  /**
4732
5072
  * Requests a VPC peering connection between two VPCs: a requester VPC that you own and an accepter VPC with which to create the connection.
4733
5073
  *
@@ -4744,9 +5084,9 @@ exports.CfnVPCGatewayAttachmentPropsMixin = CfnVPCGatewayAttachmentPropsMixin;
4744
5084
  * @stability external
4745
5085
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html
4746
5086
  */
4747
- class CfnVPCPeeringConnectionPropsMixin extends core.Mixin {
4748
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCPeeringConnectionPropsMixin", version: "2.240.0-alpha.0" };
4749
- static CFN_PROPERTY_KEYS = ["peerOwnerId", "peerRegion", "peerRoleArn", "peerVpcId", "tags", "vpcId"];
5087
+ class CfnVPCPeeringConnectionPropsMixin extends cdk.Mixin {
5088
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCPeeringConnectionPropsMixin", version: "2.242.0-alpha.0" };
5089
+ static CFN_PROPERTY_KEYS = ["assumeRoleRegion", "peerOwnerId", "peerRegion", "peerRoleArn", "peerVpcId", "tags", "vpcId"];
4750
5090
  props;
4751
5091
  strategy;
4752
5092
  /**
@@ -4767,8 +5107,11 @@ class CfnVPCPeeringConnectionPropsMixin extends core.Mixin {
4767
5107
  }
4768
5108
  throw error;
4769
5109
  }
4770
- this.props = props;
4771
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5110
+ this.props = {
5111
+ ...props,
5112
+ ...flattenCfnVPCPeeringConnectionMixinProps(props)
5113
+ };
5114
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4772
5115
  }
4773
5116
  /**
4774
5117
  * Check if this mixin supports the given construct
@@ -4781,16 +5124,20 @@ class CfnVPCPeeringConnectionPropsMixin extends core.Mixin {
4781
5124
  */
4782
5125
  applyTo(construct) {
4783
5126
  if (this.supports(construct)) {
4784
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4785
- helpers.deepMerge(construct, this.props, CfnVPCPeeringConnectionPropsMixin.CFN_PROPERTY_KEYS);
4786
- }
4787
- else {
4788
- helpers.shallowAssign(construct, this.props, CfnVPCPeeringConnectionPropsMixin.CFN_PROPERTY_KEYS);
4789
- }
5127
+ this.strategy.apply(construct, this.props, CfnVPCPeeringConnectionPropsMixin.CFN_PROPERTY_KEYS);
4790
5128
  }
4791
5129
  }
4792
5130
  }
4793
5131
  exports.CfnVPCPeeringConnectionPropsMixin = CfnVPCPeeringConnectionPropsMixin;
5132
+ // @ts-ignore TS6133
5133
+ function flattenCfnVPCPeeringConnectionMixinProps(props) {
5134
+ const ret = {};
5135
+ if ((props.peerVpcId !== undefined))
5136
+ ret.peerVpcId = cdk.getRefProperty(props.peerVpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.peerVpcId, "peerVpcId", "ec2.IVPCRef | string");
5137
+ if ((props.vpcId !== undefined))
5138
+ ret.vpcId = cdk.getRefProperty(props.vpcId?.vpcRef, 'vpcId') ?? cdk.ensureStringOrUndefined(props.vpcId, "vpcId", "ec2.IVPCRef | string");
5139
+ return ret;
5140
+ }
4794
5141
  /**
4795
5142
  * Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.
4796
5143
  *
@@ -4805,8 +5152,8 @@ exports.CfnVPCPeeringConnectionPropsMixin = CfnVPCPeeringConnectionPropsMixin;
4805
5152
  * @stability external
4806
5153
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnection.html
4807
5154
  */
4808
- class CfnVPNConnectionPropsMixin extends core.Mixin {
4809
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConnectionPropsMixin", version: "2.240.0-alpha.0" };
5155
+ class CfnVPNConnectionPropsMixin extends cdk.Mixin {
5156
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConnectionPropsMixin", version: "2.242.0-alpha.0" };
4810
5157
  static CFN_PROPERTY_KEYS = ["customerGatewayId", "enableAcceleration", "localIpv4NetworkCidr", "localIpv6NetworkCidr", "outsideIpAddressType", "preSharedKeyStorage", "remoteIpv4NetworkCidr", "remoteIpv6NetworkCidr", "staticRoutesOnly", "tags", "transitGatewayId", "transportTransitGatewayAttachmentId", "tunnelBandwidth", "tunnelInsideIpVersion", "type", "vpnConcentratorId", "vpnGatewayId", "vpnTunnelOptionsSpecifications"];
4811
5158
  props;
4812
5159
  strategy;
@@ -4828,8 +5175,11 @@ class CfnVPNConnectionPropsMixin extends core.Mixin {
4828
5175
  }
4829
5176
  throw error;
4830
5177
  }
4831
- this.props = props;
4832
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5178
+ this.props = {
5179
+ ...props,
5180
+ ...flattenCfnVPNConnectionMixinProps(props)
5181
+ };
5182
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4833
5183
  }
4834
5184
  /**
4835
5185
  * Check if this mixin supports the given construct
@@ -4842,16 +5192,22 @@ class CfnVPNConnectionPropsMixin extends core.Mixin {
4842
5192
  */
4843
5193
  applyTo(construct) {
4844
5194
  if (this.supports(construct)) {
4845
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4846
- helpers.deepMerge(construct, this.props, CfnVPNConnectionPropsMixin.CFN_PROPERTY_KEYS);
4847
- }
4848
- else {
4849
- helpers.shallowAssign(construct, this.props, CfnVPNConnectionPropsMixin.CFN_PROPERTY_KEYS);
4850
- }
5195
+ this.strategy.apply(construct, this.props, CfnVPNConnectionPropsMixin.CFN_PROPERTY_KEYS);
4851
5196
  }
4852
5197
  }
4853
5198
  }
4854
5199
  exports.CfnVPNConnectionPropsMixin = CfnVPNConnectionPropsMixin;
5200
+ // @ts-ignore TS6133
5201
+ function flattenCfnVPNConnectionMixinProps(props) {
5202
+ const ret = {};
5203
+ if ((props.customerGatewayId !== undefined))
5204
+ ret.customerGatewayId = cdk.getRefProperty(props.customerGatewayId?.customerGatewayRef, 'customerGatewayId') ?? cdk.ensureStringOrUndefined(props.customerGatewayId, "customerGatewayId", "ec2.ICustomerGatewayRef | string");
5205
+ if ((props.transitGatewayId !== undefined))
5206
+ ret.transitGatewayId = cdk.getRefProperty(props.transitGatewayId?.transitGatewayRef, 'transitGatewayId') ?? cdk.ensureStringOrUndefined(props.transitGatewayId, "transitGatewayId", "ec2.ITransitGatewayRef | string");
5207
+ if ((props.vpnGatewayId !== undefined))
5208
+ ret.vpnGatewayId = cdk.getRefProperty(props.vpnGatewayId?.vpnGatewayRef, 'vpnGatewayId') ?? cdk.ensureStringOrUndefined(props.vpnGatewayId, "vpnGatewayId", "ec2.IVPNGatewayRef | string");
5209
+ return ret;
5210
+ }
4855
5211
  /**
4856
5212
  * Specifies a static route for a VPN connection between an existing virtual private gateway and a VPN customer gateway.
4857
5213
  *
@@ -4864,8 +5220,8 @@ exports.CfnVPNConnectionPropsMixin = CfnVPNConnectionPropsMixin;
4864
5220
  * @stability external
4865
5221
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconnectionroute.html
4866
5222
  */
4867
- class CfnVPNConnectionRoutePropsMixin extends core.Mixin {
4868
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConnectionRoutePropsMixin", version: "2.240.0-alpha.0" };
5223
+ class CfnVPNConnectionRoutePropsMixin extends cdk.Mixin {
5224
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConnectionRoutePropsMixin", version: "2.242.0-alpha.0" };
4869
5225
  static CFN_PROPERTY_KEYS = ["destinationCidrBlock", "vpnConnectionId"];
4870
5226
  props;
4871
5227
  strategy;
@@ -4887,8 +5243,11 @@ class CfnVPNConnectionRoutePropsMixin extends core.Mixin {
4887
5243
  }
4888
5244
  throw error;
4889
5245
  }
4890
- this.props = props;
4891
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5246
+ this.props = {
5247
+ ...props,
5248
+ ...flattenCfnVPNConnectionRouteMixinProps(props)
5249
+ };
5250
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4892
5251
  }
4893
5252
  /**
4894
5253
  * Check if this mixin supports the given construct
@@ -4901,16 +5260,18 @@ class CfnVPNConnectionRoutePropsMixin extends core.Mixin {
4901
5260
  */
4902
5261
  applyTo(construct) {
4903
5262
  if (this.supports(construct)) {
4904
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4905
- helpers.deepMerge(construct, this.props, CfnVPNConnectionRoutePropsMixin.CFN_PROPERTY_KEYS);
4906
- }
4907
- else {
4908
- helpers.shallowAssign(construct, this.props, CfnVPNConnectionRoutePropsMixin.CFN_PROPERTY_KEYS);
4909
- }
5263
+ this.strategy.apply(construct, this.props, CfnVPNConnectionRoutePropsMixin.CFN_PROPERTY_KEYS);
4910
5264
  }
4911
5265
  }
4912
5266
  }
4913
5267
  exports.CfnVPNConnectionRoutePropsMixin = CfnVPNConnectionRoutePropsMixin;
5268
+ // @ts-ignore TS6133
5269
+ function flattenCfnVPNConnectionRouteMixinProps(props) {
5270
+ const ret = {};
5271
+ if ((props.vpnConnectionId !== undefined))
5272
+ ret.vpnConnectionId = cdk.getRefProperty(props.vpnConnectionId?.vpnConnectionRef, 'vpnConnectionId') ?? cdk.ensureStringOrUndefined(props.vpnConnectionId, "vpnConnectionId", "ec2.IVPNConnectionRef | string");
5273
+ return ret;
5274
+ }
4914
5275
  /**
4915
5276
  * Specifies a virtual private gateway.
4916
5277
  *
@@ -4923,8 +5284,8 @@ exports.CfnVPNConnectionRoutePropsMixin = CfnVPNConnectionRoutePropsMixin;
4923
5284
  * @stability external
4924
5285
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngateway.html
4925
5286
  */
4926
- class CfnVPNGatewayPropsMixin extends core.Mixin {
4927
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNGatewayPropsMixin", version: "2.240.0-alpha.0" };
5287
+ class CfnVPNGatewayPropsMixin extends cdk.Mixin {
5288
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNGatewayPropsMixin", version: "2.242.0-alpha.0" };
4928
5289
  static CFN_PROPERTY_KEYS = ["amazonSideAsn", "tags", "type"];
4929
5290
  props;
4930
5291
  strategy;
@@ -4947,7 +5308,7 @@ class CfnVPNGatewayPropsMixin extends core.Mixin {
4947
5308
  throw error;
4948
5309
  }
4949
5310
  this.props = props;
4950
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5311
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
4951
5312
  }
4952
5313
  /**
4953
5314
  * Check if this mixin supports the given construct
@@ -4960,12 +5321,7 @@ class CfnVPNGatewayPropsMixin extends core.Mixin {
4960
5321
  */
4961
5322
  applyTo(construct) {
4962
5323
  if (this.supports(construct)) {
4963
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
4964
- helpers.deepMerge(construct, this.props, CfnVPNGatewayPropsMixin.CFN_PROPERTY_KEYS);
4965
- }
4966
- else {
4967
- helpers.shallowAssign(construct, this.props, CfnVPNGatewayPropsMixin.CFN_PROPERTY_KEYS);
4968
- }
5324
+ this.strategy.apply(construct, this.props, CfnVPNGatewayPropsMixin.CFN_PROPERTY_KEYS);
4969
5325
  }
4970
5326
  }
4971
5327
  }
@@ -4980,8 +5336,8 @@ exports.CfnVPNGatewayPropsMixin = CfnVPNGatewayPropsMixin;
4980
5336
  * @stability external
4981
5337
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpngatewayroutepropagation.html
4982
5338
  */
4983
- class CfnVPNGatewayRoutePropagationPropsMixin extends core.Mixin {
4984
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNGatewayRoutePropagationPropsMixin", version: "2.240.0-alpha.0" };
5339
+ class CfnVPNGatewayRoutePropagationPropsMixin extends cdk.Mixin {
5340
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNGatewayRoutePropagationPropsMixin", version: "2.242.0-alpha.0" };
4985
5341
  static CFN_PROPERTY_KEYS = ["routeTableIds", "vpnGatewayId"];
4986
5342
  props;
4987
5343
  strategy;
@@ -5004,7 +5360,7 @@ class CfnVPNGatewayRoutePropagationPropsMixin extends core.Mixin {
5004
5360
  throw error;
5005
5361
  }
5006
5362
  this.props = props;
5007
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5363
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5008
5364
  }
5009
5365
  /**
5010
5366
  * Check if this mixin supports the given construct
@@ -5017,12 +5373,7 @@ class CfnVPNGatewayRoutePropagationPropsMixin extends core.Mixin {
5017
5373
  */
5018
5374
  applyTo(construct) {
5019
5375
  if (this.supports(construct)) {
5020
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5021
- helpers.deepMerge(construct, this.props, CfnVPNGatewayRoutePropagationPropsMixin.CFN_PROPERTY_KEYS);
5022
- }
5023
- else {
5024
- helpers.shallowAssign(construct, this.props, CfnVPNGatewayRoutePropagationPropsMixin.CFN_PROPERTY_KEYS);
5025
- }
5376
+ this.strategy.apply(construct, this.props, CfnVPNGatewayRoutePropagationPropsMixin.CFN_PROPERTY_KEYS);
5026
5377
  }
5027
5378
  }
5028
5379
  }
@@ -5037,8 +5388,8 @@ exports.CfnVPNGatewayRoutePropagationPropsMixin = CfnVPNGatewayRoutePropagationP
5037
5388
  * @stability external
5038
5389
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessendpoint.html
5039
5390
  */
5040
- class CfnVerifiedAccessEndpointPropsMixin extends core.Mixin {
5041
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessEndpointPropsMixin", version: "2.240.0-alpha.0" };
5391
+ class CfnVerifiedAccessEndpointPropsMixin extends cdk.Mixin {
5392
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessEndpointPropsMixin", version: "2.242.0-alpha.0" };
5042
5393
  static CFN_PROPERTY_KEYS = ["applicationDomain", "attachmentType", "cidrOptions", "description", "domainCertificateArn", "endpointDomainPrefix", "endpointType", "loadBalancerOptions", "networkInterfaceOptions", "policyDocument", "policyEnabled", "rdsOptions", "securityGroupIds", "sseSpecification", "tags", "verifiedAccessGroupId"];
5043
5394
  props;
5044
5395
  strategy;
@@ -5061,7 +5412,7 @@ class CfnVerifiedAccessEndpointPropsMixin extends core.Mixin {
5061
5412
  throw error;
5062
5413
  }
5063
5414
  this.props = props;
5064
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5415
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5065
5416
  }
5066
5417
  /**
5067
5418
  * Check if this mixin supports the given construct
@@ -5074,12 +5425,7 @@ class CfnVerifiedAccessEndpointPropsMixin extends core.Mixin {
5074
5425
  */
5075
5426
  applyTo(construct) {
5076
5427
  if (this.supports(construct)) {
5077
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5078
- helpers.deepMerge(construct, this.props, CfnVerifiedAccessEndpointPropsMixin.CFN_PROPERTY_KEYS);
5079
- }
5080
- else {
5081
- helpers.shallowAssign(construct, this.props, CfnVerifiedAccessEndpointPropsMixin.CFN_PROPERTY_KEYS);
5082
- }
5428
+ this.strategy.apply(construct, this.props, CfnVerifiedAccessEndpointPropsMixin.CFN_PROPERTY_KEYS);
5083
5429
  }
5084
5430
  }
5085
5431
  }
@@ -5094,8 +5440,8 @@ exports.CfnVerifiedAccessEndpointPropsMixin = CfnVerifiedAccessEndpointPropsMixi
5094
5440
  * @stability external
5095
5441
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessgroup.html
5096
5442
  */
5097
- class CfnVerifiedAccessGroupPropsMixin extends core.Mixin {
5098
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessGroupPropsMixin", version: "2.240.0-alpha.0" };
5443
+ class CfnVerifiedAccessGroupPropsMixin extends cdk.Mixin {
5444
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessGroupPropsMixin", version: "2.242.0-alpha.0" };
5099
5445
  static CFN_PROPERTY_KEYS = ["description", "policyDocument", "policyEnabled", "sseSpecification", "tags", "verifiedAccessInstanceId"];
5100
5446
  props;
5101
5447
  strategy;
@@ -5118,7 +5464,7 @@ class CfnVerifiedAccessGroupPropsMixin extends core.Mixin {
5118
5464
  throw error;
5119
5465
  }
5120
5466
  this.props = props;
5121
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5467
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5122
5468
  }
5123
5469
  /**
5124
5470
  * Check if this mixin supports the given construct
@@ -5131,12 +5477,7 @@ class CfnVerifiedAccessGroupPropsMixin extends core.Mixin {
5131
5477
  */
5132
5478
  applyTo(construct) {
5133
5479
  if (this.supports(construct)) {
5134
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5135
- helpers.deepMerge(construct, this.props, CfnVerifiedAccessGroupPropsMixin.CFN_PROPERTY_KEYS);
5136
- }
5137
- else {
5138
- helpers.shallowAssign(construct, this.props, CfnVerifiedAccessGroupPropsMixin.CFN_PROPERTY_KEYS);
5139
- }
5480
+ this.strategy.apply(construct, this.props, CfnVerifiedAccessGroupPropsMixin.CFN_PROPERTY_KEYS);
5140
5481
  }
5141
5482
  }
5142
5483
  }
@@ -5149,8 +5490,8 @@ exports.CfnVerifiedAccessGroupPropsMixin = CfnVerifiedAccessGroupPropsMixin;
5149
5490
  * @stability external
5150
5491
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccessinstance.html
5151
5492
  */
5152
- class CfnVerifiedAccessInstancePropsMixin extends core.Mixin {
5153
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessInstancePropsMixin", version: "2.240.0-alpha.0" };
5493
+ class CfnVerifiedAccessInstancePropsMixin extends cdk.Mixin {
5494
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessInstancePropsMixin", version: "2.242.0-alpha.0" };
5154
5495
  static CFN_PROPERTY_KEYS = ["cidrEndpointsCustomSubDomain", "description", "fipsEnabled", "loggingConfigurations", "tags", "verifiedAccessTrustProviderIds", "verifiedAccessTrustProviders"];
5155
5496
  props;
5156
5497
  strategy;
@@ -5173,7 +5514,7 @@ class CfnVerifiedAccessInstancePropsMixin extends core.Mixin {
5173
5514
  throw error;
5174
5515
  }
5175
5516
  this.props = props;
5176
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5517
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5177
5518
  }
5178
5519
  /**
5179
5520
  * Check if this mixin supports the given construct
@@ -5186,12 +5527,7 @@ class CfnVerifiedAccessInstancePropsMixin extends core.Mixin {
5186
5527
  */
5187
5528
  applyTo(construct) {
5188
5529
  if (this.supports(construct)) {
5189
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5190
- helpers.deepMerge(construct, this.props, CfnVerifiedAccessInstancePropsMixin.CFN_PROPERTY_KEYS);
5191
- }
5192
- else {
5193
- helpers.shallowAssign(construct, this.props, CfnVerifiedAccessInstancePropsMixin.CFN_PROPERTY_KEYS);
5194
- }
5530
+ this.strategy.apply(construct, this.props, CfnVerifiedAccessInstancePropsMixin.CFN_PROPERTY_KEYS);
5195
5531
  }
5196
5532
  }
5197
5533
  }
@@ -5206,8 +5542,8 @@ exports.CfnVerifiedAccessInstancePropsMixin = CfnVerifiedAccessInstancePropsMixi
5206
5542
  * @stability external
5207
5543
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-verifiedaccesstrustprovider.html
5208
5544
  */
5209
- class CfnVerifiedAccessTrustProviderPropsMixin extends core.Mixin {
5210
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessTrustProviderPropsMixin", version: "2.240.0-alpha.0" };
5545
+ class CfnVerifiedAccessTrustProviderPropsMixin extends cdk.Mixin {
5546
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVerifiedAccessTrustProviderPropsMixin", version: "2.242.0-alpha.0" };
5211
5547
  static CFN_PROPERTY_KEYS = ["description", "deviceOptions", "deviceTrustProviderType", "nativeApplicationOidcOptions", "oidcOptions", "policyReferenceName", "sseSpecification", "tags", "trustProviderType", "userTrustProviderType"];
5212
5548
  props;
5213
5549
  strategy;
@@ -5230,7 +5566,7 @@ class CfnVerifiedAccessTrustProviderPropsMixin extends core.Mixin {
5230
5566
  throw error;
5231
5567
  }
5232
5568
  this.props = props;
5233
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5569
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5234
5570
  }
5235
5571
  /**
5236
5572
  * Check if this mixin supports the given construct
@@ -5243,12 +5579,7 @@ class CfnVerifiedAccessTrustProviderPropsMixin extends core.Mixin {
5243
5579
  */
5244
5580
  applyTo(construct) {
5245
5581
  if (this.supports(construct)) {
5246
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5247
- helpers.deepMerge(construct, this.props, CfnVerifiedAccessTrustProviderPropsMixin.CFN_PROPERTY_KEYS);
5248
- }
5249
- else {
5250
- helpers.shallowAssign(construct, this.props, CfnVerifiedAccessTrustProviderPropsMixin.CFN_PROPERTY_KEYS);
5251
- }
5582
+ this.strategy.apply(construct, this.props, CfnVerifiedAccessTrustProviderPropsMixin.CFN_PROPERTY_KEYS);
5252
5583
  }
5253
5584
  }
5254
5585
  }
@@ -5277,8 +5608,8 @@ exports.CfnVerifiedAccessTrustProviderPropsMixin = CfnVerifiedAccessTrustProvide
5277
5608
  * @stability external
5278
5609
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html
5279
5610
  */
5280
- class CfnVolumePropsMixin extends core.Mixin {
5281
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVolumePropsMixin", version: "2.240.0-alpha.0" };
5611
+ class CfnVolumePropsMixin extends cdk.Mixin {
5612
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVolumePropsMixin", version: "2.242.0-alpha.0" };
5282
5613
  static CFN_PROPERTY_KEYS = ["autoEnableIo", "availabilityZone", "availabilityZoneId", "encrypted", "iops", "kmsKeyId", "multiAttachEnabled", "outpostArn", "size", "snapshotId", "sourceVolumeId", "tags", "throughput", "volumeInitializationRate", "volumeType"];
5283
5614
  props;
5284
5615
  strategy;
@@ -5301,7 +5632,7 @@ class CfnVolumePropsMixin extends core.Mixin {
5301
5632
  throw error;
5302
5633
  }
5303
5634
  this.props = props;
5304
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5635
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5305
5636
  }
5306
5637
  /**
5307
5638
  * Check if this mixin supports the given construct
@@ -5314,12 +5645,7 @@ class CfnVolumePropsMixin extends core.Mixin {
5314
5645
  */
5315
5646
  applyTo(construct) {
5316
5647
  if (this.supports(construct)) {
5317
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5318
- helpers.deepMerge(construct, this.props, CfnVolumePropsMixin.CFN_PROPERTY_KEYS);
5319
- }
5320
- else {
5321
- helpers.shallowAssign(construct, this.props, CfnVolumePropsMixin.CFN_PROPERTY_KEYS);
5322
- }
5648
+ this.strategy.apply(construct, this.props, CfnVolumePropsMixin.CFN_PROPERTY_KEYS);
5323
5649
  }
5324
5650
  }
5325
5651
  }
@@ -5338,8 +5664,8 @@ exports.CfnVolumePropsMixin = CfnVolumePropsMixin;
5338
5664
  * @stability external
5339
5665
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volumeattachment.html
5340
5666
  */
5341
- class CfnVolumeAttachmentPropsMixin extends core.Mixin {
5342
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVolumeAttachmentPropsMixin", version: "2.240.0-alpha.0" };
5667
+ class CfnVolumeAttachmentPropsMixin extends cdk.Mixin {
5668
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVolumeAttachmentPropsMixin", version: "2.242.0-alpha.0" };
5343
5669
  static CFN_PROPERTY_KEYS = ["device", "ebsCardIndex", "instanceId", "volumeId"];
5344
5670
  props;
5345
5671
  strategy;
@@ -5361,8 +5687,11 @@ class CfnVolumeAttachmentPropsMixin extends core.Mixin {
5361
5687
  }
5362
5688
  throw error;
5363
5689
  }
5364
- this.props = props;
5365
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5690
+ this.props = {
5691
+ ...props,
5692
+ ...flattenCfnVolumeAttachmentMixinProps(props)
5693
+ };
5694
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5366
5695
  }
5367
5696
  /**
5368
5697
  * Check if this mixin supports the given construct
@@ -5375,16 +5704,20 @@ class CfnVolumeAttachmentPropsMixin extends core.Mixin {
5375
5704
  */
5376
5705
  applyTo(construct) {
5377
5706
  if (this.supports(construct)) {
5378
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5379
- helpers.deepMerge(construct, this.props, CfnVolumeAttachmentPropsMixin.CFN_PROPERTY_KEYS);
5380
- }
5381
- else {
5382
- helpers.shallowAssign(construct, this.props, CfnVolumeAttachmentPropsMixin.CFN_PROPERTY_KEYS);
5383
- }
5707
+ this.strategy.apply(construct, this.props, CfnVolumeAttachmentPropsMixin.CFN_PROPERTY_KEYS);
5384
5708
  }
5385
5709
  }
5386
5710
  }
5387
5711
  exports.CfnVolumeAttachmentPropsMixin = CfnVolumeAttachmentPropsMixin;
5712
+ // @ts-ignore TS6133
5713
+ function flattenCfnVolumeAttachmentMixinProps(props) {
5714
+ const ret = {};
5715
+ if ((props.instanceId !== undefined))
5716
+ ret.instanceId = cdk.getRefProperty(props.instanceId?.instanceRef, 'instanceId') ?? cdk.ensureStringOrUndefined(props.instanceId, "instanceId", "ec2.IInstanceRef | string");
5717
+ if ((props.volumeId !== undefined))
5718
+ ret.volumeId = cdk.getRefProperty(props.volumeId?.volumeRef, 'volumeId') ?? cdk.ensureStringOrUndefined(props.volumeId, "volumeId", "ec2.IVolumeRef | string");
5719
+ return ret;
5720
+ }
5388
5721
  /**
5389
5722
  * Creates a new data export configuration for EC2 Capacity Manager.
5390
5723
  *
@@ -5395,8 +5728,8 @@ exports.CfnVolumeAttachmentPropsMixin = CfnVolumeAttachmentPropsMixin;
5395
5728
  * @stability external
5396
5729
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-capacitymanagerdataexport.html
5397
5730
  */
5398
- class CfnCapacityManagerDataExportPropsMixin extends core.Mixin {
5399
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityManagerDataExportPropsMixin", version: "2.240.0-alpha.0" };
5731
+ class CfnCapacityManagerDataExportPropsMixin extends cdk.Mixin {
5732
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnCapacityManagerDataExportPropsMixin", version: "2.242.0-alpha.0" };
5400
5733
  static CFN_PROPERTY_KEYS = ["outputFormat", "s3BucketName", "s3BucketPrefix", "schedule", "tags"];
5401
5734
  props;
5402
5735
  strategy;
@@ -5419,7 +5752,7 @@ class CfnCapacityManagerDataExportPropsMixin extends core.Mixin {
5419
5752
  throw error;
5420
5753
  }
5421
5754
  this.props = props;
5422
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5755
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5423
5756
  }
5424
5757
  /**
5425
5758
  * Check if this mixin supports the given construct
@@ -5432,16 +5765,61 @@ class CfnCapacityManagerDataExportPropsMixin extends core.Mixin {
5432
5765
  */
5433
5766
  applyTo(construct) {
5434
5767
  if (this.supports(construct)) {
5435
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5436
- helpers.deepMerge(construct, this.props, CfnCapacityManagerDataExportPropsMixin.CFN_PROPERTY_KEYS);
5437
- }
5438
- else {
5439
- helpers.shallowAssign(construct, this.props, CfnCapacityManagerDataExportPropsMixin.CFN_PROPERTY_KEYS);
5440
- }
5768
+ this.strategy.apply(construct, this.props, CfnCapacityManagerDataExportPropsMixin.CFN_PROPERTY_KEYS);
5441
5769
  }
5442
5770
  }
5443
5771
  }
5444
5772
  exports.CfnCapacityManagerDataExportPropsMixin = CfnCapacityManagerDataExportPropsMixin;
5773
+ /**
5774
+ * Resource Type definition for AWS::EC2::IPAMPrefixListResolver.
5775
+ *
5776
+ * @cloudformationResource AWS::EC2::IPAMPrefixListResolver
5777
+ * @mixin true
5778
+ * @stability external
5779
+ * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamprefixlistresolver.html
5780
+ */
5781
+ class CfnIPAMPrefixListResolverPropsMixin extends cdk.Mixin {
5782
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIPAMPrefixListResolverPropsMixin", version: "2.242.0-alpha.0" };
5783
+ static CFN_PROPERTY_KEYS = ["addressFamily", "description", "ipamId", "rules", "tags"];
5784
+ props;
5785
+ strategy;
5786
+ /**
5787
+ * Create a mixin to apply properties to `AWS::EC2::IPAMPrefixListResolver`.
5788
+ *
5789
+ * @param props L1 properties to apply
5790
+ * @param options Mixin options
5791
+ */
5792
+ constructor(props, options = {}) {
5793
+ super();
5794
+ try {
5795
+ jsiiDeprecationWarnings._aws_cdk_mixins_preview_aws_ec2_mixins_CfnIPAMPrefixListResolverMixinProps(props);
5796
+ jsiiDeprecationWarnings._aws_cdk_mixins_preview_mixins_CfnPropertyMixinOptions(options);
5797
+ }
5798
+ catch (error) {
5799
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
5800
+ Error.captureStackTrace(error, CfnIPAMPrefixListResolverPropsMixin);
5801
+ }
5802
+ throw error;
5803
+ }
5804
+ this.props = props;
5805
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5806
+ }
5807
+ /**
5808
+ * Check if this mixin supports the given construct
5809
+ */
5810
+ supports(construct) {
5811
+ return (cdk.CfnResource.isCfnResource(construct) && service.CfnIPAMPrefixListResolver.isCfnIPAMPrefixListResolver(construct));
5812
+ }
5813
+ /**
5814
+ * Apply the mixin properties to the construct
5815
+ */
5816
+ applyTo(construct) {
5817
+ if (this.supports(construct)) {
5818
+ this.strategy.apply(construct, this.props, CfnIPAMPrefixListResolverPropsMixin.CFN_PROPERTY_KEYS);
5819
+ }
5820
+ }
5821
+ }
5822
+ exports.CfnIPAMPrefixListResolverPropsMixin = CfnIPAMPrefixListResolverPropsMixin;
5445
5823
  /**
5446
5824
  * A route server association is the connection established between a route server and a VPC.
5447
5825
  *
@@ -5450,8 +5828,8 @@ exports.CfnCapacityManagerDataExportPropsMixin = CfnCapacityManagerDataExportPro
5450
5828
  * @stability external
5451
5829
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ippoolroutetableassociation.html
5452
5830
  */
5453
- class CfnIpPoolRouteTableAssociationPropsMixin extends core.Mixin {
5454
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIpPoolRouteTableAssociationPropsMixin", version: "2.240.0-alpha.0" };
5831
+ class CfnIpPoolRouteTableAssociationPropsMixin extends cdk.Mixin {
5832
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnIpPoolRouteTableAssociationPropsMixin", version: "2.242.0-alpha.0" };
5455
5833
  static CFN_PROPERTY_KEYS = ["publicIpv4Pool", "routeTableId"];
5456
5834
  props;
5457
5835
  strategy;
@@ -5474,7 +5852,7 @@ class CfnIpPoolRouteTableAssociationPropsMixin extends core.Mixin {
5474
5852
  throw error;
5475
5853
  }
5476
5854
  this.props = props;
5477
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5855
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5478
5856
  }
5479
5857
  /**
5480
5858
  * Check if this mixin supports the given construct
@@ -5487,12 +5865,7 @@ class CfnIpPoolRouteTableAssociationPropsMixin extends core.Mixin {
5487
5865
  */
5488
5866
  applyTo(construct) {
5489
5867
  if (this.supports(construct)) {
5490
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5491
- helpers.deepMerge(construct, this.props, CfnIpPoolRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
5492
- }
5493
- else {
5494
- helpers.shallowAssign(construct, this.props, CfnIpPoolRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
5495
- }
5868
+ this.strategy.apply(construct, this.props, CfnIpPoolRouteTableAssociationPropsMixin.CFN_PROPERTY_KEYS);
5496
5869
  }
5497
5870
  }
5498
5871
  }
@@ -5505,8 +5878,8 @@ exports.CfnIpPoolRouteTableAssociationPropsMixin = CfnIpPoolRouteTableAssociatio
5505
5878
  * @stability external
5506
5879
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterface.html
5507
5880
  */
5508
- class CfnLocalGatewayVirtualInterfacePropsMixin extends core.Mixin {
5509
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayVirtualInterfacePropsMixin", version: "2.240.0-alpha.0" };
5881
+ class CfnLocalGatewayVirtualInterfacePropsMixin extends cdk.Mixin {
5882
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayVirtualInterfacePropsMixin", version: "2.242.0-alpha.0" };
5510
5883
  static CFN_PROPERTY_KEYS = ["localAddress", "localGatewayVirtualInterfaceGroupId", "outpostLagId", "peerAddress", "peerBgpAsn", "peerBgpAsnExtended", "tags", "vlan"];
5511
5884
  props;
5512
5885
  strategy;
@@ -5529,7 +5902,7 @@ class CfnLocalGatewayVirtualInterfacePropsMixin extends core.Mixin {
5529
5902
  throw error;
5530
5903
  }
5531
5904
  this.props = props;
5532
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5905
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5533
5906
  }
5534
5907
  /**
5535
5908
  * Check if this mixin supports the given construct
@@ -5542,12 +5915,7 @@ class CfnLocalGatewayVirtualInterfacePropsMixin extends core.Mixin {
5542
5915
  */
5543
5916
  applyTo(construct) {
5544
5917
  if (this.supports(construct)) {
5545
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5546
- helpers.deepMerge(construct, this.props, CfnLocalGatewayVirtualInterfacePropsMixin.CFN_PROPERTY_KEYS);
5547
- }
5548
- else {
5549
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayVirtualInterfacePropsMixin.CFN_PROPERTY_KEYS);
5550
- }
5918
+ this.strategy.apply(construct, this.props, CfnLocalGatewayVirtualInterfacePropsMixin.CFN_PROPERTY_KEYS);
5551
5919
  }
5552
5920
  }
5553
5921
  }
@@ -5560,8 +5928,8 @@ exports.CfnLocalGatewayVirtualInterfacePropsMixin = CfnLocalGatewayVirtualInterf
5560
5928
  * @stability external
5561
5929
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-localgatewayvirtualinterfacegroup.html
5562
5930
  */
5563
- class CfnLocalGatewayVirtualInterfaceGroupPropsMixin extends core.Mixin {
5564
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayVirtualInterfaceGroupPropsMixin", version: "2.240.0-alpha.0" };
5931
+ class CfnLocalGatewayVirtualInterfaceGroupPropsMixin extends cdk.Mixin {
5932
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnLocalGatewayVirtualInterfaceGroupPropsMixin", version: "2.242.0-alpha.0" };
5565
5933
  static CFN_PROPERTY_KEYS = ["localBgpAsn", "localBgpAsnExtended", "localGatewayId", "tags"];
5566
5934
  props;
5567
5935
  strategy;
@@ -5584,7 +5952,7 @@ class CfnLocalGatewayVirtualInterfaceGroupPropsMixin extends core.Mixin {
5584
5952
  throw error;
5585
5953
  }
5586
5954
  this.props = props;
5587
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
5955
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5588
5956
  }
5589
5957
  /**
5590
5958
  * Check if this mixin supports the given construct
@@ -5597,12 +5965,7 @@ class CfnLocalGatewayVirtualInterfaceGroupPropsMixin extends core.Mixin {
5597
5965
  */
5598
5966
  applyTo(construct) {
5599
5967
  if (this.supports(construct)) {
5600
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5601
- helpers.deepMerge(construct, this.props, CfnLocalGatewayVirtualInterfaceGroupPropsMixin.CFN_PROPERTY_KEYS);
5602
- }
5603
- else {
5604
- helpers.shallowAssign(construct, this.props, CfnLocalGatewayVirtualInterfaceGroupPropsMixin.CFN_PROPERTY_KEYS);
5605
- }
5968
+ this.strategy.apply(construct, this.props, CfnLocalGatewayVirtualInterfaceGroupPropsMixin.CFN_PROPERTY_KEYS);
5606
5969
  }
5607
5970
  }
5608
5971
  }
@@ -5619,8 +5982,8 @@ exports.CfnLocalGatewayVirtualInterfaceGroupPropsMixin = CfnLocalGatewayVirtualI
5619
5982
  * @stability external
5620
5983
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserver.html
5621
5984
  */
5622
- class CfnRouteServerPropsMixin extends core.Mixin {
5623
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPropsMixin", version: "2.240.0-alpha.0" };
5985
+ class CfnRouteServerPropsMixin extends cdk.Mixin {
5986
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPropsMixin", version: "2.242.0-alpha.0" };
5624
5987
  static CFN_PROPERTY_KEYS = ["amazonSideAsn", "persistRoutes", "persistRoutesDuration", "snsNotificationsEnabled", "tags"];
5625
5988
  props;
5626
5989
  strategy;
@@ -5643,7 +6006,7 @@ class CfnRouteServerPropsMixin extends core.Mixin {
5643
6006
  throw error;
5644
6007
  }
5645
6008
  this.props = props;
5646
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6009
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5647
6010
  }
5648
6011
  /**
5649
6012
  * Check if this mixin supports the given construct
@@ -5656,12 +6019,7 @@ class CfnRouteServerPropsMixin extends core.Mixin {
5656
6019
  */
5657
6020
  applyTo(construct) {
5658
6021
  if (this.supports(construct)) {
5659
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5660
- helpers.deepMerge(construct, this.props, CfnRouteServerPropsMixin.CFN_PROPERTY_KEYS);
5661
- }
5662
- else {
5663
- helpers.shallowAssign(construct, this.props, CfnRouteServerPropsMixin.CFN_PROPERTY_KEYS);
5664
- }
6022
+ this.strategy.apply(construct, this.props, CfnRouteServerPropsMixin.CFN_PROPERTY_KEYS);
5665
6023
  }
5666
6024
  }
5667
6025
  }
@@ -5676,8 +6034,8 @@ exports.CfnRouteServerPropsMixin = CfnRouteServerPropsMixin;
5676
6034
  * @stability external
5677
6035
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverassociation.html
5678
6036
  */
5679
- class CfnRouteServerAssociationPropsMixin extends core.Mixin {
5680
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerAssociationPropsMixin", version: "2.240.0-alpha.0" };
6037
+ class CfnRouteServerAssociationPropsMixin extends cdk.Mixin {
6038
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerAssociationPropsMixin", version: "2.242.0-alpha.0" };
5681
6039
  static CFN_PROPERTY_KEYS = ["routeServerId", "vpcId"];
5682
6040
  props;
5683
6041
  strategy;
@@ -5700,7 +6058,7 @@ class CfnRouteServerAssociationPropsMixin extends core.Mixin {
5700
6058
  throw error;
5701
6059
  }
5702
6060
  this.props = props;
5703
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6061
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5704
6062
  }
5705
6063
  /**
5706
6064
  * Check if this mixin supports the given construct
@@ -5713,12 +6071,7 @@ class CfnRouteServerAssociationPropsMixin extends core.Mixin {
5713
6071
  */
5714
6072
  applyTo(construct) {
5715
6073
  if (this.supports(construct)) {
5716
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5717
- helpers.deepMerge(construct, this.props, CfnRouteServerAssociationPropsMixin.CFN_PROPERTY_KEYS);
5718
- }
5719
- else {
5720
- helpers.shallowAssign(construct, this.props, CfnRouteServerAssociationPropsMixin.CFN_PROPERTY_KEYS);
5721
- }
6074
+ this.strategy.apply(construct, this.props, CfnRouteServerAssociationPropsMixin.CFN_PROPERTY_KEYS);
5722
6075
  }
5723
6076
  }
5724
6077
  }
@@ -5735,8 +6088,8 @@ exports.CfnRouteServerAssociationPropsMixin = CfnRouteServerAssociationPropsMixi
5735
6088
  * @stability external
5736
6089
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverendpoint.html
5737
6090
  */
5738
- class CfnRouteServerEndpointPropsMixin extends core.Mixin {
5739
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerEndpointPropsMixin", version: "2.240.0-alpha.0" };
6091
+ class CfnRouteServerEndpointPropsMixin extends cdk.Mixin {
6092
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerEndpointPropsMixin", version: "2.242.0-alpha.0" };
5740
6093
  static CFN_PROPERTY_KEYS = ["routeServerId", "subnetId", "tags"];
5741
6094
  props;
5742
6095
  strategy;
@@ -5759,7 +6112,7 @@ class CfnRouteServerEndpointPropsMixin extends core.Mixin {
5759
6112
  throw error;
5760
6113
  }
5761
6114
  this.props = props;
5762
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6115
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5763
6116
  }
5764
6117
  /**
5765
6118
  * Check if this mixin supports the given construct
@@ -5772,12 +6125,7 @@ class CfnRouteServerEndpointPropsMixin extends core.Mixin {
5772
6125
  */
5773
6126
  applyTo(construct) {
5774
6127
  if (this.supports(construct)) {
5775
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5776
- helpers.deepMerge(construct, this.props, CfnRouteServerEndpointPropsMixin.CFN_PROPERTY_KEYS);
5777
- }
5778
- else {
5779
- helpers.shallowAssign(construct, this.props, CfnRouteServerEndpointPropsMixin.CFN_PROPERTY_KEYS);
5780
- }
6128
+ this.strategy.apply(construct, this.props, CfnRouteServerEndpointPropsMixin.CFN_PROPERTY_KEYS);
5781
6129
  }
5782
6130
  }
5783
6131
  }
@@ -5792,8 +6140,8 @@ exports.CfnRouteServerEndpointPropsMixin = CfnRouteServerEndpointPropsMixin;
5792
6140
  * @stability external
5793
6141
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpeer.html
5794
6142
  */
5795
- class CfnRouteServerPeerPropsMixin extends core.Mixin {
5796
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPeerPropsMixin", version: "2.240.0-alpha.0" };
6143
+ class CfnRouteServerPeerPropsMixin extends cdk.Mixin {
6144
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPeerPropsMixin", version: "2.242.0-alpha.0" };
5797
6145
  static CFN_PROPERTY_KEYS = ["bgpOptions", "peerAddress", "routeServerEndpointId", "tags"];
5798
6146
  props;
5799
6147
  strategy;
@@ -5816,7 +6164,7 @@ class CfnRouteServerPeerPropsMixin extends core.Mixin {
5816
6164
  throw error;
5817
6165
  }
5818
6166
  this.props = props;
5819
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6167
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5820
6168
  }
5821
6169
  /**
5822
6170
  * Check if this mixin supports the given construct
@@ -5829,12 +6177,7 @@ class CfnRouteServerPeerPropsMixin extends core.Mixin {
5829
6177
  */
5830
6178
  applyTo(construct) {
5831
6179
  if (this.supports(construct)) {
5832
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5833
- helpers.deepMerge(construct, this.props, CfnRouteServerPeerPropsMixin.CFN_PROPERTY_KEYS);
5834
- }
5835
- else {
5836
- helpers.shallowAssign(construct, this.props, CfnRouteServerPeerPropsMixin.CFN_PROPERTY_KEYS);
5837
- }
6180
+ this.strategy.apply(construct, this.props, CfnRouteServerPeerPropsMixin.CFN_PROPERTY_KEYS);
5838
6181
  }
5839
6182
  }
5840
6183
  }
@@ -5849,8 +6192,8 @@ exports.CfnRouteServerPeerPropsMixin = CfnRouteServerPeerPropsMixin;
5849
6192
  * @stability external
5850
6193
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routeserverpropagation.html
5851
6194
  */
5852
- class CfnRouteServerPropagationPropsMixin extends core.Mixin {
5853
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPropagationPropsMixin", version: "2.240.0-alpha.0" };
6195
+ class CfnRouteServerPropagationPropsMixin extends cdk.Mixin {
6196
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnRouteServerPropagationPropsMixin", version: "2.242.0-alpha.0" };
5854
6197
  static CFN_PROPERTY_KEYS = ["routeServerId", "routeTableId"];
5855
6198
  props;
5856
6199
  strategy;
@@ -5873,7 +6216,7 @@ class CfnRouteServerPropagationPropsMixin extends core.Mixin {
5873
6216
  throw error;
5874
6217
  }
5875
6218
  this.props = props;
5876
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6219
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5877
6220
  }
5878
6221
  /**
5879
6222
  * Check if this mixin supports the given construct
@@ -5886,12 +6229,7 @@ class CfnRouteServerPropagationPropsMixin extends core.Mixin {
5886
6229
  */
5887
6230
  applyTo(construct) {
5888
6231
  if (this.supports(construct)) {
5889
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5890
- helpers.deepMerge(construct, this.props, CfnRouteServerPropagationPropsMixin.CFN_PROPERTY_KEYS);
5891
- }
5892
- else {
5893
- helpers.shallowAssign(construct, this.props, CfnRouteServerPropagationPropsMixin.CFN_PROPERTY_KEYS);
5894
- }
6232
+ this.strategy.apply(construct, this.props, CfnRouteServerPropagationPropsMixin.CFN_PROPERTY_KEYS);
5895
6233
  }
5896
6234
  }
5897
6235
  }
@@ -5904,8 +6242,8 @@ exports.CfnRouteServerPropagationPropsMixin = CfnRouteServerPropagationPropsMixi
5904
6242
  * @stability external
5905
6243
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-securitygroupvpcassociation.html
5906
6244
  */
5907
- class CfnSecurityGroupVpcAssociationPropsMixin extends core.Mixin {
5908
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupVpcAssociationPropsMixin", version: "2.240.0-alpha.0" };
6245
+ class CfnSecurityGroupVpcAssociationPropsMixin extends cdk.Mixin {
6246
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSecurityGroupVpcAssociationPropsMixin", version: "2.242.0-alpha.0" };
5909
6247
  static CFN_PROPERTY_KEYS = ["groupId", "vpcId"];
5910
6248
  props;
5911
6249
  strategy;
@@ -5928,7 +6266,7 @@ class CfnSecurityGroupVpcAssociationPropsMixin extends core.Mixin {
5928
6266
  throw error;
5929
6267
  }
5930
6268
  this.props = props;
5931
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6269
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5932
6270
  }
5933
6271
  /**
5934
6272
  * Check if this mixin supports the given construct
@@ -5941,12 +6279,7 @@ class CfnSecurityGroupVpcAssociationPropsMixin extends core.Mixin {
5941
6279
  */
5942
6280
  applyTo(construct) {
5943
6281
  if (this.supports(construct)) {
5944
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
5945
- helpers.deepMerge(construct, this.props, CfnSecurityGroupVpcAssociationPropsMixin.CFN_PROPERTY_KEYS);
5946
- }
5947
- else {
5948
- helpers.shallowAssign(construct, this.props, CfnSecurityGroupVpcAssociationPropsMixin.CFN_PROPERTY_KEYS);
5949
- }
6282
+ this.strategy.apply(construct, this.props, CfnSecurityGroupVpcAssociationPropsMixin.CFN_PROPERTY_KEYS);
5950
6283
  }
5951
6284
  }
5952
6285
  }
@@ -5961,8 +6294,8 @@ exports.CfnSecurityGroupVpcAssociationPropsMixin = CfnSecurityGroupVpcAssociatio
5961
6294
  * @stability external
5962
6295
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-snapshotblockpublicaccess.html
5963
6296
  */
5964
- class CfnSnapshotBlockPublicAccessPropsMixin extends core.Mixin {
5965
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSnapshotBlockPublicAccessPropsMixin", version: "2.240.0-alpha.0" };
6297
+ class CfnSnapshotBlockPublicAccessPropsMixin extends cdk.Mixin {
6298
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnSnapshotBlockPublicAccessPropsMixin", version: "2.242.0-alpha.0" };
5966
6299
  static CFN_PROPERTY_KEYS = ["state"];
5967
6300
  props;
5968
6301
  strategy;
@@ -5985,7 +6318,7 @@ class CfnSnapshotBlockPublicAccessPropsMixin extends core.Mixin {
5985
6318
  throw error;
5986
6319
  }
5987
6320
  this.props = props;
5988
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6321
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
5989
6322
  }
5990
6323
  /**
5991
6324
  * Check if this mixin supports the given construct
@@ -5998,12 +6331,7 @@ class CfnSnapshotBlockPublicAccessPropsMixin extends core.Mixin {
5998
6331
  */
5999
6332
  applyTo(construct) {
6000
6333
  if (this.supports(construct)) {
6001
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6002
- helpers.deepMerge(construct, this.props, CfnSnapshotBlockPublicAccessPropsMixin.CFN_PROPERTY_KEYS);
6003
- }
6004
- else {
6005
- helpers.shallowAssign(construct, this.props, CfnSnapshotBlockPublicAccessPropsMixin.CFN_PROPERTY_KEYS);
6006
- }
6334
+ this.strategy.apply(construct, this.props, CfnSnapshotBlockPublicAccessPropsMixin.CFN_PROPERTY_KEYS);
6007
6335
  }
6008
6336
  }
6009
6337
  }
@@ -6016,8 +6344,8 @@ exports.CfnSnapshotBlockPublicAccessPropsMixin = CfnSnapshotBlockPublicAccessPro
6016
6344
  * @stability external
6017
6345
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewayconnectpeer.html
6018
6346
  */
6019
- class CfnTransitGatewayConnectPeerPropsMixin extends core.Mixin {
6020
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayConnectPeerPropsMixin", version: "2.240.0-alpha.0" };
6347
+ class CfnTransitGatewayConnectPeerPropsMixin extends cdk.Mixin {
6348
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayConnectPeerPropsMixin", version: "2.242.0-alpha.0" };
6021
6349
  static CFN_PROPERTY_KEYS = ["connectPeerConfiguration", "tags", "transitGatewayAttachmentId"];
6022
6350
  props;
6023
6351
  strategy;
@@ -6040,7 +6368,7 @@ class CfnTransitGatewayConnectPeerPropsMixin extends core.Mixin {
6040
6368
  throw error;
6041
6369
  }
6042
6370
  this.props = props;
6043
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6371
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6044
6372
  }
6045
6373
  /**
6046
6374
  * Check if this mixin supports the given construct
@@ -6053,12 +6381,7 @@ class CfnTransitGatewayConnectPeerPropsMixin extends core.Mixin {
6053
6381
  */
6054
6382
  applyTo(construct) {
6055
6383
  if (this.supports(construct)) {
6056
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6057
- helpers.deepMerge(construct, this.props, CfnTransitGatewayConnectPeerPropsMixin.CFN_PROPERTY_KEYS);
6058
- }
6059
- else {
6060
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayConnectPeerPropsMixin.CFN_PROPERTY_KEYS);
6061
- }
6384
+ this.strategy.apply(construct, this.props, CfnTransitGatewayConnectPeerPropsMixin.CFN_PROPERTY_KEYS);
6062
6385
  }
6063
6386
  }
6064
6387
  }
@@ -6071,8 +6394,8 @@ exports.CfnTransitGatewayConnectPeerPropsMixin = CfnTransitGatewayConnectPeerPro
6071
6394
  * @stability external
6072
6395
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicy.html
6073
6396
  */
6074
- class CfnTransitGatewayMeteringPolicyPropsMixin extends core.Mixin {
6075
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMeteringPolicyPropsMixin", version: "2.240.0-alpha.0" };
6397
+ class CfnTransitGatewayMeteringPolicyPropsMixin extends cdk.Mixin {
6398
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMeteringPolicyPropsMixin", version: "2.242.0-alpha.0" };
6076
6399
  static CFN_PROPERTY_KEYS = ["middleboxAttachmentIds", "tags", "transitGatewayId"];
6077
6400
  props;
6078
6401
  strategy;
@@ -6095,7 +6418,7 @@ class CfnTransitGatewayMeteringPolicyPropsMixin extends core.Mixin {
6095
6418
  throw error;
6096
6419
  }
6097
6420
  this.props = props;
6098
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6421
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6099
6422
  }
6100
6423
  /**
6101
6424
  * Check if this mixin supports the given construct
@@ -6108,12 +6431,7 @@ class CfnTransitGatewayMeteringPolicyPropsMixin extends core.Mixin {
6108
6431
  */
6109
6432
  applyTo(construct) {
6110
6433
  if (this.supports(construct)) {
6111
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6112
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMeteringPolicyPropsMixin.CFN_PROPERTY_KEYS);
6113
- }
6114
- else {
6115
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMeteringPolicyPropsMixin.CFN_PROPERTY_KEYS);
6116
- }
6434
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMeteringPolicyPropsMixin.CFN_PROPERTY_KEYS);
6117
6435
  }
6118
6436
  }
6119
6437
  }
@@ -6126,8 +6444,8 @@ exports.CfnTransitGatewayMeteringPolicyPropsMixin = CfnTransitGatewayMeteringPol
6126
6444
  * @stability external
6127
6445
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-transitgatewaymeteringpolicyentry.html
6128
6446
  */
6129
- class CfnTransitGatewayMeteringPolicyEntryPropsMixin extends core.Mixin {
6130
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMeteringPolicyEntryPropsMixin", version: "2.240.0-alpha.0" };
6447
+ class CfnTransitGatewayMeteringPolicyEntryPropsMixin extends cdk.Mixin {
6448
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnTransitGatewayMeteringPolicyEntryPropsMixin", version: "2.242.0-alpha.0" };
6131
6449
  static CFN_PROPERTY_KEYS = ["destinationCidrBlock", "destinationPortRange", "destinationTransitGatewayAttachmentId", "destinationTransitGatewayAttachmentType", "meteredAccount", "policyRuleNumber", "protocol", "sourceCidrBlock", "sourcePortRange", "sourceTransitGatewayAttachmentId", "sourceTransitGatewayAttachmentType", "transitGatewayMeteringPolicyId"];
6132
6450
  props;
6133
6451
  strategy;
@@ -6150,7 +6468,7 @@ class CfnTransitGatewayMeteringPolicyEntryPropsMixin extends core.Mixin {
6150
6468
  throw error;
6151
6469
  }
6152
6470
  this.props = props;
6153
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6471
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6154
6472
  }
6155
6473
  /**
6156
6474
  * Check if this mixin supports the given construct
@@ -6163,12 +6481,7 @@ class CfnTransitGatewayMeteringPolicyEntryPropsMixin extends core.Mixin {
6163
6481
  */
6164
6482
  applyTo(construct) {
6165
6483
  if (this.supports(construct)) {
6166
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6167
- helpers.deepMerge(construct, this.props, CfnTransitGatewayMeteringPolicyEntryPropsMixin.CFN_PROPERTY_KEYS);
6168
- }
6169
- else {
6170
- helpers.shallowAssign(construct, this.props, CfnTransitGatewayMeteringPolicyEntryPropsMixin.CFN_PROPERTY_KEYS);
6171
- }
6484
+ this.strategy.apply(construct, this.props, CfnTransitGatewayMeteringPolicyEntryPropsMixin.CFN_PROPERTY_KEYS);
6172
6485
  }
6173
6486
  }
6174
6487
  }
@@ -6183,8 +6496,8 @@ exports.CfnTransitGatewayMeteringPolicyEntryPropsMixin = CfnTransitGatewayMeteri
6183
6496
  * @stability external
6184
6497
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessexclusion.html
6185
6498
  */
6186
- class CfnVPCBlockPublicAccessExclusionPropsMixin extends core.Mixin {
6187
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCBlockPublicAccessExclusionPropsMixin", version: "2.240.0-alpha.0" };
6499
+ class CfnVPCBlockPublicAccessExclusionPropsMixin extends cdk.Mixin {
6500
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCBlockPublicAccessExclusionPropsMixin", version: "2.242.0-alpha.0" };
6188
6501
  static CFN_PROPERTY_KEYS = ["internetGatewayExclusionMode", "subnetId", "tags", "vpcId"];
6189
6502
  props;
6190
6503
  strategy;
@@ -6207,7 +6520,7 @@ class CfnVPCBlockPublicAccessExclusionPropsMixin extends core.Mixin {
6207
6520
  throw error;
6208
6521
  }
6209
6522
  this.props = props;
6210
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6523
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6211
6524
  }
6212
6525
  /**
6213
6526
  * Check if this mixin supports the given construct
@@ -6220,12 +6533,7 @@ class CfnVPCBlockPublicAccessExclusionPropsMixin extends core.Mixin {
6220
6533
  */
6221
6534
  applyTo(construct) {
6222
6535
  if (this.supports(construct)) {
6223
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6224
- helpers.deepMerge(construct, this.props, CfnVPCBlockPublicAccessExclusionPropsMixin.CFN_PROPERTY_KEYS);
6225
- }
6226
- else {
6227
- helpers.shallowAssign(construct, this.props, CfnVPCBlockPublicAccessExclusionPropsMixin.CFN_PROPERTY_KEYS);
6228
- }
6536
+ this.strategy.apply(construct, this.props, CfnVPCBlockPublicAccessExclusionPropsMixin.CFN_PROPERTY_KEYS);
6229
6537
  }
6230
6538
  }
6231
6539
  }
@@ -6240,8 +6548,8 @@ exports.CfnVPCBlockPublicAccessExclusionPropsMixin = CfnVPCBlockPublicAccessExcl
6240
6548
  * @stability external
6241
6549
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcblockpublicaccessoptions.html
6242
6550
  */
6243
- class CfnVPCBlockPublicAccessOptionsPropsMixin extends core.Mixin {
6244
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCBlockPublicAccessOptionsPropsMixin", version: "2.240.0-alpha.0" };
6551
+ class CfnVPCBlockPublicAccessOptionsPropsMixin extends cdk.Mixin {
6552
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCBlockPublicAccessOptionsPropsMixin", version: "2.242.0-alpha.0" };
6245
6553
  static CFN_PROPERTY_KEYS = ["internetGatewayBlockMode"];
6246
6554
  props;
6247
6555
  strategy;
@@ -6264,7 +6572,7 @@ class CfnVPCBlockPublicAccessOptionsPropsMixin extends core.Mixin {
6264
6572
  throw error;
6265
6573
  }
6266
6574
  this.props = props;
6267
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6575
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6268
6576
  }
6269
6577
  /**
6270
6578
  * Check if this mixin supports the given construct
@@ -6277,12 +6585,7 @@ class CfnVPCBlockPublicAccessOptionsPropsMixin extends core.Mixin {
6277
6585
  */
6278
6586
  applyTo(construct) {
6279
6587
  if (this.supports(construct)) {
6280
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6281
- helpers.deepMerge(construct, this.props, CfnVPCBlockPublicAccessOptionsPropsMixin.CFN_PROPERTY_KEYS);
6282
- }
6283
- else {
6284
- helpers.shallowAssign(construct, this.props, CfnVPCBlockPublicAccessOptionsPropsMixin.CFN_PROPERTY_KEYS);
6285
- }
6588
+ this.strategy.apply(construct, this.props, CfnVPCBlockPublicAccessOptionsPropsMixin.CFN_PROPERTY_KEYS);
6286
6589
  }
6287
6590
  }
6288
6591
  }
@@ -6297,8 +6600,8 @@ exports.CfnVPCBlockPublicAccessOptionsPropsMixin = CfnVPCBlockPublicAccessOption
6297
6600
  * @stability external
6298
6601
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcencryptioncontrol.html
6299
6602
  */
6300
- class CfnVPCEncryptionControlPropsMixin extends core.Mixin {
6301
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEncryptionControlPropsMixin", version: "2.240.0-alpha.0" };
6603
+ class CfnVPCEncryptionControlPropsMixin extends cdk.Mixin {
6604
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPCEncryptionControlPropsMixin", version: "2.242.0-alpha.0" };
6302
6605
  static CFN_PROPERTY_KEYS = ["egressOnlyInternetGatewayExclusionInput", "elasticFileSystemExclusionInput", "internetGatewayExclusionInput", "lambdaExclusionInput", "mode", "natGatewayExclusionInput", "tags", "virtualPrivateGatewayExclusionInput", "vpcId", "vpcLatticeExclusionInput", "vpcPeeringExclusionInput"];
6303
6606
  props;
6304
6607
  strategy;
@@ -6321,7 +6624,7 @@ class CfnVPCEncryptionControlPropsMixin extends core.Mixin {
6321
6624
  throw error;
6322
6625
  }
6323
6626
  this.props = props;
6324
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6627
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6325
6628
  }
6326
6629
  /**
6327
6630
  * Check if this mixin supports the given construct
@@ -6334,12 +6637,7 @@ class CfnVPCEncryptionControlPropsMixin extends core.Mixin {
6334
6637
  */
6335
6638
  applyTo(construct) {
6336
6639
  if (this.supports(construct)) {
6337
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6338
- helpers.deepMerge(construct, this.props, CfnVPCEncryptionControlPropsMixin.CFN_PROPERTY_KEYS);
6339
- }
6340
- else {
6341
- helpers.shallowAssign(construct, this.props, CfnVPCEncryptionControlPropsMixin.CFN_PROPERTY_KEYS);
6342
- }
6640
+ this.strategy.apply(construct, this.props, CfnVPCEncryptionControlPropsMixin.CFN_PROPERTY_KEYS);
6343
6641
  }
6344
6642
  }
6345
6643
  }
@@ -6352,8 +6650,8 @@ exports.CfnVPCEncryptionControlPropsMixin = CfnVPCEncryptionControlPropsMixin;
6352
6650
  * @stability external
6353
6651
  * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpnconcentrator.html
6354
6652
  */
6355
- class CfnVPNConcentratorPropsMixin extends core.Mixin {
6356
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConcentratorPropsMixin", version: "2.240.0-alpha.0" };
6653
+ class CfnVPNConcentratorPropsMixin extends cdk.Mixin {
6654
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/mixins-preview.aws_ec2.mixins.CfnVPNConcentratorPropsMixin", version: "2.242.0-alpha.0" };
6357
6655
  static CFN_PROPERTY_KEYS = ["tags", "transitGatewayId", "type"];
6358
6656
  props;
6359
6657
  strategy;
@@ -6376,7 +6674,7 @@ class CfnVPNConcentratorPropsMixin extends core.Mixin {
6376
6674
  throw error;
6377
6675
  }
6378
6676
  this.props = props;
6379
- this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.MERGE);
6677
+ this.strategy = (options.strategy ?? mixins.PropertyMergeStrategy.combine());
6380
6678
  }
6381
6679
  /**
6382
6680
  * Check if this mixin supports the given construct
@@ -6389,12 +6687,7 @@ class CfnVPNConcentratorPropsMixin extends core.Mixin {
6389
6687
  */
6390
6688
  applyTo(construct) {
6391
6689
  if (this.supports(construct)) {
6392
- if ((this.strategy === mixins.PropertyMergeStrategy.MERGE)) {
6393
- helpers.deepMerge(construct, this.props, CfnVPNConcentratorPropsMixin.CFN_PROPERTY_KEYS);
6394
- }
6395
- else {
6396
- helpers.shallowAssign(construct, this.props, CfnVPNConcentratorPropsMixin.CFN_PROPERTY_KEYS);
6397
- }
6690
+ this.strategy.apply(construct, this.props, CfnVPNConcentratorPropsMixin.CFN_PROPERTY_KEYS);
6398
6691
  }
6399
6692
  }
6400
6693
  }