@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,263 +0,0 @@
1
- import { FINANCIAL_AUTHORITY_RESOURCE_PROJECTION_CONTRACT_VERSION_V1, } from './financialAuthorityView.js';
2
- import { FINANCIAL_SAVINGS_RESOURCE_PROJECTION_CONTRACT_VERSION_V1, } from './financialSavingsAuthority.js';
3
- import { AZURE_BILLED_ALL_CHARGES_POLICY_V1, resolveFinancialChargeInclusionPolicyV1, } from './financialChargeComposition.js';
4
- import { classifyFinancialSavingsAllocationForPolicyV1 } from './financialSavingsChargePolicyKernel.js';
5
- const normalize = (value) => value.trim().toLowerCase().replace(/\/+$/, '');
6
- /** Derives one compact, non-additive resource view from a validated canonical authority. */
7
- export const projectFinancialAuthorityResourceV1 = (authority, resourceType, scopeId) => {
8
- const normalizedType = normalize(resourceType);
9
- const normalizedScopeId = normalize(scopeId);
10
- const coverage = authority.scopeCoverage.find(entry => normalize(entry.resourceType) === normalizedType && entry.scopeIds.some(candidate => normalize(candidate) === normalizedScopeId));
11
- if (!coverage)
12
- return undefined;
13
- const coordinates = authority.coordinates.map(coordinate => {
14
- const owners = coordinate.ownerBaselines.filter(baseline => normalize(baseline.scopeId) === normalizedScopeId);
15
- const ownerBaseline = owners[0];
16
- if (owners.length !== 1 || !ownerBaseline)
17
- throw new TypeError('Financial authority resource owner is missing or ambiguous.');
18
- const chargeComposition = ownerBaseline.status === 'available' && ownerBaseline.baselineKind === 'owner'
19
- ? coordinate.chargeCompositions.find(composition => composition.baselineId === ownerBaseline.baselineId)
20
- : undefined;
21
- if (ownerBaseline.status === 'available' && ownerBaseline.baselineKind === 'owner' && !chargeComposition) {
22
- throw new TypeError('Financial authority resource charge composition is missing.');
23
- }
24
- const displayRollups = (coordinate.displayRollups ?? []).filter(rollup => normalize(rollup.displayScopeId) === normalizedScopeId);
25
- const displayMemberBaselineIds = new Set(displayRollups.flatMap(rollup => rollup.members.map(member => member.baselineId)).filter(baselineId => baselineId !== ownerBaseline.baselineId));
26
- const displayMemberBaselines = coordinate.ownerBaselines.filter(baseline => baseline.status === 'available' &&
27
- baseline.baselineKind === 'owner' &&
28
- displayMemberBaselineIds.has(baseline.baselineId));
29
- if (displayMemberBaselines.length !== displayMemberBaselineIds.size) {
30
- throw new TypeError('Financial authority resource display member baseline is missing.');
31
- }
32
- const displayMemberChargeCompositions = (coordinate.chargeCompositions ?? []).filter(composition => displayMemberBaselineIds.has(composition.baselineId));
33
- if (displayMemberBaselines.some(baseline => baseline.status === 'available' &&
34
- baseline.baselineKind === 'owner' &&
35
- !displayMemberChargeCompositions.some(composition => composition.baselineId === baseline.baselineId))) {
36
- throw new TypeError('Financial authority resource display member charge composition is missing.');
37
- }
38
- const displayMemberships = new Set(displayRollups.flatMap(rollup => rollup.members.map(member => `${member.baselineId}\u0000${member.componentId}`)));
39
- return {
40
- coordinateId: coordinate.coordinateId,
41
- periodRole: coordinate.periodRole,
42
- period: coordinate.period,
43
- costBasis: coordinate.costBasis,
44
- estimateLens: coordinate.estimateLens,
45
- ...(coordinate.requestedCurrencyCode === undefined ? {} : { requestedCurrencyCode: coordinate.requestedCurrencyCode }),
46
- ownerBaseline,
47
- ...(displayMemberBaselines.length === 0 ? {} : { displayMemberBaselines }),
48
- ...(chargeComposition === undefined ? {} : { chargeComposition }),
49
- ...(displayMemberChargeCompositions.length === 0 ? {} : { displayMemberChargeCompositions }),
50
- componentDescriptors: (coordinate.componentDescriptors ?? []).filter(descriptor => displayMemberships.has(`${descriptor.baselineId}\u0000${descriptor.componentId}`)),
51
- displayRollups,
52
- projections: coordinate.projections.filter(projection => normalize(projection.scopeId) === normalizedScopeId),
53
- };
54
- });
55
- const firstCoordinate = coordinates[0];
56
- if (!firstCoordinate)
57
- throw new TypeError('Financial authority resource projection has no coordinates.');
58
- const assessmentIds = new Set();
59
- const bundleIds = new Set();
60
- coordinates.forEach(coordinate => {
61
- assessmentIds.add(coordinate.ownerBaseline.assessmentId);
62
- if (coordinate.ownerBaseline.status === 'available' && coordinate.ownerBaseline.baselineKind === 'owner') {
63
- bundleIds.add(coordinate.ownerBaseline.evidenceBundleId);
64
- }
65
- for (const baseline of coordinate.displayMemberBaselines ?? []) {
66
- assessmentIds.add(baseline.assessmentId);
67
- if (baseline.status === 'available' && baseline.baselineKind === 'owner')
68
- bundleIds.add(baseline.evidenceBundleId);
69
- }
70
- coordinate.projections.forEach(projection => {
71
- if (projection.targetAssessmentId)
72
- assessmentIds.add(projection.targetAssessmentId);
73
- if (projection.targetEvidenceBundleId)
74
- bundleIds.add(projection.targetEvidenceBundleId);
75
- });
76
- });
77
- const evidenceAssessments = authority.evidenceAssessments.filter(assessment => assessmentIds.has(assessment.assessmentId));
78
- evidenceAssessments.forEach(assessment => {
79
- if (assessment.evidenceBundleId)
80
- bundleIds.add(assessment.evidenceBundleId);
81
- });
82
- return {
83
- contractVersion: FINANCIAL_AUTHORITY_RESOURCE_PROJECTION_CONTRACT_VERSION_V1,
84
- authorityId: authority.authorityId,
85
- provider: authority.provider,
86
- providerAccountRefs: authority.providerAccountRefs,
87
- artifactGeneration: authority.artifactGeneration,
88
- billingGenerationId: authority.billingGenerationId,
89
- resourceType: coverage.resourceType,
90
- financialRole: coverage.financialRole,
91
- scopeId: normalizedScopeId,
92
- evidenceBundles: authority.evidenceBundles.filter(bundle => bundleIds.has(bundle.bundleId)),
93
- evidenceAssessments,
94
- coordinates: [firstCoordinate, ...coordinates.slice(1)],
95
- };
96
- };
97
- /** Derives the matching compact savings view for one canonical resource owner. */
98
- export const projectFinancialSavingsResourceV1 = (savingsAuthority, financialProjection, financialAuthority, chargeInclusionPolicyRef = AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef) => {
99
- if (savingsAuthority.financialAuthorityId !== financialProjection.authorityId ||
100
- savingsAuthority.artifactGeneration.runId !== financialProjection.artifactGeneration.runId ||
101
- savingsAuthority.artifactGeneration.generatedAt !== financialProjection.artifactGeneration.generatedAt) {
102
- throw new TypeError('Financial savings authority is not bound to the resource Financial Authority projection.');
103
- }
104
- if (!resolveFinancialChargeInclusionPolicyV1(chargeInclusionPolicyRef)) {
105
- throw new TypeError('Financial savings resource charge-inclusion policy is not registered.');
106
- }
107
- if (financialAuthority !== undefined &&
108
- (financialAuthority.authorityId !== financialProjection.authorityId ||
109
- financialAuthority.artifactGeneration.runId !== financialProjection.artifactGeneration.runId ||
110
- financialAuthority.artifactGeneration.generatedAt !== financialProjection.artifactGeneration.generatedAt)) {
111
- throw new TypeError('Full Financial Authority is not bound to the resource projection.');
112
- }
113
- const normalizedScopeId = normalize(financialProjection.scopeId);
114
- const financialCoordinateIds = new Set(financialProjection.coordinates.map(coordinate => coordinate.coordinateId));
115
- const savingsByCoordinateId = new Map(savingsAuthority.coordinates.map(coordinate => [coordinate.coordinateId, coordinate]));
116
- if (financialCoordinateIds.size !== financialProjection.coordinates.length ||
117
- savingsAuthority.coordinates.length !== financialProjection.coordinates.length ||
118
- savingsAuthority.coordinates.some(coordinate => !financialCoordinateIds.has(coordinate.coordinateId))) {
119
- throw new TypeError('Financial savings coordinates do not match the resource Financial Authority projection.');
120
- }
121
- const coordinates = financialProjection.coordinates.map(financialCoordinate => {
122
- const coordinate = savingsByCoordinateId.get(financialCoordinate.coordinateId);
123
- if (!coordinate)
124
- throw new TypeError('Financial savings coordinate is missing.');
125
- if (coordinate.status === 'unavailable')
126
- return { ...coordinate, chargeInclusionPolicyRef };
127
- const displayOwnerScopeIds = new Set((financialCoordinate.displayMemberBaselines ?? []).map(baseline => normalize(baseline.scopeId)));
128
- displayOwnerScopeIds.delete(normalizedScopeId);
129
- const selectedOwnerScopeIds = new Set([normalizedScopeId, ...displayOwnerScopeIds]);
130
- const resourceAllocations = coordinate.allocations.filter(allocation => selectedOwnerScopeIds.has(normalize(allocation.ownerScopeId)));
131
- const sourceResourceContributions = coordinate.resourceContributions.filter(contribution => selectedOwnerScopeIds.has(normalize(contribution.ownerScopeId)));
132
- const sourceResourceContributionByOwner = new Map();
133
- for (const contribution of sourceResourceContributions) {
134
- const ownerScopeId = normalize(contribution.ownerScopeId);
135
- if (sourceResourceContributionByOwner.has(ownerScopeId)) {
136
- throw new TypeError('Financial savings resource contribution is ambiguous.');
137
- }
138
- sourceResourceContributionByOwner.set(ownerScopeId, contribution);
139
- }
140
- for (const ownerScopeId of selectedOwnerScopeIds) {
141
- const sourceRecommendationSavings = coordinate.recommendationContributions
142
- .filter(contribution => normalize(contribution.ownerScopeId) === ownerScopeId)
143
- .reduce((total, contribution) => {
144
- const next = total + contribution.savingsMinorUnits;
145
- if (!Number.isSafeInteger(next)) {
146
- throw new TypeError('Financial savings recommendation contribution overflows safe minor units.');
147
- }
148
- return next;
149
- }, 0);
150
- if ((sourceResourceContributionByOwner.get(ownerScopeId)?.savingsMinorUnits ?? 0) !== sourceRecommendationSavings) {
151
- throw new TypeError('Financial savings recommendation contributions do not reconcile to the resource contribution.');
152
- }
153
- }
154
- const policyUnavailableScenarioIds = new Set();
155
- const chargeCompositionByBaselineId = new Map([
156
- ...(financialCoordinate.chargeComposition ? [financialCoordinate.chargeComposition] : []),
157
- ...(financialCoordinate.displayMemberChargeCompositions ?? []),
158
- ].map(composition => [composition.baselineId, composition]));
159
- const selectedAllocations = resourceAllocations.filter(allocation => {
160
- if (chargeInclusionPolicyRef.policyId === AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef.policyId &&
161
- chargeInclusionPolicyRef.policyDigest === AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef.policyDigest)
162
- return true;
163
- const disposition = classifyFinancialSavingsAllocationForPolicyV1(chargeCompositionByBaselineId, allocation, chargeInclusionPolicyRef);
164
- if (disposition === 'unavailable')
165
- policyUnavailableScenarioIds.add(allocation.scenarioId);
166
- return disposition === 'included';
167
- });
168
- const allocationsByRecommendation = new Map();
169
- for (const allocation of selectedAllocations) {
170
- const key = `${normalize(allocation.ownerScopeId)}\u0000${allocation.recommendationId}`;
171
- const current = allocationsByRecommendation.get(key) ?? [];
172
- current.push(allocation);
173
- allocationsByRecommendation.set(key, current);
174
- }
175
- const allRecommendationContributions = [...allocationsByRecommendation.entries()]
176
- .sort(([left], [right]) => left.localeCompare(right))
177
- .map(([, allocations]) => {
178
- const firstAllocation = allocations[0];
179
- if (!firstAllocation)
180
- throw new TypeError('Financial savings recommendation contribution has no allocation.');
181
- const savingsMinorUnits = allocations.reduce((total, allocation) => {
182
- const next = total + allocation.savingsMinorUnits;
183
- if (!Number.isSafeInteger(next)) {
184
- throw new TypeError('Financial savings recommendation contribution overflows safe minor units.');
185
- }
186
- return next;
187
- }, 0);
188
- return {
189
- ownerScopeId: normalize(firstAllocation.ownerScopeId),
190
- recommendationId: firstAllocation.recommendationId,
191
- allocationIds: allocations.map(allocation => allocation.allocationId),
192
- savingsMinorUnits,
193
- };
194
- });
195
- const recommendationContributions = allRecommendationContributions.filter(contribution => normalize(contribution.ownerScopeId) === normalizedScopeId);
196
- const displayMemberRecommendationContributions = allRecommendationContributions.filter(contribution => displayOwnerScopeIds.has(normalize(contribution.ownerScopeId)));
197
- const buildResourceContribution = (ownerScopeId) => {
198
- const allocations = selectedAllocations.filter(allocation => normalize(allocation.ownerScopeId) === ownerScopeId);
199
- if (allocations.length === 0)
200
- return undefined;
201
- const savingsMinorUnits = allocations.reduce((total, allocation) => {
202
- const next = total + allocation.savingsMinorUnits;
203
- if (!Number.isSafeInteger(next))
204
- throw new TypeError('Financial savings resource contribution overflows safe minor units.');
205
- return next;
206
- }, 0);
207
- return {
208
- ownerScopeId,
209
- allocationIds: allocations.map(allocation => allocation.allocationId),
210
- savingsMinorUnits,
211
- };
212
- };
213
- const resourceContribution = buildResourceContribution(normalizedScopeId);
214
- const displayMemberResourceContributions = [...displayOwnerScopeIds]
215
- .sort()
216
- .map(buildResourceContribution)
217
- .filter((contribution) => contribution !== undefined);
218
- const unavailableActivationIds = new Set(coordinate.status === 'partial'
219
- ? coordinate.activations.filter(activation => activation.result === 'unavailable').map(activation => activation.scenarioId)
220
- : []);
221
- const authorityCoordinate = financialAuthority?.coordinates.find(candidate => candidate.coordinateId === financialCoordinate.coordinateId);
222
- if (financialAuthority !== undefined && !authorityCoordinate) {
223
- throw new TypeError('Full Financial Authority coordinate is missing for the resource projection.');
224
- }
225
- const unavailableScenarioIds = [...new Set([...unavailableActivationIds, ...policyUnavailableScenarioIds])]
226
- .filter(scenarioId => {
227
- if (!authorityCoordinate) {
228
- // Without the full authority there is no proof that an absent target
229
- // projection belongs elsewhere. Preserve the gap on this resource.
230
- return true;
231
- }
232
- const scenarioProjections = authorityCoordinate.projections.filter(projection => projection.scenarioId === scenarioId);
233
- return scenarioProjections.length === 0 || scenarioProjections.some(projection => selectedOwnerScopeIds.has(normalize(projection.scopeId)));
234
- })
235
- .sort();
236
- const composed = {
237
- coordinateId: coordinate.coordinateId,
238
- chargeInclusionPolicyRef,
239
- currentAggregateBaselineId: coordinate.currentAggregateBaselineId,
240
- accountingCurrencyCode: coordinate.accountingCurrencyCode,
241
- minorUnitScale: coordinate.minorUnitScale,
242
- roundingMode: coordinate.roundingMode,
243
- ...(resourceContribution === undefined ? {} : { resourceContribution }),
244
- recommendationContributions,
245
- ...(displayMemberResourceContributions.length === 0 ? {} : { displayMemberResourceContributions }),
246
- ...(displayMemberRecommendationContributions.length === 0 ? {} : { displayMemberRecommendationContributions }),
247
- };
248
- return unavailableScenarioIds.length > 0
249
- ? { ...composed, status: 'partial', unavailableScenarioIds: unavailableScenarioIds }
250
- : { ...composed, status: 'available' };
251
- });
252
- const firstCoordinate = coordinates[0];
253
- if (!firstCoordinate)
254
- throw new TypeError('Financial savings resource projection has no coordinates.');
255
- return {
256
- contractVersion: FINANCIAL_SAVINGS_RESOURCE_PROJECTION_CONTRACT_VERSION_V1,
257
- savingsAuthorityId: savingsAuthority.savingsAuthorityId,
258
- financialAuthorityId: savingsAuthority.financialAuthorityId,
259
- artifactGeneration: savingsAuthority.artifactGeneration,
260
- scopeId: normalizedScopeId,
261
- coordinates: [firstCoordinate, ...coordinates.slice(1)],
262
- };
263
- };
@@ -1,36 +0,0 @@
1
- import { sha256Utf8 } from '../common/sha256.js';
2
- export const FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1 = 1;
3
- export const FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1 = 'financial-charge-composition/v1';
4
- export const FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1 = 'financial-charge-inclusion-policy/v1';
5
- const createRegisteredPolicy = (definition) => {
6
- const { policyId, ...policy } = definition;
7
- const registered = {
8
- ...policy,
9
- includeSources: Object.freeze([...policy.includeSources]),
10
- excludeSources: Object.freeze([...policy.excludeSources]),
11
- withholdSources: Object.freeze([...policy.withholdSources]),
12
- policyRef: Object.freeze({ policyId, policyDigest: `sha256:${sha256Utf8(JSON.stringify(definition))}` }),
13
- };
14
- return Object.freeze(registered);
15
- };
16
- export const AZURE_BILLED_ALL_CHARGES_POLICY_V1 = createRegisteredPolicy({
17
- schemaVersion: 1,
18
- contractVersion: FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1,
19
- policyId: 'azure-billed-all-charges/v1',
20
- includeSources: ['azure-native', 'marketplace', 'unknown'],
21
- excludeSources: [],
22
- withholdSources: [],
23
- });
24
- export const AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1 = createRegisteredPolicy({
25
- schemaVersion: 1,
26
- contractVersion: FINANCIAL_CHARGE_INCLUSION_POLICY_CONTRACT_VERSION_V1,
27
- policyId: 'azure-cloud-services-excluding-marketplace/v1',
28
- includeSources: ['azure-native'],
29
- excludeSources: ['marketplace'],
30
- withholdSources: ['unknown'],
31
- });
32
- export const FINANCIAL_CHARGE_INCLUSION_POLICIES_V1 = Object.freeze([
33
- AZURE_BILLED_ALL_CHARGES_POLICY_V1,
34
- AZURE_CLOUD_SERVICES_EXCLUDING_MARKETPLACE_POLICY_V1,
35
- ]);
36
- export const resolveFinancialChargeInclusionPolicyV1 = (policyRef) => policyRef !== null && typeof policyRef === 'object' && FINANCIAL_CHARGE_INCLUSION_POLICIES_V1.find(policy => policy.policyRef.policyId === policyRef.policyId && policy.policyRef.policyDigest === policyRef.policyDigest) || undefined;
@@ -1,48 +0,0 @@
1
- import { formatExactDecimalValue, sumCanonicalDecimals } from '../common/exactDecimal.js';
2
- import { FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1, FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1, } from './financialChargeComposition.js';
3
- import { createFinancialChargeCompositionIdV1 } from './financialChargeCompositionValidation.js';
4
- const bucketKey = (component) => `${component.chargeSource}\u0000${component.chargeRecurrence}\u0000${component.chargeClassification}`;
5
- export const createFinancialChargeCompositionV1 = (request) => {
6
- if (!Array.isArray(request.components) || request.components.length === 0 || request.components.length > 20000) {
7
- throw new TypeError('Financial charge composition requires a bounded non-empty component collection.');
8
- }
9
- if (new Set(request.components.map(component => component.componentId)).size !== request.components.length) {
10
- throw new TypeError('Financial charge composition cannot classify one component more than once.');
11
- }
12
- const groups = new Map();
13
- for (const component of request.components) {
14
- const key = bucketKey(component);
15
- const group = groups.get(key);
16
- if (group)
17
- group.push(component);
18
- else
19
- groups.set(key, [component]);
20
- }
21
- const buckets = [...groups.values()]
22
- .map(group => ({
23
- chargeSource: group[0].chargeSource,
24
- chargeRecurrence: group[0].chargeRecurrence,
25
- chargeClassification: group[0].chargeClassification,
26
- amount: formatExactDecimalValue(sumCanonicalDecimals(group.map(component => component.amount))),
27
- componentIds: [...new Set(group.map(component => component.componentId))].sort(),
28
- evidenceRefIds: [...new Set(group.flatMap(component => component.evidenceRefIds))].sort(),
29
- }))
30
- .sort((left, right) => `${left.chargeSource}\u0000${left.chargeRecurrence}\u0000${left.chargeClassification}`.localeCompare(`${right.chargeSource}\u0000${right.chargeRecurrence}\u0000${right.chargeClassification}`));
31
- const bucketTotal = formatExactDecimalValue(sumCanonicalDecimals(buckets.map(bucket => bucket.amount)));
32
- if (bucketTotal !== request.sourceTotal)
33
- throw new TypeError('Financial charge composition does not reconcile to its source total.');
34
- const identity = {
35
- schemaVersion: FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1,
36
- contractVersion: FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1,
37
- baselineId: request.baselineId,
38
- ownerScopeId: request.ownerScopeId,
39
- period: request.period,
40
- costBasis: request.costBasis,
41
- estimateLens: request.estimateLens,
42
- accountingCurrencyCode: request.accountingCurrencyCode,
43
- buckets,
44
- reconciliation: { status: 'reconciled', bucketTotal, sourceTotal: request.sourceTotal, difference: '0' },
45
- algorithmVersion: request.algorithmVersion,
46
- };
47
- return { ...identity, chargeCompositionId: createFinancialChargeCompositionIdV1(identity) };
48
- };
@@ -1,155 +0,0 @@
1
- import { formatExactDecimalValue, sumCanonicalDecimals } from '../common/exactDecimal.js';
2
- import { sha256Utf8 } from '../common/sha256.js';
3
- import { FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1, FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1, resolveFinancialChargeInclusionPolicyV1, } from './financialChargeComposition.js';
4
- import { canonicalizeFinancialDataflowJsonV1, hasFinancialDataflowExactFieldsV1, isFinancialDataflowCurrencyV1, isFinancialDataflowHashV1, isFinancialDataflowIdentityV1, isFinancialDataflowRecordV1, isFinancialDataflowValueWithinLimitsV1, } from './financialDataflowValidation.js';
5
- import { isFinancialBaselinePeriodV2 } from './financialScopeBaselineValidation.js';
6
- import { isCanonicalExactMoney } from './financialValidationPrimitives.js';
7
- const SOURCES = new Set(['azure-native', 'marketplace', 'unknown']);
8
- const RECURRENCES = new Set(['one-time', 'recurring', 'usage-based', 'unknown']);
9
- const CLASSIFICATIONS = new Set(['usage', 'purchase', 'adjustment', 'tax', 'credit', 'refund', 'residual']);
10
- const COST_BASES = new Set(['billed', 'amortized']);
11
- const ESTIMATE_LENSES = new Set(['actual-only', 'actual-plus-estimated', 'estimates-only']);
12
- const isSortedUniqueHashes = (value) => Array.isArray(value) && value.length > 0 && value.length <= 20000 && value.every(isFinancialDataflowHashV1) &&
13
- value.every((entry, index) => index === 0 || value[index - 1] < entry);
14
- const isBucket = (value) => isFinancialDataflowRecordV1(value) &&
15
- hasFinancialDataflowExactFieldsV1(value, [
16
- 'chargeSource',
17
- 'chargeRecurrence',
18
- 'chargeClassification',
19
- 'amount',
20
- 'componentIds',
21
- 'evidenceRefIds',
22
- ]) &&
23
- SOURCES.has(value.chargeSource) &&
24
- RECURRENCES.has(value.chargeRecurrence) &&
25
- CLASSIFICATIONS.has(value.chargeClassification) &&
26
- isCanonicalExactMoney({ amount: value.amount, currencyCode: 'AUD' }) &&
27
- isSortedUniqueHashes(value.componentIds) &&
28
- isSortedUniqueHashes(value.evidenceRefIds);
29
- const isIdentity = (value) => {
30
- if (!isFinancialDataflowRecordV1(value) ||
31
- !hasFinancialDataflowExactFieldsV1(value, [
32
- 'schemaVersion',
33
- 'contractVersion',
34
- 'baselineId',
35
- 'ownerScopeId',
36
- 'period',
37
- 'costBasis',
38
- 'estimateLens',
39
- 'accountingCurrencyCode',
40
- 'buckets',
41
- 'reconciliation',
42
- 'algorithmVersion',
43
- ]) ||
44
- value.schemaVersion !== FINANCIAL_CHARGE_COMPOSITION_SCHEMA_VERSION_V1 ||
45
- value.contractVersion !== FINANCIAL_CHARGE_COMPOSITION_CONTRACT_VERSION_V1 ||
46
- !isFinancialDataflowHashV1(value.baselineId) ||
47
- !isFinancialDataflowIdentityV1(value.ownerScopeId) ||
48
- !isFinancialBaselinePeriodV2(value.period) ||
49
- !COST_BASES.has(value.costBasis) ||
50
- !ESTIMATE_LENSES.has(value.estimateLens) ||
51
- !isFinancialDataflowCurrencyV1(value.accountingCurrencyCode) ||
52
- !Array.isArray(value.buckets) ||
53
- value.buckets.length === 0 ||
54
- value.buckets.length > 20000 ||
55
- !value.buckets.every(isBucket) ||
56
- !isFinancialDataflowIdentityV1(value.algorithmVersion) ||
57
- !isFinancialDataflowRecordV1(value.reconciliation) ||
58
- !hasFinancialDataflowExactFieldsV1(value.reconciliation, ['status', 'bucketTotal', 'sourceTotal', 'difference']) ||
59
- value.reconciliation.status !== 'reconciled' ||
60
- value.reconciliation.difference !== '0' ||
61
- !isCanonicalExactMoney({ amount: value.reconciliation.bucketTotal, currencyCode: value.accountingCurrencyCode }) ||
62
- !isCanonicalExactMoney({ amount: value.reconciliation.sourceTotal, currencyCode: value.accountingCurrencyCode }))
63
- return false;
64
- const componentIds = value.buckets.flatMap(bucket => bucket.componentIds);
65
- if (new Set(componentIds).size !== componentIds.length)
66
- return false;
67
- const keys = value.buckets.map(bucket => `${bucket.chargeSource}\u0000${bucket.chargeRecurrence}\u0000${bucket.chargeClassification}`);
68
- if (!keys.every((key, index) => index === 0 || keys[index - 1] < key))
69
- return false;
70
- try {
71
- const bucketTotal = formatExactDecimalValue(sumCanonicalDecimals(value.buckets.map(bucket => bucket.amount)));
72
- return bucketTotal === value.reconciliation.bucketTotal && bucketTotal === value.reconciliation.sourceTotal;
73
- }
74
- catch {
75
- return false;
76
- }
77
- };
78
- export const canonicalizeFinancialChargeCompositionIdentityV1 = (value) => {
79
- if (!isFinancialDataflowValueWithinLimitsV1(value) || !isIdentity(value)) {
80
- throw new TypeError('Invalid FinancialChargeCompositionIdentityPreimageV1.');
81
- }
82
- return canonicalizeFinancialDataflowJsonV1(value);
83
- };
84
- export const createFinancialChargeCompositionIdV1 = (value) => `sha256:${sha256Utf8(canonicalizeFinancialChargeCompositionIdentityV1(value))}`;
85
- export const isFinancialChargeCompositionV1 = (value) => {
86
- if (!isFinancialDataflowValueWithinLimitsV1(value) ||
87
- !isFinancialDataflowRecordV1(value) ||
88
- !hasFinancialDataflowExactFieldsV1(value, [
89
- 'chargeCompositionId',
90
- 'schemaVersion',
91
- 'contractVersion',
92
- 'baselineId',
93
- 'ownerScopeId',
94
- 'period',
95
- 'costBasis',
96
- 'estimateLens',
97
- 'accountingCurrencyCode',
98
- 'buckets',
99
- 'reconciliation',
100
- 'algorithmVersion',
101
- ]))
102
- return false;
103
- const { chargeCompositionId, ...identity } = value;
104
- return isFinancialDataflowHashV1(chargeCompositionId) && isIdentity(identity) &&
105
- chargeCompositionId === createFinancialChargeCompositionIdV1(identity);
106
- };
107
- export const isFinancialChargeInclusionPolicyRefV1 = (value) => isFinancialDataflowRecordV1(value) &&
108
- hasFinancialDataflowExactFieldsV1(value, ['policyId', 'policyDigest']) &&
109
- isFinancialDataflowIdentityV1(value.policyId) &&
110
- isFinancialDataflowHashV1(value.policyDigest) &&
111
- resolveFinancialChargeInclusionPolicyV1(value) !== undefined;
112
- const sumBuckets = (buckets) => formatExactDecimalValue(sumCanonicalDecimals(buckets.map(bucket => bucket.amount)));
113
- const sourcesFor = (policy, role) => role === 'include' ? policy.includeSources : role === 'exclude' ? policy.excludeSources : policy.withholdSources;
114
- export const selectFinancialChargesV1 = (composition, policyRef) => {
115
- if (!isFinancialChargeCompositionV1(composition))
116
- throw new TypeError('Invalid financial charge composition.');
117
- const policy = resolveFinancialChargeInclusionPolicyV1(policyRef);
118
- if (!policy)
119
- throw new TypeError('Unregistered financial charge-inclusion policy.');
120
- const partition = (role) => composition.buckets.filter(bucket => sourcesFor(policy, role).includes(bucket.chargeSource));
121
- const included = partition('include');
122
- const excluded = partition('exclude');
123
- const withheld = partition('withhold');
124
- if (included.length + excluded.length + withheld.length !== composition.buckets.length) {
125
- throw new TypeError('Financial charge-inclusion policy does not partition every charge source.');
126
- }
127
- const includedAmount = sumBuckets(included);
128
- const excludedAmount = sumBuckets(excluded);
129
- const withheldAmount = sumBuckets(withheld);
130
- const forecastEligibleAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'recurring' || bucket.chargeRecurrence === 'usage-based'));
131
- const oneTimeAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'one-time'));
132
- const unknownRecurrenceAmount = sumBuckets(included.filter(bucket => bucket.chargeRecurrence === 'unknown'));
133
- const reasonCodes = [];
134
- if (withheldAmount !== '0')
135
- reasonCodes.push('charge-source-unknown');
136
- const forecastReasonCodes = [...reasonCodes];
137
- if (unknownRecurrenceAmount !== '0')
138
- forecastReasonCodes.push('charge-recurrence-unknown');
139
- const result = {
140
- status: withheldAmount === '0' ? 'available' : 'partial',
141
- includedAmount,
142
- excludedAmount,
143
- withheldAmount,
144
- forecastEligibleAmount,
145
- oneTimeAmount,
146
- unknownRecurrenceAmount,
147
- forecastStatus: withheldAmount === '0' && unknownRecurrenceAmount === '0' ? 'available' : 'partial',
148
- currencyCode: composition.accountingCurrencyCode,
149
- ...(reasonCodes.length === 0 ? {} : { reasonCodes: reasonCodes }),
150
- ...(forecastReasonCodes.length === 0
151
- ? {}
152
- : { forecastReasonCodes: forecastReasonCodes }),
153
- };
154
- return result;
155
- };