@spottoai/types-package 1.0.2-beta.310 → 1.0.2-beta.312
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 +14 -4
- package/dist/aws/index.d.ts +8 -0
- package/dist/aws/index.d.ts.map +1 -1
- package/dist/aws/index.js +8 -0
- package/dist/aws/index.js.map +1 -1
- package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +10 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.js +225 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactEvidence.d.ts +161 -0
- package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactEvidence.js +3 -0
- package/dist/aws/pluginPublicArtifactEvidence.js.map +1 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +4 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.js +259 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +6 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.js +471 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactValidation.d.ts +3 -0
- package/dist/aws/pluginPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactValidation.js +9 -0
- package/dist/aws/pluginPublicArtifactValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +23 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.js +241 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +1 -0
- package/dist/aws/pluginPublicArtifacts.d.ts +253 -0
- package/dist/aws/pluginPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifacts.js +116 -0
- package/dist/aws/pluginPublicArtifacts.js.map +1 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +4 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.js +333 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +6 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.js +227 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +8 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.js +377 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +168 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.js +32 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +127 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.js +3 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.js.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +6 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +405 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactValidation.d.ts +3 -0
- package/dist/aws/portalPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactValidation.js +14 -0
- package/dist/aws/portalPublicArtifactValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactValidationCommon.d.ts +30 -0
- package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactValidationCommon.js +167 -0
- package/dist/aws/portalPublicArtifactValidationCommon.js.map +1 -0
- package/dist/aws/portalPublicArtifacts.d.ts +371 -0
- package/dist/aws/portalPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifacts.js +85 -0
- package/dist/aws/portalPublicArtifacts.js.map +1 -0
- package/dist/aws/publicArtifacts.d.ts +3 -2
- package/dist/aws/publicArtifacts.d.ts.map +1 -1
- package/dist/aws/publicArtifacts.js +3 -0
- package/dist/aws/publicArtifacts.js.map +1 -1
- package/dist/integrations/autotask.d.ts +21 -3
- package/dist/integrations/autotask.d.ts.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { AwsPortalBillingCostAggregate, AwsPortalRecommendationActionHealth, AwsPortalRecommendationSource, AwsPortalRecommendationSourceEvidence } from './portalPublicArtifacts';
|
|
2
|
+
export interface AwsPortalBillingCostView {
|
|
3
|
+
currency: string;
|
|
4
|
+
actualCostAmount: number;
|
|
5
|
+
amortizedCostAmount?: number;
|
|
6
|
+
amortizedExpenseCount?: number;
|
|
7
|
+
amortizationCoverageState?: 'complete' | 'partial' | 'none' | 'unavailable';
|
|
8
|
+
actualVsAmortizedDeltaAmount?: number;
|
|
9
|
+
commitmentCoverageState: 'discounted' | 'no-amortized-cost' | 'no-delta' | 'amortized-exceeds-base' | 'partial-amortized-cost' | 'amortization-coverage-unavailable';
|
|
10
|
+
showAmortizedCosts: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface AwsPortalBillingCommitmentSpend {
|
|
13
|
+
expenseCountWithCommitmentEvidence: number;
|
|
14
|
+
expenseCountWithoutCommitmentEvidence: number;
|
|
15
|
+
totalsByCurrency: AwsPortalBillingCostAggregate[];
|
|
16
|
+
costViewByCurrency: AwsPortalBillingCostView[];
|
|
17
|
+
groupedByAmortizationSource: Array<{
|
|
18
|
+
amortizationSource: 'reservation-effective-cost' | 'savings-plan-effective-cost';
|
|
19
|
+
expenseCount: number;
|
|
20
|
+
totalsByCurrency: AwsPortalBillingCostAggregate[];
|
|
21
|
+
costViewByCurrency: AwsPortalBillingCostView[];
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
export interface AwsPortalBillingBenefitCoverage {
|
|
25
|
+
authority: 'persisted-billing-expense-amortization';
|
|
26
|
+
status: 'available' | 'partial-persisted-evidence' | 'missing-persisted-evidence';
|
|
27
|
+
matchedExpenseCount: number;
|
|
28
|
+
coveredExpenseCount: number;
|
|
29
|
+
unclassifiedExpenseCount: number;
|
|
30
|
+
byBenefitType: Array<{
|
|
31
|
+
benefitType: 'reserved-instance' | 'savings-plan';
|
|
32
|
+
amortizationSource: 'reservation-effective-cost' | 'savings-plan-effective-cost';
|
|
33
|
+
expenseCount: number;
|
|
34
|
+
totalsByCurrency: AwsPortalBillingCostAggregate[];
|
|
35
|
+
costViewByCurrency: AwsPortalBillingCostView[];
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
export interface AwsPortalBillingBenefitCoverageWarning {
|
|
39
|
+
code: 'ri-sp-coverage-evidence-missing' | 'ri-sp-coverage-evidence-partial';
|
|
40
|
+
severity: 'warning';
|
|
41
|
+
matchedExpenseCount: number;
|
|
42
|
+
unclassifiedExpenseCount: number;
|
|
43
|
+
message: string;
|
|
44
|
+
}
|
|
45
|
+
export interface AwsPortalRecommendationLatestActionExecution {
|
|
46
|
+
status: 'accepted' | 'completed' | 'failed' | 'retryable-failure' | 'skipped';
|
|
47
|
+
recordedAt: string;
|
|
48
|
+
requestId: string;
|
|
49
|
+
requestedAt: string;
|
|
50
|
+
requestedBy: 'manual';
|
|
51
|
+
actionType: 'DeleteDBInstance' | 'DeleteNatGateway' | 'ModifyVolume' | 'ModifyStorage' | 'Rightsize';
|
|
52
|
+
providerAction: 'rds-modify-db-cluster-storage-type' | 'autoscaling-update-group-instance-refresh' | 'ec2-modify-volume' | 'ec2-stop-modify-start-instance-type' | 'ecs-register-task-definition-update-service' | 'ec2-delete-nat-gateway' | 'lambda-update-function-configuration' | 'rds-delete-db-instance' | 'rds-modify-db-instance';
|
|
53
|
+
completionMode: 'provider-poll';
|
|
54
|
+
acceptedAt?: string;
|
|
55
|
+
completedAt?: string;
|
|
56
|
+
failedAt?: string;
|
|
57
|
+
providerRequestId?: string;
|
|
58
|
+
currentResourceSummary?: string;
|
|
59
|
+
recommendedResourceSummary?: string;
|
|
60
|
+
sourceTitle?: string;
|
|
61
|
+
estimatedMonthlySavings?: number;
|
|
62
|
+
estimatedSavingsPercentage?: number;
|
|
63
|
+
currencyCode?: string;
|
|
64
|
+
message?: string;
|
|
65
|
+
skipReason?: 'recommendation-state-not-found' | 'source-recommendation-missing' | 'source-recommendation-not-found' | 'published-version-immutable' | 'provider-preflight-conflict' | 'provider-preflight-unsupported' | 'unsupported-recommendation-shape' | 'no-effective-provider-change';
|
|
66
|
+
implementationChanged?: boolean;
|
|
67
|
+
implementationImplemented?: boolean;
|
|
68
|
+
implementationPreviouslyImplemented?: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface AwsPortalRecommendationRefreshAttemptSummary {
|
|
71
|
+
attemptedArtifactCount: number;
|
|
72
|
+
failedAttemptCount: number;
|
|
73
|
+
supersededAttemptCount: number;
|
|
74
|
+
attemptReasons: string[];
|
|
75
|
+
oldestAttemptedAt?: string;
|
|
76
|
+
newestAttemptedAt?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface AwsPortalRecommendationPendingRefreshSummary {
|
|
79
|
+
pendingArtifactCount: number;
|
|
80
|
+
pendingArtifactTypes: Array<'recommendations' | 'resource-recommendations' | 'resource-type-recommendations'>;
|
|
81
|
+
oldestPendingRefreshUpdatedAt?: string;
|
|
82
|
+
newestPendingRefreshUpdatedAt?: string;
|
|
83
|
+
executionAttemptSummary?: AwsPortalRecommendationRefreshAttemptSummary;
|
|
84
|
+
}
|
|
85
|
+
export interface AwsPortalRecommendationSavingsVerification {
|
|
86
|
+
verificationStatus: 'pending-post-action-refresh' | 'recommendation-absent-after-refresh' | 'recommendation-still-present-after-refresh' | 'post-action-evidence-truncated';
|
|
87
|
+
artifactType: 'recommendations';
|
|
88
|
+
actionRequestId: string;
|
|
89
|
+
actionCompletedAt: string;
|
|
90
|
+
postActionEvidenceStatus: 'qualified' | 'refresh-pending' | 'missing' | 'stale' | 'unqualified';
|
|
91
|
+
postActionEvidenceReason: 'qualified-post-action-artifact' | 'canonical-refresh-row-pending' | 'canonical-refresh-row-missing' | 'artifact-generated-before-action-completion' | 'artifact-refresh-request-mismatch' | 'artifact-refresh-trigger-mismatch' | 'artifact-changed-key-missing' | 'artifact-type-mismatch';
|
|
92
|
+
postActionArtifactGeneratedAt?: string;
|
|
93
|
+
postActionRefreshRequestId?: string;
|
|
94
|
+
postActionPendingRefreshRequestedAt?: string;
|
|
95
|
+
postActionPendingRefreshUpdatedAt?: string;
|
|
96
|
+
postActionPendingRefreshSummary?: AwsPortalRecommendationPendingRefreshSummary;
|
|
97
|
+
postActionRetainedRefreshAttemptSummary?: AwsPortalRecommendationRefreshAttemptSummary;
|
|
98
|
+
postActionSourcePresence?: 'current' | 'missing';
|
|
99
|
+
actionEstimatedMonthlySavings?: number;
|
|
100
|
+
actionEstimatedSavingsPercentage?: number;
|
|
101
|
+
actionCurrencyCode?: string;
|
|
102
|
+
currentEstimatedMonthlySavings?: number;
|
|
103
|
+
currentEstimatedSavingsPercentage?: number;
|
|
104
|
+
currentCurrencyCode?: string;
|
|
105
|
+
currencyCodesMatch?: boolean;
|
|
106
|
+
}
|
|
107
|
+
export interface AwsPortalRecommendationTemplateProvenanceSource {
|
|
108
|
+
recommendationCode: string;
|
|
109
|
+
templateId: string;
|
|
110
|
+
relativePath: string;
|
|
111
|
+
source: 'internal' | 'external';
|
|
112
|
+
format: 'canonical-v1' | 'external-catalog-v1';
|
|
113
|
+
confidencePercentage?: number;
|
|
114
|
+
confidenceReason?: string;
|
|
115
|
+
primarySourceUrl?: string;
|
|
116
|
+
firstPartyValidationSourceCount: number;
|
|
117
|
+
communitySourceCount: number;
|
|
118
|
+
}
|
|
119
|
+
export interface AwsPortalAccountSummaryAiRecommendationPosture {
|
|
120
|
+
sourceCount: number;
|
|
121
|
+
sources: Array<{
|
|
122
|
+
source: AwsPortalRecommendationSource;
|
|
123
|
+
sourceEvidence?: AwsPortalRecommendationSourceEvidence;
|
|
124
|
+
actionHealth?: AwsPortalRecommendationActionHealth;
|
|
125
|
+
}>;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=portalPublicArtifactNestedEvidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactNestedEvidence.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactNestedEvidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactNestedEvidence.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactNestedEvidence.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function validateResourceBillingEvidence(value: unknown, field: string): void;
|
|
2
|
+
export declare function validateRecommendationActionability(value: unknown, field: string): void;
|
|
3
|
+
export declare function validateTemplateProvenanceSources(value: unknown, field: string): void;
|
|
4
|
+
export declare function validateRecommendationPosture(value: unknown, field: string): void;
|
|
5
|
+
export declare function validateSavingsByCurrency(value: unknown, field: string): void;
|
|
6
|
+
//# sourceMappingURL=portalPublicArtifactNestedEvidenceValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactNestedEvidenceValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactNestedEvidenceValidation.ts"],"names":[],"mappings":"AAgDA,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAiBnF;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMvF;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAmCrF;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAejF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAY7E"}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateResourceBillingEvidence = validateResourceBillingEvidence;
|
|
4
|
+
exports.validateRecommendationActionability = validateRecommendationActionability;
|
|
5
|
+
exports.validateTemplateProvenanceSources = validateTemplateProvenanceSources;
|
|
6
|
+
exports.validateRecommendationPosture = validateRecommendationPosture;
|
|
7
|
+
exports.validateSavingsByCurrency = validateSavingsByCurrency;
|
|
8
|
+
const portalPublicArtifactValidationCommon_1 = require("./portalPublicArtifactValidationCommon");
|
|
9
|
+
const portalPublicArtifactEvidenceValidation_1 = require("./portalPublicArtifactEvidenceValidation");
|
|
10
|
+
const ACTION_STATUSES = ['accepted', 'completed', 'failed', 'retryable-failure', 'skipped'];
|
|
11
|
+
const ACTION_TYPES = ['DeleteDBInstance', 'DeleteNatGateway', 'ModifyVolume', 'ModifyStorage', 'Rightsize'];
|
|
12
|
+
const PROVIDER_ACTIONS = [
|
|
13
|
+
'rds-modify-db-cluster-storage-type',
|
|
14
|
+
'autoscaling-update-group-instance-refresh',
|
|
15
|
+
'ec2-modify-volume',
|
|
16
|
+
'ec2-stop-modify-start-instance-type',
|
|
17
|
+
'ecs-register-task-definition-update-service',
|
|
18
|
+
'ec2-delete-nat-gateway',
|
|
19
|
+
'lambda-update-function-configuration',
|
|
20
|
+
'rds-delete-db-instance',
|
|
21
|
+
'rds-modify-db-instance',
|
|
22
|
+
];
|
|
23
|
+
const SKIP_REASONS = [
|
|
24
|
+
'recommendation-state-not-found',
|
|
25
|
+
'source-recommendation-missing',
|
|
26
|
+
'source-recommendation-not-found',
|
|
27
|
+
'published-version-immutable',
|
|
28
|
+
'provider-preflight-conflict',
|
|
29
|
+
'provider-preflight-unsupported',
|
|
30
|
+
'unsupported-recommendation-shape',
|
|
31
|
+
'no-effective-provider-change',
|
|
32
|
+
];
|
|
33
|
+
const RECOMMENDATION_SOURCES = [
|
|
34
|
+
'custom',
|
|
35
|
+
'compute-optimizer',
|
|
36
|
+
'cost-optimization-hub',
|
|
37
|
+
'resilience-hub',
|
|
38
|
+
'security-hub',
|
|
39
|
+
'trusted-advisor',
|
|
40
|
+
'well-architected',
|
|
41
|
+
];
|
|
42
|
+
function validateResourceBillingEvidence(value, field) {
|
|
43
|
+
const billing = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
44
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(billing, ['costProvenance', 'matchedExpenseCount', 'totalsByCurrency', 'costViewByCurrency', 'commitmentSpend', 'benefitsCoverage', 'coverageWarning'], field);
|
|
45
|
+
const provenance = (0, portalPublicArtifactValidationCommon_1.asRecord)(billing.costProvenance, `${field}.costProvenance`);
|
|
46
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(provenance, ['costSource', 'costSourceConfidence'], `${field}.costProvenance`);
|
|
47
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(provenance.costSource, 'billing', `${field}.costProvenance.costSource`);
|
|
48
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(provenance.costSourceConfidence, 'high', `${field}.costProvenance.costSourceConfidence`);
|
|
49
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(billing.matchedExpenseCount, `${field}.matchedExpenseCount`);
|
|
50
|
+
validateCostTotals(billing.totalsByCurrency, `${field}.totalsByCurrency`);
|
|
51
|
+
validateCostViews(billing.costViewByCurrency, `${field}.costViewByCurrency`);
|
|
52
|
+
validateCommitmentSpend(billing.commitmentSpend, `${field}.commitmentSpend`);
|
|
53
|
+
if (billing.benefitsCoverage !== undefined)
|
|
54
|
+
validateBenefitCoverage(billing.benefitsCoverage, `${field}.benefitsCoverage`);
|
|
55
|
+
if (billing.coverageWarning !== undefined)
|
|
56
|
+
validateBenefitWarning(billing.coverageWarning, `${field}.coverageWarning`);
|
|
57
|
+
}
|
|
58
|
+
function validateRecommendationActionability(value, field) {
|
|
59
|
+
const actionability = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
60
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(actionability, ['latestActionStableMaterializationKey', 'latestActionExecution', 'savingsVerification'], field);
|
|
61
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(actionability.latestActionStableMaterializationKey, `${field}.latestActionStableMaterializationKey`);
|
|
62
|
+
validateLatestAction(actionability.latestActionExecution, `${field}.latestActionExecution`);
|
|
63
|
+
if (actionability.savingsVerification !== undefined)
|
|
64
|
+
validateSavingsVerification(actionability.savingsVerification, `${field}.savingsVerification`);
|
|
65
|
+
}
|
|
66
|
+
function validateTemplateProvenanceSources(value, field) {
|
|
67
|
+
if (!Array.isArray(value))
|
|
68
|
+
throw new Error(`${field} must be an array.`);
|
|
69
|
+
const identities = [];
|
|
70
|
+
value.forEach((entry, index) => {
|
|
71
|
+
const itemField = `${field}[${index}]`;
|
|
72
|
+
const source = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
73
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(source, [
|
|
74
|
+
'recommendationCode',
|
|
75
|
+
'templateId',
|
|
76
|
+
'relativePath',
|
|
77
|
+
'source',
|
|
78
|
+
'format',
|
|
79
|
+
'confidencePercentage',
|
|
80
|
+
'confidenceReason',
|
|
81
|
+
'primarySourceUrl',
|
|
82
|
+
'firstPartyValidationSourceCount',
|
|
83
|
+
'communitySourceCount',
|
|
84
|
+
], itemField);
|
|
85
|
+
const recommendationCode = (0, portalPublicArtifactValidationCommon_1.requiredString)(source.recommendationCode, `${itemField}.recommendationCode`);
|
|
86
|
+
const relativePath = (0, portalPublicArtifactValidationCommon_1.requiredString)(source.relativePath, `${itemField}.relativePath`);
|
|
87
|
+
identities.push(`${recommendationCode}|${relativePath}`);
|
|
88
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(source.templateId, `${itemField}.templateId`);
|
|
89
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(source.source, ['internal', 'external'], `${itemField}.source`);
|
|
90
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(source.format, ['canonical-v1', 'external-catalog-v1'], `${itemField}.format`);
|
|
91
|
+
if (source.confidencePercentage !== undefined)
|
|
92
|
+
percentage(source.confidencePercentage, `${itemField}.confidencePercentage`);
|
|
93
|
+
if (source.confidenceReason !== undefined)
|
|
94
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(source.confidenceReason, `${itemField}.confidenceReason`);
|
|
95
|
+
if (source.primarySourceUrl !== undefined)
|
|
96
|
+
httpsUrl(source.primarySourceUrl, `${itemField}.primarySourceUrl`);
|
|
97
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(source.firstPartyValidationSourceCount, `${itemField}.firstPartyValidationSourceCount`);
|
|
98
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(source.communitySourceCount, `${itemField}.communitySourceCount`);
|
|
99
|
+
});
|
|
100
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(identities, field);
|
|
101
|
+
}
|
|
102
|
+
function validateRecommendationPosture(value, field) {
|
|
103
|
+
const posture = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
104
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(posture, ['sourceCount', 'sources'], field);
|
|
105
|
+
const sourceCount = (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(posture.sourceCount, `${field}.sourceCount`);
|
|
106
|
+
if (!Array.isArray(posture.sources) || posture.sources.length !== sourceCount)
|
|
107
|
+
throw new Error(`${field}.sources length must equal sourceCount.`);
|
|
108
|
+
const sources = [];
|
|
109
|
+
posture.sources.forEach((entry, index) => {
|
|
110
|
+
const itemField = `${field}.sources[${index}]`;
|
|
111
|
+
const source = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
112
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(source, ['source', 'sourceEvidence', 'actionHealth'], itemField);
|
|
113
|
+
sources.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(source.source, RECOMMENDATION_SOURCES, `${itemField}.source`));
|
|
114
|
+
if (source.sourceEvidence !== undefined)
|
|
115
|
+
(0, portalPublicArtifactEvidenceValidation_1.validateRecommendationSourceEvidence)(source.sourceEvidence, `${itemField}.sourceEvidence`);
|
|
116
|
+
if (source.actionHealth !== undefined)
|
|
117
|
+
(0, portalPublicArtifactEvidenceValidation_1.validateRecommendationActionHealth)(source.actionHealth, `${itemField}.actionHealth`);
|
|
118
|
+
});
|
|
119
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(sources, `${field}.sources`);
|
|
120
|
+
}
|
|
121
|
+
function validateSavingsByCurrency(value, field) {
|
|
122
|
+
if (!Array.isArray(value))
|
|
123
|
+
throw new Error(`${field} must be an array.`);
|
|
124
|
+
const currencies = [];
|
|
125
|
+
value.forEach((entry, index) => {
|
|
126
|
+
const itemField = `${field}[${index}]`;
|
|
127
|
+
const item = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
128
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(item, ['currencyCode', 'recommendationCount', 'totalEstimatedMonthlySavings'], itemField);
|
|
129
|
+
currencies.push((0, portalPublicArtifactValidationCommon_1.requiredString)(item.currencyCode, `${itemField}.currencyCode`));
|
|
130
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(item.recommendationCount, `${itemField}.recommendationCount`);
|
|
131
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(item.totalEstimatedMonthlySavings, `${itemField}.totalEstimatedMonthlySavings`);
|
|
132
|
+
});
|
|
133
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(currencies, field);
|
|
134
|
+
}
|
|
135
|
+
function validateLatestAction(value, field) {
|
|
136
|
+
const action = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
137
|
+
const keys = [
|
|
138
|
+
'status',
|
|
139
|
+
'recordedAt',
|
|
140
|
+
'requestId',
|
|
141
|
+
'requestedAt',
|
|
142
|
+
'requestedBy',
|
|
143
|
+
'actionType',
|
|
144
|
+
'providerAction',
|
|
145
|
+
'completionMode',
|
|
146
|
+
'acceptedAt',
|
|
147
|
+
'completedAt',
|
|
148
|
+
'failedAt',
|
|
149
|
+
'providerRequestId',
|
|
150
|
+
'currentResourceSummary',
|
|
151
|
+
'recommendedResourceSummary',
|
|
152
|
+
'sourceTitle',
|
|
153
|
+
'estimatedMonthlySavings',
|
|
154
|
+
'estimatedSavingsPercentage',
|
|
155
|
+
'currencyCode',
|
|
156
|
+
'message',
|
|
157
|
+
'skipReason',
|
|
158
|
+
'implementationChanged',
|
|
159
|
+
'implementationImplemented',
|
|
160
|
+
'implementationPreviouslyImplemented',
|
|
161
|
+
];
|
|
162
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(action, keys, field);
|
|
163
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(action.status, ACTION_STATUSES, `${field}.status`);
|
|
164
|
+
const recordedAt = (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(action.recordedAt, `${field}.recordedAt`);
|
|
165
|
+
const requestedAt = (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(action.requestedAt, `${field}.requestedAt`);
|
|
166
|
+
if (Date.parse(requestedAt) > Date.parse(recordedAt))
|
|
167
|
+
throw new Error(`${field}.requestedAt must not exceed recordedAt.`);
|
|
168
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(action.requestId, `${field}.requestId`);
|
|
169
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(action.requestedBy, 'manual', `${field}.requestedBy`);
|
|
170
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(action.actionType, ACTION_TYPES, `${field}.actionType`);
|
|
171
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(action.providerAction, PROVIDER_ACTIONS, `${field}.providerAction`);
|
|
172
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(action.completionMode, 'provider-poll', `${field}.completionMode`);
|
|
173
|
+
['acceptedAt', 'completedAt', 'failedAt'].forEach(key => {
|
|
174
|
+
if (action[key] !== undefined)
|
|
175
|
+
(0, portalPublicArtifactValidationCommon_1.isoTimestamp)(action[key], `${field}.${key}`);
|
|
176
|
+
});
|
|
177
|
+
['providerRequestId', 'currentResourceSummary', 'recommendedResourceSummary', 'sourceTitle', 'currencyCode', 'message'].forEach(key => {
|
|
178
|
+
if (action[key] !== undefined)
|
|
179
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(action[key], `${field}.${key}`);
|
|
180
|
+
});
|
|
181
|
+
['estimatedMonthlySavings', 'estimatedSavingsPercentage'].forEach(key => {
|
|
182
|
+
if (action[key] !== undefined)
|
|
183
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(action[key], `${field}.${key}`);
|
|
184
|
+
});
|
|
185
|
+
if (action.skipReason !== undefined)
|
|
186
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(action.skipReason, SKIP_REASONS, `${field}.skipReason`);
|
|
187
|
+
['implementationChanged', 'implementationImplemented', 'implementationPreviouslyImplemented'].forEach(key => {
|
|
188
|
+
if (action[key] !== undefined)
|
|
189
|
+
(0, portalPublicArtifactValidationCommon_1.requiredBoolean)(action[key], `${field}.${key}`);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
function validateSavingsVerification(value, field) {
|
|
193
|
+
const verification = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
194
|
+
const required = [
|
|
195
|
+
'verificationStatus',
|
|
196
|
+
'artifactType',
|
|
197
|
+
'actionRequestId',
|
|
198
|
+
'actionCompletedAt',
|
|
199
|
+
'postActionEvidenceStatus',
|
|
200
|
+
'postActionEvidenceReason',
|
|
201
|
+
];
|
|
202
|
+
const optional = [
|
|
203
|
+
'postActionArtifactGeneratedAt',
|
|
204
|
+
'postActionRefreshRequestId',
|
|
205
|
+
'postActionPendingRefreshRequestedAt',
|
|
206
|
+
'postActionPendingRefreshUpdatedAt',
|
|
207
|
+
'postActionPendingRefreshSummary',
|
|
208
|
+
'postActionRetainedRefreshAttemptSummary',
|
|
209
|
+
'postActionSourcePresence',
|
|
210
|
+
'actionEstimatedMonthlySavings',
|
|
211
|
+
'actionEstimatedSavingsPercentage',
|
|
212
|
+
'actionCurrencyCode',
|
|
213
|
+
'currentEstimatedMonthlySavings',
|
|
214
|
+
'currentEstimatedSavingsPercentage',
|
|
215
|
+
'currentCurrencyCode',
|
|
216
|
+
'currencyCodesMatch',
|
|
217
|
+
];
|
|
218
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(verification, [...required, ...optional], field);
|
|
219
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(verification.verificationStatus, [
|
|
220
|
+
'pending-post-action-refresh',
|
|
221
|
+
'recommendation-absent-after-refresh',
|
|
222
|
+
'recommendation-still-present-after-refresh',
|
|
223
|
+
'post-action-evidence-truncated',
|
|
224
|
+
], `${field}.verificationStatus`);
|
|
225
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(verification.artifactType, 'recommendations', `${field}.artifactType`);
|
|
226
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(verification.actionRequestId, `${field}.actionRequestId`);
|
|
227
|
+
(0, portalPublicArtifactValidationCommon_1.isoTimestamp)(verification.actionCompletedAt, `${field}.actionCompletedAt`);
|
|
228
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(verification.postActionEvidenceStatus, ['qualified', 'refresh-pending', 'missing', 'stale', 'unqualified'], `${field}.postActionEvidenceStatus`);
|
|
229
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(verification.postActionEvidenceReason, [
|
|
230
|
+
'qualified-post-action-artifact',
|
|
231
|
+
'canonical-refresh-row-pending',
|
|
232
|
+
'canonical-refresh-row-missing',
|
|
233
|
+
'artifact-generated-before-action-completion',
|
|
234
|
+
'artifact-refresh-request-mismatch',
|
|
235
|
+
'artifact-refresh-trigger-mismatch',
|
|
236
|
+
'artifact-changed-key-missing',
|
|
237
|
+
'artifact-type-mismatch',
|
|
238
|
+
], `${field}.postActionEvidenceReason`);
|
|
239
|
+
['postActionArtifactGeneratedAt', 'postActionPendingRefreshRequestedAt', 'postActionPendingRefreshUpdatedAt'].forEach(key => {
|
|
240
|
+
if (verification[key] !== undefined)
|
|
241
|
+
(0, portalPublicArtifactValidationCommon_1.isoTimestamp)(verification[key], `${field}.${key}`);
|
|
242
|
+
});
|
|
243
|
+
if (verification.postActionRefreshRequestId !== undefined)
|
|
244
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(verification.postActionRefreshRequestId, `${field}.postActionRefreshRequestId`);
|
|
245
|
+
if (verification.postActionPendingRefreshSummary !== undefined)
|
|
246
|
+
validatePendingRefresh(verification.postActionPendingRefreshSummary, `${field}.postActionPendingRefreshSummary`);
|
|
247
|
+
if (verification.postActionRetainedRefreshAttemptSummary !== undefined)
|
|
248
|
+
validateRefreshAttempts(verification.postActionRetainedRefreshAttemptSummary, `${field}.postActionRetainedRefreshAttemptSummary`);
|
|
249
|
+
if (verification.postActionSourcePresence !== undefined)
|
|
250
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(verification.postActionSourcePresence, ['current', 'missing'], `${field}.postActionSourcePresence`);
|
|
251
|
+
optional
|
|
252
|
+
.filter(key => key.includes('Estimated'))
|
|
253
|
+
.forEach(key => {
|
|
254
|
+
if (verification[key] !== undefined)
|
|
255
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(verification[key], `${field}.${key}`);
|
|
256
|
+
});
|
|
257
|
+
['actionCurrencyCode', 'currentCurrencyCode'].forEach(key => {
|
|
258
|
+
if (verification[key] !== undefined)
|
|
259
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(verification[key], `${field}.${key}`);
|
|
260
|
+
});
|
|
261
|
+
if (verification.currencyCodesMatch !== undefined)
|
|
262
|
+
(0, portalPublicArtifactValidationCommon_1.requiredBoolean)(verification.currencyCodesMatch, `${field}.currencyCodesMatch`);
|
|
263
|
+
}
|
|
264
|
+
function validatePendingRefresh(value, field) {
|
|
265
|
+
const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
266
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(summary, ['pendingArtifactCount', 'pendingArtifactTypes', 'oldestPendingRefreshUpdatedAt', 'newestPendingRefreshUpdatedAt', 'executionAttemptSummary'], field);
|
|
267
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(summary.pendingArtifactCount, `${field}.pendingArtifactCount`);
|
|
268
|
+
(0, portalPublicArtifactValidationCommon_1.stringArray)(summary.pendingArtifactTypes, `${field}.pendingArtifactTypes`).forEach(type => (0, portalPublicArtifactValidationCommon_1.requiredEnum)(type, ['recommendations', 'resource-recommendations', 'resource-type-recommendations'], `${field}.pendingArtifactTypes`));
|
|
269
|
+
['oldestPendingRefreshUpdatedAt', 'newestPendingRefreshUpdatedAt'].forEach(key => {
|
|
270
|
+
if (summary[key] !== undefined)
|
|
271
|
+
(0, portalPublicArtifactValidationCommon_1.isoTimestamp)(summary[key], `${field}.${key}`);
|
|
272
|
+
});
|
|
273
|
+
if (summary.executionAttemptSummary !== undefined)
|
|
274
|
+
validateRefreshAttempts(summary.executionAttemptSummary, `${field}.executionAttemptSummary`);
|
|
275
|
+
}
|
|
276
|
+
function validateRefreshAttempts(value, field) {
|
|
277
|
+
const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
278
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(summary, ['attemptedArtifactCount', 'failedAttemptCount', 'supersededAttemptCount', 'attemptReasons', 'oldestAttemptedAt', 'newestAttemptedAt'], field);
|
|
279
|
+
['attemptedArtifactCount', 'failedAttemptCount', 'supersededAttemptCount'].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(summary[key], `${field}.${key}`));
|
|
280
|
+
(0, portalPublicArtifactValidationCommon_1.stringArray)(summary.attemptReasons, `${field}.attemptReasons`);
|
|
281
|
+
['oldestAttemptedAt', 'newestAttemptedAt'].forEach(key => {
|
|
282
|
+
if (summary[key] !== undefined)
|
|
283
|
+
(0, portalPublicArtifactValidationCommon_1.isoTimestamp)(summary[key], `${field}.${key}`);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
function validateCommitmentSpend(value, field) {
|
|
287
|
+
const spend = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
288
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(spend, [
|
|
289
|
+
'expenseCountWithCommitmentEvidence',
|
|
290
|
+
'expenseCountWithoutCommitmentEvidence',
|
|
291
|
+
'totalsByCurrency',
|
|
292
|
+
'costViewByCurrency',
|
|
293
|
+
'groupedByAmortizationSource',
|
|
294
|
+
], field);
|
|
295
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(spend.expenseCountWithCommitmentEvidence, `${field}.expenseCountWithCommitmentEvidence`);
|
|
296
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(spend.expenseCountWithoutCommitmentEvidence, `${field}.expenseCountWithoutCommitmentEvidence`);
|
|
297
|
+
validateCostTotals(spend.totalsByCurrency, `${field}.totalsByCurrency`);
|
|
298
|
+
validateCostViews(spend.costViewByCurrency, `${field}.costViewByCurrency`);
|
|
299
|
+
if (!Array.isArray(spend.groupedByAmortizationSource))
|
|
300
|
+
throw new Error(`${field}.groupedByAmortizationSource must be an array.`);
|
|
301
|
+
const sources = [];
|
|
302
|
+
spend.groupedByAmortizationSource.forEach((entry, index) => {
|
|
303
|
+
const itemField = `${field}.groupedByAmortizationSource[${index}]`;
|
|
304
|
+
const source = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
305
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(source, ['amortizationSource', 'expenseCount', 'totalsByCurrency', 'costViewByCurrency'], itemField);
|
|
306
|
+
sources.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(source.amortizationSource, ['reservation-effective-cost', 'savings-plan-effective-cost'], `${itemField}.amortizationSource`));
|
|
307
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(source.expenseCount, `${itemField}.expenseCount`);
|
|
308
|
+
validateCostTotals(source.totalsByCurrency, `${itemField}.totalsByCurrency`);
|
|
309
|
+
validateCostViews(source.costViewByCurrency, `${itemField}.costViewByCurrency`);
|
|
310
|
+
});
|
|
311
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(sources, `${field}.groupedByAmortizationSource`);
|
|
312
|
+
}
|
|
313
|
+
function validateBenefitCoverage(value, field) {
|
|
314
|
+
const coverage = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
315
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(coverage, ['authority', 'status', 'matchedExpenseCount', 'coveredExpenseCount', 'unclassifiedExpenseCount', 'byBenefitType'], field);
|
|
316
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(coverage.authority, 'persisted-billing-expense-amortization', `${field}.authority`);
|
|
317
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(coverage.status, ['available', 'partial-persisted-evidence', 'missing-persisted-evidence'], `${field}.status`);
|
|
318
|
+
['matchedExpenseCount', 'coveredExpenseCount', 'unclassifiedExpenseCount'].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(coverage[key], `${field}.${key}`));
|
|
319
|
+
if (!Array.isArray(coverage.byBenefitType))
|
|
320
|
+
throw new Error(`${field}.byBenefitType must be an array.`);
|
|
321
|
+
const types = [];
|
|
322
|
+
coverage.byBenefitType.forEach((entry, index) => {
|
|
323
|
+
const itemField = `${field}.byBenefitType[${index}]`;
|
|
324
|
+
const benefit = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
325
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(benefit, ['benefitType', 'amortizationSource', 'expenseCount', 'totalsByCurrency', 'costViewByCurrency'], itemField);
|
|
326
|
+
types.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(benefit.benefitType, ['reserved-instance', 'savings-plan'], `${itemField}.benefitType`));
|
|
327
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(benefit.amortizationSource, ['reservation-effective-cost', 'savings-plan-effective-cost'], `${itemField}.amortizationSource`);
|
|
328
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(benefit.expenseCount, `${itemField}.expenseCount`);
|
|
329
|
+
validateCostTotals(benefit.totalsByCurrency, `${itemField}.totalsByCurrency`);
|
|
330
|
+
validateCostViews(benefit.costViewByCurrency, `${itemField}.costViewByCurrency`);
|
|
331
|
+
});
|
|
332
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(types, `${field}.byBenefitType`);
|
|
333
|
+
}
|
|
334
|
+
function validateBenefitWarning(value, field) {
|
|
335
|
+
const warning = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
|
|
336
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(warning, ['code', 'severity', 'matchedExpenseCount', 'unclassifiedExpenseCount', 'message'], field);
|
|
337
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(warning.code, ['ri-sp-coverage-evidence-missing', 'ri-sp-coverage-evidence-partial'], `${field}.code`);
|
|
338
|
+
(0, portalPublicArtifactValidationCommon_1.assertValue)(warning.severity, 'warning', `${field}.severity`);
|
|
339
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(warning.matchedExpenseCount, `${field}.matchedExpenseCount`);
|
|
340
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(warning.unclassifiedExpenseCount, `${field}.unclassifiedExpenseCount`);
|
|
341
|
+
(0, portalPublicArtifactValidationCommon_1.requiredString)(warning.message, `${field}.message`);
|
|
342
|
+
}
|
|
343
|
+
function validateCostTotals(value, field) {
|
|
344
|
+
if (!Array.isArray(value))
|
|
345
|
+
throw new Error(`${field} must be an array.`);
|
|
346
|
+
const currencies = [];
|
|
347
|
+
value.forEach((entry, index) => {
|
|
348
|
+
const itemField = `${field}[${index}]`;
|
|
349
|
+
const total = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
350
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(total, ['currency', 'expenseCount', 'baseCostAmount', 'amortizedCostAmount', 'amortizedExpenseCount'], itemField);
|
|
351
|
+
currencies.push((0, portalPublicArtifactValidationCommon_1.requiredString)(total.currency, `${itemField}.currency`));
|
|
352
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(total.expenseCount, `${itemField}.expenseCount`);
|
|
353
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(total.baseCostAmount, `${itemField}.baseCostAmount`);
|
|
354
|
+
if (total.amortizedCostAmount !== undefined)
|
|
355
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(total.amortizedCostAmount, `${itemField}.amortizedCostAmount`);
|
|
356
|
+
if (total.amortizedExpenseCount !== undefined)
|
|
357
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(total.amortizedExpenseCount, `${itemField}.amortizedExpenseCount`);
|
|
358
|
+
});
|
|
359
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(currencies, field);
|
|
360
|
+
}
|
|
361
|
+
function validateCostViews(value, field) {
|
|
362
|
+
if (!Array.isArray(value))
|
|
363
|
+
throw new Error(`${field} must be an array.`);
|
|
364
|
+
const currencies = [];
|
|
365
|
+
value.forEach((entry, index) => {
|
|
366
|
+
const itemField = `${field}[${index}]`;
|
|
367
|
+
const view = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
|
|
368
|
+
(0, portalPublicArtifactValidationCommon_1.assertExactKeys)(view, [
|
|
369
|
+
'currency',
|
|
370
|
+
'actualCostAmount',
|
|
371
|
+
'amortizedCostAmount',
|
|
372
|
+
'amortizedExpenseCount',
|
|
373
|
+
'amortizationCoverageState',
|
|
374
|
+
'actualVsAmortizedDeltaAmount',
|
|
375
|
+
'commitmentCoverageState',
|
|
376
|
+
'showAmortizedCosts',
|
|
377
|
+
], itemField);
|
|
378
|
+
currencies.push((0, portalPublicArtifactValidationCommon_1.requiredString)(view.currency, `${itemField}.currency`));
|
|
379
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(view.actualCostAmount, `${itemField}.actualCostAmount`);
|
|
380
|
+
['amortizedCostAmount', 'actualVsAmortizedDeltaAmount'].forEach(key => {
|
|
381
|
+
if (view[key] !== undefined)
|
|
382
|
+
(0, portalPublicArtifactValidationCommon_1.finiteNumber)(view[key], `${itemField}.${key}`);
|
|
383
|
+
});
|
|
384
|
+
if (view.amortizedExpenseCount !== undefined)
|
|
385
|
+
(0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(view.amortizedExpenseCount, `${itemField}.amortizedExpenseCount`);
|
|
386
|
+
if (view.amortizationCoverageState !== undefined)
|
|
387
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(view.amortizationCoverageState, ['complete', 'partial', 'none', 'unavailable'], `${itemField}.amortizationCoverageState`);
|
|
388
|
+
(0, portalPublicArtifactValidationCommon_1.requiredEnum)(view.commitmentCoverageState, ['discounted', 'no-amortized-cost', 'no-delta', 'amortized-exceeds-base', 'partial-amortized-cost', 'amortization-coverage-unavailable'], `${itemField}.commitmentCoverageState`);
|
|
389
|
+
(0, portalPublicArtifactValidationCommon_1.requiredBoolean)(view.showAmortizedCosts, `${itemField}.showAmortizedCosts`);
|
|
390
|
+
});
|
|
391
|
+
(0, portalPublicArtifactValidationCommon_1.assertUnique)(currencies, field);
|
|
392
|
+
}
|
|
393
|
+
function percentage(value, field) {
|
|
394
|
+
const result = (0, portalPublicArtifactValidationCommon_1.finiteNumber)(value, field);
|
|
395
|
+
if (result < 0 || result > 100)
|
|
396
|
+
throw new Error(`${field} must be between 0 and 100.`);
|
|
397
|
+
return result;
|
|
398
|
+
}
|
|
399
|
+
function httpsUrl(value, field) {
|
|
400
|
+
const result = (0, portalPublicArtifactValidationCommon_1.requiredString)(value, field);
|
|
401
|
+
if (!result.startsWith('https://'))
|
|
402
|
+
throw new Error(`${field} must be an HTTPS URL.`);
|
|
403
|
+
return result;
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=portalPublicArtifactNestedEvidenceValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactNestedEvidenceValidation.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactNestedEvidenceValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { validateAwsPortalAccountSummaryDetailArtifact, validateAwsPortalResourceCollectionDetailArtifact, } from './portalPublicArtifactCurrentValidation';
|
|
2
|
+
export { validateAwsPortalAccountSummaryAiCostSummaryArtifact, validateAwsPortalAccountSummaryAiCostSummarySiblingBinding, validateAwsPortalAccountSummaryHistoryArtifact, validateAwsPortalResourceCollectionHistoryArtifact, validateAwsPortalRetainedHistoryBodyBinding, validateAwsPortalRetainedHistoryBodyReference, } from './portalPublicArtifactHistoryAiValidation';
|
|
3
|
+
//# sourceMappingURL=portalPublicArtifactValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6CAA6C,EAC7C,iDAAiD,GAClD,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,oDAAoD,EACpD,0DAA0D,EAC1D,8CAA8C,EAC9C,kDAAkD,EAClD,2CAA2C,EAC3C,6CAA6C,GAC9C,MAAM,2CAA2C,CAAC"}
|