@spottoai/types-package 1.0.2-beta.423 → 1.0.2-beta.425

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 (32) hide show
  1. package/dist/azure/governance.d.ts +5 -0
  2. package/dist/azure/governance.d.ts.map +1 -1
  3. package/dist/azure/reportEvidence.d.ts +19 -3
  4. package/dist/azure/reportEvidence.d.ts.map +1 -1
  5. package/dist/azure/reportEvidence.js.map +1 -1
  6. package/dist/azure/reportEvidenceValidation.d.ts.map +1 -1
  7. package/dist/azure/reportEvidenceValidation.js +14 -0
  8. package/dist/azure/reportEvidenceValidation.js.map +1 -1
  9. package/dist/esm/azure/reportEvidenceValidation.js +14 -0
  10. package/dist/esm/index.js +3 -0
  11. package/dist/esm/scheduler/bastionSchedule.js +1 -0
  12. package/dist/esm/scheduler/bastionScheduleProfile.js +206 -0
  13. package/dist/esm/scheduler/bastionScheduleValidation.js +399 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/scheduler/bastionSchedule.d.ts +113 -0
  19. package/dist/scheduler/bastionSchedule.d.ts.map +1 -0
  20. package/dist/scheduler/bastionSchedule.js +3 -0
  21. package/dist/scheduler/bastionSchedule.js.map +1 -0
  22. package/dist/scheduler/bastionScheduleProfile.d.ts +24 -0
  23. package/dist/scheduler/bastionScheduleProfile.d.ts.map +1 -0
  24. package/dist/scheduler/bastionScheduleProfile.js +210 -0
  25. package/dist/scheduler/bastionScheduleProfile.js.map +1 -0
  26. package/dist/scheduler/bastionScheduleValidation.d.ts +10 -0
  27. package/dist/scheduler/bastionScheduleValidation.d.ts.map +1 -0
  28. package/dist/scheduler/bastionScheduleValidation.js +410 -0
  29. package/dist/scheduler/bastionScheduleValidation.js.map +1 -0
  30. package/dist/scheduler/scheduler.d.ts +159 -6
  31. package/dist/scheduler/scheduler.d.ts.map +1 -1
  32. package/package.json +3 -2
