@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.
Files changed (76) hide show
  1. package/README.md +14 -4
  2. package/dist/aws/index.d.ts +8 -0
  3. package/dist/aws/index.d.ts.map +1 -1
  4. package/dist/aws/index.js +8 -0
  5. package/dist/aws/index.js.map +1 -1
  6. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +10 -0
  7. package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +1 -0
  8. package/dist/aws/pluginPublicArtifactBodyValidation.js +225 -0
  9. package/dist/aws/pluginPublicArtifactBodyValidation.js.map +1 -0
  10. package/dist/aws/pluginPublicArtifactEvidence.d.ts +161 -0
  11. package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +1 -0
  12. package/dist/aws/pluginPublicArtifactEvidence.js +3 -0
  13. package/dist/aws/pluginPublicArtifactEvidence.js.map +1 -0
  14. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +4 -0
  15. package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +1 -0
  16. package/dist/aws/pluginPublicArtifactManifestValidation.js +259 -0
  17. package/dist/aws/pluginPublicArtifactManifestValidation.js.map +1 -0
  18. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +6 -0
  19. package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +1 -0
  20. package/dist/aws/pluginPublicArtifactSectionValidation.js +471 -0
  21. package/dist/aws/pluginPublicArtifactSectionValidation.js.map +1 -0
  22. package/dist/aws/pluginPublicArtifactValidation.d.ts +3 -0
  23. package/dist/aws/pluginPublicArtifactValidation.d.ts.map +1 -0
  24. package/dist/aws/pluginPublicArtifactValidation.js +9 -0
  25. package/dist/aws/pluginPublicArtifactValidation.js.map +1 -0
  26. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +23 -0
  27. package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +1 -0
  28. package/dist/aws/pluginPublicArtifactValidationHelpers.js +241 -0
  29. package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +1 -0
  30. package/dist/aws/pluginPublicArtifacts.d.ts +253 -0
  31. package/dist/aws/pluginPublicArtifacts.d.ts.map +1 -0
  32. package/dist/aws/pluginPublicArtifacts.js +116 -0
  33. package/dist/aws/pluginPublicArtifacts.js.map +1 -0
  34. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +4 -0
  35. package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +1 -0
  36. package/dist/aws/portalPublicArtifactCurrentValidation.js +333 -0
  37. package/dist/aws/portalPublicArtifactCurrentValidation.js.map +1 -0
  38. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +6 -0
  39. package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +1 -0
  40. package/dist/aws/portalPublicArtifactEvidenceValidation.js +227 -0
  41. package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +1 -0
  42. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +8 -0
  43. package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +1 -0
  44. package/dist/aws/portalPublicArtifactHistoryAiValidation.js +377 -0
  45. package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +1 -0
  46. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +168 -0
  47. package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -0
  48. package/dist/aws/portalPublicArtifactHistoryTypes.js +32 -0
  49. package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -0
  50. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +127 -0
  51. package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +1 -0
  52. package/dist/aws/portalPublicArtifactNestedEvidence.js +3 -0
  53. package/dist/aws/portalPublicArtifactNestedEvidence.js.map +1 -0
  54. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +6 -0
  55. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +1 -0
  56. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +405 -0
  57. package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +1 -0
  58. package/dist/aws/portalPublicArtifactValidation.d.ts +3 -0
  59. package/dist/aws/portalPublicArtifactValidation.d.ts.map +1 -0
  60. package/dist/aws/portalPublicArtifactValidation.js +14 -0
  61. package/dist/aws/portalPublicArtifactValidation.js.map +1 -0
  62. package/dist/aws/portalPublicArtifactValidationCommon.d.ts +30 -0
  63. package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +1 -0
  64. package/dist/aws/portalPublicArtifactValidationCommon.js +167 -0
  65. package/dist/aws/portalPublicArtifactValidationCommon.js.map +1 -0
  66. package/dist/aws/portalPublicArtifacts.d.ts +371 -0
  67. package/dist/aws/portalPublicArtifacts.d.ts.map +1 -0
  68. package/dist/aws/portalPublicArtifacts.js +85 -0
  69. package/dist/aws/portalPublicArtifacts.js.map +1 -0
  70. package/dist/aws/publicArtifacts.d.ts +3 -2
  71. package/dist/aws/publicArtifacts.d.ts.map +1 -1
  72. package/dist/aws/publicArtifacts.js +3 -0
  73. package/dist/aws/publicArtifacts.js.map +1 -1
  74. package/dist/integrations/autotask.d.ts +21 -3
  75. package/dist/integrations/autotask.d.ts.map +1 -1
  76. package/package.json +5 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginPublicArtifacts.js","sourceRoot":"","sources":["../../src/aws/pluginPublicArtifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type AwsPortalAccountSummaryDetailArtifact, type AwsPortalResourceCollectionDetailArtifact } from './portalPublicArtifacts';
