@intentius/chant-lexicon-aws 0.124.31 → 0.124.33

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 (649) hide show
  1. package/dist/actions/dynamodb.js +41 -0
  2. package/dist/actions/ecr.js +9 -0
  3. package/dist/actions/ecs.js +5 -0
  4. package/dist/actions/iam.js +3 -0
  5. package/dist/actions/index.js +9 -0
  6. package/dist/actions/lambda.js +11 -0
  7. package/dist/actions/logs.js +4 -0
  8. package/dist/actions/s3.js +40 -0
  9. package/dist/actions/sns.js +5 -0
  10. package/dist/actions/sqs.js +15 -0
  11. package/dist/agentcore/trace-fetch.d.ts.map +1 -1
  12. package/dist/agentcore/trace-fetch.js +472 -0
  13. package/dist/agentcore/trace-render.js +359 -0
  14. package/dist/ambient.js +148 -0
  15. package/dist/api/credential-chain.d.ts +30 -3
  16. package/dist/api/credential-chain.d.ts.map +1 -1
  17. package/dist/api/credential-chain.js +509 -0
  18. package/dist/api/read-client.d.ts +16 -43
  19. package/dist/api/read-client.d.ts.map +1 -1
  20. package/dist/api/read-client.js +458 -0
  21. package/dist/api/sigv4.d.ts +4 -4
  22. package/dist/api/sigv4.js +185 -0
  23. package/dist/behaviour-kinds.js +114 -0
  24. package/dist/caller-identity.d.ts +3 -5
  25. package/dist/caller-identity.d.ts.map +1 -1
  26. package/dist/caller-identity.js +146 -0
  27. package/dist/codegen/docs-cli.js +2 -0
  28. package/dist/codegen/docs.js +120 -0
  29. package/dist/codegen/enum-overlay.js +162 -0
  30. package/dist/codegen/extensions.js +139 -0
  31. package/dist/codegen/fallback.js +32 -0
  32. package/dist/codegen/generate-cli.js +15 -0
  33. package/dist/codegen/generate-lexicon.js +70 -0
  34. package/dist/codegen/generate-typescript.js +226 -0
  35. package/dist/codegen/generate.d.ts.map +1 -1
  36. package/dist/codegen/generate.js +234 -0
  37. package/dist/codegen/naming.js +135 -0
  38. package/dist/codegen/package.js +67 -0
  39. package/dist/codegen/patches.d.ts +26 -1
  40. package/dist/codegen/patches.d.ts.map +1 -1
  41. package/dist/codegen/patches.js +90 -0
  42. package/dist/codegen/property-overlay.js +85 -0
  43. package/dist/codegen/property-overlay.json +1 -16
  44. package/dist/codegen/sam.js +402 -0
  45. package/dist/codegen/typecheck.js +4 -0
  46. package/dist/codegen/versions.js +31 -0
  47. package/dist/components/__tests__/mock-cloud-executor.js +326 -0
  48. package/dist/components/apply.d.ts +44 -1
  49. package/dist/components/apply.d.ts.map +1 -1
  50. package/dist/components/apply.js +752 -0
  51. package/dist/components/builders.js +37 -0
  52. package/dist/components/capability-plugin.js +66 -0
  53. package/dist/components/cloud-executor.d.ts +35 -0
  54. package/dist/components/cloud-executor.d.ts.map +1 -1
  55. package/dist/components/cloud-executor.js +576 -0
  56. package/dist/components/config-bom.js +207 -0
  57. package/dist/components/host-delivery.js +117 -0
  58. package/dist/components/index.js +18 -0
  59. package/dist/components/job-submission.js +77 -0
  60. package/dist/components/publish.js +234 -0
  61. package/dist/components/safety.js +62 -0
  62. package/dist/components/wait-aws.js +68 -0
  63. package/dist/composites/agentcore-agent.js +187 -0
  64. package/dist/composites/agentcore-trust-policy.js +13 -0
  65. package/dist/composites/alb-shared.js +84 -0
  66. package/dist/composites/bucket-deployment.js +93 -0
  67. package/dist/composites/catalog.js +2714 -0
  68. package/dist/composites/dynamodb-table.js +66 -0
  69. package/dist/composites/ec2-instance-bundle.js +75 -0
  70. package/dist/composites/ec2-instance-role.js +26 -0
  71. package/dist/composites/ecr-repository.js +64 -0
  72. package/dist/composites/ecs-trust-policy.js +10 -0
  73. package/dist/composites/efs-with-access-point.js +44 -0
  74. package/dist/composites/eks-cluster.js +118 -0
  75. package/dist/composites/fargate-alb.js +216 -0
  76. package/dist/composites/fargate-service.js +222 -0
  77. package/dist/composites/index.js +28 -0
  78. package/dist/composites/lambda-api.js +15 -0
  79. package/dist/composites/lambda-dynamodb.js +77 -0
  80. package/dist/composites/lambda-eventbridge.js +27 -0
  81. package/dist/composites/lambda-function.js +54 -0
  82. package/dist/composites/lambda-s3.js +93 -0
  83. package/dist/composites/lambda-sns.js +23 -0
  84. package/dist/composites/lambda-sqs.js +34 -0
  85. package/dist/composites/landing-zone.js +82 -0
  86. package/dist/composites/microvm-app.js +293 -0
  87. package/dist/composites/minimal-vpc.js +40 -0
  88. package/dist/composites/monitoring-stack.js +105 -0
  89. package/dist/composites/nlb-service.js +61 -0
  90. package/dist/composites/rds-instance.js +98 -0
  91. package/dist/composites/scheduled-lambda.js +28 -0
  92. package/dist/composites/solr-fargate-service.js +33 -0
  93. package/dist/composites/step-functions-workflow.js +78 -0
  94. package/dist/composites/vpc-default.js +132 -0
  95. package/dist/condition.js +43 -0
  96. package/dist/coverage.js +4 -0
  97. package/dist/deep-observe.d.ts.map +1 -1
  98. package/dist/deep-observe.js +709 -0
  99. package/dist/deep-topology.js +226 -0
  100. package/dist/default-tags.js +50 -0
  101. package/dist/defaults.js +85 -0
  102. package/dist/dependencies.js +269 -0
  103. package/dist/detect.js +21 -0
  104. package/dist/disruption.d.ts.map +1 -1
  105. package/dist/disruption.js +129 -0
  106. package/dist/effect-receipt-row.js +107 -0
  107. package/dist/generated/index.d.ts +1297 -82
  108. package/dist/generated/index.d.ts.map +1 -1
  109. package/dist/generated/index.js +12382 -0
  110. package/dist/generated/runtime.js +4 -0
  111. package/dist/governance.js +131 -0
  112. package/dist/health.d.ts +61 -0
  113. package/dist/health.d.ts.map +1 -0
  114. package/dist/health.js +216 -0
  115. package/dist/identity-observe.d.ts.map +1 -1
  116. package/dist/identity-observe.js +127 -0
  117. package/dist/import/generator.js +757 -0
  118. package/dist/import/live-export.js +34 -0
  119. package/dist/import/parser.js +394 -0
  120. package/dist/index.js +69 -0
  121. package/dist/integrity.json +6 -6
  122. package/dist/intrinsics.js +393 -0
  123. package/dist/lint/audit-catalog.js +87 -0
  124. package/dist/lint/audit-lineage.js +150 -0
  125. package/dist/lint/post-synth/cf-refs.js +247 -0
  126. package/dist/lint/post-synth/cor020.js +60 -0
  127. package/dist/lint/post-synth/ext001.d.ts.map +1 -1
  128. package/dist/lint/post-synth/ext001.js +197 -0
  129. package/dist/lint/post-synth/index.js +124 -0
  130. package/dist/lint/post-synth/waw010.js +41 -0
  131. package/dist/lint/post-synth/waw011.js +41 -0
  132. package/dist/lint/post-synth/waw013.js +38 -0
  133. package/dist/lint/post-synth/waw014.js +42 -0
  134. package/dist/lint/post-synth/waw015.js +88 -0
  135. package/dist/lint/post-synth/waw016.d.ts.map +1 -1
  136. package/dist/lint/post-synth/waw016.js +116 -0
  137. package/dist/lint/post-synth/waw017.js +43 -0
  138. package/dist/lint/post-synth/waw018.js +61 -0
  139. package/dist/lint/post-synth/waw019.js +64 -0
  140. package/dist/lint/post-synth/waw020.js +56 -0
  141. package/dist/lint/post-synth/waw021.js +44 -0
  142. package/dist/lint/post-synth/waw022.js +36 -0
  143. package/dist/lint/post-synth/waw023.js +40 -0
  144. package/dist/lint/post-synth/waw024.js +46 -0
  145. package/dist/lint/post-synth/waw025.js +36 -0
  146. package/dist/lint/post-synth/waw026.js +38 -0
  147. package/dist/lint/post-synth/waw027.js +41 -0
  148. package/dist/lint/post-synth/waw028.js +39 -0
  149. package/dist/lint/post-synth/waw029.js +54 -0
  150. package/dist/lint/post-synth/waw030.js +282 -0
  151. package/dist/lint/post-synth/waw031.js +58 -0
  152. package/dist/lint/post-synth/waw032.js +45 -0
  153. package/dist/lint/post-synth/waw033.js +75 -0
  154. package/dist/lint/post-synth/waw034.js +52 -0
  155. package/dist/lint/post-synth/waw035.js +56 -0
  156. package/dist/lint/post-synth/waw036.js +79 -0
  157. package/dist/lint/post-synth/waw037.js +67 -0
  158. package/dist/lint/post-synth/waw038.js +42 -0
  159. package/dist/lint/post-synth/waw039.js +42 -0
  160. package/dist/lint/post-synth/waw040.js +45 -0
  161. package/dist/lint/post-synth/waw041.js +40 -0
  162. package/dist/lint/post-synth/waw042.js +99 -0
  163. package/dist/lint/post-synth/waw043.js +51 -0
  164. package/dist/lint/post-synth/waw044.js +64 -0
  165. package/dist/lint/post-synth/waw045.js +49 -0
  166. package/dist/lint/post-synth/waw046.js +52 -0
  167. package/dist/lint/post-synth/waw047.js +43 -0
  168. package/dist/lint/post-synth/waw048.js +40 -0
  169. package/dist/lint/post-synth/waw049.js +78 -0
  170. package/dist/lint/post-synth/waw050.js +44 -0
  171. package/dist/lint/post-synth/waw051.js +41 -0
  172. package/dist/lint/post-synth/waw052.js +43 -0
  173. package/dist/lint/post-synth/waw053.js +43 -0
  174. package/dist/lint/post-synth/waw054.js +41 -0
  175. package/dist/lint/post-synth/waw055.js +41 -0
  176. package/dist/lint/post-synth/waw056.js +65 -0
  177. package/dist/lint/post-synth/waw057.js +43 -0
  178. package/dist/lint/post-synth/waw058.js +61 -0
  179. package/dist/lint/post-synth/waw059.js +338 -0
  180. package/dist/lint/post-synth/waw060.js +83 -0
  181. package/dist/lint/post-synth/waw061.js +60 -0
  182. package/dist/lint/post-synth/waw062.js +0 -0
  183. package/dist/lint/post-synth/waw063.js +0 -0
  184. package/dist/lint/post-synth/waw064.js +45 -0
  185. package/dist/lint/post-synth/waw065.js +104 -0
  186. package/dist/lint/post-synth/waw066.js +145 -0
  187. package/dist/lint/post-synth/waw067.js +115 -0
  188. package/dist/lint/post-synth/waw068.js +69 -0
  189. package/dist/lint/post-synth/waw069.js +0 -0
  190. package/dist/lint/rules/hardcoded-region.js +38 -0
  191. package/dist/lint/rules/iam-wildcard.js +60 -0
  192. package/dist/lint/rules/index.js +6 -0
  193. package/dist/lint/rules/s3-encryption.js +60 -0
  194. package/dist/live-attrs.js +42 -0
  195. package/dist/lsp/completions.d.ts.map +1 -1
  196. package/dist/lsp/completions.js +18 -0
  197. package/dist/lsp/hover.d.ts.map +1 -1
  198. package/dist/lsp/hover.js +66 -0
  199. package/dist/manifest.json +1 -1
  200. package/dist/mapping.js +33 -0
  201. package/dist/meta.json +17359 -784
  202. package/dist/nested-stack.js +95 -0
  203. package/dist/okf/index.md +203 -0
  204. package/dist/okf/rules/EXT001.md +1 -0
  205. package/dist/okf/rules/WAW016.md +2 -0
  206. package/dist/okf/rules/WAW019.md +1 -0
  207. package/dist/okf/rules/WAW028.md +1 -0
  208. package/dist/okf/rules/WAW030.md +2 -0
  209. package/dist/okf/rules/WAW039.md +1 -0
  210. package/dist/okf/rules/WAW049.md +1 -0
  211. package/dist/okf/rules/WAW056.md +1 -0
  212. package/dist/okf/rules/WAW058.md +1 -0
  213. package/dist/okf/rules/WAW062.md +1 -0
  214. package/dist/okf/rules/WAW064.md +1 -0
  215. package/dist/okf/rules/WAW065.md +1 -0
  216. package/dist/okf/rules/WAW066.md +1 -0
  217. package/dist/okf/rules/WAW067.md +1 -0
  218. package/dist/okf/rules/WAW068.md +1 -0
  219. package/dist/okf/rules/WAW069.md +4 -0
  220. package/dist/okf/types/AIWorkloadConfig.md +23 -0
  221. package/dist/okf/types/ARCRegionSwitchPlan.md +1 -0
  222. package/dist/okf/types/AccountAccessApplication.md +28 -0
  223. package/dist/okf/types/AccountAccessEntitlement.md +22 -0
  224. package/dist/okf/types/ActionTarget.md +20 -0
  225. package/dist/okf/types/AdConfiguration.md +21 -0
  226. package/dist/okf/types/Adapter.md +26 -0
  227. package/dist/okf/types/AgentContext.md +35 -0
  228. package/dist/okf/types/AgentGoal.md +31 -0
  229. package/dist/okf/types/AgentProfile.md +34 -0
  230. package/dist/okf/types/Alarm.md +3 -1
  231. package/dist/okf/types/AlarmModel.md +14 -9
  232. package/dist/okf/types/AmplifyWebhook.md +25 -0
  233. package/dist/okf/types/ApiCache.md +8 -8
  234. package/dist/okf/types/ApiGatewayManagedOverrides.md +5 -5
  235. package/dist/okf/types/AppAuthorization.md +35 -0
  236. package/dist/okf/types/AppBlockBuilder.md +1 -0
  237. package/dist/okf/types/AppInstance.md +2 -2
  238. package/dist/okf/types/AppInstanceBot.md +2 -2
  239. package/dist/okf/types/AppStreamFleet.md +3 -2
  240. package/dist/okf/types/AppSyncApiKey.md +6 -6
  241. package/dist/okf/types/AppSyncType.md +22 -0
  242. package/dist/okf/types/ApplicationStatusCheck.md +36 -0
  243. package/dist/okf/types/ApplicationVersion.md +4 -1
  244. package/dist/okf/types/ApplicationsList.md +26 -0
  245. package/dist/okf/types/ApprovalPolicy.md +28 -0
  246. package/dist/okf/types/ArchiveRule.md +24 -0
  247. package/dist/okf/types/Asset.md +30 -0
  248. package/dist/okf/types/Backup.md +31 -0
  249. package/dist/okf/types/BedrockAgentCoreDataset.md +1 -1
  250. package/dist/okf/types/BedrockAgentCoreGateway.md +3 -0
  251. package/dist/okf/types/BedrockSession.md +28 -0
  252. package/dist/okf/types/BillEstimate.md +35 -0
  253. package/dist/okf/types/Brand.md +32 -0
  254. package/dist/okf/types/CallAnalyticsCategory.md +25 -0
  255. package/dist/okf/types/Campaign.md +28 -0
  256. package/dist/okf/types/CapacityProvider.md +30 -0
  257. package/dist/okf/types/Case.md +24 -0
  258. package/dist/okf/types/CertificateAssociation.md +13 -0
  259. package/dist/okf/types/ChangeSet.md +36 -0
  260. package/dist/okf/types/ChannelFlow.md +29 -0
  261. package/dist/okf/types/ChimeChannel.md +39 -0
  262. package/dist/okf/types/Classifier.md +6 -6
  263. package/dist/okf/types/ClientVpnAuthorizationRule.md +6 -6
  264. package/dist/okf/types/ClientVpnEndpoint.md +2 -0
  265. package/dist/okf/types/ClientVpnRoute.md +5 -5
  266. package/dist/okf/types/CloudConnector.md +29 -0
  267. package/dist/okf/types/Cluster.md +39 -0
  268. package/dist/okf/types/ClusterSchedulerConfig.md +30 -0
  269. package/dist/okf/types/CodeCommitRepository.md +12 -12
  270. package/dist/okf/types/CodeConnectionsHost.md +26 -0
  271. package/dist/okf/types/CodeRepository.md +5 -5
  272. package/dist/okf/types/CompositeAlarm.md +1 -0
  273. package/dist/okf/types/ComputeEnvironment.md +2 -0
  274. package/dist/okf/types/ComputeNodeGroup.md +1 -1
  275. package/dist/okf/types/ComputeQuota.md +34 -0
  276. package/dist/okf/types/ConfigRule.md +1 -1
  277. package/dist/okf/types/ConfigurationRecorder.md +7 -6
  278. package/dist/okf/types/ConnectAttachment.md +2 -0
  279. package/dist/okf/types/ConnectQueue.md +5 -1
  280. package/dist/okf/types/ConnectVocabulary.md +28 -0
  281. package/dist/okf/types/ConnectionType.md +24 -0
  282. package/dist/okf/types/ConsentPortal.md +33 -0
  283. package/dist/okf/types/ContactMethod.md +29 -0
  284. package/dist/okf/types/ContainerAssociation.md +26 -0
  285. package/dist/okf/types/ContainerFleet.md +1 -1
  286. package/dist/okf/types/ContainerGroupDefinition.md +1 -1
  287. package/dist/okf/types/Content.md +40 -0
  288. package/dist/okf/types/ContentAssociation.md +28 -0
  289. package/dist/okf/types/CustomDetectionRuleAssociation.md +28 -0
  290. package/dist/okf/types/CustomEntityType.md +4 -9
  291. package/dist/okf/types/Customization.md +22 -0
  292. package/dist/okf/types/CwIntegration.md +31 -0
  293. package/dist/okf/types/DAXParameterGroup.md +3 -8
  294. package/dist/okf/types/DAXSubnetGroup.md +0 -5
  295. package/dist/okf/types/DBClusterEndpoint.md +31 -0
  296. package/dist/okf/types/DBProxyTargetGroup.md +1 -0
  297. package/dist/okf/types/DBSnapshot.md +62 -0
  298. package/dist/okf/types/DLMLifecyclePolicy.md +12 -12
  299. package/dist/okf/types/DLPSetting.md +31 -0
  300. package/dist/okf/types/DMSInstanceProfile.md +1 -1
  301. package/dist/okf/types/DRSLaunchConfigurationTemplate.md +28 -0
  302. package/dist/okf/types/Daemon.md +1 -0
  303. package/dist/okf/types/DataExchangeDataSet.md +29 -0
  304. package/dist/okf/types/DataIntegrationFlow.md +27 -0
  305. package/dist/okf/types/DataMigration.md +1 -1
  306. package/dist/okf/types/DataProvider.md +2 -1
  307. package/dist/okf/types/DataQualityRuleset.md +6 -11
  308. package/dist/okf/types/DataSource.md +23 -0
  309. package/dist/okf/types/Dataset.md +20 -0
  310. package/dist/okf/types/DatasetIntegration.md +23 -0
  311. package/dist/okf/types/DbCluster.md +1 -1
  312. package/dist/okf/types/DbInstance.md +8 -2
  313. package/dist/okf/types/DeadlineBudget.md +29 -0
  314. package/dist/okf/types/DelegationSet.md +23 -0
  315. package/dist/okf/types/DeliveryChannel.md +6 -11
  316. package/dist/okf/types/DevOpsAgentAgentSpace.md +4 -0
  317. package/dist/okf/types/DevOpsAgentService.md +1 -0
  318. package/dist/okf/types/DevOpsAgentTrigger.md +28 -0
  319. package/dist/okf/types/DirectConnectGatewayAttachment.md +2 -0
  320. package/dist/okf/types/Directory.md +60 -0
  321. package/dist/okf/types/DocDBDBClusterParameterGroup.md +5 -10
  322. package/dist/okf/types/DocDBDBSubnetGroup.md +4 -9
  323. package/dist/okf/types/DocDBElasticClusterSnapshot.md +36 -0
  324. package/dist/okf/types/DocumentClassifierEndpoint.md +27 -0
  325. package/dist/okf/types/Domain.md +27 -0
  326. package/dist/okf/types/EKSCertificateAuthority.md +42 -0
  327. package/dist/okf/types/EKSCluster.md +8 -0
  328. package/dist/okf/types/EcSnapshot.md +66 -0
  329. package/dist/okf/types/EmailIdentityCertificate.md +15 -0
  330. package/dist/okf/types/EndpointConfig.md +14 -13
  331. package/dist/okf/types/EntityRecognizer.md +27 -0
  332. package/dist/okf/types/EntityRecognizerEndpoint.md +31 -0
  333. package/dist/okf/types/EnvironmentEC2.md +13 -13
  334. package/dist/okf/types/EvaluationForm.md +1 -0
  335. package/dist/okf/types/Evaluator.md +6 -2
  336. package/dist/okf/types/EventAction.md +26 -0
  337. package/dist/okf/types/EventRule.md +2 -0
  338. package/dist/okf/types/EventSource.md +30 -0
  339. package/dist/okf/types/EventTracker.md +22 -0
  340. package/dist/okf/types/EventsV2EventBus.md +28 -0
  341. package/dist/okf/types/EventsV2ResourcePolicy.md +19 -0
  342. package/dist/okf/types/EventsV2Subscriber.md +39 -0
  343. package/dist/okf/types/ExperimentDefinition.md +39 -0
  344. package/dist/okf/types/ExperimentRun.md +33 -0
  345. package/dist/okf/types/ExperimentTrialComponent.md +13 -11
  346. package/dist/okf/types/FHIRDatastore.md +3 -0
  347. package/dist/okf/types/FSxSnapshot.md +5 -5
  348. package/dist/okf/types/FSxVolume.md +9 -9
  349. package/dist/okf/types/FeaturedResultsSet.md +26 -0
  350. package/dist/okf/types/Feed.md +1 -0
  351. package/dist/okf/types/FieldLevelEncryptionConfig.md +25 -0
  352. package/dist/okf/types/FieldLevelEncryptionProfile.md +22 -0
  353. package/dist/okf/types/FileCache.md +45 -0
  354. package/dist/okf/types/Filter.md +27 -0
  355. package/dist/okf/types/Firewall.md +6 -0
  356. package/dist/okf/types/FlowMediaStream.md +28 -0
  357. package/dist/okf/types/FlowOutput.md +1 -0
  358. package/dist/okf/types/FpgaImage.md +38 -0
  359. package/dist/okf/types/Function.md +2 -2
  360. package/dist/okf/types/Gateway.md +41 -0
  361. package/dist/okf/types/GatewayClusterAssociations.md +23 -0
  362. package/dist/okf/types/GatewayRateLimit.md +26 -0
  363. package/dist/okf/types/GatewayRule.md +32 -0
  364. package/dist/okf/types/GlobalReplicationGroup.md +3 -0
  365. package/dist/okf/types/GlobalResolver.md +1 -1
  366. package/dist/okf/types/GlobalTable.md +1 -0
  367. package/dist/okf/types/GlueConnection.md +5 -4
  368. package/dist/okf/types/GlueSecurityConfiguration.md +1 -6
  369. package/dist/okf/types/GlueSession.md +38 -0
  370. package/dist/okf/types/GlueTable.md +5 -10
  371. package/dist/okf/types/GlueWorkflow.md +5 -10
  372. package/dist/okf/types/Group.md +27 -0
  373. package/dist/okf/types/Harness.md +1 -0
  374. package/dist/okf/types/HostKey.md +33 -0
  375. package/dist/okf/types/HostedZone.md +1 -0
  376. package/dist/okf/types/HttpApi.md +2 -0
  377. package/dist/okf/types/HttpNamespace.md +5 -5
  378. package/dist/okf/types/HubV2.md +1 -0
  379. package/dist/okf/types/HumanTaskUi.md +22 -0
  380. package/dist/okf/types/IPv4Pool.md +28 -0
  381. package/dist/okf/types/ImageBuilder.md +1 -0
  382. package/dist/okf/types/ImageBuilderImage.md +1 -1
  383. package/dist/okf/types/ImagePipeline.md +1 -1
  384. package/dist/okf/types/InferenceComponent.md +5 -1
  385. package/dist/okf/types/InfluxDBBackup.md +65 -0
  386. package/dist/okf/types/InfluxDBCluster.md +3 -0
  387. package/dist/okf/types/InfrastructureConfiguration.md +2 -0
  388. package/dist/okf/types/IngestionDestination.md +28 -0
  389. package/dist/okf/types/InputSecurityGroup.md +6 -4
  390. package/dist/okf/types/InspectorV2Connector.md +38 -0
  391. package/dist/okf/types/InstanceEventWindow.md +25 -0
  392. package/dist/okf/types/InstanceFleetConfig.md +10 -10
  393. package/dist/okf/types/InstanceGroupConfig.md +3 -3
  394. package/dist/okf/types/InstrumentationConfig.md +31 -0
  395. package/dist/okf/types/IntegrationAssociation.md +3 -0
  396. package/dist/okf/types/IoTSiteWiseApplication.md +34 -0
  397. package/dist/okf/types/IoTSiteWiseDataset.md +5 -2
  398. package/dist/okf/types/IoTSiteWiseTask.md +24 -0
  399. package/dist/okf/types/IpamExternalResourceVerificationToken.md +35 -0
  400. package/dist/okf/types/IpamInternetRegistryAssociation.md +32 -0
  401. package/dist/okf/types/Job.md +35 -0
  402. package/dist/okf/types/JobTemplate.md +26 -0
  403. package/dist/okf/types/KinesisChannel.md +31 -0
  404. package/dist/okf/types/KinesisStream.md +1 -0
  405. package/dist/okf/types/LambdaResourcePolicy.md +14 -0
  406. package/dist/okf/types/Lexicon.md +34 -0
  407. package/dist/okf/types/LicenseAssetGroup.md +23 -0
  408. package/dist/okf/types/LicenseConfiguration.md +33 -0
  409. package/dist/okf/types/LicenseServerEndpoint.md +32 -0
  410. package/dist/okf/types/LightsailKeyPair.md +29 -0
  411. package/dist/okf/types/LimitsProfile.md +27 -0
  412. package/dist/okf/types/LocationAzureBlob.md +2 -1
  413. package/dist/okf/types/LocationObjectStorage.md +1 -0
  414. package/dist/okf/types/LogAlarm.md +2 -0
  415. package/dist/okf/types/MGNConnector.md +23 -0
  416. package/dist/okf/types/MGNLaunchConfigurationTemplate.md +37 -0
  417. package/dist/okf/types/MLTransform.md +15 -15
  418. package/dist/okf/types/MWAAServerlessWorkflow.md +3 -0
  419. package/dist/okf/types/ManagedNotificationAccountContactAssociation.md +1 -0
  420. package/dist/okf/types/ManagedNotificationAdditionalChannelAssociation.md +1 -0
  421. package/dist/okf/types/MediaConvertJobTemplate.md +11 -13
  422. package/dist/okf/types/MediaConvertQueue.md +8 -10
  423. package/dist/okf/types/MediaInsightsPipelineConfiguration.md +28 -0
  424. package/dist/okf/types/MediaLiveInput.md +41 -18
  425. package/dist/okf/types/MediaPackageV2Channel.md +3 -0
  426. package/dist/okf/types/MediaPackageV2OriginEndpoint.md +1 -0
  427. package/dist/okf/types/MediaPipelineKinesisVideoStreamPool.md +28 -0
  428. package/dist/okf/types/MediaTailorFunction.md +27 -0
  429. package/dist/okf/types/MedicalVocabulary.md +21 -0
  430. package/dist/okf/types/Member.md +26 -0
  431. package/dist/okf/types/Memory.md +6 -0
  432. package/dist/okf/types/MemoryDBSnapshot.md +29 -0
  433. package/dist/okf/types/Metric.md +59 -0
  434. package/dist/okf/types/MetricAttribution.md +23 -0
  435. package/dist/okf/types/MicrosoftAD.md +11 -11
  436. package/dist/okf/types/MigrationProject.md +8 -1
  437. package/dist/okf/types/Monitor.md +26 -0
  438. package/dist/okf/types/NFSFileShare.md +44 -0
  439. package/dist/okf/types/NeptuneGraphGraph.md +1 -0
  440. package/dist/okf/types/NetworkConnector.md +4 -0
  441. package/dist/okf/types/NetworkFlowMonitorScope.md +23 -0
  442. package/dist/okf/types/NetworkMigrationDefinition.md +31 -0
  443. package/dist/okf/types/NetworkSecurityManagerDeployment.md +31 -0
  444. package/dist/okf/types/NetworkSecurityManagerPolicy.md +32 -0
  445. package/dist/okf/types/NetworkSecurityManagerScope.md +29 -0
  446. package/dist/okf/types/NotebookInstance.md +18 -18
  447. package/dist/okf/types/NotebookInstanceLifecycleConfig.md +6 -5
  448. package/dist/okf/types/NotifyConfiguration.md +35 -0
  449. package/dist/okf/types/OTelEnrichment.md +2 -0
  450. package/dist/okf/types/OnlineEvaluationConfig.md +0 -1
  451. package/dist/okf/types/OrganizationConfigRule.md +7 -7
  452. package/dist/okf/types/Outpost.md +32 -0
  453. package/dist/okf/types/ParallelData.md +40 -0
  454. package/dist/okf/types/Partition.md +5 -5
  455. package/dist/okf/types/PaymentConnector.md +4 -1
  456. package/dist/okf/types/Pentest.md +1 -0
  457. package/dist/okf/types/PerfReports.md +28 -0
  458. package/dist/okf/types/PermissionAssociation.md +30 -0
  459. package/dist/okf/types/PersonalizeDataset.md +1 -0
  460. package/dist/okf/types/PersonalizeDatasetGroup.md +1 -0
  461. package/dist/okf/types/PersonalizeSchema.md +1 -0
  462. package/dist/okf/types/Pipeline.md +25 -0
  463. package/dist/okf/types/PlaybackConfiguration.md +1 -0
  464. package/dist/okf/types/PolicyAssociation.md +1 -1
  465. package/dist/okf/types/PolicyGrant.md +2 -2
  466. package/dist/okf/types/PolicyPrincipalAttachment.md +2 -7
  467. package/dist/okf/types/PortalProduct.md +24 -0
  468. package/dist/okf/types/PrefetchSchedule.md +25 -0
  469. package/dist/okf/types/PricingPlanManagerSubscription.md +31 -0
  470. package/dist/okf/types/PrincipalAssociation.md +27 -0
  471. package/dist/okf/types/PrivateDnsNamespace.md +8 -8
  472. package/dist/okf/types/PrivateVirtualInterface.md +1 -0
  473. package/dist/okf/types/ProcurementPortalPreference.md +45 -0
  474. package/dist/okf/types/Program.md +33 -0
  475. package/dist/okf/types/ProjectMembership.md +1 -1
  476. package/dist/okf/types/ProtocolsList.md +26 -0
  477. package/dist/okf/types/PublicDnsNamespace.md +7 -7
  478. package/dist/okf/types/PublicVirtualInterface.md +1 -0
  479. package/dist/okf/types/QEV2IdcApplication.md +25 -0
  480. package/dist/okf/types/QueryLoggingConfig.md +21 -0
  481. package/dist/okf/types/QuerySuggestionsBlockList.md +25 -0
  482. package/dist/okf/types/QuickSightAssignment.md +24 -0
  483. package/dist/okf/types/RAMResourceAssociation.md +27 -0
  484. package/dist/okf/types/RDSClusterSnapshot.md +54 -0
  485. package/dist/okf/types/RDSDBParameterGroup.md +5 -0
  486. package/dist/okf/types/RDSDeployment.md +41 -0
  487. package/dist/okf/types/RcsAgent.md +38 -0
  488. package/dist/okf/types/ReceiptRule.md +5 -5
  489. package/dist/okf/types/ReceiptRuleSet.md +1 -6
  490. package/dist/okf/types/RecommenderFilter.md +27 -0
  491. package/dist/okf/types/RecommenderSchema.md +25 -0
  492. package/dist/okf/types/RecordSet.md +16 -22
  493. package/dist/okf/types/RecoveryPlan.md +28 -0
  494. package/dist/okf/types/RedshiftIdcApplication.md +31 -0
  495. package/dist/okf/types/RedshiftSnapshot.md +59 -0
  496. package/dist/okf/types/RegistrationAttachment.md +28 -0
  497. package/dist/okf/types/Registry.md +41 -0
  498. package/dist/okf/types/RegistryRecord.md +38 -0
  499. package/dist/okf/types/RelatedItem.md +24 -0
  500. package/dist/okf/types/ReplicationConfigurationTemplate.md +35 -0
  501. package/dist/okf/types/ReplicationSubnetGroup.md +4 -9
  502. package/dist/okf/types/ReplicationTask.md +14 -14
  503. package/dist/okf/types/ReportGenerator.md +29 -0
  504. package/dist/okf/types/ReportGroup.md +1 -3
  505. package/dist/okf/types/ResilienceHubV2Policy.md +1 -0
  506. package/dist/okf/types/ResilienceHubV2Service.md +1 -0
  507. package/dist/okf/types/ResourceConfiguration.md +1 -1
  508. package/dist/okf/types/ResourceMetricsConfiguration.md +21 -0
  509. package/dist/okf/types/RestApi.md +1 -0
  510. package/dist/okf/types/RetrievalInstruction.md +32 -0
  511. package/dist/okf/types/RouterOutput.md +1 -0
  512. package/dist/okf/types/Rule.md +31 -0
  513. package/dist/okf/types/RunCache.md +29 -0
  514. package/dist/okf/types/Runtime.md +2 -1
  515. package/dist/okf/types/SCNInstance.md +33 -0
  516. package/dist/okf/types/SDBDomain.md +2 -2
  517. package/dist/okf/types/SMBFileShare.md +49 -0
  518. package/dist/okf/types/SageMakerArtifact.md +27 -0
  519. package/dist/okf/types/SageMakerEndpoint.md +0 -1
  520. package/dist/okf/types/ScalableTarget.md +1 -0
  521. package/dist/okf/types/ScalingPlan.md +6 -6
  522. package/dist/okf/types/ScheduledReport.md +31 -0
  523. package/dist/okf/types/SecondaryNetwork.md +26 -0
  524. package/dist/okf/types/SecurityAgentArtifact.md +25 -0
  525. package/dist/okf/types/SecurityAgentIntegration.md +31 -0
  526. package/dist/okf/types/Server.md +1 -0
  527. package/dist/okf/types/ServerlessCache.md +2 -0
  528. package/dist/okf/types/ServerlessCacheSnapshot.md +31 -0
  529. package/dist/okf/types/ServerlessRepoApplication.md +32 -0
  530. package/dist/okf/types/ServiceDiscoveryInstance.md +3 -7
  531. package/dist/okf/types/SipMediaApplication.md +27 -0
  532. package/dist/okf/types/SiteToSiteVpnAttachment.md +2 -0
  533. package/dist/okf/types/SnapshotCopyGrant.md +20 -0
  534. package/dist/okf/types/Solution.md +1 -0
  535. package/dist/okf/types/SourceAssociation.md +25 -0
  536. package/dist/okf/types/SourceCredential.md +6 -6
  537. package/dist/okf/types/SourceNetwork.md +23 -0
  538. package/dist/okf/types/StackFleetAssociation.md +2 -7
  539. package/dist/okf/types/StorageTierPolicy.md +20 -0
  540. package/dist/okf/types/StorageVirtualMachine.md +9 -9
  541. package/dist/okf/types/Stream.md +28 -0
  542. package/dist/okf/types/SubnetCidrReservation.md +26 -0
  543. package/dist/okf/types/SubscriptionProvider.md +26 -0
  544. package/dist/okf/types/SupportPermit.md +29 -0
  545. package/dist/okf/types/Table.md +2 -1
  546. package/dist/okf/types/TableOptimizer.md +5 -10
  547. package/dist/okf/types/Tape.md +31 -0
  548. package/dist/okf/types/Template.md +36 -0
  549. package/dist/okf/types/Tenant.md +2 -0
  550. package/dist/okf/types/Terminology.md +39 -0
  551. package/dist/okf/types/Thesaurus.md +25 -0
  552. package/dist/okf/types/ThingPrincipalAttachment.md +3 -8
  553. package/dist/okf/types/Topic.md +1 -0
  554. package/dist/okf/types/TopicRuleDestination.md +1 -0
  555. package/dist/okf/types/TrafficPolicy.md +26 -0
  556. package/dist/okf/types/TrafficPolicyInstance.md +28 -0
  557. package/dist/okf/types/TranscribeVocabulary.md +27 -0
  558. package/dist/okf/types/TransitGatewayRouteTableAttachment.md +2 -0
  559. package/dist/okf/types/TransitVirtualInterface.md +1 -0
  560. package/dist/okf/types/Tunnel.md +25 -0
  561. package/dist/okf/types/UsageLimit.md +26 -0
  562. package/dist/okf/types/UseCase.md +23 -0
  563. package/dist/okf/types/User.md +47 -0
  564. package/dist/okf/types/VPCEndpoint.md +1 -1
  565. package/dist/okf/types/VPCEndpointService.md +6 -0
  566. package/dist/okf/types/VPCPeeringConnection.md +2 -2
  567. package/dist/okf/types/VPNConcentrator.md +1 -1
  568. package/dist/okf/types/VPNConnection.md +1 -1
  569. package/dist/okf/types/VerifiedDestinationNumber.md +25 -0
  570. package/dist/okf/types/View.md +27 -0
  571. package/dist/okf/types/VoiceConnector.md +30 -0
  572. package/dist/okf/types/Volume.md +44 -0
  573. package/dist/okf/types/Vpc.md +1 -1
  574. package/dist/okf/types/VpcAttachment.md +2 -0
  575. package/dist/okf/types/WebFunction.md +27 -0
  576. package/dist/okf/types/WebFunctionEndpoint.md +44 -0
  577. package/dist/okf/types/WebFunctionRevision.md +32 -0
  578. package/dist/okf/types/WickrNetwork.md +27 -0
  579. package/dist/okf/types/Worker.md +29 -0
  580. package/dist/okf/types/Workforce.md +26 -0
  581. package/dist/okf/types/Workload.md +35 -0
  582. package/dist/okf/types/WorkloadEstimate.md +35 -0
  583. package/dist/okf/types/Workspace.md +28 -0
  584. package/dist/okf/types/Workteam.md +8 -8
  585. package/dist/op/activities/aws-apply.js +214 -0
  586. package/dist/op/activities/floci.js +97 -0
  587. package/dist/op/activities/index.js +32 -0
  588. package/dist/op/builders.js +50 -0
  589. package/dist/ownership.js +52 -0
  590. package/dist/package-cli.js +25 -0
  591. package/dist/parameter.js +19 -0
  592. package/dist/plugin.d.ts.map +1 -1
  593. package/dist/plugin.js +1012 -0
  594. package/dist/properties.js +166 -0
  595. package/dist/pseudo.js +25 -0
  596. package/dist/receipt-store.d.ts.map +1 -1
  597. package/dist/receipt-store.js +233 -0
  598. package/dist/reference-catalog.js +106 -0
  599. package/dist/rules/ext001.ts +3 -3
  600. package/dist/rules/waw016.ts +2 -2
  601. package/dist/serializer.js +529 -0
  602. package/dist/spec/fetch.js +193 -0
  603. package/dist/spec/parse.js +259 -0
  604. package/dist/spec/pin.js +185 -0
  605. package/dist/spec/pinned-types.json +203 -0
  606. package/dist/stack-errors.js +14 -0
  607. package/dist/taggable.d.ts.map +1 -1
  608. package/dist/taggable.js +33 -0
  609. package/dist/teardown.js +199 -0
  610. package/dist/template-sections.js +53 -0
  611. package/dist/template-transform.js +50 -0
  612. package/dist/types/index.d.ts +18847 -1124
  613. package/dist/validate-cli.js +16 -0
  614. package/dist/validate.js +33 -0
  615. package/package.json +9 -9
  616. package/src/agentcore/trace-fetch.ts +2 -1
  617. package/src/api/credential-chain.ts +119 -9
  618. package/src/api/credential-isolation.test.ts +72 -0
  619. package/src/api/read-client-chain.test.ts +159 -0
  620. package/src/api/read-client.ts +42 -6
  621. package/src/api/sigv4.ts +4 -4
  622. package/src/caller-identity.ts +3 -5
  623. package/src/codegen/any-budget.test.ts +12 -2
  624. package/src/codegen/generate.ts +9 -0
  625. package/src/codegen/package.ts +2 -2
  626. package/src/codegen/patches.test.ts +95 -0
  627. package/src/codegen/patches.ts +53 -9
  628. package/src/codegen/property-overlay.json +1 -16
  629. package/src/components/apply.ts +218 -6
  630. package/src/components/cfn-plan-floci.e2e.test.ts +76 -0
  631. package/src/components/cfn-plan.test.ts +225 -16
  632. package/src/components/cloud-executor.ts +73 -25
  633. package/src/deep-observe.ts +2 -1
  634. package/src/disruption.ts +2 -1
  635. package/src/generated/index.d.ts +18847 -1124
  636. package/src/generated/index.ts +1376 -161
  637. package/src/generated/lexicon-aws.json +17359 -784
  638. package/src/health.test.ts +136 -0
  639. package/src/health.ts +281 -0
  640. package/src/identity-observe.ts +2 -1
  641. package/src/lint/post-synth/ext001.ts +3 -3
  642. package/src/lint/post-synth/waw016.ts +2 -2
  643. package/src/lsp/completions.ts +2 -1
  644. package/src/lsp/hover.ts +2 -1
  645. package/src/plugin.ts +10 -1
  646. package/src/receipt-store.ts +2 -1
  647. package/src/spec/pin.ts +3 -3
  648. package/src/spec/pinned-types.json +203 -0
  649. package/src/taggable.ts +2 -2
