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

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 (523) hide show
  1. package/README.md +0 -9
  2. package/dist/accounts/accounts.d.ts +5 -84
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js +1 -2
  5. package/dist/accounts/accounts.js.map +1 -1
  6. package/dist/accounts/azureSpSetup.d.ts +31 -142
  7. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  8. package/dist/accounts/azureSpSetup.js +0 -15
  9. package/dist/accounts/azureSpSetup.js.map +1 -1
  10. package/dist/accounts/azureSpSetupDurable.d.ts +0 -8
  11. package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -1
  12. package/dist/accounts/azureSpSetupDurable.js +0 -28
  13. package/dist/accounts/azureSpSetupDurable.js.map +1 -1
  14. package/dist/accounts/index.d.ts +0 -1
  15. package/dist/accounts/index.d.ts.map +1 -1
  16. package/dist/accounts/index.js +0 -1
  17. package/dist/accounts/index.js.map +1 -1
  18. package/dist/accounts/readPermissions.d.ts +1 -1
  19. package/dist/accounts/readPermissions.d.ts.map +1 -1
  20. package/dist/accounts/readPermissions.js.map +1 -1
  21. package/dist/accounts/validation.d.ts +0 -24
  22. package/dist/accounts/validation.d.ts.map +1 -1
  23. package/dist/ai/index.d.ts +6 -302
  24. package/dist/ai/index.d.ts.map +1 -1
  25. package/dist/ai/index.js +0 -25
  26. package/dist/ai/index.js.map +1 -1
  27. package/dist/aws/commitments-planning.d.ts +0 -5
  28. package/dist/aws/commitments-planning.d.ts.map +1 -1
  29. package/dist/aws/commitments-planning.js +0 -19
  30. package/dist/aws/commitments-planning.js.map +1 -1
  31. package/dist/aws/estates.d.ts +1 -1
  32. package/dist/aws/estates.d.ts.map +1 -1
  33. package/dist/aws/estates.js +1 -7
  34. package/dist/aws/estates.js.map +1 -1
  35. package/dist/aws/index.d.ts +0 -5
  36. package/dist/aws/index.d.ts.map +1 -1
  37. package/dist/aws/index.js +0 -5
  38. package/dist/aws/index.js.map +1 -1
  39. package/dist/aws/onboarding.d.ts +0 -3
  40. package/dist/aws/onboarding.d.ts.map +1 -1
  41. package/dist/aws/requests.d.ts +2 -13
  42. package/dist/aws/requests.d.ts.map +1 -1
  43. package/dist/aws/requests.js +1 -1
  44. package/dist/aws/requests.js.map +1 -1
  45. package/dist/azure/activityLogs.d.ts +0 -8
  46. package/dist/azure/activityLogs.d.ts.map +1 -1
  47. package/dist/azure/activityLogs.js.map +1 -1
  48. package/dist/azure/benefits.d.ts +1 -1
  49. package/dist/azure/benefits.d.ts.map +1 -1
  50. package/dist/azure/billingPlots.d.ts +1 -7
  51. package/dist/azure/billingPlots.d.ts.map +1 -1
  52. package/dist/azure/billingPlots.js +4 -45
  53. package/dist/azure/billingPlots.js.map +1 -1
  54. package/dist/azure/commitmentsPlanning.d.ts +2 -8
  55. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  56. package/dist/azure/common.d.ts +5 -26
  57. package/dist/azure/common.d.ts.map +1 -1
  58. package/dist/azure/common.js +0 -30
  59. package/dist/azure/common.js.map +1 -1
  60. package/dist/azure/costComposition.d.ts +1 -11
  61. package/dist/azure/costComposition.d.ts.map +1 -1
  62. package/dist/azure/costComposition.js +1 -84
  63. package/dist/azure/costComposition.js.map +1 -1
  64. package/dist/azure/dataProtection.d.ts +4 -4
  65. package/dist/azure/dataProtection.d.ts.map +1 -1
  66. package/dist/azure/financialAnalytics.d.ts +8 -80
  67. package/dist/azure/financialAnalytics.d.ts.map +1 -1
  68. package/dist/azure/financialAnalyticsDelivery.d.ts +3 -72
  69. package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -1
  70. package/dist/azure/financialAnalyticsDelivery.js +1 -7
  71. package/dist/azure/financialAnalyticsDelivery.js.map +1 -1
  72. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +1 -9
  73. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -1
  74. package/dist/azure/financialAnalyticsDeliveryValidation.js +10 -190
  75. package/dist/azure/financialAnalyticsDeliveryValidation.js.map +1 -1
  76. package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -1
  77. package/dist/azure/financialAnalyticsValidation.js +19 -101
  78. package/dist/azure/financialAnalyticsValidation.js.map +1 -1
  79. package/dist/azure/financialAuthorityView.d.ts +0 -13
  80. package/dist/azure/financialAuthorityView.d.ts.map +1 -1
  81. package/dist/azure/financialAuthorityView.js.map +1 -1
  82. package/dist/azure/financialAuthorityViewValidation.d.ts +1 -3
  83. package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -1
  84. package/dist/azure/financialAuthorityViewValidation.js +2 -273
  85. package/dist/azure/financialAuthorityViewValidation.js.map +1 -1
  86. package/dist/azure/financialDataflow.d.ts +2 -45
  87. package/dist/azure/financialDataflow.d.ts.map +1 -1
  88. package/dist/azure/financialDataflow.js.map +1 -1
  89. package/dist/azure/financialDataflowValidation.d.ts +2 -5
  90. package/dist/azure/financialDataflowValidation.d.ts.map +1 -1
  91. package/dist/azure/financialDataflowValidation.js +30 -203
  92. package/dist/azure/financialDataflowValidation.js.map +1 -1
  93. package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -1
  94. package/dist/azure/financialEvidenceAssessmentValidation.js +0 -7
  95. package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -1
  96. package/dist/azure/financialPolicy.d.ts +3 -19
  97. package/dist/azure/financialPolicy.d.ts.map +1 -1
  98. package/dist/azure/financialPolicy.js.map +1 -1
  99. package/dist/azure/financialPolicyDelivery.d.ts +1 -75
  100. package/dist/azure/financialPolicyDelivery.d.ts.map +1 -1
  101. package/dist/azure/financialPolicyDelivery.js +1 -5
  102. package/dist/azure/financialPolicyDelivery.js.map +1 -1
  103. package/dist/azure/financialPolicyDeliveryValidation.d.ts +2 -16
  104. package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -1
  105. package/dist/azure/financialPolicyDeliveryValidation.js +5 -238
  106. package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -1
  107. package/dist/azure/financialPolicyValidation.d.ts +0 -1
  108. package/dist/azure/financialPolicyValidation.d.ts.map +1 -1
  109. package/dist/azure/financialPolicyValidation.js +16 -111
  110. package/dist/azure/financialPolicyValidation.js.map +1 -1
  111. package/dist/azure/financialProjection.d.ts +1 -11
  112. package/dist/azure/financialProjection.d.ts.map +1 -1
  113. package/dist/azure/financialProjection.js.map +1 -1
  114. package/dist/azure/financialProjectionValidation.d.ts.map +1 -1
  115. package/dist/azure/financialProjectionValidation.js +3 -43
  116. package/dist/azure/financialProjectionValidation.js.map +1 -1
  117. package/dist/azure/financialSavingsAuthority.d.ts +4 -68
  118. package/dist/azure/financialSavingsAuthority.d.ts.map +1 -1
  119. package/dist/azure/financialSavingsAuthority.js +1 -2
  120. package/dist/azure/financialSavingsAuthority.js.map +1 -1
  121. package/dist/azure/financialSavingsAuthorityValidation.d.ts +2 -6
  122. package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -1
  123. package/dist/azure/financialSavingsAuthorityValidation.js +2 -188
  124. package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -1
  125. package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -1
  126. package/dist/azure/financialSavingsCoordinateValidation.js +19 -98
  127. package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -1
  128. package/dist/azure/financialSavingsSurfaceProjection.d.ts +3 -82
  129. package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -1
  130. package/dist/azure/financialSavingsSurfaceProjection.js +1 -3
  131. package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -1
  132. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -1
  133. package/dist/azure/financialSavingsSurfaceProjectionValidation.js +13 -199
  134. package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -1
  135. package/dist/azure/financialScope.d.ts +0 -14
  136. package/dist/azure/financialScope.d.ts.map +1 -1
  137. package/dist/azure/financialScope.js +0 -14
  138. package/dist/azure/financialScope.js.map +1 -1
  139. package/dist/azure/financialScopeBaseline.d.ts +3 -11
  140. package/dist/azure/financialScopeBaseline.d.ts.map +1 -1
  141. package/dist/azure/financialScopeBaseline.js +1 -14
  142. package/dist/azure/financialScopeBaseline.js.map +1 -1
  143. package/dist/azure/financialScopeBaselineIdentity.d.ts.map +1 -1
  144. package/dist/azure/financialScopeBaselineIdentity.js +4 -24
  145. package/dist/azure/financialScopeBaselineIdentity.js.map +1 -1
  146. package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -1
  147. package/dist/azure/financialScopeBaselineValidation.js +4 -21
  148. package/dist/azure/financialScopeBaselineValidation.js.map +1 -1
  149. package/dist/azure/financialScopeEvidence.d.ts +1 -1
  150. package/dist/azure/financialScopeEvidence.d.ts.map +1 -1
  151. package/dist/azure/governance.d.ts +0 -145
  152. package/dist/azure/governance.d.ts.map +1 -1
  153. package/dist/azure/governance.js +1 -2
  154. package/dist/azure/governance.js.map +1 -1
  155. package/dist/azure/metrics.d.ts +2 -2
  156. package/dist/azure/metrics.d.ts.map +1 -1
  157. package/dist/azure/payloads.d.ts +1 -55
  158. package/dist/azure/payloads.d.ts.map +1 -1
  159. package/dist/azure/prices.d.ts +12 -41
  160. package/dist/azure/prices.d.ts.map +1 -1
  161. package/dist/azure/recommendationState.d.ts +1 -1
  162. package/dist/azure/recommendationState.d.ts.map +1 -1
  163. package/dist/azure/recommendations.d.ts +5 -141
  164. package/dist/azure/recommendations.d.ts.map +1 -1
  165. package/dist/azure/recommendations.js +1 -3
  166. package/dist/azure/recommendations.js.map +1 -1
  167. package/dist/azure/relationships.d.ts +1 -1
  168. package/dist/azure/relationships.d.ts.map +1 -1
  169. package/dist/azure/reports.d.ts +10 -32
  170. package/dist/azure/reports.d.ts.map +1 -1
  171. package/dist/azure/reports.js.map +1 -1
  172. package/dist/azure/resources.d.ts +12 -24
  173. package/dist/azure/resources.d.ts.map +1 -1
  174. package/dist/azure/serviceRetirement.d.ts +2 -33
  175. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  176. package/dist/azure/storage-inventory.d.ts +0 -44
  177. package/dist/azure/storage-inventory.d.ts.map +1 -1
  178. package/dist/azure/subscriptions.d.ts +11 -57
  179. package/dist/azure/subscriptions.d.ts.map +1 -1
  180. package/dist/azure/subscriptions.js +0 -35
  181. package/dist/azure/subscriptions.js.map +1 -1
  182. package/dist/azure/views.d.ts +22 -86
  183. package/dist/azure/views.d.ts.map +1 -1
  184. package/dist/azure/views.js +1 -8
  185. package/dist/azure/views.js.map +1 -1
  186. package/dist/common/provider.d.ts +0 -53
  187. package/dist/common/provider.d.ts.map +1 -1
  188. package/dist/common/provider.js.map +1 -1
  189. package/dist/company/company.d.ts +0 -1
  190. package/dist/company/company.d.ts.map +1 -1
  191. package/dist/esm/accounts/accounts.js +0 -1
  192. package/dist/esm/accounts/azureSpSetup.js +1 -14
  193. package/dist/esm/accounts/azureSpSetupDurable.js +1 -27
  194. package/dist/esm/accounts/index.js +0 -1
  195. package/dist/esm/ai/index.js +1 -10
  196. package/dist/esm/aws/commitments-planning.js +0 -5
  197. package/dist/esm/aws/estates.js +1 -7
  198. package/dist/esm/aws/index.js +0 -5
  199. package/dist/esm/aws/requests.js +1 -1
  200. package/dist/esm/azure/billingPlots.js +4 -45
  201. package/dist/esm/azure/common.js +1 -28
  202. package/dist/esm/azure/costComposition.js +0 -80
  203. package/dist/esm/azure/financialAnalyticsDelivery.js +0 -5
  204. package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +11 -184
  205. package/dist/esm/azure/financialAnalyticsValidation.js +19 -101
  206. package/dist/esm/azure/financialAuthorityViewValidation.js +1 -271
  207. package/dist/esm/azure/financialDataflowValidation.js +29 -199
  208. package/dist/esm/azure/financialEvidenceAssessmentValidation.js +0 -7
  209. package/dist/esm/azure/financialPolicyDelivery.js +0 -4
  210. package/dist/esm/azure/financialPolicyDeliveryValidation.js +7 -227
  211. package/dist/esm/azure/financialPolicyValidation.js +16 -110
  212. package/dist/esm/azure/financialProjectionValidation.js +3 -43
  213. package/dist/esm/azure/financialSavingsAuthority.js +0 -1
  214. package/dist/esm/azure/financialSavingsAuthorityValidation.js +2 -186
  215. package/dist/esm/azure/financialSavingsCoordinateValidation.js +19 -98
  216. package/dist/esm/azure/financialSavingsSurfaceProjection.js +0 -2
  217. package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +13 -199
  218. package/dist/esm/azure/financialScope.js +0 -14
  219. package/dist/esm/azure/financialScopeBaseline.js +0 -12
  220. package/dist/esm/azure/financialScopeBaselineIdentity.js +4 -24
  221. package/dist/esm/azure/financialScopeBaselineValidation.js +4 -21
  222. package/dist/esm/azure/governance.js +0 -1
  223. package/dist/esm/azure/recommendations.js +0 -2
  224. package/dist/esm/azure/subscriptions.js +1 -33
  225. package/dist/esm/azure/views.js +1 -8
  226. package/dist/esm/entries/commitments-planning.js +2 -2
  227. package/dist/esm/identity/index.js +0 -1
  228. package/dist/esm/index.js +0 -13
  229. package/dist/esm/index.vite.js +0 -11
  230. package/dist/esm/scheduler/index.js +0 -3
  231. package/dist/events/alertDefinitionRun.d.ts +0 -4
  232. package/dist/events/alertDefinitionRun.d.ts.map +1 -1
  233. package/dist/events/baseAlert.d.ts +0 -1
  234. package/dist/events/baseAlert.d.ts.map +1 -1
  235. package/dist/events/cost.d.ts +0 -4
  236. package/dist/events/cost.d.ts.map +1 -1
  237. package/dist/events/quickAlerts.d.ts +4 -13
  238. package/dist/events/quickAlerts.d.ts.map +1 -1
  239. package/dist/events/quickAlerts.js.map +1 -1
  240. package/dist/features-and-permissions/access.d.ts +0 -79
  241. package/dist/features-and-permissions/access.d.ts.map +1 -1
  242. package/dist/identity/index.d.ts +0 -1
  243. package/dist/identity/index.d.ts.map +1 -1
  244. package/dist/identity/index.js +0 -1
  245. package/dist/identity/index.js.map +1 -1
  246. package/dist/index.d.ts +0 -13
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +0 -19
  249. package/dist/index.js.map +1 -1
  250. package/dist/index.vite.d.ts +0 -11
  251. package/dist/index.vite.d.ts.map +1 -1
  252. package/dist/index.vite.js +0 -15
  253. package/dist/index.vite.js.map +1 -1
  254. package/dist/portfolio/portfolioOperations.d.ts +1 -1
  255. package/dist/portfolio/portfolioOperations.d.ts.map +1 -1
  256. package/dist/scheduler/index.d.ts +0 -3
  257. package/dist/scheduler/index.d.ts.map +1 -1
  258. package/dist/scheduler/index.js +0 -3
  259. package/dist/scheduler/index.js.map +1 -1
  260. package/dist/scheduler/scheduler.d.ts +10 -14
  261. package/dist/scheduler/scheduler.d.ts.map +1 -1
  262. package/package.json +3 -20
  263. package/dist/accounts/azureManualOnboarding.d.ts +0 -114
  264. package/dist/accounts/azureManualOnboarding.d.ts.map +0 -1
  265. package/dist/accounts/azureManualOnboarding.js +0 -12
  266. package/dist/accounts/azureManualOnboarding.js.map +0 -1
  267. package/dist/ai/conversationHistory.d.ts +0 -52
  268. package/dist/ai/conversationHistory.d.ts.map +0 -1
  269. package/dist/ai/conversationHistory.js +0 -10
  270. package/dist/ai/conversationHistory.js.map +0 -1
  271. package/dist/ai/grounding.d.ts +0 -41
  272. package/dist/ai/grounding.d.ts.map +0 -1
  273. package/dist/ai/grounding.js +0 -86
  274. package/dist/ai/grounding.js.map +0 -1
  275. package/dist/ai/workspaceArtifacts.d.ts +0 -587
  276. package/dist/ai/workspaceArtifacts.d.ts.map +0 -1
  277. package/dist/ai/workspaceArtifacts.js +0 -162
  278. package/dist/ai/workspaceArtifacts.js.map +0 -1
  279. package/dist/aws/organizationCommitments.d.ts +0 -260
  280. package/dist/aws/organizationCommitments.d.ts.map +0 -1
  281. package/dist/aws/organizationCommitments.js +0 -53
  282. package/dist/aws/organizationCommitments.js.map +0 -1
  283. package/dist/aws/organizationCommitmentsApiValidation.d.ts +0 -21
  284. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +0 -1
  285. package/dist/aws/organizationCommitmentsApiValidation.js +0 -226
  286. package/dist/aws/organizationCommitmentsApiValidation.js.map +0 -1
  287. package/dist/aws/organizationCommitmentsValidation.d.ts +0 -12
  288. package/dist/aws/organizationCommitmentsValidation.d.ts.map +0 -1
  289. package/dist/aws/organizationCommitmentsValidation.js +0 -228
  290. package/dist/aws/organizationCommitmentsValidation.js.map +0 -1
  291. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +0 -9
  292. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +0 -1
  293. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +0 -407
  294. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +0 -1
  295. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +0 -17
  296. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +0 -1
  297. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +0 -6
  298. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +0 -1
  299. package/dist/azure/activityLogAnalysis.d.ts +0 -320
  300. package/dist/azure/activityLogAnalysis.d.ts.map +0 -1
  301. package/dist/azure/activityLogAnalysis.js +0 -70
  302. package/dist/azure/activityLogAnalysis.js.map +0 -1
  303. package/dist/azure/activityLogAnalysisPublicValidation.d.ts +0 -8
  304. package/dist/azure/activityLogAnalysisPublicValidation.d.ts.map +0 -1
  305. package/dist/azure/activityLogAnalysisPublicValidation.js +0 -368
  306. package/dist/azure/activityLogAnalysisPublicValidation.js.map +0 -1
  307. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts +0 -33
  308. package/dist/azure/activityLogAnalysisPublicValidationHelpers.d.ts.map +0 -1
  309. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js +0 -197
  310. package/dist/azure/activityLogAnalysisPublicValidationHelpers.js.map +0 -1
  311. package/dist/azure/activityLogAnalysisValidation.d.ts +0 -5
  312. package/dist/azure/activityLogAnalysisValidation.d.ts.map +0 -1
  313. package/dist/azure/activityLogAnalysisValidation.js +0 -376
  314. package/dist/azure/activityLogAnalysisValidation.js.map +0 -1
  315. package/dist/azure/financialAnalyticsDisplayKernel.d.ts +0 -12
  316. package/dist/azure/financialAnalyticsDisplayKernel.d.ts.map +0 -1
  317. package/dist/azure/financialAnalyticsDisplayKernel.js +0 -144
  318. package/dist/azure/financialAnalyticsDisplayKernel.js.map +0 -1
  319. package/dist/azure/financialAuthorityProjectionKernel.d.ts +0 -8
  320. package/dist/azure/financialAuthorityProjectionKernel.d.ts.map +0 -1
  321. package/dist/azure/financialAuthorityProjectionKernel.js +0 -269
  322. package/dist/azure/financialAuthorityProjectionKernel.js.map +0 -1
  323. package/dist/azure/financialChargeComposition.d.ts +0 -81
  324. package/dist/azure/financialChargeComposition.d.ts.map +0 -1
  325. package/dist/azure/financialChargeComposition.js +0 -41
  326. package/dist/azure/financialChargeComposition.js.map +0 -1
  327. package/dist/azure/financialChargeCompositionKernel.d.ts +0 -3
  328. package/dist/azure/financialChargeCompositionKernel.d.ts.map +0 -1
  329. package/dist/azure/financialChargeCompositionKernel.js +0 -53
  330. package/dist/azure/financialChargeCompositionKernel.js.map +0 -1
  331. package/dist/azure/financialChargeCompositionValidation.d.ts +0 -8
  332. package/dist/azure/financialChargeCompositionValidation.d.ts.map +0 -1
  333. package/dist/azure/financialChargeCompositionValidation.js +0 -164
  334. package/dist/azure/financialChargeCompositionValidation.js.map +0 -1
  335. package/dist/azure/financialChargePolicy.d.ts +0 -215
  336. package/dist/azure/financialChargePolicy.d.ts.map +0 -1
  337. package/dist/azure/financialChargePolicy.js +0 -488
  338. package/dist/azure/financialChargePolicy.js.map +0 -1
  339. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts +0 -76
  340. package/dist/azure/financialCurrentSpendSurfaceProjection.d.ts.map +0 -1
  341. package/dist/azure/financialCurrentSpendSurfaceProjection.js +0 -6
  342. package/dist/azure/financialCurrentSpendSurfaceProjection.js.map +0 -1
  343. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts +0 -10
  344. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.d.ts.map +0 -1
  345. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js +0 -196
  346. package/dist/azure/financialCurrentSpendSurfaceProjectionValidation.js.map +0 -1
  347. package/dist/azure/financialDataflowKernel.d.ts +0 -31
  348. package/dist/azure/financialDataflowKernel.d.ts.map +0 -1
  349. package/dist/azure/financialDataflowKernel.js +0 -170
  350. package/dist/azure/financialDataflowKernel.js.map +0 -1
  351. package/dist/azure/financialEvidenceCoverage.d.ts +0 -36
  352. package/dist/azure/financialEvidenceCoverage.d.ts.map +0 -1
  353. package/dist/azure/financialEvidenceCoverage.js +0 -111
  354. package/dist/azure/financialEvidenceCoverage.js.map +0 -1
  355. package/dist/azure/financialPolicyKernel.d.ts +0 -38
  356. package/dist/azure/financialPolicyKernel.d.ts.map +0 -1
  357. package/dist/azure/financialPolicyKernel.js +0 -232
  358. package/dist/azure/financialPolicyKernel.js.map +0 -1
  359. package/dist/azure/financialResourceSurfaceProjection.d.ts +0 -66
  360. package/dist/azure/financialResourceSurfaceProjection.d.ts.map +0 -1
  361. package/dist/azure/financialResourceSurfaceProjection.js +0 -6
  362. package/dist/azure/financialResourceSurfaceProjection.js.map +0 -1
  363. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts +0 -16
  364. package/dist/azure/financialResourceSurfaceProjectionValidation.d.ts.map +0 -1
  365. package/dist/azure/financialResourceSurfaceProjectionValidation.js +0 -252
  366. package/dist/azure/financialResourceSurfaceProjectionValidation.js.map +0 -1
  367. package/dist/azure/financialSavingsChargePolicyKernel.d.ts +0 -12
  368. package/dist/azure/financialSavingsChargePolicyKernel.d.ts.map +0 -1
  369. package/dist/azure/financialSavingsChargePolicyKernel.js +0 -34
  370. package/dist/azure/financialSavingsChargePolicyKernel.js.map +0 -1
  371. package/dist/azure/financialSavingsPercentageKernel.d.ts +0 -20
  372. package/dist/azure/financialSavingsPercentageKernel.d.ts.map +0 -1
  373. package/dist/azure/financialSavingsPercentageKernel.js +0 -49
  374. package/dist/azure/financialSavingsPercentageKernel.js.map +0 -1
  375. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts +0 -26
  376. package/dist/azure/financialSavingsSurfaceProjectionKernel.d.ts.map +0 -1
  377. package/dist/azure/financialSavingsSurfaceProjectionKernel.js +0 -435
  378. package/dist/azure/financialSavingsSurfaceProjectionKernel.js.map +0 -1
  379. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts +0 -5
  380. package/dist/azure/recommendationLifecycleOverlayValidation.d.ts.map +0 -1
  381. package/dist/azure/recommendationLifecycleOverlayValidation.js +0 -82
  382. package/dist/azure/recommendationLifecycleOverlayValidation.js.map +0 -1
  383. package/dist/azure/reportDailySpend.d.ts +0 -48
  384. package/dist/azure/reportDailySpend.d.ts.map +0 -1
  385. package/dist/azure/reportDailySpend.js +0 -6
  386. package/dist/azure/reportDailySpend.js.map +0 -1
  387. package/dist/azure/reportDailySpendValidation.d.ts +0 -3
  388. package/dist/azure/reportDailySpendValidation.d.ts.map +0 -1
  389. package/dist/azure/reportDailySpendValidation.js +0 -72
  390. package/dist/azure/reportDailySpendValidation.js.map +0 -1
  391. package/dist/azure/reportEvidence.d.ts +0 -615
  392. package/dist/azure/reportEvidence.d.ts.map +0 -1
  393. package/dist/azure/reportEvidence.js +0 -25
  394. package/dist/azure/reportEvidence.js.map +0 -1
  395. package/dist/azure/reportEvidenceCatalogueValidation.d.ts +0 -5
  396. package/dist/azure/reportEvidenceCatalogueValidation.d.ts.map +0 -1
  397. package/dist/azure/reportEvidenceCatalogueValidation.js +0 -109
  398. package/dist/azure/reportEvidenceCatalogueValidation.js.map +0 -1
  399. package/dist/azure/reportEvidenceValidation.d.ts +0 -7
  400. package/dist/azure/reportEvidenceValidation.d.ts.map +0 -1
  401. package/dist/azure/reportEvidenceValidation.js +0 -421
  402. package/dist/azure/reportEvidenceValidation.js.map +0 -1
  403. package/dist/azure/reportEvidenceValidationHelpers.d.ts +0 -27
  404. package/dist/azure/reportEvidenceValidationHelpers.d.ts.map +0 -1
  405. package/dist/azure/reportEvidenceValidationHelpers.js +0 -134
  406. package/dist/azure/reportEvidenceValidationHelpers.js.map +0 -1
  407. package/dist/azure/reportSavingsContributionValidation.d.ts +0 -5
  408. package/dist/azure/reportSavingsContributionValidation.d.ts.map +0 -1
  409. package/dist/azure/reportSavingsContributionValidation.js +0 -37
  410. package/dist/azure/reportSavingsContributionValidation.js.map +0 -1
  411. package/dist/azure/reportSpend.d.ts +0 -87
  412. package/dist/azure/reportSpend.d.ts.map +0 -1
  413. package/dist/azure/reportSpend.js +0 -5
  414. package/dist/azure/reportSpend.js.map +0 -1
  415. package/dist/azure/reportSpendValidation.d.ts +0 -7
  416. package/dist/azure/reportSpendValidation.d.ts.map +0 -1
  417. package/dist/azure/reportSpendValidation.js +0 -197
  418. package/dist/azure/reportSpendValidation.js.map +0 -1
  419. package/dist/azure/reportSpendValidationHelpers.d.ts +0 -7
  420. package/dist/azure/reportSpendValidationHelpers.d.ts.map +0 -1
  421. package/dist/azure/reportSpendValidationHelpers.js +0 -31
  422. package/dist/azure/reportSpendValidationHelpers.js.map +0 -1
  423. package/dist/azure/vmPatchManagement.d.ts +0 -109
  424. package/dist/azure/vmPatchManagement.d.ts.map +0 -1
  425. package/dist/azure/vmPatchManagement.js +0 -7
  426. package/dist/azure/vmPatchManagement.js.map +0 -1
  427. package/dist/environment/canonicalization.d.ts +0 -12
  428. package/dist/environment/canonicalization.d.ts.map +0 -1
  429. package/dist/environment/canonicalization.js +0 -40
  430. package/dist/environment/canonicalization.js.map +0 -1
  431. package/dist/environment/contracts.d.ts +0 -472
  432. package/dist/environment/contracts.d.ts.map +0 -1
  433. package/dist/environment/contracts.js +0 -73
  434. package/dist/environment/contracts.js.map +0 -1
  435. package/dist/environment/index.d.ts +0 -6
  436. package/dist/environment/index.d.ts.map +0 -1
  437. package/dist/environment/index.js +0 -22
  438. package/dist/environment/index.js.map +0 -1
  439. package/dist/environment/internal.d.ts +0 -21
  440. package/dist/environment/internal.d.ts.map +0 -1
  441. package/dist/environment/internal.js +0 -113
  442. package/dist/environment/internal.js.map +0 -1
  443. package/dist/environment/references.d.ts +0 -24
  444. package/dist/environment/references.d.ts.map +0 -1
  445. package/dist/environment/references.js +0 -243
  446. package/dist/environment/references.js.map +0 -1
  447. package/dist/environment/tenant.d.ts +0 -128
  448. package/dist/environment/tenant.d.ts.map +0 -1
  449. package/dist/environment/tenant.js +0 -203
  450. package/dist/environment/tenant.js.map +0 -1
  451. package/dist/environment/validation.d.ts +0 -34
  452. package/dist/environment/validation.d.ts.map +0 -1
  453. package/dist/environment/validation.js +0 -655
  454. package/dist/environment/validation.js.map +0 -1
  455. package/dist/esm/accounts/azureManualOnboarding.js +0 -8
  456. package/dist/esm/ai/conversationHistory.js +0 -6
  457. package/dist/esm/ai/grounding.js +0 -80
  458. package/dist/esm/ai/workspaceArtifacts.js +0 -158
  459. package/dist/esm/aws/organizationCommitments.js +0 -48
  460. package/dist/esm/aws/organizationCommitmentsApiValidation.js +0 -220
  461. package/dist/esm/aws/organizationCommitmentsValidation.js +0 -224
  462. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +0 -402
  463. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +0 -2
  464. package/dist/esm/azure/activityLogAnalysis.js +0 -64
  465. package/dist/esm/azure/activityLogAnalysisPublicValidation.js +0 -360
  466. package/dist/esm/azure/activityLogAnalysisPublicValidationHelpers.js +0 -172
  467. package/dist/esm/azure/activityLogAnalysisValidation.js +0 -365
  468. package/dist/esm/azure/financialAnalyticsDisplayKernel.js +0 -139
  469. package/dist/esm/azure/financialAuthorityProjectionKernel.js +0 -263
  470. package/dist/esm/azure/financialChargeComposition.js +0 -36
  471. package/dist/esm/azure/financialChargeCompositionKernel.js +0 -48
  472. package/dist/esm/azure/financialChargeCompositionValidation.js +0 -155
  473. package/dist/esm/azure/financialChargePolicy.js +0 -473
  474. package/dist/esm/azure/financialCurrentSpendSurfaceProjection.js +0 -2
  475. package/dist/esm/azure/financialCurrentSpendSurfaceProjectionValidation.js +0 -184
  476. package/dist/esm/azure/financialDataflowKernel.js +0 -164
  477. package/dist/esm/azure/financialEvidenceCoverage.js +0 -106
  478. package/dist/esm/azure/financialPolicyKernel.js +0 -225
  479. package/dist/esm/azure/financialResourceSurfaceProjection.js +0 -2
  480. package/dist/esm/azure/financialResourceSurfaceProjectionValidation.js +0 -243
  481. package/dist/esm/azure/financialSavingsChargePolicyKernel.js +0 -29
  482. package/dist/esm/azure/financialSavingsPercentageKernel.js +0 -44
  483. package/dist/esm/azure/financialSavingsSurfaceProjectionKernel.js +0 -427
  484. package/dist/esm/azure/recommendationLifecycleOverlayValidation.js +0 -75
  485. package/dist/esm/azure/reportDailySpend.js +0 -2
  486. package/dist/esm/azure/reportDailySpendValidation.js +0 -67
  487. package/dist/esm/azure/reportEvidence.js +0 -21
  488. package/dist/esm/azure/reportEvidenceCatalogueValidation.js +0 -103
  489. package/dist/esm/azure/reportEvidenceValidation.js +0 -413
  490. package/dist/esm/azure/reportEvidenceValidationHelpers.js +0 -106
  491. package/dist/esm/azure/reportSavingsContributionValidation.js +0 -30
  492. package/dist/esm/azure/reportSpend.js +0 -1
  493. package/dist/esm/azure/reportSpendValidation.js +0 -189
  494. package/dist/esm/azure/reportSpendValidationHelpers.js +0 -22
  495. package/dist/esm/azure/vmPatchManagement.js +0 -3
  496. package/dist/esm/entries/environment.js +0 -3
  497. package/dist/esm/environment/canonicalization.js +0 -34
  498. package/dist/esm/environment/contracts.js +0 -69
  499. package/dist/esm/environment/index.js +0 -5
  500. package/dist/esm/environment/internal.js +0 -97
  501. package/dist/esm/environment/references.js +0 -230
  502. package/dist/esm/environment/tenant.js +0 -190
  503. package/dist/esm/environment/validation.js +0 -635
  504. package/dist/esm/identity/microsoftSignInAdminConsent.js +0 -1
  505. package/dist/esm/scheduler/bastionSchedule.js +0 -1
  506. package/dist/esm/scheduler/bastionScheduleProfile.js +0 -206
  507. package/dist/esm/scheduler/bastionScheduleValidation.js +0 -401
  508. package/dist/identity/microsoftSignInAdminConsent.d.ts +0 -59
  509. package/dist/identity/microsoftSignInAdminConsent.d.ts.map +0 -1
  510. package/dist/identity/microsoftSignInAdminConsent.js +0 -3
  511. package/dist/identity/microsoftSignInAdminConsent.js.map +0 -1
  512. package/dist/scheduler/bastionSchedule.d.ts +0 -113
  513. package/dist/scheduler/bastionSchedule.d.ts.map +0 -1
  514. package/dist/scheduler/bastionSchedule.js +0 -3
  515. package/dist/scheduler/bastionSchedule.js.map +0 -1
  516. package/dist/scheduler/bastionScheduleProfile.d.ts +0 -24
  517. package/dist/scheduler/bastionScheduleProfile.d.ts.map +0 -1
  518. package/dist/scheduler/bastionScheduleProfile.js +0 -210
  519. package/dist/scheduler/bastionScheduleProfile.js.map +0 -1
  520. package/dist/scheduler/bastionScheduleValidation.d.ts +0 -10
  521. package/dist/scheduler/bastionScheduleValidation.d.ts.map +0 -1
  522. package/dist/scheduler/bastionScheduleValidation.js +0 -412
  523. package/dist/scheduler/bastionScheduleValidation.js.map +0 -1