@@ -0,0 +1,410 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBastionAvailabilityWeeklyScheduleWriteRequest = isBastionAvailabilityWeeklyScheduleWriteRequest;
4
+ exports.isBastionAvailabilityWeeklyScheduleDefinition = isBastionAvailabilityWeeklyScheduleDefinition;
5
+ exports.isBastionScheduleRun = isBastionScheduleRun;
6
+ exports.isBastionScheduleControlV1 = isBastionScheduleControlV1;
7
+ exports.isBastionScheduleReadinessV1 = isBastionScheduleReadinessV1;
8
+ exports.isBastionAvailabilityStatusV1 = isBastionAvailabilityStatusV1;
9
+ exports.isBastionPauseResponse = isBastionPauseResponse;
10
+ exports.isBastionRestoreNowResponse = isBastionRestoreNowResponse;
11
+ const MAX_ID_LENGTH = 2048;
12
+ const MAX_NAME_LENGTH = 120;
13
+ const MAX_NOTES_LENGTH = 1000;
14
+ const MAX_ACTION_COUNT = 64;
15
+ const MAX_WINDOWS = 14;
16
+ const MAX_WRITE_REQUEST_BYTES = 32 * 1024;
17
+ const MAX_PUBLIC_DTO_BYTES = 16 * 1024;
18
+ const MINUTES_PER_WEEK = 7 * 24 * 60;
19
+ const readinessStatuses = new Set(['confirmed', 'missing', 'unknown', 'unsupported']);
20
+ const readinessReasonCodes = new Set([
21
+ 'feature-disabled',
22
+ 'resource-not-found',
23
+ 'unsupported-profile',
24
+ 'unsupported-region',
25
+ 'missing-permission',
26
+ 'permission-unknown',
27
+ 'management-lock',
28
+ ]);
29
+ const availabilityPhases = new Set(['available', 'removing', 'absent', 'restoring']);
30
+ const availabilityResults = new Set(['succeeded', 'skipped', 'blocked', 'failed', 'pending']);
31
+ const availabilityReasonCodes = new Set([
32
+ ...readinessReasonCodes,
33
+ 'active-sessions',
34
+ 'session-state-unknown',
35
+ 'snapshot-failed',
36
+ 'active-snapshot-missing',
37
+ 'source-drift',
38
+ 'dependency-missing',
39
+ 'dependency-drift',
40
+ 'stale-run',
41
+ 'continuation-overdue',
42
+ 'azure-operation-failed',
43
+ 'restore-timeout',
44
+ ]);
45
+ function isPlainRecord(value) {
46
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
47
+ return false;
48
+ }
49
+ try {
50
+ const prototype = Object.getPrototypeOf(value);
51
+ return prototype === Object.prototype || prototype === null;
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ function hasExactFields(value, requiredFields, optionalFields = []) {
58
+ if (!isPlainRecord(value)) {
59
+ return false;
60
+ }
61
+ try {
62
+ const allowedFields = new Set([...requiredFields, ...optionalFields]);
63
+ const keys = Object.keys(value);
64
+ return requiredFields.every(field => Object.prototype.hasOwnProperty.call(value, field)) && keys.every(field => allowedFields.has(field));
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ }
70
+ function utf8ByteLength(value) {
71
+ let bytes = 0;
72
+ for (let index = 0; index < value.length; index += 1) {
73
+ const code = value.charCodeAt(index);
74
+ if (code <= 0x7f) {
75
+ bytes += 1;
76
+ }
77
+ else if (code <= 0x7ff) {
78
+ bytes += 2;
79
+ }
80
+ else if (code >= 0xd800 &&
81
+ code <= 0xdbff &&
82
+ index + 1 < value.length &&
83
+ value.charCodeAt(index + 1) >= 0xdc00 &&
84
+ value.charCodeAt(index + 1) <= 0xdfff) {
85
+ bytes += 4;
86
+ index += 1;
87
+ }
88
+ else {
89
+ bytes += 3;
90
+ }
91
+ }
92
+ return bytes;
93
+ }
94
+ function isWithinJsonSize(value, maximumBytes) {
95
+ try {
96
+ const json = JSON.stringify(value);
97
+ return typeof json === 'string' && utf8ByteLength(json) <= maximumBytes;
98
+ }
99
+ catch {
100
+ return false;
101
+ }
102
+ }
103
+ function isBoundedString(value, maximumLength, allowEmpty = false) {
104
+ return typeof value === 'string' && value.length <= maximumLength && (allowEmpty || value.trim().length > 0);
105
+ }
106
+ function isPositiveSafeInteger(value) {
107
+ return Number.isSafeInteger(value) && typeof value === 'number' && value > 0;
108
+ }
109
+ function isIsoUtcTimestamp(value) {
110
+ if (typeof value !== 'string' || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/.test(value)) {
111
+ return false;
112
+ }
113
+ const parsed = new Date(value);
114
+ if (!Number.isFinite(parsed.getTime())) {
115
+ return false;
116
+ }
117
+ const normalizedInput = value.includes('.')
118
+ ? value.replace(/\.(\d{1,3})Z$/, (_, fraction) => `.${fraction.padEnd(3, '0')}Z`)
119
+ : value.replace('Z', '.000Z');
120
+ return parsed.toISOString() === normalizedInput;
121
+ }
122
+ function localTimeToMinutes(value) {
123
+ if (typeof value !== 'string' || !/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(value)) {
124
+ return undefined;
125
+ }
126
+ const [hours, minutes] = value.split(':');
127
+ return Number(hours) * 60 + Number(minutes);
128
+ }
129
+ function isUniqueBoundedStringArray(value, minimumLength, maximumLength) {
130
+ if (!Array.isArray(value) ||
131
+ value.length < minimumLength ||
132
+ value.length > maximumLength ||
133
+ !value.every(item => isBoundedString(item, MAX_ID_LENGTH))) {
134
+ return false;
135
+ }
136
+ return new Set(value).size === value.length;
137
+ }
138
+ function isAvailabilityConfiguration(value) {
139
+ if (!hasExactFields(value, ['accessWindows'])) {
140
+ return false;
141
+ }
142
+ const windows = value.accessWindows;
143
+ if (!Array.isArray(windows) || windows.length < 1 || windows.length > MAX_WINDOWS) {
144
+ return false;
145
+ }
146
+ const windowIds = new Set();
147
+ const intervals = [];
148
+ for (const window of windows) {
149
+ if (!hasExactFields(window, ['windowId', 'daysOfWeek', 'accessStartTimeLocal', 'accessEndTimeLocal']) ||
150
+ !isBoundedString(window.windowId, MAX_ID_LENGTH) ||
151
+ windowIds.has(window.windowId)) {
152
+ return false;
153
+ }
154
+ windowIds.add(window.windowId);
155
+ if (!Array.isArray(window.daysOfWeek) ||
156
+ window.daysOfWeek.length < 1 ||
157
+ window.daysOfWeek.length > 7 ||
158
+ !window.daysOfWeek.every(day => Number.isInteger(day) && typeof day === 'number' && day >= 0 && day <= 6) ||
159
+ new Set(window.daysOfWeek).size !== window.daysOfWeek.length) {
160
+ return false;
161
+ }
162
+ const startTime = localTimeToMinutes(window.accessStartTimeLocal);
163
+ const endTime = localTimeToMinutes(window.accessEndTimeLocal);
164
+ if (startTime === undefined || endTime === undefined || startTime === endTime) {
165
+ return false;
166
+ }
167
+ for (const day of window.daysOfWeek) {
168
+ const start = day * 24 * 60 + startTime;
169
+ const end = day * 24 * 60 + endTime + (endTime <= startTime ? 24 * 60 : 0);
170
+ intervals.push({ start, end });
171
+ }
172
+ }
173
+ return !intervals.some((left, leftIndex) => intervals.some((right, rightIndex) => {
174
+ if (rightIndex <= leftIndex) {
175
+ return false;
176
+ }
177
+ return [-MINUTES_PER_WEEK, 0, MINUTES_PER_WEEK].some(offset => {
178
+ const shiftedStart = right.start + offset;
179
+ const shiftedEnd = right.end + offset;
180
+ return left.start < shiftedEnd && shiftedStart < left.end;
181
+ });
182
+ }));
183
+ }
184
+ function isBastionAvailabilityWeeklyScheduleWriteRequest(value) {
185
+ if (!isWithinJsonSize(value, MAX_WRITE_REQUEST_BYTES) ||
186
+ !hasExactFields(value, [
187
+ 'definitionType',
188
+ 'name',
189
+ 'providerName',
190
+ 'providerScopeId',
191
+ 'cloudAccountId',
192
+ 'resourceId',
193
+ 'timezone',
194
+ 'acknowledgementVersion',
195
+ 'configuration',
196
+ ], ['targetResourceType', 'notes'])) {
197
+ return false;
198
+ }
199
+ return (value.definitionType === 'bastion-availability-weekly' &&
200
+ isBoundedString(value.name, MAX_NAME_LENGTH) &&
201
+ isBoundedString(value.providerName, MAX_ID_LENGTH) &&
202
+ isBoundedString(value.providerScopeId, MAX_ID_LENGTH) &&
203
+ isBoundedString(value.cloudAccountId, MAX_ID_LENGTH) &&
204
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
205
+ isBoundedString(value.timezone, MAX_ID_LENGTH) &&
206
+ (value.targetResourceType === undefined || value.targetResourceType === 'Microsoft.Network/bastionHosts') &&
207
+ (value.notes === undefined || isBoundedString(value.notes, MAX_NOTES_LENGTH, true)) &&
208
+ value.acknowledgementVersion === 'bastion-delete-recreate-v1' &&
209
+ isAvailabilityConfiguration(value.configuration));
210
+ }
211
+ function isBastionAvailabilityWeeklyScheduleDefinition(value) {
212
+ if (!isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) ||
213
+ !hasExactFields(value, [
214
+ 'definitionId',
215
+ 'definitionClass',
216
+ 'definitionType',
217
+ 'companyId',
218
+ 'providerName',
219
+ 'providerScopeId',
220
+ 'cloudAccountId',
221
+ 'resourceId',
222
+ 'targetResourceType',
223
+ 'name',
224
+ 'timezone',
225
+ 'status',
226
+ 'definitionRevision',
227
+ 'acknowledgementVersion',
228
+ 'configuration',
229
+ 'createdAtUtc',
230
+ 'updatedAtUtc',
231
+ ], ['notes', 'compiledScheduleIds', 'nextRunUtc', 'lastRunAtUtc', 'lastSuccessfulRunAtUtc', 'lastRunStatus', 'createdByUserId', 'updatedByUserId'])) {
232
+ return false;
233
+ }
234
+ return (value.definitionId !== undefined &&
235
+ isBoundedString(value.definitionId, MAX_ID_LENGTH) &&
236
+ value.definitionClass === 'composite' &&
237
+ value.definitionType === 'bastion-availability-weekly' &&
238
+ isBoundedString(value.companyId, MAX_ID_LENGTH) &&
239
+ isBoundedString(value.providerName, MAX_ID_LENGTH) &&
240
+ isBoundedString(value.providerScopeId, MAX_ID_LENGTH) &&
241
+ isBoundedString(value.cloudAccountId, MAX_ID_LENGTH) &&
242
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
243
+ value.targetResourceType === 'Microsoft.Network/bastionHosts' &&
244
+ isBoundedString(value.name, MAX_NAME_LENGTH) &&
245
+ isBoundedString(value.timezone, MAX_ID_LENGTH) &&
246
+ (value.status === 'active' || value.status === 'paused') &&
247
+ isPositiveSafeInteger(value.definitionRevision) &&
248
+ value.acknowledgementVersion === 'bastion-delete-recreate-v1' &&
249
+ isAvailabilityConfiguration(value.configuration) &&
250
+ (value.notes === undefined || isBoundedString(value.notes, MAX_NOTES_LENGTH, true)) &&
251
+ (value.compiledScheduleIds === undefined || isUniqueBoundedStringArray(value.compiledScheduleIds, 0, 28)) &&
252
+ (value.nextRunUtc === undefined || isIsoUtcTimestamp(value.nextRunUtc)) &&
253
+ (value.lastRunAtUtc === undefined || isIsoUtcTimestamp(value.lastRunAtUtc)) &&
254
+ (value.lastSuccessfulRunAtUtc === undefined || isIsoUtcTimestamp(value.lastSuccessfulRunAtUtc)) &&
255
+ (value.lastRunStatus === undefined ||
256
+ value.lastRunStatus === 'success' ||
257
+ value.lastRunStatus === 'dispatch-failed' ||
258
+ value.lastRunStatus === 'dispatching') &&
259
+ isIsoUtcTimestamp(value.createdAtUtc) &&
260
+ isIsoUtcTimestamp(value.updatedAtUtc) &&
261
+ (value.createdByUserId === undefined || isBoundedString(value.createdByUserId, MAX_ID_LENGTH)) &&
262
+ (value.updatedByUserId === undefined || isBoundedString(value.updatedByUserId, MAX_ID_LENGTH)));
263
+ }
264
+ function isBastionScheduleRun(value) {
265
+ if (!isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) ||
266
+ !isPlainRecord(value) ||
267
+ (value['compiledOperation'] !== 'remove' && value['compiledOperation'] !== 'restore')) {
268
+ return false;
269
+ }
270
+ const commonRequiredFields = [
271
+ 'scheduleId',
272
+ 'scheduleRunId',
273
+ 'targetType',
274
+ 'selectorType',
275
+ 'scheduleType',
276
+ 'providerScopeId',
277
+ 'cloudAccountId',
278
+ 'resourceId',
279
+ 'definitionId',
280
+ 'definitionClass',
281
+ 'definitionType',
282
+ 'compiledRuleId',
283
+ 'compiledOperation',
284
+ 'definitionRevision',
285
+ 'scheduledForUtc',
286
+ ];
287
+ const requiredFields = value['compiledOperation'] === 'remove' ? [...commonRequiredFields, 'controlGeneration'] : commonRequiredFields;
288
+ if (!hasExactFields(value, requiredFields, [
289
+ 'scheduleName',
290
+ 'scheduleGroupId',
291
+ 'scheduleGroupType',
292
+ 'targetCount',
293
+ 'createdByUserId',
294
+ 'updatedByUserId',
295
+ ])) {
296
+ return false;
297
+ }
298
+ return (isBoundedString(value.scheduleId, MAX_ID_LENGTH) &&
299
+ isBoundedString(value.scheduleRunId, MAX_ID_LENGTH) &&
300
+ (value.scheduleName === undefined || isBoundedString(value.scheduleName, MAX_NAME_LENGTH)) &&
301
+ value.targetType === 'resource-operation' &&
302
+ value.selectorType === 'single-resource' &&
303
+ value.scheduleType === 'recurring' &&
304
+ isBoundedString(value.providerScopeId, MAX_ID_LENGTH) &&
305
+ isBoundedString(value.cloudAccountId, MAX_ID_LENGTH) &&
306
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
307
+ isBoundedString(value.definitionId, MAX_ID_LENGTH) &&
308
+ value.definitionClass === 'composite' &&
309
+ value.definitionType === 'bastion-availability-weekly' &&
310
+ isBoundedString(value.compiledRuleId, MAX_ID_LENGTH) &&
311
+ isPositiveSafeInteger(value.definitionRevision) &&
312
+ isIsoUtcTimestamp(value.scheduledForUtc) &&
313
+ (value.scheduleGroupId === undefined || isBoundedString(value.scheduleGroupId, MAX_ID_LENGTH)) &&
314
+ (value.scheduleGroupType === undefined || value.scheduleGroupType === 'resource-schedule-definition') &&
315
+ (value.targetCount === undefined || value.targetCount === 1) &&
316
+ (value.createdByUserId === undefined || isBoundedString(value.createdByUserId, MAX_ID_LENGTH)) &&
317
+ (value.updatedByUserId === undefined || isBoundedString(value.updatedByUserId, MAX_ID_LENGTH)) &&
318
+ (value.compiledOperation === 'restore' || isPositiveSafeInteger(value.controlGeneration)));
319
+ }
320
+ function isBastionScheduleControlV1(value) {
321
+ return (isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) &&
322
+ hasExactFields(value, [
323
+ 'schemaVersion',
324
+ 'companyId',
325
+ 'resourceId',
326
+ 'definitionId',
327
+ 'definitionRevision',
328
+ 'controlGeneration',
329
+ 'desiredStatus',
330
+ 'updatedAtUtc',
331
+ ]) &&
332
+ value.schemaVersion === 1 &&
333
+ isBoundedString(value.companyId, MAX_ID_LENGTH) &&
334
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
335
+ isBoundedString(value.definitionId, MAX_ID_LENGTH) &&
336
+ isPositiveSafeInteger(value.definitionRevision) &&
337
+ isPositiveSafeInteger(value.controlGeneration) &&
338
+ (value.desiredStatus === 'active' || value.desiredStatus === 'paused') &&
339
+ isIsoUtcTimestamp(value.updatedAtUtc));
340
+ }
341
+ function isBastionScheduleReadinessV1(value) {
342
+ if (!isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) ||
343
+ !hasExactFields(value, ['schemaVersion', 'status', 'companyId', 'cloudAccountId', 'subscriptionId', 'resourceId', 'requiredActions', 'missingActions', 'checkedAtUtc'], ['reasonCode'])) {
344
+ return false;
345
+ }
346
+ const requiredActions = value.requiredActions;
347
+ const missingActions = value.missingActions;
348
+ if (value.schemaVersion !== 1 ||
349
+ typeof value.status !== 'string' ||
350
+ !readinessStatuses.has(value.status) ||
351
+ !isBoundedString(value.companyId, MAX_ID_LENGTH) ||
352
+ !isBoundedString(value.cloudAccountId, MAX_ID_LENGTH) ||
353
+ !isBoundedString(value.subscriptionId, MAX_ID_LENGTH) ||
354
+ !isBoundedString(value.resourceId, MAX_ID_LENGTH) ||
355
+ !isUniqueBoundedStringArray(requiredActions, 1, MAX_ACTION_COUNT) ||
356
+ !isUniqueBoundedStringArray(missingActions, 0, MAX_ACTION_COUNT) ||
357
+ !missingActions.every(action => requiredActions.includes(action)) ||
358
+ (value.status === 'confirmed' && missingActions.length !== 0) ||
359
+ (value.status === 'missing' && missingActions.length === 0) ||
360
+ !isIsoUtcTimestamp(value.checkedAtUtc)) {
361
+ return false;
362
+ }
363
+ return value.reasonCode === undefined || (typeof value.reasonCode === 'string' && readinessReasonCodes.has(value.reasonCode));
364
+ }
365
+ function isBastionAvailabilityStatusV1(value) {
366
+ return (isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) &&
367
+ hasExactFields(value, [
368
+ 'schemaVersion',
369
+ 'companyId',
370
+ 'resourceId',
371
+ 'definitionId',
372
+ 'definitionRevision',
373
+ 'phase',
374
+ 'lastOperation',
375
+ 'lastResult',
376
+ 'restoreAvailable',
377
+ 'updatedAtUtc',
378
+ ], ['reasonCode', 'snapshotCapturedAtUtc']) &&
379
+ value.schemaVersion === 1 &&
380
+ isBoundedString(value.companyId, MAX_ID_LENGTH) &&
381
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
382
+ isBoundedString(value.definitionId, MAX_ID_LENGTH) &&
383
+ isPositiveSafeInteger(value.definitionRevision) &&
384
+ typeof value.phase === 'string' &&
385
+ availabilityPhases.has(value.phase) &&
386
+ (value.lastOperation === 'remove' || value.lastOperation === 'restore') &&
387
+ typeof value.lastResult === 'string' &&
388
+ availabilityResults.has(value.lastResult) &&
389
+ (value.reasonCode === undefined || (typeof value.reasonCode === 'string' && availabilityReasonCodes.has(value.reasonCode))) &&
390
+ (value.snapshotCapturedAtUtc === undefined || isIsoUtcTimestamp(value.snapshotCapturedAtUtc)) &&
391
+ typeof value.restoreAvailable === 'boolean' &&
392
+ isIsoUtcTimestamp(value.updatedAtUtc));
393
+ }
394
+ function isBastionPauseResponse(value) {
395
+ return (isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) &&
396
+ hasExactFields(value, ['status', 'resourceId', 'controlGeneration', 'requestedAtUtc']) &&
397
+ (value.status === 'paused' || value.status === 'pause-pending') &&
398
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
399
+ isPositiveSafeInteger(value.controlGeneration) &&
400
+ isIsoUtcTimestamp(value.requestedAtUtc));
401
+ }
402
+ function isBastionRestoreNowResponse(value) {
403
+ return (isWithinJsonSize(value, MAX_PUBLIC_DTO_BYTES) &&
404
+ hasExactFields(value, ['accepted', 'scheduleRunId', 'resourceId', 'requestedAtUtc']) &&
405
+ typeof value.accepted === 'boolean' &&
406
+ isBoundedString(value.scheduleRunId, MAX_ID_LENGTH) &&
407
+ isBoundedString(value.resourceId, MAX_ID_LENGTH) &&
408
+ isIsoUtcTimestamp(value.requestedAtUtc));
409
+ }
410
+ //# sourceMappingURL=bastionScheduleValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bastionScheduleValidation.js","sourceRoot":"","sources":["../../src/scheduler/bastionScheduleValidation.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
- /** Scheduler contracts that are not part of resource-strategy scheduling. */
2
- export type ScheduleTargetType = 'recommendation-action' | 'provider-scope-operation';
1
+ import type { BastionAvailabilityWeeklyScheduleDefinition, BastionAvailabilityWeeklyScheduleWriteRequest, BastionScheduleRun } from './bastionSchedule';
2
+ export type ScheduleTargetType = 'recommendation-action' | 'resource-operation' | 'provider-scope-operation';
3
3
  export type ScheduleSelectorType = 'single-resource' | 'selected-resources' | 'provider-scope';
