@spottoai/types-package 1.0.2-dev1138.13 → 1.0.2-dev1138.14

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 (841) hide show
  1. package/README.md +12 -0
  2. package/dist/accounts/accounts.d.ts +97 -5
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js +2 -1
  5. package/dist/accounts/accounts.js.map +1 -1
  6. package/dist/accounts/azureManualOnboarding.d.ts +114 -0
  7. package/dist/accounts/azureManualOnboarding.d.ts.map +1 -0
  8. package/dist/accounts/azureManualOnboarding.js +12 -0
  9. package/dist/accounts/azureManualOnboarding.js.map +1 -0
  10. package/dist/accounts/azureSpSetup.d.ts +147 -31
  11. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  12. package/dist/accounts/azureSpSetup.js +15 -0
  13. package/dist/accounts/azureSpSetup.js.map +1 -1
  14. package/dist/accounts/azureSpSetupDurable.d.ts +8 -0
  15. package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
  16. package/dist/accounts/azureSpSetupDurable.js +28 -0
  17. package/dist/accounts/azureSpSetupDurable.js.map +1 -1
  18. package/dist/accounts/index.d.ts +2 -0
  19. package/dist/accounts/index.d.ts.map +1 -1
  20. package/dist/accounts/index.js +2 -0
  21. package/dist/accounts/index.js.map +1 -1
  22. package/dist/accounts/readPermissions.d.ts +1 -1
  23. package/dist/accounts/readPermissions.d.ts.map +1 -1
  24. package/dist/accounts/readPermissions.js.map +1 -1
  25. package/dist/accounts/subscriptionWriteAccess.d.ts +76 -0
  26. package/dist/accounts/subscriptionWriteAccess.d.ts.map +1 -0
  27. package/dist/accounts/subscriptionWriteAccess.js +119 -0
  28. package/dist/accounts/subscriptionWriteAccess.js.map +1 -0
  29. package/dist/accounts/validation.d.ts +24 -0
  30. package/dist/accounts/validation.d.ts.map +1 -1
  31. package/dist/accounts/writePermissions.d.ts +17 -1
  32. package/dist/accounts/writePermissions.d.ts.map +1 -1
  33. package/dist/accounts/writePermissions.js +47 -1
  34. package/dist/accounts/writePermissions.js.map +1 -1
  35. package/dist/ai/conversationHistory.d.ts +52 -0
  36. package/dist/ai/conversationHistory.d.ts.map +1 -0
  37. package/dist/ai/conversationHistory.js +10 -0
  38. package/dist/ai/conversationHistory.js.map +1 -0
  39. package/dist/ai/followUps.d.ts +16 -0
  40. package/dist/ai/followUps.d.ts.map +1 -0
  41. package/dist/ai/followUps.js +21 -0
  42. package/dist/ai/followUps.js.map +1 -0
  43. package/dist/ai/grounding.d.ts +78 -0
  44. package/dist/ai/grounding.d.ts.map +1 -0
  45. package/dist/ai/grounding.js +154 -0
  46. package/dist/ai/grounding.js.map +1 -0
  47. package/dist/ai/index.d.ts +306 -6
  48. package/dist/ai/index.d.ts.map +1 -1
  49. package/dist/ai/index.js +26 -0
  50. package/dist/ai/index.js.map +1 -1
  51. package/dist/ai/workspaceArtifacts.d.ts +587 -0
  52. package/dist/ai/workspaceArtifacts.d.ts.map +1 -0
  53. package/dist/ai/workspaceArtifacts.js +162 -0
  54. package/dist/ai/workspaceArtifacts.js.map +1 -0
  55. package/dist/aws/commitments-planning.d.ts +6 -1
  56. package/dist/aws/commitments-planning.d.ts.map +1 -1
  57. package/dist/aws/commitments-planning.js +20 -0
  58. package/dist/aws/commitments-planning.js.map +1 -1
  59. package/dist/aws/commitmentsPlanningValidation.d.ts +1 -1
  60. package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -1
  61. package/dist/aws/commitmentsPlanningValidation.js +26 -25
  62. package/dist/aws/commitmentsPlanningValidation.js.map +1 -1
  63. package/dist/aws/commitmentsPlanningView.d.ts +49 -0
  64. package/dist/aws/commitmentsPlanningView.d.ts.map +1 -0
  65. package/dist/aws/{pluginPublicArtifactEvidence.js → commitmentsPlanningView.js} +1 -1
  66. package/dist/aws/commitmentsPlanningView.js.map +1 -0
  67. package/dist/aws/estates.d.ts +1 -1
  68. package/dist/aws/estates.d.ts.map +1 -1
  69. package/dist/aws/estates.js +7 -1
  70. package/dist/aws/estates.js.map +1 -1
  71. package/dist/aws/index.d.ts +7 -14
  72. package/dist/aws/index.d.ts.map +1 -1
  73. package/dist/aws/index.js +7 -13
  74. package/dist/aws/index.js.map +1 -1
  75. package/dist/aws/onboarding.d.ts +3 -0
  76. package/dist/aws/onboarding.d.ts.map +1 -1
  77. package/dist/aws/organizationCommitments.d.ts +261 -0
  78. package/dist/aws/organizationCommitments.d.ts.map +1 -0
  79. package/dist/aws/organizationCommitments.js +53 -0
  80. package/dist/aws/organizationCommitments.js.map +1 -0
  81. package/dist/aws/organizationCommitmentsApiValidation.d.ts +21 -0
  82. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -0
  83. package/dist/aws/organizationCommitmentsApiValidation.js +226 -0
  84. package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -0
  85. package/dist/aws/organizationCommitmentsValidation.d.ts +12 -0
  86. package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -0
  87. package/dist/aws/organizationCommitmentsValidation.js +229 -0
  88. package/dist/aws/organizationCommitmentsValidation.js.map +1 -0
  89. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +9 -0
  90. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  91. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +410 -0
  92. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  93. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +16 -0
  94. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  95. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +6 -0
  96. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -0
  97. package/dist/aws/publicArtifacts.d.ts +2 -37
  98. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  99. package/dist/aws/publicArtifacts.js +3 -1
  100. package/dist/aws/publicArtifacts.js.map +1 -1
  101. package/dist/aws/relationships.d.ts +5 -3
  102. package/dist/aws/relationships.d.ts.map +1 -1
  103. package/dist/aws/relationships.js +18 -3
  104. package/dist/aws/relationships.js.map +1 -1
  105. package/dist/aws/requests.d.ts +46 -3
  106. package/dist/aws/requests.d.ts.map +1 -1
  107. package/dist/aws/requests.js +5 -3
  108. package/dist/aws/requests.js.map +1 -1
  109. package/dist/aws/resourceGraph.d.ts +14 -0
  110. package/dist/aws/resourceGraph.d.ts.map +1 -0
  111. package/dist/aws/resourceGraph.js +68 -0
  112. package/dist/aws/resourceGraph.js.map +1 -0
  113. package/dist/aws/validationHelpers.d.ts +8 -0
  114. package/dist/aws/validationHelpers.d.ts.map +1 -0
  115. package/dist/aws/validationHelpers.js +54 -0
  116. package/dist/aws/validationHelpers.js.map +1 -0
  117. package/dist/azure/activityLogAnalysis.d.ts +320 -0
  118. package/dist/azure/activityLogAnalysis.d.ts.map +1 -0
  119. package/dist/azure/activityLogAnalysis.js +70 -0
  120. package/dist/azure/activityLogAnalysis.js.map +1 -0
  121. package/dist/azure/activityLogAnalysisPublicValidation.d.ts +8 -0
  122. package/dist/azure/activityLogAnalysisPublicValidation.d.ts.map +1 -0
  123. package/dist/azure/activityLogAnalysisPublicValidation.js +368 -0
  124. package/dist/azure/activityLogAnalysisPublicValidation.js.map +1 -0
  125. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts +33 -0
  126. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts.map +1 -0
  127. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js +197 -0
  128. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js.map +1 -0
  129. package/dist/azure/activityLogAnalysisValidation.d.ts +5 -0
  130. package/dist/azure/activityLogAnalysisValidation.d.ts.map +1 -0
  131. package/dist/azure/activityLogAnalysisValidation.js +376 -0
  132. package/dist/azure/activityLogAnalysisValidation.js.map +1 -0
  133. package/dist/azure/activityLogs.d.ts +8 -0
  134. package/dist/azure/activityLogs.d.ts.map +1 -1
  135. package/dist/azure/activityLogs.js.map +1 -1
  136. package/dist/azure/benefits.d.ts +1 -1
  137. package/dist/azure/benefits.d.ts.map +1 -1
  138. package/dist/azure/billingPlots.d.ts +7 -1
  139. package/dist/azure/billingPlots.d.ts.map +1 -1
  140. package/dist/azure/billingPlots.js +45 -4
  141. package/dist/azure/billingPlots.js.map +1 -1
  142. package/dist/azure/commitmentsPlanning.d.ts +23 -48
  143. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  144. package/dist/azure/commitmentsPlanning.js +9 -0
  145. package/dist/azure/commitmentsPlanning.js.map +1 -1
  146. package/dist/azure/commitmentsPlanningValidation.d.ts +18 -0
  147. package/dist/azure/commitmentsPlanningValidation.d.ts.map +1 -0
  148. package/dist/azure/commitmentsPlanningValidation.js +50 -0
  149. package/dist/azure/commitmentsPlanningValidation.js.map +1 -0
  150. package/dist/azure/common.d.ts +26 -5
  151. package/dist/azure/common.d.ts.map +1 -1
  152. package/dist/azure/common.js +30 -0
  153. package/dist/azure/common.js.map +1 -1
  154. package/dist/azure/costComposition.d.ts +11 -1
  155. package/dist/azure/costComposition.d.ts.map +1 -1
  156. package/dist/azure/costComposition.js +84 -1
  157. package/dist/azure/costComposition.js.map +1 -1
  158. package/dist/azure/dataProtection.d.ts +44 -4
  159. package/dist/azure/dataProtection.d.ts.map +1 -1
  160. package/dist/azure/financialAnalytics.d.ts +80 -8
  161. package/dist/azure/financialAnalytics.d.ts.map +1 -1
  162. package/dist/azure/financialAnalyticsDelivery.d.ts +72 -3
  163. package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
  164. package/dist/azure/financialAnalyticsDelivery.js +7 -1
  165. package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
  166. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +9 -1
  167. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -1
  168. package/dist/azure/financialAnalyticsDeliveryValidation.js +190 -10
  169. package/dist/azure/financialAnalyticsDeliveryValidation.js.map +1 -1
  170. package/dist/azure/financialAnalyticsDisplayKernel.d.ts +12 -0
  171. package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +1 -0
  172. package/dist/azure/financialAnalyticsDisplayKernel.js +144 -0
  173. package/dist/azure/financialAnalyticsDisplayKernel.js.map +1 -0
  174. package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
  175. package/dist/azure/financialAnalyticsValidation.js +101 -19
  176. package/dist/azure/financialAnalyticsValidation.js.map +1 -1
  177. package/dist/azure/financialAuthorityProjectionKernel.d.ts +8 -0
  178. package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +1 -0
  179. package/dist/azure/financialAuthorityProjectionKernel.js +269 -0
  180. package/dist/azure/financialAuthorityProjectionKernel.js.map +1 -0
  181. package/dist/azure/financialAuthorityView.d.ts +13 -0
  182. package/dist/azure/financialAuthorityView.d.ts.map +1 -1
  183. package/dist/azure/financialAuthorityView.js.map +1 -1
  184. package/dist/azure/financialAuthorityViewValidation.d.ts +3 -1
  185. package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
  186. package/dist/azure/financialAuthorityViewValidation.js +273 -2
  187. package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
  188. package/dist/azure/financialChargeComposition.d.ts +81 -0
  189. package/dist/azure/financialChargeComposition.d.ts.map +1 -0
  190. package/dist/azure/financialChargeComposition.js +41 -0
  191. package/dist/azure/financialChargeComposition.js.map +1 -0
  192. package/dist/azure/financialChargeCompositionKernel.d.ts +3 -0
  193. package/dist/azure/financialChargeCompositionKernel.d.ts.map +1 -0
  194. package/dist/azure/financialChargeCompositionKernel.js +53 -0
  195. package/dist/azure/financialChargeCompositionKernel.js.map +1 -0
  196. package/dist/azure/financialChargeCompositionValidation.d.ts +8 -0
  197. package/dist/azure/financialChargeCompositionValidation.d.ts.map +1 -0
  198. package/dist/azure/financialChargeCompositionValidation.js +164 -0
  199. package/dist/azure/financialChargeCompositionValidation.js.map +1 -0
  200. package/dist/azure/financialChargePolicy.d.ts +215 -0
  201. package/dist/azure/financialChargePolicy.d.ts.map +1 -0
  202. package/dist/azure/financialChargePolicy.js +488 -0
  203. package/dist/azure/financialChargePolicy.js.map +1 -0
  204. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts +76 -0
  205. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts.map +1 -0
  206. package/dist/azure/financialCurrentSpendSurfaceProjection.js +6 -0
  207. package/dist/azure/financialCurrentSpendSurfaceProjection.js.map +1 -0
  208. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts +10 -0
  209. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts.map +1 -0
  210. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js +196 -0
  211. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js.map +1 -0
  212. package/dist/azure/financialDataflow.d.ts +45 -2
  213. package/dist/azure/financialDataflow.d.ts.map +1 -1
  214. package/dist/azure/financialDataflow.js.map +1 -1
  215. package/dist/azure/financialDataflowKernel.d.ts +31 -0
  216. package/dist/azure/financialDataflowKernel.d.ts.map +1 -0
  217. package/dist/azure/financialDataflowKernel.js +170 -0
  218. package/dist/azure/financialDataflowKernel.js.map +1 -0
  219. package/dist/azure/financialDataflowValidation.d.ts +5 -2
  220. package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
  221. package/dist/azure/financialDataflowValidation.js +203 -30
  222. package/dist/azure/financialDataflowValidation.js.map +1 -1
  223. package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -1
  224. package/dist/azure/financialEvidenceAssessmentValidation.js +7 -0
  225. package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -1
  226. package/dist/azure/financialEvidenceCoverage.d.ts +36 -0
  227. package/dist/azure/financialEvidenceCoverage.d.ts.map +1 -0
  228. package/dist/azure/financialEvidenceCoverage.js +111 -0
  229. package/dist/azure/financialEvidenceCoverage.js.map +1 -0
  230. package/dist/azure/financialPolicy.d.ts +19 -3
  231. package/dist/azure/financialPolicy.d.ts.map +1 -1
  232. package/dist/azure/financialPolicy.js.map +1 -1
  233. package/dist/azure/financialPolicyDelivery.d.ts +75 -1
  234. package/dist/azure/financialPolicyDelivery.d.ts.map +1 -1
  235. package/dist/azure/financialPolicyDelivery.js +5 -1
  236. package/dist/azure/financialPolicyDelivery.js.map +1 -1
  237. package/dist/azure/financialPolicyDeliveryValidation.d.ts +16 -2
  238. package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -1
  239. package/dist/azure/financialPolicyDeliveryValidation.js +238 -5
  240. package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -1
  241. package/dist/azure/financialPolicyKernel.d.ts +38 -0
  242. package/dist/azure/financialPolicyKernel.d.ts.map +1 -0
  243. package/dist/azure/financialPolicyKernel.js +232 -0
  244. package/dist/azure/financialPolicyKernel.js.map +1 -0
  245. package/dist/azure/financialPolicyValidation.d.ts +1 -0
  246. package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
  247. package/dist/azure/financialPolicyValidation.js +111 -16
  248. package/dist/azure/financialPolicyValidation.js.map +1 -1
  249. package/dist/azure/financialProjection.d.ts +11 -1
  250. package/dist/azure/financialProjection.d.ts.map +1 -1
  251. package/dist/azure/financialProjection.js.map +1 -1
  252. package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
  253. package/dist/azure/financialProjectionValidation.js +43 -3
  254. package/dist/azure/financialProjectionValidation.js.map +1 -1
  255. package/dist/azure/financialResourceSurfaceProjection.d.ts +66 -0
  256. package/dist/azure/financialResourceSurfaceProjection.d.ts.map +1 -0
  257. package/dist/azure/financialResourceSurfaceProjection.js +6 -0
  258. package/dist/azure/financialResourceSurfaceProjection.js.map +1 -0
  259. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts +16 -0
  260. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts.map +1 -0
  261. package/dist/azure/financialResourceSurfaceProjectionValidation.js +252 -0
  262. package/dist/azure/financialResourceSurfaceProjectionValidation.js.map +1 -0
  263. package/dist/azure/financialSavingsAuthority.d.ts +68 -4
  264. package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
  265. package/dist/azure/financialSavingsAuthority.js +2 -1
  266. package/dist/azure/financialSavingsAuthority.js.map +1 -1
  267. package/dist/azure/financialSavingsAuthorityValidation.d.ts +6 -2
  268. package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
  269. package/dist/azure/financialSavingsAuthorityValidation.js +188 -2
  270. package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
  271. package/dist/azure/financialSavingsChargePolicyKernel.d.ts +12 -0
  272. package/dist/azure/financialSavingsChargePolicyKernel.d.ts.map +1 -0
  273. package/dist/azure/financialSavingsChargePolicyKernel.js +34 -0
  274. package/dist/azure/financialSavingsChargePolicyKernel.js.map +1 -0
  275. package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
  276. package/dist/azure/financialSavingsCoordinateValidation.js +98 -19
  277. package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
  278. package/dist/azure/financialSavingsPercentageKernel.d.ts +20 -0
  279. package/dist/azure/financialSavingsPercentageKernel.d.ts.map +1 -0
  280. package/dist/azure/financialSavingsPercentageKernel.js +49 -0
  281. package/dist/azure/financialSavingsPercentageKernel.js.map +1 -0
  282. package/dist/azure/financialSavingsSurfaceProjection.d.ts +82 -3
  283. package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
  284. package/dist/azure/financialSavingsSurfaceProjection.js +3 -1
  285. package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
  286. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +26 -0
  287. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +1 -0
  288. package/dist/azure/financialSavingsSurfaceProjectionKernel.js +435 -0
  289. package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +1 -0
  290. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
  291. package/dist/azure/financialSavingsSurfaceProjectionValidation.js +199 -13
  292. package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
  293. package/dist/azure/financialScope.d.ts +14 -0
  294. package/dist/azure/financialScope.d.ts.map +1 -1
  295. package/dist/azure/financialScope.js +14 -0
  296. package/dist/azure/financialScope.js.map +1 -1
  297. package/dist/azure/financialScopeBaseline.d.ts +11 -3
  298. package/dist/azure/financialScopeBaseline.d.ts.map +1 -1
  299. package/dist/azure/financialScopeBaseline.js +14 -1
  300. package/dist/azure/financialScopeBaseline.js.map +1 -1
  301. package/dist/azure/financialScopeBaselineIdentity.d.ts.map +1 -1
  302. package/dist/azure/financialScopeBaselineIdentity.js +24 -4
  303. package/dist/azure/financialScopeBaselineIdentity.js.map +1 -1
  304. package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -1
  305. package/dist/azure/financialScopeBaselineValidation.js +21 -4
  306. package/dist/azure/financialScopeBaselineValidation.js.map +1 -1
  307. package/dist/azure/financialScopeEvidence.d.ts +1 -1
  308. package/dist/azure/financialScopeEvidence.d.ts.map +1 -1
  309. package/dist/azure/governance.d.ts +150 -0
  310. package/dist/azure/governance.d.ts.map +1 -1
  311. package/dist/azure/governance.js +2 -1
  312. package/dist/azure/governance.js.map +1 -1
  313. package/dist/azure/metrics.d.ts +4 -29
  314. package/dist/azure/metrics.d.ts.map +1 -1
  315. package/dist/azure/payloads.d.ts +79 -1
  316. package/dist/azure/payloads.d.ts.map +1 -1
  317. package/dist/azure/payloads.js +87 -0
  318. package/dist/azure/payloads.js.map +1 -1
  319. package/dist/azure/prices.d.ts +41 -12
  320. package/dist/azure/prices.d.ts.map +1 -1
  321. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts +5 -0
  322. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts.map +1 -0
  323. package/dist/azure/recommendationLifecycleOverlayValidation.js +82 -0
  324. package/dist/azure/recommendationLifecycleOverlayValidation.js.map +1 -0
  325. package/dist/azure/recommendationState.d.ts +1 -1
  326. package/dist/azure/recommendationState.d.ts.map +1 -1
  327. package/dist/azure/recommendationTracks.d.ts +1 -1
  328. package/dist/azure/recommendationTracks.d.ts.map +1 -1
  329. package/dist/azure/recommendations.d.ts +141 -5
  330. package/dist/azure/recommendations.d.ts.map +1 -1
  331. package/dist/azure/recommendations.js +3 -1
  332. package/dist/azure/recommendations.js.map +1 -1
  333. package/dist/azure/relationships.d.ts +1 -1
  334. package/dist/azure/relationships.d.ts.map +1 -1
  335. package/dist/azure/reportDailySpend.d.ts +48 -0
  336. package/dist/azure/reportDailySpend.d.ts.map +1 -0
  337. package/dist/azure/reportDailySpend.js +6 -0
  338. package/dist/azure/reportDailySpend.js.map +1 -0
  339. package/dist/azure/reportDailySpendValidation.d.ts +3 -0
  340. package/dist/azure/reportDailySpendValidation.d.ts.map +1 -0
  341. package/dist/azure/reportDailySpendValidation.js +72 -0
  342. package/dist/azure/reportDailySpendValidation.js.map +1 -0
  343. package/dist/azure/reportEvidence.d.ts +796 -0
  344. package/dist/azure/reportEvidence.d.ts.map +1 -0
  345. package/dist/azure/reportEvidence.js +33 -0
  346. package/dist/azure/reportEvidence.js.map +1 -0
  347. package/dist/azure/reportEvidenceCatalogueValidation.d.ts +5 -0
  348. package/dist/azure/reportEvidenceCatalogueValidation.d.ts.map +1 -0
  349. package/dist/azure/reportEvidenceCatalogueValidation.js +109 -0
  350. package/dist/azure/reportEvidenceCatalogueValidation.js.map +1 -0
  351. package/dist/azure/reportEvidenceValidation.d.ts +7 -0
  352. package/dist/azure/reportEvidenceValidation.d.ts.map +1 -0
  353. package/dist/azure/reportEvidenceValidation.js +617 -0
  354. package/dist/azure/reportEvidenceValidation.js.map +1 -0
  355. package/dist/azure/reportEvidenceValidationHelpers.d.ts +14 -0
  356. package/dist/azure/reportEvidenceValidationHelpers.d.ts.map +1 -0
  357. package/dist/azure/reportEvidenceValidationHelpers.js +122 -0
  358. package/dist/azure/reportEvidenceValidationHelpers.js.map +1 -0
  359. package/dist/azure/reportSavingsContributionValidation.d.ts +5 -0
  360. package/dist/azure/reportSavingsContributionValidation.d.ts.map +1 -0
  361. package/dist/azure/reportSavingsContributionValidation.js +37 -0
  362. package/dist/azure/reportSavingsContributionValidation.js.map +1 -0
  363. package/dist/azure/reportSpend.d.ts +87 -0
  364. package/dist/azure/reportSpend.d.ts.map +1 -0
  365. package/dist/azure/reportSpend.js +5 -0
  366. package/dist/azure/reportSpend.js.map +1 -0
  367. package/dist/azure/reportSpendValidation.d.ts +7 -0
  368. package/dist/azure/reportSpendValidation.d.ts.map +1 -0
  369. package/dist/azure/reportSpendValidation.js +197 -0
  370. package/dist/azure/reportSpendValidation.js.map +1 -0
  371. package/dist/azure/reportSpendValidationHelpers.d.ts +7 -0
  372. package/dist/azure/reportSpendValidationHelpers.d.ts.map +1 -0
  373. package/dist/azure/reportSpendValidationHelpers.js +31 -0
  374. package/dist/azure/reportSpendValidationHelpers.js.map +1 -0
  375. package/dist/azure/reports.d.ts +32 -10
  376. package/dist/azure/reports.d.ts.map +1 -1
  377. package/dist/azure/reports.js.map +1 -1
  378. package/dist/azure/resilienceFacts.d.ts +100 -0
  379. package/dist/azure/resilienceFacts.d.ts.map +1 -0
  380. package/dist/azure/resilienceFacts.js +20 -0
  381. package/dist/azure/resilienceFacts.js.map +1 -0
  382. package/dist/azure/resilienceFactsValidation.d.ts +4 -0
  383. package/dist/azure/resilienceFactsValidation.d.ts.map +1 -0
  384. package/dist/azure/resilienceFactsValidation.js +70 -0
  385. package/dist/azure/resilienceFactsValidation.js.map +1 -0
  386. package/dist/azure/resources.d.ts +24 -12
  387. package/dist/azure/resources.d.ts.map +1 -1
  388. package/dist/azure/savings.d.ts +4 -2
  389. package/dist/azure/savings.d.ts.map +1 -1
  390. package/dist/azure/serviceRetirement.d.ts +52 -2
  391. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  392. package/dist/azure/storage-inventory.d.ts +44 -0
  393. package/dist/azure/storage-inventory.d.ts.map +1 -1
  394. package/dist/azure/subscriptions.d.ts +57 -11
  395. package/dist/azure/subscriptions.d.ts.map +1 -1
  396. package/dist/azure/subscriptions.js +35 -0
  397. package/dist/azure/subscriptions.js.map +1 -1
  398. package/dist/azure/views.d.ts +110 -23
  399. package/dist/azure/views.d.ts.map +1 -1
  400. package/dist/azure/views.js +8 -1
  401. package/dist/azure/views.js.map +1 -1
  402. package/dist/azure/vmPatchManagement.d.ts +109 -0
  403. package/dist/azure/vmPatchManagement.d.ts.map +1 -0
  404. package/dist/azure/vmPatchManagement.js +7 -0
  405. package/dist/azure/vmPatchManagement.js.map +1 -0
  406. package/dist/common/boundedRows.d.ts +7 -0
  407. package/dist/common/boundedRows.d.ts.map +1 -0
  408. package/dist/{scheduler/scheduler.js → common/boundedRows.js} +1 -1
  409. package/dist/common/boundedRows.js.map +1 -0
  410. package/dist/common/index.d.ts +3 -0
  411. package/dist/common/index.d.ts.map +1 -1
  412. package/dist/common/index.js +3 -0
  413. package/dist/common/index.js.map +1 -1
  414. package/dist/common/metricStats.d.ts +29 -0
  415. package/dist/common/metricStats.d.ts.map +1 -0
  416. package/dist/{aws/portalPublicArtifactNestedEvidence.js → common/metricStats.js} +1 -1
  417. package/dist/common/metricStats.js.map +1 -0
  418. package/dist/common/provider.d.ts +55 -0
  419. package/dist/common/provider.d.ts.map +1 -1
  420. package/dist/common/provider.js.map +1 -1
  421. package/dist/common/relationships.d.ts +3 -3
  422. package/dist/common/relationships.d.ts.map +1 -1
  423. package/dist/common/resourceGraph.d.ts +137 -0
  424. package/dist/common/resourceGraph.d.ts.map +1 -0
  425. package/dist/common/resourceGraph.js +17 -0
  426. package/dist/common/resourceGraph.js.map +1 -0
  427. package/dist/common/resourceGraphValidation.d.ts +30 -0
  428. package/dist/common/resourceGraphValidation.d.ts.map +1 -0
  429. package/dist/common/resourceGraphValidation.js +369 -0
  430. package/dist/common/resourceGraphValidation.js.map +1 -0
  431. package/dist/common/resourceIdentity.d.ts +28 -0
  432. package/dist/common/resourceIdentity.d.ts.map +1 -0
  433. package/dist/common/resourceIdentity.js +35 -0
  434. package/dist/common/resourceIdentity.js.map +1 -0
  435. package/dist/common/sha256.d.ts +2 -0
  436. package/dist/common/sha256.d.ts.map +1 -1
  437. package/dist/common/sha256.js +3 -0
  438. package/dist/common/sha256.js.map +1 -1
  439. package/dist/common/utilizationStories.d.ts +695 -0
  440. package/dist/common/utilizationStories.d.ts.map +1 -0
  441. package/dist/common/utilizationStories.js +21 -0
  442. package/dist/common/utilizationStories.js.map +1 -0
  443. package/dist/common/utilizationStoriesValidation.d.ts +60 -0
  444. package/dist/common/utilizationStoriesValidation.d.ts.map +1 -0
  445. package/dist/common/utilizationStoriesValidation.js +762 -0
  446. package/dist/common/utilizationStoriesValidation.js.map +1 -0
  447. package/dist/common/validationHelpers.d.ts +37 -0
  448. package/dist/common/validationHelpers.d.ts.map +1 -0
  449. package/dist/common/validationHelpers.js +147 -0
  450. package/dist/common/validationHelpers.js.map +1 -0
  451. package/dist/company/company.d.ts +1 -0
  452. package/dist/company/company.d.ts.map +1 -1
  453. package/dist/environment/canonicalization.d.ts +12 -0
  454. package/dist/environment/canonicalization.d.ts.map +1 -0
  455. package/dist/environment/canonicalization.js +40 -0
  456. package/dist/environment/canonicalization.js.map +1 -0
  457. package/dist/environment/contracts.d.ts +472 -0
  458. package/dist/environment/contracts.d.ts.map +1 -0
  459. package/dist/environment/contracts.js +73 -0
  460. package/dist/environment/contracts.js.map +1 -0
  461. package/dist/environment/index.d.ts +6 -0
  462. package/dist/environment/index.d.ts.map +1 -0
  463. package/dist/environment/index.js +22 -0
  464. package/dist/environment/index.js.map +1 -0
  465. package/dist/environment/internal.d.ts +21 -0
  466. package/dist/environment/internal.d.ts.map +1 -0
  467. package/dist/environment/internal.js +113 -0
  468. package/dist/environment/internal.js.map +1 -0
  469. package/dist/environment/references.d.ts +24 -0
  470. package/dist/environment/references.d.ts.map +1 -0
  471. package/dist/environment/references.js +243 -0
  472. package/dist/environment/references.js.map +1 -0
  473. package/dist/environment/tenant.d.ts +128 -0
  474. package/dist/environment/tenant.d.ts.map +1 -0
  475. package/dist/environment/tenant.js +203 -0
  476. package/dist/environment/tenant.js.map +1 -0
  477. package/dist/environment/validation.d.ts +34 -0
  478. package/dist/environment/validation.d.ts.map +1 -0
  479. package/dist/environment/validation.js +655 -0
  480. package/dist/environment/validation.js.map +1 -0
  481. package/dist/esm/accounts/accounts.js +1 -0
  482. package/dist/esm/accounts/azureManualOnboarding.js +8 -0
  483. package/dist/esm/accounts/azureSpSetup.js +14 -1
  484. package/dist/esm/accounts/azureSpSetupDurable.js +27 -1
  485. package/dist/esm/accounts/index.js +2 -0
  486. package/dist/esm/accounts/subscriptionWriteAccess.js +112 -0
  487. package/dist/esm/accounts/writePermissions.js +46 -0
  488. package/dist/esm/ai/conversationHistory.js +6 -0
  489. package/dist/esm/ai/followUps.js +16 -0
  490. package/dist/esm/ai/grounding.js +147 -0
  491. package/dist/esm/ai/index.js +11 -1
  492. package/dist/esm/ai/workspaceArtifacts.js +158 -0
  493. package/dist/esm/aws/commitments-planning.js +6 -0
  494. package/dist/esm/aws/commitmentsPlanningValidation.js +2 -1
  495. package/dist/esm/aws/estates.js +7 -1
  496. package/dist/esm/aws/index.js +7 -13
  497. package/dist/esm/aws/organizationCommitments.js +48 -0
  498. package/dist/esm/aws/organizationCommitmentsApiValidation.js +220 -0
  499. package/dist/esm/aws/organizationCommitmentsValidation.js +225 -0
  500. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +405 -0
  501. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +2 -0
  502. package/dist/esm/aws/publicArtifacts.js +2 -0
  503. package/dist/esm/aws/relationships.js +4 -1
  504. package/dist/esm/aws/requests.js +4 -2
  505. package/dist/esm/aws/resourceGraph.js +63 -0
  506. package/dist/esm/aws/validationHelpers.js +46 -0
  507. package/dist/esm/azure/activityLogAnalysis.js +64 -0
  508. package/dist/esm/azure/activityLogAnalysisPublicValidation.js +360 -0
  509. package/dist/esm/azure/activityLogAnalysisPublicValidationHelpers.js +172 -0
  510. package/dist/esm/azure/activityLogAnalysisValidation.js +365 -0
  511. package/dist/esm/azure/billingPlots.js +45 -4
  512. package/dist/esm/azure/commitmentsPlanning.js +8 -1
  513. package/dist/esm/azure/commitmentsPlanningValidation.js +39 -0
  514. package/dist/esm/azure/common.js +28 -1
  515. package/dist/esm/azure/costComposition.js +80 -0
  516. package/dist/esm/azure/financialAnalyticsDelivery.js +5 -0
  517. package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +184 -11
  518. package/dist/esm/azure/financialAnalyticsDisplayKernel.js +139 -0
  519. package/dist/esm/azure/financialAnalyticsValidation.js +101 -19
  520. package/dist/esm/azure/financialAuthorityProjectionKernel.js +263 -0
  521. package/dist/esm/azure/financialAuthorityViewValidation.js +271 -1
  522. package/dist/esm/azure/financialChargeComposition.js +36 -0
  523. package/dist/esm/azure/financialChargeCompositionKernel.js +48 -0
  524. package/dist/esm/azure/financialChargeCompositionValidation.js +155 -0
  525. package/dist/esm/azure/financialChargePolicy.js +473 -0
  526. package/dist/esm/azure/financialCurrentSpendSurfaceProjection.js +2 -0
  527. package/dist/esm/azure/financialCurrentSpendSurfaceProjectionValidation.js +184 -0
  528. package/dist/esm/azure/financialDataflowKernel.js +164 -0
  529. package/dist/esm/azure/financialDataflowValidation.js +199 -29
  530. package/dist/esm/azure/financialEvidenceAssessmentValidation.js +7 -0
  531. package/dist/esm/azure/financialEvidenceCoverage.js +106 -0
  532. package/dist/esm/azure/financialPolicyDelivery.js +4 -0
  533. package/dist/esm/azure/financialPolicyDeliveryValidation.js +227 -7
  534. package/dist/esm/azure/financialPolicyKernel.js +225 -0
  535. package/dist/esm/azure/financialPolicyValidation.js +110 -16
  536. package/dist/esm/azure/financialProjectionValidation.js +43 -3
  537. package/dist/esm/azure/financialResourceSurfaceProjection.js +2 -0
  538. package/dist/esm/azure/financialResourceSurfaceProjectionValidation.js +243 -0
  539. package/dist/esm/azure/financialSavingsAuthority.js +1 -0
  540. package/dist/esm/azure/financialSavingsAuthorityValidation.js +186 -2
  541. package/dist/esm/azure/financialSavingsChargePolicyKernel.js +29 -0
  542. package/dist/esm/azure/financialSavingsCoordinateValidation.js +98 -19
  543. package/dist/esm/azure/financialSavingsPercentageKernel.js +44 -0
  544. package/dist/esm/azure/financialSavingsSurfaceProjection.js +2 -0
  545. package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +427 -0
  546. package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +199 -13
  547. package/dist/esm/azure/financialScope.js +14 -0
  548. package/dist/esm/azure/financialScopeBaseline.js +12 -0
  549. package/dist/esm/azure/financialScopeBaselineIdentity.js +24 -4
  550. package/dist/esm/azure/financialScopeBaselineValidation.js +21 -4
  551. package/dist/esm/azure/governance.js +1 -0
  552. package/dist/esm/azure/payloads.js +84 -1
  553. package/dist/esm/azure/recommendationLifecycleOverlayValidation.js +75 -0
  554. package/dist/esm/azure/recommendations.js +2 -0
  555. package/dist/esm/azure/reportDailySpend.js +2 -0
  556. package/dist/esm/azure/reportDailySpendValidation.js +67 -0
  557. package/dist/esm/azure/reportEvidence.js +29 -0
  558. package/dist/esm/azure/reportEvidenceCatalogueValidation.js +103 -0
  559. package/dist/esm/azure/reportEvidenceValidation.js +609 -0
  560. package/dist/esm/azure/reportEvidenceValidationHelpers.js +94 -0
  561. package/dist/esm/azure/reportSavingsContributionValidation.js +30 -0
  562. package/dist/esm/azure/reportSpend.js +1 -0
  563. package/dist/esm/azure/reportSpendValidation.js +189 -0
  564. package/dist/esm/azure/reportSpendValidationHelpers.js +22 -0
  565. package/dist/esm/azure/resilienceFacts.js +16 -0
  566. package/dist/esm/azure/resilienceFactsValidation.js +64 -0
  567. package/dist/esm/azure/subscriptions.js +33 -1
  568. package/dist/esm/azure/views.js +8 -1
  569. package/dist/esm/azure/vmPatchManagement.js +3 -0
  570. package/dist/esm/common/index.js +3 -0
  571. package/dist/esm/common/resourceGraph.js +13 -0
  572. package/dist/esm/common/resourceGraphValidation.js +365 -0
  573. package/dist/esm/common/resourceIdentity.js +24 -0
  574. package/dist/esm/common/sha256.js +2 -0
  575. package/dist/esm/common/utilizationStories.js +17 -0
  576. package/dist/esm/common/utilizationStoriesValidation.js +718 -0
  577. package/dist/esm/common/validationHelpers.js +115 -0
  578. package/dist/esm/entries/commitments-planning.js +2 -2
  579. package/dist/esm/entries/environment.js +3 -0
  580. package/dist/esm/entries/relationships.js +2 -2
  581. package/dist/esm/environment/canonicalization.js +34 -0
  582. package/dist/esm/environment/contracts.js +69 -0
  583. package/dist/esm/environment/index.js +5 -0
  584. package/dist/esm/environment/internal.js +97 -0
  585. package/dist/esm/environment/references.js +230 -0
  586. package/dist/esm/environment/tenant.js +190 -0
  587. package/dist/esm/environment/validation.js +635 -0
  588. package/dist/esm/identity/index.js +1 -0
  589. package/dist/esm/index.js +18 -0
  590. package/dist/esm/index.vite.js +12 -0
  591. package/dist/esm/reporting/jobs/index.js +13 -0
  592. package/dist/esm/reporting/jobs/reportJobIdentity.js +76 -0
  593. package/dist/esm/reporting/jobs/reportJobMessages.js +47 -0
  594. package/dist/esm/reporting/jobs/reportJobRow.js +264 -0
  595. package/dist/esm/reporting/jobs/reportJobSpec.js +295 -0
  596. package/dist/esm/reporting/jobs/reportJobStatus.js +87 -0
  597. package/dist/esm/reporting/shared/reportTableEntities.js +41 -0
  598. package/dist/esm/reporting/shared/reportingDigest.js +57 -0
  599. package/dist/esm/reporting/shared/reportingIds.js +88 -0
  600. package/dist/esm/reporting/shared/reportingPaths.js +23 -0
  601. package/dist/esm/scheduler/index.js +4 -1
  602. package/dist/esm/scheduler/resourceStrategy.js +2 -0
  603. package/dist/esm/scheduler/resourceStrategyCapabilityValidation.js +265 -0
  604. package/dist/esm/scheduler/resourceStrategyContracts.js +20 -0
  605. package/dist/esm/scheduler/resourceStrategyFinancialValidation.js +145 -0
  606. package/dist/esm/scheduler/resourceStrategyPermissionValidation.js +190 -0
  607. package/dist/esm/scheduler/resourceStrategyScheduleValidation.js +506 -0
  608. package/dist/esm/scheduler/resourceStrategyValidation.js +4 -0
  609. package/dist/esm/scheduler/resourceStrategyValidationShared.js +261 -0
  610. package/dist/esm/scheduler/schedulerContracts.js +1 -0
  611. package/dist/esm/scheduler/schedulerValidation.js +372 -0
  612. package/dist/esm/scheduler/weeklyAvailabilityFixtures.js +140 -0
  613. package/dist/events/alertDefinitionRun.d.ts +4 -0
  614. package/dist/events/alertDefinitionRun.d.ts.map +1 -1
  615. package/dist/events/baseAlert.d.ts +1 -0
  616. package/dist/events/baseAlert.d.ts.map +1 -1
  617. package/dist/events/cost.d.ts +4 -0
  618. package/dist/events/cost.d.ts.map +1 -1
  619. package/dist/events/quickAlerts.d.ts +13 -4
  620. package/dist/events/quickAlerts.d.ts.map +1 -1
  621. package/dist/events/quickAlerts.js.map +1 -1
  622. package/dist/features-and-permissions/access.d.ts +79 -0
  623. package/dist/features-and-permissions/access.d.ts.map +1 -1
  624. package/dist/identity/index.d.ts +1 -0
  625. package/dist/identity/index.d.ts.map +1 -1
  626. package/dist/identity/index.js +1 -0
  627. package/dist/identity/index.js.map +1 -1
  628. package/dist/identity/microsoftSignInAdminConsent.d.ts +59 -0
  629. package/dist/identity/microsoftSignInAdminConsent.d.ts.map +1 -0
  630. package/dist/{aws/portalRelationshipResourceNodeTypes.js → identity/microsoftSignInAdminConsent.js} +1 -1
  631. package/dist/identity/microsoftSignInAdminConsent.js.map +1 -0
  632. package/dist/index.d.ts +18 -0
  633. package/dist/index.d.ts.map +1 -1
  634. package/dist/index.js +24 -0
  635. package/dist/index.js.map +1 -1
  636. package/dist/index.vite.d.ts +12 -0
  637. package/dist/index.vite.d.ts.map +1 -1
  638. package/dist/index.vite.js +16 -0
  639. package/dist/index.vite.js.map +1 -1
  640. package/dist/portfolio/portfolioOperations.d.ts +1 -1
  641. package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
  642. package/dist/reporting/jobs/index.d.ts +14 -0
  643. package/dist/reporting/jobs/index.d.ts.map +1 -0
  644. package/dist/reporting/jobs/index.js +45 -0
  645. package/dist/reporting/jobs/index.js.map +1 -0
  646. package/dist/reporting/jobs/reportJobIdentity.d.ts +44 -0
  647. package/dist/reporting/jobs/reportJobIdentity.d.ts.map +1 -0
  648. package/dist/reporting/jobs/reportJobIdentity.js +88 -0
  649. package/dist/reporting/jobs/reportJobIdentity.js.map +1 -0
  650. package/dist/reporting/jobs/reportJobMessages.d.ts +30 -0
  651. package/dist/reporting/jobs/reportJobMessages.d.ts.map +1 -0
  652. package/dist/reporting/jobs/reportJobMessages.js +54 -0
  653. package/dist/reporting/jobs/reportJobMessages.js.map +1 -0
  654. package/dist/reporting/jobs/reportJobRow.d.ts +98 -0
  655. package/dist/reporting/jobs/reportJobRow.d.ts.map +1 -0
  656. package/dist/reporting/jobs/reportJobRow.js +270 -0
  657. package/dist/reporting/jobs/reportJobRow.js.map +1 -0
  658. package/dist/reporting/jobs/reportJobSpec.d.ts +92 -0
  659. package/dist/reporting/jobs/reportJobSpec.d.ts.map +1 -0
  660. package/dist/reporting/jobs/reportJobSpec.js +304 -0
  661. package/dist/reporting/jobs/reportJobSpec.js.map +1 -0
  662. package/dist/reporting/jobs/reportJobStatus.d.ts +60 -0
  663. package/dist/reporting/jobs/reportJobStatus.d.ts.map +1 -0
  664. package/dist/reporting/jobs/reportJobStatus.js +98 -0
  665. package/dist/reporting/jobs/reportJobStatus.js.map +1 -0
  666. package/dist/reporting/shared/reportTableEntities.d.ts +23 -0
  667. package/dist/reporting/shared/reportTableEntities.d.ts.map +1 -0
  668. package/dist/reporting/shared/reportTableEntities.js +47 -0
  669. package/dist/reporting/shared/reportTableEntities.js.map +1 -0
  670. package/dist/reporting/shared/reportingDigest.d.ts +6 -0
  671. package/dist/reporting/shared/reportingDigest.d.ts.map +1 -0
  672. package/dist/reporting/shared/reportingDigest.js +63 -0
  673. package/dist/reporting/shared/reportingDigest.js.map +1 -0
  674. package/dist/reporting/shared/reportingIds.d.ts +34 -0
  675. package/dist/reporting/shared/reportingIds.d.ts.map +1 -0
  676. package/dist/reporting/shared/reportingIds.js +102 -0
  677. package/dist/reporting/shared/reportingIds.js.map +1 -0
  678. package/dist/reporting/shared/reportingPaths.d.ts +14 -0
  679. package/dist/reporting/shared/reportingPaths.d.ts.map +1 -0
  680. package/dist/reporting/shared/reportingPaths.js +29 -0
  681. package/dist/reporting/shared/reportingPaths.js.map +1 -0
  682. package/dist/scheduler/index.d.ts +4 -1
  683. package/dist/scheduler/index.d.ts.map +1 -1
  684. package/dist/scheduler/index.js +4 -1
  685. package/dist/scheduler/index.js.map +1 -1
  686. package/dist/scheduler/resourceStrategy.d.ts +3 -0
  687. package/dist/scheduler/resourceStrategy.d.ts.map +1 -0
  688. package/dist/scheduler/resourceStrategy.js +19 -0
  689. package/dist/scheduler/resourceStrategy.js.map +1 -0
  690. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts +4 -0
  691. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts.map +1 -0
  692. package/dist/scheduler/resourceStrategyCapabilityValidation.js +270 -0
  693. package/dist/scheduler/resourceStrategyCapabilityValidation.js.map +1 -0
  694. package/dist/scheduler/resourceStrategyContracts.d.ts +466 -0
  695. package/dist/scheduler/resourceStrategyContracts.d.ts.map +1 -0
  696. package/dist/scheduler/resourceStrategyContracts.js +24 -0
  697. package/dist/scheduler/resourceStrategyContracts.js.map +1 -0
  698. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts +5 -0
  699. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts.map +1 -0
  700. package/dist/scheduler/resourceStrategyFinancialValidation.js +151 -0
  701. package/dist/scheduler/resourceStrategyFinancialValidation.js.map +1 -0
  702. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts +4 -0
  703. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts.map +1 -0
  704. package/dist/scheduler/resourceStrategyPermissionValidation.js +195 -0
  705. package/dist/scheduler/resourceStrategyPermissionValidation.js.map +1 -0
  706. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts +14 -0
  707. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts.map +1 -0
  708. package/dist/scheduler/resourceStrategyScheduleValidation.js +519 -0
  709. package/dist/scheduler/resourceStrategyScheduleValidation.js.map +1 -0
  710. package/dist/scheduler/resourceStrategyValidation.d.ts +5 -0
  711. package/dist/scheduler/resourceStrategyValidation.d.ts.map +1 -0
  712. package/dist/scheduler/resourceStrategyValidation.js +21 -0
  713. package/dist/scheduler/resourceStrategyValidation.js.map +1 -0
  714. package/dist/scheduler/resourceStrategyValidationShared.d.ts +19 -0
  715. package/dist/scheduler/resourceStrategyValidationShared.d.ts.map +1 -0
  716. package/dist/scheduler/resourceStrategyValidationShared.js +281 -0
  717. package/dist/scheduler/resourceStrategyValidationShared.js.map +1 -0
  718. package/dist/scheduler/schedulerContracts.d.ts +184 -0
  719. package/dist/scheduler/schedulerContracts.d.ts.map +1 -0
  720. package/dist/scheduler/schedulerContracts.js +3 -0
  721. package/dist/scheduler/schedulerContracts.js.map +1 -0
  722. package/dist/scheduler/schedulerValidation.d.ts +15 -0
  723. package/dist/scheduler/schedulerValidation.d.ts.map +1 -0
  724. package/dist/scheduler/schedulerValidation.js +388 -0
  725. package/dist/scheduler/schedulerValidation.js.map +1 -0
  726. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts +26 -0
  727. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts.map +1 -0
  728. package/dist/scheduler/weeklyAvailabilityFixtures.js +144 -0
  729. package/dist/scheduler/weeklyAvailabilityFixtures.js.map +1 -0
  730. package/package.json +43 -7
  731. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +0 -10
  732. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +0 -1
  733. package/dist/aws/pluginPublicArtifactBodyValidation.js +0 -225
  734. package/dist/aws/pluginPublicArtifactBodyValidation.js.map +0 -1
  735. package/dist/aws/pluginPublicArtifactEvidence.d.ts +0 -161
  736. package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +0 -1
  737. package/dist/aws/pluginPublicArtifactEvidence.js.map +0 -1
  738. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +0 -4
  739. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +0 -1
  740. package/dist/aws/pluginPublicArtifactManifestValidation.js +0 -259
  741. package/dist/aws/pluginPublicArtifactManifestValidation.js.map +0 -1
  742. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +0 -6
  743. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +0 -1
  744. package/dist/aws/pluginPublicArtifactSectionValidation.js +0 -471
  745. package/dist/aws/pluginPublicArtifactSectionValidation.js.map +0 -1
  746. package/dist/aws/pluginPublicArtifactValidation.d.ts +0 -3
  747. package/dist/aws/pluginPublicArtifactValidation.d.ts.map +0 -1
  748. package/dist/aws/pluginPublicArtifactValidation.js +0 -9
  749. package/dist/aws/pluginPublicArtifactValidation.js.map +0 -1
  750. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +0 -23
  751. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +0 -1
  752. package/dist/aws/pluginPublicArtifactValidationHelpers.js +0 -240
  753. package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +0 -1
  754. package/dist/aws/pluginPublicArtifacts.d.ts +0 -253
  755. package/dist/aws/pluginPublicArtifacts.d.ts.map +0 -1
  756. package/dist/aws/pluginPublicArtifacts.js +0 -51
  757. package/dist/aws/pluginPublicArtifacts.js.map +0 -1
  758. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +0 -4
  759. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +0 -1
  760. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +0 -513
  761. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +0 -1
  762. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +0 -13
  763. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +0 -1
  764. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +0 -5
  765. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +0 -1
  766. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +0 -4
  767. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +0 -1
  768. package/dist/aws/portalPublicArtifactCurrentValidation.js +0 -333
  769. package/dist/aws/portalPublicArtifactCurrentValidation.js.map +0 -1
  770. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +0 -6
  771. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +0 -1
  772. package/dist/aws/portalPublicArtifactEvidenceValidation.js +0 -301
  773. package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +0 -1
  774. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +0 -8
  775. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +0 -1
  776. package/dist/aws/portalPublicArtifactHistoryAiValidation.js +0 -377
  777. package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +0 -1
  778. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +0 -178
  779. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +0 -1
  780. package/dist/aws/portalPublicArtifactHistoryTypes.js +0 -44
  781. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +0 -1
  782. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +0 -127
  783. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +0 -1
  784. package/dist/aws/portalPublicArtifactNestedEvidence.js.map +0 -1
  785. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +0 -6
  786. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +0 -1
  787. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +0 -405
  788. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +0 -1
  789. package/dist/aws/portalPublicArtifactValidation.d.ts +0 -3
  790. package/dist/aws/portalPublicArtifactValidation.d.ts.map +0 -1
  791. package/dist/aws/portalPublicArtifactValidation.js +0 -14
  792. package/dist/aws/portalPublicArtifactValidation.js.map +0 -1
  793. package/dist/aws/portalPublicArtifactValidationCommon.d.ts +0 -30
  794. package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +0 -1
  795. package/dist/aws/portalPublicArtifactValidationCommon.js +0 -167
  796. package/dist/aws/portalPublicArtifactValidationCommon.js.map +0 -1
  797. package/dist/aws/portalPublicArtifacts.d.ts +0 -400
  798. package/dist/aws/portalPublicArtifacts.d.ts.map +0 -1
  799. package/dist/aws/portalPublicArtifacts.js +0 -85
  800. package/dist/aws/portalPublicArtifacts.js.map +0 -1
  801. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts +0 -4
  802. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts.map +0 -1
  803. package/dist/aws/portalRelationshipPublicArtifactValidation.js +0 -338
  804. package/dist/aws/portalRelationshipPublicArtifactValidation.js.map +0 -1
  805. package/dist/aws/portalRelationshipPublicArtifacts.d.ts +0 -196
  806. package/dist/aws/portalRelationshipPublicArtifacts.d.ts.map +0 -1
  807. package/dist/aws/portalRelationshipPublicArtifacts.js +0 -63
  808. package/dist/aws/portalRelationshipPublicArtifacts.js.map +0 -1
  809. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts +0 -269
  810. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts.map +0 -1
  811. package/dist/aws/portalRelationshipResourceNodeTypes.js.map +0 -1
  812. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts +0 -2
  813. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts.map +0 -1
  814. package/dist/aws/portalRelationshipResourceNodeValidation.js +0 -372
  815. package/dist/aws/portalRelationshipResourceNodeValidation.js.map +0 -1
  816. package/dist/esm/aws/pluginPublicArtifactBodyValidation.js +0 -217
  817. package/dist/esm/aws/pluginPublicArtifactManifestValidation.js +0 -255
  818. package/dist/esm/aws/pluginPublicArtifactSectionValidation.js +0 -464
  819. package/dist/esm/aws/pluginPublicArtifactValidation.js +0 -2
  820. package/dist/esm/aws/pluginPublicArtifactValidationHelpers.js +0 -216
  821. package/dist/esm/aws/pluginPublicArtifacts.js +0 -44
  822. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifactValidation.js +0 -509
  823. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifacts.js +0 -1
  824. package/dist/esm/aws/portalPublicArtifactCurrentValidation.js +0 -328
  825. package/dist/esm/aws/portalPublicArtifactEvidenceValidation.js +0 -294
  826. package/dist/esm/aws/portalPublicArtifactHistoryAiValidation.js +0 -368
  827. package/dist/esm/aws/portalPublicArtifactHistoryTypes.js +0 -40
  828. package/dist/esm/aws/portalPublicArtifactNestedEvidenceValidation.js +0 -397
  829. package/dist/esm/aws/portalPublicArtifactValidation.js +0 -2
  830. package/dist/esm/aws/portalPublicArtifactValidationCommon.js +0 -139
  831. package/dist/esm/aws/portalPublicArtifacts.js +0 -73
  832. package/dist/esm/aws/portalRelationshipPublicArtifactValidation.js +0 -334
  833. package/dist/esm/aws/portalRelationshipPublicArtifacts.js +0 -59
  834. package/dist/esm/aws/portalRelationshipResourceNodeValidation.js +0 -368
  835. package/dist/scheduler/scheduler.d.ts +0 -263
  836. package/dist/scheduler/scheduler.d.ts.map +0 -1
  837. package/dist/scheduler/scheduler.js.map +0 -1
  838. /package/dist/esm/aws/{pluginPublicArtifactEvidence.js → commitmentsPlanningView.js} +0 -0
  839. /package/dist/esm/{aws/portalPublicArtifactNestedEvidence.js → common/boundedRows.js} +0 -0
  840. /package/dist/esm/{aws/portalRelationshipResourceNodeTypes.js → common/metricStats.js} +0 -0
  841. /package/dist/esm/{scheduler/scheduler.js → identity/microsoftSignInAdminConsent.js} +0 -0
