@spottoai/types-package 1.0.2-beta.310 → 1.0.2-beta.312
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -4
- package/dist/aws/index.d.ts +8 -0
- package/dist/aws/index.d.ts.map +1 -1
- package/dist/aws/index.js +8 -0
- package/dist/aws/index.js.map +1 -1
- package/dist/aws/pluginPublicArtifactBodyValidation.d.ts +10 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.js +225 -0
- package/dist/aws/pluginPublicArtifactBodyValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactEvidence.d.ts +161 -0
- package/dist/aws/pluginPublicArtifactEvidence.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactEvidence.js +3 -0
- package/dist/aws/pluginPublicArtifactEvidence.js.map +1 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.d.ts +4 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.js +259 -0
- package/dist/aws/pluginPublicArtifactManifestValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.d.ts +6 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.js +471 -0
- package/dist/aws/pluginPublicArtifactSectionValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactValidation.d.ts +3 -0
- package/dist/aws/pluginPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactValidation.js +9 -0
- package/dist/aws/pluginPublicArtifactValidation.js.map +1 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts +23 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.js +241 -0
- package/dist/aws/pluginPublicArtifactValidationHelpers.js.map +1 -0
- package/dist/aws/pluginPublicArtifacts.d.ts +253 -0
- package/dist/aws/pluginPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/pluginPublicArtifacts.js +116 -0
- package/dist/aws/pluginPublicArtifacts.js.map +1 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.d.ts +4 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.js +333 -0
- package/dist/aws/portalPublicArtifactCurrentValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts +6 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.js +227 -0
- package/dist/aws/portalPublicArtifactEvidenceValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts +8 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.js +377 -0
- package/dist/aws/portalPublicArtifactHistoryAiValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts +168 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.js +32 -0
- package/dist/aws/portalPublicArtifactHistoryTypes.js.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.d.ts +127 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.js +3 -0
- package/dist/aws/portalPublicArtifactNestedEvidence.js.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts +6 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js +405 -0
- package/dist/aws/portalPublicArtifactNestedEvidenceValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactValidation.d.ts +3 -0
- package/dist/aws/portalPublicArtifactValidation.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactValidation.js +14 -0
- package/dist/aws/portalPublicArtifactValidation.js.map +1 -0
- package/dist/aws/portalPublicArtifactValidationCommon.d.ts +30 -0
- package/dist/aws/portalPublicArtifactValidationCommon.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifactValidationCommon.js +167 -0
- package/dist/aws/portalPublicArtifactValidationCommon.js.map +1 -0
- package/dist/aws/portalPublicArtifacts.d.ts +371 -0
- package/dist/aws/portalPublicArtifacts.d.ts.map +1 -0
- package/dist/aws/portalPublicArtifacts.js +85 -0
- package/dist/aws/portalPublicArtifacts.js.map +1 -0
- package/dist/aws/publicArtifacts.d.ts +3 -2
- package/dist/aws/publicArtifacts.d.ts.map +1 -1
- package/dist/aws/publicArtifacts.js +3 -0
- package/dist/aws/publicArtifacts.js.map +1 -1
- package/dist/integrations/autotask.d.ts +21 -3
- package/dist/integrations/autotask.d.ts.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAwsPortalRetainedHistoryBodyReference = exports.validateAwsPortalRetainedHistoryBodyBinding = exports.validateAwsPortalResourceCollectionHistoryArtifact = exports.validateAwsPortalAccountSummaryHistoryArtifact = exports.validateAwsPortalAccountSummaryAiCostSummarySiblingBinding = exports.validateAwsPortalAccountSummaryAiCostSummaryArtifact = exports.validateAwsPortalResourceCollectionDetailArtifact = exports.validateAwsPortalAccountSummaryDetailArtifact = void 0;
|
|
4
|
+
var portalPublicArtifactCurrentValidation_1 = require("./portalPublicArtifactCurrentValidation");
|
|
5
|
+
Object.defineProperty(exports, "validateAwsPortalAccountSummaryDetailArtifact", { enumerable: true, get: function () { return portalPublicArtifactCurrentValidation_1.validateAwsPortalAccountSummaryDetailArtifact; } });
|
|
6
|
+
Object.defineProperty(exports, "validateAwsPortalResourceCollectionDetailArtifact", { enumerable: true, get: function () { return portalPublicArtifactCurrentValidation_1.validateAwsPortalResourceCollectionDetailArtifact; } });
|
|
7
|
+
var portalPublicArtifactHistoryAiValidation_1 = require("./portalPublicArtifactHistoryAiValidation");
|
|
8
|
+
Object.defineProperty(exports, "validateAwsPortalAccountSummaryAiCostSummaryArtifact", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalAccountSummaryAiCostSummaryArtifact; } });
|
|
9
|
+
Object.defineProperty(exports, "validateAwsPortalAccountSummaryAiCostSummarySiblingBinding", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalAccountSummaryAiCostSummarySiblingBinding; } });
|
|
10
|
+
Object.defineProperty(exports, "validateAwsPortalAccountSummaryHistoryArtifact", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalAccountSummaryHistoryArtifact; } });
|
|
11
|
+
Object.defineProperty(exports, "validateAwsPortalResourceCollectionHistoryArtifact", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalResourceCollectionHistoryArtifact; } });
|
|
12
|
+
Object.defineProperty(exports, "validateAwsPortalRetainedHistoryBodyBinding", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalRetainedHistoryBodyBinding; } });
|
|
13
|
+
Object.defineProperty(exports, "validateAwsPortalRetainedHistoryBodyReference", { enumerable: true, get: function () { return portalPublicArtifactHistoryAiValidation_1.validateAwsPortalRetainedHistoryBodyReference; } });
|
|
14
|
+
//# sourceMappingURL=portalPublicArtifactValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactValidation.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactValidation.ts"],"names":[],"mappings":";;;AAAA,iGAGiD;AAF/C,sKAAA,6CAA6C,OAAA;AAC7C,0KAAA,iDAAiD,OAAA;AAEnD,qGAOmD;AANjD,+KAAA,oDAAoD,OAAA;AACpD,qLAAA,0DAA0D,OAAA;AAC1D,yKAAA,8CAA8C,OAAA;AAC9C,6KAAA,kDAAkD,OAAA;AAClD,sKAAA,2CAA2C,OAAA;AAC3C,wKAAA,6CAA6C,OAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type AwsPortalAccountSummaryScope, type AwsPortalResourceCollectionScope } from './portalPublicArtifacts';
|
|
2
|
+
import { type AwsPublicArtifactType } from './publicArtifacts';
|
|
3
|
+
import { asRecord, assertExactKeys, assertPublicJson, assertValue, isoTimestamp, requiredEnum, requiredString, stringArray } from './pluginPublicArtifactValidationHelpers';
|
|
4
|
+
export { asRecord, assertExactKeys, assertPublicJson, assertValue, isoTimestamp, requiredEnum, requiredString, stringArray };
|
|
5
|
+
export declare function validatePortalEnvelope(artifact: Record<string, unknown>, artifactType: AwsPublicArtifactType, allowed: readonly string[]): {
|
|
6
|
+
accountId: string;
|
|
7
|
+
runId: string;
|
|
8
|
+
portalGeneratedAt: string;
|
|
9
|
+
bodyGeneratedAt: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function validateGeneration(value: unknown, field: string): {
|
|
12
|
+
runId: string;
|
|
13
|
+
generatedAt: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function validateResourceScope(value: unknown, accountId: string, field: string): AwsPortalResourceCollectionScope;
|
|
16
|
+
export declare function validateAccountScope(value: unknown, accountId: string, field: string): AwsPortalAccountSummaryScope;
|
|
17
|
+
export declare function validateHistoryAccountScope(value: unknown, accountId: string, field: string): void;
|
|
18
|
+
export declare function validatePeriod(value: unknown, field: string): void;
|
|
19
|
+
export declare function validateFreshness(value: unknown, field: string, timestampField: string): void;
|
|
20
|
+
export declare function requiredBoolean(value: unknown, field: string): boolean;
|
|
21
|
+
export declare function nonNegativeInteger(value: unknown, field: string): number;
|
|
22
|
+
export declare function finiteNumber(value: unknown, field: string): number;
|
|
23
|
+
export declare function validateJsonObject(value: unknown, field: string): void;
|
|
24
|
+
export declare function validateJsonArray(value: unknown, field: string): unknown[];
|
|
25
|
+
export declare function assertRegionsBelong(regions: unknown, allowedRegions: string[], field: string): void;
|
|
26
|
+
export declare function assertUnique(values: string[], field: string): void;
|
|
27
|
+
export declare function regionArray(value: unknown, field: string): string[];
|
|
28
|
+
export declare function requiredPublicIdentifier(value: unknown, field: string): string;
|
|
29
|
+
export declare function dateValue(value: unknown, field: string): string;
|
|
30
|
+
//# sourceMappingURL=portalPublicArtifactValidationCommon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactValidationCommon.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactValidationCommon.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,EACtC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAsC,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EACL,QAAQ,EAER,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EAGZ,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AAE7H,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAa1F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAOxG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gCAAgC,CAcxH;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,4BAA4B,CAUnH;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOlG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMlE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAM7F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGlE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAGtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAI1E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKnG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CASnE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/D"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringArray = exports.requiredString = exports.requiredEnum = exports.isoTimestamp = exports.assertValue = exports.assertPublicJson = exports.assertExactKeys = exports.asRecord = void 0;
|
|
4
|
+
exports.validatePortalEnvelope = validatePortalEnvelope;
|
|
5
|
+
exports.validateGeneration = validateGeneration;
|
|
6
|
+
exports.validateResourceScope = validateResourceScope;
|
|
7
|
+
exports.validateAccountScope = validateAccountScope;
|
|
8
|
+
exports.validateHistoryAccountScope = validateHistoryAccountScope;
|
|
9
|
+
exports.validatePeriod = validatePeriod;
|
|
10
|
+
exports.validateFreshness = validateFreshness;
|
|
11
|
+
exports.requiredBoolean = requiredBoolean;
|
|
12
|
+
exports.nonNegativeInteger = nonNegativeInteger;
|
|
13
|
+
exports.finiteNumber = finiteNumber;
|
|
14
|
+
exports.validateJsonObject = validateJsonObject;
|
|
15
|
+
exports.validateJsonArray = validateJsonArray;
|
|
16
|
+
exports.assertRegionsBelong = assertRegionsBelong;
|
|
17
|
+
exports.assertUnique = assertUnique;
|
|
18
|
+
exports.regionArray = regionArray;
|
|
19
|
+
exports.requiredPublicIdentifier = requiredPublicIdentifier;
|
|
20
|
+
exports.dateValue = dateValue;
|
|
21
|
+
const portalPublicArtifacts_1 = require("./portalPublicArtifacts");
|
|
22
|
+
const publicArtifacts_1 = require("./publicArtifacts");
|
|
23
|
+
const pluginPublicArtifactValidationHelpers_1 = require("./pluginPublicArtifactValidationHelpers");
|
|
24
|
+
Object.defineProperty(exports, "asRecord", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.asRecord; } });
|
|
25
|
+
Object.defineProperty(exports, "assertExactKeys", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.assertExactKeys; } });
|
|
26
|
+
Object.defineProperty(exports, "assertPublicJson", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.assertPublicJson; } });
|
|
27
|
+
Object.defineProperty(exports, "assertValue", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.assertValue; } });
|
|
28
|
+
Object.defineProperty(exports, "isoTimestamp", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.isoTimestamp; } });
|
|
29
|
+
Object.defineProperty(exports, "requiredEnum", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.requiredEnum; } });
|
|
30
|
+
Object.defineProperty(exports, "requiredString", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.requiredString; } });
|
|
31
|
+
Object.defineProperty(exports, "stringArray", { enumerable: true, get: function () { return pluginPublicArtifactValidationHelpers_1.stringArray; } });
|
|
32
|
+
function validatePortalEnvelope(artifact, artifactType, allowed) {
|
|
33
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(artifact, allowed, 'artifact');
|
|
34
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(artifact.schemaVersion, publicArtifacts_1.AWS_PUBLIC_ARTIFACT_SCHEMA_VERSION, 'artifact.schemaVersion');
|
|
35
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(artifact.portalSchemaVersion, portalPublicArtifacts_1.AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION, 'artifact.portalSchemaVersion');
|
|
36
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(artifact.provider, 'aws', 'artifact.provider');
|
|
37
|
+
const accountId = (0, pluginPublicArtifactValidationHelpers_1.requiredString)(artifact.accountId, 'artifact.accountId');
|
|
38
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertAccount)(accountId, accountId, 'artifact.accountId');
|
|
39
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(artifact.artifactType, artifactType, 'artifact.artifactType');
|
|
40
|
+
const generation = validateGeneration(artifact.artifactGeneration, 'artifact.artifactGeneration');
|
|
41
|
+
const bodyGeneratedAt = (0, pluginPublicArtifactValidationHelpers_1.isoTimestamp)(artifact.generatedAt, 'artifact.generatedAt');
|
|
42
|
+
if (Date.parse(bodyGeneratedAt) > Date.parse(generation.generatedAt))
|
|
43
|
+
throw new Error('artifact.generatedAt must not be newer than the Portal generation.');
|
|
44
|
+
return { accountId, runId: generation.runId, portalGeneratedAt: generation.generatedAt, bodyGeneratedAt };
|
|
45
|
+
}
|
|
46
|
+
function validateGeneration(value, field) {
|
|
47
|
+
const generation = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
48
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(generation, ['runId', 'generatedAt'], field);
|
|
49
|
+
return {
|
|
50
|
+
runId: requiredPublicIdentifier(generation.runId, `${field}.runId`),
|
|
51
|
+
generatedAt: (0, pluginPublicArtifactValidationHelpers_1.isoTimestamp)(generation.generatedAt, `${field}.generatedAt`),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function validateResourceScope(value, accountId, field) {
|
|
55
|
+
const scope = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
56
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(scope, ['provider', 'accountId', 'billing', 'resourceRegions', 'metricTimeWindow', 'tagRuleScope'], field);
|
|
57
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(scope.provider, 'aws', `${field}.provider`);
|
|
58
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertAccount)(scope.accountId, accountId, `${field}.accountId`);
|
|
59
|
+
(0, pluginPublicArtifactValidationHelpers_1.validateBilling)(scope.billing, `${field}.billing`);
|
|
60
|
+
regionArray(scope.resourceRegions, `${field}.resourceRegions`);
|
|
61
|
+
(0, pluginPublicArtifactValidationHelpers_1.validateMetricWindow)(scope.metricTimeWindow, `${field}.metricTimeWindow`);
|
|
62
|
+
if (scope.tagRuleScope !== undefined) {
|
|
63
|
+
const tagRuleScope = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(scope.tagRuleScope, `${field}.tagRuleScope`);
|
|
64
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(tagRuleScope, ['companyId'], `${field}.tagRuleScope`);
|
|
65
|
+
(0, pluginPublicArtifactValidationHelpers_1.requiredString)(tagRuleScope.companyId, `${field}.tagRuleScope.companyId`);
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
function validateAccountScope(value, accountId, field) {
|
|
70
|
+
const scope = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
71
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(scope, ['provider', 'accountId', 'billing', 'comparisonBillingPeriod', 'resourceRegions', 'metricTimeWindow'], field);
|
|
72
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(scope.provider, 'aws', `${field}.provider`);
|
|
73
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertAccount)(scope.accountId, accountId, `${field}.accountId`);
|
|
74
|
+
(0, pluginPublicArtifactValidationHelpers_1.validateBilling)(scope.billing, `${field}.billing`);
|
|
75
|
+
if (scope.comparisonBillingPeriod !== undefined)
|
|
76
|
+
validatePeriod(scope.comparisonBillingPeriod, `${field}.comparisonBillingPeriod`);
|
|
77
|
+
regionArray(scope.resourceRegions, `${field}.resourceRegions`);
|
|
78
|
+
(0, pluginPublicArtifactValidationHelpers_1.validateMetricWindow)(scope.metricTimeWindow, `${field}.metricTimeWindow`);
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
81
|
+
function validateHistoryAccountScope(value, accountId, field) {
|
|
82
|
+
const scope = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
83
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(scope, ['provider', 'accountId', 'billing', 'resourceRegions'], field);
|
|
84
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertValue)(scope.provider, 'aws', `${field}.provider`);
|
|
85
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertAccount)(scope.accountId, accountId, `${field}.accountId`);
|
|
86
|
+
(0, pluginPublicArtifactValidationHelpers_1.validateBilling)(scope.billing, `${field}.billing`);
|
|
87
|
+
regionArray(scope.resourceRegions, `${field}.resourceRegions`);
|
|
88
|
+
}
|
|
89
|
+
function validatePeriod(value, field) {
|
|
90
|
+
const period = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
91
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(period, ['start', 'end'], field);
|
|
92
|
+
dateValue(period.start, `${field}.start`);
|
|
93
|
+
dateValue(period.end, `${field}.end`);
|
|
94
|
+
if (String(period.start) > String(period.end))
|
|
95
|
+
throw new Error(`${field}.start must not exceed end.`);
|
|
96
|
+
}
|
|
97
|
+
function validateFreshness(value, field, timestampField) {
|
|
98
|
+
const freshness = (0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
99
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertExactKeys)(freshness, [timestampField, timestampField === 'lastSuccessfulImportAt' ? 'hasSuccessfulImport' : 'hasSuccessfulRefresh'], field);
|
|
100
|
+
if (freshness[timestampField] !== undefined)
|
|
101
|
+
(0, pluginPublicArtifactValidationHelpers_1.isoTimestamp)(freshness[timestampField], `${field}.${timestampField}`);
|
|
102
|
+
const booleanField = timestampField === 'lastSuccessfulImportAt' ? 'hasSuccessfulImport' : 'hasSuccessfulRefresh';
|
|
103
|
+
requiredBoolean(freshness[booleanField], `${field}.${booleanField}`);
|
|
104
|
+
}
|
|
105
|
+
function requiredBoolean(value, field) {
|
|
106
|
+
if (typeof value !== 'boolean')
|
|
107
|
+
throw new Error(`${field} must be a boolean.`);
|
|
108
|
+
return value;
|
|
109
|
+
}
|
|
110
|
+
function nonNegativeInteger(value, field) {
|
|
111
|
+
if (!Number.isSafeInteger(value) || Number(value) < 0)
|
|
112
|
+
throw new Error(`${field} must be a non-negative safe integer.`);
|
|
113
|
+
return Number(value);
|
|
114
|
+
}
|
|
115
|
+
function finiteNumber(value, field) {
|
|
116
|
+
if (typeof value !== 'number' || !Number.isFinite(value))
|
|
117
|
+
throw new Error(`${field} must be a finite number.`);
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
function validateJsonObject(value, field) {
|
|
121
|
+
(0, pluginPublicArtifactValidationHelpers_1.asRecord)(value, field);
|
|
122
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertPublicJson)(value, field);
|
|
123
|
+
}
|
|
124
|
+
function validateJsonArray(value, field) {
|
|
125
|
+
if (!Array.isArray(value))
|
|
126
|
+
throw new Error(`${field} must be an array.`);
|
|
127
|
+
(0, pluginPublicArtifactValidationHelpers_1.assertPublicJson)(value, field);
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
function assertRegionsBelong(regions, allowedRegions, field) {
|
|
131
|
+
const nested = (0, pluginPublicArtifactValidationHelpers_1.stringArray)(regions, field);
|
|
132
|
+
nested.forEach(region => {
|
|
133
|
+
if (!allowedRegions.includes(region))
|
|
134
|
+
throw new Error(`${field} contains Region outside artifact scope: ${region}.`);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
function assertUnique(values, field) {
|
|
138
|
+
if (new Set(values).size !== values.length)
|
|
139
|
+
throw new Error(`${field} must not contain duplicates.`);
|
|
140
|
+
}
|
|
141
|
+
function regionArray(value, field) {
|
|
142
|
+
const regions = (0, pluginPublicArtifactValidationHelpers_1.stringArray)(value, field);
|
|
143
|
+
if (regions.length === 0)
|
|
144
|
+
throw new Error(`${field} must not be empty.`);
|
|
145
|
+
assertUnique(regions, field);
|
|
146
|
+
regions.forEach(region => {
|
|
147
|
+
if (region !== 'global' && !/^[a-z]{2}(?:-gov)?-[a-z0-9-]+-\d+$/.test(region))
|
|
148
|
+
throw new Error(`${field} contains a non-canonical AWS Region: ${region}.`);
|
|
149
|
+
});
|
|
150
|
+
return regions;
|
|
151
|
+
}
|
|
152
|
+
function requiredPublicIdentifier(value, field) {
|
|
153
|
+
const identifier = (0, pluginPublicArtifactValidationHelpers_1.requiredString)(value, field);
|
|
154
|
+
if (identifier.includes('/') || identifier.includes('\\') || identifier.includes('://') || identifier.includes('..'))
|
|
155
|
+
throw new Error(`${field} must not contain a physical path or URI.`);
|
|
156
|
+
return identifier;
|
|
157
|
+
}
|
|
158
|
+
function dateValue(value, field) {
|
|
159
|
+
const date = (0, pluginPublicArtifactValidationHelpers_1.requiredString)(value, field);
|
|
160
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(date) || Number.isNaN(Date.parse(`${date}T00:00:00.000Z`)))
|
|
161
|
+
throw new Error(`${field} must be a calendar date.`);
|
|
162
|
+
const normalized = new Date(`${date}T00:00:00.000Z`).toISOString().slice(0, 10);
|
|
163
|
+
if (normalized !== date)
|
|
164
|
+
throw new Error(`${field} must be a valid calendar date.`);
|
|
165
|
+
return date;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=portalPublicArtifactValidationCommon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifactValidationCommon.js","sourceRoot":"","sources":["../../src/aws/portalPublicArtifactValidationCommon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import type { JsonObject, JsonValue } from '../common/artifactGeneration';
|
|
2
|
+
import type { AwsPublicArtifactEnvelope } from './publicArtifacts';
|
|
3
|
+
import type { AwsPortalAiAudience } from './portalPublicArtifactHistoryTypes';
|
|
4
|
+
import type { AwsPortalBillingBenefitCoverage, AwsPortalBillingBenefitCoverageWarning, AwsPortalBillingCommitmentSpend, AwsPortalBillingCostView, AwsPortalRecommendationLatestActionExecution, AwsPortalRecommendationSavingsVerification, AwsPortalRecommendationTemplateProvenanceSource } from './portalPublicArtifactNestedEvidence';
|
|
5
|
+
export declare const AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION: 1;
|
|
6
|
+
export declare const AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME: "resources.json.gz";
|
|
7
|
+
export declare const AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME: "account-summary.json.gz";
|
|
8
|
+
export declare const AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME: "account-summary-ai-cost-summary.json.gz";
|
|
9
|
+
export type AwsPortalHistorySha256 = string;
|
|
10
|
+
export type AwsPortalResourceCollectionHistoryLogicalName = `resources-history--${string}.json.gz`;
|
|
11
|
+
export type AwsPortalAccountSummaryHistoryLogicalName = `account-summary-history--${string}.json.gz`;
|
|
12
|
+
export type AwsPortalPublicLogicalName = typeof AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME | typeof AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME | typeof AWS_PORTAL_ACCOUNT_SUMMARY_AI_COST_SUMMARY_LOGICAL_NAME | AwsPortalResourceCollectionHistoryLogicalName | AwsPortalAccountSummaryHistoryLogicalName;
|
|
13
|
+
export declare function buildAwsPortalResourceCollectionHistoryLogicalName(identitySha256: AwsPortalHistorySha256): AwsPortalResourceCollectionHistoryLogicalName;
|
|
14
|
+
export declare function buildAwsPortalAccountSummaryHistoryLogicalName(identitySha256: AwsPortalHistorySha256): AwsPortalAccountSummaryHistoryLogicalName;
|
|
15
|
+
export interface AwsPortalBillingPeriod {
|
|
16
|
+
start: string;
|
|
17
|
+
end: string;
|
|
18
|
+
}
|
|
19
|
+
export type AwsPortalBillingScope = {
|
|
20
|
+
source: 'cur';
|
|
21
|
+
reportName: string;
|
|
22
|
+
billingPeriod: AwsPortalBillingPeriod;
|
|
23
|
+
} | {
|
|
24
|
+
source: 'cur-2.0-data-exports';
|
|
25
|
+
exportName: string;
|
|
26
|
+
billingPeriod: AwsPortalBillingPeriod;
|
|
27
|
+
};
|
|
28
|
+
export interface AwsPortalMetricTimeWindow {
|
|
29
|
+
start: string;
|
|
30
|
+
end: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AwsPortalResourceCollectionScope<AccountId extends string = string> {
|
|
33
|
+
provider: 'aws';
|
|
34
|
+
accountId: AccountId;
|
|
35
|
+
billing: AwsPortalBillingScope;
|
|
36
|
+
resourceRegions: string[];
|
|
37
|
+
metricTimeWindow: AwsPortalMetricTimeWindow;
|
|
38
|
+
tagRuleScope?: {
|
|
39
|
+
companyId: string;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export interface AwsPortalAccountSummaryScope<AccountId extends string = string> {
|
|
43
|
+
provider: 'aws';
|
|
44
|
+
accountId: AccountId;
|
|
45
|
+
billing: AwsPortalBillingScope;
|
|
46
|
+
comparisonBillingPeriod?: AwsPortalBillingPeriod;
|
|
47
|
+
resourceRegions: string[];
|
|
48
|
+
metricTimeWindow: AwsPortalMetricTimeWindow;
|
|
49
|
+
}
|
|
50
|
+
export declare function buildAwsPortalResourceCollectionHistoryIdentityKey(scope: AwsPortalResourceCollectionScope, generatedAt: string): string;
|
|
51
|
+
export declare function buildAwsPortalResourceCollectionHistoryLogicalNameForScope(scope: AwsPortalResourceCollectionScope, generatedAt: string): AwsPortalResourceCollectionHistoryLogicalName;
|
|
52
|
+
export declare function buildAwsPortalAccountSummaryHistoryIdentityKey(scope: Omit<AwsPortalAccountSummaryScope, 'comparisonBillingPeriod' | 'metricTimeWindow'>): string;
|
|
53
|
+
export declare function buildAwsPortalAccountSummaryHistoryLogicalNameForScope(scope: Omit<AwsPortalAccountSummaryScope, 'comparisonBillingPeriod' | 'metricTimeWindow'>): AwsPortalAccountSummaryHistoryLogicalName;
|
|
54
|
+
export declare function buildAwsPortalAccountSummaryTargetKey(scope: AwsPortalAccountSummaryScope): string;
|
|
55
|
+
export declare function buildAwsPortalAccountSummaryAiCostSummaryTargetKey(scope: AwsPortalAccountSummaryScope, audience: AwsPortalAiAudience): string;
|
|
56
|
+
export type AwsPortalDiscoveryFamily = 'ec2-instance' | 'ebs-volume' | 'efs-file-system' | 'lambda-function' | 'elasticache-cache-cluster' | 'elasticache-serverless-cache' | 'vpc' | 'subnet' | 'route-table' | 'internet-gateway' | 'nat-gateway' | 'network-interface' | 'virtual-private-gateway' | 'load-balancer-v2' | 'classic-load-balancer' | 'security-group' | 'rds-db-cluster' | 'rds-db-instance';
|
|
57
|
+
export type AwsPortalMetricFamily = 'ec2-core-utilization' | 'ebs-volume-performance' | 'lambda-function-performance' | 'load-balancer-v2-network-traffic' | 'load-balancer-v2-application-traffic' | 'rds-db-instance-utilization';
|
|
58
|
+
export type AwsPortalRecommendationSource = 'custom' | 'compute-optimizer' | 'cost-optimization-hub' | 'resilience-hub' | 'security-hub' | 'trusted-advisor' | 'well-architected';
|
|
59
|
+
export interface AwsPortalFreshness {
|
|
60
|
+
lastSuccessfulRefreshAt?: string;
|
|
61
|
+
hasSuccessfulRefresh: boolean;
|
|
62
|
+
}
|
|
63
|
+
export interface AwsPortalBillingFreshness {
|
|
64
|
+
lastSuccessfulImportAt?: string;
|
|
65
|
+
hasSuccessfulImport: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface AwsPortalBillingEvidenceScope<AccountId extends string = string> {
|
|
68
|
+
provider: 'aws';
|
|
69
|
+
source: 'cur' | 'cur-2.0-data-exports';
|
|
70
|
+
scope: 'account';
|
|
71
|
+
accountId: AccountId;
|
|
72
|
+
reportName: string;
|
|
73
|
+
billingPeriod: AwsPortalBillingPeriod;
|
|
74
|
+
}
|
|
75
|
+
export interface AwsPortalBillingSummary {
|
|
76
|
+
totalPersistedExpenseCount: number;
|
|
77
|
+
emptyScope: boolean;
|
|
78
|
+
metadataFound: boolean;
|
|
79
|
+
metadataMatchesRequestedBillingPeriod: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface AwsPortalBillingCostAggregate {
|
|
82
|
+
currency: string;
|
|
83
|
+
expenseCount: number;
|
|
84
|
+
baseCostAmount: number;
|
|
85
|
+
amortizedCostAmount?: number;
|
|
86
|
+
amortizedExpenseCount?: number;
|
|
87
|
+
}
|
|
88
|
+
export interface AwsPortalBillingGroupedResult<Item extends object = JsonObject> {
|
|
89
|
+
totalGroupCount: number;
|
|
90
|
+
returnedGroupCount: number;
|
|
91
|
+
truncated: boolean;
|
|
92
|
+
items: Item[];
|
|
93
|
+
}
|
|
94
|
+
export type AwsPortalBillingLabeledCost<Label extends string> = AwsPortalBillingCostAggregate & {
|
|
95
|
+
[Key in Label]: string;
|
|
96
|
+
};
|
|
97
|
+
export interface AwsPortalVirtualTagEvidence {
|
|
98
|
+
status: 'available' | 'missing' | 'malformed' | 'unsupported';
|
|
99
|
+
source: 'spotto-tags';
|
|
100
|
+
generatedAt: string;
|
|
101
|
+
rulesHash?: string;
|
|
102
|
+
enabledRuleCount: number;
|
|
103
|
+
appliedRuleCount: number;
|
|
104
|
+
taggedResourceCount: number;
|
|
105
|
+
unsupportedRuleCount: number;
|
|
106
|
+
reason?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface AwsPortalRecommendationScope<AccountId extends string = string> {
|
|
109
|
+
provider: 'aws';
|
|
110
|
+
source: AwsPortalRecommendationSource;
|
|
111
|
+
scope: 'account';
|
|
112
|
+
accountId: AccountId;
|
|
113
|
+
resourceRegions: string[];
|
|
114
|
+
}
|
|
115
|
+
export interface AwsPortalRecommendationCoverage<AccountId extends string = string> {
|
|
116
|
+
source: AwsPortalRecommendationSource;
|
|
117
|
+
scope: AwsPortalRecommendationScope<AccountId>;
|
|
118
|
+
summary: AwsPortalRecommendationSummary;
|
|
119
|
+
counts: AwsPortalRecommendationCounts;
|
|
120
|
+
savings: AwsPortalRecommendationSavings;
|
|
121
|
+
sourceEvidence?: AwsPortalRecommendationSourceEvidence;
|
|
122
|
+
actionHealth?: AwsPortalRecommendationActionHealth;
|
|
123
|
+
}
|
|
124
|
+
export interface AwsPortalRecommendationSummary {
|
|
125
|
+
totalStateCount: number;
|
|
126
|
+
currentStateCount: number;
|
|
127
|
+
missingStateCount: number;
|
|
128
|
+
snapshotBackedCount: number;
|
|
129
|
+
orphanSnapshotCount: number;
|
|
130
|
+
matchedStateCount: number;
|
|
131
|
+
filteredOutStateCount: number;
|
|
132
|
+
emptyScope: boolean;
|
|
133
|
+
emptyResult: boolean;
|
|
134
|
+
}
|
|
135
|
+
export interface AwsPortalRecommendationCounts {
|
|
136
|
+
byLifecycleStatus: Array<{
|
|
137
|
+
lifecycleStatus: string;
|
|
138
|
+
count: number;
|
|
139
|
+
}>;
|
|
140
|
+
bySourcePresence: Array<{
|
|
141
|
+
sourcePresence: string;
|
|
142
|
+
count: number;
|
|
143
|
+
}>;
|
|
144
|
+
byCategory: Array<{
|
|
145
|
+
category: string;
|
|
146
|
+
count: number;
|
|
147
|
+
}>;
|
|
148
|
+
byRegion: Array<{
|
|
149
|
+
region: string;
|
|
150
|
+
count: number;
|
|
151
|
+
}>;
|
|
152
|
+
bySourceService: Array<{
|
|
153
|
+
sourceService: string;
|
|
154
|
+
count: number;
|
|
155
|
+
}>;
|
|
156
|
+
byResourceType: Array<{
|
|
157
|
+
resourceType: string;
|
|
158
|
+
count: number;
|
|
159
|
+
}>;
|
|
160
|
+
byActionType: Array<{
|
|
161
|
+
actionType: string;
|
|
162
|
+
count: number;
|
|
163
|
+
}>;
|
|
164
|
+
byImplementationEffort: Array<{
|
|
165
|
+
implementationEffort: string;
|
|
166
|
+
count: number;
|
|
167
|
+
}>;
|
|
168
|
+
}
|
|
169
|
+
export interface AwsPortalRecommendationSavings {
|
|
170
|
+
snapshotBackedMatchedCount: number;
|
|
171
|
+
positiveEstimatedSavingsRecommendationCount: number;
|
|
172
|
+
nonPositiveEstimatedSavingsCount: number;
|
|
173
|
+
missingEstimatedSavingsCount: number;
|
|
174
|
+
missingCurrencyCodeCount: number;
|
|
175
|
+
emptySavings: boolean;
|
|
176
|
+
mixedCurrencies: boolean;
|
|
177
|
+
byCurrency: Array<{
|
|
178
|
+
currencyCode: string;
|
|
179
|
+
recommendationCount: number;
|
|
180
|
+
totalEstimatedMonthlySavings: number;
|
|
181
|
+
}>;
|
|
182
|
+
}
|
|
183
|
+
export interface AwsPortalRecommendationSourceEvidence extends AwsPortalRecommendationSummary {
|
|
184
|
+
partialSourceEvidence: boolean;
|
|
185
|
+
oldestRecommendationSynchronizedAt?: string;
|
|
186
|
+
latestRecommendationSynchronizedAt?: string;
|
|
187
|
+
exactScopeCoverage?: JsonObject;
|
|
188
|
+
}
|
|
189
|
+
export interface AwsPortalRecommendationActionHealth {
|
|
190
|
+
latestActionCount: number;
|
|
191
|
+
byLatestActionStatus: Array<{
|
|
192
|
+
status: string;
|
|
193
|
+
count: number;
|
|
194
|
+
}>;
|
|
195
|
+
}
|
|
196
|
+
export interface AwsPortalRecommendationActionability {
|
|
197
|
+
latestActionStableMaterializationKey: string;
|
|
198
|
+
latestActionExecution: AwsPortalRecommendationLatestActionExecution;
|
|
199
|
+
savingsVerification?: AwsPortalRecommendationSavingsVerification;
|
|
200
|
+
}
|
|
201
|
+
export interface AwsPortalRecommendationTemplateProvenance {
|
|
202
|
+
status: 'available-no-template-items' | 'missing-template-evidence' | 'missing-confidence-evidence' | 'available-with-confidence';
|
|
203
|
+
templateBackedRecommendationCount: number;
|
|
204
|
+
missingTemplateRecommendationCount: number;
|
|
205
|
+
internalTemplateCount: number;
|
|
206
|
+
externalTemplateCount: number;
|
|
207
|
+
confidenceBackedRecommendationCount: number;
|
|
208
|
+
templateRecommendationWithoutConfidenceCount: number;
|
|
209
|
+
lowestConfidenceSources: AwsPortalRecommendationTemplateProvenanceSource[];
|
|
210
|
+
minimumConfidencePercentage?: number;
|
|
211
|
+
maximumConfidencePercentage?: number;
|
|
212
|
+
averageConfidencePercentage?: number;
|
|
213
|
+
}
|
|
214
|
+
export interface AwsPortalResourceDetailItem {
|
|
215
|
+
stableKey: string;
|
|
216
|
+
family: AwsPortalDiscoveryFamily;
|
|
217
|
+
resourceRegion: string;
|
|
218
|
+
resourceType: string;
|
|
219
|
+
resourceArn?: string;
|
|
220
|
+
resourceId?: string;
|
|
221
|
+
resourceName?: string;
|
|
222
|
+
tags?: Record<string, string>;
|
|
223
|
+
spottoTags?: Record<string, {
|
|
224
|
+
v: string;
|
|
225
|
+
a: number;
|
|
226
|
+
}>;
|
|
227
|
+
discovery: {
|
|
228
|
+
freshness: AwsPortalFreshness;
|
|
229
|
+
summary: JsonObject;
|
|
230
|
+
};
|
|
231
|
+
billing?: {
|
|
232
|
+
costProvenance: {
|
|
233
|
+
costSource: 'billing';
|
|
234
|
+
costSourceConfidence: 'high';
|
|
235
|
+
};
|
|
236
|
+
matchedExpenseCount: number;
|
|
237
|
+
totalsByCurrency: AwsPortalBillingCostAggregate[];
|
|
238
|
+
costViewByCurrency: AwsPortalBillingCostView[];
|
|
239
|
+
commitmentSpend: AwsPortalBillingCommitmentSpend;
|
|
240
|
+
benefitsCoverage?: AwsPortalBillingBenefitCoverage;
|
|
241
|
+
coverageWarning?: AwsPortalBillingBenefitCoverageWarning;
|
|
242
|
+
};
|
|
243
|
+
metrics?: {
|
|
244
|
+
supported: boolean;
|
|
245
|
+
families: Array<{
|
|
246
|
+
metricFamily: AwsPortalMetricFamily;
|
|
247
|
+
summary: JsonObject;
|
|
248
|
+
coverage: JsonObject;
|
|
249
|
+
}>;
|
|
250
|
+
};
|
|
251
|
+
recommendations?: {
|
|
252
|
+
matchedRecommendationCount: number;
|
|
253
|
+
sources: AwsPortalRecommendationSource[];
|
|
254
|
+
actionability?: AwsPortalRecommendationActionability;
|
|
255
|
+
templateProvenance?: AwsPortalRecommendationTemplateProvenance;
|
|
256
|
+
counts: JsonObject;
|
|
257
|
+
savings: JsonObject;
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export interface AwsPortalResourceCollectionBody<AccountId extends string = string> {
|
|
261
|
+
generatedAt: string;
|
|
262
|
+
scope: AwsPortalResourceCollectionScope<AccountId>;
|
|
263
|
+
summary: {
|
|
264
|
+
totalDiscoveredResourceCount: number;
|
|
265
|
+
returnedResourceCount: number;
|
|
266
|
+
emptyCollection: boolean;
|
|
267
|
+
truncated: boolean;
|
|
268
|
+
unmatchedRecommendationResourceCount: number;
|
|
269
|
+
unmatchedBillingExpenseCount: number;
|
|
270
|
+
};
|
|
271
|
+
coverage: {
|
|
272
|
+
billing: {
|
|
273
|
+
scope: AwsPortalBillingEvidenceScope<AccountId>;
|
|
274
|
+
freshness: AwsPortalBillingFreshness;
|
|
275
|
+
summary: AwsPortalBillingSummary;
|
|
276
|
+
totalsByCurrency: AwsPortalBillingGroupedResult<AwsPortalBillingCostAggregate>;
|
|
277
|
+
pricingReferenceEstimation?: JsonObject;
|
|
278
|
+
estimatedBillingAuthority?: JsonObject;
|
|
279
|
+
};
|
|
280
|
+
discovery: {
|
|
281
|
+
families: Array<{
|
|
282
|
+
family: AwsPortalDiscoveryFamily;
|
|
283
|
+
resourceRegion: string;
|
|
284
|
+
freshness: AwsPortalFreshness;
|
|
285
|
+
summary: JsonObject;
|
|
286
|
+
groupedTotals: JsonObject;
|
|
287
|
+
}>;
|
|
288
|
+
};
|
|
289
|
+
metrics: {
|
|
290
|
+
families: Array<{
|
|
291
|
+
metricFamily: AwsPortalMetricFamily;
|
|
292
|
+
resourceRegion: string;
|
|
293
|
+
requestedMonths: string[];
|
|
294
|
+
availableMonths: string[];
|
|
295
|
+
missingMonths: string[];
|
|
296
|
+
coverage: JsonObject;
|
|
297
|
+
summary: JsonObject;
|
|
298
|
+
}>;
|
|
299
|
+
};
|
|
300
|
+
recommendations: {
|
|
301
|
+
sources: AwsPortalRecommendationCoverage<AccountId>[];
|
|
302
|
+
};
|
|
303
|
+
virtualTags?: AwsPortalVirtualTagEvidence;
|
|
304
|
+
};
|
|
305
|
+
resources: AwsPortalResourceDetailItem[];
|
|
306
|
+
}
|
|
307
|
+
type AwsPortalQualifiedEnvelope<ArtifactType extends 'resource-collection' | 'account-summary', AccountId extends string, RunId extends string> = AwsPublicArtifactEnvelope<ArtifactType, AccountId, RunId> & {
|
|
308
|
+
portalSchemaVersion: typeof AWS_PORTAL_PUBLIC_ARTIFACT_SCHEMA_VERSION;
|
|
309
|
+
logicalName: ArtifactType extends 'resource-collection' ? typeof AWS_PORTAL_RESOURCE_COLLECTION_LOGICAL_NAME : typeof AWS_PORTAL_ACCOUNT_SUMMARY_LOGICAL_NAME;
|
|
310
|
+
};
|
|
311
|
+
export type AwsPortalResourceCollectionDetailArtifact<AccountId extends string = string, RunId extends string = string> = AwsPortalQualifiedEnvelope<'resource-collection', AccountId, RunId> & AwsPortalResourceCollectionBody<AccountId>;
|
|
312
|
+
export interface AwsPortalAccountSummaryBodyV2<AccountId extends string = string> {
|
|
313
|
+
generatedAt: string;
|
|
314
|
+
scope: AwsPortalAccountSummaryScope<AccountId>;
|
|
315
|
+
account: {
|
|
316
|
+
metadataFound: boolean;
|
|
317
|
+
providerAccountId: AccountId;
|
|
318
|
+
cloudAccountId?: string;
|
|
319
|
+
accountName?: string;
|
|
320
|
+
validatedAt: string;
|
|
321
|
+
providerPartition?: string;
|
|
322
|
+
summary: JsonObject;
|
|
323
|
+
firstUsefulRecommendationReadiness?: JsonObject;
|
|
324
|
+
};
|
|
325
|
+
billing: {
|
|
326
|
+
scope: AwsPortalBillingEvidenceScope<AccountId>;
|
|
327
|
+
freshness: AwsPortalBillingFreshness;
|
|
328
|
+
summary: AwsPortalBillingSummary;
|
|
329
|
+
totalsByCurrency: AwsPortalBillingGroupedResult<AwsPortalBillingCostAggregate>;
|
|
330
|
+
costViewByCurrency: JsonValue[];
|
|
331
|
+
groupedCosts: {
|
|
332
|
+
byChargeCategory: AwsPortalBillingGroupedResult<AwsPortalBillingLabeledCost<'chargeCategory'>>;
|
|
333
|
+
byServiceCode: AwsPortalBillingGroupedResult<AwsPortalBillingLabeledCost<'serviceCode'>>;
|
|
334
|
+
byServiceCategory?: AwsPortalBillingGroupedResult<AwsPortalBillingLabeledCost<'serviceCategory'>>;
|
|
335
|
+
};
|
|
336
|
+
commitmentSpend?: JsonObject;
|
|
337
|
+
resourceAttribution?: JsonObject;
|
|
338
|
+
calendarSummary?: JsonObject;
|
|
339
|
+
periodSummary?: JsonObject;
|
|
340
|
+
spendTrend?: JsonObject;
|
|
341
|
+
comparison?: JsonObject;
|
|
342
|
+
};
|
|
343
|
+
discovery: {
|
|
344
|
+
families: Array<{
|
|
345
|
+
family: AwsPortalDiscoveryFamily;
|
|
346
|
+
resourceRegion: string;
|
|
347
|
+
freshness: AwsPortalFreshness;
|
|
348
|
+
summary: JsonObject;
|
|
349
|
+
groupedTotals: JsonObject;
|
|
350
|
+
}>;
|
|
351
|
+
};
|
|
352
|
+
metrics: {
|
|
353
|
+
families: Array<{
|
|
354
|
+
metricFamily: AwsPortalMetricFamily;
|
|
355
|
+
resourceRegion: string;
|
|
356
|
+
status: 'available' | 'not-found';
|
|
357
|
+
requestedMonths: string[];
|
|
358
|
+
availableMonths: string[];
|
|
359
|
+
missingMonths: string[];
|
|
360
|
+
freshness: AwsPortalFreshness;
|
|
361
|
+
readiness: JsonObject;
|
|
362
|
+
summary?: JsonObject;
|
|
363
|
+
}>;
|
|
364
|
+
};
|
|
365
|
+
recommendations: {
|
|
366
|
+
sources: AwsPortalRecommendationCoverage<AccountId>[];
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
export type AwsPortalAccountSummaryDetailArtifact<AccountId extends string = string, RunId extends string = string> = AwsPortalQualifiedEnvelope<'account-summary', AccountId, RunId> & AwsPortalAccountSummaryBodyV2<AccountId>;
|
|
370
|
+
export {};
|
|
371
|
+
//# sourceMappingURL=portalPublicArtifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portalPublicArtifacts.d.ts","sourceRoot":"","sources":["../../src/aws/portalPublicArtifacts.ts"],"names":[],"mappings":"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"}
|