@@ -21,8 +21,11 @@
21
21
  *
22
22
  * Requests are signed with SigV4 (#1686) when credentials resolve — see
23
23
  * `./sigv4.ts`, which holds the implementation so that cedar's AVP client can
24
- * adopt the same one rather than growing a second. Two cases stay unsigned, and
25
- * both are deliberate:
24
+ * adopt the same one rather than growing a second. With none injected, they
25
+ * resolve through the AWS CLI's chain (`./credential-chain.ts`, the one
26
+ * `chant lifecycle whoami` walks) once per process, by
27
+ * {@link withChainCredentials} (#3958). Two cases stay unsigned, and both are
28
+ * deliberate:
26
29
  *
27
30
  * - **No credentials.** The caller's existing no-credentials path is
28
31
  * untouched: the request still goes out carrying only the credential scope
@@ -41,6 +44,8 @@
41
44
  * a lexicon build compiles against the published core, so a helper hoisted
42
45
  * into core would not be visible to either until the next core release.
43
46
  */
47
+ import { homedir } from "node:os";
48
+ import { transportCredentials } from "./credential-chain";
44
49
  import { resolveCredentials, signRequest, type AwsCredentialSource } from "./sigv4";
45
50
 
46
51
  export type { AwsCredentials, AwsCredentialResolver, AwsCredentialSource } from "./sigv4";
@@ -219,6 +224,37 @@ export function requestHeaders(
219
224
  });
