@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
@@ -6,7 +6,6 @@ import { FINANCIAL_DATAFLOW_LIMITS_V1, canonicalizeFinancialDataflowJsonV1, hasF
6
6
  import { isCurrentSpendCompositionV1 } from './financialDataflowValidation.js';
7
7
  const MAX_POINTS = 3660;
8
8
  const MAX_GAPS = 3660;
9
- const MAX_REFERENCE_COMPOSITIONS = 2;
10
9
  const isReasonCodes = (value) => Array.isArray(value) &&
11
10
  value.length > 0 &&
12
11
  value.length <= FINANCIAL_DATAFLOW_LIMITS_V1.maximumReasonCodes &&
@@ -30,7 +29,6 @@ const comparableCoordinate = (value) => ({
30
29
  estimateLens: value.estimateLens,
31
30
  requestedCurrencyCode: value.requestedCurrencyCode,
32
31
  accountingCurrency: value.accountingCurrency,
33
- chargeInclusionPolicyRef: value.chargeInclusionPolicyRef,
34
32
  });
35
33
  const hasSameFinancialDimensions = (left, right) => canonicalizeFinancialDataflowJsonV1(comparableCoordinate(left)) === canonicalizeFinancialDataflowJsonV1(comparableCoordinate(right));
36
34
  const hasComparableTrendPeriods = (current, comparison) => {
@@ -44,10 +42,6 @@ const hasComparableTrendPeriods = (current, comparison) => {
44
42
  return (intervalDayCount(current.period.requested.startDate, current.period.requested.endDateExclusive) ===
45
43
  intervalDayCount(comparison.period.requested.startDate, comparison.period.requested.endDateExclusive));
46
44
  };
47
- const periodContains = (container, target) => container.period.requested.dateBasis === target.period.requested.dateBasis &&
48
- container.period.requested.timeZone === target.period.requested.timeZone &&
49
- container.period.requested.startDate <= target.period.requested.startDate &&
50
- container.period.requested.endDateExclusive >= target.period.requested.endDateExclusive;
51
45
  const isInputIdentity = (value) => {
52
46
  if (!isFinancialDataflowRecordV1(value) ||
53
47
  !hasFinancialDataflowExactFieldsV1(value, [
@@ -56,7 +50,6 @@ const isInputIdentity = (value) => {
56
50
  'coordinate',
57
51
  'granularity',
58
52
  'producerGenerationId',
59
- 'referenceCompositions',
60
53
  'points',
61
54
  'gaps',
62
55
  'coverage',
@@ -66,12 +59,9 @@ const isInputIdentity = (value) => {
66
59
  value.contractVersion !== FINANCIAL_ANALYTICS_INPUT_CONTRACT_VERSION_V1 ||
67
60
  !isFinancialDataflowCoordinateV1(value.coordinate) ||
68
61
  value.coordinate.periodRole !== 'analytics-input' ||
69
- value.coordinate.period.windowKind !== 'analytics-history' ||
70
62
  value.coordinate.accountingCurrency.status !== 'resolved' ||
71
63
  value.granularity !== 'daily' ||
72
64
  !isFinancialDataflowIdentityV1(value.producerGenerationId) ||
73
- !Array.isArray(value.referenceCompositions) ||
74
- value.referenceCompositions.length > MAX_REFERENCE_COMPOSITIONS ||
75
65
  !Array.isArray(value.points) ||
76
66
  value.points.length > MAX_POINTS ||
77
67
  !Array.isArray(value.gaps) ||
@@ -81,16 +71,6 @@ const isInputIdentity = (value) => {
81
71
  !isFinancialDataflowIdentityV1(value.algorithmVersion)) {
82
72
  return false;
83
73
  }
84
- const coordinate = value.coordinate;
85
- const referenceCompositions = value.referenceCompositions;
86
- if (!referenceCompositions.every(isCurrentSpendCompositionV1))
87
- return false;
88
- const referenceRoles = referenceCompositions.map(composition => composition.coordinate.periodRole);
89
- if (new Set(referenceCompositions.map(composition => composition.compositionId)).size !== referenceCompositions.length ||
90
- new Set(referenceRoles).size !== referenceRoles.length ||
91
- referenceCompositions.some(composition => !hasSameFinancialDimensions(coordinate, composition.coordinate))) {
92
- return false;
93
- }
94
74
  const gaps = value.gaps;
95
75
  const requested = value.coordinate.period.requested;
96
76
  const dates = new Set();
@@ -106,47 +86,16 @@ const isInputIdentity = (value) => {
106
86
  return false;
107
87
  }
108
88
  dates.add(point.date);
109
- const pointForecastFields = [
110
- point.forecastEligibleAmount,
111
- point.oneTimeAmount,
112
- point.unknownRecurrenceAmount,
113
- ];
114
- if (!pointForecastFields.every(amount => isCanonicalExactMoney({ amount, currencyCode: coordinate.accountingCurrency.currencyCode })) ||
115
- (point.forecastStatus !== 'available' && point.forecastStatus !== 'partial') ||
116
- (point.forecastStatus === 'available'
117
- ? point.forecastReasonCodes !== undefined || point.unknownRecurrenceAmount !== '0'
118
- : !isReasonCodes(point.forecastReasonCodes))) {
119
- return false;
120
- }
121
89
  if (point.status === 'available') {
122
- if (!hasFinancialDataflowExactFieldsV1(point, [
123
- 'date',
124
- 'compositionId',
125
- 'status',
126
- 'amount',
127
- 'forecastEligibleAmount',
128
- 'oneTimeAmount',
129
- 'unknownRecurrenceAmount',
130
- 'forecastStatus',
131
- ], ['forecastReasonCodes']) ||
132
- !isCanonicalExactMoney({ amount: point.amount, currencyCode: coordinate.accountingCurrency.currencyCode }))
90
+ if (!hasFinancialDataflowExactFieldsV1(point, ['date', 'compositionId', 'status', 'amount']) ||
91
+ !isCanonicalExactMoney({ amount: point.amount, currencyCode: 'AUD' }))
133
92
  return false;
134
93
  availableDayCount += 1;
135
94
  }
136
95
  else {
137
96
  if (point.status !== 'partial' ||
138
- !hasFinancialDataflowExactFieldsV1(point, [
139
- 'date',
140
- 'compositionId',
141
- 'status',
142
- 'knownAmount',
143
- 'reasonCodes',
144
- 'forecastEligibleAmount',
145
- 'oneTimeAmount',
146
- 'unknownRecurrenceAmount',
147
- 'forecastStatus',
148
- ], ['forecastReasonCodes']) ||
149
- !isCanonicalExactMoney({ amount: point.knownAmount, currencyCode: coordinate.accountingCurrency.currencyCode }) ||
97
+ !hasFinancialDataflowExactFieldsV1(point, ['date', 'compositionId', 'status', 'knownAmount', 'reasonCodes']) ||
98
+ !isCanonicalExactMoney({ amount: point.knownAmount, currencyCode: 'AUD' }) ||
150
99
  !isReasonCodes(point.reasonCodes))
151
100
  return false;
152
101
  partialDayCount += 1;
@@ -194,7 +143,9 @@ const isInputIdentity = (value) => {
194
143
  value.coverage.partialDayCount === partialDayCount &&
195
144
  value.coverage.unavailableDayCount === unavailableDayCount &&
196
145
  availableDayCount + partialDayCount + unavailableDayCount === expectedDays &&
197
- cursor === requested.endDateExclusive);
146
+ cursor === requested.endDateExclusive &&
147
+ value.coordinate.period.gaps.length === gaps.length &&
148
+ value.coordinate.period.gaps.every(periodGap => gaps.some(gap => gap.startDate === periodGap.startDate && gap.endDateExclusive === periodGap.endDateExclusive)));
198
149
  };
199
150
  export const canonicalizeFinancialAnalyticsInputIdentityV1 = (value) => {
200
151
  if (!isFinancialDataflowValueWithinLimitsV1(value) || !isInputIdentity(value)) {
@@ -203,16 +154,9 @@ export const canonicalizeFinancialAnalyticsInputIdentityV1 = (value) => {
203
154
  return canonicalizeFinancialDataflowJsonV1({
204
155
  ...value,
205
156
  coordinate: { ...value.coordinate, providerAccountRefs: [...value.coordinate.providerAccountRefs].sort() },
206
- referenceCompositions: [...value.referenceCompositions].sort((left, right) => left.compositionId.localeCompare(right.compositionId)),
207
157
  points: [...value.points]
208
158
  .sort((left, right) => left.date.localeCompare(right.date))
209
- .map(point => ({
210
- ...point,
211
- ...(point.status === 'partial' ? { reasonCodes: [...point.reasonCodes].sort() } : {}),
212
- ...(point.forecastReasonCodes === undefined
213
- ? {}
214
- : { forecastReasonCodes: [...point.forecastReasonCodes].sort() }),
215
- })),
159
+ .map(point => (point.status === 'partial' ? { ...point, reasonCodes: [...point.reasonCodes].sort() } : point)),
216
160
  gaps: [...value.gaps]
217
161
  .sort((left, right) => `${left.startDate}\u0000${left.endDateExclusive}`.localeCompare(`${right.startDate}\u0000${right.endDateExclusive}`))
218
162
  .map(gap => ({ ...gap, reasonCodes: [...gap.reasonCodes].sort() })),
@@ -229,18 +173,6 @@ export const isFinancialAnalyticsInputSeriesV1 = (value) => {
229
173
  };
230
174
  const nextCalendarDate = (value) => new Date(Date.parse(`${value}T00:00:00.000Z`) + 86400000).toISOString().slice(0, 10);
231
175
  const hasSameReasonCodes = (left, right) => left.length === right.length && left.every(reasonCode => right.includes(reasonCode));
232
- const hasSameForecastSlice = (point, composition) => {
233
- const selection = composition.chargeSelection;
234
- return selection !== undefined &&
235
- point.forecastEligibleAmount === selection.forecastEligibleAmount &&
236
- point.oneTimeAmount === selection.oneTimeAmount &&
237
- point.unknownRecurrenceAmount === selection.unknownRecurrenceAmount &&
238
- point.forecastStatus === selection.forecastStatus &&
239
- (point.forecastReasonCodes === undefined
240
- ? selection.forecastReasonCodes === undefined
241
- : selection.forecastReasonCodes !== undefined &&
242
- hasSameReasonCodes(point.forecastReasonCodes, selection.forecastReasonCodes));
243
- };
244
176
  /** Proves that every analytics point is an exact projection of its referenced daily composition. */
245
177
  export const isFinancialAnalyticsInputSeriesCompatibleV1 = (input, dailyCompositions) => {
246
178
  if (!isFinancialAnalyticsInputSeriesV1(input) ||
@@ -256,7 +188,6 @@ export const isFinancialAnalyticsInputSeriesCompatibleV1 = (input, dailyComposit
256
188
  return input.points.every(point => {
257
189
  const composition = compositionById.get(point.compositionId);
258
190
  if (composition === undefined ||
259
- composition.amount.status === 'unavailable' ||
260
191
  composition.coordinate.periodRole !== 'current-spend' ||
261
192
  composition.coordinate.period.windowKind !== 'daily' ||
262
193
  composition.coordinate.period.requested.startDate !== point.date ||
@@ -265,14 +196,11 @@ export const isFinancialAnalyticsInputSeriesCompatibleV1 = (input, dailyComposit
265
196
  return false;
266
197
  }
267
198
  if (point.status === 'available') {
268
- return (composition.amount.status === 'available' &&
269
- point.amount === composition.amount.amount &&
270
- hasSameForecastSlice(point, composition));
199
+ return composition.amount.status === 'available' && point.amount === composition.amount.amount;
271
200
  }
272
201
  return (composition.amount.status === 'partial' &&
273
202
  point.knownAmount === composition.amount.knownAmount &&
274
- hasSameReasonCodes(point.reasonCodes, composition.amount.reasonCodes) &&
275
- hasSameForecastSlice(point, composition));
203
+ hasSameReasonCodes(point.reasonCodes, composition.amount.reasonCodes));
276
204
  });
277
205
  };
278
206
  const isResult = (value, currency) => {
@@ -306,6 +234,7 @@ const isResult = (value, currency) => {
306
234
  return (value.kind === 'anomaly' &&
307
235
  hasFinancialDataflowExactFieldsV1(value, ['kind', 'events']) &&
308
236
  Array.isArray(value.events) &&
237
+ value.events.length > 0 &&
309
238
  value.events.length <= MAX_POINTS &&
310
239
  value.events.every(event => {
311
240
  if (!isFinancialDataflowRecordV1(event) ||
@@ -354,9 +283,9 @@ const isProjectionIdentity = (value) => {
354
283
  return false;
355
284
  const currency = coordinateCurrency(value.coordinate);
356
285
  return (isFinancialDataflowHashV1(value.analyticsInputId) &&
357
- isFinancialDataflowHashV1(value.currentSpendCompositionId) &&
358
286
  currency !== undefined &&
359
- isResult(value.result, currency));
287
+ isResult(value.result, currency) &&
288
+ (value.result.kind === 'anomaly' || isFinancialDataflowHashV1(value.currentSpendCompositionId)));
360
289
  };
361
290
  export const canonicalizeFinancialAnalyticsProjectionIdentityV1 = (value) => {
362
291
  if (!isFinancialDataflowValueWithinLimitsV1(value) || !isProjectionIdentity(value)) {
@@ -405,24 +334,17 @@ export const isFinancialAnalyticsProjectionCompatibleV1 = (projection, input, cu
405
334
  hasSameFinancialDimensions(projection.coordinate, currentSpendComposition.coordinate)));
406
335
  }
407
336
  if (projection.result.kind === 'anomaly') {
408
- if (!isCurrentSpendCompositionV1(currentSpendComposition) ||
409
- projection.currentSpendCompositionId !== currentSpendComposition.compositionId ||
410
- !hasSameFinancialDimensions(projection.coordinate, currentSpendComposition.coordinate) ||
411
- canonicalizeFinancialDataflowCoordinateV1({ ...projection.coordinate, periodRole: 'current-spend' }) !==
412
- canonicalizeFinancialDataflowCoordinateV1(currentSpendComposition.coordinate) ||
413
- !periodContains(input.coordinate, projection.coordinate)) {
337
+ if (projection.currentSpendCompositionId !== undefined &&
338
+ (!isCurrentSpendCompositionV1(currentSpendComposition) ||
339
+ projection.currentSpendCompositionId !== currentSpendComposition.compositionId ||
340
+ !hasSameFinancialDimensions(projection.coordinate, currentSpendComposition.coordinate))) {
414
341
  return false;
415
342
  }
416
343
  const pointsByDate = new Map(input.points.map(point => [point.date, point]));
417
344
  const eventDates = new Set();
418
- const targetPeriod = projection.coordinate.period.requested;
419
345
  return projection.result.events.every(event => {
420
346
  const point = pointsByDate.get(event.date);
421
- if (event.date < targetPeriod.startDate ||
422
- event.date >= targetPeriod.endDateExclusive ||
423
- point === undefined ||
424
- eventDates.has(event.date) ||
425
- (projection.status === 'available' && point.status !== 'available'))
347
+ if (point === undefined || eventDates.has(event.date) || (projection.status === 'available' && point.status !== 'available'))
426
348
  return false;
427
349
  eventDates.add(event.date);
428
350
  const observedAmount = point.status === 'available' ? point.amount : point.knownAmount;
@@ -472,11 +394,7 @@ export const isFinancialAnalyticsProjectionCompatibleV1 = (projection, input, cu
472
394
  canonicalizeFinancialDataflowCoordinateV1(currentSpendComposition.coordinate)) {
473
395
  return false;
474
396
  }
475
- if (projection.status === 'available' &&
476
- currentSpendComposition.amount.status !== 'available' &&
477
- !(currentSpendComposition.amount.status === 'partial' &&
478
- currentSpendComposition.amount.reasonCodes.length === 1 &&
479
- currentSpendComposition.amount.reasonCodes[0] === 'coverage-incomplete'))
397
+ if (projection.status === 'available' && currentSpendComposition.amount.status !== 'available')
480
398
  return false;
481
399
  if (currentSpendComposition.amount.status === 'unavailable')
482
400
  return false;
@@ -5,8 +5,6 @@ import { isFinancialEvidenceAssessmentV1 } from './financialEvidenceAssessmentVa
5
5
  import { formatExactDecimalValue, multiplyExactDecimalValues, parseCanonicalDecimal, sumCanonicalDecimals } from '../common/exactDecimal.js';
6
6
  import { isFinancialBaselinePeriodV2, isFinancialEvidenceBundleV1, isFinancialScopeBaselineEnvelopeV2 } from './financialScopeBaselineValidation.js';
7
7
  import { isFinancialAuthorityComponentDescriptorV1, isFinancialDisplayRollupV1 } from './financialDisplayRollupValidation.js';
8
- import { AZURE_BILLED_ALL_CHARGES_POLICY_V1 } from './financialChargeComposition.js';
9
- import { isFinancialChargeCompositionV1 } from './financialChargeCompositionValidation.js';
10
8
  const SHA256_ID = /^sha256:[0-9a-f]{64}$/;
11
9
  const CURRENCY = /^[A-Z]{3}$/;
12
10
  const AZURE_RESOURCE_TYPE = /^[a-z0-9.-]+\/[a-z0-9._/-]+$/;
@@ -57,7 +55,6 @@ const canonicalCoordinatePreimage = (value) => ({
57
55
  ownerBaselines: [...value.ownerBaselines].sort((left, right) => left.scopeId.localeCompare(right.scopeId)),
58
56
  residualBaseline: value.residualBaseline,
59
57
  aggregateBaseline: value.aggregateBaseline,
60
- chargeCompositions: [...value.chargeCompositions].sort((left, right) => left.baselineId.localeCompare(right.baselineId)),
61
58
  componentDescriptors: [...value.componentDescriptors].sort((left, right) => `${left.baselineId}\u0000${left.componentId}`.localeCompare(`${right.baselineId}\u0000${right.componentId}`)),
62
59
  displayRollups: [...value.displayRollups].sort((left, right) => left.displayRollupId.localeCompare(right.displayRollupId)),
63
60
  projections: [...value.projections].sort((left, right) => left.scenarioId.localeCompare(right.scenarioId)),
@@ -98,7 +95,6 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
98
95
  'ownerBaselines',
99
96
  'residualBaseline',
100
97
  'aggregateBaseline',
101
- 'chargeCompositions',
102
98
  'componentDescriptors',
103
99
  'displayRollups',
104
100
  'projections',
@@ -117,9 +113,6 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
117
113
  !value.ownerBaselines.every(isFinancialScopeBaselineEnvelopeV2) ||
118
114
  !isFinancialScopeBaselineEnvelopeV2(value.residualBaseline) ||
119
115
  !isFinancialScopeBaselineEnvelopeV2(value.aggregateBaseline) ||
120
- !Array.isArray(value.chargeCompositions) ||
121
- value.chargeCompositions.length > 20001 ||
122
- !value.chargeCompositions.every(isFinancialChargeCompositionV1) ||
123
116
  !Array.isArray(value.componentDescriptors) ||
124
117
  value.componentDescriptors.length > 20000 ||
125
118
  !value.componentDescriptors.every(isFinancialAuthorityComponentDescriptorV1) ||
@@ -180,38 +173,6 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
180
173
  }
181
174
  if (coordinate.residualBaseline.status === 'available' && !bundleIds.has(coordinate.residualBaseline.evidenceBundleId))
182
175
  return false;
183
- const composableBaselines = [...coordinate.ownerBaselines, coordinate.residualBaseline].filter((baseline) => baseline.status === 'available' && baseline.baselineKind === 'owner');
184
- const chargeCompositionByBaselineId = new Map(coordinate.chargeCompositions.map(composition => [composition.baselineId, composition]));
185
- if (chargeCompositionByBaselineId.size !== coordinate.chargeCompositions.length ||
186
- coordinate.chargeCompositions.length !== composableBaselines.length)
187
- return false;
188
- for (const baseline of composableBaselines) {
189
- const composition = chargeCompositionByBaselineId.get(baseline.baselineId);
190
- if (composition === undefined ||
191
- canonicalText(baseline.chargeInclusionPolicyRef) !== canonicalText(AZURE_BILLED_ALL_CHARGES_POLICY_V1.policyRef) ||
192
- composition.ownerScopeId !== baseline.scopeId ||
193
- periodText(composition.period) !== periodText(baseline.period) ||
194
- composition.costBasis !== baseline.costBasis ||
195
- composition.estimateLens !== baseline.estimateLens ||
196
- composition.accountingCurrencyCode !== baseline.total.currencyCode ||
197
- composition.reconciliation.sourceTotal !== baseline.total.amount)
198
- return false;
199
- const baselineComponentById = new Map(baseline.components.map(component => [component.componentId, component]));
200
- const partitionedComponentIds = composition.buckets.flatMap(bucket => bucket.componentIds);
201
- if (partitionedComponentIds.length !== baseline.components.length ||
202
- new Set(partitionedComponentIds).size !== partitionedComponentIds.length ||
203
- partitionedComponentIds.some(componentId => !baselineComponentById.has(componentId)))
204
- return false;
205
- for (const bucket of composition.buckets) {
206
- try {
207
- if (formatExactDecimalValue(sumCanonicalDecimals(bucket.componentIds.map(componentId => baselineComponentById.get(componentId).amount))) !== bucket.amount)
208
- return false;
209
- }
210
- catch {
211
- return false;
212
- }
213
- }
214
- }
215
176
  const financialOwnerBaselines = coordinate.ownerBaselines.filter(baseline => financialRoleByScope.get(baseline.scopeId) === 'owner');
216
177
  const availableMembers = [...financialOwnerBaselines, coordinate.residualBaseline]
217
178
  .filter(baseline => baseline.status === 'available')
@@ -295,7 +256,7 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
295
256
  (projection.targetEvidenceBundleId !== undefined && !bundleIds.has(projection.targetEvidenceBundleId)) ||
296
257
  (targetAssessment !== undefined &&
297
258
  (targetAssessment.request.scopeId !== projection.scopeId ||
298
- (projection.status === 'available' && targetAssessment.result !== 'available') ||
259
+ targetAssessment.result !== 'available' ||
299
260
  targetAssessment.evidenceBundleId !== projection.targetEvidenceBundleId)) ||
300
261
  (projection.baselineId !== undefined && (owner.status !== 'available' || projection.baselineId !== owner.baselineId)) ||
301
262
  (projection.status === 'available' && owner.status !== 'available'))
@@ -367,15 +328,6 @@ const isCoordinate = (value, coveredScopeIds, financialRoleByScope, providerAcco
367
328
  return false;
368
329
  continue;
369
330
  }
370
- if (projection.operationKind === 'replace-quantity-and-rate') {
371
- if (!('targetQuantity' in applied) || !('targetRate' in applied))
372
- return false;
373
- if (applied.targetQuantity.unit !== applied.targetRate.quantityUnit ||
374
- applied.targetRate.currencyCode !== projection.accountingCurrencyCode ||
375
- formatExactDecimalValue(multiplyExactDecimalValues(parseCanonicalDecimal(applied.targetQuantity.amount), parseCanonicalDecimal(applied.targetRate.amount))) !== applied.targetAmount)
376
- return false;
377
- continue;
378
- }
379
331
  if (!('sourceRate' in applied) || !('targetQuantity' in applied) || component.effectiveRate === undefined)
380
332
  return false;
381
333
  if (applied.sourceRate.amount !== component.effectiveRate.amount ||
@@ -543,225 +495,3 @@ export const isFinancialAuthorityViewV1 = (value) => {
543
495
  export const isFinancialAuthorityViewBoundToArtifactGenerationV1 = (value, expected) => isFinancialAuthorityViewV1(value) &&
544
496
  value.artifactGeneration.runId === expected.runId &&
545
497
  value.artifactGeneration.generatedAt === expected.generatedAt;
546
- const isSameProviderAccountSet = (left, right) => {
547
- if (left.length !== right.length)
548
- return false;
549
- const sortedLeft = [...left].sort();
550
- const sortedRight = [...right].sort();
551
- return sortedLeft.every((value, index) => value === sortedRight[index]);
552
- };
553
- const isResourceProjectionCoordinate = (value, projection, assessmentById, bundleIds) => {
554
- if (!isRecord(value) ||
555
- !hasExactFields(value, [
556
- 'coordinateId',
557
- 'periodRole',
558
- 'period',
559
- 'costBasis',
560
- 'estimateLens',
561
- 'ownerBaseline',
562
- 'componentDescriptors',
563
- 'displayRollups',
564
- 'projections',
565
- ], [
566
- 'requestedCurrencyCode',
567
- 'displayMemberBaselines',
568
- 'chargeComposition',
569
- 'displayMemberChargeCompositions',
570
- ]) ||
571
- !isHash(value.coordinateId) ||
572
- (value.periodRole !== 'current' && value.periodRole !== 'previous') ||
573
- !isFinancialBaselinePeriodV2(value.period) ||
574
- typeof value.costBasis !== 'string' ||
575
- !COST_BASES.has(value.costBasis) ||
576
- typeof value.estimateLens !== 'string' ||
577
- !ESTIMATE_LENSES.has(value.estimateLens) ||
578
- (value.requestedCurrencyCode !== undefined && (typeof value.requestedCurrencyCode !== 'string' || !CURRENCY.test(value.requestedCurrencyCode))) ||
579
- !isFinancialScopeBaselineEnvelopeV2(value.ownerBaseline) ||
580
- (value.displayMemberBaselines !== undefined &&
581
- (!Array.isArray(value.displayMemberBaselines) ||
582
- value.displayMemberBaselines.length > 20000 ||
583
- !value.displayMemberBaselines.every(isFinancialScopeBaselineEnvelopeV2))) ||
584
- (value.chargeComposition !== undefined && !isFinancialChargeCompositionV1(value.chargeComposition)) ||
585
- (value.displayMemberChargeCompositions !== undefined &&
586
- (!Array.isArray(value.displayMemberChargeCompositions) ||
587
- value.displayMemberChargeCompositions.length > 20000 ||
588
- !value.displayMemberChargeCompositions.every(isFinancialChargeCompositionV1))) ||
589
- !Array.isArray(value.componentDescriptors) ||
590
- value.componentDescriptors.length > 20000 ||
591
- !value.componentDescriptors.every(isFinancialAuthorityComponentDescriptorV1) ||
592
- !Array.isArray(value.displayRollups) ||
593
- value.displayRollups.length > 20000 ||
594
- !value.displayRollups.every(isFinancialDisplayRollupV1) ||
595
- !Array.isArray(value.projections) ||
596
- value.projections.length > 20000 ||
597
- !value.projections.every(isFinancialProjectionEnvelopeV1))
598
- return false;
599
- const coordinate = value;
600
- const baseline = coordinate.ownerBaseline;
601
- const displayMemberBaselines = coordinate.displayMemberBaselines ?? [];
602
- const displayMemberChargeCompositions = coordinate.displayMemberChargeCompositions ?? [];
603
- const assessment = assessmentById.get(baseline.assessmentId);
604
- if (normalizeScopeId(baseline.scopeId) !== projection.scopeId ||
605
- baseline.costBasis !== coordinate.costBasis ||
606
- baseline.estimateLens !== coordinate.estimateLens ||
607
- periodText(baseline.period) !== periodText(coordinate.period) ||
608
- baseline.requestedCurrencyCode !== coordinate.requestedCurrencyCode ||
609
- !isSameProviderAccountSet(baseline.providerAccountRefs, projection.providerAccountRefs) ||
610
- !assessment ||
611
- assessment.request.scopeId !== baseline.scopeId ||
612
- assessment.request.scopeKind !== baseline.scopeKind ||
613
- assessment.result !== baseline.status)
614
- return false;
615
- if (projection.financialRole === 'display-only' && (baseline.status !== 'unavailable' || baseline.unavailableReason !== 'unsupported-scope')) {
616
- return false;
617
- }
618
- if (projection.financialRole === 'unclassified' && (baseline.status !== 'unavailable' || baseline.unavailableReason !== 'ownership-unresolved')) {
619
- return false;
620
- }
621
- if (baseline.status !== 'available' || baseline.baselineKind !== 'owner') {
622
- return (displayMemberBaselines.length === 0 &&
623
- coordinate.chargeComposition === undefined &&
624
- displayMemberChargeCompositions.length === 0 &&
625
- coordinate.componentDescriptors.length === 0 &&
626
- coordinate.displayRollups.length === 0 &&
627
- coordinate.projections.every(projectionValue => normalizeScopeId(projectionValue.scopeId) === projection.scopeId) &&
628
- new Set(coordinate.projections.map(projectionValue => projectionValue.scenarioId)).size === coordinate.projections.length);
629
- }
630
- if (baseline.scopeKind !== 'canonical-resource-owner' && baseline.scopeKind !== 'composite-resource')
631
- return false;
632
- if (!bundleIds.has(baseline.evidenceBundleId) || assessment.evidenceBundleId !== baseline.evidenceBundleId)
633
- return false;
634
- const availableDisplayMemberBaselines = displayMemberBaselines.filter((candidate) => candidate.status === 'available' && candidate.baselineKind === 'owner');
635
- if (availableDisplayMemberBaselines.length !== displayMemberBaselines.length)
636
- return false;
637
- const projectedBaselines = [baseline, ...availableDisplayMemberBaselines];
638
- if (new Set(projectedBaselines.map(candidate => candidate.baselineId)).size !== projectedBaselines.length ||
639
- displayMemberBaselines.some(candidate => {
640
- if (candidate.status !== 'available' ||
641
- candidate.baselineKind !== 'owner' ||
642
- (candidate.scopeKind !== 'canonical-resource-owner' && candidate.scopeKind !== 'composite-resource') ||
643
- candidate.costBasis !== coordinate.costBasis ||
644
- candidate.estimateLens !== coordinate.estimateLens ||
645
- periodText(candidate.period) !== periodText(coordinate.period) ||
646
- candidate.requestedCurrencyCode !== coordinate.requestedCurrencyCode ||
647
- candidate.total.currencyCode !== baseline.total.currencyCode ||
648
- !isSameProviderAccountSet(candidate.providerAccountRefs, projection.providerAccountRefs) ||
649
- !bundleIds.has(candidate.evidenceBundleId))
650
- return true;
651
- const candidateAssessment = assessmentById.get(candidate.assessmentId);
652
- return (!candidateAssessment ||
653
- candidateAssessment.request.scopeId !== candidate.scopeId ||
654
- candidateAssessment.request.scopeKind !== candidate.scopeKind ||
655
- candidateAssessment.result !== candidate.status ||
656
- candidateAssessment.evidenceBundleId !== candidate.evidenceBundleId);
657
- }))
658
- return false;
659
- const compositions = [coordinate.chargeComposition, ...displayMemberChargeCompositions];
660
- if (compositions.some(candidate => candidate === undefined))
661
- return false;
662
- const compositionByBaselineId = new Map(compositions.map(candidate => [candidate.baselineId, candidate]));
663
- if (compositions.length !== projectedBaselines.length || compositionByBaselineId.size !== projectedBaselines.length)
664
- return false;
665
- for (const projectedBaseline of projectedBaselines) {
666
- const composition = compositionByBaselineId.get(projectedBaseline.baselineId);
667
- if (!composition ||
668
- composition.baselineId !== projectedBaseline.baselineId ||
669
- normalizeScopeId(composition.ownerScopeId) !== normalizeScopeId(projectedBaseline.scopeId) ||
670
- periodText(composition.period) !== periodText(projectedBaseline.period) ||
671
- composition.costBasis !== projectedBaseline.costBasis ||
672
- composition.estimateLens !== projectedBaseline.estimateLens ||
673
- composition.accountingCurrencyCode !== projectedBaseline.total.currencyCode ||
674
- composition.reconciliation.sourceTotal !== projectedBaseline.total.amount)
675
- return false;
676
- }
677
- const composition = coordinate.chargeComposition;
678
- if (!composition ||
679
- composition.baselineId !== baseline.baselineId ||
680
- normalizeScopeId(composition.ownerScopeId) !== projection.scopeId ||
681
- periodText(composition.period) !== periodText(baseline.period) ||
682
- composition.costBasis !== baseline.costBasis ||
683
- composition.estimateLens !== baseline.estimateLens ||
684
- composition.accountingCurrencyCode !== baseline.total.currencyCode ||
685
- composition.reconciliation.sourceTotal !== baseline.total.amount)
686
- return false;
687
- const componentKeys = new Set(projectedBaselines.flatMap(projectedBaseline => projectedBaseline.components.map(component => `${projectedBaseline.baselineId}\u0000${component.componentId}`)));
688
- const ownerComponentKeys = new Set(baseline.components.map(component => `${baseline.baselineId}\u0000${component.componentId}`));
689
- const descriptorKeys = coordinate.componentDescriptors.map(descriptor => `${descriptor.baselineId}\u0000${descriptor.componentId}`);
690
- if (descriptorKeys.length !== componentKeys.size ||
691
- new Set(descriptorKeys).size !== descriptorKeys.length ||
692
- descriptorKeys.some(key => !componentKeys.has(key)) ||
693
- coordinate.displayRollups.some(rollup => normalizeScopeId(rollup.displayScopeId) !== projection.scopeId ||
694
- rollup.members.some(member => !componentKeys.has(`${member.baselineId}\u0000${member.componentId}`))) ||
695
- coordinate.projections.some(projectionValue => normalizeScopeId(projectionValue.scopeId) !== projection.scopeId))
696
- return false;
697
- const rolledUpKeys = coordinate.displayRollups.flatMap(rollup => rollup.members.map(member => `${member.baselineId}\u0000${member.componentId}`));
698
- return (ownerComponentKeys.size > 0 &&
699
- new Set(rolledUpKeys).size === rolledUpKeys.length &&
700
- rolledUpKeys.every(key => componentKeys.has(key)) &&
701
- [...ownerComponentKeys].every(key => rolledUpKeys.includes(key)) &&
702
- [...componentKeys].every(key => rolledUpKeys.includes(key)) &&
703
- new Set(coordinate.projections.map(projectionValue => projectionValue.scenarioId)).size === coordinate.projections.length);
704
- };
705
- /** Strictly validates one bounded, non-additive resource projection without requiring the full authority ledger. */
706
- export const isFinancialAuthorityResourceProjectionV1 = (value) => {
707
- if (!isRecord(value) ||
708
- !hasExactFields(value, [
709
- 'contractVersion',
710
- 'authorityId',
711
- 'provider',
712
- 'providerAccountRefs',
713
- 'artifactGeneration',
714
- 'billingGenerationId',
715
- 'resourceType',
716
- 'financialRole',
717
- 'scopeId',
718
- 'evidenceBundles',
719
- 'evidenceAssessments',
720
- 'coordinates',
721
- ]) ||
722
- value.contractVersion !== 'financial-authority-resource-projection/v1' ||
723
- !isHash(value.authorityId) ||
724
- value.provider !== 'azure' ||
725
- !Array.isArray(value.providerAccountRefs) ||
726
- value.providerAccountRefs.length === 0 ||
727
- value.providerAccountRefs.length > 64 ||
728
- !value.providerAccountRefs.every(isIdentity) ||
729
- new Set(value.providerAccountRefs).size !== value.providerAccountRefs.length ||
730
- !isRecord(value.artifactGeneration) ||
731
- !hasExactFields(value.artifactGeneration, ['runId', 'generatedAt']) ||
732
- !isIdentity(value.artifactGeneration.runId) ||
733
- !isIsoInstant(value.artifactGeneration.generatedAt) ||
734
- !isIdentity(value.billingGenerationId) ||
735
- typeof value.resourceType !== 'string' ||
736
- !AZURE_RESOURCE_TYPE.test(value.resourceType) ||
737
- value.resourceType !== normalizeScopeId(value.resourceType) ||
738
- (value.financialRole !== 'owner' && value.financialRole !== 'display-only' && value.financialRole !== 'unclassified') ||
739
- !isIdentity(value.scopeId) ||
740
- value.scopeId !== normalizeScopeId(value.scopeId) ||
741
- !Array.isArray(value.evidenceBundles) ||
742
- value.evidenceBundles.length > 20000 ||
743
- !value.evidenceBundles.every(isFinancialEvidenceBundleV1) ||
744
- !Array.isArray(value.evidenceAssessments) ||
745
- value.evidenceAssessments.length > 20000 ||
746
- !value.evidenceAssessments.every(isFinancialEvidenceAssessmentV1) ||
747
- !Array.isArray(value.coordinates) ||
748
- value.coordinates.length === 0 ||
749
- value.coordinates.length > 128)
750
- return false;
751
- const projection = value;
752
- const bundleIds = new Set(projection.evidenceBundles.map(bundle => bundle.bundleId));
753
- const assessmentById = new Map(projection.evidenceAssessments.map(assessment => [assessment.assessmentId, assessment]));
754
- const projectedScopeIds = new Set([
755
- projection.scopeId,
756
- ...projection.coordinates.flatMap(coordinate => (coordinate.displayMemberBaselines ?? []).map(baseline => normalizeScopeId(baseline.scopeId))),
757
- ]);
758
- if (bundleIds.size !== projection.evidenceBundles.length || assessmentById.size !== projection.evidenceAssessments.length)
759
- return false;
760
- if (projection.evidenceAssessments.some(assessment => (assessment.evidenceBundleId !== undefined && !bundleIds.has(assessment.evidenceBundleId)) ||
761
- !isSameProviderAccountSet(assessment.request.providerAccountRefs, projection.providerAccountRefs) ||
762
- !projectedScopeIds.has(normalizeScopeId(assessment.request.scopeId))) ||
763
- !projection.coordinates.every(coordinate => isResourceProjectionCoordinate(coordinate, projection, assessmentById, bundleIds)) ||
764
- new Set(projection.coordinates.map(coordinate => coordinate.coordinateId)).size !== projection.coordinates.length)
765
- return false;
766
- return true;
767
- };