@@ -2,7 +2,9 @@ import { sha256Utf8 } from '../common/sha256.js';
2
2
  import { canonicalizeFinancialSavingsJsonValue, hasExactFinancialSavingsFields, haveSameFinancialSavingsSet, isFinancialSavingsHash, isFinancialSavingsIdentity, isFinancialSavingsIsoInstant, isFinancialSavingsMinorUnits, isFinancialSavingsRecord, sumFinancialSavingsMinorUnits, } from './financialSavingsAuthorityValidationPrimitives.js';
3
3
  import { FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1, FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1, } from './financialSavingsSurfaceProjection.js';
4
4
  import { isFinancialBaselinePeriodV2 } from './financialScopeBaselineValidation.js';
5
+ import { isFinancialChargeInclusionPolicyRefV1 } from './financialChargeCompositionValidation.js';
5
6
  import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
7
+ import { composeFinancialSavingsAllocationPercentageV1 } from './financialSavingsPercentageKernel.js';
6
8
  const COST_BASES = new Set(['billed', 'amortized']);
7
9
  const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
8
10
  const UNAVAILABLE_REASONS = new Set([
@@ -18,7 +20,22 @@ const MAX_ALLOCATIONS = 20000;
18
20
  export const canonicalizeFinancialSavingsSurfaceProjectionIdentityV1 = (value) => JSON.stringify(canonicalizeFinancialSavingsJsonValue({
19
21
  ...value,
20
22
  providerAccountRefs: [...value.providerAccountRefs].sort(),
21
- scope: value.scope.kind === 'subscription-full' ? value.scope : { ...value.scope, recommendationIds: [...value.scope.recommendationIds].sort() },
23
+ ...(value.lifecycleBindings === undefined
24
+ ? {}
25
+ : {
26
+ lifecycleBindings: [...value.lifecycleBindings]
27
+ .sort((left, right) => left.resourceId.localeCompare(right.resourceId) || left.recommendationId.localeCompare(right.recommendationId))
28
+ .map(binding => ({ ...binding, allocationIds: [...binding.allocationIds].sort() })),
29
+ }),
30
+ scope: value.scope.kind === 'subscription-full'
31
+ ? value.scope
32
+ : value.scope.kind === 'recommendation-query'
33
+ ? { ...value.scope, recommendationIds: [...value.scope.recommendationIds].sort() }
34
+ : {
35
+ ...value.scope,
36
+ allocationIds: [...value.scope.allocationIds].sort(),
37
+ recommendationIds: [...value.scope.recommendationIds].sort(),
38
+ },
22
39
  coordinates: [...value.coordinates]
23
40
  .sort((left, right) => left.coordinateId.localeCompare(right.coordinateId))
24
41
  .map(coordinate => coordinate.status === 'unavailable'
@@ -27,7 +44,29 @@ export const canonicalizeFinancialSavingsSurfaceProjectionIdentityV1 = (value) =
27
44
  ...coordinate,
28
45
  recommendationContributions: [...coordinate.recommendationContributions]
29
46
  .sort((left, right) => left.recommendationId.localeCompare(right.recommendationId))
30
- .map(contribution => ({ ...contribution, allocationIds: [...contribution.allocationIds].sort() })),
47
+ .map(contribution => ({
48
+ ...contribution,
49
+ allocationIds: [...contribution.allocationIds].sort(),
50
+ ...(contribution.allocations === undefined
51
+ ? {}
52
+ : {
53
+ allocations: [...contribution.allocations].sort((left, right) => left.allocationId.localeCompare(right.allocationId)),
54
+ }),
55
+ })),
56
+ ...(coordinate.resourceContributions === undefined
57
+ ? {}
58
+ : {
59
+ resourceContributions: [...coordinate.resourceContributions]
60
+ .sort((left, right) => left.resourceId.localeCompare(right.resourceId))
61
+ .map(contribution => ({
62
+ ...contribution,
63
+ allocationIds: [...contribution.allocationIds].sort(),
64
+ denominator: {
65
+ ...contribution.denominator,
66
+ denominatorIds: [...contribution.denominator.denominatorIds].sort(),
67
+ },
68
+ })),
69
+ }),
31
70
  aggregate: { ...coordinate.aggregate, allocationIds: [...coordinate.aggregate.allocationIds].sort() },
32
71
  }),
33
72
  }));
@@ -38,12 +77,24 @@ const isScope = (value) => {
38
77
  return false;
39
78
  if (value.kind === 'subscription-full')
40
79
  return hasExactFinancialSavingsFields(value, ['kind']);
41
- return (value.kind === 'recommendation-query' &&
80
+ if (value.kind === 'recommendation-query' &&
42
81
  hasExactFinancialSavingsFields(value, ['kind', 'filterFingerprint', 'recommendationIds']) &&
43
82
  isFinancialSavingsHash(value.filterFingerprint) &&
44
83
  Array.isArray(value.recommendationIds) &&
45
84
  value.recommendationIds.length <= MAX_ALLOCATIONS &&
46
85
  value.recommendationIds.every(isFinancialSavingsIdentity) &&
86
+ new Set(value.recommendationIds).size === value.recommendationIds.length)
87
+ return true;
88
+ return (value.kind === 'resource-query' &&
89
+ hasExactFinancialSavingsFields(value, ['kind', 'filterFingerprint', 'allocationIds', 'recommendationIds']) &&
90
+ isFinancialSavingsHash(value.filterFingerprint) &&
91
+ Array.isArray(value.allocationIds) &&
92
+ value.allocationIds.length <= MAX_ALLOCATIONS &&
93
+ value.allocationIds.every(isFinancialSavingsHash) &&
94
+ new Set(value.allocationIds).size === value.allocationIds.length &&
95
+ Array.isArray(value.recommendationIds) &&
96
+ value.recommendationIds.length <= MAX_ALLOCATIONS &&
97
+ value.recommendationIds.every(isFinancialSavingsIdentity) &&
47
98
  new Set(value.recommendationIds).size === value.recommendationIds.length);
48
99
  };
49
100
  const isCoordinateCommon = (value) => isFinancialSavingsHash(value.coordinateId) &&
@@ -53,9 +104,20 @@ const isCoordinateCommon = (value) => isFinancialSavingsHash(value.coordinateId)
53
104
  COST_BASES.has(value.costBasis) &&
54
105
  typeof value.estimateLens === 'string' &&
55
106
  ESTIMATE_LENSES.has(value.estimateLens) &&
107
+ isFinancialChargeInclusionPolicyRefV1(value.chargeInclusionPolicyRef) &&
56
108
  (value.requestedCurrencyCode === undefined || isCurrency(value.requestedCurrencyCode)) &&
57
109
  (value.currentAggregateBaselineId === undefined || isFinancialSavingsHash(value.currentAggregateBaselineId));
58
- const isAvailableCoordinate = (value, queryRecommendationIds) => {
110
+ const isLifecycleBinding = (value) => isFinancialSavingsRecord(value) &&
111
+ hasExactFinancialSavingsFields(value, ['resourceId', 'recommendationId', 'allocationIds']) &&
112
+ isFinancialSavingsIdentity(value.resourceId) &&
113
+ isFinancialSavingsIdentity(value.recommendationId) &&
114
+ Array.isArray(value.allocationIds) &&
115
+ value.allocationIds.length > 0 &&
116
+ value.allocationIds.length <= MAX_ALLOCATIONS &&
117
+ value.allocationIds.every(isFinancialSavingsHash) &&
118
+ new Set(value.allocationIds).size === value.allocationIds.length;
119
+ const isComposedCoordinate = (value, queryRecommendationIds, queryAllocationIds) => {
120
+ const partial = value.status === 'partial';
59
121
  if (!hasExactFinancialSavingsFields(value, [
60
122
  'status',
61
123
  'coordinateId',
@@ -63,6 +125,7 @@ const isAvailableCoordinate = (value, queryRecommendationIds) => {
63
125
  'period',
64
126
  'costBasis',
65
127
  'estimateLens',
128
+ 'chargeInclusionPolicyRef',
66
129
  'currentAggregateBaselineId',
67
130
  'currentAggregate',
68
131
  'accountingCurrencyCode',
@@ -70,7 +133,8 @@ const isAvailableCoordinate = (value, queryRecommendationIds) => {
70
133
  'roundingMode',
71
134
  'recommendationContributions',
72
135
  'aggregate',
73
- ], ['requestedCurrencyCode']) ||
136
+ ...(partial ? ['unavailableRecommendationIds'] : []),
137
+ ], ['requestedCurrencyCode', 'resourceContributions']) ||
74
138
  !isCoordinateCommon(value) ||
75
139
  !isFinancialSavingsHash(value.currentAggregateBaselineId) ||
76
140
  !isCanonicalExactMoney(value.currentAggregate) ||
@@ -90,12 +154,21 @@ const isAvailableCoordinate = (value, queryRecommendationIds) => {
90
154
  new Set(value.aggregate.allocationIds).size !== value.aggregate.allocationIds.length ||
91
155
  !isFinancialSavingsMinorUnits(value.aggregate.savingsMinorUnits))
92
156
  return false;
157
+ if (partial &&
158
+ (!Array.isArray(value.unavailableRecommendationIds) ||
159
+ value.unavailableRecommendationIds.length === 0 ||
160
+ value.unavailableRecommendationIds.length > MAX_ALLOCATIONS ||
161
+ !value.unavailableRecommendationIds.every(isFinancialSavingsIdentity) ||
162
+ new Set(value.unavailableRecommendationIds).size !== value.unavailableRecommendationIds.length ||
163
+ (queryRecommendationIds !== undefined && value.unavailableRecommendationIds.some(id => !queryRecommendationIds.has(id)))))
164
+ return false;
93
165
  const recommendationIds = new Set();
94
166
  const allocationIds = [];
95
167
  const contributionAmounts = [];
168
+ const allocationById = new Map();
96
169
  for (const contribution of value.recommendationContributions) {
97
170
  if (!isFinancialSavingsRecord(contribution) ||
98
- !hasExactFinancialSavingsFields(contribution, ['recommendationId', 'allocationIds', 'savingsMinorUnits']) ||
171
+ !hasExactFinancialSavingsFields(contribution, ['recommendationId', 'allocationIds', 'savingsMinorUnits'], ['allocations']) ||
99
172
  !isFinancialSavingsIdentity(contribution.recommendationId) ||
100
173
  recommendationIds.has(contribution.recommendationId) ||
101
174
  (queryRecommendationIds !== undefined && !queryRecommendationIds.has(contribution.recommendationId)) ||
@@ -104,17 +177,99 @@ const isAvailableCoordinate = (value, queryRecommendationIds) => {
104
177
  contribution.allocationIds.length > MAX_ALLOCATIONS ||
105
178
  !contribution.allocationIds.every(isFinancialSavingsHash) ||
106
179
  new Set(contribution.allocationIds).size !== contribution.allocationIds.length ||
107
- !isFinancialSavingsMinorUnits(contribution.savingsMinorUnits))
180
+ !isFinancialSavingsMinorUnits(contribution.savingsMinorUnits) ||
181
+ (queryAllocationIds !== undefined && !Array.isArray(contribution.allocations)) ||
182
+ (contribution.allocations !== undefined &&
183
+ (!Array.isArray(contribution.allocations) || contribution.allocations.length !== contribution.allocationIds.length)))
184
+ return false;
185
+ const exactAllocations = contribution.allocations;
186
+ if (exactAllocations === undefined) {
187
+ recommendationIds.add(contribution.recommendationId);
188
+ allocationIds.push(...contribution.allocationIds);
189
+ contributionAmounts.push(contribution.savingsMinorUnits);
190
+ continue;
191
+ }
192
+ const exactAllocationIds = [];
193
+ const exactAllocationAmounts = [];
194
+ for (const allocation of exactAllocations) {
195
+ if (!isFinancialSavingsRecord(allocation) ||
196
+ !hasExactFinancialSavingsFields(allocation, ['allocationId', 'savingsMinorUnits'], ['denominator']) ||
197
+ !isFinancialSavingsHash(allocation.allocationId) ||
198
+ (queryAllocationIds !== undefined && !queryAllocationIds.has(allocation.allocationId)) ||
199
+ !isFinancialSavingsMinorUnits(allocation.savingsMinorUnits) ||
200
+ (allocation.denominator !== undefined &&
201
+ (!isFinancialSavingsRecord(allocation.denominator) ||
202
+ !hasExactFinancialSavingsFields(allocation.denominator, ['denominatorId', 'amount', 'currencyCode']) ||
203
+ !isFinancialSavingsHash(allocation.denominator.denominatorId) ||
204
+ !isCanonicalExactMoney({
205
+ amount: allocation.denominator.amount,
206
+ currencyCode: allocation.denominator.currencyCode,
207
+ }))))
208
+ return false;
209
+ exactAllocationIds.push(allocation.allocationId);
210
+ exactAllocationAmounts.push(allocation.savingsMinorUnits);
211
+ allocationById.set(allocation.allocationId, allocation);
212
+ }
213
+ if (new Set(exactAllocationIds).size !== exactAllocationIds.length ||
214
+ !haveSameFinancialSavingsSet(exactAllocationIds, contribution.allocationIds) ||
215
+ sumFinancialSavingsMinorUnits(exactAllocationAmounts) !== contribution.savingsMinorUnits)
108
216
  return false;
109
217
  recommendationIds.add(contribution.recommendationId);
110
218
  allocationIds.push(...contribution.allocationIds);
111
219
  contributionAmounts.push(contribution.savingsMinorUnits);
112
220
  }
221
+ if (value.resourceContributions !== undefined) {
222
+ if (!Array.isArray(value.resourceContributions) || value.resourceContributions.length > MAX_ALLOCATIONS)
223
+ return false;
224
+ const resourceIds = new Set();
225
+ const resourceAllocationIds = [];
226
+ for (const contribution of value.resourceContributions) {
227
+ if (!isFinancialSavingsRecord(contribution) ||
228
+ !hasExactFinancialSavingsFields(contribution, ['resourceId', 'allocationIds', 'savingsMinorUnits', 'denominator', 'percentage']) ||
229
+ !isFinancialSavingsIdentity(contribution.resourceId) ||
230
+ resourceIds.has(contribution.resourceId) ||
231
+ !Array.isArray(contribution.allocationIds) ||
232
+ contribution.allocationIds.length === 0 ||
233
+ contribution.allocationIds.length > MAX_ALLOCATIONS ||
234
+ !contribution.allocationIds.every(isFinancialSavingsHash) ||
235
+ new Set(contribution.allocationIds).size !== contribution.allocationIds.length ||
236
+ !isFinancialSavingsMinorUnits(contribution.savingsMinorUnits) ||
237
+ !isFinancialSavingsRecord(contribution.denominator) ||
238
+ !hasExactFinancialSavingsFields(contribution.denominator, ['denominatorIds', 'amount', 'currencyCode']) ||
239
+ !Array.isArray(contribution.denominator.denominatorIds) ||
240
+ contribution.denominator.denominatorIds.length === 0 ||
241
+ !contribution.denominator.denominatorIds.every(isFinancialSavingsHash) ||
242
+ new Set(contribution.denominator.denominatorIds).size !== contribution.denominator.denominatorIds.length ||
243
+ !isCanonicalExactMoney({ amount: contribution.denominator.amount, currencyCode: contribution.denominator.currencyCode }) ||
244
+ typeof contribution.percentage !== 'number' ||
245
+ !Number.isFinite(contribution.percentage) ||
246
+ contribution.percentage < 0)
247
+ return false;
248
+ const allocations = contribution.allocationIds.map(allocationId => allocationById.get(allocationId));
249
+ if (allocations.some(allocation => allocation === undefined))
250
+ return false;
251
+ const exactAllocations = allocations;
252
+ const composed = composeFinancialSavingsAllocationPercentageV1(exactAllocations, Number(value.minorUnitScale));
253
+ if (!composed ||
254
+ sumFinancialSavingsMinorUnits(exactAllocations.map(allocation => allocation.savingsMinorUnits)) !==
255
+ contribution.savingsMinorUnits ||
256
+ !haveSameFinancialSavingsSet(composed.denominatorIds, contribution.denominator.denominatorIds) ||
257
+ composed.denominatorAmount !== contribution.denominator.amount ||
258
+ composed.denominatorCurrencyCode !== contribution.denominator.currencyCode ||
259
+ composed.percentage !== contribution.percentage)
260
+ return false;
261
+ resourceIds.add(contribution.resourceId);
262
+ resourceAllocationIds.push(...contribution.allocationIds);
263
+ }
264
+ if (new Set(resourceAllocationIds).size !== resourceAllocationIds.length ||
265
+ !haveSameFinancialSavingsSet(resourceAllocationIds, allocationIds))
266
+ return false;
267
+ }
113
268
  return (new Set(allocationIds).size === allocationIds.length &&
114
269
  haveSameFinancialSavingsSet(allocationIds, value.aggregate.allocationIds) &&
115
270
  sumFinancialSavingsMinorUnits(contributionAmounts) === value.aggregate.savingsMinorUnits);
116
271
  };
117
- const isUnavailableCoordinate = (value) => hasExactFinancialSavingsFields(value, ['status', 'coordinateId', 'periodRole', 'period', 'costBasis', 'estimateLens', 'unavailableReason'], ['requestedCurrencyCode', 'currentAggregateBaselineId']) &&
272
+ const isUnavailableCoordinate = (value) => hasExactFinancialSavingsFields(value, ['status', 'coordinateId', 'periodRole', 'period', 'costBasis', 'estimateLens', 'chargeInclusionPolicyRef', 'unavailableReason'], ['requestedCurrencyCode', 'currentAggregateBaselineId']) &&
118
273
  isCoordinateCommon(value) &&
119
274
  typeof value.unavailableReason === 'string' &&
120
275
  UNAVAILABLE_REASONS.has(value.unavailableReason);
@@ -132,13 +287,15 @@ export const isFinancialSavingsSurfaceProjectionV1 = (value) => {
132
287
  'financialAuthorityId',
133
288
  'savingsAuthorityId',
134
289
  'coordinates',
135
- ]) ||
290
+ ], ['lifecycleBindings']) ||
136
291
  value.schemaVersion !== FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1 ||
137
292
  value.contractVersion !== FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1 ||
138
293
  !isFinancialSavingsHash(value.projectionId) ||
139
- (value.surface !== 'recommendations' && value.surface !== 'dashboard') ||
294
+ (value.surface !== 'recommendations' && value.surface !== 'resources' && value.surface !== 'dashboard') ||
140
295
  !isScope(value.scope) ||
141
296
  (value.surface === 'dashboard' && value.scope.kind !== 'subscription-full') ||
297
+ (value.surface === 'recommendations' && value.scope.kind === 'resource-query') ||
298
+ (value.surface === 'resources' && value.scope.kind === 'recommendation-query') ||
142
299
  value.provider !== 'azure' ||
143
300
  !Array.isArray(value.providerAccountRefs) ||
144
301
  value.providerAccountRefs.length === 0 ||
@@ -151,21 +308,50 @@ export const isFinancialSavingsSurfaceProjectionV1 = (value) => {
151
308
  !isFinancialSavingsIsoInstant(value.artifactGeneration.generatedAt) ||
152
309
  !isFinancialSavingsHash(value.financialAuthorityId) ||
153
310
  !isFinancialSavingsHash(value.savingsAuthorityId) ||
311
+ (value.lifecycleBindings !== undefined &&
312
+ (!Array.isArray(value.lifecycleBindings) ||
313
+ value.lifecycleBindings.length === 0 ||
314
+ value.lifecycleBindings.length > MAX_ALLOCATIONS ||
315
+ !value.lifecycleBindings.every(isLifecycleBinding))) ||
154
316
  !Array.isArray(value.coordinates) ||
155
317
  value.coordinates.length === 0 ||
156
318
  value.coordinates.length > MAX_COORDINATES)
157
319
  return false;
158
320
  const projection = value;
159
- const queryRecommendationIds = projection.scope.kind === 'recommendation-query' ? new Set(projection.scope.recommendationIds) : undefined;
321
+ const queryRecommendationIds = projection.scope.kind === 'recommendation-query' || projection.scope.kind === 'resource-query'
322
+ ? new Set(projection.scope.recommendationIds)
323
+ : undefined;
324
+ const queryAllocationIds = projection.scope.kind === 'resource-query' ? new Set(projection.scope.allocationIds) : undefined;
160
325
  if (!projection.coordinates.every(coordinate => {
161
326
  if (!isFinancialSavingsRecord(coordinate))
162
327
  return false;
163
- return coordinate.status === 'available'
164
- ? isAvailableCoordinate(coordinate, queryRecommendationIds)
328
+ return coordinate.status === 'available' || coordinate.status === 'partial'
329
+ ? isComposedCoordinate(coordinate, queryRecommendationIds, queryAllocationIds)
165
330
  : coordinate.status === 'unavailable' && isUnavailableCoordinate(coordinate);
166
331
  }) ||
167
332
  new Set(projection.coordinates.map(coordinate => coordinate.coordinateId)).size !== projection.coordinates.length)
168
333
  return false;
334
+ if (projection.lifecycleBindings !== undefined) {
335
+ const lifecycleKeys = projection.lifecycleBindings.map(binding => `${binding.resourceId}\u0000${binding.recommendationId}`);
336
+ const boundAllocationIds = projection.lifecycleBindings.flatMap(binding => binding.allocationIds);
337
+ const projectedAllocationOwners = new Map();
338
+ for (const coordinate of projection.coordinates) {
339
+ if (coordinate.status === 'unavailable')
340
+ continue;
341
+ for (const contribution of coordinate.recommendationContributions) {
342
+ for (const allocationId of contribution.allocationIds) {
343
+ if (projectedAllocationOwners.has(allocationId))
344
+ return false;
345
+ projectedAllocationOwners.set(allocationId, contribution.recommendationId);
346
+ }
347
+ }
348
+ }
349
+ if (new Set(lifecycleKeys).size !== lifecycleKeys.length ||
350
+ new Set(boundAllocationIds).size !== boundAllocationIds.length ||
351
+ boundAllocationIds.length !== projectedAllocationOwners.size ||
352
+ projection.lifecycleBindings.some(binding => binding.allocationIds.some(allocationId => projectedAllocationOwners.get(allocationId) !== binding.recommendationId)))
353
+ return false;
354
+ }
169
355
  const { projectionId: _projectionId, ...identity } = projection;
170
356
  return projection.projectionId === createFinancialSavingsSurfaceProjectionIdV1(identity);
171
357
  };
