@spottoai/types-package 1.0.2-beta.373 → 1.0.2-beta.375

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 (62) hide show
  1. package/README.md +9 -0
  2. package/dist/accounts/accounts.d.ts +4 -2
  3. package/dist/accounts/accounts.d.ts.map +1 -1
  4. package/dist/accounts/accounts.js.map +1 -1
  5. package/dist/accounts/azureSpSetup.d.ts +1 -1
  6. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  7. package/dist/aws/commitments-planning.d.ts +5 -0
  8. package/dist/aws/commitments-planning.d.ts.map +1 -1
  9. package/dist/aws/commitments-planning.js +19 -0
  10. package/dist/aws/commitments-planning.js.map +1 -1
  11. package/dist/aws/estates.d.ts +1 -1
  12. package/dist/aws/estates.d.ts.map +1 -1
  13. package/dist/aws/estates.js +7 -1
  14. package/dist/aws/estates.js.map +1 -1
  15. package/dist/aws/index.d.ts +5 -0
  16. package/dist/aws/index.d.ts.map +1 -1
  17. package/dist/aws/index.js +5 -0
  18. package/dist/aws/index.js.map +1 -1
  19. package/dist/aws/onboarding.d.ts +3 -0
  20. package/dist/aws/onboarding.d.ts.map +1 -1
  21. package/dist/aws/organizationCommitments.d.ts +260 -0
  22. package/dist/aws/organizationCommitments.d.ts.map +1 -0
  23. package/dist/aws/organizationCommitments.js +53 -0
  24. package/dist/aws/organizationCommitments.js.map +1 -0
  25. package/dist/aws/organizationCommitmentsApiValidation.d.ts +21 -0
  26. package/dist/aws/organizationCommitmentsApiValidation.d.ts.map +1 -0
  27. package/dist/aws/organizationCommitmentsApiValidation.js +226 -0
  28. package/dist/aws/organizationCommitmentsApiValidation.js.map +1 -0
  29. package/dist/aws/organizationCommitmentsValidation.d.ts +12 -0
  30. package/dist/aws/organizationCommitmentsValidation.d.ts.map +1 -0
  31. package/dist/aws/organizationCommitmentsValidation.js +228 -0
  32. package/dist/aws/organizationCommitmentsValidation.js.map +1 -0
  33. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts +9 -0
  34. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map +1 -0
  35. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +407 -0
  36. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js.map +1 -0
  37. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts +17 -0
  38. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.d.ts.map +1 -0
  39. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +6 -0
  40. package/dist/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js.map +1 -0
  41. package/dist/aws/requests.d.ts +13 -2
  42. package/dist/aws/requests.d.ts.map +1 -1
  43. package/dist/aws/requests.js +1 -1
  44. package/dist/aws/requests.js.map +1 -1
  45. package/dist/azure/commitmentsPlanning.d.ts +2 -2
  46. package/dist/azure/commitmentsPlanning.d.ts.map +1 -1
  47. package/dist/azure/governance.d.ts +4 -0
  48. package/dist/azure/governance.d.ts.map +1 -1
  49. package/dist/common/provider.d.ts +53 -0
  50. package/dist/common/provider.d.ts.map +1 -1
  51. package/dist/common/provider.js.map +1 -1
  52. package/dist/esm/aws/commitments-planning.js +5 -0
  53. package/dist/esm/aws/estates.js +7 -1
  54. package/dist/esm/aws/index.js +5 -0
  55. package/dist/esm/aws/organizationCommitments.js +48 -0
  56. package/dist/esm/aws/organizationCommitmentsApiValidation.js +220 -0
  57. package/dist/esm/aws/organizationCommitmentsValidation.js +224 -0
  58. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.js +402 -0
  59. package/dist/esm/aws/portalOrganizationCommitmentsPlanningPublicArtifacts.js +2 -0
  60. package/dist/esm/aws/requests.js +1 -1
  61. package/dist/esm/entries/commitments-planning.js +2 -2
  62. package/package.json +4 -3
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAwsOrganizationCommitmentsPlanningViewIdentity = validateAwsOrganizationCommitmentsPlanningViewIdentity;
4
+ const provider_js_1 = require("../common/provider.js");
5
+ const pluginPublicArtifactValidationHelpers_js_1 = require("./pluginPublicArtifactValidationHelpers.js");
6
+ const ORGANIZATION_ID = /^o-[a-z0-9]{10,32}$/u;
7
+ const FORBIDDEN_ORGANIZATION_COMMITMENTS_KEYS = new Set([
8
+ 'billingScopeId',
9
+ 'blobPath',
10
+ 'checkpoint',
11
+ 'cloudAccountId',
12
+ 'connectionString',
13
+ 'credentialHealth',
14
+ 'credentialId',
15
+ 'credentialReference',
16
+ 'externalId',
17
+ 'managementGroupId',
18
+ 'pricingQuote',
19
+ 'quotePolicy',
20
+ 'resourceGroupId',
21
+ 'roleArn',
22
+ 'saga',
23
+ 'sasToken',
24
+ 'secretArn',
25
+ 'secretReference',
26
+ 'storageCapacity',
27
+ 'storagePath',
28
+ 'subscription',
29
+ 'subscriptionId',
30
+ 'tenantId',
31
+ 'unlockFinancialLedger',
32
+ ]);
33
+ /** Validates the multi-account identity boundary of an AWS organization commitments view. */
34
+ function validateAwsOrganizationCommitmentsPlanningViewIdentity(value, expected) {
35
+ const view = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(value, 'organizationCommitmentsPlanning');
36
+ const providerScope = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(view.providerScope, 'organizationCommitmentsPlanning.providerScope');
37
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertExactKeys)(providerScope, ['providerName', 'providerScopeId', 'scopeType', 'companyId', 'estateId', 'organizationId', 'managementAccountId'], 'organizationCommitmentsPlanning.providerScope');
38
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(providerScope.providerName, provider_js_1.ProviderName.Aws, 'organizationCommitmentsPlanning.providerScope.providerName');
39
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(providerScope.scopeType, 'organization', 'organizationCommitmentsPlanning.providerScope.scopeType');
40
+ const companyId = (0, pluginPublicArtifactValidationHelpers_js_1.requiredString)(providerScope.companyId, 'organizationCommitmentsPlanning.providerScope.companyId');
41
+ const estateId = (0, pluginPublicArtifactValidationHelpers_js_1.requiredString)(providerScope.estateId, 'organizationCommitmentsPlanning.providerScope.estateId');
42
+ const organizationId = requiredOrganizationId(providerScope.organizationId, 'organizationCommitmentsPlanning.providerScope.organizationId');
43
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(providerScope.providerScopeId, organizationId, 'organizationCommitmentsPlanning.providerScope.providerScopeId');
44
+ const managementAccountId = requiredAccountId(providerScope.managementAccountId, 'organizationCommitmentsPlanning.providerScope.managementAccountId');
45
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(expected.companyId, companyId, 'expected.companyId');
46
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(expected.estateId, estateId, 'expected.estateId');
47
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(expected.organizationId, organizationId, 'expected.organizationId');
48
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(expected.managementAccountId, managementAccountId, 'expected.managementAccountId');
49
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(expected.manifestRevision, (0, pluginPublicArtifactValidationHelpers_js_1.requiredString)(view.manifestRevision, 'organizationCommitmentsPlanning.manifestRevision'), 'expected.manifestRevision');
50
+ const accountMembership = validateAccounts(view.accounts, managementAccountId);
51
+ validateExpectedMembers(expected.memberAccountIds, accountMembership.accountIds);
52
+ validateInventory(view.inventory, accountMembership.members);
53
+ validatePayerAggregates(view.payerAggregates, accountMembership.members, managementAccountId);
54
+ validatePurchaseRecommendations(view.purchaseRecommendations, accountMembership.members, managementAccountId);
55
+ validateAttribution(view.allocation, accountMembership.members, false, 'organizationCommitmentsPlanning.allocation');
56
+ validateAttribution(view.resourceAttribution, accountMembership.members, true, 'organizationCommitmentsPlanning.resourceAttribution');
57
+ validateBoundIdentities(view, accountMembership.members, organizationId, companyId, estateId, managementAccountId, 'organizationCommitmentsPlanning');
58
+ }
59
+ function validateAccounts(value, managementAccountId) {
60
+ if (!Array.isArray(value) || value.length === 0)
61
+ throw new Error('organizationCommitmentsPlanning.accounts must be a non-empty array.');
62
+ const accountIds = value.map((entry, index) => {
63
+ const field = `organizationCommitmentsPlanning.accounts[${index}]`;
64
+ const account = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(entry, field);
65
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertExactKeys)(account, ['accountId', 'displayName', 'role', 'inventoryStatus', 'lastSuccessfulRefreshAt'], field);
66
+ const accountId = requiredAccountId(account.accountId, `${field}.accountId`);
67
+ const role = (0, pluginPublicArtifactValidationHelpers_js_1.requiredEnum)(account.role, ['management', 'member'], `${field}.role`);
68
+ if ((accountId === managementAccountId) !== (role === 'management')) {
69
+ throw new Error(`${field}.role must identify the exact management account.`);
70
+ }
71
+ return accountId;
72
+ });
73
+ if (new Set(accountIds).size !== accountIds.length)
74
+ throw new Error('organizationCommitmentsPlanning.accounts must not contain duplicates.');
75
+ const sorted = [...accountIds].sort((left, right) => left.localeCompare(right));
76
+ if (JSON.stringify(sorted) !== JSON.stringify(accountIds))
77
+ throw new Error('organizationCommitmentsPlanning.accounts must be sorted by accountId.');
78
+ if (!accountIds.includes(managementAccountId))
79
+ throw new Error('organizationCommitmentsPlanning.accounts must contain the management account.');
80
+ return { accountIds, members: new Set(accountIds) };
81
+ }
82
+ function validateInventory(value, members) {
83
+ if (!Array.isArray(value))
84
+ throw new Error('organizationCommitmentsPlanning.inventory must be an array.');
85
+ value.forEach((entry, index) => {
86
+ const field = `organizationCommitmentsPlanning.inventory[${index}]`;
87
+ const item = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(entry, field);
88
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(item.sourceKind, 'aws-native', `${field}.sourceKind`);
89
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(item.provider, provider_js_1.ProviderName.Aws, `${field}.provider`);
90
+ requiredMember(item.ownerAccountId, members, `${field}.ownerAccountId`);
91
+ if (item.shape !== undefined)
92
+ validateAwsShape(item.shape, `${field}.shape`);
93
+ });
94
+ }
95
+ function validatePayerAggregates(value, members, managementAccountId) {
96
+ if (!Array.isArray(value))
97
+ throw new Error('organizationCommitmentsPlanning.payerAggregates must be an array.');
98
+ value.forEach((entry, index) => {
99
+ const field = `organizationCommitmentsPlanning.payerAggregates[${index}]`;
100
+ const aggregate = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(entry, field);
101
+ const payerAccountId = requiredMember(aggregate.payerAccountId, members, `${field}.payerAccountId`);
102
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(payerAccountId, managementAccountId, `${field}.payerAccountId`);
103
+ validateAwsSource(aggregate.source, `${field}.source`);
104
+ });
105
+ }
106
+ function validatePurchaseRecommendations(value, members, managementAccountId) {
107
+ if (value === undefined)
108
+ return;
109
+ if (!Array.isArray(value))
110
+ throw new Error('organizationCommitmentsPlanning.purchaseRecommendations must be an array.');
111
+ value.forEach((entry, index) => {
112
+ const field = `organizationCommitmentsPlanning.purchaseRecommendations[${index}]`;
113
+ const recommendation = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(entry, field);
114
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(recommendation.purchaseScope, 'payer', `${field}.purchaseScope`);
115
+ const payerAccountId = requiredMember(recommendation.payerAccountId, members, `${field}.payerAccountId`);
116
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(payerAccountId, managementAccountId, `${field}.payerAccountId`);
117
+ if (recommendation.recommendedAccountId !== undefined) {
118
+ requiredMember(recommendation.recommendedAccountId, members, `${field}.recommendedAccountId`);
119
+ }
120
+ validateAwsSource(recommendation.source, `${field}.source`);
121
+ validateAwsShape(recommendation.targetShape, `${field}.targetShape`);
122
+ });
123
+ }
124
+ function validateAttribution(value, members, resource, field) {
125
+ const evidence = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(value, field);
126
+ if (evidence.status === 'unavailable') {
127
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertExactKeys)(evidence, ['status', 'reason'], field);
128
+ (0, pluginPublicArtifactValidationHelpers_js_1.requiredEnum)(evidence.reason, ['not-collected', 'not-proved', 'source-unavailable'], `${field}.reason`);
129
+ return;
130
+ }
131
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(evidence.status, 'available', `${field}.status`);
132
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertExactKeys)(evidence, ['status', 'source', 'records'], field);
133
+ validateAwsSource(evidence.source, `${field}.source`, true);
134
+ if (!Array.isArray(evidence.records) || evidence.records.length === 0) {
135
+ throw new Error(`${field}.records must be non-empty when attribution is available.`);
136
+ }
137
+ evidence.records.forEach((entry, index) => {
138
+ const record = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(entry, `${field}.records[${index}]`);
139
+ if (resource) {
140
+ requiredMember(record.accountId, members, `${field}.records[${index}].accountId`);
141
+ }
142
+ else {
143
+ requiredMember(record.beneficiaryAccountId, members, `${field}.records[${index}].beneficiaryAccountId`);
144
+ if (record.ownerAccountId !== undefined)
145
+ requiredMember(record.ownerAccountId, members, `${field}.records[${index}].ownerAccountId`);
146
+ }
147
+ });
148
+ }
149
+ function validateAwsSource(value, field, allowDerived = false) {
150
+ const source = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(value, field);
151
+ const allowed = allowDerived ? ['aws-native', 'spotto-derived'] : ['aws-native'];
152
+ (0, pluginPublicArtifactValidationHelpers_js_1.requiredEnum)(source.sourceKind, allowed, `${field}.sourceKind`);
153
+ }
154
+ function validateAwsShape(value, field) {
155
+ const shape = (0, pluginPublicArtifactValidationHelpers_js_1.asRecord)(value, field);
156
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(shape.provider, 'aws', `${field}.provider`);
157
+ }
158
+ function validateBoundIdentities(value, members, organizationId, companyId, estateId, managementAccountId, field) {
159
+ if (Array.isArray(value)) {
160
+ value.forEach((entry, index) => validateBoundIdentities(entry, members, organizationId, companyId, estateId, managementAccountId, `${field}[${index}]`));
161
+ return;
162
+ }
163
+ if (!value || typeof value !== 'object') {
164
+ if (typeof value === 'string')
165
+ validateArnAccount(value, members, field);
166
+ return;
167
+ }
168
+ for (const [key, child] of Object.entries(value)) {
169
+ if (FORBIDDEN_ORGANIZATION_COMMITMENTS_KEYS.has(key)) {
170
+ throw new Error(`${field}.${key} is not allowed in an AWS organization commitments artifact.`);
171
+ }
172
+ if (key === 'accountId' || key === 'ownerAccountId' || key === 'beneficiaryAccountId' || key === 'payerAccountId') {
173
+ requiredMember(child, members, `${field}.${key}`);
174
+ }
175
+ if (key === 'organizationId')
176
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(child, organizationId, `${field}.${key}`);
177
+ if (key === 'companyId')
178
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(child, companyId, `${field}.${key}`);
179
+ if (key === 'estateId')
180
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(child, estateId, `${field}.${key}`);
181
+ if (key === 'managementAccountId')
182
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertAccount)(child, managementAccountId, `${field}.${key}`);
183
+ if (key === 'providerName')
184
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(child, provider_js_1.ProviderName.Aws, `${field}.${key}`);
185
+ if (key === 'provider')
186
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertValue)(child, 'aws', `${field}.${key}`);
187
+ if (key === 'sourceKind' && child === 'azure-native') {
188
+ throw new Error(`${field}.${key} cannot contain Azure-native evidence.`);
189
+ }
190
+ validateBoundIdentities(child, members, organizationId, companyId, estateId, managementAccountId, `${field}.${key}`);
191
+ }
192
+ }
193
+ function validateArnAccount(value, members, field) {
194
+ if (!value.startsWith('arn:'))
195
+ return;
196
+ const arnAccountId = value.split(':', 6)[4];
197
+ if (arnAccountId && !members.has(arnAccountId))
198
+ throw new Error(`${field} contains an ARN outside the declared organization membership.`);
199
+ }
200
+ function requiredMember(value, members, field) {
201
+ const accountId = requiredAccountId(value, field);
202
+ if (!members.has(accountId))
203
+ throw new Error(`${field} must belong to the declared organization membership.`);
204
+ return accountId;
205
+ }
206
+ function requiredAccountId(value, field) {
207
+ const accountId = (0, pluginPublicArtifactValidationHelpers_js_1.requiredString)(value, field);
208
+ (0, pluginPublicArtifactValidationHelpers_js_1.assertAccount)(value, accountId, field);
209
+ return accountId;
210
+ }
211
+ function requiredOrganizationId(value, field) {
212
+ const organizationId = (0, pluginPublicArtifactValidationHelpers_js_1.requiredString)(value, field);
213
+ if (!ORGANIZATION_ID.test(organizationId))
214
+ throw new Error(`${field} must be a canonical AWS organization id.`);
215
+ return organizationId;
216
+ }
217
+ function validateExpectedMembers(expected, actual) {
218
+ const normalized = expected.map((accountId, index) => requiredAccountId(accountId, `expected.memberAccountIds[${index}]`));
219
+ if (new Set(normalized).size !== normalized.length)
220
+ throw new Error('expected.memberAccountIds must not contain duplicates.');
221
+ const sorted = [...normalized].sort((left, right) => left.localeCompare(right));
222
+ if (JSON.stringify(sorted) !== JSON.stringify(normalized))
223
+ throw new Error('expected.memberAccountIds must be sorted.');
224
+ if (JSON.stringify(normalized) !== JSON.stringify(actual)) {
225
+ throw new Error('expected.memberAccountIds must match the artifact membership exactly.');
226
+ }
227
+ }
228
+ //# sourceMappingURL=organizationCommitmentsValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organizationCommitmentsValidation.js","sourceRoot":"","sources":["../../src/aws/organizationCommitmentsValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type AwsOrganizationCommitmentsPlanningView } from './organizationCommitments.js';
2
+ import { type AwsOrganizationCommitmentsExpectedIdentity } from './organizationCommitmentsValidation.js';
3
+ import { type AwsPortalOrganizationCommitmentsPlanningArtifact } from './portalOrganizationCommitmentsPlanningPublicArtifacts.js';
4
+ export type AwsPortalOrganizationCommitmentsExpectedIdentity = AwsOrganizationCommitmentsExpectedIdentity;
5
+ /** Validates one untrusted organization Commitments Planning view without its Portal envelope. */
6
+ export declare function validateAwsOrganizationCommitmentsPlanningView(value: unknown, expected: AwsOrganizationCommitmentsExpectedIdentity): AwsOrganizationCommitmentsPlanningView;
7
+ /** Validates one untrusted immutable AWS organization Commitments Planning artifact. */
8
+ export declare function validateAwsPortalOrganizationCommitmentsPlanningArtifact(value: unknown, expected: AwsPortalOrganizationCommitmentsExpectedIdentity): AwsPortalOrganizationCommitmentsPlanningArtifact;
9
+ //# sourceMappingURL=portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portalOrganizationCommitmentsPlanningPublicArtifactValidation.d.ts","sourceRoot":"","sources":["../../src/aws/portalOrganizationCommitmentsPlanningPublicArtifactValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,sCAAsC,EAC5C,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,KAAK,0CAA0C,EAChD,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAGL,KAAK,gDAAgD,EACtD,MAAM,2DAA2D,CAAC;AAuCnE,MAAM,MAAM,gDAAgD,GAAG,0CAA0C,CAAC;AAE1G,kGAAkG;AAClG,wBAAgB,8CAA8C,CAC5D,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,0CAA0C,GACnD,sCAAsC,CAKxC;AAED,wFAAwF;AACxF,wBAAgB,wDAAwD,CACtE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,gDAAgD,GACzD,gDAAgD,CAoBlD"}