@spottoai/types-package 1.0.2-beta.420 → 1.0.2-beta.421

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 (77) hide show
  1. package/README.md +3 -0
  2. package/dist/accounts/azureSpSetup.d.ts +5 -0
  3. package/dist/accounts/azureSpSetup.d.ts.map +1 -1
  4. package/dist/accounts/azureSpSetup.js.map +1 -1
  5. package/dist/accounts/writePermissions.d.ts +5 -1
  6. package/dist/accounts/writePermissions.d.ts.map +1 -1
  7. package/dist/accounts/writePermissions.js +9 -0
  8. package/dist/accounts/writePermissions.js.map +1 -1
  9. package/dist/esm/accounts/writePermissions.js +9 -0
  10. package/dist/esm/scheduler/index.js +2 -3
  11. package/dist/esm/scheduler/resourceStrategy.js +2 -0
  12. package/dist/esm/scheduler/resourceStrategyCapabilityValidation.js +241 -0
  13. package/dist/esm/scheduler/resourceStrategyContracts.js +14 -0
  14. package/dist/esm/scheduler/resourceStrategyFinancialValidation.js +145 -0
  15. package/dist/esm/scheduler/resourceStrategyPermissionValidation.js +190 -0
  16. package/dist/esm/scheduler/resourceStrategyScheduleValidation.js +332 -0
  17. package/dist/esm/scheduler/resourceStrategyValidation.js +4 -0
  18. package/dist/esm/scheduler/resourceStrategyValidationShared.js +261 -0
  19. package/dist/esm/scheduler/weeklyAvailabilityFixtures.js +140 -0
  20. package/dist/scheduler/index.d.ts +2 -3
  21. package/dist/scheduler/index.d.ts.map +1 -1
  22. package/dist/scheduler/index.js +2 -3
  23. package/dist/scheduler/index.js.map +1 -1
  24. package/dist/scheduler/resourceStrategy.d.ts +3 -0
  25. package/dist/scheduler/resourceStrategy.d.ts.map +1 -0
  26. package/dist/scheduler/resourceStrategy.js +19 -0
  27. package/dist/scheduler/resourceStrategy.js.map +1 -0
  28. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts +4 -0
  29. package/dist/scheduler/resourceStrategyCapabilityValidation.d.ts.map +1 -0
  30. package/dist/scheduler/resourceStrategyCapabilityValidation.js +246 -0
  31. package/dist/scheduler/resourceStrategyCapabilityValidation.js.map +1 -0
  32. package/dist/scheduler/resourceStrategyContracts.d.ts +412 -0
  33. package/dist/scheduler/resourceStrategyContracts.d.ts.map +1 -0
  34. package/dist/scheduler/resourceStrategyContracts.js +18 -0
  35. package/dist/scheduler/resourceStrategyContracts.js.map +1 -0
  36. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts +5 -0
  37. package/dist/scheduler/resourceStrategyFinancialValidation.d.ts.map +1 -0
  38. package/dist/scheduler/resourceStrategyFinancialValidation.js +151 -0
  39. package/dist/scheduler/resourceStrategyFinancialValidation.js.map +1 -0
  40. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts +4 -0
  41. package/dist/scheduler/resourceStrategyPermissionValidation.d.ts.map +1 -0
  42. package/dist/scheduler/resourceStrategyPermissionValidation.js +195 -0
  43. package/dist/scheduler/resourceStrategyPermissionValidation.js.map +1 -0
  44. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts +10 -0
  45. package/dist/scheduler/resourceStrategyScheduleValidation.d.ts.map +1 -0
  46. package/dist/scheduler/resourceStrategyScheduleValidation.js +343 -0
  47. package/dist/scheduler/resourceStrategyScheduleValidation.js.map +1 -0
  48. package/dist/scheduler/resourceStrategyValidation.d.ts +5 -0
  49. package/dist/scheduler/resourceStrategyValidation.d.ts.map +1 -0
  50. package/dist/scheduler/resourceStrategyValidation.js +21 -0
  51. package/dist/scheduler/resourceStrategyValidation.js.map +1 -0
  52. package/dist/scheduler/resourceStrategyValidationShared.d.ts +19 -0
  53. package/dist/scheduler/resourceStrategyValidationShared.d.ts.map +1 -0
  54. package/dist/scheduler/resourceStrategyValidationShared.js +281 -0
  55. package/dist/scheduler/resourceStrategyValidationShared.js.map +1 -0
  56. package/dist/scheduler/scheduler.d.ts +6 -159
  57. package/dist/scheduler/scheduler.d.ts.map +1 -1
  58. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts +26 -0
  59. package/dist/scheduler/weeklyAvailabilityFixtures.d.ts.map +1 -0
  60. package/dist/scheduler/weeklyAvailabilityFixtures.js +144 -0
  61. package/dist/scheduler/weeklyAvailabilityFixtures.js.map +1 -0
  62. package/package.json +11 -3
  63. package/dist/esm/scheduler/bastionSchedule.js +0 -1
  64. package/dist/esm/scheduler/bastionScheduleProfile.js +0 -206
  65. package/dist/esm/scheduler/bastionScheduleValidation.js +0 -401
  66. package/dist/scheduler/bastionSchedule.d.ts +0 -113
  67. package/dist/scheduler/bastionSchedule.d.ts.map +0 -1
  68. package/dist/scheduler/bastionSchedule.js +0 -3
  69. package/dist/scheduler/bastionSchedule.js.map +0 -1
  70. package/dist/scheduler/bastionScheduleProfile.d.ts +0 -24
  71. package/dist/scheduler/bastionScheduleProfile.d.ts.map +0 -1
  72. package/dist/scheduler/bastionScheduleProfile.js +0 -210
  73. package/dist/scheduler/bastionScheduleProfile.js.map +0 -1
  74. package/dist/scheduler/bastionScheduleValidation.d.ts +0 -10
  75. package/dist/scheduler/bastionScheduleValidation.d.ts.map +0 -1
  76. package/dist/scheduler/bastionScheduleValidation.js +0 -412
  77. package/dist/scheduler/bastionScheduleValidation.js.map +0 -1