4
4
  export type ScheduleType = 'once' | 'recurring';
5
5
  export type ScheduleStatus = 'active' | 'paused';
6
6
  export type ScheduleRunStatus = 'success' | 'dispatch-failed' | 'dispatching';
7
7
  export type ScheduleHistoryEventType = 'dispatch-succeeded' | 'dispatch-failed';
8
+ export type ScheduleDefinitionClass = 'atomic' | 'composite';
9
+ export type ScheduleDefinitionType = 'recommendation-action' | 'resource-operation' | 'vm-runtime-weekly' | 'bastion-availability-weekly';
10
+ export type ResourceScheduleGroupType = 'resource-schedule-definition';
8
11
  export interface ScheduleTargetBase {
9
12
  companyId: string;
10
13
  providerName: string;
@@ -13,7 +16,16 @@ export interface ScheduleTargetBase {
13
16
  resourceId?: string;
14
17
  recommendationId?: string;
15
18
  recommendationAction?: string;
19
+ operation?: string;
20
+ actionDefinitionId?: string;
16
21
  targetCount?: number;
22
+ definitionId?: string;
23
+ definitionClass?: ScheduleDefinitionClass;
24
+ definitionType?: ScheduleDefinitionType;
25
+ scheduleGroupId?: string;
26
+ scheduleGroupType?: ResourceScheduleGroupType;
27
+ compiledRuleId?: string;
28
+ compiledOperation?: string;
17
29
  }
18
30
  export interface ScheduleSummary extends ScheduleTargetBase {
19
31
  scheduleId: string;
@@ -55,7 +67,7 @@ export interface ScheduleHistoryItem {
55
67
  providerScopeId: string;
56
68
  message?: string;
57
69
  }
58
- export interface SchedulerBatchRunItem {
70
+ export interface SchedulerBatchRunItemBase {
59
71
  scheduleId: string;
60
72
  scheduleRunId: string;
61
73
  scheduleName?: string;
@@ -65,13 +77,25 @@ export interface SchedulerBatchRunItem {
65
77
  providerScopeId: string;
66
78
  cloudAccountId?: string;
67
79
  resourceId?: string;
68
- selectedResourceIds?: string[];
69
- recommendationId?: string;
70
- recommendationAction?: string;
80
+ definitionId?: string;
81
+ definitionClass?: ScheduleDefinitionClass;
82
+ scheduleGroupId?: string;
83
+ scheduleGroupType?: ResourceScheduleGroupType;
84
+ compiledRuleId?: string;
85
+ compiledOperation?: string;
71
86
  targetCount?: number;
72
87
  createdByUserId?: string;
73
88
  updatedByUserId?: string;
74
89
  }
90
+ export interface NonBastionSchedulerBatchRunItem extends SchedulerBatchRunItemBase {
91
+ selectedResourceIds?: string[];
92
+ recommendationId?: string;
93
+ operation?: string;
94
+ actionDefinitionId?: string;
95
+ recommendationAction?: string;
96
+ definitionType?: Exclude<ScheduleDefinitionType, 'bastion-availability-weekly'>;
97
+ }
98
+ export type SchedulerBatchRunItem = NonBastionSchedulerBatchRunItem | BastionScheduleRun;
75
99
  export interface SchedulerBatchQueueMessage {
76
100
  batchId: string;
77
101
  companyId: string;
@@ -94,10 +118,19 @@ export interface BaseScheduleWriteRequest {
94
118
  resourceId?: string;
95
119
  recommendationId?: string;
96
120
  recommendationAction?: string;
121
+ operation?: string;
122
+ actionDefinitionId?: string;
97
123
  targetCount?: number;
98
124
  selectedResourceIds?: string[];
99
125
  notes?: string;
100
126
  configuration?: Record<string, unknown>;
127
+ definitionId?: string;
128
+ definitionClass?: ScheduleDefinitionClass;
129
+ definitionType?: ScheduleDefinitionType;
130
+ scheduleGroupId?: string;
131
+ scheduleGroupType?: ResourceScheduleGroupType;
132
+ compiledRuleId?: string;
133
+ compiledOperation?: string;
101
134
  }
102
135
  export interface OnceScheduleWriteRequest extends BaseScheduleWriteRequest {
103
136
  scheduleType: 'once';
@@ -111,4 +144,124 @@ export interface RecurringScheduleWriteRequest extends BaseScheduleWriteRequest
111
144
  status?: ScheduleStatus;
112
145
  }
113
146
  export type ScheduleWriteRequest = OnceScheduleWriteRequest | RecurringScheduleWriteRequest;
147
+ export type ResourceScheduleStatus = ScheduleStatus;
148
+ export type VmRuntimeOperation = 'start' | 'deallocate';
149
+ export type WeekdayNumber = 0 | 1 | 2 | 3 | 4 | 5 | 6;
150
+ export interface VmRuntimeWeeklyRule {
151
+ ruleId: string;
152
+ daysOfWeek: WeekdayNumber[];
153
+ timeLocal: string;
154
+ }
155
+ export interface VmRuntimePreDeallocateGuardPolicy {
156
+ enabled: boolean;
157
+ metric: 'cpu';
158
+ thresholdPercent: number;
159
+ lookbackMinutes: number;
160
+ deferMinutes: number;
161
+ maxDeferralsPerDay?: number;
162
+ }
163
+ export interface ResourceScheduleExecutionPolicy {
164
+ preDeallocateGuard?: VmRuntimePreDeallocateGuardPolicy;
165
+ }
166
+ export interface VmRuntimeWeeklyConfiguration {
167
+ startRules: VmRuntimeWeeklyRule[];
168
+ deallocateRules: VmRuntimeWeeklyRule[];
169
+ }
170
+ export interface ResourceScheduleDefinitionBase {
171
+ definitionId: string;
172
+ definitionClass: ScheduleDefinitionClass;
173
+ definitionType: ScheduleDefinitionType;
174
+ companyId: string;
175
+ providerName: string;
176
+ providerScopeId: string;
177
+ cloudAccountId?: string;
178
+ resourceId?: string;
179
+ targetResourceType: string;
180
+ name: string;
181
+ timezone: string;
182
+ status: ResourceScheduleStatus;
183
+ notes?: string;
184
+ executionPolicy?: ResourceScheduleExecutionPolicy;
185
+ compiledScheduleIds?: string[];
186
+ nextRunUtc?: string;
187
+ lastRunAtUtc?: string;
188
+ lastSuccessfulRunAtUtc?: string;
189
+ lastRunStatus?: ScheduleRunStatus;
190
+ createdAtUtc: string;
191
+ updatedAtUtc: string;
192
+ createdByUserId?: string;
193
+ updatedByUserId?: string;
194
+ }
195
+ export interface AtomicResourceScheduleDefinition extends ResourceScheduleDefinitionBase {
196
+ definitionClass: 'atomic';
197
+ definitionType: 'recommendation-action' | 'resource-operation';
198
+ scheduleId?: string;
199
+ targetType: Extract<ScheduleTargetType, 'recommendation-action' | 'resource-operation'>;
200
+ selectorType: Extract<ScheduleSelectorType, 'single-resource' | 'selected-resources' | 'provider-scope'>;
201
+ scheduleType: ScheduleType;
202
+ localDateTime?: string;
203
+ cronExpression?: string;
204
+ recommendationId?: string;
205
+ recommendationAction?: string;
206
+ operation?: string;
207
+ actionDefinitionId?: string;
208
+ targetCount?: number;
209
+ selectedResourceIds?: string[];
210
+ configuration?: Record<string, unknown>;
211
+ }
212
+ export interface VmRuntimeWeeklyScheduleDefinition extends ResourceScheduleDefinitionBase {
213
+ definitionClass: 'composite';
214
+ definitionType: 'vm-runtime-weekly';
215
+ resourceId: string;
216
+ targetResourceType: 'Microsoft.Compute/virtualMachines';
217
+ configuration: VmRuntimeWeeklyConfiguration;
218
+ }
219
+ export type ResourceScheduleDefinition = AtomicResourceScheduleDefinition | VmRuntimeWeeklyScheduleDefinition | BastionAvailabilityWeeklyScheduleDefinition;
220
+ export interface ResourceScheduleListResponse {
221
+ results: ResourceScheduleDefinition[];
222
+ continuation?: {
223
+ nextPartitionKey?: string;
224
+ nextRowKey?: string;
225
+ };
226
+ }
227
+ export interface AtomicResourceScheduleWriteRequest {
228
+ definitionClass?: 'atomic';
229
+ definitionType: 'recommendation-action' | 'resource-operation';
230
+ name: string;
231
+ providerName: string;
232
+ providerScopeId: string;
233
+ cloudAccountId?: string;
234
+ resourceId?: string;
235
+ targetResourceType: string;
236
+ timezone?: string;
237
+ notes?: string;
238
+ executionPolicy?: ResourceScheduleExecutionPolicy;
239
+ targetType: Extract<ScheduleTargetType, 'recommendation-action' | 'resource-operation'>;
240
+ selectorType: Extract<ScheduleSelectorType, 'single-resource' | 'selected-resources' | 'provider-scope'>;
241
+ scheduleType: ScheduleType;
242
+ localDateTime?: string;
243
+ cronExpression?: string;
244
+ recommendationId?: string;
245
+ recommendationAction?: string;
246
+ operation?: string;
247
+ actionDefinitionId?: string;
248
+ targetCount?: number;
249
+ selectedResourceIds?: string[];
250
+ configuration?: Record<string, unknown>;
251
+ }
252
+ export interface VmRuntimeWeeklyScheduleWriteRequest {
253
+ definitionClass?: 'composite';
254
+ definitionType: 'vm-runtime-weekly';
255
+ name: string;
256
+ providerName: string;
257
+ providerScopeId: string;
258
+ cloudAccountId?: string;
259
+ resourceId: string;
260
+ targetResourceType?: 'Microsoft.Compute/virtualMachines';
261
+ timezone?: string;
262
+ notes?: string;
263
+ executionPolicy?: ResourceScheduleExecutionPolicy;
264
+ configuration: VmRuntimeWeeklyConfiguration;
265
+ }
266
+ export type ResourceScheduleDefinitionWriteRequest = AtomicResourceScheduleWriteRequest | VmRuntimeWeeklyScheduleWriteRequest | BastionAvailabilityWeeklyScheduleWriteRequest;
114
267
  //# sourceMappingURL=scheduler.d.ts.map