@spottoai/types-package 1.0.2-beta.353 → 1.0.2-beta.356

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 (182) hide show
  1. package/README.md +17 -0
  2. package/dist/aws/commitments-planning.d.ts +3 -0
  3. package/dist/aws/commitments-planning.d.ts.map +1 -0
  4. package/dist/aws/commitments-planning.js +6 -0
  5. package/dist/aws/commitments-planning.js.map +1 -0
  6. package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -1
  7. package/dist/aws/commitmentsPlanningValidation.js +2 -0
  8. package/dist/aws/commitmentsPlanningValidation.js.map +1 -1
  9. package/dist/aws/index.d.ts +2 -0
  10. package/dist/aws/index.d.ts.map +1 -1
  11. package/dist/aws/index.js +2 -0
  12. package/dist/aws/index.js.map +1 -1
  13. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +4 -0
  14. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  15. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +513 -0
  16. package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  17. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +13 -0
  18. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  19. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +5 -0
  20. package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +1 -0
  21. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +5 -0
  22. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -1
  23. package/dist/aws/portalPublicArtifactHistoryTypes.js +6 -0
  24. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -1
  25. package/dist/aws/portalPublicArtifacts.d.ts +2 -1
  26. package/dist/aws/portalPublicArtifacts.d.ts.map +1 -1
  27. package/dist/aws/portalPublicArtifacts.js.map +1 -1
  28. package/dist/aws/publicArtifacts.d.ts +1 -1
  29. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  30. package/dist/aws/publicArtifacts.js +1 -0
  31. package/dist/aws/publicArtifacts.js.map +1 -1
  32. package/dist/aws/relationships.d.ts +4 -0
  33. package/dist/aws/relationships.d.ts.map +1 -0
  34. package/dist/aws/relationships.js +6 -0
  35. package/dist/aws/relationships.js.map +1 -0
  36. package/dist/azure/commitmentsPlanning.d.ts +3 -1
  37. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  38. package/dist/esm/accounts/accounts.js +115 -0
  39. package/dist/esm/accounts/azureSpSetup.js +1 -0
  40. package/dist/esm/accounts/azureSpSetupDurable.js +1 -0
  41. package/dist/esm/accounts/index.js +5 -0
  42. package/dist/esm/accounts/readPermissions.js +198 -0
  43. package/dist/esm/accounts/validation.js +1 -0
  44. package/dist/esm/accounts/writePermissions.js +43 -0
  45. package/dist/esm/ai/index.js +2 -0
  46. package/dist/esm/assessments/artifact.js +1 -0
  47. package/dist/esm/assessments/catalogue.js +12 -0
  48. package/dist/esm/assessments/common.js +1 -0
  49. package/dist/esm/assessments/evidence.js +1 -0
  50. package/dist/esm/assessments/export.js +1 -0
  51. package/dist/esm/assessments/index.js +10 -0
  52. package/dist/esm/assessments/queue.js +2 -0
  53. package/dist/esm/assessments/review.js +1 -0
  54. package/dist/esm/assessments/run.js +1 -0
  55. package/dist/esm/assessments/sow.js +1 -0
  56. package/dist/esm/assessments/status.js +23 -0
  57. package/dist/esm/aws/commitments-planning.js +1 -0
  58. package/dist/esm/aws/commitmentsPlanningValidation.js +121 -0
  59. package/dist/esm/aws/estates.js +21 -0
  60. package/dist/esm/aws/index.js +18 -0
  61. package/dist/esm/aws/onboarding.js +1 -0
  62. package/dist/esm/aws/pluginPublicArtifactBodyValidation.js +217 -0
  63. package/dist/esm/aws/pluginPublicArtifactEvidence.js +1 -0
  64. package/dist/esm/aws/pluginPublicArtifactManifestValidation.js +255 -0
  65. package/dist/esm/aws/pluginPublicArtifactSectionValidation.js +464 -0
  66. package/dist/esm/aws/pluginPublicArtifactValidation.js +2 -0
  67. package/dist/esm/aws/pluginPublicArtifactValidationHelpers.js +216 -0
  68. package/dist/esm/aws/pluginPublicArtifacts.js +109 -0
  69. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifactValidation.js +509 -0
  70. package/dist/esm/aws/portalCommitmentsPlanningPublicArtifacts.js +1 -0
  71. package/dist/esm/aws/portalPublicArtifactCurrentValidation.js +328 -0
  72. package/dist/esm/aws/portalPublicArtifactEvidenceValidation.js +294 -0
  73. package/dist/esm/aws/portalPublicArtifactHistoryAiValidation.js +368 -0
  74. package/dist/esm/aws/portalPublicArtifactHistoryTypes.js +40 -0
  75. package/dist/esm/aws/portalPublicArtifactNestedEvidence.js +1 -0
  76. package/dist/esm/aws/portalPublicArtifactNestedEvidenceValidation.js +397 -0
  77. package/dist/esm/aws/portalPublicArtifactValidation.js +2 -0
  78. package/dist/esm/aws/portalPublicArtifactValidationCommon.js +139 -0
  79. package/dist/esm/aws/portalPublicArtifacts.js +73 -0
  80. package/dist/esm/aws/portalRelationshipPublicArtifactValidation.js +334 -0
  81. package/dist/esm/aws/portalRelationshipPublicArtifacts.js +59 -0
  82. package/dist/esm/aws/portalRelationshipResourceNodeTypes.js +1 -0
  83. package/dist/esm/aws/portalRelationshipResourceNodeValidation.js +368 -0
  84. package/dist/esm/aws/publicArtifacts.js +13 -0
  85. package/dist/esm/aws/relationships.js +1 -0
  86. package/dist/esm/aws/requests.js +19 -0
  87. package/dist/esm/azure/activityLogs.js +2 -0
  88. package/dist/esm/azure/advisorScore.js +1 -0
  89. package/dist/esm/azure/benefits.js +1 -0
  90. package/dist/esm/azure/billingGeneration.js +1 -0
  91. package/dist/esm/azure/billingPlots.js +4 -0
  92. package/dist/esm/azure/budgets.js +1 -0
  93. package/dist/esm/azure/commitmentsPlanning.js +1 -0
  94. package/dist/esm/azure/common.js +1 -0
  95. package/dist/esm/azure/configs.js +1 -0
  96. package/dist/esm/azure/costComposition.js +1 -0
  97. package/dist/esm/azure/dataProtection.js +5 -0
  98. package/dist/esm/azure/governance.js +14 -0
  99. package/dist/esm/azure/licensing.js +1 -0
  100. package/dist/esm/azure/metrics.js +1 -0
  101. package/dist/esm/azure/payloads.js +1 -0
  102. package/dist/esm/azure/portalArtifacts.js +1 -0
  103. package/dist/esm/azure/prices.js +1 -0
  104. package/dist/esm/azure/publicIpAddresses.js +2 -0
  105. package/dist/esm/azure/recommendationAudit.js +16 -0
  106. package/dist/esm/azure/recommendationState.js +1 -0
  107. package/dist/esm/azure/recommendationTracks.js +40 -0
  108. package/dist/esm/azure/recommendationWorkflow.js +13 -0
  109. package/dist/esm/azure/recommendations.js +10 -0
  110. package/dist/esm/azure/regulatoryCompliance.js +6 -0
  111. package/dist/esm/azure/relationships.js +2 -0
  112. package/dist/esm/azure/reportingTemplates.js +1 -0
  113. package/dist/esm/azure/reports.js +12 -0
  114. package/dist/esm/azure/resourceHealth.js +12 -0
  115. package/dist/esm/azure/resourceOptimization.js +1 -0
  116. package/dist/esm/azure/resources.js +1 -0
  117. package/dist/esm/azure/reviewChecklist.js +1 -0
  118. package/dist/esm/azure/secureScore.js +1 -0
  119. package/dist/esm/azure/security.js +1 -0
  120. package/dist/esm/azure/serviceRetirement.js +1 -0
  121. package/dist/esm/azure/serviceRetirementState.js +1 -0
  122. package/dist/esm/azure/serviceRetirementWorkManagement.js +1 -0
  123. package/dist/esm/azure/storage-inventory.js +1 -0
  124. package/dist/esm/azure/subscriptions.js +1 -0
  125. package/dist/esm/azure/views.js +32 -0
  126. package/dist/esm/azure/workManagement.js +4 -0
  127. package/dist/esm/common/artifactGeneration.js +1 -0
  128. package/dist/esm/common/capabilityPassport.js +214 -0
  129. package/dist/esm/common/index.js +7 -0
  130. package/dist/esm/common/pagination.js +1 -0
  131. package/dist/esm/common/provider.js +11 -0
  132. package/dist/esm/common/providerSyncProgress.js +1 -0
  133. package/dist/esm/common/relationships.js +1 -0
  134. package/dist/esm/common/syncProgress.js +1 -0
  135. package/dist/esm/company/billingAccount.js +1 -0
  136. package/dist/esm/company/company.js +1 -0
  137. package/dist/esm/company/companyHierarchy.js +1 -0
  138. package/dist/esm/company/companyNotes.js +38 -0
  139. package/dist/esm/company/customProperties.js +1 -0
  140. package/dist/esm/company/index.js +6 -0
  141. package/dist/esm/company/notification.js +43 -0
  142. package/dist/esm/company/survey.js +1 -0
  143. package/dist/esm/customProperties/customProperties.js +1 -0
  144. package/dist/esm/customProperties/index.js +1 -0
  145. package/dist/esm/entries/aws.js +3 -0
  146. package/dist/esm/entries/commitments-planning.js +3 -0
  147. package/dist/esm/entries/provider.js +3 -0
  148. package/dist/esm/entries/recommendations.js +3 -0
  149. package/dist/esm/entries/relationships.js +3 -0
  150. package/dist/esm/entries/root.js +3 -0
  151. package/dist/esm/events/actionGroups.js +1 -0
  152. package/dist/esm/events/alertDefinitionRun.js +1 -0
  153. package/dist/esm/events/baseAlert.js +1 -0
  154. package/dist/esm/events/cost.js +1 -0
  155. package/dist/esm/events/costAnomalies.js +1 -0
  156. package/dist/esm/events/costViews.js +1 -0
  157. package/dist/esm/events/eventStatus.js +1 -0
  158. package/dist/esm/events/index.js +8 -0
  159. package/dist/esm/events/quickAlerts.js +2 -0
  160. package/dist/esm/features-and-permissions/access.js +1 -0
  161. package/dist/esm/features-and-permissions/index.js +1 -0
  162. package/dist/esm/feedbacks/feedback.js +1 -0
  163. package/dist/esm/identity/apikey.js +1 -0
  164. package/dist/esm/identity/index.js +1 -0
  165. package/dist/esm/index.js +54 -0
  166. package/dist/esm/index.vite.js +48 -0
  167. package/dist/esm/integrations/autotask.js +1 -0
  168. package/dist/esm/integrations/azureDevOps.js +1 -0
  169. package/dist/esm/integrations/github.js +1 -0
  170. package/dist/esm/integrations/halo.js +1 -0
  171. package/dist/esm/integrations/index.js +5 -0
  172. package/dist/esm/integrations/integrationTickets.js +1 -0
  173. package/dist/esm/package.json +3 -0
  174. package/dist/esm/scheduler/index.js +1 -0
  175. package/dist/esm/scheduler/scheduler.js +1 -0
  176. package/dist/esm/tags/index.js +1 -0
  177. package/dist/esm/tags/tags.js +6 -0
  178. package/dist/esm/unknown/services.js +1 -0
  179. package/dist/esm/users/companyUser.js +2 -0
  180. package/dist/esm/users/index.js +2 -0
  181. package/dist/esm/users/user.js +1 -0
  182. package/package.json +23 -6
