@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,377 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsPortalResourceCollectionHistoryArtifact = validateAwsPortalResourceCollectionHistoryArtifact;
4
+ exports.validateAwsPortalAccountSummaryHistoryArtifact = validateAwsPortalAccountSummaryHistoryArtifact;
5
+ exports.validateAwsPortalRetainedHistoryBodyReference = validateAwsPortalRetainedHistoryBodyReference;
6
+ exports.validateAwsPortalRetainedHistoryBodyBinding = validateAwsPortalRetainedHistoryBodyBinding;
7
+ exports.validateAwsPortalAccountSummaryAiCostSummaryArtifact = validateAwsPortalAccountSummaryAiCostSummaryArtifact;
8
+ exports.validateAwsPortalAccountSummaryAiCostSummarySiblingBinding = validateAwsPortalAccountSummaryAiCostSummarySiblingBinding;
9
+ const portalPublicArtifacts_1 = require("./portalPublicArtifacts");
10
+ const portalPublicArtifactValidationCommon_1 = require("./portalPublicArtifactValidationCommon");
11
+ const pluginPublicArtifactValidationHelpers_1 = require("./pluginPublicArtifactValidationHelpers");
12
+ const portalPublicArtifactCurrentValidation_1 = require("./portalPublicArtifactCurrentValidation");
13
+ const portalPublicArtifactNestedEvidenceValidation_1 = require("./portalPublicArtifactNestedEvidenceValidation");
14
+ const portalPublicArtifactEvidenceValidation_1 = require("./portalPublicArtifactEvidenceValidation");
15
+ const HISTORY_ENVELOPE_KEYS = [
16
+ 'schemaVersion',
17
+ 'portalSchemaVersion',
18
+ 'provider',
19
+ 'accountId',
20
+ 'artifactType',
21
+ 'artifactGeneration',
22
+ 'generatedAt',
23
+ 'logicalName',
24
+ 'scope',
25
+ 'billing',
26
+ 'discovery',
27
+ 'recommendations',
28
+ ];
29
+ const AI_AUDIENCES = ['executive', 'finops', 'engineering'];
30
+ const DISCOVERY_FAMILIES = [
31
+ 'ec2-instance',
32
+ 'ebs-volume',
33
+ 'efs-file-system',
34
+ 'lambda-function',
35
+ 'elasticache-cache-cluster',
36
+ 'elasticache-serverless-cache',
37
+ 'vpc',
38
+ 'subnet',
39
+ 'route-table',
40
+ 'internet-gateway',
41
+ 'nat-gateway',
42
+ 'network-interface',
43
+ 'virtual-private-gateway',
44
+ 'load-balancer-v2',
45
+ 'classic-load-balancer',
46
+ 'security-group',
47
+ 'rds-db-cluster',
48
+ 'rds-db-instance',
49
+ ];
50
+ const METRIC_FAMILIES = [
51
+ 'ec2-core-utilization',
52
+ 'ebs-volume-performance',
53
+ 'lambda-function-performance',
54
+ 'load-balancer-v2-network-traffic',
55
+ 'load-balancer-v2-application-traffic',
56
+ 'rds-db-instance-utilization',
57
+ ];
58
+ const RECOMMENDATION_SOURCES = [
59
+ 'custom',
60
+ 'compute-optimizer',
61
+ 'cost-optimization-hub',
62
+ 'resilience-hub',
63
+ 'security-hub',
64
+ 'trusted-advisor',
65
+ 'well-architected',
66
+ ];
67
+ function validateAwsPortalResourceCollectionHistoryArtifact(value) {
68
+ const artifact = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact');
69
+ const { accountId } = (0, portalPublicArtifactValidationCommon_1.validatePortalEnvelope)(artifact, 'resource-collection-history', [...HISTORY_ENVELOPE_KEYS, 'summary', 'metrics']);
70
+ const scope = (0, portalPublicArtifactValidationCommon_1.validateResourceScope)(artifact.scope, accountId, 'artifact.scope');
71
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, (0, portalPublicArtifacts_1.buildAwsPortalResourceCollectionHistoryLogicalNameForScope)(scope, String(artifact.generatedAt)), 'artifact.logicalName');
72
+ validateResourceSummary(artifact.summary);
73
+ validateHistoryBilling(artifact.billing, 'artifact.billing');
74
+ validateHistoryDiscovery(artifact.discovery, 'artifact.discovery');
75
+ validateHistoryMetrics(artifact.metrics);
76
+ validateResourceHistoryRecommendations(artifact.recommendations);
77
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(artifact, 'artifact');
78
+ return value;
79
+ }
80
+ function validateAwsPortalAccountSummaryHistoryArtifact(value) {
81
+ const artifact = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact');
82
+ const { accountId } = (0, portalPublicArtifactValidationCommon_1.validatePortalEnvelope)(artifact, 'account-summary-history', HISTORY_ENVELOPE_KEYS);
83
+ (0, portalPublicArtifactValidationCommon_1.validateHistoryAccountScope)(artifact.scope, accountId, 'artifact.scope');
84
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, (0, portalPublicArtifacts_1.buildAwsPortalAccountSummaryHistoryLogicalNameForScope)(artifact.scope), 'artifact.logicalName');
85
+ validateHistoryBilling(artifact.billing, 'artifact.billing');
86
+ validateHistoryDiscovery(artifact.discovery, 'artifact.discovery');
87
+ validateAccountHistoryRecommendations(artifact.recommendations);
88
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(artifact, 'artifact');
89
+ return value;
90
+ }
91
+ function validateAwsPortalRetainedHistoryBodyReference(value) {
92
+ const reference = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'reference');
93
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(reference, ['artifactType', 'logicalName', 'artifactGeneration', 'body'], 'reference');
94
+ const artifactType = (0, portalPublicArtifactValidationCommon_1.requiredEnum)(reference.artifactType, ['resource-collection-history', 'account-summary-history'], 'reference.artifactType');
95
+ validateHistoryLogicalName(reference.logicalName, artifactType === 'resource-collection-history' ? 'resources-history--' : 'account-summary-history--', 'reference.logicalName');
96
+ (0, portalPublicArtifactValidationCommon_1.validateGeneration)(reference.artifactGeneration, 'reference.artifactGeneration');
97
+ (0, pluginPublicArtifactValidationHelpers_1.validateDescriptor)(reference.body, 'reference.body');
98
+ const descriptor = (0, portalPublicArtifactValidationCommon_1.asRecord)(reference.body, 'reference.body');
99
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.name, reference.logicalName, 'reference.body.name');
100
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.mediaType, 'application/json', 'reference.body.mediaType');
101
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.contentEncoding, 'gzip', 'reference.body.contentEncoding');
102
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(reference, 'reference');
103
+ return value;
104
+ }
105
+ function validateAwsPortalRetainedHistoryBodyBinding(referenceValue, artifactValue) {
106
+ const reference = validateAwsPortalRetainedHistoryBodyReference(referenceValue);
107
+ const artifact = reference.artifactType === 'resource-collection-history'
108
+ ? validateAwsPortalResourceCollectionHistoryArtifact(artifactValue)
109
+ : validateAwsPortalAccountSummaryHistoryArtifact(artifactValue);
110
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.artifactType, reference.artifactType, 'artifact.artifactType');
111
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, reference.logicalName, 'artifact.logicalName');
112
+ if (JSON.stringify(artifact.artifactGeneration) !== JSON.stringify(reference.artifactGeneration))
113
+ throw new Error('artifact.artifactGeneration must match its retained-history reference exactly.');
114
+ return reference;
115
+ }
116
+ function validateAwsPortalAccountSummaryAiCostSummaryArtifact(value) {
117
+ const artifact = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact');
118
+ const { accountId, runId, portalGeneratedAt, bodyGeneratedAt } = (0, portalPublicArtifactValidationCommon_1.validatePortalEnvelope)(artifact, 'account-summary-ai-cost-summary', [
119
+ 'schemaVersion',
120
+ 'portalSchemaVersion',
121
+ 'provider',
122
+ 'accountId',
123
+ 'artifactType',
124
+ 'artifactGeneration',
125
+ 'generatedAt',
126
+ 'logicalName',
127
+ 'source',
128
+ 'entries',
129
+ ]);
130
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(bodyGeneratedAt, portalGeneratedAt, 'artifact.generatedAt');
131
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(artifact.logicalName, portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME, 'artifact.logicalName');
132
+ const source = (0, portalPublicArtifactValidationCommon_1.asRecord)(artifact.source, 'artifact.source');
133
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(source, ['scope', 'targetKey', 'logicalName', 'artifactType', 'artifactGeneration', 'sha256'], 'artifact.source');
134
+ const sourceScope = (0, portalPublicArtifactValidationCommon_1.validateAccountScope)(source.scope, accountId, 'artifact.source.scope');
135
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(source.targetKey, (0, portalPublicArtifacts_1.buildAwsPortalAccountSummaryTargetKey)(sourceScope), 'artifact.source.targetKey');
136
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(source.logicalName, portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME, 'artifact.source.logicalName');
137
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(source.artifactType, 'account-summary', 'artifact.source.artifactType');
138
+ const sourceGeneration = (0, portalPublicArtifactValidationCommon_1.validateGeneration)(source.artifactGeneration, 'artifact.source.artifactGeneration');
139
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(sourceGeneration.runId, runId, 'artifact.source.artifactGeneration.runId');
140
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(sourceGeneration.generatedAt, portalGeneratedAt, 'artifact.source.artifactGeneration.generatedAt');
141
+ (0, pluginPublicArtifactValidationHelpers_1.sha256)(source.sha256, 'artifact.source.sha256');
142
+ validateAiEntries(artifact.entries, sourceScope, bodyGeneratedAt);
143
+ (0, portalPublicArtifactValidationCommon_1.assertPublicJson)(artifact, 'artifact');
144
+ return value;
145
+ }
146
+ function validateAwsPortalAccountSummaryAiCostSummarySiblingBinding(aiValue, siblingValue, siblingBodyDescriptorValue) {
147
+ const ai = validateAwsPortalAccountSummaryAiCostSummaryArtifact(aiValue);
148
+ const sibling = (0, portalPublicArtifactCurrentValidation_1.validateAwsPortalAccountSummaryDetailArtifact)(siblingValue);
149
+ (0, pluginPublicArtifactValidationHelpers_1.validateDescriptor)(siblingBodyDescriptorValue, 'siblingBodyDescriptor');
150
+ const descriptor = (0, portalPublicArtifactValidationCommon_1.asRecord)(siblingBodyDescriptorValue, 'siblingBodyDescriptor');
151
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.name, portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME, 'siblingBodyDescriptor.name');
152
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.mediaType, 'application/json', 'siblingBodyDescriptor.mediaType');
153
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(descriptor.contentEncoding, 'gzip', 'siblingBodyDescriptor.contentEncoding');
154
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(ai.accountId, sibling.accountId, 'artifact.accountId');
155
+ if (JSON.stringify(ai.source.scope) !== JSON.stringify(sibling.scope))
156
+ throw new Error('artifact.source.scope must match its sibling account summary exactly.');
157
+ if (JSON.stringify(ai.source.artifactGeneration) !== JSON.stringify(sibling.artifactGeneration))
158
+ throw new Error('artifact.source.artifactGeneration must match its sibling account summary exactly.');
159
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(ai.source.sha256, descriptor.sha256, 'artifact.source.sha256');
160
+ return ai;
161
+ }
162
+ function validateAiEntries(value, sourceScope, siblingGeneratedAt) {
163
+ if (!Array.isArray(value) || value.length === 0)
164
+ throw new Error('artifact.entries must be a non-empty array.');
165
+ const audiences = [];
166
+ value.forEach((entry, index) => {
167
+ const field = `artifact.entries[${index}]`;
168
+ const item = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, field);
169
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(item, [
170
+ 'targetKey',
171
+ 'audience',
172
+ 'artifactVersion',
173
+ 'generatedAt',
174
+ 'createdAt',
175
+ 'updatedAt',
176
+ 'sourceRecommendationPosture',
177
+ 'status',
178
+ 'summary',
179
+ 'provider',
180
+ ], field);
181
+ const audience = (0, portalPublicArtifactValidationCommon_1.requiredEnum)(item.audience, AI_AUDIENCES, `${field}.audience`);
182
+ audiences.push(audience);
183
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(item.targetKey, (0, portalPublicArtifacts_1.buildAwsPortalAccountSummaryAiCostSummaryTargetKey)(sourceScope, audience), `${field}.targetKey`);
184
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(item.artifactVersion, 1, `${field}.artifactVersion`);
185
+ const entryGeneratedAt = (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(item.generatedAt, `${field}.generatedAt`);
186
+ if (Date.parse(entryGeneratedAt) < Date.parse(siblingGeneratedAt))
187
+ throw new Error(`${field}.generatedAt must not predate its sibling account summary.`);
188
+ const createdAt = (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(item.createdAt, `${field}.createdAt`);
189
+ const updatedAt = (0, portalPublicArtifactValidationCommon_1.isoTimestamp)(item.updatedAt, `${field}.updatedAt`);
190
+ if (Date.parse(createdAt) > Date.parse(updatedAt) || Date.parse(updatedAt) > Date.parse(entryGeneratedAt))
191
+ throw new Error(`${field} record times must not exceed generatedAt.`);
192
+ if (item.sourceRecommendationPosture !== undefined)
193
+ (0, portalPublicArtifactNestedEvidenceValidation_1.validateRecommendationPosture)(item.sourceRecommendationPosture, `${field}.sourceRecommendationPosture`);
194
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(item.status, 'available', `${field}.status`);
195
+ const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(item.summary, `${field}.summary`);
196
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(summary, ['headline', 'narrative'], `${field}.summary`);
197
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(summary.headline, `${field}.summary.headline`);
198
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(summary.narrative, `${field}.summary.narrative`);
199
+ validateAiProvider(item.provider, `${field}.provider`);
200
+ });
201
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(audiences, 'artifact.entries audiences');
202
+ const expected = [...audiences].sort((left, right) => AI_AUDIENCES.indexOf(left) - AI_AUDIENCES.indexOf(right));
203
+ if (JSON.stringify(audiences) !== JSON.stringify(expected))
204
+ throw new Error('artifact.entries must be ordered by audience.');
205
+ }
206
+ function validateAiProvider(value, field) {
207
+ const provider = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
208
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(provider, ['type', 'inferenceProfileId', 'promptVersionArn', 'stopReason', 'latencyMs', 'usage', 'trace'], field);
209
+ (0, portalPublicArtifactValidationCommon_1.assertValue)(provider.type, 'amazon-bedrock', `${field}.type`);
210
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(provider.inferenceProfileId, `${field}.inferenceProfileId`);
211
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(provider.promptVersionArn, `${field}.promptVersionArn`);
212
+ if (provider.stopReason !== undefined)
213
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(provider.stopReason, `${field}.stopReason`);
214
+ if (provider.latencyMs !== undefined)
215
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(provider.latencyMs, `${field}.latencyMs`);
216
+ if (provider.usage !== undefined) {
217
+ const usage = (0, portalPublicArtifactValidationCommon_1.asRecord)(provider.usage, `${field}.usage`);
218
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(usage, ['inputTokens', 'outputTokens', 'totalTokens'], `${field}.usage`);
219
+ const input = (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(usage.inputTokens, `${field}.usage.inputTokens`);
220
+ const output = (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(usage.outputTokens, `${field}.usage.outputTokens`);
221
+ const total = (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(usage.totalTokens, `${field}.usage.totalTokens`);
222
+ if (total !== input + output)
223
+ throw new Error(`${field}.usage.totalTokens must equal inputTokens plus outputTokens.`);
224
+ }
225
+ if (provider.trace !== undefined) {
226
+ const trace = (0, portalPublicArtifactValidationCommon_1.asRecord)(provider.trace, `${field}.trace`);
227
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(trace, ['guardrailActionReason', 'invokedModelId'], `${field}.trace`);
228
+ if (trace.guardrailActionReason !== undefined)
229
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(trace.guardrailActionReason, `${field}.trace.guardrailActionReason`);
230
+ if (trace.invokedModelId !== undefined)
231
+ (0, portalPublicArtifactValidationCommon_1.requiredString)(trace.invokedModelId, `${field}.trace.invokedModelId`);
232
+ }
233
+ }
234
+ function validateResourceSummary(value) {
235
+ const summary = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.summary');
236
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(summary, [
237
+ 'totalDiscoveredResourceCount',
238
+ 'returnedResourceCount',
239
+ 'emptyCollection',
240
+ 'truncated',
241
+ 'unmatchedRecommendationResourceCount',
242
+ 'unmatchedBillingExpenseCount',
243
+ ], 'artifact.summary');
244
+ ['totalDiscoveredResourceCount', 'returnedResourceCount', 'unmatchedRecommendationResourceCount', 'unmatchedBillingExpenseCount'].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(summary[key], `artifact.summary.${key}`));
245
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(summary.emptyCollection, 'artifact.summary.emptyCollection');
246
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(summary.truncated, 'artifact.summary.truncated');
247
+ }
248
+ function validateHistoryBilling(value, field) {
249
+ const billing = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
250
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(billing, [
251
+ 'totalPersistedExpenseCount',
252
+ 'emptyScope',
253
+ 'metadataFound',
254
+ 'metadataMatchesRequestedBillingPeriod',
255
+ 'totalsByCurrency',
256
+ 'pricingReferenceEstimation',
257
+ 'estimatedBillingAuthority',
258
+ ], field);
259
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(billing.totalPersistedExpenseCount, `${field}.totalPersistedExpenseCount`);
260
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(billing.emptyScope, `${field}.emptyScope`);
261
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(billing.metadataFound, `${field}.metadataFound`);
262
+ (0, portalPublicArtifactValidationCommon_1.requiredBoolean)(billing.metadataMatchesRequestedBillingPeriod, `${field}.metadataMatchesRequestedBillingPeriod`);
263
+ if (!Array.isArray(billing.totalsByCurrency))
264
+ throw new Error(`${field}.totalsByCurrency must be an array.`);
265
+ const currencies = [];
266
+ billing.totalsByCurrency.forEach((entry, index) => {
267
+ const itemField = `${field}.totalsByCurrency[${index}]`;
268
+ const total = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
269
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(total, ['currency', 'expenseCount', 'baseCostAmount', 'amortizedCostAmount', 'amortizedExpenseCount'], itemField);
270
+ currencies.push((0, portalPublicArtifactValidationCommon_1.requiredString)(total.currency, `${itemField}.currency`));
271
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(total.expenseCount, `${itemField}.expenseCount`);
272
+ (0, portalPublicArtifactValidationCommon_1.finiteNumber)(total.baseCostAmount, `${itemField}.baseCostAmount`);
273
+ if (total.amortizedCostAmount !== undefined)
274
+ (0, portalPublicArtifactValidationCommon_1.finiteNumber)(total.amortizedCostAmount, `${itemField}.amortizedCostAmount`);
275
+ if (total.amortizedExpenseCount !== undefined)
276
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(total.amortizedExpenseCount, `${itemField}.amortizedExpenseCount`);
277
+ });
278
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(currencies, `${field}.totalsByCurrency`);
279
+ if (billing.pricingReferenceEstimation !== undefined)
280
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(billing.pricingReferenceEstimation, `${field}.pricingReferenceEstimation`);
281
+ if (billing.estimatedBillingAuthority !== undefined)
282
+ (0, portalPublicArtifactValidationCommon_1.validateJsonObject)(billing.estimatedBillingAuthority, `${field}.estimatedBillingAuthority`);
283
+ }
284
+ function validateHistoryDiscovery(value, field) {
285
+ const discovery = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, field);
286
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(discovery, ['families'], field);
287
+ if (!Array.isArray(discovery.families))
288
+ throw new Error(`${field}.families must be an array.`);
289
+ const identities = [];
290
+ discovery.families.forEach((entry, index) => {
291
+ const itemField = `${field}.families[${index}]`;
292
+ const item = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, itemField);
293
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(item, ['family', 'resourceRegionCount', 'totalResources', 'regionsWithSuccessfulRefresh', 'regionsWithoutSuccessfulRefresh'], itemField);
294
+ identities.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(item.family, DISCOVERY_FAMILIES, `${itemField}.family`));
295
+ ['resourceRegionCount', 'regionsWithSuccessfulRefresh', 'regionsWithoutSuccessfulRefresh'].forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(item[key], `${itemField}.${key}`));
296
+ if (item.totalResources !== undefined)
297
+ (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(item.totalResources, `${itemField}.totalResources`);
298
+ });
299
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(identities, `${field}.families`);
300
+ }
301
+ function validateHistoryMetrics(value) {
302
+ const metrics = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.metrics');
303
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(metrics, ['families'], 'artifact.metrics');
304
+ if (!Array.isArray(metrics.families))
305
+ throw new Error('artifact.metrics.families must be an array.');
306
+ const identities = [];
307
+ metrics.families.forEach((entry, index) => {
308
+ const field = `artifact.metrics.families[${index}]`;
309
+ const item = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, field);
310
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(item, [
311
+ 'metricFamily',
312
+ 'resourceRegionCount',
313
+ 'requestedMonthCount',
314
+ 'availableMonthCount',
315
+ 'missingMonthCount',
316
+ 'regionsWithCompleteCoverage',
317
+ 'regionsWithMissingCoverage',
318
+ ], field);
319
+ identities.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(item.metricFamily, METRIC_FAMILIES, `${field}.metricFamily`));
320
+ Object.keys(item)
321
+ .filter(key => key !== 'metricFamily')
322
+ .forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(item[key], `${field}.${key}`));
323
+ });
324
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(identities, 'artifact.metrics.families');
325
+ }
326
+ function validateResourceHistoryRecommendations(value) {
327
+ validateHistoryRecommendations(value, true);
328
+ }
329
+ function validateAccountHistoryRecommendations(value) {
330
+ validateHistoryRecommendations(value, false);
331
+ }
332
+ function validateHistoryRecommendations(value, resourceHistory) {
333
+ const recommendations = (0, portalPublicArtifactValidationCommon_1.asRecord)(value, 'artifact.recommendations');
334
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(recommendations, ['sources'], 'artifact.recommendations');
335
+ if (!Array.isArray(recommendations.sources))
336
+ throw new Error('artifact.recommendations.sources must be an array.');
337
+ const sources = [];
338
+ recommendations.sources.forEach((entry, index) => {
339
+ const field = `artifact.recommendations.sources[${index}]`;
340
+ const source = (0, portalPublicArtifactValidationCommon_1.asRecord)(entry, field);
341
+ const keys = resourceHistory
342
+ ? [
343
+ 'source',
344
+ 'totalStateCount',
345
+ 'currentStateCount',
346
+ 'matchedStateCount',
347
+ 'filteredOutStateCount',
348
+ 'positiveEstimatedSavingsRecommendationCount',
349
+ 'savingsByCurrency',
350
+ ]
351
+ : [
352
+ 'source',
353
+ 'totalStateCount',
354
+ 'matchedStateCount',
355
+ 'positiveEstimatedSavingsRecommendationCount',
356
+ 'sourceEvidence',
357
+ 'actionHealth',
358
+ 'savingsByCurrency',
359
+ ];
360
+ (0, portalPublicArtifactValidationCommon_1.assertExactKeys)(source, keys, field);
361
+ sources.push((0, portalPublicArtifactValidationCommon_1.requiredEnum)(source.source, RECOMMENDATION_SOURCES, `${field}.source`));
362
+ keys.filter(key => key.endsWith('Count')).forEach(key => (0, portalPublicArtifactValidationCommon_1.nonNegativeInteger)(source[key], `${field}.${key}`));
363
+ if (source.sourceEvidence !== undefined)
364
+ (0, portalPublicArtifactEvidenceValidation_1.validateRecommendationSourceEvidence)(source.sourceEvidence, `${field}.sourceEvidence`);
365
+ if (source.actionHealth !== undefined)
366
+ (0, portalPublicArtifactEvidenceValidation_1.validateRecommendationActionHealth)(source.actionHealth, `${field}.actionHealth`);
367
+ (0, portalPublicArtifactNestedEvidenceValidation_1.validateSavingsByCurrency)(source.savingsByCurrency, `${field}.savingsByCurrency`);
368
+ });
369
+ (0, portalPublicArtifactValidationCommon_1.assertUnique)(sources, 'artifact.recommendations.sources');
370
+ }
371
+ function validateHistoryLogicalName(value, prefix, field) {
372
+ const logicalName = (0, portalPublicArtifactValidationCommon_1.requiredString)(value, field);
373
+ const pattern = new RegExp(`^${prefix}[a-f0-9]{64}\\.json\\.gz$`);
374
+ if (!pattern.test(logicalName))
375
+ throw new Error(`${field} must be a canonical package-owned history logical name.`);
376
+ }
377
+ //# sourceMappingURL=portalPublicArtifactHistoryAiValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactHistoryAiValidation.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactHistoryAiValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import type { ArtifactDescriptor, ArtifactGeneration, JsonObject } from '../common/artifactGeneration';
2
+ import type { AwsPublicArtifactEnvelope, AwsPublicArtifactForbiddenCredentialFields } from './publicArtifacts';
3
+ import { AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME, AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME, type AwsPortalAccountSummaryScope, type AwsPortalDiscoveryFamily, type AwsPortalMetricFamily, type AwsPortalRecommendationSource, type AwsPortalResourceCollectionBody, type AwsPortalResourceCollectionHistoryLogicalName, type AwsPortalAccountSummaryHistoryLogicalName, type AwsPortalResourceCollectionScope } from './portalPublicArtifacts';
4
+ import type { AwsPortalAccountSummaryAiRecommendationPosture } from './portalPublicArtifactNestedEvidence';
5
+ export declare const AWS_PORTAL_PUBLIC_ARTIFACT_RELATIONSHIPS: {
6
+ readonly 'resource-collection': {
7
+ readonly logicalName: "resources.json.gz";
8
+ readonly required: readonly [];
9
+ readonly optional: readonly ["resource-collection-history"];
10
+ };
11
+ readonly 'account-summary': {
12
+ readonly logicalName: "account-summary.json.gz";
13
+ readonly required: readonly [];
14
+ readonly optional: readonly ["account-summary-history", "account-summary-ai-cost-summary"];
15
+ };
16
+ readonly 'resource-collection-history': {
17
+ readonly logicalNamePattern: "resources-history--{scope-generation-sha256}.json.gz";
18
+ readonly required: readonly [];
19
+ readonly optional: readonly [];
20
+ };
21
+ readonly 'account-summary-history': {
22
+ readonly logicalNamePattern: "account-summary-history--{scope-sha256}.json.gz";
23
+ readonly required: readonly [];
24
+ readonly optional: readonly [];
25
+ };
26
+ readonly 'account-summary-ai-cost-summary': {
27
+ readonly logicalName: "account-summary-ai-cost-summary.json.gz";
28
+ readonly required: readonly ["account-summary"];
29
+ readonly optional: readonly [];
30
+ };
31
+ };
32
+ export interface AwsPortalHistoryBillingTotals {
33
+ currency: string;
34
+ expenseCount: number;
35
+ baseCostAmount: number;
36
+ amortizedCostAmount?: number;
37
+ amortizedExpenseCount?: number;
38
+ }
39
+ interface AwsPortalCompactHistoryBilling {
40
+ totalPersistedExpenseCount: number;
41
+ emptyScope: boolean;
42
+ metadataFound: boolean;
43
+ metadataMatchesRequestedBillingPeriod: boolean;
44
+ totalsByCurrency: AwsPortalHistoryBillingTotals[];
45
+ pricingReferenceEstimation?: JsonObject;
46
+ estimatedBillingAuthority?: JsonObject;
47
+ }
48
+ interface AwsPortalHistoryEnvelope<ArtifactType extends 'resource-collection-history' | 'account-summary-history', AccountId extends string, RunId extends string> extends AwsPublicArtifactForbiddenCredentialFields {
49
+ schemaVersion: 1;
50
+ portalSchemaVersion: 1;
51
+ provider: 'aws';
52
+ accountId: AccountId;
53
+ artifactType: ArtifactType;
54
+ artifactGeneration: ArtifactGeneration<RunId>;
55
+ generatedAt: string;
56
+ logicalName: ArtifactType extends 'resource-collection-history' ? AwsPortalResourceCollectionHistoryLogicalName : AwsPortalAccountSummaryHistoryLogicalName;
57
+ }
58
+ export type AwsPortalResourceCollectionHistoryArtifact<AccountId extends string = string, RunId extends string = string> = AwsPortalHistoryEnvelope<'resource-collection-history', AccountId, RunId> & {
59
+ scope: AwsPortalResourceCollectionScope<AccountId>;
60
+ summary: AwsPortalResourceCollectionBody<AccountId>['summary'];
61
+ billing: AwsPortalCompactHistoryBilling;
62
+ discovery: {
63
+ families: Array<{
64
+ family: AwsPortalDiscoveryFamily;
65
+ resourceRegionCount: number;
66
+ totalResources?: number;
67
+ regionsWithSuccessfulRefresh: number;
68
+ regionsWithoutSuccessfulRefresh: number;
69
+ }>;
70
+ };
71
+ metrics: {
72
+ families: Array<{
73
+ metricFamily: AwsPortalMetricFamily;
74
+ resourceRegionCount: number;
75
+ requestedMonthCount: number;
76
+ availableMonthCount: number;
77
+ missingMonthCount: number;
78
+ regionsWithCompleteCoverage: number;
79
+ regionsWithMissingCoverage: number;
80
+ }>;
81
+ };
82
+ recommendations: {
83
+ sources: Array<{
84
+ source: AwsPortalRecommendationSource;
85
+ totalStateCount: number;
86
+ currentStateCount: number;
87
+ matchedStateCount: number;
88
+ filteredOutStateCount: number;
89
+ positiveEstimatedSavingsRecommendationCount: number;
90
+ savingsByCurrency: import('./portalPublicArtifacts').AwsPortalRecommendationSavings['byCurrency'];
91
+ }>;
92
+ };
93
+ };
94
+ export type AwsPortalAccountSummaryHistoryArtifact<AccountId extends string = string, RunId extends string = string> = AwsPortalHistoryEnvelope<'account-summary-history', AccountId, RunId> & {
95
+ scope: Omit<AwsPortalAccountSummaryScope<AccountId>, 'comparisonBillingPeriod' | 'metricTimeWindow'>;
96
+ billing: AwsPortalCompactHistoryBilling;
97
+ discovery: AwsPortalResourceCollectionHistoryArtifact<AccountId, RunId>['discovery'];
98
+ recommendations: {
99
+ sources: Array<{
100
+ source: AwsPortalRecommendationSource;
101
+ totalStateCount: number;
102
+ matchedStateCount: number;
103
+ positiveEstimatedSavingsRecommendationCount: number;
104
+ sourceEvidence?: import('./portalPublicArtifacts').AwsPortalRecommendationSourceEvidence;
105
+ actionHealth?: import('./portalPublicArtifacts').AwsPortalRecommendationActionHealth;
106
+ savingsByCurrency: import('./portalPublicArtifacts').AwsPortalRecommendationSavings['byCurrency'];
107
+ }>;
108
+ };
109
+ };
110
+ interface AwsPortalRetainedHistoryBodyReferenceBase {
111
+ artifactGeneration: ArtifactGeneration;
112
+ body: ArtifactDescriptor;
113
+ }
114
+ export type AwsPortalRetainedHistoryBodyReference = (AwsPortalRetainedHistoryBodyReferenceBase & {
115
+ artifactType: 'resource-collection-history';
116
+ logicalName: AwsPortalResourceCollectionHistoryLogicalName;
117
+ }) | (AwsPortalRetainedHistoryBodyReferenceBase & {
118
+ artifactType: 'account-summary-history';
119
+ logicalName: AwsPortalAccountSummaryHistoryLogicalName;
120
+ });
121
+ export type AwsPortalAiAudience = 'executive' | 'finops' | 'engineering';
122
+ export interface AwsPortalAccountSummaryAiCostSummaryEntry {
123
+ targetKey: string;
124
+ audience: AwsPortalAiAudience;
125
+ artifactVersion: 1;
126
+ generatedAt: string;
127
+ createdAt: string;
128
+ updatedAt: string;
129
+ sourceRecommendationPosture?: AwsPortalAccountSummaryAiRecommendationPosture;
130
+ status: 'available';
131
+ summary: {
132
+ headline: string;
133
+ narrative: string;
134
+ };
135
+ provider: {
136
+ type: 'amazon-bedrock';
137
+ inferenceProfileId: string;
138
+ promptVersionArn: string;
139
+ stopReason?: string;
140
+ latencyMs?: number;
141
+ usage?: {
142
+ inputTokens: number;
143
+ outputTokens: number;
144
+ totalTokens: number;
145
+ };
146
+ trace?: {
147
+ guardrailActionReason?: string;
148
+ invokedModelId?: string;
149
+ };
150
+ };
151
+ }
152
+ export type AwsPortalAccountSummaryAiCostSummaryArtifact<AccountId extends string = string, RunId extends string = string> = AwsPublicArtifactEnvelope<'account-summary-ai-cost-summary', AccountId, RunId> & {
153
+ portalSchemaVersion: 1;
154
+ generatedAt: string;
155
+ logicalName: typeof AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME;
156
+ source: {
157
+ scope: AwsPortalAccountSummaryScope<AccountId>;
158
+ targetKey: string;
159
+ logicalName: typeof AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME;
160
+ artifactType: 'account-summary';
161
+ artifactGeneration: ArtifactGeneration<RunId>;
162
+ sha256: string;
163
+ };
164
+ entries: AwsPortalAccountSummaryAiCostSummaryEntry[];
165
+ };
166
+ export type AwsPortalLosslessPublicArtifact = import('./portalPublicArtifacts').AwsPortalResourceCollectionDetailArtifact | import('./portalPublicArtifacts').AwsPortalAccountSummaryDetailArtifact | AwsPortalResourceCollectionHistoryArtifact | AwsPortalAccountSummaryHistoryArtifact | AwsPortalAccountSummaryAiCostSummaryArtifact;
167
+ export {};
168
+ //# sourceMappingURL=portalPublicArtifactHistoryTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactHistoryTypes.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactHistoryTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AWS_PORTAL_PUBLIC_ARTIFACT_RELATIONSHIPS = void 0;
4
+ const portalPublicArtifacts_1 = require("./portalPublicArtifacts");
5
+ exports.AWS_PORTAL_PUBLIC_ARTIFACT_RELATIONSHIPS = {
6
+ 'resource-collection': {
7
+ logicalName: portalPublicArtifacts_1.AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME,
8
+ required: [],
9
+ optional: ['resource-collection-history'],
10
+ },
11
+ 'account-summary': {
12
+ logicalName: portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME,
13
+ required: [],
14
+ optional: ['account-summary-history', 'account-summary-ai-cost-summary'],
15
+ },
16
+ 'resource-collection-history': {
17
+ logicalNamePattern: 'resources-history--{scope-generation-sha256}.json.gz',
18
+ required: [],
19
+ optional: [],
20
+ },
21
+ 'account-summary-history': {
22
+ logicalNamePattern: 'account-summary-history--{scope-sha256}.json.gz',
23
+ required: [],
24
+ optional: [],
25
+ },
26
+ 'account-summary-ai-cost-summary': {
27
+ logicalName: portalPublicArtifacts_1.AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME,
28
+ required: ['account-summary'],
29
+ optional: [],
30
+ },
31
+ };
32
+ //# sourceMappingURL=portalPublicArtifactHistoryTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalPublicArtifactHistoryTypes.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactHistoryTypes.ts"],"names":[],"mappings":";;;AAEA,mEAYiC;AAGpB,QAAA,wCAAwC,GAAG;IACtD,qBAAqB,EAAE;QACrB,WAAW,EAAE,mEAA2C;QACxD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC,6BAA6B,CAAC;KAC1C;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,+DAAuC;QACpD,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KACzE;IACD,6BAA6B,EAAE;QAC7B,kBAAkB,EAAE,sDAAsD;QAC1E,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb;IACD,yBAAyB,EAAE;QACzB,kBAAkB,EAAE,iDAAiD;QACrE,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb;IACD,iCAAiC,EAAE;QACjC,WAAW,EAAE,+EAAuD;QACpE,QAAQ,EAAE,CAAC,iBAAiB,CAAC;QAC7B,QAAQ,EAAE,EAAE;KACb;CACO,CAAC"}