@spottoai/types-package 1.0.2-beta.352 → 1.0.2-beta.354
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.
- package/README.md +6 -0
- package/dist/aws/commitmentsPlanningValidation.d.ts.map +1 -1
- package/dist/aws/commitmentsPlanningValidation.js +2 -0
- package/dist/aws/commitmentsPlanningValidation.js.map +1 -1
- package/dist/aws/index.d.ts +2 -0
- package/dist/aws/index.d.ts.map +1 -1
- package/dist/aws/index.js +2 -0
- package/dist/aws/index.js.map +1 -1
- package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts +4 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js +513 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts +13 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js +5 -0
- package/dist/aws/portalCommitmentsPlanningPublicArtifacts.js.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +5 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -1
- package/dist/aws/portalPublicArtifactHistoryTypes.js +6 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -1
- package/dist/aws/portalPublicArtifacts.d.ts +2 -1
- package/dist/aws/portalPublicArtifacts.d.ts.map +1 -1
- package/dist/aws/portalPublicArtifacts.js.map +1 -1
- package/dist/aws/publicArtifacts.d.ts +1 -1
- package/dist/aws/publicArtifacts.d.ts.map +1 -1
- package/dist/aws/publicArtifacts.js +1 -0
- package/dist/aws/publicArtifacts.js.map +1 -1
- package/dist/azure/commitmentsPlanning.d.ts +3 -1
- package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
- package/dist/azure/common.d.ts +3 -0
- package/dist/azure/common.d.ts.map +1 -1
- package/dist/azure/costComposition.d.ts +74 -0
- package/dist/azure/costComposition.d.ts.map +1 -0
- package/dist/azure/costComposition.js +3 -0
- package/dist/azure/costComposition.js.map +1 -0
- package/dist/azure/prices.d.ts +3 -0
- package/dist/azure/prices.d.ts.map +1 -1
- package/dist/azure/recommendations.d.ts +3 -0
- package/dist/azure/recommendations.d.ts.map +1 -1
- package/dist/azure/recommendations.js.map +1 -1
- package/dist/azure/reports.d.ts +3 -0
- package/dist/azure/reports.d.ts.map +1 -1
- package/dist/azure/reports.js.map +1 -1
- package/dist/azure/subscriptions.d.ts +2 -0
- package/dist/azure/subscriptions.d.ts.map +1 -1
- package/dist/azure/views.d.ts +5 -0
- package/dist/azure/views.d.ts.map +1 -1
- package/dist/azure/views.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +17 -1
package/README.md
CHANGED
|
@@ -56,6 +56,12 @@ branch, while the AWS branch requires a minimal account identity, `aws-native`
|
|
|
56
56
|
source evidence, linked-account scope metadata, and provider-specific inventory
|
|
57
57
|
shapes without introducing an AWS-only planning DTO.
|
|
58
58
|
|
|
59
|
+
The root and `/aws` entry points also own the immutable AWS Commitments Planning
|
|
60
|
+
Portal envelope, `commitments-planning.json.gz` logical name, artifact registry
|
|
61
|
+
relationship, and dependency-free allowlist validator. The validator binds the
|
|
62
|
+
envelope, provider scope, nested applied scopes, and account-bearing ARNs while
|
|
63
|
+
rejecting internal metadata, Azure-only fields, and undeclared public fields.
|
|
64
|
+
|
|
59
65
|
The root and `/aws` entry points export the secret-free `AwsEstatesManifest`,
|
|
60
66
|
AWS estate/account/billing-source command union, and company trust-setup
|
|
61
67
|
contracts. The API-owned desired-state document is stored as
|
|
@@ -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;
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"commitmentsPlanningValidation.js","sourceRoot":"","sources":["../../src/aws/commitmentsPlanningValidation.ts"],"names":[],"mappings":"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"}
|
package/dist/aws/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/aws/index.d.ts.map
CHANGED
|
@@ -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);
|
package/dist/aws/index.js.map
CHANGED
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalCommitmentsPlanningPublicArtifactValidation.js","sourceRoot":"","sources":["../../src/aws/portalCommitmentsPlanningPublicArtifactValidation.ts"],"names":[],"mappings":"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"}
|