@@ -1,7 +1,11 @@
1
1
  export * from './financialScopeEvidence.js';
2
+ export * from './financialEvidenceCoverage.js';
2
3
  export * from './financialScopeBaseline.js';
3
4
  export * from './financialScopeBaselineIdentity.js';
4
5
  export * from './financialScopeBaselineValidation.js';
6
+ export * from './financialChargeComposition.js';
7
+ export * from './financialChargeCompositionValidation.js';
8
+ export * from './financialChargeCompositionKernel.js';
5
9
  export * from './financialEvidenceAssessmentValidation.js';
6
10
  export * from './financialProjection.js';
7
11
  export * from './financialProjectionValidation.js';
@@ -9,17 +13,27 @@ export * from './financialDisplayRollup.js';
9
13
  export * from './financialDisplayRollupValidation.js';
10
14
  export * from './financialAuthorityView.js';
11
15
  export * from './financialAuthorityViewValidation.js';
16
+ export * from './financialAuthorityProjectionKernel.js';
12
17
  export * from './financialSavingsAuthority.js';
13
18
  export * from './financialSavingsAuthorityValidation.js';
14
19
  export * from './financialSavingsSurfaceProjection.js';
15
20
  export * from './financialSavingsSurfaceProjectionValidation.js';
21
+ export * from './financialSavingsSurfaceProjectionKernel.js';
22
+ export * from './financialSavingsPercentageKernel.js';
23
+ export * from './financialCurrentSpendSurfaceProjection.js';
24
+ export * from './financialCurrentSpendSurfaceProjectionValidation.js';
25
+ export * from './financialResourceSurfaceProjection.js';
26
+ export * from './financialResourceSurfaceProjectionValidation.js';
16
27
  export * from './financialDataflow.js';