2
+ export declare function validateAwsPortalResourceCollectionDetailArtifact(value: unknown): AwsPortalResourceCollectionDetailArtifact;
3
+ export declare function validateAwsPortalAccountSummaryDetailArtifact(value: unknown): AwsPortalAccountSummaryDetailArtifact;
4
+ //# sourceMappingURL=portalPublicArtifactCurrentValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactCurrentValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactCurrentValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qCAAqC,EAC1C,KAAK,yCAAyC,EAC/C,MAAM,yBAAyB,CAAC;AA8EjC,wBAAgB,iDAAiD,CAAC,KAAK,EAAE,OAAO,GAAG,yCAAyC,CAgB3H;AAED,wBAAgB,6CAA6C,CAAC,KAAK,EAAE,OAAO,GAAG,qCAAqC,CA0BnH"}
@@ -0,0 +1,333 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsPortalResourceCollectionDetailArtifact = validateAwsPortalResourceCollectionDetailArtifact;
4
+ exports.validateAwsPortalAccountSummaryDetailArtifact = validateAwsPortalAccountSummaryDetailArtifact;
5
+ const portalPublicArtifacts_1 = require("./portalPublicArtifacts");
6
+ const portalPublicArtifactValidationCommon_1 = require("./portalPublicArtifactValidationCommon");
7
+ const portalPublicArtifactEvidenceValidation_1 = require("./portalPublicArtifactEvidenceValidation");
8
+ const portalPublicArtifactNestedEvidenceValidation_1 = require("./portalPublicArtifactNestedEvidenceValidation");
9
+ const DISCOVERY_FAMILIES = [
10
+ 'ec2-instance',
11
+ 'ebs-volume',
12
+ 'efs-file-system',
13
+ 'lambda-function',
14
+ 'elasticache-cache-cluster',
15
+ 'elasticache-serverless-cache',
16
+ 'vpc',
17
+ 'subnet',
18
+ 'route-table',
19
+ 'internet-gateway',
20
+ 'nat-gateway',
21
+ 'network-interface',
22
+ 'virtual-private-gateway',
23
+ 'load-balancer-v2',
24
+ 'classic-load-balancer',
25
+ 'security-group',
26
+ 'rds-db-cluster',
27
+ 'rds-db-instance',
28
+ ];
29
+ const METRIC_FAMILIES = [
30
+ 'ec2-core-utilization',
31
+ 'ebs-volume-performance',
32
+ 'lambda-function-performance',
33
+ 'load-balancer-v2-network-traffic',
34
+ 'load-balancer-v2-application-traffic',
35
+ 'rds-db-instance-utilization',
36
+ ];
37
+ const RECOMMENDATION_SOURCES = [
38
+ 'custom',
39
+ 'compute-optimizer',
40
+ 'cost-optimization-hub',
41
+ 'resilience-hub',
42
+ 'security-hub',
43
+ 'trusted-advisor',
44
+ 'well-architected',
45
+ ];
46
+ const CURRENT_KEYS = [
47
+ 'schemaVersion',
48
+ 'portalSchemaVersion',
49
+ 'provider',
50
+ 'accountId',
51
+ 'artifactType',
52
+ 'artifactGeneration',
53
+ 'generatedAt',
54
+ 'logicalName',
55
+ 'scope',
56
+ ];
57
+ function validateAwsPortalResourceCollectionDetailArtifact(value) {
58
+ const artifact = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact');
59
+ const { accountId } = (0, portalPublicArtifactValidationCommon_1.validatePortalEnvelope)(artifact, 'resource-collection', [...CURRENT_KEYS, 'summary', 'coverage', 'resources']);
60
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, portalPublicArtifacts_1.AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME, 'artifact.logicalName');
61
+ const scope = (0, portalPublicArtifactValidationCommon_1.validateResourceScope)(artifact.scope, accountId, 'artifact.scope');
62
+ validateResourceSummary(artifact.summary, 'artifact.summary');
63
+ validateResourceCoverage(artifact.coverage, accountId, scope);
64
+ if (!Array.isArray(artifact.resources))
65
+ throw new Error('artifact.resources must be an array.');
66
+ validateResources(artifact.resources, scope.resourceRegions);
67
+ const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(artifact.summary, 'artifact.summary');
68
+ if (summary.returnedResourceCount !== artifact.resources.length)
69
+ throw new Error('artifact.summary.returnedResourceCount must equal artifact.resources length.');
70
+ if (Number(summary.totalDiscoveredResourceCount) < Number(summary.returnedResourceCount))
71
+ throw new Error('artifact.summary.totalDiscoveredResourceCount must not be less than returnedResourceCount.');
72
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(artifact, 'artifact');
73
+ return value;
74
+ }
75
+ function validateAwsPortalAccountSummaryDetailArtifact(value) {
76
+ const artifact = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact');
77
+ const { accountId } = (0, portalPublicArtifactValidationCommon_1.validatePortalEnvelope)(artifact, 'account-summary', [
78
+ ...CURRENT_KEYS,
79
+ 'account',
80
+ 'billing',
81
+ 'discovery',
82
+ 'metrics',
83
+ 'recommendations',
84
+ ]);
85
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME, 'artifact.logicalName');
86
+ const scope = (0, portalPublicArtifactValidationCommon_1.validateAccountScope)(artifact.scope, accountId, 'artifact.scope');
87
+ validateAccount(artifact.account, accountId);
88
+ (0, portalPublicArtifactEvidenceValidation_1.validateAwsPortalBillingBlock)(artifact.billing, 'artifact.billing', scope.billing, accountId, true);
89
+ validateDiscovery(artifact.discovery, scope.resourceRegions, 'artifact.discovery');
90
+ validateMetrics(artifact.metrics, scope.resourceRegions, 'artifact.metrics', 'account');
91
+ (0, portalPublicArtifactEvidenceValidation_1.validateAwsPortalRecommendationCoverage)(artifact.recommendations, accountId, scope.resourceRegions, 'artifact.recommendations', RECOMMENDATION_SOURCES, true);
92
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(artifact, 'artifact');
93
+ return value;
94
+ }
95
+ function validateResourceSummary(value, field) {
96
+ const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
97
+ const keys = [
98
+ 'totalDiscoveredResourceCount',
99
+ 'returnedResourceCount',
100
+ 'emptyCollection',
101
+ 'truncated',
102
+ 'unmatchedRecommendationResourceCount',
103
+ 'unmatchedBillingExpenseCount',
104
+ ];
105
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(summary, keys, field);
106
+ keys.filter(key => !['emptyCollection', 'truncated'].includes(key)).forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(summary[key], `${field}.${key}`));
107
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(summary.emptyCollection, `${field}.emptyCollection`);
108
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(summary.truncated, `${field}.truncated`);
109
+ if (summary.emptyCollection === true && Number(summary.returnedResourceCount) !== 0)
110
+ throw new Error(`${field}.emptyCollection requires zero returned resources.`);
111
+ }
112
+ function validateResourceCoverage(value, accountId, scope) {
113
+ const coverage = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.coverage');
114
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(coverage, ['billing', 'discovery', 'metrics', 'recommendations', 'virtualTags'], 'artifact.coverage');
115
+ (0, portalPublicArtifactEvidenceValidation_1.validateAwsPortalBillingBlock)(coverage.billing, 'artifact.coverage.billing', scope.billing, accountId, false);
116
+ validateDiscovery(coverage.discovery, scope.resourceRegions, 'artifact.coverage.discovery');
117
+ validateMetrics(coverage.metrics, scope.resourceRegions, 'artifact.coverage.metrics', 'resource');
118
+ (0, portalPublicArtifactEvidenceValidation_1.validateAwsPortalRecommendationCoverage)(coverage.recommendations, accountId, scope.resourceRegions, 'artifact.coverage.recommendations', RECOMMENDATION_SOURCES, false);
119
+ if (coverage.virtualTags !== undefined)
120
+ validateVirtualTags(coverage.virtualTags);
121
+ }
122
+ function validateDiscovery(value, regions, field) {
123
+ const discovery = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
124
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(discovery, ['families'], field);
125
+ if (!Array.isArray(discovery.families))
126
+ throw new Error(`${field}.families must be an array.`);
127
+ const identities = [];
128
+ discovery.families.forEach((entry, index) => {
129
+ const itemField = `${field}.families[${index}]`;
130
+ const family = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
131
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(family, ['family', 'resourceRegion', 'freshness', 'summary', 'groupedTotals'], itemField);
132
+ const familyName = (0, portalPublicArtifactValidationCommon_1.requiredEnum)(family.family, DISCOVERY_FAMILIES, `${itemField}.family`);
133
+ const region = (0, portalPublicArtifactValidationCommon_1.requiredString)(family.resourceRegion, `${itemField}.resourceRegion`);
134
+ if (!regions.includes(region))
135
+ throw new Error(`${itemField}.resourceRegion is outside artifact scope.`);
136
+ identities.push(`${familyName}|${region}`);
137
+ (0, portalPublicArtifactValidationCommon_1.validateFreshness)(family.freshness, `${itemField}.freshness`, 'lastSuccessfulRefreshAt');
138
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.summary, `${itemField}.summary`);
139
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.groupedTotals, `${itemField}.groupedTotals`);
140
+ });
141
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(identities, `${field}.families`);
142
+ }
143
+ function validateMetrics(value, regions, field, kind) {
144
+ const metrics = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
145
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(metrics, ['families'], field);
146
+ if (!Array.isArray(metrics.families))
147
+ throw new Error(`${field}.families must be an array.`);
148
+ const identities = [];
149
+ metrics.families.forEach((entry, index) => {
150
+ const itemField = `${field}.families[${index}]`;
151
+ const family = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
152
+ const keys = kind === 'resource'
153
+ ? ['metricFamily', 'resourceRegion', 'requestedMonths', 'availableMonths', 'missingMonths', 'coverage', 'summary']
154
+ : ['metricFamily', 'resourceRegion', 'status', 'requestedMonths', 'availableMonths', 'missingMonths', 'freshness', 'readiness', 'summary'];
155
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(family, keys, itemField);
156
+ const metricFamily = (0, portalPublicArtifactValidationCommon_1.requiredEnum)(family.metricFamily, METRIC_FAMILIES, `${itemField}.metricFamily`);
157
+ const region = (0, portalPublicArtifactValidationCommon_1.requiredString)(family.resourceRegion, `${itemField}.resourceRegion`);
158
+ if (!regions.includes(region))
159
+ throw new Error(`${itemField}.resourceRegion is outside artifact scope.`);
160
+ identities.push(`${metricFamily}|${region}`);
161
+ if (family.status !== undefined)
162
+ (0, portalPublicArtifactValidationCommon_1.requiredEnum)(family.status, ['available', 'not-found'], `${itemField}.status`);
163
+ const requestedMonths = (0, portalPublicArtifactValidationCommon_1.stringArray)(family.requestedMonths, `${itemField}.requestedMonths`);
164
+ const availableMonths = (0, portalPublicArtifactValidationCommon_1.stringArray)(family.availableMonths, `${itemField}.availableMonths`);
165
+ const missingMonths = (0, portalPublicArtifactValidationCommon_1.stringArray)(family.missingMonths, `${itemField}.missingMonths`);
166
+ [...requestedMonths, ...availableMonths, ...missingMonths].forEach(month => {
167
+ if (!/^\d{4}-(0[1-9]|1[0-2])$/.test(month))
168
+ throw new Error(`${itemField} contains a non-canonical billing month: ${month}.`);
169
+ });
170
+ const classifiedMonths = [...availableMonths, ...missingMonths].sort();
171
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(classifiedMonths, `${itemField} classified months`);
172
+ if (JSON.stringify(requestedMonths) !== JSON.stringify(classifiedMonths))
173
+ throw new Error(`${itemField} requestedMonths must equal availableMonths plus missingMonths.`);
174
+ if (family.freshness !== undefined)
175
+ (0, portalPublicArtifactValidationCommon_1.validateFreshness)(family.freshness, `${itemField}.freshness`, 'lastSuccessfulRefreshAt');
176
+ if (family.readiness !== undefined)
177
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.readiness, `${itemField}.readiness`);
178
+ if (family.coverage !== undefined)
179
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.coverage, `${itemField}.coverage`);
180
+ if (family.summary !== undefined)
181
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.summary, `${itemField}.summary`);
182
+ });
183
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(identities, `${field}.families`);
184
+ }
185
+ function validateVirtualTags(value) {
186
+ const tags = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.coverage.virtualTags');
187
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(tags, ['status', 'source', 'generatedAt', 'rulesHash', 'enabledRuleCount', 'appliedRuleCount', 'taggedResourceCount', 'unsupportedRuleCount', 'reason'], 'artifact.coverage.virtualTags');
188
+ (0, portalPublicArtifactValidationCommon_1.requiredEnum)(tags.status, ['available', 'missing', 'malformed', 'unsupported'], 'artifact.coverage.virtualTags.status');
189
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(tags.source, 'spotto-tags', 'artifact.coverage.virtualTags.source');
190
+ (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(tags.generatedAt, 'artifact.coverage.virtualTags.generatedAt');
191
+ if (tags.rulesHash !== undefined && !/^[a-f0-9]{64}$/.test(String(tags.rulesHash)))
192
+ throw new Error('artifact.coverage.virtualTags.rulesHash must be a SHA-256.');
193
+ ['enabledRuleCount', 'appliedRuleCount', 'taggedResourceCount', 'unsupportedRuleCount'].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(tags[key], `artifact.coverage.virtualTags.${key}`));
194
+ if (tags.reason !== undefined)
195
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(tags.reason, 'artifact.coverage.virtualTags.reason');
196
+ }
197
+ function validateResources(value, regions) {
198
+ if (!Array.isArray(value))
199
+ throw new Error('artifact.resources must be an array.');
200
+ const stableKeys = [];
201
+ value.forEach((entry, index) => {
202
+ const field = `artifact.resources[${index}]`;
203
+ const resource = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, field);
204
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(resource, [
205
+ 'stableKey',
206
+ 'family',
207
+ 'resourceRegion',
208
+ 'resourceType',
209
+ 'resourceArn',
210
+ 'resourceId',
211
+ 'resourceName',
212
+ 'tags',
213
+ 'spottoTags',
214
+ 'discovery',
215
+ 'billing',
216
+ 'metrics',
217
+ 'recommendations',
218
+ ], field);
219
+ stableKeys.push((0, portalPublicArtifactValidationCommon_1.requiredString)(resource.stableKey, `${field}.stableKey`));
220
+ (0, portalPublicArtifactValidationCommon_1.requiredEnum)(resource.family, DISCOVERY_FAMILIES, `${field}.family`);
221
+ const region = (0, portalPublicArtifactValidationCommon_1.requiredString)(resource.resourceRegion, `${field}.resourceRegion`);
222
+ if (!regions.includes(region))
223
+ throw new Error(`${field}.resourceRegion is outside artifact scope.`);
224
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(resource.resourceType, `${field}.resourceType`);
225
+ ['resourceArn', 'resourceId', 'resourceName'].forEach(key => {
226
+ if (resource[key] !== undefined)
227
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(resource[key], `${field}.${key}`);
228
+ });
229
+ if (resource.tags !== undefined)
230
+ validateStringMap(resource.tags, `${field}.tags`);
231
+ if (resource.spottoTags !== undefined)
232
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(resource.spottoTags, `${field}.spottoTags`);
233
+ const discovery = (0, portalPublicArtifactValidationCommon_1.asRecord)(resource.discovery, `${field}.discovery`);
234
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(discovery, ['freshness', 'summary'], `${field}.discovery`);
235
+ (0, portalPublicArtifactValidationCommon_1.validateFreshness)(discovery.freshness, `${field}.discovery.freshness`, 'lastSuccessfulRefreshAt');
236
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(discovery.summary, `${field}.discovery.summary`);
237
+ if (resource.billing !== undefined)
238
+ (0, portalPublicArtifactNestedEvidenceValidation_1.validateResourceBillingEvidence)(resource.billing, `${field}.billing`);
239
+ if (resource.metrics !== undefined)
240
+ validateResourceMetrics(resource.metrics, `${field}.metrics`);
241
+ if (resource.recommendations !== undefined)
242
+ validateResourceRecommendations(resource.recommendations, `${field}.recommendations`);
243
+ });
244
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(stableKeys, 'artifact.resources');
245
+ }
246
+ function validateResourceMetrics(value, field) {
247
+ const metrics = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
248
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(metrics, ['supported', 'families'], field);
249
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(metrics.supported, `${field}.supported`);
250
+ if (!Array.isArray(metrics.families))
251
+ throw new Error(`${field}.families must be an array.`);
252
+ metrics.families.forEach((entry, index) => {
253
+ const family = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, `${field}.families[${index}]`);
254
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(family, ['metricFamily', 'summary', 'coverage'], `${field}.families[${index}]`);
255
+ (0, portalPublicArtifactValidationCommon_1.requiredEnum)(family.metricFamily, METRIC_FAMILIES, `${field}.families[${index}].metricFamily`);
256
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.summary, `${field}.families[${index}].summary`);
257
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(family.coverage, `${field}.families[${index}].coverage`);
258
+ });
259
+ }
260
+ function validateResourceRecommendations(value, field) {
261
+ const recommendations = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
262
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(recommendations, ['matchedRecommendationCount', 'sources', 'actionability', 'templateProvenance', 'counts', 'savings'], field);
263
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(recommendations.matchedRecommendationCount, `${field}.matchedRecommendationCount`);
264
+ (0, portalPublicArtifactValidationCommon_1.stringArray)(recommendations.sources, `${field}.sources`).forEach(source => (0, portalPublicArtifactValidationCommon_1.requiredEnum)(source, RECOMMENDATION_SOURCES, `${field}.sources`));
265
+ if (recommendations.actionability !== undefined) {
266
+ (0, portalPublicArtifactNestedEvidenceValidation_1.validateRecommendationActionability)(recommendations.actionability, `${field}.actionability`);
267
+ }
268
+ if (recommendations.templateProvenance !== undefined)
269
+ validateTemplateProvenance(recommendations.templateProvenance, `${field}.templateProvenance`);
270
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(recommendations.counts, `${field}.counts`);
271
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(recommendations.savings, `${field}.savings`);
272
+ }
273
+ function validateTemplateProvenance(value, field) {
274
+ const provenance = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
275
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(provenance, [
276
+ 'status',
277
+ 'templateBackedRecommendationCount',
278
+ 'missingTemplateRecommendationCount',
279
+ 'internalTemplateCount',
280
+ 'externalTemplateCount',
281
+ 'confidenceBackedRecommendationCount',
282
+ 'templateRecommendationWithoutConfidenceCount',
283
+ 'lowestConfidenceSources',
284
+ 'minimumConfidencePercentage',
285
+ 'maximumConfidencePercentage',
286
+ 'averageConfidencePercentage',
287
+ ], field);
288
+ (0, portalPublicArtifactValidationCommon_1.requiredEnum)(provenance.status, ['available-no-template-items', 'missing-template-evidence', 'missing-confidence-evidence', 'available-with-confidence'], `${field}.status`);
289
+ [
290
+ 'templateBackedRecommendationCount',
291
+ 'missingTemplateRecommendationCount',
292
+ 'internalTemplateCount',
293
+ 'externalTemplateCount',
294
+ 'confidenceBackedRecommendationCount',
295
+ 'templateRecommendationWithoutConfidenceCount',
296
+ ].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(provenance[key], `${field}.${key}`));
297
+ (0, portalPublicArtifactNestedEvidenceValidation_1.validateTemplateProvenanceSources)(provenance.lowestConfidenceSources, `${field}.lowestConfidenceSources`);
298
+ ['minimumConfidencePercentage', 'maximumConfidencePercentage', 'averageConfidencePercentage'].forEach(key => {
299
+ if (provenance[key] !== undefined && (typeof provenance[key] !== 'number' || !Number.isFinite(provenance[key])))
300
+ throw new Error(`${field}.${key} must be finite.`);
301
+ });
302
+ }
303
+ function validateAccount(value, accountId) {
304
+ const account = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.account');
305
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(account, [
306
+ 'metadataFound',
307
+ 'providerAccountId',
308
+ 'cloudAccountId',
309
+ 'accountName',
310
+ 'validatedAt',
311
+ 'providerPartition',
312
+ 'summary',
313
+ 'firstUsefulRecommendationReadiness',
314
+ ], 'artifact.account');
315
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(account.metadataFound, 'artifact.account.metadataFound');
316
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(account.providerAccountId, accountId, 'artifact.account.providerAccountId');
317
+ ['cloudAccountId', 'accountName', 'providerPartition'].forEach(key => {
318
+ if (account[key] !== undefined)
319
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(account[key], `artifact.account.${key}`);
320
+ });
321
+ (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(account.validatedAt, 'artifact.account.validatedAt');
322
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(account.summary, 'artifact.account.summary');
323
+ if (account.firstUsefulRecommendationReadiness !== undefined)
324
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(account.firstUsefulRecommendationReadiness, 'artifact.account.firstUsefulRecommendationReadiness');
325
+ }
326
+ function validateStringMap(value, field) {
327
+ const map = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
328
+ Object.entries(map).forEach(([key, item]) => {
329
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(key, `${field} key`);
330
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(item, `${field}.${key}`);
331
+ });
332
+ }
333
+ //# sourceMappingURL=portalPublicArtifactCurrentValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactCurrentValidation.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactCurrentValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { AwsPortalBillingScope } from './portalPublicArtifacts';
2
+ export declare function validateAwsPortalBillingBlock(value: unknown, field: string, outerBilling: AwsPortalBillingScope, accountId: string, accountBody: boolean): void;
3
+ export declare function validateAwsPortalRecommendationCoverage(value: unknown, accountId: string, regions: string[], field: string, sources: readonly string[], includeTrust: boolean): void;
4
+ export declare function validateRecommendationSourceEvidence(value: unknown, field: string): void;
5
+ export declare function validateRecommendationActionHealth(value: unknown, field: string): void;
6
+ //# sourceMappingURL=portalPublicArtifactEvidenceValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactEvidenceValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactEvidenceValidation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAiBrE,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,IAAI,CAkCN;AAED,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,YAAY,EAAE,OAAO,GACpB,IAAI,CAkCN;AA8HD,wBAAgB,oCAAoC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA2BxF;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKtF"}