package/README.md CHANGED
@@ -44,6 +44,11 @@ import { User } from '@spottoai/types-package';
44
44
 
45
45
  // Import AWS-only public artifact contracts
46
46
  import type { AwsPortalAccountSummaryArtifact, AwsPortalResourceCollectionArtifact } from '@spottoai/types-package/aws';
47
+
48
+ // Import AWS relationship or commitments validators without loading the
49
+ // compatibility-wide AWS barrel.
50
+ import { validateAwsPortalRelationshipArtifact } from '@spottoai/types-package/aws/relationships';
51
+ import { validateAwsCommitmentsPlanningViewIdentity } from '@spottoai/types-package/aws/commitments-planning';
47
52
  ```
48
53
 
49
54
  The root entry point also exports the provider-neutral artifact generation,
@@ -56,6 +61,18 @@ branch, while the AWS branch requires a minimal account identity, `aws-native`
56
61
  source evidence, linked-account scope metadata, and provider-specific inventory
57
62
  shapes without introducing an AWS-only planning DTO.
58
63
 
64
+ The root and `/aws` entry points also own the immutable AWS Commitments Planning
65
+ Portal envelope, `commitments-planning.json.gz` logical name, artifact registry
66
+ relationship, and dependency-free allowlist validator. The validator binds the
67
+ envelope, provider scope, nested applied scopes, and account-bearing ARNs while
68
+ rejecting internal metadata, Azure-only fields, and undeclared public fields.
69
+
70
+ The stable `/aws/relationships` and `/aws/commitments-planning` entry points
71
+ expose those runtime contracts independently for browser consumers. The root
72
+ and `/aws` barrels remain compatibility entry points and continue to export the
73
+ same symbols. Package `import` conditions use tree-shakable native ESM while
74
+ `require` conditions retain the CommonJS compatibility build.
75
+
59
76
  The root and `/aws` entry points export the secret-free `AwsEstatesManifest`,
60
77
  AWS estate/account/billing-source command union, and company trust-setup
61
78
  contracts. The API-owned desired-state document is stored as
@@ -0,0 +1,3 @@
1
+ export type { AwsCommitmentsPlanningView } from '../azure/commitmentsPlanning';
2
+ export { validateAwsCommitmentsPlanningViewIdentity } from './commitmentsPlanningValidation';
3
+ //# sourceMappingURL=commitments-planning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitments-planning.d.ts","sourceRoot":"","sources":["../../src/aws/commitments-planning.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,0CAA0C,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsCommitmentsPlanningViewIdentity = void 0;
4
+ var commitmentsPlanningValidation_1 = require("./commitmentsPlanningValidation");
5
+ Object.defineProperty(exports, "validateAwsCommitmentsPlanningViewIdentity", { enumerable: true, get: function () { return commitmentsPlanningValidation_1.validateAwsCommitmentsPlanningViewIdentity; } });
6
+ //# sourceMappingURL=commitments-planning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitments-planning.js","sourceRoot":"","sources":["../../src/aws/commitments-planning.ts"],"names":[],"mappings":";;;AACA,iFAA6F;AAApF,2JAAA,0CAA0C,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentsPlanningValidation.d.ts","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAqBlF;;;GAGG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAelJ"}
1
+ {"version":3,"file":"commitmentsPlanningValidation.d.ts","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAuBlF;;;GAGG;AACH,wBAAgB,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,0BAA0B,CAelJ"}
@@ -5,6 +5,7 @@ const provider_js_1 = require("../common/provider.js");
5
5
  const pluginPublicArtifactValidationHelpers_js_1 = require("./pluginPublicArtifactValidationHelpers.js");
6
6
  const FORBIDDEN_AWS_COMMITMENTS_KEYS = new Set([
7
7
  'billingScopeId',
8
+ 'breakCostEstimate',
8
9
  'cloudAccountId',
9
10
  'companyId',
10
11
  'credentialHealth',
@@ -14,6 +15,7 @@ const FORBIDDEN_AWS_COMMITMENTS_KEYS = new Set([
14
15
  'quotePolicy',
15
16
  'resourceGroupId',
16
17
  'storageCapacity',
18
+ 'storageDimensions',
17
19
  'subscription',
18
20
  'subscriptionId',
19
21
  'tenantId',
@@ -1 +1 @@
1
- {"version":3,"file":"commitmentsPlanningValidation.js","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commitmentsPlanningValidation.js","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":";;AA2BA,gGAeC;AAzCD,uDAAqD;AACrD,yGAAmH;AAEnH,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAC;IAC7C,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,UAAU;IACV,uBAAuB;CACxB,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAgB,0CAA0C,CAAC,KAAc,EAAE,iBAA0B;IACnG,MAAM,IAAI,GAAG,IAAA,mDAAQ,EAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAA,mDAAQ,EAAC,IAAI,CAAC,aAAa,EAAE,mCAAmC,CAAC,CAAC;IACxF,IAAA,0DAAe,EAAC,aAAa,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACzG,IAAA,sDAAW,EAAC,aAAa,CAAC,YAAY,EAAE,0BAAY,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;IAE5G,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAA,wDAAa,EAAC,aAAa,CAAC,eAAe,EAAE,SAAS,EAAE,mDAAmD,CAAC,CAAC;IAC7G,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAA,wDAAa,EAAC,iBAAiB,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7C,+BAA+B,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;IACzE,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,SAAiB;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAC9F,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,iCAAiC,KAAK,GAAG,CAAC;QACxD,MAAM,MAAM,GAAG,IAAA,mDAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,IAAA,sDAAW,EAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;QACpE,IAAA,sDAAW,EAAC,MAAM,CAAC,QAAQ,EAAE,0BAAY,CAAC,GAAG,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;QACpE,IAAA,sDAAW,EAAC,MAAM,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,KAAK,mBAAmB,CAAC,CAAC;QACpF,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,EAAE,SAAS,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;QAClG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAc,EAAE,SAAiB;IACxE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC5G,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,+CAA+C,KAAK,GAAG,CAAC;QACtE,MAAM,MAAM,GAAG,IAAA,mDAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,IAAA,sDAAW,EAAC,MAAM,CAAC,aAAa,EAAE,gBAAgB,EAAE,GAAG,KAAK,gBAAgB,CAAC,CAAC;QAC9E,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,EAAE,SAAS,EAAE,GAAG,KAAK,yBAAyB,CAAC,CAAC;QAClG,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC;QACpD,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,KAAK,eAAe,CAAC,CAAC;QAC/D,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,EAAE,IAAI,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,IAAA,mDAAQ,EAAC,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;YACzE,gBAAgB,CAAC,WAAW,CAAC,YAAY,EAAE,GAAG,KAAK,2BAA2B,CAAC,CAAC;YAChF,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,KAAK,0BAA0B,CAAC,CAAC;YAC9E,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS;gBAAE,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,KAAK,qBAAqB,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,SAAiB,EAAE,KAAa;IAC5E,MAAM,KAAK,GAAG,IAAA,mDAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,IAAA,0DAAe,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3E,IAAA,wDAAa,EAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,YAAY,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,KAAa;IACtD,MAAM,MAAM,GAAG,IAAA,mDAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,IAAA,sDAAW,EAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,aAAa,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK;IACvE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO;IAC7C,MAAM,KAAK,GAAG,IAAA,mDAAQ,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,IAAA,sDAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAc,EAAE,SAAiB,EAAE,KAAa;IAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,8BAA8B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,GAAG,iDAAiD,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,GAAG,KAAK,WAAW;YAAE,IAAA,wDAAa,EAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAC5E,IAAI,GAAG,KAAK,cAAc;YAAE,IAAA,sDAAW,EAAC,KAAK,EAAE,0BAAY,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QACpF,IAAI,GAAG,KAAK,UAAU;YAAE,IAAA,sDAAW,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QACrE,IAAI,GAAG,KAAK,YAAY,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,GAAG,wCAAwC,CAAC,CAAC;QAC3E,CAAC;QACD,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,SAAiB,EAAE,KAAa;IACzE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY;QAAE,IAAA,wDAAa,EAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC"}
@@ -5,6 +5,8 @@ export * from './pluginPublicArtifacts';
5
5
  export * from './pluginPublicArtifactEvidence';
6
6
  export * from './pluginPublicArtifactValidation';
7
7
  export * from './portalPublicArtifacts';
8
+ export * from './portalCommitmentsPlanningPublicArtifacts';
9
+ export * from './portalCommitmentsPlanningPublicArtifactValidation';
8
10
  export * from './portalRelationshipPublicArtifacts';
9
11
  export * from './portalRelationshipResourceNodeTypes';
10
12
  export * from './portalRelationshipPublicArtifactValidation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC3G,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qDAAqD,CAAC;AACpE,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,8CAA8C,CAAC;AAC7D,YAAY,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC3G,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
package/dist/aws/index.js CHANGED
@@ -21,6 +21,8 @@ __exportStar(require("./pluginPublicArtifacts"), exports);
21
21
  __exportStar(require("./pluginPublicArtifactEvidence"), exports);
22
22
  __exportStar(require("./pluginPublicArtifactValidation"), exports);
23
23
  __exportStar(require("./portalPublicArtifacts"), exports);
24
+ __exportStar(require("./portalCommitmentsPlanningPublicArtifacts"), exports);
25
+ __exportStar(require("./portalCommitmentsPlanningPublicArtifactValidation"), exports);
24
26
  __exportStar(require("./portalRelationshipPublicArtifacts"), exports);
25
27
  __exportStar(require("./portalRelationshipResourceNodeTypes"), exports);
26
28
  __exportStar(require("./portalRelationshipPublicArtifactValidation"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kEAAgD;AAChD,+CAA6B;AAC7B,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0DAAwC;AACxC,sEAAoD;AACpD,wEAAsD;AACtD,+EAA6D;AAE7D,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,mEAAiD;AACjD,oDAAkC;AAClC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kEAAgD;AAChD,+CAA6B;AAC7B,0DAAwC;AACxC,iEAA+C;AAC/C,mEAAiD;AACjD,0DAAwC;AACxC,6EAA2D;AAC3D,sFAAoE;AACpE,sEAAoD;AACpD,wEAAsD;AACtD,+EAA6D;AAE7D,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,mEAAiD;AACjD,oDAAkC;AAClC,6CAA2B"}
@@ -0,0 +1,4 @@
1
+ import { type AwsPortalCommitmentsPlanningArtifact } from './portalCommitmentsPlanningPublicArtifacts.js';
2
+ /** Validates one untrusted immutable AWS Commitments Planning Portal artifact. */
3
+ export declare function validateAwsPortalCommitmentsPlanningArtifact(value: unknown): AwsPortalCommitmentsPlanningArtifact;
4
+ //# sourceMappingURL=portalCommitmentsPlanningPublicArtifactValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalCommitmentsPlanningPublicArtifactValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalCommitmentsPlanningPublicArtifactValidation.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,+CAA+C,CAAC;AAkCvD,kFAAkF;AAClF,wBAAgB,4CAA4C,CAAC,KAAK,EAAE,OAAO,GAAG,oCAAoC,CAQjH"}
@@ -0,0 +1,513 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsPortalCommitmentsPlanningArtifact = validateAwsPortalCommitmentsPlanningArtifact;
4
+ const commitmentsPlanningValidation_js_1 = require("./commitmentsPlanningValidation.js");
5
+ const portalCommitmentsPlanningPublicArtifacts_js_1 = require("./portalCommitmentsPlanningPublicArtifacts.js");
6
+ const portalPublicArtifactValidationCommon_js_1 = require("./portalPublicArtifactValidationCommon.js");
7
+ const TOP_LEVEL_KEYS = [
8
+ 'schemaVersion',
9
+ 'portalSchemaVersion',
10
+ 'provider',
11
+ 'accountId',
12
+ 'artifactType',
13
+ 'artifactGeneration',
14
+ 'logicalName',
15
+ 'version',
16
+ 'generatedAt',
17
+ 'month',
18
+ 'providerScope',
19
+ 'utilizationSummary',
20
+ 'expirySummary',
21
+ 'inventory',
22
+ 'resourceCoverage',
23
+ 'obsoleteCandidates',
24
+ 'reallocationOpportunities',
25
+ 'pricingContext',
26
+ 'termStrategy',
27
+ 'freshness',
28
+ 'vendorRecommendations',
29
+ 'purchaseRecommendations',
30
+ 'diagnostics',
31
+ 'coverage',
32
+ 'renewals',
33
+ 'risk',
34
+ 'retirementImpact',
35
+ 'phasedOptions',
36
+ ];
37
+ /** Validates one untrusted immutable AWS Commitments Planning Portal artifact. */
38
+ function validateAwsPortalCommitmentsPlanningArtifact(value) {
39
+ const artifact = (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, 'artifact');
40
+ const { accountId } = (0, portalPublicArtifactValidationCommon_js_1.validatePortalEnvelope)(artifact, 'commitments-planning', TOP_LEVEL_KEYS);
41
+ (0, portalPublicArtifactValidationCommon_js_1.assertValue)(artifact.logicalName, portalCommitmentsPlanningPublicArtifacts_js_1.AWS_PORTAL_COMMITMENTS_PLANNING_LOGICAL_NAME, 'artifact.logicalName');
42
+ (0, commitmentsPlanningValidation_js_1.validateAwsCommitmentsPlanningViewIdentity)(artifact, accountId);
43
+ validateBody(artifact);
44
+ (0, portalPublicArtifactValidationCommon_js_1.assertPublicJson)(artifact, 'artifact');
45
+ return value;
46
+ }
47
+ function validateBody(artifact) {
48
+ exact(artifact.providerScope, ['providerName', 'providerScopeId'], 'artifact.providerScope');
49
+ validateUtilizationSummary(artifact.utilizationSummary, 'artifact.utilizationSummary');
50
+ exact(artifact.expirySummary, ['expired', 'expiring30d', 'expiring60d', 'expiring90d', 'expiring180d'], 'artifact.expirySummary');
51
+ records(artifact.inventory, 'artifact.inventory', validateInventory);
52
+ records(artifact.resourceCoverage, 'artifact.resourceCoverage', validateResourceCoverage);
53
+ records(artifact.obsoleteCandidates, 'artifact.obsoleteCandidates', validateObsoleteCandidate);
54
+ optionalRecords(artifact.reallocationOpportunities, 'artifact.reallocationOpportunities', validateReallocation);
55
+ validatePricingContext(artifact.pricingContext, 'artifact.pricingContext');
56
+ records(artifact.termStrategy, 'artifact.termStrategy', validateTermStrategy);
57
+ optionalRecord(artifact.freshness, 'artifact.freshness', validateFreshness);
58
+ optionalRecords(artifact.vendorRecommendations, 'artifact.vendorRecommendations', validateVendorRecommendation);
59
+ optionalRecords(artifact.purchaseRecommendations, 'artifact.purchaseRecommendations', validatePurchaseRecommendation);
60
+ optionalRecord(artifact.diagnostics, 'artifact.diagnostics', validateDiagnostics);
61
+ optionalRecords(artifact.coverage, 'artifact.coverage', validateCoverage);
62
+ optionalRecords(artifact.renewals, 'artifact.renewals', validateRenewal);
63
+ optionalRecord(artifact.risk, 'artifact.risk', validateRisk);
64
+ optionalRecords(artifact.retirementImpact, 'artifact.retirementImpact', validateRetirementImpact);
65
+ optionalRecords(artifact.phasedOptions, 'artifact.phasedOptions', validatePhasedOption);
66
+ }
67
+ function validateUtilizationSummary(value, field) {
68
+ const summary = exact(value, ['total', 'withData', 'sevenDayAverage', 'thirtyDayAverage', 'sevenDayAggregates', 'thirtyDayAggregates', 'byBenefitType'], field);
69
+ optionalRecords(summary.sevenDayAggregates, `${field}.sevenDayAggregates`, validateWeightedAggregate);
70
+ optionalRecords(summary.thirtyDayAggregates, `${field}.thirtyDayAggregates`, validateWeightedAggregate);
71
+ records(summary.byBenefitType, `${field}.byBenefitType`, (entry, itemField) => {
72
+ const item = exact(entry, ['benefitType', 'total', 'withData', 'sevenDayAverage', 'thirtyDayAverage', 'sevenDayAggregates', 'thirtyDayAggregates'], itemField);
73
+ optionalRecords(item.sevenDayAggregates, `${itemField}.sevenDayAggregates`, validateWeightedAggregate);
74
+ optionalRecords(item.thirtyDayAggregates, `${itemField}.thirtyDayAggregates`, validateWeightedAggregate);
75
+ });
76
+ }
77
+ function validateWeightedAggregate(value, field) {
78
+ exact(value, ['used', 'reserved', 'percentage', 'sampleCount', 'unit', 'currency'], field);
79
+ }
80
+ function validateInventory(value, field) {
81
+ const item = exact(value, [
82
+ 'id',
83
+ 'benefitType',
84
+ 'commitmentFamily',
85
+ 'sourceKind',
86
+ 'sourceId',
87
+ 'provider',
88
+ 'shape',
89
+ 'scope',
90
+ 'appliedScopeType',
91
+ 'appliedScopeProperties',
92
+ 'type',
93
+ 'displayName',
94
+ 'status',
95
+ 'purchaseDate',
96
+ 'expiryDate',
97
+ 'daysToExpiry',
98
+ 'reservedQuantity',
99
+ 'commitmentAmount',
100
+ 'commitmentCurrencyCode',
101
+ 'commitmentGrain',
102
+ 'commitmentUnit',
103
+ 'skuName',
104
+ 'skuDescription',
105
+ 'location',
106
+ 'term',
107
+ 'termMonths',
108
+ 'billingPlan',
109
+ 'appliedScopeDisplayName',
110
+ 'provisioningState',
111
+ 'renew',
112
+ 'purchasedQuantity',
113
+ 'usedQuantity',
114
+ 'remainingQuantity',
115
+ 'totalReservedQuantity',
116
+ 'reservedHours',
117
+ 'usedHours',
118
+ 'utilization',
119
+ 'coveragePercent',
120
+ 'annualCommittedCost',
121
+ 'optimizationImpact',
122
+ 'doNotRenewAnnualImpact',
123
+ 'riskLevel',
124
+ 'confidence',
125
+ 'linkedRecommendationIds',
126
+ 'renewalDecisionIds',
127
+ 'retirementImpactIds',
128
+ ], field);
129
+ optionalRecord(item.shape, `${field}.shape`, validateShape);
130
+ validateAppliedScope(item.appliedScopeProperties, `${field}.appliedScopeProperties`);
131
+ optionalRecord(item.utilization, `${field}.utilization`, (entry, itemField) => exact(entry, ['trend', 'oneDay', 'sevenDay', 'thirtyDay', 'source'], itemField));
132
+ optionalMoney(item.annualCommittedCost, `${field}.annualCommittedCost`);
133
+ optionalMoney(item.optimizationImpact, `${field}.optimizationImpact`);
134
+ optionalMoney(item.doNotRenewAnnualImpact, `${field}.doNotRenewAnnualImpact`);
135
+ }
136
+ function validateResourceCoverage(value, field) {
137
+ const item = exact(value, [
138
+ 'resourceId',
139
+ 'resourceName',
140
+ 'resourceType',
141
+ 'month',
142
+ 'windowStart',
143
+ 'windowEnd',
144
+ 'currency',
145
+ 'benefitIds',
146
+ 'benefitNames',
147
+ 'basis',
148
+ 'coveredQuantity',
149
+ 'eligibleQuantity',
150
+ 'coveredCost',
151
+ 'eligibleCost',
152
+ 'uncoveredCost',
153
+ 'coveragePercent',
154
+ 'recommendationIds',
155
+ 'recommendationType',
156
+ 'recommendedAction',
157
+ 'eligibility',
158
+ 'recommendationImpact',
159
+ 'source',
160
+ 'benefitBreakdown',
161
+ ], field);
162
+ optionalRecord(item.eligibility, `${field}.eligibility`, validateEligibility);
163
+ optionalRecord(item.recommendationImpact, `${field}.recommendationImpact`, (entry, itemField) => exact(entry, ['amount', 'currency', 'source'], itemField));
164
+ optionalRecord(item.source, `${field}.source`, validateSource);
165
+ optionalRecords(item.benefitBreakdown, `${field}.benefitBreakdown`, (entry, itemField) => exact(entry, ['benefitId', 'benefitName', 'coveredQuantity', 'coveredCost'], itemField));
166
+ }
167
+ function validateObsoleteCandidate(value, field) {
168
+ const item = exact(value, ['id', 'candidateType', 'reasonCodes', 'suggestedAction', 'confidence', 'impactEstimate', 'relatedBenefitIds'], field);
169
+ optionalRecord(item.impactEstimate, `${field}.impactEstimate`, (entry, itemField) => exact(entry, ['amount', 'currency', 'currencySymbol', 'source', 'notes', 'windowStart', 'windowEnd', 'flags'], itemField));
170
+ }
171
+ function validateReallocation(value, field) {
172
+ const item = exact(value, [
173
+ 'id',
174
+ 'fromResource',
175
+ 'toResource',
176
+ 'estimatedNetSavings',
177
+ 'currency',
178
+ 'source',
179
+ 'confidence',
180
+ 'assumptions',
181
+ 'benefitIds',
182
+ 'benefitNames',
183
+ 'recommendationIds',
184
+ 'obsoleteCandidateIds',
185
+ ], field);
186
+ validateReallocationResource(item.fromResource, `${field}.fromResource`);
187
+ validateReallocationResource(item.toResource, `${field}.toResource`);
188
+ }
189
+ function validateReallocationResource(value, field) {
190
+ exact(value, ['resourceId', 'resourceName', 'resourceType'], field);
191
+ }
192
+ function validatePurchaseRecommendation(value, field) {
193
+ const item = exact(value, [
194
+ 'id',
195
+ 'groupKey',
196
+ 'commitmentFamily',
197
+ 'action',
198
+ 'eligibility',
199
+ 'currentShape',
200
+ 'targetShape',
201
+ 'blockers',
202
+ 'unlockActions',
203
+ 'purchaseScope',
204
+ 'appliedScopeProperties',
205
+ 'source',
206
+ 'title',
207
+ 'description',
208
+ 'confidence',
209
+ 'riskLevel',
210
+ 'location',
211
+ 'skuName',
212
+ 'normalizedSkuName',
213
+ 'resourceType',
214
+ 'vmSizeFlexibilityGroup',
215
+ 'termMonths',
216
+ 'quantity',
217
+ 'coverageState',
218
+ 'estimatedAnnualSavings',
219
+ 'estimatedAnnualCost',
220
+ 'estimatedTermSavings',
221
+ 'estimatedTermCost',
222
+ 'termOptions',
223
+ 'impactedResources',
224
+ 'sourceRecommendationIds',
225
+ 'linkedCommitmentIds',
226
+ 'notes',
227
+ ], field);
228
+ optionalRecord(item.eligibility, `${field}.eligibility`, validateEligibility);
229
+ optionalRecord(item.currentShape, `${field}.currentShape`, validateShape);
230
+ validateShape(item.targetShape, `${field}.targetShape`);
231
+ optionalRecords(item.blockers, `${field}.blockers`, validateBlocker);
232
+ optionalRecords(item.unlockActions, `${field}.unlockActions`, validateUnlockAction);
233
+ validateAppliedScope(item.appliedScopeProperties, `${field}.appliedScopeProperties`);
234
+ validateSource(item.source, `${field}.source`);
235
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
236
+ optionalMoney(item.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
237
+ optionalMoney(item.estimatedTermSavings, `${field}.estimatedTermSavings`);
238
+ optionalMoney(item.estimatedTermCost, `${field}.estimatedTermCost`);
239
+ optionalRecords(item.termOptions, `${field}.termOptions`, validateTermOption);
240
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
241
+ }
242
+ function validateEligibility(value, field) {
243
+ const eligibility = exact(value, [
244
+ 'status',
245
+ 'action',
246
+ 'currentShape',
247
+ 'targetShape',
248
+ 'targetSelectionStrategy',
249
+ 'targetSelectionReason',
250
+ 'blockers',
251
+ 'unlockActions',
252
+ 'source',
253
+ 'confidence',
254
+ ], field);
255
+ optionalRecord(eligibility.currentShape, `${field}.currentShape`, validateShape);
256
+ optionalRecord(eligibility.targetShape, `${field}.targetShape`, validateShape);
257
+ optionalRecords(eligibility.blockers, `${field}.blockers`, validateBlocker);
258
+ optionalRecords(eligibility.unlockActions, `${field}.unlockActions`, validateUnlockAction);
259
+ optionalRecord(eligibility.source, `${field}.source`, validateSource);
260
+ }
261
+ function validateShape(value, field) {
262
+ const shape = exact(value, [
263
+ 'provider',
264
+ 'resourceType',
265
+ 'commitmentFamily',
266
+ 'skuName',
267
+ 'normalizedSkuName',
268
+ 'location',
269
+ 'region',
270
+ 'availabilityZone',
271
+ 'platform',
272
+ 'reservationProductName',
273
+ 'reservedResourceType',
274
+ 'meterCategory',
275
+ 'meterSubCategory',
276
+ 'meterName',
277
+ 'unit',
278
+ 'attributes',
279
+ ], field);
280
+ if (shape.attributes !== undefined)
281
+ (0, portalPublicArtifactValidationCommon_js_1.asRecord)(shape.attributes, `${field}.attributes`);
282
+ }
283
+ function validateAppliedScope(value, field) {
284
+ exact(value, ['accountId', 'region', 'availabilityZone'], field);
285
+ }
286
+ function validateSource(value, field) {
287
+ exact(value, ['sourceKind', 'sourceId', 'sourceName', 'generatedAt', 'observedAt', 'notes'], field);
288
+ }
289
+ function validateBlocker(value, field) {
290
+ exact(value, ['code', 'message', 'source', 'sourceUrl', 'severity'], field);
291
+ }
292
+ function validateUnlockAction(value, field) {
293
+ exact(value, ['id', 'label', 'description', 'actionType', 'order', 'source'], field);
294
+ }
295
+ function validateTermOption(value, field) {
296
+ const option = exact(value, [
297
+ 'termMonths',
298
+ 'currentMonthly',
299
+ 'targetMonthly',
300
+ 'potentialMonthlySavings',
301
+ 'estimatedAnnualSavings',
302
+ 'estimatedAnnualCost',
303
+ 'estimatedTermSavings',
304
+ 'estimatedTermCost',
305
+ ], field);
306
+ optionalMoney(option.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
307
+ optionalMoney(option.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
308
+ optionalMoney(option.estimatedTermSavings, `${field}.estimatedTermSavings`);
309
+ optionalMoney(option.estimatedTermCost, `${field}.estimatedTermCost`);
310
+ }
311
+ function validateVendorRecommendation(value, field) {
312
+ const item = exact(value, [
313
+ 'id',
314
+ 'commitmentFamily',
315
+ 'source',
316
+ 'action',
317
+ 'title',
318
+ 'description',
319
+ 'confidence',
320
+ 'riskLevel',
321
+ 'estimatedAnnualSavings',
322
+ 'estimatedAnnualCost',
323
+ 'impactedResources',
324
+ 'linkedCommitmentIds',
325
+ ], field);
326
+ validateSource(item.source, `${field}.source`);
327
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
328
+ optionalMoney(item.estimatedAnnualCost, `${field}.estimatedAnnualCost`);
329
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
330
+ }
331
+ function validateDiagnostics(value, field) {
332
+ const diagnostics = exact(value, ['purchaseRecommendations'], field);
333
+ optionalRecord(diagnostics.purchaseRecommendations, `${field}.purchaseRecommendations`, (entry, itemField) => {
334
+ const recommendation = exact(entry, ['generatedAt', 'inputCounts', 'outputCounts', 'suppressedCounts', 'notes'], itemField);
335
+ optionalOpenRecord(recommendation.inputCounts, `${itemField}.inputCounts`);
336
+ optionalOpenRecord(recommendation.suppressedCounts, `${itemField}.suppressedCounts`);
337
+ optionalRecord(recommendation.outputCounts, `${itemField}.outputCounts`, (output, outputField) => {
338
+ const counts = exact(output, ['total', 'byAction', 'byStatus', 'bySourceKind', 'unattributed'], outputField);
339
+ optionalOpenRecord(counts.byAction, `${outputField}.byAction`);
340
+ optionalOpenRecord(counts.byStatus, `${outputField}.byStatus`);
341
+ optionalOpenRecord(counts.bySourceKind, `${outputField}.bySourceKind`);
342
+ });
343
+ });
344
+ }
345
+ function validateCoverage(value, field) {
346
+ const item = exact(value, [
347
+ 'commitmentFamily',
348
+ 'basis',
349
+ 'windowStart',
350
+ 'windowEnd',
351
+ 'eligibleCost',
352
+ 'coveredCost',
353
+ 'uncoveredCost',
354
+ 'coveragePercent',
355
+ 'impactedResources',
356
+ 'source',
357
+ ], field);
358
+ optionalMoney(item.eligibleCost, `${field}.eligibleCost`);
359
+ optionalMoney(item.coveredCost, `${field}.coveredCost`);
360
+ optionalMoney(item.uncoveredCost, `${field}.uncoveredCost`);
361
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
362
+ optionalRecord(item.source, `${field}.source`, validateSource);
363
+ }
364
+ function validateRenewal(value, field) {
365
+ const item = exact(value, [
366
+ 'id',
367
+ 'commitmentId',
368
+ 'commitmentFamily',
369
+ 'action',
370
+ 'title',
371
+ 'expiryDate',
372
+ 'daysToExpiry',
373
+ 'confidence',
374
+ 'riskLevel',
375
+ 'estimatedAnnualSavings',
376
+ 'estimatedAnnualCostDelta',
377
+ 'modernizationTarget',
378
+ 'impactedResources',
379
+ 'recommendationsToReview',
380
+ 'source',
381
+ ], field);
382
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
383
+ optionalMoney(item.estimatedAnnualCostDelta, `${field}.estimatedAnnualCostDelta`);
384
+ optionalRecord(item.modernizationTarget, `${field}.modernizationTarget`, (entry, itemField) => exact(entry, ['currentSku', 'targetSku', 'currentFamily', 'targetFamily', 'reasonCodes'], itemField));
385
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
386
+ optionalRecords(item.recommendationsToReview, `${field}.recommendationsToReview`, validateReviewSummary);
387
+ optionalRecord(item.source, `${field}.source`, validateSource);
388
+ }
389
+ function validateReviewSummary(value, field) {
390
+ const item = exact(value, [
391
+ 'id',
392
+ 'name',
393
+ 'category',
394
+ 'subCategory',
395
+ 'impact',
396
+ 'effort',
397
+ 'risk',
398
+ 'priorityTier',
399
+ 'headline',
400
+ 'plainSummary',
401
+ 'normalizedScore',
402
+ 'finalScore',
403
+ 'estimatedSavings',
404
+ 'resourceIds',
405
+ 'reasons',
406
+ ], field);
407
+ optionalMoney(item.estimatedSavings, `${field}.estimatedSavings`);
408
+ }
409
+ function validateRisk(value, field) {
410
+ exact(value, ['overallRisk', 'overcommitmentRisk', 'undercoverageRisk', 'staleDataRisk', 'currency', 'expectedWaste', 'expectedUncoveredCost', 'notes'], field);
411
+ }
412
+ function validateRetirementImpact(value, field) {
413
+ const item = exact(value, [
414
+ 'id',
415
+ 'commitmentId',
416
+ 'commitmentFamily',
417
+ 'scenario',
418
+ 'title',
419
+ 'effectiveDate',
420
+ 'incrementalMonthlyCost',
421
+ 'incrementalAnnualCost',
422
+ 'impactedResources',
423
+ 'linkedRetirementIds',
424
+ 'confidence',
425
+ 'riskLevel',
426
+ 'source',
427
+ ], field);
428
+ optionalMoney(item.incrementalMonthlyCost, `${field}.incrementalMonthlyCost`);
429
+ optionalMoney(item.incrementalAnnualCost, `${field}.incrementalAnnualCost`);
430
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
431
+ optionalRecord(item.source, `${field}.source`, validateSource);
432
+ }
433
+ function validatePhasedOption(value, field) {
434
+ const item = exact(value, [
435
+ 'id',
436
+ 'label',
437
+ 'commitmentFamily',
438
+ 'action',
439
+ 'termMonths',
440
+ 'quantity',
441
+ 'hourlyCommitmentAmount',
442
+ 'annualCommitmentCost',
443
+ 'estimatedAnnualSavings',
444
+ 'expectedCoveragePercent',
445
+ 'expectedWastePercent',
446
+ 'confidence',
447
+ 'riskLevel',
448
+ 'impactedResources',
449
+ 'source',
450
+ ], field);
451
+ optionalMoney(item.hourlyCommitmentAmount, `${field}.hourlyCommitmentAmount`);
452
+ optionalMoney(item.annualCommitmentCost, `${field}.annualCommitmentCost`);
453
+ optionalMoney(item.estimatedAnnualSavings, `${field}.estimatedAnnualSavings`);
454
+ optionalRecords(item.impactedResources, `${field}.impactedResources`, validateResourceReference);
455
+ optionalRecord(item.source, `${field}.source`, validateSource);
456
+ }
457
+ function validateFreshness(value, field) {
458
+ const freshness = exact(value, ['status', 'generatedAt', 'entries', 'warnings'], field);
459
+ records(freshness.entries, `${field}.entries`, (entry, itemField) => exact(entry, ['section', 'status', 'generatedAt', 'observedAt', 'lastSuccessfulSyncAt', 'reason', 'sourceKind'], itemField));
460
+ }
461
+ function validatePricingContext(value, field) {
462
+ exact(value, ['source', 'currency', 'assumptions', 'confidenceNotes', 'calculatorDeepLink'], field);
463
+ }
464
+ function validateTermStrategy(value, field) {
465
+ const scenario = exact(value, [
466
+ 'scenarioId',
467
+ 'termMonths',
468
+ 'breakMonth',
469
+ 'policyInputs',
470
+ 'projectedGrossSavings',
471
+ 'projectedBreakCost',
472
+ 'projectedNetSavings',
473
+ 'annualizedProjectedNetSavings',
474
+ 'breakEvenMonth',
475
+ 'recommended',
476
+ 'currency',
477
+ 'notes',
478
+ ], field);
479
+ exact(scenario.policyInputs, ['earlyTerminationFeePercent', 'rollingCancellationCap', 'exchangeAllowed', 'policyVersion'], `${field}.policyInputs`);
480
+ }
481
+ function validateMoney(value, field) {
482
+ exact(value, ['amount', 'currency', 'source', 'windowStart', 'windowEnd', 'flags'], field);
483
+ }
484
+ function validateResourceReference(value, field) {
485
+ exact(value, ['resourceId', 'resourceName', 'resourceType', 'location'], field);
486
+ }
487
+ function exact(value, allowed, field) {
488
+ const record = (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, field);
489
+ (0, portalPublicArtifactValidationCommon_js_1.assertExactKeys)(record, allowed, field);
490
+ return record;
491
+ }
492
+ function records(value, field, validate) {
493
+ if (!Array.isArray(value))
494
+ throw new Error(`${field} must be an array.`);
495
+ value.forEach((entry, index) => validate(entry, `${field}[${index}]`));
496
+ }
497
+ function optionalRecords(value, field, validate) {
498
+ if (value !== undefined)
499
+ records(value, field, validate);
500
+ }
501
+ function optionalRecord(value, field, validate) {
502
+ if (value !== undefined)
503
+ validate(value, field);
504
+ }
505
+ function optionalOpenRecord(value, field) {
506
+ if (value !== undefined)
507
+ (0, portalPublicArtifactValidationCommon_js_1.asRecord)(value, field);
508
+ }
509
+ function optionalMoney(value, field) {
510
+ if (value !== undefined)
511
+ validateMoney(value, field);
512
+ }
513
+ //# sourceMappingURL=portalCommitmentsPlanningPublicArtifactValidation.js.map