@@ -0,0 +1,412 @@
1
+ export declare const RESOURCE_STRATEGY_CONTRACT_LIMITS: {
2
+ readonly textLength: 500;
3
+ readonly rules: 64;
4
+ readonly ruleDays: 7;
5
+ readonly resourceTypes: 64;
6
+ readonly metadataItems: 64;
7
+ readonly evidenceReferences: 32;
8
+ readonly draftPeriodKeys: 64;
9
+ readonly grantGroups: 128;
10
+ readonly permissionOperations: 8192;
11
+ readonly listResults: 100;
12
+ readonly parameterBytes: 32768;
13
+ readonly publicDtoBytes: 262144;
14
+ };
15
+ export type ResourceSchedulingStrategy = 'on-off' | 'sku-change' | 'dial' | 'recreate';
16
+ export type ResourceStrategy = ResourceSchedulingStrategy;
17
+ export type ResourceScheduleTransition = 'reduce' | 'restore';
18
+ export type ResourceStrategyTransition = ResourceScheduleTransition;
19
+ export type SchedulingBillingClass = 'A-meter-stops' | 'B-meter-reduces' | 'C-no-material-saving';
20
+ export type ResourceScheduleWeekday = 0 | 1 | 2 | 3 | 4 | 5 | 6;
21
+ export interface ResourceSchedulingCapabilityRef {
22
+ capabilityId: string;
23
+ capabilityVersion: number;
24
+ }
25
+ export interface ResourceSchedulingCapabilityProjection {
26
+ capability: ResourceSchedulingCapabilityRef;
27
+ contentHash: string;
28
+ publishedAtUtc: string;
29
+ provider: string;
30
+ resourceTypes: string[];
31
+ strategy: ResourceSchedulingStrategy;
32
+ displayName: string;
33
+ description: string;
34
+ configurationSchemaKind: string;
35
+ configurationSchema: Record<string, unknown>;
36
+ recommendationMaturity: 'unsupported' | 'candidate' | 'supported';
37
+ lifecycleStatus: 'published' | 'deprecated' | 'withdrawn';
38
+ executionPolicy: {
39
+ authoring: 'allowed' | 'blocked';
40
+ reduce: 'allowed' | 'blocked';
41
+ restore: 'allowed' | 'blocked';
42
+ disableReason?: string;
43
+ supersededBy?: ResourceSchedulingCapabilityRef;
44
+ };
45
+ baseline: {
46
+ policy: 'none' | 'capture-selected-state' | 'capture-resource-snapshot';
47
+ mutationDomains: string[];
48
+ coupledValueLabels?: string[];
49
+ driftPolicy: 'block' | 'adopt-before-reduce' | 'restore-captured' | 'capability-defined';
50
+ };
51
+ cost: {
52
+ billingClass: SchedulingBillingClass;
53
+ reducedMeters: string[];
54
+ retainedMeters: string[];
55
+ billingGranularityMinutes?: number;
56
+ minimumUsefulReducedMinutes?: number;
57
+ commitmentInteraction: 'none' | 'may-reduce-invoice-saving' | 'unknown';
58
+ };
59
+ cadence: {
60
+ minimumTransitionIntervalMinutes: number;
61
+ maximumChangesPerRollingWindow?: {
62
+ changes: number;
63
+ windowMinutes: number;
64
+ };
65
+ maximumReducedDurationMinutes?: number;
66
+ preferredBillingBoundary?: 'none' | 'start-of-hour';
67
+ reduceFlexMinutes?: number;
68
+ };
69
+ disruption: {
70
+ reversibility: 'reversible' | 'conditional' | 'destructive';
71
+ risk: 'low' | 'medium' | 'high';
72
+ affectedScopeLabel: string;
73
+ expectedDowntimeMinutes?: {
74
+ minimum: number;
75
+ maximum: number;
76
+ };
77
+ supportedBusyPolicies: Array<'skip' | 'wait-until-deadline' | 'force'>;
78
+ };
79
+ restore: {
80
+ restoreLeadMinutes: number;
81
+ capacityReturnRisk: 'none-known' | 'possible' | 'high' | 'unknown';
82
+ retryPolicyLabel: string;
83
+ escalationClass: string;
84
+ };
85
+ automation: {
86
+ ownership: 'spotto' | 'native' | 'coexistence-proven' | 'unsupported-conflict';
87
+ conflictingControllerLabels: string[];
88
+ };
89
+ dependencies: {
90
+ hasDependencies: boolean;
91
+ summary?: string;
92
+ mutableIdentityRisk?: boolean;
93
+ };
94
+ acknowledgement?: {
95
+ version: string;
96
+ severity: 'info' | 'warning' | 'destructive';
97
+ message: string;
98
+ };
99
+ evidence: {
100
+ sourceUrls: string[];
101
+ labResult: 'not-run' | 'failed' | 'passed';
102
+ verifiedAtUtc: string | null;
103
+ expiresAtUtc: string | null;
104
+ };
105
+ }
106
+ export type ResourceSchedulingReadinessState = 'ready' | 'blocked' | 'pending-permission-propagation' | 'missing-permission' | 'scope-mismatch' | 'manifest-outdated' | 'credential-unavailable' | 'permission-check-unavailable' | 'blocked-by-lock' | 'blocked-by-deny-assignment' | 'blocked-by-policy' | 'target-missing' | 'dependency-unready' | 'conflicting-automation' | 'unsupported-resource-state';
107
+ export interface ResourceSchedulingReadinessProjection {
108
+ companyId: string;
109
+ cloudAccountId: string;
110
+ providerScopeId: string;
111
+ resourceId: string;
112
+ capability: ResourceSchedulingCapabilityRef;
113
+ state: ResourceSchedulingReadinessState;
114
+ checkedAtUtc: string;
115
+ expiresAtUtc: string;
116
+ reasonCodes: string[];
117
+ missingActions?: string[];
118
+ requiredScopes?: string[];
119
+ offendingScopes?: string[];
120
+ repairLink?: string;
121
+ }
122
+ export interface ResourceStrategyWeeklyRule {
123
+ ruleId: string;
124
+ transition: ResourceScheduleTransition;
125
+ daysOfWeek: ResourceScheduleWeekday[];
126
+ desiredStateAtLocal: string;
127
+ parameters?: Record<string, unknown>;
128
+ }
129
+ export interface ResourceStrategyWeeklyScheduleSuggestion {
130
+ definitionType: 'resource-strategy-weekly';
131
+ capability: ResourceSchedulingCapabilityRef;
132
+ providerScopeId?: never;
133
+ cloudAccountId?: never;
134
+ resourceId?: never;
135
+ name?: never;
136
+ timezone?: never;
137
+ initialMode?: never;
138
+ notificationPolicyId?: never;
139
+ notes?: never;
140
+ defaultParameters?: Record<string, unknown>;
141
+ rules: ResourceStrategyWeeklyRule[];
142
+ busyPolicy?: {
143
+ mode: 'skip' | 'wait-until-deadline' | 'force';
144
+ maxDelayMinutes?: number;
145
+ };
146
+ blackoutDatesLocal?: string[];
147
+ activeFromUtc?: string;
148
+ activeUntilUtc?: string;
149
+ acknowledgementVersion?: string;
150
+ firstExecutionAcknowledgementVersion?: string;
151
+ }
152
+ export interface ResourceStrategyWeeklyScheduleWriteRequest {
153
+ definitionType: 'resource-strategy-weekly';
154
+ providerScopeId: string;
155
+ cloudAccountId: string;
156
+ resourceId: string;
157
+ capability: ResourceSchedulingCapabilityRef;
158
+ name: string;
159
+ timezone: string;
160
+ defaultParameters?: Record<string, unknown>;
161
+ rules: ResourceStrategyWeeklyRule[];
162
+ busyPolicy?: {
163
+ mode: 'skip' | 'wait-until-deadline' | 'force';
164
+ maxDelayMinutes?: number;
165
+ };
166
+ blackoutDatesLocal?: string[];
167
+ activeFromUtc?: string;
168
+ activeUntilUtc?: string;
169
+ initialMode: 'draft' | 'dry-run' | 'active';
170
+ notificationPolicyId: string;
171
+ acknowledgementVersion?: string;
172
+ firstExecutionAcknowledgementVersion?: string;
173
+ notes?: string;
174
+ }
175
+ export interface ResourceStrategyWeeklyScheduleProjection {
176
+ scheduleId: string;
177
+ definitionRevision: number;
178
+ controlGeneration: number;
179
+ etag: string;
180
+ status: 'draft' | 'dry-run' | 'active' | 'paused' | 'restore-only';
181
+ definition: ResourceStrategyWeeklyScheduleWriteRequest;
182
+ permissionManifest: ResourceSchedulePermissionManifestRef;
183
+ createdAtUtc: string;
184
+ createdBy: string;
185
+ updatedAtUtc: string;
186
+ updatedBy: string;
187
+ acknowledgement?: {
188
+ version: string;
189
+ acknowledgedAtUtc: string;
190
+ acknowledgedBy: string;
191
+ };
192
+ firstExecutionAcknowledgement?: {
193
+ version: string;
194
+ acknowledgedAtUtc: string;
195
+ acknowledgedBy: string;
196
+ };
197
+ }
198
+ export interface ResourceStrategyWeeklyScheduleListResponse {
199
+ results: ResourceStrategyWeeklyScheduleProjection[];
200
+ continuation?: {
201
+ cursor: string;
202
+ };
203
+ }
204
+ export interface ScheduledResourceTransitionV1 {
205
+ schemaVersion: 1;
206
+ companyId: string;
207
+ providerScopeId: string;
208
+ cloudAccountId: string;
209
+ resourceId: string;
210
+ scheduleId: string;
211
+ definitionRevision: number;
212
+ controlGeneration: number;
213
+ ruleId: string;
214
+ occurrenceKey: string;
215
+ scheduleRunId: string;
216
+ desiredStateAtUtc: string;
217
+ dispatchNotBeforeUtc: string;
218
+ reduceDeadlineUtc?: string;
219
+ capability: ResourceSchedulingCapabilityRef;
220
+ transition: ResourceScheduleTransition;
221
+ parameters: Record<string, unknown>;
222
+ permissionManifest: ResourceSchedulePermissionManifestRef;
223
+ correlationId: string;
224
+ }
225
+ export type ResourceSchedulingLifecycleState = 'unknown' | 'normal' | 'reducing' | 'reduced' | 'restoring' | 'reduce-failed' | 'restore-failed' | 'drifted' | 'target-missing' | 'stranded';
226
+ export type ResourceSchedulingRunPhase = 'queued' | 'leased' | 'preflight' | 'capturing-baseline' | 'executing' | 'polling' | 'verifying';
227
+ export type ResourceSchedulingRunOutcome = 'succeeded' | 'no-op' | 'skipped' | 'blocked' | 'failed' | 'superseded' | 'expired';
228
+ export interface ResourceSchedulingExecutionProjection {
229
+ companyId: string;
230
+ resourceId: string;
231
+ scheduleId?: string;
232
+ definitionRevision?: number;
233
+ controlGeneration: number;
234
+ lifecycleState: ResourceSchedulingLifecycleState;
235
+ activeRecoveryCycleId?: string;
236
+ restoreOwed: boolean;
237
+ lastRun?: {
238
+ scheduleRunId: string;
239
+ transition: ResourceScheduleTransition;
240
+ phase?: ResourceSchedulingRunPhase;
241
+ outcome?: ResourceSchedulingRunOutcome;
242
+ desiredStateAtUtc: string;
243
+ updatedAtUtc: string;
244
+ reasonCode?: string;
245
+ };
246
+ allowedCommands: Array<'pause' | 'resume' | 'restore-now' | 'leave-current-state'>;
247
+ updatedAtUtc: string;
248
+ }
249
+ export interface ResourceSchedulingExecutionHistoryItem {
250
+ scheduleRunId: string;
251
+ resourceId: string;
252
+ transition: ResourceScheduleTransition;
253
+ desiredStateAtUtc: string;
254
+ claimedAtUtc: string;
255
+ completedAtUtc?: string;
256
+ outcome?: ResourceSchedulingRunOutcome;
257
+ reasonCode?: string;
258
+ attemptCount: number;
259
+ }
260
+ export interface ResourceSchedulingExecutionHistoryResponse {
261
+ execution: ResourceSchedulingExecutionProjection;
262
+ runs: ResourceSchedulingExecutionHistoryItem[];
263
+ }
264
+ export type ResourceScheduleMoneyBasis = 'billed' | 'amortized';
265
+ export type ResourceScheduleMoneyProvenance = 'billing-backed' | 'estimated' | 'blended';
266
+ export type ResourceScheduleMoneyAdditivity = 'scenario' | 'portfolio';
267
+ export interface ResourceScheduleMoneyPeriod {
268
+ startDate: string;
269
+ endDate: string;
270
+ }
271
+ export interface ResourceScheduleMoneyProjection {
272
+ measure: 'savings';
273
+ amount: string;
274
+ basis: ResourceScheduleMoneyBasis;
275
+ provenance: ResourceScheduleMoneyProvenance;
276
+ period: ResourceScheduleMoneyPeriod;
277
+ currency: string;
278
+ additivity: ResourceScheduleMoneyAdditivity;
279
+ evidenceObservedAtUtc: string;
280
+ coverage: 'complete' | 'partial';
281
+ components: ResourceScheduleMoneyComponentProjection[];
282
+ }
283
+ export interface ResourceScheduleMoneyComponentProjection {
284
+ componentId: string;
285
+ amount: string;
286
+ unit: string;
287
+ tier?: string;
288
+ }
289
+ export interface ResourceScheduleScenarioMoneyProjection extends Omit<ResourceScheduleMoneyProjection, 'additivity'> {
290
+ additivity: 'scenario';
291
+ }
292
+ export type ResourceSchedulePreviewAvailability = 'available' | 'unavailable';
293
+ export type ResourceSchedulePreviewUnavailableReason = 'missing-evidence' | 'stale-evidence' | 'mixed-currency' | 'unsupported' | 'calculation-failed';
294
+ export interface ResourceSchedulePreviewRequest {
295
+ draft: ResourceStrategyWeeklyScheduleWriteRequest;
296
+ draftHash: string;
297
+ evidenceReferences: string[];
298
+ concurrency: {
299
+ requestVersion: number;
300
+ evidenceVersion?: string;
301
+ };
302
+ draftPeriodKeys?: string[];
303
+ }
304
+ export interface ResourceScheduleAvailableWindowPreview {
305
+ draftPeriodKey: string;
306
+ availability: 'available';
307
+ projection: ResourceScheduleScenarioMoneyProjection;
308
+ }
309
+ export interface ResourceScheduleUnavailableWindowPreview {
310
+ draftPeriodKey: string;
311
+ availability: 'unavailable';
312
+ unavailableReason: ResourceSchedulePreviewUnavailableReason;
313
+ }
314
+ export type ResourceScheduleWindowPreview = ResourceScheduleAvailableWindowPreview | ResourceScheduleUnavailableWindowPreview;
315
+ interface ResourceSchedulePreviewResponseBase {
316
+ draftHash: string;
317
+ requestVersion: number;
318
+ windows: ResourceScheduleWindowPreview[];
319
+ }
320
+ export type ResourceSchedulePreviewResponse = (ResourceSchedulePreviewResponseBase & {
321
+ availability: 'available';
322
+ aggregate: ResourceScheduleScenarioMoneyProjection;
323
+ }) | (ResourceSchedulePreviewResponseBase & {
324
+ availability: 'unavailable';
325
+ unavailableReason: ResourceSchedulePreviewUnavailableReason;
326
+ });
327
+ interface ResourceSchedulingOpportunityBase {
328
+ opportunityId: string;
329
+ provider: string;
330
+ providerScopeId: string;
331
+ cloudAccountId?: string;
332
+ resourceId: string;
333
+ capability: ResourceSchedulingCapabilityRef;
334
+ suggestedDefinition?: ResourceStrategyWeeklyScheduleSuggestion;
335
+ observedAtUtc: string;
336
+ }
337
+ export type ResourceSchedulingOpportunity = ResourceSchedulingOpportunityBase & ({
338
+ projectionAvailability: 'available';
339
+ projection: ResourceScheduleScenarioMoneyProjection;
340
+ } | {
341
+ projectionAvailability: 'unavailable';
342
+ projectionUnavailableReason: ResourceSchedulePreviewUnavailableReason;
343
+ });
344
+ export interface ResourceSchedulePermissionManifestRef {
345
+ version: string;
346
+ contentHash: string;
347
+ }
348
+ export interface ResourceSchedulePermissionOperationProjection {
349
+ operation: string;
350
+ permissionSetRefs: string[];
351
+ reason: string;
352
+ evidenceUrl: string;
353
+ }
354
+ export interface ResourceSchedulePermissionGrantGroupProjection {
355
+ groupHash: string;
356
+ provider: string;
357
+ providerScopeId: string;
358
+ exactAssignmentScope: string;
359
+ operationSetHash: string;
360
+ principalRef: string;
361
+ roleDefinitionRef: string;
362
+ roleName: string;
363
+ roleDefinitionScope: string;
364
+ roleAssignmentRef: string;
365
+ actions: ResourceSchedulePermissionOperationProjection[];
366
+ dataActions: ResourceSchedulePermissionOperationProjection[];
367
+ disclosureKeys?: string[];
368
+ }
369
+ export interface ResourceSchedulePermissionChangeOperationProjection {
370
+ groupHash: string;
371
+ providerScopeId: string;
372
+ exactAssignmentScope: string;
373
+ operationKind: 'action' | 'data-action';
374
+ operation: string;
375
+ }
376
+ export interface ResourceSchedulePermissionManifestProjection {
377
+ schemaVersion: 1;
378
+ provider: string;
379
+ version: string;
380
+ contentHash: string;
381
+ capabilityVersions: ResourceSchedulingCapabilityRef[];
382
+ orderedGrantGroupHashes: string[];
383
+ grantGroups: ResourceSchedulePermissionGrantGroupProjection[];
384
+ generatedAtUtc: string;
385
+ evidenceObservedAtUtc: string;
386
+ expiresAtUtc: string | null;
387
+ reviewStatus: 'current' | 'review-required' | 'expired';
388
+ change: {
389
+ status: 'new' | 'unchanged' | 'expanding' | 'narrowing' | 'missing';
390
+ addedOperations: ResourceSchedulePermissionChangeOperationProjection[];
391
+ removedOperations: ResourceSchedulePermissionChangeOperationProjection[];
392
+ };
393
+ }
394
+ export interface ResourceSchedulePermissionManifestConsent extends ResourceSchedulePermissionManifestRef {
395
+ orderedGrantGroupHashes: string[];
396
+ }
397
+ export type ResourceStrategyScheduleCommand = {
398
+ command: 'pause';
399
+ idempotencyKey: string;
400
+ } | {
401
+ command: 'resume';
402
+ idempotencyKey: string;
403
+ } | {
404
+ command: 'restore-now';
405
+ idempotencyKey: string;
406
+ } | {
407
+ command: 'leave-current-state';
408
+ idempotencyKey: string;
409
+ acknowledgement: string;
410
+ };
411
+ export {};
412
+ //# sourceMappingURL=resourceStrategyContracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceStrategyContracts.d.ts","sourceRoot":"","sources":["../../src/scheduler/resourceStrategyContracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESOURCE_STRATEGY_CONTRACT_LIMITS = void 0;
4
+ exports.RESOURCE_STRATEGY_CONTRACT_LIMITS = {
5
+ textLength: 500,
6
+ rules: 64,
7
+ ruleDays: 7,
8
+ resourceTypes: 64,
9
+ metadataItems: 64,
10
+ evidenceReferences: 32,
11
+ draftPeriodKeys: 64,
12
+ grantGroups: 128,
13
+ permissionOperations: 8192,
14
+ listResults: 100,
15
+ parameterBytes: 32768,
16
+ publicDtoBytes: 262144,
17
+ };
18
+ //# sourceMappingURL=resourceStrategyContracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceStrategyContracts.js","sourceRoot":"","sources":["../../src/scheduler/resourceStrategyContracts.ts"],"names":[],"mappings":";;;AAAa,QAAA,iCAAiC,GAAG;IAC/C,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,kBAAkB,EAAE,EAAE;IACtB,eAAe,EAAE,EAAE;IACnB,WAAW,EAAE,GAAG;IAChB,oBAAoB,EAAE,IAAK;IAC3B,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,KAAM;IACtB,cAAc,EAAE,MAAO;CACf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ResourceSchedulePreviewRequest, type ResourceSchedulePreviewResponse, type ResourceSchedulingOpportunity } from './resourceStrategyContracts';
2
+ export declare function isResourceSchedulePreviewRequest(value: unknown): value is ResourceSchedulePreviewRequest;
3
+ export declare function isResourceSchedulePreviewResponse(value: unknown): value is ResourceSchedulePreviewResponse;
4
+ export declare function isResourceSchedulingOpportunity(value: unknown): value is ResourceSchedulingOpportunity;
5
+ //# sourceMappingURL=resourceStrategyFinancialValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceStrategyFinancialValidation.d.ts","sourceRoot":"","sources":["../../src/scheduler/resourceStrategyFinancialValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EAGpC,KAAK,6BAA6B,EACnC,MAAM,6BAA6B,CAAC;AAiFrC,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,8BAA8B,CAcxG;AACD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,+BAA+B,CAgC1G;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,6BAA6B,CA2CtG"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isResourceSchedulePreviewRequest = isResourceSchedulePreviewRequest;
4
+ exports.isResourceSchedulePreviewResponse = isResourceSchedulePreviewResponse;
5
+ exports.isResourceSchedulingOpportunity = isResourceSchedulingOpportunity;
6
+ const resourceStrategyContracts_1 = require("./resourceStrategyContracts");
7
+ const resourceStrategyScheduleValidation_1 = require("./resourceStrategyScheduleValidation");
8
+ const resourceStrategyValidationShared_1 = require("./resourceStrategyValidationShared");
9
+ function isMoneyProjection(value) {
10
+ if (!(0, resourceStrategyValidationShared_1.isRecord)(value) ||
11
+ !(0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, [
12
+ 'measure',
13
+ 'amount',
14
+ 'basis',
15
+ 'provenance',
16
+ 'period',
17
+ 'currency',
18
+ 'additivity',
19
+ 'evidenceObservedAtUtc',
20
+ 'coverage',
21
+ 'components',
22
+ ]) ||
23
+ value.measure !== 'savings' ||
24
+ !(0, resourceStrategyValidationShared_1.isNonNegativeDecimal)(value.amount) ||
25
+ !Array.isArray(value.components) ||
26
+ value.components.length === 0 ||
27
+ value.components.length > resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.metadataItems) {
28
+ return false;
29
+ }
30
+ const componentIds = new Set();
31
+ const validComponents = value.components.every(component => {
32
+ if (!(0, resourceStrategyValidationShared_1.isRecord)(component) ||
33
+ !(0, resourceStrategyValidationShared_1.hasOnlyKeys)(component, ['componentId', 'amount', 'unit', 'tier']) ||
34
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(component.componentId, 200) ||
35
+ !(0, resourceStrategyValidationShared_1.isNonNegativeDecimal)(component.amount) ||
36
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(component.unit, 200) ||
37
+ !(0, resourceStrategyValidationShared_1.isOptionalBoundedString)(component.tier, 200) ||
38
+ componentIds.has(component.componentId)) {
39
+ return false;
40
+ }
41
+ componentIds.add(component.componentId);
42
+ return true;
43
+ });
44
+ if (!validComponents)
45
+ return false;
46
+ const decimalScale = 100000000n;
47
+ const toScaledInteger = (amount) => {
48
+ const [whole, fraction = ''] = amount.split('.');
49
+ return BigInt(whole) * decimalScale + BigInt(fraction.padEnd(8, '0'));
50
+ };
51
+ const componentTotal = value.components.reduce((total, component) => total + toScaledInteger(component.amount), 0n);
52
+ if (componentTotal !== toScaledInteger(value.amount))
53
+ return false;
54
+ return ((value.basis === 'billed' || value.basis === 'amortized') &&
55
+ ['billing-backed', 'estimated', 'blended'].includes(String(value.provenance)) &&
56
+ (0, resourceStrategyValidationShared_1.isRecord)(value.period) &&
57
+ (0, resourceStrategyValidationShared_1.hasOnlyKeys)(value.period, ['startDate', 'endDate']) &&
58
+ (0, resourceStrategyValidationShared_1.isDate)(value.period.startDate) &&
59
+ (0, resourceStrategyValidationShared_1.isDate)(value.period.endDate) &&
60
+ value.period.startDate <= value.period.endDate &&
61
+ (0, resourceStrategyValidationShared_1.isCurrency)(value.currency) &&
62
+ (value.additivity === 'scenario' || value.additivity === 'portfolio') &&
63
+ (0, resourceStrategyValidationShared_1.isIsoTimestamp)(value.evidenceObservedAtUtc) &&
64
+ (value.coverage === 'complete' || value.coverage === 'partial'));
65
+ }
66
+ function isScenarioMoneyProjection(value) {
67
+ return isMoneyProjection(value) && value.additivity === 'scenario';
68
+ }
69
+ function isResourceSchedulePreviewRequest(value) {
70
+ return ((0, resourceStrategyValidationShared_1.isWithinJsonByteLimit)(value, resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.publicDtoBytes) &&
71
+ (0, resourceStrategyValidationShared_1.isRecord)(value) &&
72
+ (0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, ['draft', 'draftHash', 'evidenceReferences', 'concurrency', 'draftPeriodKeys']) &&
73
+ (0, resourceStrategyScheduleValidation_1.isResourceStrategyWeeklyScheduleWriteRequest)(value.draft) &&
74
+ (0, resourceStrategyValidationShared_1.isBoundedString)(value.draftHash, 200) &&
75
+ (0, resourceStrategyValidationShared_1.isBoundedStringArray)(value.evidenceReferences, resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.evidenceReferences) &&
76
+ (0, resourceStrategyValidationShared_1.isRecord)(value.concurrency) &&
77
+ (0, resourceStrategyValidationShared_1.hasOnlyKeys)(value.concurrency, ['requestVersion', 'evidenceVersion']) &&
78
+ (0, resourceStrategyValidationShared_1.isPositiveInteger)(value.concurrency.requestVersion) &&
79
+ (0, resourceStrategyValidationShared_1.isOptionalBoundedString)(value.concurrency.evidenceVersion, 200) &&
80
+ (value.draftPeriodKeys === undefined || (0, resourceStrategyValidationShared_1.isBoundedStringArray)(value.draftPeriodKeys, resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.draftPeriodKeys)));
81
+ }
82
+ function isResourceSchedulePreviewResponse(value) {
83
+ if (!(0, resourceStrategyValidationShared_1.isWithinJsonByteLimit)(value, resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.publicDtoBytes) ||
84
+ !(0, resourceStrategyValidationShared_1.isRecord)(value) ||
85
+ !(0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, ['draftHash', 'requestVersion', 'availability', 'aggregate', 'windows', 'unavailableReason']) ||
86
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(value.draftHash, 200) ||
87
+ !(0, resourceStrategyValidationShared_1.isPositiveInteger)(value.requestVersion) ||
88
+ !['available', 'unavailable'].includes(String(value.availability)) ||
89
+ !Array.isArray(value.windows) ||
90
+ value.windows.length > resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.draftPeriodKeys) {
91
+ return false;
92
+ }
93
+ const validWindows = value.windows.every(window => (0, resourceStrategyValidationShared_1.isRecord)(window) &&
94
+ (0, resourceStrategyValidationShared_1.isBoundedString)(window.draftPeriodKey, 200) &&
95
+ (window.availability === 'available'
96
+ ? (0, resourceStrategyValidationShared_1.hasOnlyKeys)(window, ['draftPeriodKey', 'availability', 'projection']) && isScenarioMoneyProjection(window.projection)
97
+ : window.availability === 'unavailable' &&
98
+ (0, resourceStrategyValidationShared_1.hasOnlyKeys)(window, ['draftPeriodKey', 'availability', 'unavailableReason']) &&
99
+ isPreviewUnavailableReason(window.unavailableReason)));
100
+ if (!validWindows)
101
+ return false;
102
+ if (value.availability === 'available') {
103
+ return (0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, ['draftHash', 'requestVersion', 'availability', 'aggregate', 'windows']) && isScenarioMoneyProjection(value.aggregate);
104
+ }
105
+ return ((0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, ['draftHash', 'requestVersion', 'availability', 'windows', 'unavailableReason']) &&
106
+ value.aggregate === undefined &&
107
+ isPreviewUnavailableReason(value.unavailableReason));
108
+ }
109
+ function isPreviewUnavailableReason(value) {
110
+ return ['missing-evidence', 'stale-evidence', 'mixed-currency', 'unsupported', 'calculation-failed'].includes(String(value));
111
+ }
112
+ function isResourceSchedulingOpportunity(value) {
113
+ if (!(0, resourceStrategyValidationShared_1.isWithinJsonByteLimit)(value, resourceStrategyContracts_1.RESOURCE_STRATEGY_CONTRACT_LIMITS.publicDtoBytes) || !(0, resourceStrategyValidationShared_1.isRecord)(value))
114
+ return false;
115
+ const commonKeys = [
116
+ 'opportunityId',
117
+ 'provider',
118
+ 'providerScopeId',
119
+ 'cloudAccountId',
120
+ 'resourceId',
121
+ 'capability',
122
+ 'suggestedDefinition',
123
+ 'projectionAvailability',
124
+ 'projection',
125
+ 'projectionUnavailableReason',
126
+ 'observedAtUtc',
127
+ ];
128
+ if (!(0, resourceStrategyValidationShared_1.hasOnlyKeys)(value, commonKeys) ||
129
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(value.opportunityId, 200) ||
130
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(value.provider, 100) ||
131
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(value.providerScopeId, 300) ||
132
+ !(0, resourceStrategyValidationShared_1.isOptionalBoundedString)(value.cloudAccountId, 200) ||
133
+ !(0, resourceStrategyValidationShared_1.isBoundedString)(value.resourceId, 2000) ||
134
+ !(0, resourceStrategyValidationShared_1.isCapabilityRef)(value.capability) ||
135
+ (value.suggestedDefinition !== undefined && !(0, resourceStrategyScheduleValidation_1.isResourceStrategyWeeklyScheduleSuggestion)(value.suggestedDefinition)) ||
136
+ !(0, resourceStrategyValidationShared_1.isIsoTimestamp)(value.observedAtUtc)) {
137
+ return false;
138
+ }
139
+ if (value.suggestedDefinition !== undefined) {
140
+ const suggestion = value.suggestedDefinition;
141
+ if (suggestion.capability.capabilityId !== value.capability.capabilityId ||
142
+ suggestion.capability.capabilityVersion !== value.capability.capabilityVersion) {
143
+ return false;
144
+ }
145
+ }
146
+ if (value.projectionAvailability === 'available') {
147
+ return isScenarioMoneyProjection(value.projection) && value.projectionUnavailableReason === undefined;
148
+ }
149
+ return (value.projectionAvailability === 'unavailable' && value.projection === undefined && isPreviewUnavailableReason(value.projectionUnavailableReason));
150
+ }
151
+ //# sourceMappingURL=resourceStrategyFinancialValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceStrategyFinancialValidation.js","sourceRoot":"","sources":["../../src/scheduler/resourceStrategyFinancialValidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ResourceSchedulePermissionManifestConsent, type ResourceSchedulePermissionManifestProjection } from './resourceStrategyContracts';
2
+ export declare function isResourceSchedulePermissionManifestProjection(value: unknown): value is ResourceSchedulePermissionManifestProjection;
3
+ export declare function isResourceSchedulePermissionManifestConsent(value: unknown): value is ResourceSchedulePermissionManifestConsent;
4
+ //# sourceMappingURL=resourceStrategyPermissionValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceStrategyPermissionValidation.d.ts","sourceRoot":"","sources":["../../src/scheduler/resourceStrategyPermissionValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,yCAAyC,EAC9C,KAAK,4CAA4C,EAElD,MAAM,6BAA6B,CAAC;AAWrC,wBAAgB,8CAA8C,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,4CAA4C,CA8JpI;AA8CD,wBAAgB,2CAA2C,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,yCAAyC,CAa9H"}