@@ -1,427 +0,0 @@
1
- import { AZURE_BILLED_ALL_CHARGES_POLICY_V1, resolveFinancialChargeInclusionPolicyV1, } from './financialChargeComposition.js';
2
- import { selectFinancialChargesV1 } from './financialChargeCompositionValidation.js';
3
- import { formatExactDecimalValue, sumCanonicalDecimals } from '../common/exactDecimal.js';
4
- import { classifyFinancialSavingsAllocationForPolicyV1 } from './financialSavingsChargePolicyKernel.js';
5
- import { FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1, FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1, } from './financialSavingsSurfaceProjection.js';
6
- import { composeFinancialSavingsAllocationPercentageV1 } from './financialSavingsPercentageKernel.js';
7
- import { createFinancialSavingsSurfaceProjectionIdV1, isFinancialSavingsSurfaceProjectionV1, } from './financialSavingsSurfaceProjectionValidation.js';
8
- export class FinancialSavingsSurfaceProjectionError extends Error {
9
- constructor(message) {
10
- super(message);
11
- this.name = 'FinancialSavingsSurfaceProjectionError';
12
- }
13
- }
14
- const sameGeneration = (left, right) => Boolean(left && right && left.runId === right.runId && left.generatedAt === right.generatedAt);
15
- const exactMinorUnitSum = (values) => {
16
- const sum = values.reduce((total, value) => total + BigInt(value), 0n);
17
- if (sum > BigInt(Number.MAX_SAFE_INTEGER) || sum < BigInt(Number.MIN_SAFE_INTEGER)) {
18
- throw new FinancialSavingsSurfaceProjectionError('Financial savings surface contribution exceeds the safe integer boundary');
19
- }
20
- return Number(sum);
21
- };
22
- const samePolicy = (left, right) => left.policyId === right.policyId && left.policyDigest === right.policyDigest;
23
- const selectAggregateForPolicy = (financialCoordinate, policyRef, chargeCompositionByBaselineId) => {
24
- if (financialCoordinate.aggregateBaseline.status !== 'available')
25
- return undefined;
26
- if (samePolicy(policyRef, AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef)) {
27
- return financialCoordinate.aggregateBaseline.total.amount;
28
- }
29
- if (financialCoordinate.aggregateBaseline.baselineKind !== 'aggregate')
30
- return undefined;
31
- const memberIds = new Set(financialCoordinate.aggregateBaseline.memberBaselineIds);
32
- const compositions = [...memberIds]
33
- .map(memberId => chargeCompositionByBaselineId.get(memberId))
34
- .filter((composition) => composition !== undefined);
35
- if (compositions.length !== memberIds.size)
36
- return undefined;
37
- const selections = compositions.map(composition => selectFinancialChargesV1(composition, policyRef));
38
- if (selections.some(selection => selection.status !== 'available'))
39
- return undefined;
40
- return formatExactDecimalValue(sumCanonicalDecimals(selections.map(selection => selection.includedAmount)));
41
- };
42
- const projectLifecycleBindings = (allocations) => {
43
- const byLifecycleIdentity = new Map();
44
- for (const allocation of allocations) {
45
- const key = `${allocation.ownerScopeId}\u0000${allocation.recommendationId}`;
46
- const existing = byLifecycleIdentity.get(key);
47
- if (existing) {
48
- existing.allocationIds.push(allocation.allocationId);
49
- continue;
50
- }
51
- byLifecycleIdentity.set(key, {
52
- resourceId: allocation.ownerScopeId,
53
- recommendationId: allocation.recommendationId,
54
- allocationIds: [allocation.allocationId],
55
- });
56
- }
57
- return [...byLifecycleIdentity.values()]
58
- .map(binding => ({ ...binding, allocationIds: [...binding.allocationIds].sort() }))
59
- .sort((left, right) => left.resourceId.localeCompare(right.resourceId) || left.recommendationId.localeCompare(right.recommendationId));
60
- };
61
- const projectResourceContributions = (recommendationContributions, lifecycleBindings, minorUnitScale) => {
62
- if (!lifecycleBindings?.length)
63
- return undefined;
64
- const allocationById = new Map(recommendationContributions.flatMap(contribution => contribution.allocations ?? []).map(allocation => [allocation.allocationId, allocation]));
65
- const allocationIdsByResource = new Map();
66
- for (const binding of lifecycleBindings) {
67
- const allocationIds = allocationIdsByResource.get(binding.resourceId) ?? new Set();
68
- binding.allocationIds.forEach(allocationId => allocationIds.add(allocationId));
69
- allocationIdsByResource.set(binding.resourceId, allocationIds);
70
- }
71
- const contributions = [];
72
- for (const [resourceId, allocationIds] of allocationIdsByResource) {
73
- const allocations = [...allocationIds].map(allocationId => allocationById.get(allocationId));
74
- if (allocations.some(allocation => allocation === undefined))
75
- return undefined;
76
- const exactAllocations = allocations;
77
- const composed = composeFinancialSavingsAllocationPercentageV1(exactAllocations, minorUnitScale);
78
- if (!composed)
79
- return undefined;
80
- contributions.push({
81
- resourceId,
82
- allocationIds: [...allocationIds].sort(),
83
- savingsMinorUnits: exactMinorUnitSum(exactAllocations.map(allocation => allocation.savingsMinorUnits)),
84
- denominator: {
85
- denominatorIds: composed.denominatorIds,
86
- amount: composed.denominatorAmount,
87
- currencyCode: composed.denominatorCurrencyCode,
88
- },
89
- percentage: composed.percentage,
90
- });
91
- }
92
- return contributions.sort((left, right) => left.resourceId.localeCompare(right.resourceId));
93
- };
94
- export const projectFinancialSavingsSurfaceQueryV1 = (source, recommendationIds, filterFingerprint) => {
95
- if (!isFinancialSavingsSurfaceProjectionV1(source) || source.surface !== 'recommendations') {
96
- throw new FinancialSavingsSurfaceProjectionError('Financial savings source projection is invalid for recommendation filtering');
97
- }
98
- const uniqueRecommendationIds = [...new Set(recommendationIds)];
99
- if (uniqueRecommendationIds.length !== recommendationIds.length ||
100
- uniqueRecommendationIds.some(id => !id.trim()) ||
101
- !filterFingerprint.trim()) {
102
- throw new FinancialSavingsSurfaceProjectionError('Financial savings query identity is invalid');
103
- }
104
- const scope = {
105
- kind: 'recommendation-query',
106
- filterFingerprint,
107
- recommendationIds: uniqueRecommendationIds,
108
- };
109
- const includedRecommendationIds = new Set(uniqueRecommendationIds);
110
- const lifecycleBindings = source.lifecycleBindings
111
- ?.filter(binding => includedRecommendationIds.has(binding.recommendationId))
112
- .map(binding => ({ ...binding, allocationIds: [...binding.allocationIds] }));
113
- const coordinates = source.coordinates.map((coordinate) => {
114
- if (coordinate.status === 'unavailable')
115
- return coordinate;
116
- const recommendationContributions = coordinate.recommendationContributions.filter(contribution => includedRecommendationIds.has(contribution.recommendationId));
117
- const resourceContributions = projectResourceContributions(recommendationContributions, lifecycleBindings, coordinate.minorUnitScale);
118
- const filteredAmounts = {
119
- recommendationContributions,
120
- ...(resourceContributions?.length ? { resourceContributions } : {}),
121
- aggregate: {
122
- allocationIds: recommendationContributions.flatMap(contribution => contribution.allocationIds),
123
- savingsMinorUnits: exactMinorUnitSum(recommendationContributions.map(contribution => contribution.savingsMinorUnits)),
124
- },
125
- };
126
- if (coordinate.status === 'available')
127
- return { ...coordinate, ...filteredAmounts };
128
- const { unavailableRecommendationIds: _sourceUnavailableRecommendationIds, ...common } = coordinate;
129
- void _sourceUnavailableRecommendationIds;
130
- const unavailableRecommendationIds = coordinate.unavailableRecommendationIds.filter(recommendationId => includedRecommendationIds.has(recommendationId));
131
- return unavailableRecommendationIds.length > 0
132
- ? {
133
- ...common,
134
- ...filteredAmounts,
135
- status: 'partial',
136
- unavailableRecommendationIds: unavailableRecommendationIds,
137
- }
138
- : { ...common, ...filteredAmounts, status: 'available' };
139
- });
140
- const identity = {
141
- schemaVersion: source.schemaVersion,
142
- contractVersion: source.contractVersion,
143
- surface: source.surface,
144
- scope,
145
- provider: source.provider,
146
- providerAccountRefs: source.providerAccountRefs,
147
- artifactGeneration: source.artifactGeneration,
148
- financialAuthorityId: source.financialAuthorityId,
149
- savingsAuthorityId: source.savingsAuthorityId,
150
- ...(lifecycleBindings?.length ? { lifecycleBindings: lifecycleBindings } : {}),
151
- coordinates,
152
- };
153
- const projection = {
154
- ...identity,
155
- projectionId: createFinancialSavingsSurfaceProjectionIdV1(identity),
156
- };
157
- if (!isFinancialSavingsSurfaceProjectionV1(projection)) {
158
- throw new FinancialSavingsSurfaceProjectionError('Financial savings query projection failed validation');
159
- }
160
- return projection;
161
- };
162
- const projectRecommendationContributions = (allocations) => {
163
- const byRecommendation = new Map();
164
- for (const allocation of allocations) {
165
- const existing = byRecommendation.get(allocation.recommendationId) ?? {
166
- allocationIds: [],
167
- savingsMinorUnits: [],
168
- allocations: [],
169
- };
170
- existing.allocationIds.push(allocation.allocationId);
171
- existing.savingsMinorUnits.push(allocation.savingsMinorUnits);
172
- existing.allocations.push({
173
- allocationId: allocation.allocationId,
174
- savingsMinorUnits: allocation.savingsMinorUnits,
175
- ...(allocation.denominator ? { denominator: allocation.denominator } : {}),
176
- });
177
- byRecommendation.set(allocation.recommendationId, existing);
178
- }
179
- return Array.from(byRecommendation.entries())
180
- .sort(([left], [right]) => left.localeCompare(right))
181
- .map(([recommendationId, contribution]) => ({
182
- recommendationId,
183
- allocationIds: [...contribution.allocationIds].sort(),
184
- savingsMinorUnits: exactMinorUnitSum(contribution.savingsMinorUnits),
185
- allocations: contribution.allocations
186
- .sort((left, right) => left.allocationId.localeCompare(right.allocationId)),
187
- }));
188
- };
189
- export const projectFinancialSavingsSurfaceResourceQueryV1 = (source, allocationIds, recommendationIds, filterFingerprint) => {
190
- if (!isFinancialSavingsSurfaceProjectionV1(source) || source.surface !== 'resources') {
191
- throw new FinancialSavingsSurfaceProjectionError('Financial savings source projection is invalid for resource filtering');
192
- }
193
- const uniqueAllocationIds = [...new Set(allocationIds)];
194
- const uniqueRecommendationIds = [...new Set(recommendationIds)];
195
- if (uniqueAllocationIds.length !== allocationIds.length ||
196
- uniqueRecommendationIds.length !== recommendationIds.length ||
197
- uniqueAllocationIds.some(id => !id.trim()) ||
198
- uniqueRecommendationIds.some(id => !id.trim()) ||
199
- !filterFingerprint.trim()) {
200
- throw new FinancialSavingsSurfaceProjectionError('Financial savings resource query identity is invalid');
201
- }
202
- const includedAllocationIds = new Set(uniqueAllocationIds);
203
- const includedRecommendationIds = new Set(uniqueRecommendationIds);
204
- const lifecycleBindings = source.lifecycleBindings
205
- ?.map(binding => {
206
- const filteredAllocationIds = binding.allocationIds.filter(allocationId => includedAllocationIds.has(allocationId));
207
- return filteredAllocationIds.length
208
- ? {
209
- ...binding,
210
- allocationIds: filteredAllocationIds,
211
- }
212
- : undefined;
213
- })
214
- .filter((binding) => binding !== undefined);
215
- const scope = {
216
- kind: 'resource-query',
217
- filterFingerprint,
218
- allocationIds: uniqueAllocationIds,
219
- recommendationIds: uniqueRecommendationIds,
220
- };
221
- const coordinates = source.coordinates.map((coordinate) => {
222
- if (coordinate.status === 'unavailable')
223
- return coordinate;
224
- const recommendationContributions = coordinate.recommendationContributions
225
- .map(contribution => {
226
- if (contribution.allocations === undefined) {
227
- throw new FinancialSavingsSurfaceProjectionError('Financial savings resource query requires exact allocation contribution evidence');
228
- }
229
- const allocations = contribution.allocations.filter(allocation => includedAllocationIds.has(allocation.allocationId));
230
- if (allocations.length === 0)
231
- return undefined;
232
- return {
233
- recommendationId: contribution.recommendationId,
234
- allocationIds: allocations.map(allocation => allocation.allocationId),
235
- allocations: allocations,
236
- savingsMinorUnits: exactMinorUnitSum(allocations.map(allocation => allocation.savingsMinorUnits)),
237
- };
238
- })
239
- .filter((contribution) => contribution !== undefined);
240
- const resourceContributions = projectResourceContributions(recommendationContributions, lifecycleBindings, coordinate.minorUnitScale);
241
- const filteredAmounts = {
242
- recommendationContributions,
243
- ...(resourceContributions?.length ? { resourceContributions } : {}),
244
- aggregate: {
245
- allocationIds: recommendationContributions.flatMap(contribution => contribution.allocationIds),
246
- savingsMinorUnits: exactMinorUnitSum(recommendationContributions.map(contribution => contribution.savingsMinorUnits)),
247
- },
248
- };
249
- if (coordinate.status === 'available')
250
- return { ...coordinate, ...filteredAmounts };
251
- const { unavailableRecommendationIds: _sourceUnavailableRecommendationIds, ...common } = coordinate;
252
- void _sourceUnavailableRecommendationIds;
253
- const unavailableRecommendationIds = coordinate.unavailableRecommendationIds.filter(id => includedRecommendationIds.has(id));
254
- return unavailableRecommendationIds.length > 0
255
- ? {
256
- ...common,
257
- ...filteredAmounts,
258
- status: 'partial',
259
- unavailableRecommendationIds: unavailableRecommendationIds,
260
- }
261
- : { ...common, ...filteredAmounts, status: 'available' };
262
- });
263
- const identity = {
264
- schemaVersion: source.schemaVersion,
265
- contractVersion: source.contractVersion,
266
- surface: source.surface,
267
- scope,
268
- provider: source.provider,
269
- providerAccountRefs: source.providerAccountRefs,
270
- artifactGeneration: source.artifactGeneration,
271
- financialAuthorityId: source.financialAuthorityId,
272
- savingsAuthorityId: source.savingsAuthorityId,
273
- ...(lifecycleBindings?.length ? { lifecycleBindings: lifecycleBindings } : {}),
274
- coordinates,
275
- };
276
- const projection = { ...identity, projectionId: createFinancialSavingsSurfaceProjectionIdV1(identity) };
277
- if (!isFinancialSavingsSurfaceProjectionV1(projection)) {
278
- throw new FinancialSavingsSurfaceProjectionError('Financial savings resource query projection failed validation');
279
- }
280
- return projection;
281
- };
282
- /**
283
- * Projects a validated Resources authority into a compact, immutable surface.
284
- * It partitions canonical allocation amounts for display and never recalculates
285
- * scenario economics from legacy recommendation or resource fields.
286
- */
287
- export const buildFinancialSavingsSurfaceProjectionV1 = (resourcesView, surface, chargeInclusionPolicyRef = AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef) => {
288
- const authority = resourcesView.financialAuthority;
289
- const savingsAuthority = resourcesView.financialSavingsAuthority;
290
- if (authority.authorityId !== savingsAuthority.financialAuthorityId ||
291
- !sameGeneration(resourcesView.artifactGeneration, authority.artifactGeneration) ||
292
- !sameGeneration(authority.artifactGeneration, savingsAuthority.artifactGeneration)) {
293
- throw new FinancialSavingsSurfaceProjectionError('Financial savings authority generation or identity binding is invalid');
294
- }
295
- if (!resolveFinancialChargeInclusionPolicyV1(chargeInclusionPolicyRef)) {
296
- throw new FinancialSavingsSurfaceProjectionError('Financial savings charge-inclusion policy is not registered');
297
- }
298
- const financialCoordinateById = new Map(authority.coordinates.map(coordinate => [coordinate.coordinateId, coordinate]));
299
- const savingsCoordinateById = new Map(savingsAuthority.coordinates.map(coordinate => [coordinate.coordinateId, coordinate]));
300
- const eligibilityById = new Map(savingsAuthority.eligibilityAssessments.map(assessment => [assessment.eligibilityId, assessment]));
301
- if (financialCoordinateById.size !== authority.coordinates.length ||
302
- savingsCoordinateById.size !== savingsAuthority.coordinates.length ||
303
- financialCoordinateById.size !== savingsCoordinateById.size ||
304
- Array.from(financialCoordinateById.keys()).some(coordinateId => !savingsCoordinateById.has(coordinateId))) {
305
- throw new FinancialSavingsSurfaceProjectionError('Financial savings coordinates are not one-to-one with financial authority coordinates');
306
- }
307
- const projectedAllocations = [];
308
- const coordinates = authority.coordinates.map((financialCoordinate) => {
309
- const savingsCoordinate = savingsCoordinateById.get(financialCoordinate.coordinateId);
310
- if (!savingsCoordinate) {
311
- throw new FinancialSavingsSurfaceProjectionError(`Financial savings coordinate ${financialCoordinate.coordinateId} is missing`);
312
- }
313
- const common = {
314
- coordinateId: financialCoordinate.coordinateId,
315
- periodRole: financialCoordinate.periodRole,
316
- period: financialCoordinate.period,
317
- costBasis: financialCoordinate.costBasis,
318
- estimateLens: financialCoordinate.estimateLens,
319
- chargeInclusionPolicyRef,
320
- ...(financialCoordinate.requestedCurrencyCode === undefined
321
- ? {}
322
- : { requestedCurrencyCode: financialCoordinate.requestedCurrencyCode }),
323
- ...(savingsCoordinate.currentAggregateBaselineId === undefined
324
- ? {}
325
- : { currentAggregateBaselineId: savingsCoordinate.currentAggregateBaselineId }),
326
- };
327
- if (savingsCoordinate.status === 'unavailable') {
328
- return { ...common, status: 'unavailable', unavailableReason: savingsCoordinate.unavailableReason };
329
- }
330
- const currentAggregate = financialCoordinate.aggregateBaseline;
331
- const chargeCompositions = financialCoordinate.chargeCompositions ?? [];
332
- const chargeCompositionByBaselineId = new Map(chargeCompositions.map(composition => [composition.baselineId, composition]));
333
- const selectedCurrentAggregate = chargeCompositionByBaselineId.size === chargeCompositions.length
334
- ? selectAggregateForPolicy(financialCoordinate, chargeInclusionPolicyRef, chargeCompositionByBaselineId)
335
- : undefined;
336
- if (currentAggregate.status !== 'available' ||
337
- currentAggregate.baselineId !== savingsCoordinate.currentAggregateBaselineId ||
338
- currentAggregate.total.currencyCode !== savingsCoordinate.accountingCurrencyCode ||
339
- selectedCurrentAggregate === undefined) {
340
- return { ...common, status: 'unavailable', unavailableReason: 'allocation-unavailable' };
341
- }
342
- const sourceUnavailableRecommendationIds = savingsCoordinate.status === 'partial'
343
- ? Array.from(new Set(savingsCoordinate.activations
344
- .filter(activation => activation.result === 'unavailable')
345
- .map(activation => activation.recommendationId))).sort()
346
- : [];
347
- const policyUnavailableRecommendationIds = new Set();
348
- const selectedAllocations = samePolicy(chargeInclusionPolicyRef, AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef)
349
- ? savingsCoordinate.allocations
350
- : savingsCoordinate.allocations.filter(allocation => {
351
- const disposition = classifyFinancialSavingsAllocationForPolicyV1(chargeCompositionByBaselineId, allocation, chargeInclusionPolicyRef);
352
- if (disposition === 'unavailable')
353
- policyUnavailableRecommendationIds.add(allocation.recommendationId);
354
- return disposition === 'included';
355
- });
356
- const projectionById = new Map(financialCoordinate.projections.map(projection => [projection.projectionId, projection]));
357
- const selectedAllocationsWithDenominators = selectedAllocations.map(allocation => {
358
- const mappedEligibility = allocation.eligibility?.kind === 'mapped' ? eligibilityById.get(allocation.eligibility.eligibilityId) : undefined;
359
- const financialProjection = projectionById.get(allocation.projectionId);
360
- const denominator = mappedEligibility?.status === 'available'
361
- ? {
362
- denominatorId: mappedEligibility.denominator.denominatorId,
363
- amount: mappedEligibility.denominator.amount,
364
- currencyCode: mappedEligibility.denominator.currencyCode,
365
- }
366
- : allocation.eligibility?.kind === 'not-applicable' && financialProjection?.status === 'available'
367
- ? {
368
- denominatorId: allocation.denominatorId,
369
- amount: financialProjection.current.affected,
370
- currencyCode: financialProjection.accountingCurrencyCode,
371
- }
372
- : undefined;
373
- return { ...allocation, ...(denominator ? { denominator } : {}) };
374
- });
375
- projectedAllocations.push(...selectedAllocationsWithDenominators);
376
- const unavailableRecommendationIds = [
377
- ...new Set([...sourceUnavailableRecommendationIds, ...policyUnavailableRecommendationIds]),
378
- ].sort();
379
- const recommendationContributions = projectRecommendationContributions(selectedAllocationsWithDenominators);
380
- const resourceContributions = projectResourceContributions(recommendationContributions, projectLifecycleBindings(selectedAllocationsWithDenominators), savingsCoordinate.minorUnitScale);
381
- const composed = {
382
- ...common,
383
- currentAggregateBaselineId: savingsCoordinate.currentAggregateBaselineId,
384
- currentAggregate: { amount: selectedCurrentAggregate, currencyCode: currentAggregate.total.currencyCode },
385
- accountingCurrencyCode: savingsCoordinate.accountingCurrencyCode,
386
- minorUnitScale: savingsCoordinate.minorUnitScale,
387
- roundingMode: savingsCoordinate.roundingMode,
388
- recommendationContributions,
389
- ...(resourceContributions?.length ? { resourceContributions } : {}),
390
- aggregate: {
391
- allocationIds: recommendationContributions.flatMap(contribution => contribution.allocationIds),
392
- savingsMinorUnits: exactMinorUnitSum(recommendationContributions.map(contribution => contribution.savingsMinorUnits)),
393
- },
394
- };
395
- return unavailableRecommendationIds.length > 0
396
- ? {
397
- ...composed,
398
- status: 'partial',
399
- unavailableRecommendationIds: unavailableRecommendationIds,
400
- }
401
- : { ...composed, status: 'available' };
402
- });
403
- const lifecycleBindings = projectLifecycleBindings(projectedAllocations);
404
- const identity = {
405
- schemaVersion: FINANCIAL_SAVINGS_SURFACE_PROJECTION_SCHEMA_VERSION_V1,
406
- contractVersion: FINANCIAL_SAVINGS_SURFACE_PROJECTION_CONTRACT_VERSION_V1,
407
- surface,
408
- scope: { kind: 'subscription-full' },
409
- provider: 'azure',
410
- providerAccountRefs: [...authority.providerAccountRefs],
411
- artifactGeneration: { ...authority.artifactGeneration },
412
- financialAuthorityId: authority.authorityId,
413
- savingsAuthorityId: savingsAuthority.savingsAuthorityId,
414
- ...(lifecycleBindings.length
415
- ? { lifecycleBindings: lifecycleBindings }
416
- : {}),
417
- coordinates,
418
- };
419
- const projection = {
420
- ...identity,
421
- projectionId: createFinancialSavingsSurfaceProjectionIdV1(identity),
422
- };
423
- if (!isFinancialSavingsSurfaceProjectionV1(projection)) {
424
- throw new FinancialSavingsSurfaceProjectionError('Financial savings surface projection failed validation');
425
- }
426
- return projection;
427
- };
@@ -1,75 +0,0 @@
1
- import { sha256Utf8 } from '../common/sha256.js';
2
- import { RECOMMENDATION_LIFECYCLE_OVERLAY_CONTRACT_VERSION_V2, RECOMMENDATION_LIFECYCLE_OVERLAY_SCHEMA_VERSION_V2, } from './recommendations.js';
3
- import { canonicalizeFinancialSavingsJsonValue, hasExactFinancialSavingsFields, isFinancialSavingsHash, isFinancialSavingsIdentity, isFinancialSavingsIsoInstant, isFinancialSavingsRecord, } from './financialSavingsAuthorityValidationPrimitives.js';
4
- const STATUSES = new Set(['Active', 'Prioritized', 'Dismissed', 'Archived', 'Implementing', 'Implemented', 'Failed']);
5
- const MAX_STATES = 50000;
6
- const MAX_REASONS = 64;
7
- const isReasonCodes = (value) => Array.isArray(value) &&
8
- value.length > 0 &&
9
- value.length <= MAX_REASONS &&
10
- value.every(isFinancialSavingsIdentity) &&
11
- new Set(value).size === value.length;
12
- const isLifecycleState = (value) => {
13
- if (!isFinancialSavingsRecord(value) ||
14
- !hasExactFinancialSavingsFields(value, ['recommendationId', 'scope', 'status', 'updatedAt', 'revision'], ['resourceId', 'statusStartAt', 'statusEndAt']) ||
15
- !isFinancialSavingsIdentity(value.recommendationId) ||
16
- (value.scope !== 'resource' && value.scope !== 'providerScope') ||
17
- (value.scope === 'resource') !== (value.resourceId !== undefined) ||
18
- (value.resourceId !== undefined && !isFinancialSavingsIdentity(value.resourceId)) ||
19
- typeof value.status !== 'string' ||
20
- !STATUSES.has(value.status) ||
21
- (value.statusStartAt !== undefined && !isFinancialSavingsIsoInstant(value.statusStartAt)) ||
22
- (value.statusEndAt !== undefined && !isFinancialSavingsIsoInstant(value.statusEndAt)) ||
23
- !isFinancialSavingsIsoInstant(value.updatedAt) ||
24
- !isFinancialSavingsIdentity(value.revision))
25
- return false;
26
- if (value.statusStartAt !== undefined && value.statusEndAt !== undefined && value.statusStartAt >= value.statusEndAt)
27
- return false;
28
- return value.statusStartAt === undefined || value.updatedAt >= value.statusStartAt;
29
- };
30
- const canonicalizeState = (state) => ({ ...state });
31
- export const canonicalizeRecommendationLifecycleOverlayIdentityV2 = (value) => JSON.stringify(canonicalizeFinancialSavingsJsonValue({
32
- ...value,
33
- ...(value.status === 'complete' ? {} : { reasonCodes: [...value.reasonCodes].sort() }),
34
- states: [...value.states]
35
- .sort((left, right) => left.recommendationId.localeCompare(right.recommendationId) ||
36
- (left.resourceId ?? '').localeCompare(right.resourceId ?? ''))
37
- .map(canonicalizeState),
38
- }));
39
- export const createRecommendationLifecycleOverlayIdV2 = (value) => `sha256:${sha256Utf8(canonicalizeRecommendationLifecycleOverlayIdentityV2(value))}`;
40
- export const isRecommendationLifecycleOverlayV2 = (value) => {
41
- if (!isFinancialSavingsRecord(value) ||
42
- !hasExactFinancialSavingsFields(value, [
43
- 'schemaVersion',
44
- 'contractVersion',
45
- 'overlayId',
46
- 'companyId',
47
- 'provider',
48
- 'providerScopeId',
49
- 'revision',
50
- 'generatedAt',
51
- 'status',
52
- 'states',
53
- ], value.status === 'complete' ? [] : ['reasonCodes']) ||
54
- value.schemaVersion !== RECOMMENDATION_LIFECYCLE_OVERLAY_SCHEMA_VERSION_V2 ||
55
- value.contractVersion !== RECOMMENDATION_LIFECYCLE_OVERLAY_CONTRACT_VERSION_V2 ||
56
- !isFinancialSavingsHash(value.overlayId) ||
57
- !isFinancialSavingsIdentity(value.companyId) ||
58
- value.provider !== 'azure' ||
59
- !isFinancialSavingsIdentity(value.providerScopeId) ||
60
- !isFinancialSavingsIdentity(value.revision) ||
61
- !isFinancialSavingsIsoInstant(value.generatedAt) ||
62
- (value.status !== 'complete' && value.status !== 'partial' && value.status !== 'unavailable') ||
63
- !Array.isArray(value.states) ||
64
- value.states.length > MAX_STATES ||
65
- !value.states.every(isLifecycleState) ||
66
- (value.status === 'unavailable' && value.states.length !== 0) ||
67
- (value.status !== 'complete' && !isReasonCodes(value.reasonCodes)))
68
- return false;
69
- const stateKeys = value.states.map(state => `${state.scope}\u0000${state.resourceId?.toLowerCase() ?? ''}\u0000${state.recommendationId}`);
70
- if (new Set(stateKeys).size !== stateKeys.length)
71
- return false;
72
- const overlay = value;
73
- const { overlayId: _overlayId, ...identity } = overlay;
74
- return overlay.overlayId === createRecommendationLifecycleOverlayIdV2(identity);
75
- };
@@ -1,2 +0,0 @@
1
- /** Maximum span of the current month and two preceding complete calendar months. */
2
- export const REPORT_DAILY_SPEND_MAX_DAYS = 92;
@@ -1,67 +0,0 @@
1
- import { REPORT_DAILY_SPEND_MAX_DAYS } from './reportDailySpend.js';
2
- import { isCount, isFiniteNumber, isRecord } from './reportEvidenceValidationHelpers.js';
3
- import { hasReportSpendValue, isReportSpendAmounts } from './reportSpendValidation.js';
4
- import { isReportCalendarDate as isCalendarDate, isReportUtcTimestamp as isUtcTimestamp } from './reportSpendValidationHelpers.js';
5
- const DAY_MS = 86400000;
6
- const isCoverage = (value, covered, expected) => {
7
- const status = covered === expected ? 'complete' : covered === 0 ? 'unavailable' : 'partial';
8
- return isRecord(value) && isCount(value.coveredDayCount) && value.coveredDayCount === covered && value.status === status;
9
- };
10
- export const isReportDailySpend = (value) => {
11
- if (!isRecord(value) ||
12
- !isCalendarDate(value.startDate) ||
13
- !isCalendarDate(value.endDate) ||
14
- value.dateBasis !== 'billing-calendar' ||
15
- typeof value.currency !== 'string' ||
16
- !/^[A-Z]{3}$/.test(value.currency) ||
17
- !isUtcTimestamp(value.generatedAt) ||
18
- !['current', 'stale', 'unavailable'].includes(value.freshness) ||
19
- !isRecord(value.coverage) ||
20
- !Array.isArray(value.entries) ||
21
- value.entries.length > REPORT_DAILY_SPEND_MAX_DAYS)
22
- return false;
23
- const expected = (Date.parse(value.endDate) - Date.parse(value.startDate)) / DAY_MS + 1;
24
- if (expected < 1 || expected > REPORT_DAILY_SPEND_MAX_DAYS)
25
- return false;
26
- if ((value.sourceObservedAt !== undefined &&
27
- (!isUtcTimestamp(value.sourceObservedAt) || Date.parse(value.sourceObservedAt) > Date.parse(value.generatedAt))) ||
28
- (value.entries.length > 0 && (value.sourceObservedAt === undefined || value.freshness === 'unavailable')))
29
- return false;
30
- let previousDate = '';
31
- let billedDays = 0;
32
- let amortizedDays = 0;
33
- for (const entry of value.entries) {
34
- if (!isRecord(entry) ||
35
- !isCalendarDate(entry.date) ||
36
- entry.date <= previousDate ||
37
- entry.date < value.startDate ||
38
- entry.date > value.endDate ||
39
- (entry.cost === undefined && entry.costAmortized === undefined && entry.financials === undefined) ||
40
- (entry.cost !== undefined && !isFiniteNumber(entry.cost)) ||
41
- (entry.costAmortized !== undefined && !isFiniteNumber(entry.costAmortized)))
42
- return false;
43
- if (entry.financials !== undefined) {
44
- if (!isReportSpendAmounts(entry.financials, value.currency, value.generatedAt) || !hasReportSpendValue(entry.financials))
45
- return false;
46
- for (const [basis, field] of [
47
- ['billed', 'cost'],
48
- ['amortized', 'costAmortized'],
49
- ]) {
50
- const actual = entry.financials.composition[basis].actual.availability;
51
- const complete = entry.financials.coverage[basis].actual === 'complete';
52
- if (actual.status === 'available' && complete) {
53
- if (entry[field] !== Number(actual.component.amount))
54
- return false;
55
- }
56
- else if (entry[field] !== undefined)
57
- return false;
58
- }
59
- }
60
- previousDate = entry.date;
61
- if (entry.cost !== undefined)
62
- billedDays++;
63
- if (entry.costAmortized !== undefined)
64
- amortizedDays++;
65
- }
66
- return isCoverage(value.coverage.billed, billedDays, expected) && isCoverage(value.coverage.amortized, amortizedDays, expected);
67
- };
@@ -1,21 +0,0 @@
1
- export const REPORT_EVIDENCE_LIMITS = {
2
- detailRows: 50,
3
- currentRecommendations: 90,
4
- recommendationCatalogue: 2000,
5
- complianceAssessments: 2000,
6
- activityDays: 400,
7
- activityMonths: 13,
8
- recommendationResources: 2,
9
- resourceCatalogue: 2000,
10
- totalRecommendationResourceRows: 10000,
11
- inventoryCatalogue: 2000,
12
- healthCatalogue: 2000,
13
- summaryDimensions: 25,
14
- summaryRows: 20,
15
- topRecommendationIds: 20,
16
- topRecommendationIdsPerPillar: 5,
17
- upcomingEvents: 20,
18
- historyPeriods: 13,
19
- historyRecommendations: 2000,
20
- tenantGlobalAdministrators: 50,
21
- };