220
225
  }
221
226
 
227
+ /**
228
+ * `options` with literal credentials from the AWS CLI's credential chain
229
+ * (#3958), when the caller injected none and the request will be signed.
230
+ *
231
+ * Every request function awaits this after {@link withEndpointOverride} and
232
+ * before {@link requestHeaders}, whose seam is synchronous. The chain is not
233
+ * walked against an endpoint override that is not signed: an emulator read
234
+ * should not start an SSO refresh or a `credential_process`, the same rule
235
+ * whoami follows. When nothing resolves the options come back unchanged and
236
+ * the request goes out unsigned, as it did before.
237
+ *
238
+ * An injected `env` without `HOME`, `USERPROFILE`, `AWS_CONFIG_FILE` or
239
+ * `AWS_SHARED_CREDENTIALS_FILE` names no shared files, so only its keys are
240
+ * read; the process's own `~/.aws` is not consulted behind it.
241
+ */
242
+ export async function withChainCredentials(options: AwsReadClientOptions): Promise<AwsReadClientOptions> {
243
+ if (options.credentials) return options;
244
+ if (options.endpoint && options.signEndpointOverride !== true) return options;
245
+ const env = options.env ?? process.env;
246
+ const home = env.HOME || env.USERPROFILE;
247
+ if (options.env && options.env !== process.env && !home && !env.AWS_CONFIG_FILE && !env.AWS_SHARED_CREDENTIALS_FILE) {
248
+ return options;
249
+ }
250
+ const credentials = await transportCredentials({
251
+ env,
252
+ home: home || homedir(),
253
+ sts: { ...(options.http ? { http: options.http } : {}), env },
254
+ });
255
+ return credentials ? { ...options, credentials } : options;
256
+ }
257
+
222
258
  /* ── CloudFormation Query ─────────────────────────────────────────────────── */