17
28
  export * from './financialDataflowValidation.js';
29
+ export * from './financialDataflowKernel.js';
18
30
  export * from './financialAnalytics.js';
19
31
  export * from './financialAnalyticsValidation.js';
32
+ export * from './financialAnalyticsDisplayKernel.js';
20
33
  export * from './financialAnalyticsDelivery.js';
21
34
  export * from './financialAnalyticsDeliveryValidation.js';
22
35
  export * from './financialPolicy.js';
23
36
  export * from './financialPolicyValidation.js';
37
+ export * from './financialPolicyKernel.js';
24
38
  export * from './financialPolicyDelivery.js';
25
39
  export * from './financialPolicyDeliveryValidation.js';
@@ -1,5 +1,16 @@
1
1
  export const FINANCIAL_SCOPE_BASELINE_SCHEMA_VERSION_V2 = 2;
2
2
  export const FINANCIAL_SCOPE_BASELINE_CONTRACT_VERSION_V2 = 'financial-scope-baseline/v2';
3
+ /**
4
+ * True only when the produced evidence covers the entire requested interval.
5
+ * Partial periods remain valid monetary evidence for display and forecasting,
6
+ * but must not be used as the current side of an optimization projection.
7
+ */
8
+ export const isCompleteFinancialBaselinePeriodV2 = (period) => period.observed !== undefined &&
9
+ period.observed.startDate === period.requested.startDate &&
10
+ period.observed.endDateExclusive === period.requested.endDateExclusive &&
11
+ period.observed.dateBasis === period.requested.dateBasis &&
12
+ period.observed.timeZone === period.requested.timeZone &&
13
+ period.gaps.length === 0;
3
14
  export const FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2 = [
4
15
  'evidence-not-produced',
5
16
  'evidence-not-matched',
@@ -15,5 +26,6 @@ export const FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2 = [
15
26
  'mixed-generation',
16
27
  'member-incompatible',
17
28
  'reconciliation-failure',
29
+ 'scope-membership-empty',
18
30
  'unsupported-scope',
19
31
  ];
@@ -85,10 +85,21 @@ const canonicalComponent = (component) => ({
85
85
  ownerScopeId: component.ownerScopeId,
86
86
  chargeClassification: component.chargeClassification,
87
87
  amount: component.amount,
88
+ ...(component.estimateReason === undefined ? {} : { estimateReason: component.estimateReason }),
88
89
  evidenceRefIds: [...component.evidenceRefIds].sort(compareCodePoints),
89
90
  coverageIds: [...component.coverageIds].sort(compareCodePoints),
90
- ...(component.quantity === undefined ? {} : { quantity: component.quantity }),
91
- ...(component.effectiveRate === undefined ? {} : { effectiveRate: component.effectiveRate }),
91
+ ...(component.quantity === undefined
92
+ ? {}
93
+ : { quantity: { amount: component.quantity.amount, unit: component.quantity.unit } }),
94
+ ...(component.effectiveRate === undefined
95
+ ? {}
96
+ : {
97
+ effectiveRate: {
98
+ amount: component.effectiveRate.amount,
99
+ unit: component.effectiveRate.unit,
100
+ currencyCode: component.effectiveRate.currencyCode,
101
+ },
102
+ }),
92
103
  });
93
104
  /** Canonical UTF-8 text for a validated owner or aggregate baseline identity. */
94
105
  export const canonicalizeValidatedFinancialScopeBaselineIdentityV2 = (value) => {
@@ -116,7 +127,10 @@ export const canonicalizeValidatedFinancialScopeBaselineIdentityV2 = (value) =>
116
127
  evidenceRefIds: [...value.accountingCurrency.evidenceRefIds].sort(compareCodePoints),
117
128
  ...(value.accountingCurrency.fxEvidenceRefId === undefined ? {} : { fxEvidenceRefId: value.accountingCurrency.fxEvidenceRefId }),
118
129
  },
119
- chargeInclusionPolicyRef: value.chargeInclusionPolicyRef,
130
+ chargeInclusionPolicyRef: {
131
+ policyId: value.chargeInclusionPolicyRef.policyId,
132
+ policyDigest: value.chargeInclusionPolicyRef.policyDigest,
133
+ },
120
134
  components: [...value.components].sort((left, right) => compareCodePoints(left.componentId, right.componentId)).map(canonicalComponent),
121
135
  });
