@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,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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=portalPublicArtifactNestedEvidence.js.map
@@ -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"}