@spottoai/types-package 1.0.2-beta.99 → 1.0.2-dev1138.2

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 (867) hide show
  1. package/README.md +139 -7
  2. package/dist/accounts/accounts.d.ts +532 -3
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js +122 -0
  5. package/dist/accounts/accounts.js.map +1 -1
  6. package/dist/accounts/azureSpSetup.d.ts +401 -0
  7. package/dist/accounts/azureSpSetup.d.ts.map +1 -0
  8. package/dist/{azure/costEstimation.js → accounts/azureSpSetup.js} +1 -1
  9. package/dist/accounts/azureSpSetup.js.map +1 -0
  10. package/dist/accounts/azureSpSetupDurable.d.ts +118 -0
  11. package/dist/accounts/azureSpSetupDurable.d.ts.map +1 -0
  12. package/dist/accounts/azureSpSetupDurable.js +3 -0
  13. package/dist/accounts/azureSpSetupDurable.js.map +1 -0
  14. package/dist/accounts/index.d.ts +4 -0
  15. package/dist/accounts/index.d.ts.map +1 -1
  16. package/dist/accounts/index.js +4 -0
  17. package/dist/accounts/index.js.map +1 -1
  18. package/dist/accounts/readPermissions.d.ts +76 -0
  19. package/dist/accounts/readPermissions.d.ts.map +1 -0
  20. package/dist/accounts/readPermissions.js +202 -0
  21. package/dist/accounts/readPermissions.js.map +1 -0
  22. package/dist/accounts/validation.d.ts +91 -0
  23. package/dist/accounts/validation.d.ts.map +1 -0
  24. package/dist/accounts/validation.js +3 -0
  25. package/dist/accounts/validation.js.map +1 -0
  26. package/dist/accounts/writePermissions.d.ts +36 -0
  27. package/dist/accounts/writePermissions.d.ts.map +1 -0
  28. package/dist/accounts/writePermissions.js +47 -0
  29. package/dist/accounts/writePermissions.js.map +1 -0
  30. package/dist/ai/index.d.ts +1018 -13
  31. package/dist/ai/index.d.ts.map +1 -1
  32. package/dist/ai/index.js +1 -0
  33. package/dist/ai/index.js.map +1 -1
  34. package/dist/assessments/artifact.d.ts +84 -0
  35. package/dist/assessments/artifact.d.ts.map +1 -0
  36. package/dist/assessments/artifact.js +3 -0
  37. package/dist/assessments/artifact.js.map +1 -0
  38. package/dist/assessments/catalogue.d.ts +53 -0
  39. package/dist/assessments/catalogue.d.ts.map +1 -0
  40. package/dist/assessments/catalogue.js +16 -0
  41. package/dist/assessments/catalogue.js.map +1 -0
  42. package/dist/assessments/common.d.ts +27 -0
  43. package/dist/assessments/common.d.ts.map +1 -0
  44. package/dist/assessments/common.js +3 -0
  45. package/dist/assessments/common.js.map +1 -0
  46. package/dist/assessments/evidence.d.ts +78 -0
  47. package/dist/assessments/evidence.d.ts.map +1 -0
  48. package/dist/assessments/evidence.js +3 -0
  49. package/dist/assessments/evidence.js.map +1 -0
  50. package/dist/assessments/export.d.ts +27 -0
  51. package/dist/assessments/export.d.ts.map +1 -0
  52. package/dist/assessments/export.js +3 -0
  53. package/dist/assessments/export.js.map +1 -0
  54. package/dist/assessments/index.d.ts +11 -0
  55. package/dist/assessments/index.d.ts.map +1 -0
  56. package/dist/assessments/index.js +27 -0
  57. package/dist/assessments/index.js.map +1 -0
  58. package/dist/assessments/queue.d.ts +20 -0
  59. package/dist/assessments/queue.d.ts.map +1 -0
  60. package/dist/assessments/queue.js +6 -0
  61. package/dist/assessments/queue.js.map +1 -0
  62. package/dist/assessments/review.d.ts +36 -0
  63. package/dist/assessments/review.d.ts.map +1 -0
  64. package/dist/assessments/review.js +3 -0
  65. package/dist/assessments/review.js.map +1 -0
  66. package/dist/assessments/run.d.ts +62 -0
  67. package/dist/assessments/run.d.ts.map +1 -0
  68. package/dist/assessments/run.js +3 -0
  69. package/dist/assessments/run.js.map +1 -0
  70. package/dist/assessments/sow.d.ts +30 -0
  71. package/dist/assessments/sow.d.ts.map +1 -0
  72. package/dist/assessments/sow.js +3 -0
  73. package/dist/assessments/sow.js.map +1 -0
  74. package/dist/assessments/status.d.ts +27 -0
  75. package/dist/assessments/status.d.ts.map +1 -0
  76. package/dist/assessments/status.js +27 -0
  77. package/dist/assessments/status.js.map +1 -0
  78. package/dist/aws/commitments-planning.d.ts +3 -0
  79. package/dist/aws/commitments-planning.d.ts.map +1 -0
  80. package/dist/aws/commitments-planning.js +6 -0
  81. package/dist/aws/commitments-planning.js.map +1 -0
  82. package/dist/aws/commitmentsPlanningValidation.d.ts +7 -0
  83. package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -0
  84. package/dist/aws/commitmentsPlanningValidation.js +125 -0
  85. package/dist/aws/commitmentsPlanningValidation.js.map +1 -0
  86. package/dist/aws/estates.d.ts +153 -0
  87. package/dist/aws/estates.d.ts.map +1 -0
  88. package/dist/aws/estates.js +25 -0
  89. package/dist/aws/estates.js.map +1 -0
  90. package/dist/aws/index.d.ts +20 -0
  91. package/dist/aws/index.d.ts.map +1 -0
  92. package/dist/aws/index.js +35 -0
  93. package/dist/aws/index.js.map +1 -0
  94. package/dist/aws/onboarding.d.ts +54 -0
  95. package/dist/aws/onboarding.d.ts.map +1 -0
  96. package/dist/aws/onboarding.js +3 -0
  97. package/dist/aws/onboarding.js.map +1 -0
  98. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +10 -0
  99. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +1 -0
  100. package/dist/aws/pluginPublicArtifactBodyValidation.js +225 -0
  101. package/dist/aws/pluginPublicArtifactBodyValidation.js.map +1 -0
  102. package/dist/aws/pluginPublicArtifactEvidence.d.ts +161 -0
  103. package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +1 -0
  104. package/dist/aws/pluginPublicArtifactEvidence.js +3 -0
  105. package/dist/aws/pluginPublicArtifactEvidence.js.map +1 -0
  106. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +4 -0
  107. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +1 -0
  108. package/dist/aws/pluginPublicArtifactManifestValidation.js +259 -0
  109. package/dist/aws/pluginPublicArtifactManifestValidation.js.map +1 -0
  110. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +6 -0
  111. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +1 -0
  112. package/dist/aws/pluginPublicArtifactSectionValidation.js +471 -0
  113. package/dist/aws/pluginPublicArtifactSectionValidation.js.map +1 -0
  114. package/dist/aws/pluginPublicArtifactValidation.d.ts +3 -0
  115. package/dist/aws/pluginPublicArtifactValidation.d.ts.map +1 -0
  116. package/dist/aws/pluginPublicArtifactValidation.js +9 -0
  117. package/dist/aws/pluginPublicArtifactValidation.js.map +1 -0
  118. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +23 -0
  119. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +1 -0
  120. package/dist/aws/pluginPublicArtifactValidationHelpers.js +240 -0
  121. package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +1 -0
  122. package/dist/aws/pluginPublicArtifacts.d.ts +253 -0
  123. package/dist/aws/pluginPublicArtifacts.d.ts.map +1 -0
  124. package/dist/aws/pluginPublicArtifacts.js +51 -0
  125. package/dist/aws/pluginPublicArtifacts.js.map +1 -0
  126. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +4 -0
  127. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  128. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +513 -0
  129. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  130. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +13 -0
  131. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  132. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +5 -0
  133. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +1 -0
  134. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +4 -0
  135. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +1 -0
  136. package/dist/aws/portalPublicArtifactCurrentValidation.js +333 -0
  137. package/dist/aws/portalPublicArtifactCurrentValidation.js.map +1 -0
  138. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +6 -0
  139. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +1 -0
  140. package/dist/aws/portalPublicArtifactEvidenceValidation.js +301 -0
  141. package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +1 -0
  142. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +8 -0
  143. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +1 -0
  144. package/dist/aws/portalPublicArtifactHistoryAiValidation.js +377 -0
  145. package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +1 -0
  146. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +178 -0
  147. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -0
  148. package/dist/aws/portalPublicArtifactHistoryTypes.js +44 -0
  149. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -0
  150. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +127 -0
  151. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +1 -0
  152. package/dist/aws/portalPublicArtifactNestedEvidence.js +3 -0
  153. package/dist/aws/portalPublicArtifactNestedEvidence.js.map +1 -0
  154. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +6 -0
  155. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +1 -0
  156. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +405 -0
  157. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +1 -0
  158. package/dist/aws/portalPublicArtifactValidation.d.ts +3 -0
  159. package/dist/aws/portalPublicArtifactValidation.d.ts.map +1 -0
  160. package/dist/aws/portalPublicArtifactValidation.js +14 -0
  161. package/dist/aws/portalPublicArtifactValidation.js.map +1 -0
  162. package/dist/aws/portalPublicArtifactValidationCommon.d.ts +30 -0
  163. package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +1 -0
  164. package/dist/aws/portalPublicArtifactValidationCommon.js +167 -0
  165. package/dist/aws/portalPublicArtifactValidationCommon.js.map +1 -0
  166. package/dist/aws/portalPublicArtifacts.d.ts +400 -0
  167. package/dist/aws/portalPublicArtifacts.d.ts.map +1 -0
  168. package/dist/aws/portalPublicArtifacts.js +85 -0
  169. package/dist/aws/portalPublicArtifacts.js.map +1 -0
  170. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts +4 -0
  171. package/dist/aws/portalRelationshipPublicArtifactValidation.d.ts.map +1 -0
  172. package/dist/aws/portalRelationshipPublicArtifactValidation.js +338 -0
  173. package/dist/aws/portalRelationshipPublicArtifactValidation.js.map +1 -0
  174. package/dist/aws/portalRelationshipPublicArtifacts.d.ts +196 -0
  175. package/dist/aws/portalRelationshipPublicArtifacts.d.ts.map +1 -0
  176. package/dist/aws/portalRelationshipPublicArtifacts.js +63 -0
  177. package/dist/aws/portalRelationshipPublicArtifacts.js.map +1 -0
  178. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts +269 -0
  179. package/dist/aws/portalRelationshipResourceNodeTypes.d.ts.map +1 -0
  180. package/dist/aws/portalRelationshipResourceNodeTypes.js +3 -0
  181. package/dist/aws/portalRelationshipResourceNodeTypes.js.map +1 -0
  182. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts +2 -0
  183. package/dist/aws/portalRelationshipResourceNodeValidation.d.ts.map +1 -0
  184. package/dist/aws/portalRelationshipResourceNodeValidation.js +372 -0
  185. package/dist/aws/portalRelationshipResourceNodeValidation.js.map +1 -0
  186. package/dist/aws/publicArtifacts.d.ts +76 -0
  187. package/dist/aws/publicArtifacts.d.ts.map +1 -0
  188. package/dist/aws/publicArtifacts.js +17 -0
  189. package/dist/aws/publicArtifacts.js.map +1 -0
  190. package/dist/aws/relationships.d.ts +4 -0
  191. package/dist/aws/relationships.d.ts.map +1 -0
  192. package/dist/aws/relationships.js +6 -0
  193. package/dist/aws/relationships.js.map +1 -0
  194. package/dist/aws/requests.d.ts +84 -0
  195. package/dist/aws/requests.d.ts.map +1 -0
  196. package/dist/aws/requests.js +23 -0
  197. package/dist/aws/requests.js.map +1 -0
  198. package/dist/azure/activityLogs.d.ts +71 -0
  199. package/dist/azure/activityLogs.d.ts.map +1 -0
  200. package/dist/azure/activityLogs.js +6 -0
  201. package/dist/azure/activityLogs.js.map +1 -0
  202. package/dist/azure/advisorScore.d.ts +39 -0
  203. package/dist/azure/advisorScore.d.ts.map +1 -0
  204. package/dist/azure/advisorScore.js +3 -0
  205. package/dist/azure/advisorScore.js.map +1 -0
  206. package/dist/azure/artifactRunReference.d.ts +11 -0
  207. package/dist/azure/artifactRunReference.d.ts.map +1 -0
  208. package/dist/azure/artifactRunReference.js +90 -0
  209. package/dist/azure/artifactRunReference.js.map +1 -0
  210. package/dist/azure/benefits.d.ts +163 -0
  211. package/dist/azure/benefits.d.ts.map +1 -0
  212. package/dist/azure/benefits.js +3 -0
  213. package/dist/azure/benefits.js.map +1 -0
  214. package/dist/azure/billingArtifactCanonicalization.d.ts +30 -0
  215. package/dist/azure/billingArtifactCanonicalization.d.ts.map +1 -0
  216. package/dist/azure/billingArtifactCanonicalization.js +371 -0
  217. package/dist/azure/billingArtifactCanonicalization.js.map +1 -0
  218. package/dist/azure/billingArtifactEvidence.d.ts +39 -0
  219. package/dist/azure/billingArtifactEvidence.d.ts.map +1 -0
  220. package/dist/azure/billingArtifactEvidence.js +29 -0
  221. package/dist/azure/billingArtifactEvidence.js.map +1 -0
  222. package/dist/azure/billingArtifactGeneration.d.ts +221 -0
  223. package/dist/azure/billingArtifactGeneration.d.ts.map +1 -0
  224. package/dist/azure/billingArtifactGeneration.js +477 -0
  225. package/dist/azure/billingArtifactGeneration.js.map +1 -0
  226. package/dist/azure/billingArtifactLimits.d.ts +19 -0
  227. package/dist/azure/billingArtifactLimits.d.ts.map +1 -0
  228. package/dist/azure/billingArtifactLimits.js +22 -0
  229. package/dist/azure/billingArtifactLimits.js.map +1 -0
  230. package/dist/azure/billingGeneration.d.ts +50 -0
  231. package/dist/azure/billingGeneration.d.ts.map +1 -0
  232. package/dist/azure/billingGeneration.js +3 -0
  233. package/dist/azure/billingGeneration.js.map +1 -0
  234. package/dist/azure/billingPlots.d.ts +220 -13
  235. package/dist/azure/billingPlots.d.ts.map +1 -1
  236. package/dist/azure/billingPlots.js +475 -1
  237. package/dist/azure/billingPlots.js.map +1 -1
  238. package/dist/azure/budgets.d.ts +4 -0
  239. package/dist/azure/budgets.d.ts.map +1 -1
  240. package/dist/azure/commitmentsPlanning.d.ts +731 -0
  241. package/dist/azure/commitmentsPlanning.d.ts.map +1 -0
  242. package/dist/azure/commitmentsPlanning.js +3 -0
  243. package/dist/azure/commitmentsPlanning.js.map +1 -0
  244. package/dist/azure/common.d.ts +16 -3
  245. package/dist/azure/common.d.ts.map +1 -1
  246. package/dist/azure/configs.d.ts +66 -2
  247. package/dist/azure/configs.d.ts.map +1 -1
  248. package/dist/azure/costComposition.d.ts +124 -0
  249. package/dist/azure/costComposition.d.ts.map +1 -0
  250. package/dist/azure/costComposition.js +66 -0
  251. package/dist/azure/costComposition.js.map +1 -0
  252. package/dist/azure/dataProtection.d.ts +229 -0
  253. package/dist/azure/dataProtection.d.ts.map +1 -0
  254. package/dist/azure/dataProtection.js +9 -0
  255. package/dist/azure/dataProtection.js.map +1 -0
  256. package/dist/azure/financialAnalytics.d.ts +123 -0
  257. package/dist/azure/financialAnalytics.d.ts.map +1 -0
  258. package/dist/azure/financialAnalytics.js +6 -0
  259. package/dist/azure/financialAnalytics.js.map +1 -0
  260. package/dist/azure/financialAnalyticsDelivery.d.ts +101 -0
  261. package/dist/azure/financialAnalyticsDelivery.d.ts.map +1 -0
  262. package/dist/azure/financialAnalyticsDelivery.js +11 -0
  263. package/dist/azure/financialAnalyticsDelivery.js.map +1 -0
  264. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts +20 -0
  265. package/dist/azure/financialAnalyticsDeliveryValidation.d.ts.map +1 -0
  266. package/dist/azure/financialAnalyticsDeliveryValidation.js +296 -0
  267. package/dist/azure/financialAnalyticsDeliveryValidation.js.map +1 -0
  268. package/dist/azure/financialAnalyticsValidation.d.ts +12 -0
  269. package/dist/azure/financialAnalyticsValidation.d.ts.map +1 -0
  270. package/dist/azure/financialAnalyticsValidation.js +448 -0
  271. package/dist/azure/financialAnalyticsValidation.js.map +1 -0
  272. package/dist/azure/financialAuthorityView.d.ts +88 -0
  273. package/dist/azure/financialAuthorityView.d.ts.map +1 -0
  274. package/dist/azure/financialAuthorityView.js +7 -0
  275. package/dist/azure/financialAuthorityView.js.map +1 -0
  276. package/dist/azure/financialAuthorityViewValidation.d.ts +9 -0
  277. package/dist/azure/financialAuthorityViewValidation.d.ts.map +1 -0
  278. package/dist/azure/financialAuthorityViewValidation.js +507 -0
  279. package/dist/azure/financialAuthorityViewValidation.js.map +1 -0
  280. package/dist/azure/financialDataflow.d.ts +123 -0
  281. package/dist/azure/financialDataflow.d.ts.map +1 -0
  282. package/dist/azure/financialDataflow.js +6 -0
  283. package/dist/azure/financialDataflow.js.map +1 -0
  284. package/dist/azure/financialDataflowKernel.d.ts +29 -0
  285. package/dist/azure/financialDataflowKernel.d.ts.map +1 -0
  286. package/dist/azure/financialDataflowKernel.js +117 -0
  287. package/dist/azure/financialDataflowKernel.js.map +1 -0
  288. package/dist/azure/financialDataflowValidation.d.ts +39 -0
  289. package/dist/azure/financialDataflowValidation.d.ts.map +1 -0
  290. package/dist/azure/financialDataflowValidation.js +603 -0
  291. package/dist/azure/financialDataflowValidation.js.map +1 -0
  292. package/dist/azure/financialDisplayRollup.d.ts +35 -0
  293. package/dist/azure/financialDisplayRollup.d.ts.map +1 -0
  294. package/dist/azure/financialDisplayRollup.js +3 -0
  295. package/dist/azure/financialDisplayRollup.js.map +1 -0
  296. package/dist/azure/financialDisplayRollupValidation.d.ts +5 -0
  297. package/dist/azure/financialDisplayRollupValidation.d.ts.map +1 -0
  298. package/dist/azure/financialDisplayRollupValidation.js +82 -0
  299. package/dist/azure/financialDisplayRollupValidation.js.map +1 -0
  300. package/dist/azure/financialEligibilityAssessmentValidation.d.ts +15 -0
  301. package/dist/azure/financialEligibilityAssessmentValidation.d.ts.map +1 -0
  302. package/dist/azure/financialEligibilityAssessmentValidation.js +184 -0
  303. package/dist/azure/financialEligibilityAssessmentValidation.js.map +1 -0
  304. package/dist/azure/financialEvidenceAssessmentValidation.d.ts +4 -0
  305. package/dist/azure/financialEvidenceAssessmentValidation.d.ts.map +1 -0
  306. package/dist/azure/financialEvidenceAssessmentValidation.js +166 -0
  307. package/dist/azure/financialEvidenceAssessmentValidation.js.map +1 -0
  308. package/dist/azure/financialPolicy.d.ts +104 -0
  309. package/dist/azure/financialPolicy.d.ts.map +1 -0
  310. package/dist/azure/financialPolicy.js +6 -0
  311. package/dist/azure/financialPolicy.js.map +1 -0
  312. package/dist/azure/financialPolicyDelivery.d.ts +112 -0
  313. package/dist/azure/financialPolicyDelivery.d.ts.map +1 -0
  314. package/dist/azure/financialPolicyDelivery.js +10 -0
  315. package/dist/azure/financialPolicyDelivery.js.map +1 -0
  316. package/dist/azure/financialPolicyDeliveryValidation.d.ts +22 -0
  317. package/dist/azure/financialPolicyDeliveryValidation.d.ts.map +1 -0
  318. package/dist/azure/financialPolicyDeliveryValidation.js +380 -0
  319. package/dist/azure/financialPolicyDeliveryValidation.js.map +1 -0
  320. package/dist/azure/financialPolicyKernel.d.ts +38 -0
  321. package/dist/azure/financialPolicyKernel.d.ts.map +1 -0
  322. package/dist/azure/financialPolicyKernel.js +232 -0
  323. package/dist/azure/financialPolicyKernel.js.map +1 -0
  324. package/dist/azure/financialPolicyValidation.d.ts +13 -0
  325. package/dist/azure/financialPolicyValidation.d.ts.map +1 -0
  326. package/dist/azure/financialPolicyValidation.js +562 -0
  327. package/dist/azure/financialPolicyValidation.js.map +1 -0
  328. package/dist/azure/financialProjection.d.ts +171 -0
  329. package/dist/azure/financialProjection.d.ts.map +1 -0
  330. package/dist/azure/financialProjection.js +18 -0
  331. package/dist/azure/financialProjection.js.map +1 -0
  332. package/dist/azure/financialProjectionValidation.d.ts +4 -0
  333. package/dist/azure/financialProjectionValidation.d.ts.map +1 -0
  334. package/dist/azure/financialProjectionValidation.js +452 -0
  335. package/dist/azure/financialProjectionValidation.js.map +1 -0
  336. package/dist/azure/financialSavingsAuthority.d.ts +181 -0
  337. package/dist/azure/financialSavingsAuthority.d.ts.map +1 -0
  338. package/dist/azure/financialSavingsAuthority.js +9 -0
  339. package/dist/azure/financialSavingsAuthority.js.map +1 -0
  340. package/dist/azure/financialSavingsAuthorityValidation.d.ts +8 -0
  341. package/dist/azure/financialSavingsAuthorityValidation.d.ts.map +1 -0
  342. package/dist/azure/financialSavingsAuthorityValidation.js +132 -0
  343. package/dist/azure/financialSavingsAuthorityValidation.js.map +1 -0
  344. package/dist/azure/financialSavingsAuthorityValidationPrimitives.d.ts +11 -0
  345. package/dist/azure/financialSavingsAuthorityValidationPrimitives.d.ts.map +1 -0
  346. package/dist/azure/financialSavingsAuthorityValidationPrimitives.js +44 -0
  347. package/dist/azure/financialSavingsAuthorityValidationPrimitives.js.map +1 -0
  348. package/dist/azure/financialSavingsCoordinateValidation.d.ts +11 -0
  349. package/dist/azure/financialSavingsCoordinateValidation.d.ts.map +1 -0
  350. package/dist/azure/financialSavingsCoordinateValidation.js +376 -0
  351. package/dist/azure/financialSavingsCoordinateValidation.js.map +1 -0
  352. package/dist/azure/financialSavingsSurfaceProjection.d.ts +67 -0
  353. package/dist/azure/financialSavingsSurfaceProjection.d.ts.map +1 -0
  354. package/dist/azure/financialSavingsSurfaceProjection.js +6 -0
  355. package/dist/azure/financialSavingsSurfaceProjection.js.map +1 -0
  356. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts +5 -0
  357. package/dist/azure/financialSavingsSurfaceProjectionValidation.d.ts.map +1 -0
  358. package/dist/azure/financialSavingsSurfaceProjectionValidation.js +178 -0
  359. package/dist/azure/financialSavingsSurfaceProjectionValidation.js.map +1 -0
  360. package/dist/azure/financialScope.d.ts +28 -0
  361. package/dist/azure/financialScope.d.ts.map +1 -0
  362. package/dist/azure/financialScope.js +44 -0
  363. package/dist/azure/financialScope.js.map +1 -0
  364. package/dist/azure/financialScopeBaseline.d.ts +153 -0
  365. package/dist/azure/financialScopeBaseline.d.ts.map +1 -0
  366. package/dist/azure/financialScopeBaseline.js +36 -0
  367. package/dist/azure/financialScopeBaseline.js.map +1 -0
  368. package/dist/azure/financialScopeBaselineIdentity.d.ts +9 -0
  369. package/dist/azure/financialScopeBaselineIdentity.d.ts.map +1 -0
  370. package/dist/azure/financialScopeBaselineIdentity.js +136 -0
  371. package/dist/azure/financialScopeBaselineIdentity.js.map +1 -0
  372. package/dist/azure/financialScopeBaselineValidation.d.ts +9 -0
  373. package/dist/azure/financialScopeBaselineValidation.d.ts.map +1 -0
  374. package/dist/azure/financialScopeBaselineValidation.js +463 -0
  375. package/dist/azure/financialScopeBaselineValidation.js.map +1 -0
  376. package/dist/azure/financialScopeEvidence.d.ts +72 -0
  377. package/dist/azure/financialScopeEvidence.d.ts.map +1 -0
  378. package/dist/azure/financialScopeEvidence.js +6 -0
  379. package/dist/azure/financialScopeEvidence.js.map +1 -0
  380. package/dist/azure/financialValidationPrimitives.d.ts +7 -0
  381. package/dist/azure/financialValidationPrimitives.d.ts.map +1 -0
  382. package/dist/azure/financialValidationPrimitives.js +20 -0
  383. package/dist/azure/financialValidationPrimitives.js.map +1 -0
  384. package/dist/azure/governance.d.ts +942 -0
  385. package/dist/azure/governance.d.ts.map +1 -0
  386. package/dist/azure/governance.js +18 -0
  387. package/dist/azure/governance.js.map +1 -0
  388. package/dist/azure/licensing.d.ts +498 -0
  389. package/dist/azure/licensing.d.ts.map +1 -0
  390. package/dist/azure/licensing.js +3 -0
  391. package/dist/azure/licensing.js.map +1 -0
  392. package/dist/azure/metrics.d.ts +73 -4
  393. package/dist/azure/metrics.d.ts.map +1 -1
  394. package/dist/azure/payloads.d.ts +368 -1
  395. package/dist/azure/payloads.d.ts.map +1 -1
  396. package/dist/azure/portalArtifacts.d.ts +14 -0
  397. package/dist/azure/portalArtifacts.d.ts.map +1 -0
  398. package/dist/azure/portalArtifacts.js +5 -0
  399. package/dist/azure/portalArtifacts.js.map +1 -0
  400. package/dist/azure/prices.d.ts +138 -0
  401. package/dist/azure/prices.d.ts.map +1 -1
  402. package/dist/azure/publicIpAddresses.d.ts +171 -0
  403. package/dist/azure/publicIpAddresses.d.ts.map +1 -0
  404. package/dist/azure/publicIpAddresses.js +6 -0
  405. package/dist/azure/publicIpAddresses.js.map +1 -0
  406. package/dist/azure/recommendationAudit.d.ts +167 -0
  407. package/dist/azure/recommendationAudit.d.ts.map +1 -0
  408. package/dist/azure/recommendationAudit.js +20 -0
  409. package/dist/azure/recommendationAudit.js.map +1 -0
  410. package/dist/azure/recommendationState.d.ts +92 -6
  411. package/dist/azure/recommendationState.d.ts.map +1 -1
  412. package/dist/azure/recommendationTracks.d.ts +214 -0
  413. package/dist/azure/recommendationTracks.d.ts.map +1 -0
  414. package/dist/azure/recommendationTracks.js +44 -0
  415. package/dist/azure/recommendationTracks.js.map +1 -0
  416. package/dist/azure/recommendationWorkflow.d.ts +304 -0
  417. package/dist/azure/recommendationWorkflow.d.ts.map +1 -0
  418. package/dist/azure/recommendationWorkflow.js +17 -0
  419. package/dist/azure/recommendationWorkflow.js.map +1 -0
  420. package/dist/azure/recommendations.d.ts +533 -12
  421. package/dist/azure/recommendations.d.ts.map +1 -1
  422. package/dist/azure/recommendations.js.map +1 -1
  423. package/dist/azure/regulatoryCompliance.d.ts +301 -0
  424. package/dist/azure/regulatoryCompliance.d.ts.map +1 -0
  425. package/dist/azure/regulatoryCompliance.js +10 -0
  426. package/dist/azure/regulatoryCompliance.js.map +1 -0
  427. package/dist/azure/relationships.d.ts +193 -0
  428. package/dist/azure/relationships.d.ts.map +1 -0
  429. package/dist/azure/relationships.js +6 -0
  430. package/dist/azure/relationships.js.map +1 -0
  431. package/dist/azure/reportingTemplates.d.ts +70 -0
  432. package/dist/azure/reportingTemplates.d.ts.map +1 -0
  433. package/dist/azure/reportingTemplates.js +5 -0
  434. package/dist/azure/reportingTemplates.js.map +1 -0
  435. package/dist/azure/reports.d.ts +193 -2
  436. package/dist/azure/reports.d.ts.map +1 -1
  437. package/dist/azure/reports.js.map +1 -1
  438. package/dist/azure/resourceHealth.d.ts +264 -0
  439. package/dist/azure/resourceHealth.d.ts.map +1 -0
  440. package/dist/azure/resourceHealth.js +16 -0
  441. package/dist/azure/resourceHealth.js.map +1 -0
  442. package/dist/azure/{costEstimation.d.ts → resourceOptimization.d.ts} +24 -23
  443. package/dist/azure/resourceOptimization.d.ts.map +1 -0
  444. package/dist/azure/resourceOptimization.js +3 -0
  445. package/dist/azure/resourceOptimization.js.map +1 -0
  446. package/dist/azure/resources.d.ts +72 -6
  447. package/dist/azure/resources.d.ts.map +1 -1
  448. package/dist/azure/reviewChecklist.d.ts +155 -0
  449. package/dist/azure/reviewChecklist.d.ts.map +1 -0
  450. package/dist/azure/reviewChecklist.js +3 -0
  451. package/dist/azure/reviewChecklist.js.map +1 -0
  452. package/dist/azure/savings.d.ts +93 -0
  453. package/dist/azure/savings.d.ts.map +1 -0
  454. package/dist/azure/savings.js +3 -0
  455. package/dist/azure/savings.js.map +1 -0
  456. package/dist/azure/secureScore.d.ts +23 -0
  457. package/dist/azure/secureScore.d.ts.map +1 -0
  458. package/dist/azure/secureScore.js +3 -0
  459. package/dist/azure/secureScore.js.map +1 -0
  460. package/dist/azure/serviceRetirement.d.ts +35 -0
  461. package/dist/azure/serviceRetirement.d.ts.map +1 -1
  462. package/dist/azure/serviceRetirementState.d.ts +22 -0
  463. package/dist/azure/serviceRetirementState.d.ts.map +1 -0
  464. package/dist/azure/serviceRetirementState.js +3 -0
  465. package/dist/azure/serviceRetirementState.js.map +1 -0
  466. package/dist/azure/serviceRetirementWorkManagement.d.ts +7 -0
  467. package/dist/azure/serviceRetirementWorkManagement.d.ts.map +1 -0
  468. package/dist/azure/serviceRetirementWorkManagement.js +3 -0
  469. package/dist/azure/serviceRetirementWorkManagement.js.map +1 -0
  470. package/dist/azure/storage-inventory.d.ts +241 -0
  471. package/dist/azure/storage-inventory.d.ts.map +1 -0
  472. package/dist/azure/storage-inventory.js +3 -0
  473. package/dist/azure/storage-inventory.js.map +1 -0
  474. package/dist/azure/subscriptions.d.ts +91 -4
  475. package/dist/azure/subscriptions.d.ts.map +1 -1
  476. package/dist/azure/views.d.ts +932 -13
  477. package/dist/azure/views.d.ts.map +1 -1
  478. package/dist/azure/views.js +511 -0
  479. package/dist/azure/views.js.map +1 -1
  480. package/dist/azure/workManagement.d.ts +154 -0
  481. package/dist/azure/workManagement.d.ts.map +1 -0
  482. package/dist/azure/workManagement.js +8 -0
  483. package/dist/azure/workManagement.js.map +1 -0
  484. package/dist/common/artifactControlData.d.ts +26 -0
  485. package/dist/common/artifactControlData.d.ts.map +1 -0
  486. package/dist/common/artifactControlData.js +208 -0
  487. package/dist/common/artifactControlData.js.map +1 -0
  488. package/dist/common/artifactEvidence.d.ts +151 -0
  489. package/dist/common/artifactEvidence.d.ts.map +1 -0
  490. package/dist/common/artifactEvidence.js +207 -0
  491. package/dist/common/artifactEvidence.js.map +1 -0
  492. package/dist/common/artifactEvidenceValidation.d.ts +16 -0
  493. package/dist/common/artifactEvidenceValidation.d.ts.map +1 -0
  494. package/dist/common/artifactEvidenceValidation.js +31 -0
  495. package/dist/common/artifactEvidenceValidation.js.map +1 -0
  496. package/dist/common/artifactGeneration.d.ts +93 -0
  497. package/dist/common/artifactGeneration.d.ts.map +1 -0
  498. package/dist/common/artifactGeneration.js +5 -0
  499. package/dist/common/artifactGeneration.js.map +1 -0
  500. package/dist/common/capabilityPassport.d.ts +114 -0
  501. package/dist/common/capabilityPassport.d.ts.map +1 -0
  502. package/dist/common/capabilityPassport.js +211 -0
  503. package/dist/common/capabilityPassport.js.map +1 -0
  504. package/dist/common/exactDecimal.d.ts +11 -0
  505. package/dist/common/exactDecimal.d.ts.map +1 -0
  506. package/dist/common/exactDecimal.js +59 -0
  507. package/dist/common/exactDecimal.js.map +1 -0
  508. package/dist/common/index.d.ts +8 -0
  509. package/dist/common/index.d.ts.map +1 -1
  510. package/dist/common/index.js +8 -0
  511. package/dist/common/index.js.map +1 -1
  512. package/dist/common/provider.d.ts +33 -0
  513. package/dist/common/provider.d.ts.map +1 -0
  514. package/dist/common/provider.js +15 -0
  515. package/dist/common/provider.js.map +1 -0
  516. package/dist/common/providerSyncProgress.d.ts +91 -0
  517. package/dist/common/providerSyncProgress.d.ts.map +1 -0
  518. package/dist/common/providerSyncProgress.js +3 -0
  519. package/dist/common/providerSyncProgress.js.map +1 -0
  520. package/dist/common/relationships.d.ts +8 -0
  521. package/dist/common/relationships.d.ts.map +1 -0
  522. package/dist/common/relationships.js +3 -0
  523. package/dist/common/relationships.js.map +1 -0
  524. package/dist/common/sha256.d.ts +3 -0
  525. package/dist/common/sha256.d.ts.map +1 -0
  526. package/dist/common/sha256.js +93 -0
  527. package/dist/common/sha256.js.map +1 -0
  528. package/dist/common/syncProgress.d.ts +27 -0
  529. package/dist/common/syncProgress.d.ts.map +1 -0
  530. package/dist/common/syncProgress.js +3 -0
  531. package/dist/common/syncProgress.js.map +1 -0
  532. package/dist/company/company.d.ts +75 -2
  533. package/dist/company/company.d.ts.map +1 -1
  534. package/dist/company/companyHierarchy.d.ts +53 -0
  535. package/dist/company/companyHierarchy.d.ts.map +1 -0
  536. package/dist/company/companyHierarchy.js +3 -0
  537. package/dist/company/companyHierarchy.js.map +1 -0
  538. package/dist/company/companyNotes.d.ts +288 -0
  539. package/dist/company/companyNotes.d.ts.map +1 -0
  540. package/dist/company/companyNotes.js +42 -0
  541. package/dist/company/companyNotes.js.map +1 -0
  542. package/dist/company/customProperties.d.ts +2 -0
  543. package/dist/company/customProperties.d.ts.map +1 -0
  544. package/dist/company/customProperties.js +18 -0
  545. package/dist/company/customProperties.js.map +1 -0
  546. package/dist/company/index.d.ts +2 -0
  547. package/dist/company/index.d.ts.map +1 -1
  548. package/dist/company/index.js +2 -0
  549. package/dist/company/index.js.map +1 -1
  550. package/dist/company/notification.d.ts +15 -1
  551. package/dist/company/notification.d.ts.map +1 -1
  552. package/dist/company/notification.js +8 -1
  553. package/dist/company/notification.js.map +1 -1
  554. package/dist/customProperties/customProperties.d.ts +87 -0
  555. package/dist/customProperties/customProperties.d.ts.map +1 -0
  556. package/dist/customProperties/customProperties.js +3 -0
  557. package/dist/customProperties/customProperties.js.map +1 -0
  558. package/dist/customProperties/index.d.ts +2 -0
  559. package/dist/customProperties/index.d.ts.map +1 -0
  560. package/dist/customProperties/index.js +18 -0
  561. package/dist/customProperties/index.js.map +1 -0
  562. package/dist/esm/accounts/accounts.js +115 -0
  563. package/dist/esm/accounts/azureSpSetup.js +1 -0
  564. package/dist/esm/accounts/azureSpSetupDurable.js +1 -0
  565. package/dist/esm/accounts/index.js +5 -0
  566. package/dist/esm/accounts/readPermissions.js +198 -0
  567. package/dist/esm/accounts/validation.js +1 -0
  568. package/dist/esm/accounts/writePermissions.js +43 -0
  569. package/dist/esm/ai/index.js +2 -0
  570. package/dist/esm/assessments/artifact.js +1 -0
  571. package/dist/esm/assessments/catalogue.js +12 -0
  572. package/dist/esm/assessments/common.js +1 -0
  573. package/dist/esm/assessments/evidence.js +1 -0
  574. package/dist/esm/assessments/export.js +1 -0
  575. package/dist/esm/assessments/index.js +10 -0
  576. package/dist/esm/assessments/queue.js +2 -0
  577. package/dist/esm/assessments/review.js +1 -0
  578. package/dist/esm/assessments/run.js +1 -0
  579. package/dist/esm/assessments/sow.js +1 -0
  580. package/dist/esm/assessments/status.js +23 -0
  581. package/dist/esm/aws/commitments-planning.js +1 -0
  582. package/dist/esm/aws/commitmentsPlanningValidation.js +121 -0
  583. package/dist/esm/aws/estates.js +21 -0
  584. package/dist/esm/aws/index.js +18 -0
  585. package/dist/esm/aws/onboarding.js +1 -0
  586. package/dist/esm/aws/pluginPublicArtifactBodyValidation.js +217 -0
  587. package/dist/esm/aws/pluginPublicArtifactEvidence.js +1 -0
  588. package/dist/esm/aws/pluginPublicArtifactManifestValidation.js +255 -0
  589. package/dist/esm/aws/pluginPublicArtifactSectionValidation.js +464 -0
  590. package/dist/esm/aws/pluginPublicArtifactValidation.js +2 -0
  591. package/dist/esm/aws/pluginPublicArtifactValidationHelpers.js +216 -0
  592. package/dist/esm/aws/pluginPublicArtifacts.js +44 -0
  593. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifactValidation.js +509 -0
  594. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifacts.js +1 -0
  595. package/dist/esm/aws/portalPublicArtifactCurrentValidation.js +328 -0
  596. package/dist/esm/aws/portalPublicArtifactEvidenceValidation.js +294 -0
  597. package/dist/esm/aws/portalPublicArtifactHistoryAiValidation.js +368 -0
  598. package/dist/esm/aws/portalPublicArtifactHistoryTypes.js +40 -0
  599. package/dist/esm/aws/portalPublicArtifactNestedEvidence.js +1 -0
  600. package/dist/esm/aws/portalPublicArtifactNestedEvidenceValidation.js +397 -0
  601. package/dist/esm/aws/portalPublicArtifactValidation.js +2 -0
  602. package/dist/esm/aws/portalPublicArtifactValidationCommon.js +139 -0
  603. package/dist/esm/aws/portalPublicArtifacts.js +73 -0
  604. package/dist/esm/aws/portalRelationshipPublicArtifactValidation.js +334 -0
  605. package/dist/esm/aws/portalRelationshipPublicArtifacts.js +59 -0
  606. package/dist/esm/aws/portalRelationshipResourceNodeTypes.js +1 -0
  607. package/dist/esm/aws/portalRelationshipResourceNodeValidation.js +368 -0
  608. package/dist/esm/aws/publicArtifacts.js +13 -0
  609. package/dist/esm/aws/relationships.js +1 -0
  610. package/dist/esm/aws/requests.js +19 -0
  611. package/dist/esm/azure/activityLogs.js +2 -0
  612. package/dist/esm/azure/advisorScore.js +1 -0
  613. package/dist/esm/azure/artifactRunReference.js +83 -0
  614. package/dist/esm/azure/benefits.js +1 -0
  615. package/dist/esm/azure/billingArtifactCanonicalization.js +360 -0
  616. package/dist/esm/azure/billingArtifactEvidence.js +23 -0
  617. package/dist/esm/azure/billingArtifactGeneration.js +461 -0
  618. package/dist/esm/azure/billingArtifactLimits.js +18 -0
  619. package/dist/esm/azure/billingGeneration.js +1 -0
  620. package/dist/esm/azure/billingPlots.js +470 -0
  621. package/dist/esm/azure/budgets.js +1 -0
  622. package/dist/esm/azure/commitmentsPlanning.js +1 -0
  623. package/dist/esm/azure/common.js +1 -0
  624. package/dist/esm/azure/configs.js +1 -0
  625. package/dist/esm/azure/costComposition.js +59 -0
  626. package/dist/esm/azure/dataProtection.js +5 -0
  627. package/dist/esm/azure/financialAnalytics.js +2 -0
  628. package/dist/esm/azure/financialAnalyticsDelivery.js +7 -0
  629. package/dist/esm/azure/financialAnalyticsDeliveryValidation.js +277 -0
  630. package/dist/esm/azure/financialAnalyticsValidation.js +436 -0
  631. package/dist/esm/azure/financialAuthorityView.js +3 -0
  632. package/dist/esm/azure/financialAuthorityViewValidation.js +497 -0
  633. package/dist/esm/azure/financialDataflow.js +2 -0
  634. package/dist/esm/azure/financialDataflowKernel.js +111 -0
  635. package/dist/esm/azure/financialDataflowValidation.js +575 -0
  636. package/dist/esm/azure/financialDisplayRollup.js +1 -0
  637. package/dist/esm/azure/financialDisplayRollupValidation.js +75 -0
  638. package/dist/esm/azure/financialEligibilityAssessmentValidation.js +176 -0
  639. package/dist/esm/azure/financialEvidenceAssessmentValidation.js +160 -0
  640. package/dist/esm/azure/financialPolicy.js +2 -0
  641. package/dist/esm/azure/financialPolicyDelivery.js +6 -0
  642. package/dist/esm/azure/financialPolicyDeliveryValidation.js +357 -0
  643. package/dist/esm/azure/financialPolicyKernel.js +225 -0
  644. package/dist/esm/azure/financialPolicyValidation.js +548 -0
  645. package/dist/esm/azure/financialProjection.js +14 -0
  646. package/dist/esm/azure/financialProjectionValidation.js +446 -0
  647. package/dist/esm/azure/financialSavingsAuthority.js +5 -0
  648. package/dist/esm/azure/financialSavingsAuthorityValidation.js +117 -0
  649. package/dist/esm/azure/financialSavingsAuthorityValidationPrimitives.js +31 -0
  650. package/dist/esm/azure/financialSavingsCoordinateValidation.js +365 -0
  651. package/dist/esm/azure/financialSavingsSurfaceProjection.js +2 -0
  652. package/dist/esm/azure/financialSavingsSurfaceProjectionValidation.js +171 -0
  653. package/dist/esm/azure/financialScope.js +27 -0
  654. package/dist/esm/azure/financialScopeBaseline.js +31 -0
  655. package/dist/esm/azure/financialScopeBaselineIdentity.js +129 -0
  656. package/dist/esm/azure/financialScopeBaselineValidation.js +453 -0
  657. package/dist/esm/azure/financialScopeEvidence.js +2 -0
  658. package/dist/esm/azure/financialValidationPrimitives.js +15 -0
  659. package/dist/esm/azure/governance.js +14 -0
  660. package/dist/esm/azure/licensing.js +1 -0
  661. package/dist/esm/azure/metrics.js +1 -0
  662. package/dist/esm/azure/payloads.js +1 -0
  663. package/dist/esm/azure/portalArtifacts.js +1 -0
  664. package/dist/esm/azure/prices.js +1 -0
  665. package/dist/esm/azure/publicIpAddresses.js +2 -0
  666. package/dist/esm/azure/recommendationAudit.js +16 -0
  667. package/dist/esm/azure/recommendationState.js +1 -0
  668. package/dist/esm/azure/recommendationTracks.js +40 -0
  669. package/dist/esm/azure/recommendationWorkflow.js +13 -0
  670. package/dist/esm/azure/recommendations.js +10 -0
  671. package/dist/esm/azure/regulatoryCompliance.js +6 -0
  672. package/dist/esm/azure/relationships.js +2 -0
  673. package/dist/esm/azure/reportingTemplates.js +1 -0
  674. package/dist/esm/azure/reports.js +12 -0
  675. package/dist/esm/azure/resourceHealth.js +12 -0
  676. package/dist/esm/azure/resourceOptimization.js +1 -0
  677. package/dist/esm/azure/resources.js +1 -0
  678. package/dist/esm/azure/reviewChecklist.js +1 -0
  679. package/dist/esm/azure/savings.js +1 -0
  680. package/dist/esm/azure/secureScore.js +1 -0
  681. package/dist/esm/azure/security.js +1 -0
  682. package/dist/esm/azure/serviceRetirement.js +1 -0
  683. package/dist/esm/azure/serviceRetirementState.js +1 -0
  684. package/dist/esm/azure/serviceRetirementWorkManagement.js +1 -0
  685. package/dist/esm/azure/storage-inventory.js +1 -0
  686. package/dist/esm/azure/subscriptions.js +1 -0
  687. package/dist/esm/azure/views.js +505 -0
  688. package/dist/esm/azure/workManagement.js +4 -0
  689. package/dist/esm/common/artifactControlData.js +200 -0
  690. package/dist/esm/common/artifactEvidence.js +198 -0
  691. package/dist/esm/common/artifactEvidenceValidation.js +24 -0
  692. package/dist/esm/common/artifactGeneration.js +1 -0
  693. package/dist/esm/common/capabilityPassport.js +206 -0
  694. package/dist/esm/common/exactDecimal.js +49 -0
  695. package/dist/esm/common/index.js +9 -0
  696. package/dist/esm/common/pagination.js +1 -0
  697. package/dist/esm/common/provider.js +11 -0
  698. package/dist/esm/common/providerSyncProgress.js +1 -0
  699. package/dist/esm/common/relationships.js +1 -0
  700. package/dist/esm/common/sha256.js +89 -0
  701. package/dist/esm/common/syncProgress.js +1 -0
  702. package/dist/esm/company/billingAccount.js +1 -0
  703. package/dist/esm/company/company.js +1 -0
  704. package/dist/esm/company/companyHierarchy.js +1 -0
  705. package/dist/esm/company/companyNotes.js +38 -0
  706. package/dist/esm/company/customProperties.js +1 -0
  707. package/dist/esm/company/index.js +6 -0
  708. package/dist/esm/company/notification.js +43 -0
  709. package/dist/esm/company/survey.js +1 -0
  710. package/dist/esm/customProperties/customProperties.js +1 -0
  711. package/dist/esm/customProperties/index.js +1 -0
  712. package/dist/esm/entries/aws.js +3 -0
  713. package/dist/esm/entries/commitments-planning.js +3 -0
  714. package/dist/esm/entries/provider.js +3 -0
  715. package/dist/esm/entries/recommendations.js +3 -0
  716. package/dist/esm/entries/relationships.js +3 -0
  717. package/dist/esm/entries/root.js +3 -0
  718. package/dist/esm/events/actionGroups.js +1 -0
  719. package/dist/esm/events/alertDefinitionRun.js +1 -0
  720. package/dist/esm/events/baseAlert.js +1 -0
  721. package/dist/esm/events/cost.js +1 -0
  722. package/dist/esm/events/costAnomalies.js +1 -0
  723. package/dist/esm/events/costViews.js +1 -0
  724. package/dist/esm/events/eventStatus.js +1 -0
  725. package/dist/esm/events/index.js +8 -0
  726. package/dist/esm/events/quickAlerts.js +2 -0
  727. package/dist/esm/features-and-permissions/access.js +1 -0
  728. package/dist/esm/features-and-permissions/index.js +1 -0
  729. package/dist/esm/feedbacks/feedback.js +1 -0
  730. package/dist/esm/identity/apikey.js +1 -0
  731. package/dist/esm/identity/index.js +1 -0
  732. package/dist/esm/index.js +62 -0
  733. package/dist/esm/index.vite.js +48 -0
  734. package/dist/esm/integrations/autotask.js +1 -0
  735. package/dist/esm/integrations/azureDevOps.js +1 -0
  736. package/dist/esm/integrations/github.js +1 -0
  737. package/dist/esm/integrations/halo.js +1 -0
  738. package/dist/esm/integrations/index.js +5 -0
  739. package/dist/esm/integrations/integrationTickets.js +1 -0
  740. package/dist/esm/package.json +3 -0
  741. package/dist/esm/portfolio/index.js +2 -0
  742. package/dist/esm/portfolio/portfolioOperations.js +1 -0
  743. package/dist/esm/portfolio/portfolioProjections.js +17 -0
  744. package/dist/esm/scheduler/index.js +1 -0
  745. package/dist/esm/scheduler/scheduler.js +1 -0
  746. package/dist/esm/tags/index.js +1 -0
  747. package/dist/esm/tags/tags.js +6 -0
  748. package/dist/esm/unknown/services.js +1 -0
  749. package/dist/esm/users/companyUser.js +2 -0
  750. package/dist/esm/users/index.js +2 -0
  751. package/dist/esm/users/user.js +1 -0
  752. package/dist/events/actionGroups.d.ts +85 -0
  753. package/dist/events/actionGroups.d.ts.map +1 -0
  754. package/dist/events/actionGroups.js +3 -0
  755. package/dist/events/actionGroups.js.map +1 -0
  756. package/dist/events/alertDefinitionRun.d.ts +23 -0
  757. package/dist/events/alertDefinitionRun.d.ts.map +1 -0
  758. package/dist/events/alertDefinitionRun.js +3 -0
  759. package/dist/events/alertDefinitionRun.js.map +1 -0
  760. package/dist/events/baseAlert.d.ts +140 -0
  761. package/dist/events/baseAlert.d.ts.map +1 -0
  762. package/dist/events/baseAlert.js +3 -0
  763. package/dist/events/baseAlert.js.map +1 -0
  764. package/dist/events/cost.d.ts +375 -0
  765. package/dist/events/cost.d.ts.map +1 -0
  766. package/dist/events/cost.js +3 -0
  767. package/dist/events/cost.js.map +1 -0
  768. package/dist/events/costAnomalies.d.ts +47 -0
  769. package/dist/events/costAnomalies.d.ts.map +1 -0
  770. package/dist/events/costAnomalies.js +3 -0
  771. package/dist/events/costAnomalies.js.map +1 -0
  772. package/dist/events/costViews.d.ts +25 -0
  773. package/dist/events/costViews.d.ts.map +1 -0
  774. package/dist/events/costViews.js +3 -0
  775. package/dist/events/costViews.js.map +1 -0
  776. package/dist/events/eventStatus.d.ts +8 -0
  777. package/dist/events/eventStatus.d.ts.map +1 -1
  778. package/dist/events/index.d.ts +7 -0
  779. package/dist/events/index.d.ts.map +1 -1
  780. package/dist/events/index.js +7 -0
  781. package/dist/events/index.js.map +1 -1
  782. package/dist/events/quickAlerts.d.ts +67 -0
  783. package/dist/events/quickAlerts.d.ts.map +1 -0
  784. package/dist/events/quickAlerts.js +7 -0
  785. package/dist/events/quickAlerts.js.map +1 -0
  786. package/dist/features-and-permissions/access.d.ts +139 -0
  787. package/dist/features-and-permissions/access.d.ts.map +1 -0
  788. package/dist/features-and-permissions/access.js +3 -0
  789. package/dist/features-and-permissions/access.js.map +1 -0
  790. package/dist/features-and-permissions/index.d.ts +2 -0
  791. package/dist/features-and-permissions/index.d.ts.map +1 -0
  792. package/dist/features-and-permissions/index.js +18 -0
  793. package/dist/features-and-permissions/index.js.map +1 -0
  794. package/dist/identity/apikey.d.ts +20 -3
  795. package/dist/identity/apikey.d.ts.map +1 -1
  796. package/dist/index.d.ts +39 -1
  797. package/dist/index.d.ts.map +1 -1
  798. package/dist/index.js +39 -1
  799. package/dist/index.js.map +1 -1
  800. package/dist/index.vite.d.ts +49 -0
  801. package/dist/index.vite.d.ts.map +1 -0
  802. package/dist/index.vite.js +65 -0
  803. package/dist/index.vite.js.map +1 -0
  804. package/dist/integrations/autotask.d.ts +108 -0
  805. package/dist/integrations/autotask.d.ts.map +1 -0
  806. package/dist/integrations/autotask.js +3 -0
  807. package/dist/integrations/autotask.js.map +1 -0
  808. package/dist/integrations/azureDevOps.d.ts +130 -0
  809. package/dist/integrations/azureDevOps.d.ts.map +1 -0
  810. package/dist/integrations/azureDevOps.js +3 -0
  811. package/dist/integrations/azureDevOps.js.map +1 -0
  812. package/dist/integrations/github.d.ts +96 -0
  813. package/dist/integrations/github.d.ts.map +1 -0
  814. package/dist/integrations/github.js +3 -0
  815. package/dist/integrations/github.js.map +1 -0
  816. package/dist/integrations/halo.d.ts +76 -0
  817. package/dist/integrations/halo.d.ts.map +1 -0
  818. package/dist/integrations/halo.js +3 -0
  819. package/dist/integrations/halo.js.map +1 -0
  820. package/dist/integrations/index.d.ts +6 -0
  821. package/dist/integrations/index.d.ts.map +1 -0
  822. package/dist/integrations/index.js +22 -0
  823. package/dist/integrations/index.js.map +1 -0
  824. package/dist/integrations/integrationTickets.d.ts +77 -0
  825. package/dist/integrations/integrationTickets.d.ts.map +1 -0
  826. package/dist/integrations/integrationTickets.js +3 -0
  827. package/dist/integrations/integrationTickets.js.map +1 -0
  828. package/dist/portfolio/index.d.ts +3 -0
  829. package/dist/portfolio/index.d.ts.map +1 -0
  830. package/dist/portfolio/index.js +19 -0
  831. package/dist/portfolio/index.js.map +1 -0
  832. package/dist/portfolio/portfolioOperations.d.ts +174 -0
  833. package/dist/portfolio/portfolioOperations.d.ts.map +1 -0
  834. package/dist/portfolio/portfolioOperations.js +3 -0
  835. package/dist/portfolio/portfolioOperations.js.map +1 -0
  836. package/dist/portfolio/portfolioProjections.d.ts +460 -0
  837. package/dist/portfolio/portfolioProjections.d.ts.map +1 -0
  838. package/dist/portfolio/portfolioProjections.js +21 -0
  839. package/dist/portfolio/portfolioProjections.js.map +1 -0
  840. package/dist/scheduler/index.d.ts +2 -0
  841. package/dist/scheduler/index.d.ts.map +1 -0
  842. package/dist/scheduler/index.js +18 -0
  843. package/dist/scheduler/index.js.map +1 -0
  844. package/dist/scheduler/scheduler.d.ts +263 -0
  845. package/dist/scheduler/scheduler.d.ts.map +1 -0
  846. package/dist/scheduler/scheduler.js +3 -0
  847. package/dist/scheduler/scheduler.js.map +1 -0
  848. package/dist/tags/index.d.ts +2 -0
  849. package/dist/tags/index.d.ts.map +1 -0
  850. package/dist/tags/index.js +18 -0
  851. package/dist/tags/index.js.map +1 -0
  852. package/dist/tags/tags.d.ts +37 -0
  853. package/dist/tags/tags.d.ts.map +1 -0
  854. package/dist/tags/tags.js +10 -0
  855. package/dist/tags/tags.js.map +1 -0
  856. package/dist/unknown/services.d.ts +12 -0
  857. package/dist/unknown/services.d.ts.map +1 -0
  858. package/dist/unknown/services.js +3 -0
  859. package/dist/unknown/services.js.map +1 -0
  860. package/dist/users/companyUser.d.ts +14 -0
  861. package/dist/users/companyUser.d.ts.map +1 -1
  862. package/dist/users/companyUser.js.map +1 -1
  863. package/dist/users/user.d.ts +20 -1
  864. package/dist/users/user.d.ts.map +1 -1
  865. package/package.json +82 -4
  866. package/dist/azure/costEstimation.d.ts.map +0 -1
  867. package/dist/azure/costEstimation.js.map +0 -1