122
136
  }
@@ -124,6 +138,12 @@ export const canonicalizeValidatedFinancialScopeBaselineIdentityV2 = (value) =>
124
138
  ...common,
125
139
  accountingCurrencyCode: value.accountingCurrencyCode,
126
140
  memberBaselineIds: [...value.memberBaselineIds].sort(compareCodePoints),
127
- compatibility: value.compatibility,
141
+ compatibility: {
142
+ period: value.compatibility.period,
143
+ costBasis: value.compatibility.costBasis,
144
+ estimateLens: value.compatibility.estimateLens,
145
+ accountingCurrency: value.compatibility.accountingCurrency,
146
+ membership: value.compatibility.membership,
147
+ },
128
148
  });
129
149
  };
@@ -9,6 +9,7 @@ const MAX_SOURCE_KIND_LENGTH = 128;
9
9
  const MAX_IDENTITY_LENGTH = 256;
10
10
  const SHA256_ID = /^sha256:[0-9a-f]{64}$/;
11
11
  const DATE = /^\d{4}-\d{2}-\d{2}$/;
12
+ const ESTIMATE_REASONS = new Set(['billing-lag', 'billing-unavailable-sponsorship', 'other']);
12
13
  const EVIDENCE_ROLES = new Set([
13
14
  'billing',
14
15
  'billing-currency-declaration',
@@ -17,6 +18,13 @@ const EVIDENCE_ROLES = new Set([
17
18
  'retail-rate',
18
19
  'commitment-quote',
19
20
  'fx-conversion',
21
+ 'commercial-arrangement',
22
+ 'provider-access-observation',
23
+ 'configuration-timeline',
24
+ 'provider-price-schedule',
25
+ 'pricing-function',
26
+ 'charge-inclusion-policy',
27
+ 'settlement-revision',
20
28
  'eligibility-rule',
21
29
  'recommendation-scenario-set',
22
30
  'recommendation-lifecycle',
@@ -35,7 +43,14 @@ const OWNER_SCOPE_KINDS = new Set(['canonical-resource-owner', 'composite-resour
35
43
  const AGGREGATE_SCOPE_KINDS = new Set(['subscription-aggregate', 'portfolio-currency-group']);
36
44
  const COST_BASES = new Set(['billed', 'amortized']);
37
45
  const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
38
- const WINDOW_KINDS = new Set(['rolling-30-days', 'calendar-month', 'provider-billing-period', 'stable-billing-window', 'daily']);
46
+ const WINDOW_KINDS = new Set([
47
+ 'rolling-30-days',
48
+ 'calendar-month',
49
+ 'provider-billing-period',
50
+ 'stable-billing-window',
51
+ 'analytics-history',
52
+ 'daily',
53
+ ]);
39
54
  const SETTLEMENT_STATES = new Set(['settled', 'unsettled', 'mixed', 'unknown']);
40
55
  const CHARGE_CLASSIFICATIONS = new Set(['usage', 'purchase', 'adjustment', 'tax', 'credit', 'refund', 'residual']);
41
56
  const UNAVAILABLE_REASONS = new Set(FINANCIAL_SCOPE_BASELINE_UNAVAILABLE_REASONS_V2);
@@ -211,9 +226,9 @@ const isCommonBaseline = (value) => value.schemaVersion === FINANCIAL_SCOPE_BASE
211
226
  (value.requestedCurrencyCode === undefined || (typeof value.requestedCurrencyCode === 'string' && CURRENCY.test(value.requestedCurrencyCode))) &&
212
227
  typeof value.assessmentId === 'string' &&
213
228
  SHA256_ID.test(value.assessmentId);
214
- const isComponent = (value, scopeId, coverageIds, accountingCurrencyCode) => {
229
+ const isComponent = (value, scopeId, coverageIds, accountingCurrencyCode, estimateLens) => {
215
230
  if (!isRecord(value) ||
216
- !hasExactFields(value, ['componentId', 'billableIdentity', 'ownerScopeId', 'chargeClassification', 'amount', 'evidenceRefIds', 'coverageIds'], ['quantity', 'effectiveRate']) ||
231
+ !hasExactFields(value, ['componentId', 'billableIdentity', 'ownerScopeId', 'chargeClassification', 'amount', 'evidenceRefIds', 'coverageIds'], ['estimateReason', 'quantity', 'effectiveRate']) ||
217
232
  typeof value.componentId !== 'string' ||
218
233
  !SHA256_ID.test(value.componentId) ||
219
234
  !isBoundedIdentity(value.billableIdentity) ||
@@ -221,6 +236,8 @@ const isComponent = (value, scopeId, coverageIds, accountingCurrencyCode) => {
221
236
  typeof value.chargeClassification !== 'string' ||
222
237
  !CHARGE_CLASSIFICATIONS.has(value.chargeClassification) ||
223
238
  !isCanonicalExactMoney({ amount: value.amount, currencyCode: 'AUD' }) ||
239
+ (value.estimateReason !== undefined && (typeof value.estimateReason !== 'string' || !ESTIMATE_REASONS.has(value.estimateReason))) ||
240
+ (estimateLens === 'actual-only' && value.estimateReason !== undefined) ||
224
241
  !isHashArray(value.evidenceRefIds) ||
225
242
  !isHashArray(value.coverageIds) ||
226
243
  !value.coverageIds.every(id => coverageIds.has(id))) {
@@ -299,7 +316,7 @@ const isIdentityPreimage = (value) => {
299
316
  return false;
300
317
  }
301
318
  const coverageIds = new Set(value.period.coverage.map(item => item.coverageId));
302
- return (value.components.every(component => isComponent(component, String(value.scopeId), coverageIds, String(value.accountingCurrency.currencyCode))) && new Set(value.components.map(component => component.componentId)).size === value.components.length);
319
+ return (value.components.every(component => isComponent(component, String(value.scopeId), coverageIds, String(value.accountingCurrency.currencyCode), value.estimateLens)) && new Set(value.components.map(component => component.componentId)).size === value.components.length);
303
320
  }
304
321
  return (value.baselineKind === 'aggregate' &&
305
322
  AGGREGATE_SCOPE_KINDS.has(String(value.scopeKind)) &&
@@ -6,6 +6,7 @@ export const TENANT_GOVERNANCE_GRAPH_SCHEMA_VERSION = '2026-05-02.tenant-graph-v
6
6
  export const GLOBAL_ADMIN_RAW_SCHEMA_VERSION = '2026-06-24.global-admin-raw-v1';
7
7
  export const PRIVILEGED_ROLE_SUMMARY_SCHEMA_VERSION = '2026-06-24.privileged-role-summary-v1';
8
8
  export const TENANT_GOVERNANCE_ACCESS_SCHEMA_VERSION = '2026-06-24.tenant-governance-access-v1';
9
+ export const TENANT_MFA_POSTURE_SCHEMA_VERSION = '2026-08-25.tenant-mfa-posture-v1';
9
10
  export const GOVERNANCE_REPORT_PORTAL_FILE = 'governance.json.gz';
10
11
  export const GOVERNANCE_GRAPH_PORTAL_FILE = 'governance-graph.json.gz';
11
12
  export const GOVERNANCE_ACCESS_PORTAL_FILE = 'governance-access.json.gz';
@@ -1 +1,84 @@
1
- export {};
1
+ const SCHEDULER_TICK_PREFIX_V1 = 'scheduler:tick:';
2
+ const SCHEDULER_TICK_MAX_ID_LENGTH_V1 = 128;
3
+ const SCHEDULER_TICK_KEYS_V1 = [
4
+ 'schemaVersion',
5
+ 'entity',
6
+ 'action',
7
+ 'companyId',
8
+ 'cloudAccountId',
9
+ 'tenantId',
10
+ 'clientId',
11
+ 'tickId',
12
+ 'scheduledAtUtc',
13
+ 'correlationId',
14
+ ];
15
+ const CANONICAL_UTC_TIMESTAMP_MILLISECONDS = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/u;
16
+ const isCanonicalUtcTimestampMilliseconds = (value) => {
17
+ if (typeof value !== 'string' || !CANONICAL_UTC_TIMESTAMP_MILLISECONDS.test(value))
18
+ return false;
19
+ const parsed = Date.parse(value);
20
+ return Number.isFinite(parsed) && new Date(parsed).toISOString() === value;
21
+ };
22
+ const hasExactSchedulerTickKeysV1 = (value) => {
23
+ const keys = Object.keys(value);
24
+ return keys.length === SCHEDULER_TICK_KEYS_V1.length && SCHEDULER_TICK_KEYS_V1.every(key => Object.prototype.hasOwnProperty.call(value, key));
25
+ };
26
+ const normalizeSchedulerTickInstantV1 = (scheduledAt) => {
27
+ if (typeof scheduledAt === 'string') {
28
+ if (!isCanonicalUtcTimestampMilliseconds(scheduledAt)) {
29
+ throw new TypeError('Scheduler tick time must be a canonical UTC timestamp with milliseconds');
30
+ }
31
+ return scheduledAt;
32
+ }
33
+ const milliseconds = scheduledAt instanceof Date ? scheduledAt.getTime() : scheduledAt;
34
+ if (!Number.isFinite(milliseconds))
35
+ throw new TypeError('Scheduler tick time must be finite');
36
+ const normalized = new Date(milliseconds).toISOString();
37
+ if (!isCanonicalUtcTimestampMilliseconds(normalized)) {
38
+ throw new TypeError('Scheduler tick time must use a four-digit UTC year');
39
+ }
40
+ return normalized;
41
+ };
42
+ /** Creates the deterministic internal queue envelope for one cron occurrence. */
43
+ export const createSchedulerTickRequestMessageV1 = (scheduledAt) => {
44
+ const scheduledAtUtc = normalizeSchedulerTickInstantV1(scheduledAt);
45
+ const tickId = `${SCHEDULER_TICK_PREFIX_V1}${scheduledAtUtc}`;
46
+ return {
47
+ schemaVersion: 1,
48
+ entity: 'scheduler',
49
+ action: 'tick',
50
+ companyId: '*',
51
+ cloudAccountId: '*',
52
+ tenantId: '*',
53
+ clientId: '*',
54
+ tickId,
55
+ scheduledAtUtc,
56
+ correlationId: tickId,
57
+ };
58
+ };
59
+ /** Exact validator for the internal scheduler tick queue boundary. */
60
+ export const isSchedulerTickRequestMessageV1 = (value) => {
61
+ try {
62
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
63
+ return false;
64
+ const candidate = value;
65
+ if (!hasExactSchedulerTickKeysV1(candidate) || !isCanonicalUtcTimestampMilliseconds(candidate['scheduledAtUtc'])) {
66
+ return false;
67
+ }
68
+ const expectedTickId = `${SCHEDULER_TICK_PREFIX_V1}${candidate['scheduledAtUtc']}`;
69
+ return (candidate['schemaVersion'] === 1 &&
70
+ candidate['entity'] === 'scheduler' &&
71
+ candidate['action'] === 'tick' &&
72
+ candidate['companyId'] === '*' &&
73
+ candidate['cloudAccountId'] === '*' &&
74
+ candidate['tenantId'] === '*' &&
75
+ candidate['clientId'] === '*' &&
76
+ typeof candidate['tickId'] === 'string' &&
77
+ candidate['tickId'].length <= SCHEDULER_TICK_MAX_ID_LENGTH_V1 &&
78
+ candidate['tickId'] === expectedTickId &&
79
+ candidate['correlationId'] === expectedTickId);
80
+ }
81
+ catch {
82
+ return false;
83
+ }
84
+ };