223
259
 
224
260
  /**
@@ -275,7 +311,7 @@ export async function cfnQuery(
275
311
  params: Record<string, string>,
276
312
  options: AwsReadClientOptions = {},
277
313
  ): Promise<string> {
278
- options = withEndpointOverride("cloudformation", options);
314
+ options = await withChainCredentials(withEndpointOverride("cloudformation", options));
279
315
  const http = options.http ?? defaultHttp;
280
316
  const url = serviceUrl("cloudformation", options.endpoint, options.region);
281
317
  const body = new URLSearchParams({ Action: action, Version: CFN_API_VERSION, ...params }).toString();
@@ -388,7 +424,7 @@ export interface CallerIdentity {
388
424
  * and the narrower the surface, the fewer ways a credential reaches a report.
389
425
  */
390
426
  export async function getCallerIdentity(options: AwsReadClientOptions = {}): Promise<CallerIdentity> {
391
- options = withEndpointOverride("sts", options);
427
+ options = await withChainCredentials(withEndpointOverride("sts", options));
392
428
  const http = options.http ?? defaultHttp;
393
429
  const url = serviceUrl("sts", options.endpoint, options.region);
394
430
  const body = new URLSearchParams({ Action: "GetCallerIdentity", Version: STS_API_VERSION }).toString();
@@ -431,7 +467,7 @@ export async function assumeRole(
431
467
  params: { roleArn: string; sessionName: string; externalId?: string; durationSeconds?: number },
432
468
  options: AwsReadClientOptions = {},
433
469
  ): Promise<AssumedRoleCredentials> {
434
- options = withEndpointOverride("sts", options);
470
+ options = await withChainCredentials(withEndpointOverride("sts", options));
435
471
  const http = options.http ?? defaultHttp;
436
472
  const url = serviceUrl("sts", options.endpoint, options.region);
437
473
  const body = new URLSearchParams({
@@ -484,7 +520,7 @@ async function cloudControl(
484
520
  payload: Record<string, unknown>,
485
521
  options: AwsReadClientOptions = {},
486
522
  ): Promise<Record<string, unknown>> {
487
- options = withEndpointOverride("cloudcontrolapi", options);
523
+ options = await withChainCredentials(withEndpointOverride("cloudcontrolapi", options));
488
524
  const http = options.http ?? defaultHttp;
489
525
  const url = serviceUrl("cloudcontrolapi", options.endpoint, options.region);
490
526
  const payloadJson = JSON.stringify(payload);
package/src/api/sigv4.ts CHANGED
@@ -70,10 +70,10 @@ export type AwsCredentialSource = AwsCredentials | AwsCredentialResolver;
70
70
  * environment — a key id with no secret — is absent rather than a signature
71
71
  * that cannot verify.
72
72
  *
73
- * Deliberately not implemented: the profile file, IMDS, and the container
74
- * credential endpoints. Each is a separate transport with its own failure and
75
- * caching story; a caller that has those can resolve them itself and pass the
76
- * result in, which is what the resolver seam is for.
73
+ * The shared profile files are resolved asynchronously by
74
+ * `./credential-chain.ts`, and the read transport passes its answer in as
75
+ * literal credentials (#3958), so this function stays synchronous. Not
76
+ * implemented anywhere: IMDS and the container credential endpoints.
77
77
  */
78
78
  export function resolveCredentials(
79
79
  source?: AwsCredentialSource,
@@ -29,11 +29,9 @@
29
29
  * while `aws sts get-caller-identity` answered with a principal. An expired
30
30
  * SSO session is `no-credentials` naming `aws sso login --profile <p>`.
31
31
  *
32
- * The native read transport still signs with environment keys only
33
- * (`resolveCredentials` in ./api/sigv4.ts; #3958). So a profile-sourced row says
34
- * what the CLI, and anything shelling out to it, would act as; it does not
35
- * yet say what `describeResources` signs with. The `source` column names the
36
- * profile, so the difference is visible.
32
+ * The native read transport walks the same chain (`transportCredentials`,
33
+ * #3958), so a profile-sourced row also says what `describeResources` signs
34
+ * with.
37
35
  *
38
36
  * Against an endpoint override the chain is not walked: the emulator call is
39
37
  * unsigned whatever resolves, and a whoami against Floci should not start an
@@ -25,9 +25,19 @@ const dtsPath = join(pkgDir, "src/generated/index.d.ts");
25
25
  * with nothing beside it, one upstream `$ref` to an undeclared definition, and
26
26
  * one `$ref` to a definition that is itself a bare `$ref`. Plus 38
27
27
  * non-constructor `any`s (readonly attributes and intrinsic return types).
28
+ *
29
+ * The 2026-10-19 spec pin (#3960) added 5 of each, all from schemas the new
30
+ * spec brought in rather than from a resolver change. `: any;`:
31
+ * QuickSight::DLPSetting.ProviderConfig, QuickSight::ApprovalPolicy
32
+ * ApplicableTo.Type (exported twice) and the new Connect::Rule
33
+ * InAppNotificationRecipientType.UserTags (exported twice). `: any[];`:
34
+ * QuickSight::ApprovalPolicy Actions and AssetTypes, BedrockAgentCore::GatewayRule
35
+ * Actions and Conditions, and the new BedrockAgentCore::Gateway
36
+ * InterceptorPayloadFilter.Exclude (exported twice), less one: the bare `Group`
37
+ * export now names AWS::QuickSight::Group.
28
38
  */
29
- const ANY_BUDGET = 226;
30
- const ANY_ARRAY_BUDGET = 20;
39
+ const ANY_BUDGET = 231;
40
+ const ANY_ARRAY_BUDGET = 25;
31
41
 
32
42
  describe.skipIf(!existsSync(dtsPath))("generated `any` budget", () => {
33
43
  const dts = existsSync(dtsPath) ? readFileSync(dtsPath, "utf-8") : "";
@@ -104,9 +104,18 @@ const awsPipelineConfig: GeneratePipelineConfig<SchemaParseResult> = {
104
104
  const { schemas: patched, stats } = applyPatches(schemas, patchesDir);
105
105
  schemas = patched;
106
106
  log(`Applied ${stats.patchesApplied} patches across ${stats.resourcesFixed} resources`);
107
+ for (const s of stats.skipped) {
108
+ log(`Skipped known-stale patch ${s.stale.typeName}/${s.stale.patchFile}: ${s.stale.reason} (${s.error.message})`);
109
+ }
107
110
  for (const w of stats.warnings) {
108
111
  warnings.push({ file: `${w.typeName}/${w.patchFile}`, error: w.error.message });
109
112
  }
113
+ for (const r of stats.retirable) {
114
+ warnings.push({
115
+ file: `${r.typeName}/${r.patchFile}`,
116
+ error: `listed in KNOWN_STALE_PATCHES (src/codegen/patches.ts) but did not fail; retire the entry`,
117
+ });
118
+ }
110
119
  } catch (err) {
111
120
  log(`WARNING: failed to fetch cfn-lint patches: ${err}`);
112
121
  }
@@ -6,7 +6,7 @@
6
6
  import { readFileSync } from "fs";
7
7
  import { awsPlugin } from "../plugin";
8
8
  import { join, dirname } from "path";
9
- import { fileURLToPath } from "url";
9
+ import { moduleSourceDir } from "@intentius/chant/module-source";
10
10
  import type { IntrinsicDef } from "@intentius/chant/lexicon";
11
11
  import {
12
12
  packagePipeline,
@@ -18,7 +18,7 @@ import { generate } from "./generate";
18
18
 
19
19
  export type { PackageOptions, PackageResult };
20
20
 
21
- const pkgDir = dirname(dirname(fileURLToPath(import.meta.url)));
21
+ const pkgDir = dirname(moduleSourceDir(import.meta.url));
22
22
 
23
23
  /**
24
24
  * Map intrinsic name to its CloudFormation output key.
@@ -0,0 +1,95 @@
1
+ import { describe, test, expect, beforeEach, afterEach } from "vitest";
2
+ import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "fs";
3
+ import { join } from "path";
4
+ import { tmpdir } from "os";
5
+ import { applyPatches, KNOWN_STALE_PATCHES, typeNameToPatchDir, type StalePatch } from "./patches";
6
+ import { PINNED_VERSIONS } from "./versions";
7
+
8
+ const MEDIALIVE = "AWS::MediaLive::InputSecurityGroup";
9
+
10
+ // The patch cfn-lint v1.32.4 ships for MediaLive, verbatim.
11
+ const MEDIALIVE_FORMAT_PATCH = [
12
+ { op: "add", path: "/definitions/InputWhitelistRuleCidr/properties/Cidr/format", value: "ipv4-network" },
13
+ ];
14
+
15
+ // The shape the 2026-10-19 spec gives the definition, trimmed.
16
+ const medialiveSchema = (definition: string) =>
17
+ Buffer.from(
18
+ JSON.stringify({
19
+ typeName: MEDIALIVE,
20
+ definitions: { [definition]: { type: "object", properties: { Cidr: { type: "string" } } } },
21
+ properties: {},
22
+ }),
23
+ );
24
+
25
+ let dir: string;
26
+
27
+ const writePatch = (typeName: string, file: string, ops: unknown) => {
28
+ const d = join(dir, typeNameToPatchDir(typeName));
29
+ mkdirSync(d, { recursive: true });
30
+ writeFileSync(join(d, file), JSON.stringify(ops));
31
+ };
32
+
33
+ beforeEach(() => {
34
+ dir = mkdtempSync(join(tmpdir(), "cfn-lint-patches-"));
35
+ });
36
+
37
+ afterEach(() => {
38
+ rmSync(dir, { recursive: true, force: true });
39
+ });
40
+
41
+ describe("applyPatches known-stale tracking", () => {
42
+ test("the MediaLive patch against the renamed definition is a skip, not a warning", () => {
43
+ writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
44
+ const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRule")]]);
45
+
46
+ const { stats } = applyPatches(schemas, dir);
47
+
48
+ expect(stats.patchesApplied).toBe(0);
49
+ expect(stats.warnings).toEqual([]);
50
+ expect(stats.skipped.map((s) => `${s.stale.typeName}/${s.stale.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
51
+ expect(stats.skipped[0].error.message).toContain("InputWhitelistRuleCidr");
52
+ expect(stats.retirable).toEqual([]);
53
+ });
54
+
55
+ test("a failure not on the list stays a warning", () => {
56
+ writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
57
+ const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRule")]]);
58
+
59
+ const { stats } = applyPatches(schemas, dir, []);
60
+
61
+ expect(stats.skipped).toEqual([]);
62
+ expect(stats.warnings.map((w) => `${w.typeName}/${w.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
63
+ });
64
+
65
+ test("an entry whose patch applies again is retirable", () => {
66
+ writePatch(MEDIALIVE, "format.json", MEDIALIVE_FORMAT_PATCH);
67
+ const schemas = new Map([[MEDIALIVE, medialiveSchema("InputWhitelistRuleCidr")]]);
68
+
69
+ const { schemas: patched, stats } = applyPatches(schemas, dir);
70
+
71
+ expect(stats.patchesApplied).toBe(1);
72
+ expect(stats.skipped).toEqual([]);
73
+ expect(stats.retirable.map((s) => s.typeName)).toEqual([MEDIALIVE]);
74
+ const doc = JSON.parse(patched.get(MEDIALIVE)!.toString("utf-8"));
75
+ expect(doc.definitions.InputWhitelistRuleCidr.properties.Cidr.format).toBe("ipv4-network");
76
+ });
77
+
78
+ test("an entry with no patch file to fail is retirable", () => {
79
+ const stale: StalePatch = { typeName: "AWS::Test::Gone", patchFile: "manual.json", cfnLint: "v0", reason: "test" };
80
+ const { stats } = applyPatches(new Map(), dir, [stale]);
81
+ expect(stats.retirable).toEqual([stale]);
82
+ });
83
+ });
84
+
85
+ describe("KNOWN_STALE_PATCHES", () => {
86
+ // Moving the cfn-lint pin changes which patches fail, so every entry has to
87
+ // be re-checked against the new release before this passes again.
88
+ test("every entry was checked against the pinned cfn-lint release", () => {
89
+ for (const s of KNOWN_STALE_PATCHES) expect(s.cfnLint).toBe(PINNED_VERSIONS.cfnLint);
90
+ });
91
+
92
+ test("lists the MediaLive rename and nothing else", () => {
93
+ expect(KNOWN_STALE_PATCHES.map((s) => `${s.typeName}/${s.patchFile}`)).toEqual([`${MEDIALIVE}/format.json`]);
94
+ });
95
+ });
@@ -11,10 +11,12 @@ import { join } from "path";
11
11
  import { homedir } from "os";
12
12
  import { rfc6902Apply } from "@intentius/chant/codegen/json-patch";
13
13
  import { fetchAndExtractTar } from "@intentius/chant/codegen/fetch";
14
- import { cfnLintTarballUrl } from "./versions";
14
+ import { cfnLintTarballUrl, PINNED_VERSIONS } from "./versions";
15
15
 
16
16
  const CFN_LINT_TARBALL_URL = cfnLintTarballUrl();
17
- const PATCHES_DEST_DIR = join(homedir(), ".chant", "cfn-lint-patches");
17
+ // Keyed by version: the cache lives for 7 days, so an unkeyed directory would
18
+ // keep serving the old release's patches after the pin moves.
19
+ const PATCHES_DEST_DIR = join(homedir(), ".chant", `cfn-lint-patches-${PINNED_VERSIONS.cfnLint}`);
18
20
  const PATCHES_TAR_PREFIX = "src/cfnlint/data/schemas/patches/extensions/all/";
19
21
  const PATCH_FILES = ["manual.json", "smithy.json", "format.json"] as const;
20
22
 
@@ -24,10 +26,48 @@ export interface PatchWarning {
24
26
  error: Error;
25
27
  }
26
28
 
29
+ /**
30
+ * A patch in the pinned cfn-lint release that is known not to apply to the
31
+ * pinned spec. Its failure is reported as a skip rather than a warning; an
32
+ * entry that applies again, or whose patch file is gone, is reported as
33
+ * retirable so the list cannot go stale.
34
+ */
35
+ export interface StalePatch {
36
+ typeName: string;
37
+ patchFile: (typeof PATCH_FILES)[number];
38
+ /** The cfn-lint release the entry was checked against. */
39
+ cfnLint: string;
40
+ reason: string;
41
+ }
42
+
43
+ export const KNOWN_STALE_PATCHES: readonly StalePatch[] = [
44
+ {
45
+ // Adds `format: ipv4-network` to `Cidr`, a constraint only; no generated
46
+ // type changes. Every cfn-lint release from v1.32.4 to v1.51.5 still
47
+ // targets the old name, and v1.52.0 removed the patch tree from cfn-lint
48
+ // (it moved to aws-cloudformation/resource-provider-enhanced-schemas,
49
+ // which has the corrected path but publishes only a rolling `latest`).
50
+ typeName: "AWS::MediaLive::InputSecurityGroup",
51
+ patchFile: "format.json",
52
+ cfnLint: "v1.32.4",
53
+ reason: "the 2026-10-19 spec renamed definition InputWhitelistRuleCidr to InputWhitelistRule (#4144)",
54
+ },
55
+ ];
56
+
57
+ export interface PatchSkip {
58
+ stale: StalePatch;
59
+ error: Error;
60
+ }
61
+
27
62
  export interface PatchStats {
28
63
  patchesApplied: number;
29
64
  resourcesFixed: number;
65
+ /** Failures not in `KNOWN_STALE_PATCHES`. */
30
66
  warnings: PatchWarning[];
67
+ /** Failures listed in `KNOWN_STALE_PATCHES`. */
68
+ skipped: PatchSkip[];
69
+ /** `KNOWN_STALE_PATCHES` entries that did not fail: applied, or no such schema or patch file. */
70
+ retirable: StalePatch[];
31
71
  }
32
72
 
33
73
  /**
@@ -49,9 +89,11 @@ export async function fetchCfnLintPatches(force = false): Promise<string> {
49
89
  */
50
90
  export function applyPatches(
51
91
  schemas: Map<string, Buffer>,
52
- patchesDir: string
92
+ patchesDir: string,
93
+ knownStale: readonly StalePatch[] = KNOWN_STALE_PATCHES,
53
94
  ): { schemas: Map<string, Buffer>; stats: PatchStats } {
54
- const stats: PatchStats = { patchesApplied: 0, resourcesFixed: 0, warnings: [] };
95
+ const stats: PatchStats = { patchesApplied: 0, resourcesFixed: 0, warnings: [], skipped: [], retirable: [] };
96
+ const staleByKey = new Map(knownStale.map((s) => [`${s.typeName}/${s.patchFile}`, s]));
55
97
  const result = new Map<string, Buffer>();
56
98
 
57
99
  for (const [typeName, data] of schemas) {
@@ -72,11 +114,10 @@ export function applyPatches(
72
114
  patched = Buffer.from(rfc6902Apply(patched.toString("utf-8"), patchData.toString("utf-8")));
73
115
  stats.patchesApplied++;
74
116
  } catch (err) {
75
- stats.warnings.push({
76
- typeName,
77
- patchFile: pf,
78
- error: err instanceof Error ? err : new Error(String(err)),
79
- });
117
+ const error = err instanceof Error ? err : new Error(String(err));
118
+ const stale = staleByKey.get(`${typeName}/${pf}`);
119
+ if (stale) stats.skipped.push({ stale, error });
120
+ else stats.warnings.push({ typeName, patchFile: pf, error });
80
121
  }
81
122
  }
82
123
 
@@ -86,6 +127,9 @@ export function applyPatches(
86
127
  result.set(typeName, patched);
87
128
  }
88
129
 
130
+ const skippedStale = new Set(stats.skipped.map((s) => s.stale));
131
+ stats.retirable = knownStale.filter((s) => !skippedStale.has(s));
132
+
89
133
  return { schemas: result, stats };
90
134
  }
91
135
 
@@ -1,19 +1,4 @@
1
1
  {
2
2
  "$comment": "Properties CloudFormation has shipped since the pinned Registry spec (src/spec/pin.ts) was accepted (chant #3953). Hand-maintained, merged into the raw schema at codegen time by src/codegen/property-overlay.ts. Each entry is copied from the live Registry schema; retire it when a pin bump (#3960) brings the property in; generation warns when it does.",
3
- "entries": [
4
- {
5
- "type": "AWS::BedrockAgentCore::Runtime",
6
- "property": "PlatformVersion",
7
- "issue": 3953,
8
- "source": "https://schema.cloudformation.us-east-1.amazonaws.com/CloudformationSchema.zip (aws-bedrockagentcore-runtime.json)",
9
- "reviewed": "2026-10-12",
10
- "schema": {
11
- "type": "string",
12
- "description": "The version of the runtime platform",
13
- "minLength": 1,
14
- "maxLength": 128,
15
- "pattern": "^[^\\s]+$"
16
- }
17
- }
18
- ]
3
+ "entries": []
19
4
  }