@@ -0,0 +1,397 @@
1
+ import { asRecord, assertExactKeys, assertUnique, assertValue, finiteNumber, isoTimestamp, nonNegativeInteger, requiredBoolean, requiredEnum, requiredString, stringArray, } from './portalPublicArtifactValidationCommon.js';
2
+ import { validateRecommendationActionHealth, validateRecommendationSourceEvidence } from './portalPublicArtifactEvidenceValidation.js';
3
+ const ACTION_STATUSES = ['accepted', 'completed', 'failed', 'retryable-failure', 'skipped'];
4
+ const ACTION_TYPES = ['DeleteDBInstance', 'DeleteNatGateway', 'ModifyVolume', 'ModifyStorage', 'Rightsize'];
5
+ const PROVIDER_ACTIONS = [
6
+ 'rds-modify-db-cluster-storage-type',
7
+ 'autoscaling-update-group-instance-refresh',
8
+ 'ec2-modify-volume',
9
+ 'ec2-stop-modify-start-instance-type',
10
+ 'ecs-register-task-definition-update-service',
11
+ 'ec2-delete-nat-gateway',
12
+ 'lambda-update-function-configuration',
13
+ 'rds-delete-db-instance',
14
+ 'rds-modify-db-instance',
15
+ ];
16
+ const SKIP_REASONS = [
17
+ 'recommendation-state-not-found',
18
+ 'source-recommendation-missing',
19
+ 'source-recommendation-not-found',
20
+ 'published-version-immutable',
21
+ 'provider-preflight-conflict',
22
+ 'provider-preflight-unsupported',
23
+ 'unsupported-recommendation-shape',
24
+ 'no-effective-provider-change',
25
+ ];
26
+ const RECOMMENDATION_SOURCES = [
27
+ 'custom',
28
+ 'compute-optimizer',
29
+ 'cost-optimization-hub',
30
+ 'resilience-hub',
31
+ 'security-hub',
32
+ 'trusted-advisor',
33
+ 'well-architected',
34
+ ];
35
+ export function validateResourceBillingEvidence(value, field) {
36
+ const billing = asRecord(value, field);
37
+ assertExactKeys(billing, ['costProvenance', 'matchedExpenseCount', 'totalsByCurrency', 'costViewByCurrency', 'commitmentSpend', 'benefitsCoverage', 'coverageWarning'], field);
38
+ const provenance = asRecord(billing.costProvenance, `${field}.costProvenance`);
39
+ assertExactKeys(provenance, ['costSource', 'costSourceConfidence'], `${field}.costProvenance`);
40
+ assertValue(provenance.costSource, 'billing', `${field}.costProvenance.costSource`);
41
+ assertValue(provenance.costSourceConfidence, 'high', `${field}.costProvenance.costSourceConfidence`);
42
+ nonNegativeInteger(billing.matchedExpenseCount, `${field}.matchedExpenseCount`);
43
+ validateCostTotals(billing.totalsByCurrency, `${field}.totalsByCurrency`);
44
+ validateCostViews(billing.costViewByCurrency, `${field}.costViewByCurrency`);
45
+ validateCommitmentSpend(billing.commitmentSpend, `${field}.commitmentSpend`);
46
+ if (billing.benefitsCoverage !== undefined)
47
+ validateBenefitCoverage(billing.benefitsCoverage, `${field}.benefitsCoverage`);
48
+ if (billing.coverageWarning !== undefined)
49
+ validateBenefitWarning(billing.coverageWarning, `${field}.coverageWarning`);
50
+ }
51
+ export function validateRecommendationActionability(value, field) {
52
+ const actionability = asRecord(value, field);
53
+ assertExactKeys(actionability, ['latestActionStableMaterializationKey', 'latestActionExecution', 'savingsVerification'], field);
54
+ requiredString(actionability.latestActionStableMaterializationKey, `${field}.latestActionStableMaterializationKey`);
55
+ validateLatestAction(actionability.latestActionExecution, `${field}.latestActionExecution`);
56
+ if (actionability.savingsVerification !== undefined)
57
+ validateSavingsVerification(actionability.savingsVerification, `${field}.savingsVerification`);
58
+ }
59
+ export function validateTemplateProvenanceSources(value, field) {
60
+ if (!Array.isArray(value))
61
+ throw new Error(`${field} must be an array.`);
62
+ const identities = [];
63
+ value.forEach((entry, index) => {
64
+ const itemField = `${field}[${index}]`;
65
+ const source = asRecord(entry, itemField);
66
+ assertExactKeys(source, [
67
+ 'recommendationCode',
68
+ 'templateId',
69
+ 'relativePath',
70
+ 'source',
71
+ 'format',
72
+ 'confidencePercentage',
73
+ 'confidenceReason',
74
+ 'primarySourceUrl',
75
+ 'firstPartyValidationSourceCount',
76
+ 'communitySourceCount',
77
+ ], itemField);
78
+ const recommendationCode = requiredString(source.recommendationCode, `${itemField}.recommendationCode`);
79
+ const relativePath = requiredString(source.relativePath, `${itemField}.relativePath`);
80
+ identities.push(`${recommendationCode}|${relativePath}`);
81
+ requiredString(source.templateId, `${itemField}.templateId`);
82
+ requiredEnum(source.source, ['internal', 'external'], `${itemField}.source`);
83
+ requiredEnum(source.format, ['canonical-v1', 'external-catalog-v1'], `${itemField}.format`);
84
+ if (source.confidencePercentage !== undefined)
85
+ percentage(source.confidencePercentage, `${itemField}.confidencePercentage`);
86
+ if (source.confidenceReason !== undefined)
87
+ requiredString(source.confidenceReason, `${itemField}.confidenceReason`);
88
+ if (source.primarySourceUrl !== undefined)
89
+ httpsUrl(source.primarySourceUrl, `${itemField}.primarySourceUrl`);
90
+ nonNegativeInteger(source.firstPartyValidationSourceCount, `${itemField}.firstPartyValidationSourceCount`);
91
+ nonNegativeInteger(source.communitySourceCount, `${itemField}.communitySourceCount`);
92
+ });
93
+ assertUnique(identities, field);
94
+ }
95
+ export function validateRecommendationPosture(value, field) {
96
+ const posture = asRecord(value, field);
97
+ assertExactKeys(posture, ['sourceCount', 'sources'], field);
98
+ const sourceCount = nonNegativeInteger(posture.sourceCount, `${field}.sourceCount`);
99
+ if (!Array.isArray(posture.sources) || posture.sources.length !== sourceCount)
100
+ throw new Error(`${field}.sources length must equal sourceCount.`);
101
+ const sources = [];
102
+ posture.sources.forEach((entry, index) => {
103
+ const itemField = `${field}.sources[${index}]`;
104
+ const source = asRecord(entry, itemField);
105
+ assertExactKeys(source, ['source', 'sourceEvidence', 'actionHealth'], itemField);
106
+ sources.push(requiredEnum(source.source, RECOMMENDATION_SOURCES, `${itemField}.source`));
107
+ if (source.sourceEvidence !== undefined)
108
+ validateRecommendationSourceEvidence(source.sourceEvidence, `${itemField}.sourceEvidence`);
109
+ if (source.actionHealth !== undefined)
110
+ validateRecommendationActionHealth(source.actionHealth, `${itemField}.actionHealth`);
111
+ });
112
+ assertUnique(sources, `${field}.sources`);
113
+ }
114
+ export function validateSavingsByCurrency(value, field) {
115
+ if (!Array.isArray(value))
116
+ throw new Error(`${field} must be an array.`);
117
+ const currencies = [];
118
+ value.forEach((entry, index) => {
119
+ const itemField = `${field}[${index}]`;
120
+ const item = asRecord(entry, itemField);
121
+ assertExactKeys(item, ['currencyCode', 'recommendationCount', 'totalEstimatedMonthlySavings'], itemField);
122
+ currencies.push(requiredString(item.currencyCode, `${itemField}.currencyCode`));
123
+ nonNegativeInteger(item.recommendationCount, `${itemField}.recommendationCount`);
124
+ finiteNumber(item.totalEstimatedMonthlySavings, `${itemField}.totalEstimatedMonthlySavings`);
125
+ });
126
+ assertUnique(currencies, field);
127
+ }
128
+ function validateLatestAction(value, field) {
129
+ const action = asRecord(value, field);
130
+ const keys = [
131
+ 'status',
132
+ 'recordedAt',
133
+ 'requestId',
134
+ 'requestedAt',
135
+ 'requestedBy',
136
+ 'actionType',
137
+ 'providerAction',
138
+ 'completionMode',
139
+ 'acceptedAt',
140
+ 'completedAt',
141
+ 'failedAt',
142
+ 'providerRequestId',
143
+ 'currentResourceSummary',
144
+ 'recommendedResourceSummary',
145
+ 'sourceTitle',
146
+ 'estimatedMonthlySavings',
147
+ 'estimatedSavingsPercentage',
148
+ 'currencyCode',
149
+ 'message',
150
+ 'skipReason',
151
+ 'implementationChanged',
152
+ 'implementationImplemented',
153
+ 'implementationPreviouslyImplemented',
154
+ ];
155
+ assertExactKeys(action, keys, field);
156
+ requiredEnum(action.status, ACTION_STATUSES, `${field}.status`);
157
+ const recordedAt = isoTimestamp(action.recordedAt, `${field}.recordedAt`);
158
+ const requestedAt = isoTimestamp(action.requestedAt, `${field}.requestedAt`);
159
+ if (Date.parse(requestedAt) > Date.parse(recordedAt))
160
+ throw new Error(`${field}.requestedAt must not exceed recordedAt.`);
161
+ requiredString(action.requestId, `${field}.requestId`);
162
+ assertValue(action.requestedBy, 'manual', `${field}.requestedBy`);
163
+ requiredEnum(action.actionType, ACTION_TYPES, `${field}.actionType`);
164
+ requiredEnum(action.providerAction, PROVIDER_ACTIONS, `${field}.providerAction`);
165
+ assertValue(action.completionMode, 'provider-poll', `${field}.completionMode`);
166
+ ['acceptedAt', 'completedAt', 'failedAt'].forEach(key => {
167
+ if (action[key] !== undefined)
168
+ isoTimestamp(action[key], `${field}.${key}`);
169
+ });
170
+ ['providerRequestId', 'currentResourceSummary', 'recommendedResourceSummary', 'sourceTitle', 'currencyCode', 'message'].forEach(key => {
171
+ if (action[key] !== undefined)
172
+ requiredString(action[key], `${field}.${key}`);
173
+ });
174
+ ['estimatedMonthlySavings', 'estimatedSavingsPercentage'].forEach(key => {
175
+ if (action[key] !== undefined)
176
+ finiteNumber(action[key], `${field}.${key}`);
177
+ });
178
+ if (action.skipReason !== undefined)
179
+ requiredEnum(action.skipReason, SKIP_REASONS, `${field}.skipReason`);
180
+ ['implementationChanged', 'implementationImplemented', 'implementationPreviouslyImplemented'].forEach(key => {
181
+ if (action[key] !== undefined)
182
+ requiredBoolean(action[key], `${field}.${key}`);
183
+ });
184
+ }
185
+ function validateSavingsVerification(value, field) {
186
+ const verification = asRecord(value, field);
187
+ const required = [
188
+ 'verificationStatus',
189
+ 'artifactType',
190
+ 'actionRequestId',
191
+ 'actionCompletedAt',
192
+ 'postActionEvidenceStatus',
193
+ 'postActionEvidenceReason',
194
+ ];
195
+ const optional = [
196
+ 'postActionArtifactGeneratedAt',
197
+ 'postActionRefreshRequestId',
198
+ 'postActionPendingRefreshRequestedAt',
199
+ 'postActionPendingRefreshUpdatedAt',
200
+ 'postActionPendingRefreshSummary',
201
+ 'postActionRetainedRefreshAttemptSummary',
202
+ 'postActionSourcePresence',
203
+ 'actionEstimatedMonthlySavings',
204
+ 'actionEstimatedSavingsPercentage',
205
+ 'actionCurrencyCode',
206
+ 'currentEstimatedMonthlySavings',
207
+ 'currentEstimatedSavingsPercentage',
208
+ 'currentCurrencyCode',
209
+ 'currencyCodesMatch',
210
+ ];
211
+ assertExactKeys(verification, [...required, ...optional], field);
212
+ requiredEnum(verification.verificationStatus, [
213
+ 'pending-post-action-refresh',
214
+ 'recommendation-absent-after-refresh',
215
+ 'recommendation-still-present-after-refresh',
216
+ 'post-action-evidence-truncated',
217
+ ], `${field}.verificationStatus`);
218
+ assertValue(verification.artifactType, 'recommendations', `${field}.artifactType`);
219
+ requiredString(verification.actionRequestId, `${field}.actionRequestId`);
220
+ isoTimestamp(verification.actionCompletedAt, `${field}.actionCompletedAt`);
221
+ requiredEnum(verification.postActionEvidenceStatus, ['qualified', 'refresh-pending', 'missing', 'stale', 'unqualified'], `${field}.postActionEvidenceStatus`);
222
+ requiredEnum(verification.postActionEvidenceReason, [
223
+ 'qualified-post-action-artifact',
224
+ 'canonical-refresh-row-pending',
225
+ 'canonical-refresh-row-missing',
226
+ 'artifact-generated-before-action-completion',
227
+ 'artifact-refresh-request-mismatch',
228
+ 'artifact-refresh-trigger-mismatch',
229
+ 'artifact-changed-key-missing',
230
+ 'artifact-type-mismatch',
231
+ ], `${field}.postActionEvidenceReason`);
232
+ ['postActionArtifactGeneratedAt', 'postActionPendingRefreshRequestedAt', 'postActionPendingRefreshUpdatedAt'].forEach(key => {
233
+ if (verification[key] !== undefined)
234
+ isoTimestamp(verification[key], `${field}.${key}`);
235
+ });
236
+ if (verification.postActionRefreshRequestId !== undefined)
237
+ requiredString(verification.postActionRefreshRequestId, `${field}.postActionRefreshRequestId`);
238
+ if (verification.postActionPendingRefreshSummary !== undefined)
239
+ validatePendingRefresh(verification.postActionPendingRefreshSummary, `${field}.postActionPendingRefreshSummary`);
240
+ if (verification.postActionRetainedRefreshAttemptSummary !== undefined)
241
+ validateRefreshAttempts(verification.postActionRetainedRefreshAttemptSummary, `${field}.postActionRetainedRefreshAttemptSummary`);
242
+ if (verification.postActionSourcePresence !== undefined)
243
+ requiredEnum(verification.postActionSourcePresence, ['current', 'missing'], `${field}.postActionSourcePresence`);
244
+ optional
245
+ .filter(key => key.includes('Estimated'))
246
+ .forEach(key => {
247
+ if (verification[key] !== undefined)
248
+ finiteNumber(verification[key], `${field}.${key}`);
249
+ });
250
+ ['actionCurrencyCode', 'currentCurrencyCode'].forEach(key => {
251
+ if (verification[key] !== undefined)
252
+ requiredString(verification[key], `${field}.${key}`);
253
+ });
254
+ if (verification.currencyCodesMatch !== undefined)
255
+ requiredBoolean(verification.currencyCodesMatch, `${field}.currencyCodesMatch`);
256
+ }
257
+ function validatePendingRefresh(value, field) {
258
+ const summary = asRecord(value, field);
259
+ assertExactKeys(summary, ['pendingArtifactCount', 'pendingArtifactTypes', 'oldestPendingRefreshUpdatedAt', 'newestPendingRefreshUpdatedAt', 'executionAttemptSummary'], field);
260
+ nonNegativeInteger(summary.pendingArtifactCount, `${field}.pendingArtifactCount`);
261
+ stringArray(summary.pendingArtifactTypes, `${field}.pendingArtifactTypes`).forEach(type => requiredEnum(type, ['recommendations', 'resource-recommendations', 'resource-type-recommendations'], `${field}.pendingArtifactTypes`));
262
+ ['oldestPendingRefreshUpdatedAt', 'newestPendingRefreshUpdatedAt'].forEach(key => {
263
+ if (summary[key] !== undefined)
264
+ isoTimestamp(summary[key], `${field}.${key}`);
265
+ });
266
+ if (summary.executionAttemptSummary !== undefined)
267
+ validateRefreshAttempts(summary.executionAttemptSummary, `${field}.executionAttemptSummary`);
268
+ }
269
+ function validateRefreshAttempts(value, field) {
270
+ const summary = asRecord(value, field);
271
+ assertExactKeys(summary, ['attemptedArtifactCount', 'failedAttemptCount', 'supersededAttemptCount', 'attemptReasons', 'oldestAttemptedAt', 'newestAttemptedAt'], field);
272
+ ['attemptedArtifactCount', 'failedAttemptCount', 'supersededAttemptCount'].forEach(key => nonNegativeInteger(summary[key], `${field}.${key}`));
273
+ stringArray(summary.attemptReasons, `${field}.attemptReasons`);
274
+ ['oldestAttemptedAt', 'newestAttemptedAt'].forEach(key => {
275
+ if (summary[key] !== undefined)
276
+ isoTimestamp(summary[key], `${field}.${key}`);
277
+ });
278
+ }
279
+ function validateCommitmentSpend(value, field) {
280
+ const spend = asRecord(value, field);
281
+ assertExactKeys(spend, [
282
+ 'expenseCountWithCommitmentEvidence',
283
+ 'expenseCountWithoutCommitmentEvidence',
284
+ 'totalsByCurrency',
285
+ 'costViewByCurrency',
286
+ 'groupedByAmortizationSource',
287
+ ], field);
288
+ nonNegativeInteger(spend.expenseCountWithCommitmentEvidence, `${field}.expenseCountWithCommitmentEvidence`);
289
+ nonNegativeInteger(spend.expenseCountWithoutCommitmentEvidence, `${field}.expenseCountWithoutCommitmentEvidence`);
290
+ validateCostTotals(spend.totalsByCurrency, `${field}.totalsByCurrency`);
291
+ validateCostViews(spend.costViewByCurrency, `${field}.costViewByCurrency`);
292
+ if (!Array.isArray(spend.groupedByAmortizationSource))
293
+ throw new Error(`${field}.groupedByAmortizationSource must be an array.`);
294
+ const sources = [];
295
+ spend.groupedByAmortizationSource.forEach((entry, index) => {
296
+ const itemField = `${field}.groupedByAmortizationSource[${index}]`;
297
+ const source = asRecord(entry, itemField);
298
+ assertExactKeys(source, ['amortizationSource', 'expenseCount', 'totalsByCurrency', 'costViewByCurrency'], itemField);
299
+ sources.push(requiredEnum(source.amortizationSource, ['reservation-effective-cost', 'savings-plan-effective-cost'], `${itemField}.amortizationSource`));
300
+ nonNegativeInteger(source.expenseCount, `${itemField}.expenseCount`);
301
+ validateCostTotals(source.totalsByCurrency, `${itemField}.totalsByCurrency`);
302
+ validateCostViews(source.costViewByCurrency, `${itemField}.costViewByCurrency`);
303
+ });
304
+ assertUnique(sources, `${field}.groupedByAmortizationSource`);
305
+ }
306
+ function validateBenefitCoverage(value, field) {
307
+ const coverage = asRecord(value, field);
308
+ assertExactKeys(coverage, ['authority', 'status', 'matchedExpenseCount', 'coveredExpenseCount', 'unclassifiedExpenseCount', 'byBenefitType'], field);
309
+ assertValue(coverage.authority, 'persisted-billing-expense-amortization', `${field}.authority`);
310
+ requiredEnum(coverage.status, ['available', 'partial-persisted-evidence', 'missing-persisted-evidence'], `${field}.status`);
311
+ ['matchedExpenseCount', 'coveredExpenseCount', 'unclassifiedExpenseCount'].forEach(key => nonNegativeInteger(coverage[key], `${field}.${key}`));
312
+ if (!Array.isArray(coverage.byBenefitType))
313
+ throw new Error(`${field}.byBenefitType must be an array.`);
314
+ const types = [];
315
+ coverage.byBenefitType.forEach((entry, index) => {
316
+ const itemField = `${field}.byBenefitType[${index}]`;
317
+ const benefit = asRecord(entry, itemField);
318
+ assertExactKeys(benefit, ['benefitType', 'amortizationSource', 'expenseCount', 'totalsByCurrency', 'costViewByCurrency'], itemField);
319
+ types.push(requiredEnum(benefit.benefitType, ['reserved-instance', 'savings-plan'], `${itemField}.benefitType`));
320
+ requiredEnum(benefit.amortizationSource, ['reservation-effective-cost', 'savings-plan-effective-cost'], `${itemField}.amortizationSource`);
321
+ nonNegativeInteger(benefit.expenseCount, `${itemField}.expenseCount`);
322
+ validateCostTotals(benefit.totalsByCurrency, `${itemField}.totalsByCurrency`);
323
+ validateCostViews(benefit.costViewByCurrency, `${itemField}.costViewByCurrency`);
324
+ });
325
+ assertUnique(types, `${field}.byBenefitType`);
326
+ }
327
+ function validateBenefitWarning(value, field) {
328
+ const warning = asRecord(value, field);
329
+ assertExactKeys(warning, ['code', 'severity', 'matchedExpenseCount', 'unclassifiedExpenseCount', 'message'], field);
330
+ requiredEnum(warning.code, ['ri-sp-coverage-evidence-missing', 'ri-sp-coverage-evidence-partial'], `${field}.code`);
331
+ assertValue(warning.severity, 'warning', `${field}.severity`);
332
+ nonNegativeInteger(warning.matchedExpenseCount, `${field}.matchedExpenseCount`);
333
+ nonNegativeInteger(warning.unclassifiedExpenseCount, `${field}.unclassifiedExpenseCount`);
334
+ requiredString(warning.message, `${field}.message`);
335
+ }
336
+ function validateCostTotals(value, field) {
337
+ if (!Array.isArray(value))
338
+ throw new Error(`${field} must be an array.`);
339
+ const currencies = [];
340
+ value.forEach((entry, index) => {
341
+ const itemField = `${field}[${index}]`;
342
+ const total = asRecord(entry, itemField);
343
+ assertExactKeys(total, ['currency', 'expenseCount', 'baseCostAmount', 'amortizedCostAmount', 'amortizedExpenseCount'], itemField);
344
+ currencies.push(requiredString(total.currency, `${itemField}.currency`));
345
+ nonNegativeInteger(total.expenseCount, `${itemField}.expenseCount`);
346
+ finiteNumber(total.baseCostAmount, `${itemField}.baseCostAmount`);
347
+ if (total.amortizedCostAmount !== undefined)
348
+ finiteNumber(total.amortizedCostAmount, `${itemField}.amortizedCostAmount`);
349
+ if (total.amortizedExpenseCount !== undefined)
350
+ nonNegativeInteger(total.amortizedExpenseCount, `${itemField}.amortizedExpenseCount`);
351
+ });
352
+ assertUnique(currencies, field);
353
+ }
354
+ function validateCostViews(value, field) {
355
+ if (!Array.isArray(value))
356
+ throw new Error(`${field} must be an array.`);
357
+ const currencies = [];
358
+ value.forEach((entry, index) => {
359
+ const itemField = `${field}[${index}]`;
360
+ const view = asRecord(entry, itemField);
361
+ assertExactKeys(view, [
362
+ 'currency',
363
+ 'actualCostAmount',
364
+ 'amortizedCostAmount',
365
+ 'amortizedExpenseCount',
366
+ 'amortizationCoverageState',
367
+ 'actualVsAmortizedDeltaAmount',
368
+ 'commitmentCoverageState',
369
+ 'showAmortizedCosts',
370
+ ], itemField);
371
+ currencies.push(requiredString(view.currency, `${itemField}.currency`));
372
+ finiteNumber(view.actualCostAmount, `${itemField}.actualCostAmount`);
373
+ ['amortizedCostAmount', 'actualVsAmortizedDeltaAmount'].forEach(key => {
374
+ if (view[key] !== undefined)
375
+ finiteNumber(view[key], `${itemField}.${key}`);
376
+ });
377
+ if (view.amortizedExpenseCount !== undefined)
378
+ nonNegativeInteger(view.amortizedExpenseCount, `${itemField}.amortizedExpenseCount`);
379
+ if (view.amortizationCoverageState !== undefined)
380
+ requiredEnum(view.amortizationCoverageState, ['complete', 'partial', 'none', 'unavailable'], `${itemField}.amortizationCoverageState`);
381
+ requiredEnum(view.commitmentCoverageState, ['discounted', 'no-amortized-cost', 'no-delta', 'amortized-exceeds-base', 'partial-amortized-cost', 'amortization-coverage-unavailable'], `${itemField}.commitmentCoverageState`);
382
+ requiredBoolean(view.showAmortizedCosts, `${itemField}.showAmortizedCosts`);
383
+ });
384
+ assertUnique(currencies, field);
385
+ }
386
+ function percentage(value, field) {
387
+ const result = finiteNumber(value, field);
388
+ if (result < 0 || result > 100)
389
+ throw new Error(`${field} must be between 0 and 100.`);
390
+ return result;
391
+ }
392
+ function httpsUrl(value, field) {
393
+ const result = requiredString(value, field);
394
+ if (!result.startsWith('https://'))
395
+ throw new Error(`${field} must be an HTTPS URL.`);
396
+ return result;
397
+ }
@@ -0,0 +1,2 @@
1
+ export { validateAwsPortalAccountSummaryDetailArtifact, validateAwsPortalResourceCollectionDetailArtifact, } from './portalPublicArtifactCurrentValidation.js';
2
+ export { validateAwsPortalAccountSummaryAiCostSummaryArtifact, validateAwsPortalAccountSummaryAiCostSummarySiblingBinding, validateAwsPortalAccountSummaryHistoryArtifact, validateAwsPortalResourceCollectionHistoryArtifact, validateAwsPortalRetainedHistoryBodyBinding, validateAwsPortalRetainedHistoryBodyReference, } from './portalPublicArtifactHistoryAiValidation.js';
@@ -0,0 +1,139 @@
1
+ import { AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION, } from './portalPublicArtifacts.js';
2
+ import { AWS_PUBLIC_ARTIFACT_SCHEMA_VERSION } from './publicArtifacts.js';
3
+ import { asRecord, assertAccount, assertExactKeys, assertPublicJson, assertValue, isoTimestamp, requiredEnum, requiredString, stringArray, validateBilling, validateMetricWindow, } from './pluginPublicArtifactValidationHelpers.js';
4
+ export { asRecord, assertExactKeys, assertPublicJson, assertValue, isoTimestamp, requiredEnum, requiredString, stringArray };
5
+ export function validatePortalEnvelope(artifact, artifactType, allowed) {
6
+ assertExactKeys(artifact, allowed, 'artifact');
7
+ assertValue(artifact.schemaVersion, AWS_PUBLIC_ARTIFACT_SCHEMA_VERSION, 'artifact.schemaVersion');
8
+ assertValue(artifact.portalSchemaVersion, AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION, 'artifact.portalSchemaVersion');
9
+ assertValue(artifact.provider, 'aws', 'artifact.provider');
10
+ const accountId = requiredString(artifact.accountId, 'artifact.accountId');
11
+ assertAccount(accountId, accountId, 'artifact.accountId');
12
+ assertValue(artifact.artifactType, artifactType, 'artifact.artifactType');
13
+ const generation = validateGeneration(artifact.artifactGeneration, 'artifact.artifactGeneration');
14
+ const bodyGeneratedAt = isoTimestamp(artifact.generatedAt, 'artifact.generatedAt');
15
+ if (Date.parse(bodyGeneratedAt) > Date.parse(generation.generatedAt))
16
+ throw new Error('artifact.generatedAt must not be newer than the Portal generation.');
17
+ return { accountId, runId: generation.runId, portalGeneratedAt: generation.generatedAt, bodyGeneratedAt };
18
+ }
19
+ export function validateGeneration(value, field) {
20
+ const generation = asRecord(value, field);
21
+ assertExactKeys(generation, ['runId', 'generatedAt'], field);
22
+ return {
23
+ runId: requiredPublicIdentifier(generation.runId, `${field}.runId`),
24
+ generatedAt: isoTimestamp(generation.generatedAt, `${field}.generatedAt`),
25
+ };
26
+ }
27
+ export function validateResourceScope(value, accountId, field) {
28
+ const scope = asRecord(value, field);
29
+ assertExactKeys(scope, ['provider', 'accountId', 'billing', 'resourceRegions', 'metricTimeWindow', 'tagRuleScope'], field);
30
+ assertValue(scope.provider, 'aws', `${field}.provider`);
31
+ assertAccount(scope.accountId, accountId, `${field}.accountId`);
32
+ validateBilling(scope.billing, `${field}.billing`);
33
+ regionArray(scope.resourceRegions, `${field}.resourceRegions`);
34
+ validateMetricWindow(scope.metricTimeWindow, `${field}.metricTimeWindow`);
35
+ if (scope.tagRuleScope !== undefined) {
36
+ const tagRuleScope = asRecord(scope.tagRuleScope, `${field}.tagRuleScope`);
37
+ assertExactKeys(tagRuleScope, ['companyId'], `${field}.tagRuleScope`);
38
+ requiredString(tagRuleScope.companyId, `${field}.tagRuleScope.companyId`);
39
+ }
40
+ return value;
41
+ }
42
+ export function validateAccountScope(value, accountId, field) {
43
+ const scope = asRecord(value, field);
44
+ assertExactKeys(scope, ['provider', 'accountId', 'billing', 'comparisonBillingPeriod', 'resourceRegions', 'metricTimeWindow'], field);
45
+ assertValue(scope.provider, 'aws', `${field}.provider`);
46
+ assertAccount(scope.accountId, accountId, `${field}.accountId`);
47
+ validateBilling(scope.billing, `${field}.billing`);
48
+ if (scope.comparisonBillingPeriod !== undefined)
49
+ validatePeriod(scope.comparisonBillingPeriod, `${field}.comparisonBillingPeriod`);
50
+ regionArray(scope.resourceRegions, `${field}.resourceRegions`);
51
+ validateMetricWindow(scope.metricTimeWindow, `${field}.metricTimeWindow`);
52
+ return value;
53
+ }
54
+ export function validateHistoryAccountScope(value, accountId, field) {
55
+ const scope = asRecord(value, field);
56
+ assertExactKeys(scope, ['provider', 'accountId', 'billing', 'resourceRegions'], field);
57
+ assertValue(scope.provider, 'aws', `${field}.provider`);
58
+ assertAccount(scope.accountId, accountId, `${field}.accountId`);
59
+ validateBilling(scope.billing, `${field}.billing`);
60
+ regionArray(scope.resourceRegions, `${field}.resourceRegions`);
61
+ }
62
+ export function validatePeriod(value, field) {
63
+ const period = asRecord(value, field);
64
+ assertExactKeys(period, ['start', 'end'], field);
65
+ dateValue(period.start, `${field}.start`);
66
+ dateValue(period.end, `${field}.end`);
67
+ if (String(period.start) > String(period.end))
68
+ throw new Error(`${field}.start must not exceed end.`);
69
+ }
70
+ export function validateFreshness(value, field, timestampField) {
71
+ const freshness = asRecord(value, field);
72
+ assertExactKeys(freshness, [timestampField, timestampField === 'lastSuccessfulImportAt' ? 'hasSuccessfulImport' : 'hasSuccessfulRefresh'], field);
73
+ if (freshness[timestampField] !== undefined)
74
+ isoTimestamp(freshness[timestampField], `${field}.${timestampField}`);
75
+ const booleanField = timestampField === 'lastSuccessfulImportAt' ? 'hasSuccessfulImport' : 'hasSuccessfulRefresh';
76
+ requiredBoolean(freshness[booleanField], `${field}.${booleanField}`);
77
+ }
78
+ export function requiredBoolean(value, field) {
79
+ if (typeof value !== 'boolean')
80
+ throw new Error(`${field} must be a boolean.`);
81
+ return value;
82
+ }
83
+ export function nonNegativeInteger(value, field) {
84
+ if (!Number.isSafeInteger(value) || Number(value) < 0)
85
+ throw new Error(`${field} must be a non-negative safe integer.`);
86
+ return Number(value);
87
+ }
88
+ export function finiteNumber(value, field) {
89
+ if (typeof value !== 'number' || !Number.isFinite(value))
90
+ throw new Error(`${field} must be a finite number.`);
91
+ return value;
92
+ }
93
+ export function validateJsonObject(value, field) {
94
+ asRecord(value, field);
95
+ assertPublicJson(value, field);
96
+ }
97
+ export function validateJsonArray(value, field) {
98
+ if (!Array.isArray(value))
99
+ throw new Error(`${field} must be an array.`);
100
+ assertPublicJson(value, field);
101
+ return value;
102
+ }
103
+ export function assertRegionsBelong(regions, allowedRegions, field) {
104
+ const nested = stringArray(regions, field);
105
+ nested.forEach(region => {
106
+ if (!allowedRegions.includes(region))
107
+ throw new Error(`${field} contains Region outside artifact scope: ${region}.`);
108
+ });
109
+ }
110
+ export function assertUnique(values, field) {
111
+ if (new Set(values).size !== values.length)
112
+ throw new Error(`${field} must not contain duplicates.`);
113
+ }
114
+ export function regionArray(value, field) {
115
+ const regions = stringArray(value, field);
116
+ if (regions.length === 0)
117
+ throw new Error(`${field} must not be empty.`);
118
+ assertUnique(regions, field);
119
+ regions.forEach(region => {
120
+ if (region !== 'global' && !/^[a-z]{2}(?:-gov)?-[a-z0-9-]+-\d+$/.test(region))
121
+ throw new Error(`${field} contains a non-canonical AWS Region: ${region}.`);
122
+ });
123
+ return regions;
124
+ }
125
+ export function requiredPublicIdentifier(value, field) {
126
+ const identifier = requiredString(value, field);
127
+ if (identifier.includes('/') || identifier.includes('\\') || identifier.includes('://') || identifier.includes('..'))
128
+ throw new Error(`${field} must not contain a physical path or URI.`);
129
+ return identifier;
130
+ }
131
+ export function dateValue(value, field) {
132
+ const date = requiredString(value, field);
133
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(date) || Number.isNaN(Date.parse(`${date}T00:00:00.000Z`)))
134
+ throw new Error(`${field} must be a calendar date.`);
135
+ const normalized = new Date(`${date}T00:00:00.000Z`).toISOString().slice(0, 10);
136
+ if (normalized !== date)
137
+ throw new Error(`${field} must be a valid calendar date.`);
138
+ return date;
139
+ }
@@ -0,0 +1,73 @@
1
+ import { sha256AwsPluginIdentity } from './pluginPublicArtifacts.js';
2
+ export const AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION = 1;
3
+ export const AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME = 'resources.json.gz';
4
+ export const AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME = 'account-summary.json.gz';
5
+ export const AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME = 'account-summary-ai-cost-summary.json.gz';
6
+ export function buildAwsPortalResourceCollectionHistoryLogicalName(identitySha256) {
7
+ assertSha256(identitySha256, 'identitySha256');
8
+ return `resources-history--${identitySha256}.json.gz`;
9
+ }
10
+ export function buildAwsPortalAccountSummaryHistoryLogicalName(identitySha256) {
11
+ assertSha256(identitySha256, 'identitySha256');
12
+ return `account-summary-history--${identitySha256}.json.gz`;
13
+ }
14
+ export function buildAwsPortalResourceCollectionHistoryIdentityKey(scope, generatedAt) {
15
+ return [
16
+ 'resource-collection-history',
17
+ scope.provider,
18
+ scope.accountId,
19
+ scope.billing.source,
20
+ scope.billing.source === 'cur' ? `report:${scope.billing.reportName}` : `export:${scope.billing.exportName}`,
21
+ scope.billing.billingPeriod.start,
22
+ scope.billing.billingPeriod.end,
23
+ scope.resourceRegions.join(','),
24
+ scope.metricTimeWindow.start,
25
+ scope.metricTimeWindow.end,
26
+ ...(scope.tagRuleScope ? [`tag-rules:company:${scope.tagRuleScope.companyId}`] : []),
27
+ generatedAt,
28
+ ].join('|');
29
+ }
30
+ export function buildAwsPortalResourceCollectionHistoryLogicalNameForScope(scope, generatedAt) {
31
+ return buildAwsPortalResourceCollectionHistoryLogicalName(sha256Text(buildAwsPortalResourceCollectionHistoryIdentityKey(scope, generatedAt)));
32
+ }
33
+ export function buildAwsPortalAccountSummaryHistoryIdentityKey(scope) {
34
+ return [
35
+ 'account-summary-history',
36
+ scope.provider,
37
+ scope.accountId,
38
+ scope.billing.source,
39
+ scope.billing.source === 'cur' ? `report:${scope.billing.reportName}` : `export:${scope.billing.exportName}`,
40
+ scope.resourceRegions.join(','),
41
+ scope.billing.billingPeriod.start,
42
+ scope.billing.billingPeriod.end,
43
+ ].join('|');
44
+ }
45
+ export function buildAwsPortalAccountSummaryHistoryLogicalNameForScope(scope) {
46
+ return buildAwsPortalAccountSummaryHistoryLogicalName(sha256Text(buildAwsPortalAccountSummaryHistoryIdentityKey(scope)));
47
+ }
48
+ export function buildAwsPortalAccountSummaryTargetKey(scope) {
49
+ return [
50
+ 'account-summary',
51
+ scope.provider,
52
+ scope.accountId,
53
+ scope.billing.source,
54
+ scope.billing.source === 'cur' ? `report:${scope.billing.reportName}` : `export:${scope.billing.exportName}`,
55
+ scope.billing.billingPeriod.start,
56
+ scope.billing.billingPeriod.end,
57
+ scope.resourceRegions.join(','),
58
+ scope.metricTimeWindow.start,
59
+ scope.metricTimeWindow.end,
60
+ ...(scope.comparisonBillingPeriod ? [`comparison:${scope.comparisonBillingPeriod.start}:${scope.comparisonBillingPeriod.end}`] : []),
61
+ ].join('|');
62
+ }
63
+ export function buildAwsPortalAccountSummaryAiCostSummaryTargetKey(scope, audience) {
64
+ const sourceTargetKey = buildAwsPortalAccountSummaryTargetKey(scope);
65
+ return `account-summary-ai-cost-summary|${sourceTargetKey.slice('account-summary|'.length)}|audience:${audience}`;
66
+ }
67
+ function assertSha256(value, field) {
68
+ if (!/^[a-f0-9]{64}$/.test(value))
69
+ throw new Error(`${field} must be a lowercase hexadecimal SHA-256.`);
70
+ }
71
+ function sha256Text(value) {
72
+ return sha256AwsPluginIdentity(value);
73
+ }