@ampsec/platform-client 84.28.4 → 84.30.0

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.
@@ -38,6 +38,8 @@ export * from './tenants.dto';
38
38
  export * from './tenantNotes.dto';
39
39
  export * from './tokens.dto';
40
40
  export * from './testEngagements.dto';
41
+ export * from './trainingSchedules.dto';
42
+ export * from './trainings.dto';
41
43
  export * from './users.dto';
42
44
  export * from './messagingChannels';
43
45
  export * from './cohort.dto';
@@ -54,6 +54,8 @@ __exportStar(require("./tenants.dto"), exports);
54
54
  __exportStar(require("./tenantNotes.dto"), exports);
55
55
  __exportStar(require("./tokens.dto"), exports);
56
56
  __exportStar(require("./testEngagements.dto"), exports);
57
+ __exportStar(require("./trainingSchedules.dto"), exports);
58
+ __exportStar(require("./trainings.dto"), exports);
57
59
  __exportStar(require("./users.dto"), exports);
58
60
  __exportStar(require("./messagingChannels"), exports);
59
61
  __exportStar(require("./cohort.dto"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,mDAAiC;AACjC,uDAAqC;AACrC,8CAA4B;AAC5B,iDAA+B;AAC/B,sDAAoC;AACpC,qDAAmC;AACnC,yDAAuC;AACvC,wCAAsB;AACtB,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC;AACzC,0DAAwC;AACxC,6CAA2B;AAC3B,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,yDAAuC;AACvC,qDAAmC;AACnC,8CAA4B;AAC5B,wCAAsB;AACtB,gDAA8B;AAC9B,qDAAmC;AACnC,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,gDAA8B;AAC9B,oDAAkC;AAClC,+CAA6B;AAC7B,wDAAsC;AACtC,8CAA4B;AAC5B,sDAAoC;AACpC,+CAA6B;AAC7B,wDAAsC;AACtC,sDAAoC;AACpC,iDAA+B;AAC/B,8DAA4C;AAC5C,yDAAuC;AACvC,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,6CAA2B;AAC3B,mDAAiC;AACjC,uDAAqC;AACrC,8CAA4B;AAC5B,iDAA+B;AAC/B,sDAAoC;AACpC,qDAAmC;AACnC,yDAAuC;AACvC,wCAAsB;AACtB,2DAAyC;AACzC,gEAA8C;AAC9C,2DAAyC;AACzC,0DAAwC;AACxC,6CAA2B;AAC3B,0CAAwB;AACxB,kDAAgC;AAChC,iDAA+B;AAC/B,yDAAuC;AACvC,qDAAmC;AACnC,8CAA4B;AAC5B,wCAAsB;AACtB,gDAA8B;AAC9B,qDAAmC;AACnC,6CAA2B;AAC3B,6CAA2B;AAC3B,kDAAgC;AAChC,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,uDAAqC;AACrC,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,gDAA8B;AAC9B,oDAAkC;AAClC,+CAA6B;AAC7B,wDAAsC;AACtC,0DAAwC;AACxC,kDAAgC;AAChC,8CAA4B;AAC5B,sDAAoC;AACpC,+CAA6B;AAC7B,wDAAsC;AACtC,sDAAoC;AACpC,iDAA+B;AAC/B,8DAA4C;AAC5C,yDAAuC;AACvC,6DAA2C"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { ChangeAwareDto, ChangeAwareUpsertDto } from './base.dto';
2
+ import { BaseDto, BaseUpsertDto } from './base.dto';
3
3
  /**
4
4
  * ------------------------
5
5
  * Base TagSpec schema
@@ -66,7 +66,7 @@ export declare const _TagSpecUpsertDto: z.ZodObject<{
66
66
  config?: any;
67
67
  notify?: boolean | undefined;
68
68
  }>;
69
- export type TagSpecUpsertDto = ChangeAwareUpsertDto & z.infer<typeof _TagSpecUpsertDto>;
69
+ export type TagSpecUpsertDto = BaseUpsertDto & z.infer<typeof _TagSpecUpsertDto>;
70
70
  /**
71
71
  * ------------------------
72
72
  * Read DTO
@@ -104,7 +104,7 @@ export declare const _TagSpecDto: z.ZodObject<z.objectUtil.extendShape<{
104
104
  config?: any;
105
105
  notify?: boolean | undefined;
106
106
  }>;
107
- export type TagSpecDto = ChangeAwareDto & z.infer<typeof _TagSpecDto>;
107
+ export type TagSpecDto = BaseDto & z.infer<typeof _TagSpecDto>;
108
108
  /**
109
109
  * ------------------------
110
110
  * Composite DTO
@@ -0,0 +1,324 @@
1
+ import { z } from 'zod';
2
+ import { BaseDto, BaseUpsertDto } from './base.dto';
3
+ /**
4
+ * ------------------------
5
+ * Enums
6
+ * ------------------------
7
+ */
8
+ export declare const TrainingScheduleStatus: z.ZodEnum<["enabled", "disabled"]>;
9
+ export declare const TrainingFrequency: z.ZodEnum<["quarterly", "every_6_months", "yearly"]>;
10
+ /**
11
+ * ------------------------
12
+ * Schedule Config
13
+ * ------------------------
14
+ */
15
+ export declare const _ScheduleConfig: z.ZodEffects<z.ZodEffects<z.ZodObject<{
16
+ frequency: z.ZodEnum<["quarterly", "every_6_months", "yearly"]>;
17
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
18
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
19
+ }, "strip", z.ZodTypeAny, {
20
+ frequency: "quarterly" | "every_6_months" | "yearly";
21
+ dayOfMonth?: number | undefined;
22
+ dayOfWeek?: number | undefined;
23
+ }, {
24
+ frequency: "quarterly" | "every_6_months" | "yearly";
25
+ dayOfMonth?: number | undefined;
26
+ dayOfWeek?: number | undefined;
27
+ }>, {
28
+ frequency: "quarterly" | "every_6_months" | "yearly";
29
+ dayOfMonth?: number | undefined;
30
+ dayOfWeek?: number | undefined;
31
+ }, {
32
+ frequency: "quarterly" | "every_6_months" | "yearly";
33
+ dayOfMonth?: number | undefined;
34
+ dayOfWeek?: number | undefined;
35
+ }>, {
36
+ frequency: "quarterly" | "every_6_months" | "yearly";
37
+ dayOfMonth?: number | undefined;
38
+ dayOfWeek?: number | undefined;
39
+ }, {
40
+ frequency: "quarterly" | "every_6_months" | "yearly";
41
+ dayOfMonth?: number | undefined;
42
+ dayOfWeek?: number | undefined;
43
+ }>;
44
+ /**
45
+ * ------------------------
46
+ * Base Training Schedule
47
+ * ------------------------
48
+ */
49
+ export declare const _TrainingScheduleBase: z.ZodObject<{
50
+ /** Tenant ID */
51
+ tid: z.ZodString;
52
+ /** Schedule name */
53
+ name: z.ZodString;
54
+ /** Optional description */
55
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ /** Enabled / Disabled */
57
+ status: z.ZodDefault<z.ZodEnum<["enabled", "disabled"]>>;
58
+ /** Training metadata */
59
+ trainingConfig: z.ZodObject<{
60
+ subject: z.ZodString;
61
+ videoUrl: z.ZodString;
62
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ subject: string;
65
+ videoUrl: string;
66
+ thumbnailUrl?: string | undefined;
67
+ }, {
68
+ subject: string;
69
+ videoUrl: string;
70
+ thumbnailUrl?: string | undefined;
71
+ }>;
72
+ /** Schedule rules */
73
+ scheduleConfig: z.ZodEffects<z.ZodEffects<z.ZodObject<{
74
+ frequency: z.ZodEnum<["quarterly", "every_6_months", "yearly"]>;
75
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
76
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ frequency: "quarterly" | "every_6_months" | "yearly";
79
+ dayOfMonth?: number | undefined;
80
+ dayOfWeek?: number | undefined;
81
+ }, {
82
+ frequency: "quarterly" | "every_6_months" | "yearly";
83
+ dayOfMonth?: number | undefined;
84
+ dayOfWeek?: number | undefined;
85
+ }>, {
86
+ frequency: "quarterly" | "every_6_months" | "yearly";
87
+ dayOfMonth?: number | undefined;
88
+ dayOfWeek?: number | undefined;
89
+ }, {
90
+ frequency: "quarterly" | "every_6_months" | "yearly";
91
+ dayOfMonth?: number | undefined;
92
+ dayOfWeek?: number | undefined;
93
+ }>, {
94
+ frequency: "quarterly" | "every_6_months" | "yearly";
95
+ dayOfMonth?: number | undefined;
96
+ dayOfWeek?: number | undefined;
97
+ }, {
98
+ frequency: "quarterly" | "every_6_months" | "yearly";
99
+ dayOfMonth?: number | undefined;
100
+ dayOfWeek?: number | undefined;
101
+ }>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ name: string;
104
+ status: "enabled" | "disabled";
105
+ tid: string;
106
+ scheduleConfig: {
107
+ frequency: "quarterly" | "every_6_months" | "yearly";
108
+ dayOfMonth?: number | undefined;
109
+ dayOfWeek?: number | undefined;
110
+ };
111
+ trainingConfig: {
112
+ subject: string;
113
+ videoUrl: string;
114
+ thumbnailUrl?: string | undefined;
115
+ };
116
+ description?: string | null | undefined;
117
+ }, {
118
+ name: string;
119
+ tid: string;
120
+ scheduleConfig: {
121
+ frequency: "quarterly" | "every_6_months" | "yearly";
122
+ dayOfMonth?: number | undefined;
123
+ dayOfWeek?: number | undefined;
124
+ };
125
+ trainingConfig: {
126
+ subject: string;
127
+ videoUrl: string;
128
+ thumbnailUrl?: string | undefined;
129
+ };
130
+ status?: "enabled" | "disabled" | undefined;
131
+ description?: string | null | undefined;
132
+ }>;
133
+ /**
134
+ * ------------------------
135
+ * Upsert DTO
136
+ * ------------------------
137
+ */
138
+ export declare const _TrainingScheduleUpsertDto: z.ZodObject<{
139
+ /** Tenant ID */
140
+ tid: z.ZodString;
141
+ /** Schedule name */
142
+ name: z.ZodString;
143
+ /** Optional description */
144
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
145
+ /** Enabled / Disabled */
146
+ status: z.ZodDefault<z.ZodEnum<["enabled", "disabled"]>>;
147
+ /** Training metadata */
148
+ trainingConfig: z.ZodObject<{
149
+ subject: z.ZodString;
150
+ videoUrl: z.ZodString;
151
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
152
+ }, "strip", z.ZodTypeAny, {
153
+ subject: string;
154
+ videoUrl: string;
155
+ thumbnailUrl?: string | undefined;
156
+ }, {
157
+ subject: string;
158
+ videoUrl: string;
159
+ thumbnailUrl?: string | undefined;
160
+ }>;
161
+ /** Schedule rules */
162
+ scheduleConfig: z.ZodEffects<z.ZodEffects<z.ZodObject<{
163
+ frequency: z.ZodEnum<["quarterly", "every_6_months", "yearly"]>;
164
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
165
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ frequency: "quarterly" | "every_6_months" | "yearly";
168
+ dayOfMonth?: number | undefined;
169
+ dayOfWeek?: number | undefined;
170
+ }, {
171
+ frequency: "quarterly" | "every_6_months" | "yearly";
172
+ dayOfMonth?: number | undefined;
173
+ dayOfWeek?: number | undefined;
174
+ }>, {
175
+ frequency: "quarterly" | "every_6_months" | "yearly";
176
+ dayOfMonth?: number | undefined;
177
+ dayOfWeek?: number | undefined;
178
+ }, {
179
+ frequency: "quarterly" | "every_6_months" | "yearly";
180
+ dayOfMonth?: number | undefined;
181
+ dayOfWeek?: number | undefined;
182
+ }>, {
183
+ frequency: "quarterly" | "every_6_months" | "yearly";
184
+ dayOfMonth?: number | undefined;
185
+ dayOfWeek?: number | undefined;
186
+ }, {
187
+ frequency: "quarterly" | "every_6_months" | "yearly";
188
+ dayOfMonth?: number | undefined;
189
+ dayOfWeek?: number | undefined;
190
+ }>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ name: string;
193
+ status: "enabled" | "disabled";
194
+ tid: string;
195
+ scheduleConfig: {
196
+ frequency: "quarterly" | "every_6_months" | "yearly";
197
+ dayOfMonth?: number | undefined;
198
+ dayOfWeek?: number | undefined;
199
+ };
200
+ trainingConfig: {
201
+ subject: string;
202
+ videoUrl: string;
203
+ thumbnailUrl?: string | undefined;
204
+ };
205
+ description?: string | null | undefined;
206
+ }, {
207
+ name: string;
208
+ tid: string;
209
+ scheduleConfig: {
210
+ frequency: "quarterly" | "every_6_months" | "yearly";
211
+ dayOfMonth?: number | undefined;
212
+ dayOfWeek?: number | undefined;
213
+ };
214
+ trainingConfig: {
215
+ subject: string;
216
+ videoUrl: string;
217
+ thumbnailUrl?: string | undefined;
218
+ };
219
+ status?: "enabled" | "disabled" | undefined;
220
+ description?: string | null | undefined;
221
+ }>;
222
+ export type TrainingScheduleUpsertDto = BaseUpsertDto & z.infer<typeof _TrainingScheduleUpsertDto>;
223
+ /**
224
+ * ------------------------
225
+ * Read DTO
226
+ * ------------------------
227
+ */
228
+ export declare const _TrainingScheduleDto: z.ZodObject<z.objectUtil.extendShape<{
229
+ /** Tenant ID */
230
+ tid: z.ZodString;
231
+ /** Schedule name */
232
+ name: z.ZodString;
233
+ /** Optional description */
234
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
235
+ /** Enabled / Disabled */
236
+ status: z.ZodDefault<z.ZodEnum<["enabled", "disabled"]>>;
237
+ /** Training metadata */
238
+ trainingConfig: z.ZodObject<{
239
+ subject: z.ZodString;
240
+ videoUrl: z.ZodString;
241
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ subject: string;
244
+ videoUrl: string;
245
+ thumbnailUrl?: string | undefined;
246
+ }, {
247
+ subject: string;
248
+ videoUrl: string;
249
+ thumbnailUrl?: string | undefined;
250
+ }>;
251
+ /** Schedule rules */
252
+ scheduleConfig: z.ZodEffects<z.ZodEffects<z.ZodObject<{
253
+ frequency: z.ZodEnum<["quarterly", "every_6_months", "yearly"]>;
254
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
255
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
256
+ }, "strip", z.ZodTypeAny, {
257
+ frequency: "quarterly" | "every_6_months" | "yearly";
258
+ dayOfMonth?: number | undefined;
259
+ dayOfWeek?: number | undefined;
260
+ }, {
261
+ frequency: "quarterly" | "every_6_months" | "yearly";
262
+ dayOfMonth?: number | undefined;
263
+ dayOfWeek?: number | undefined;
264
+ }>, {
265
+ frequency: "quarterly" | "every_6_months" | "yearly";
266
+ dayOfMonth?: number | undefined;
267
+ dayOfWeek?: number | undefined;
268
+ }, {
269
+ frequency: "quarterly" | "every_6_months" | "yearly";
270
+ dayOfMonth?: number | undefined;
271
+ dayOfWeek?: number | undefined;
272
+ }>, {
273
+ frequency: "quarterly" | "every_6_months" | "yearly";
274
+ dayOfMonth?: number | undefined;
275
+ dayOfWeek?: number | undefined;
276
+ }, {
277
+ frequency: "quarterly" | "every_6_months" | "yearly";
278
+ dayOfMonth?: number | undefined;
279
+ dayOfWeek?: number | undefined;
280
+ }>;
281
+ }, {
282
+ id: z.ZodString;
283
+ /** Last execution timestamp */
284
+ lastRunAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
285
+ /** Next scheduled execution */
286
+ nextRunAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
287
+ }>, "strip", z.ZodTypeAny, {
288
+ name: string;
289
+ status: "enabled" | "disabled";
290
+ id: string;
291
+ tid: string;
292
+ scheduleConfig: {
293
+ frequency: "quarterly" | "every_6_months" | "yearly";
294
+ dayOfMonth?: number | undefined;
295
+ dayOfWeek?: number | undefined;
296
+ };
297
+ trainingConfig: {
298
+ subject: string;
299
+ videoUrl: string;
300
+ thumbnailUrl?: string | undefined;
301
+ };
302
+ description?: string | null | undefined;
303
+ lastRunAt?: string | null | undefined;
304
+ nextRunAt?: string | null | undefined;
305
+ }, {
306
+ name: string;
307
+ id: string;
308
+ tid: string;
309
+ scheduleConfig: {
310
+ frequency: "quarterly" | "every_6_months" | "yearly";
311
+ dayOfMonth?: number | undefined;
312
+ dayOfWeek?: number | undefined;
313
+ };
314
+ trainingConfig: {
315
+ subject: string;
316
+ videoUrl: string;
317
+ thumbnailUrl?: string | undefined;
318
+ };
319
+ status?: "enabled" | "disabled" | undefined;
320
+ description?: string | null | undefined;
321
+ lastRunAt?: string | null | undefined;
322
+ nextRunAt?: string | null | undefined;
323
+ }>;
324
+ export type TrainingScheduleDto = BaseDto & z.infer<typeof _TrainingScheduleDto>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._TrainingScheduleDto = exports._TrainingScheduleUpsertDto = exports._TrainingScheduleBase = exports._ScheduleConfig = exports.TrainingFrequency = exports.TrainingScheduleStatus = void 0;
4
+ const zod_1 = require("zod");
5
+ const trainings_dto_1 = require("./trainings.dto");
6
+ /**
7
+ * ------------------------
8
+ * Enums
9
+ * ------------------------
10
+ */
11
+ exports.TrainingScheduleStatus = zod_1.z.enum(['enabled', 'disabled']);
12
+ exports.TrainingFrequency = zod_1.z.enum(['quarterly', 'every_6_months', 'yearly']);
13
+ /**
14
+ * ------------------------
15
+ * Schedule Config
16
+ * ------------------------
17
+ */
18
+ exports._ScheduleConfig = zod_1.z
19
+ .object({
20
+ frequency: exports.TrainingFrequency,
21
+ dayOfMonth: zod_1.z.number().min(1).max(31).optional(),
22
+ dayOfWeek: zod_1.z.number().min(0).max(6).optional(),
23
+ })
24
+ .refine(cfg => cfg.dayOfMonth || cfg.dayOfWeek, {
25
+ message: 'Either dayOfMonth or dayOfWeek must be provided',
26
+ })
27
+ .refine(cfg => !(cfg.dayOfMonth && cfg.dayOfWeek), {
28
+ message: 'Only one of dayOfMonth or dayOfWeek can be provided',
29
+ });
30
+ /**
31
+ * ------------------------
32
+ * Base Training Schedule
33
+ * ------------------------
34
+ */
35
+ exports._TrainingScheduleBase = zod_1.z.object({
36
+ /** Tenant ID */
37
+ tid: zod_1.z.string(),
38
+ /** Schedule name */
39
+ name: zod_1.z.string(),
40
+ /** Optional description */
41
+ description: zod_1.z.string().nullish(),
42
+ /** Enabled / Disabled */
43
+ status: exports.TrainingScheduleStatus.default('enabled'),
44
+ /** Training metadata */
45
+ trainingConfig: trainings_dto_1._TrainingDto,
46
+ /** Schedule rules */
47
+ scheduleConfig: exports._ScheduleConfig,
48
+ });
49
+ /**
50
+ * ------------------------
51
+ * Upsert DTO
52
+ * ------------------------
53
+ */
54
+ exports._TrainingScheduleUpsertDto = exports._TrainingScheduleBase;
55
+ /**
56
+ * ------------------------
57
+ * Read DTO
58
+ * ------------------------
59
+ */
60
+ exports._TrainingScheduleDto = exports._TrainingScheduleBase.extend({
61
+ id: zod_1.z.string(),
62
+ /** Last execution timestamp */
63
+ lastRunAt: zod_1.z.string().datetime().nullish(),
64
+ /** Next scheduled execution */
65
+ nextRunAt: zod_1.z.string().datetime().nullish(),
66
+ });
67
+ //# sourceMappingURL=trainingSchedules.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trainingSchedules.dto.js","sourceRoot":"","sources":["../../../src/dto/trainingSchedules.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AAEtB,mDAA6C;AAE7C;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEzD,QAAA,iBAAiB,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEnF;;;;GAIG;AACU,QAAA,eAAe,GAAG,OAAC;KAC7B,MAAM,CAAC;IACN,SAAS,EAAE,yBAAiB;IAC5B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;KACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,EAAE;IAC9C,OAAO,EAAE,iDAAiD;CAC3D,CAAC;KACD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE;IACjD,OAAO,EAAE,qDAAqD;CAC/D,CAAC,CAAC;AAEL;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,gBAAgB;IAChB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE;IAEf,oBAAoB;IACpB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAEhB,2BAA2B;IAC3B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAEjC,yBAAyB;IACzB,MAAM,EAAE,8BAAsB,CAAC,OAAO,CAAC,SAAS,CAAC;IAEjD,wBAAwB;IACxB,cAAc,EAAE,4BAAY;IAE5B,qBAAqB;IACrB,cAAc,EAAE,uBAAe;CAChC,CAAC,CAAC;AAEH;;;;GAIG;AACU,QAAA,0BAA0B,GAAG,6BAAqB,CAAC;AAIhE;;;;GAIG;AACU,QAAA,oBAAoB,GAAG,6BAAqB,CAAC,MAAM,CAAC;IAC/D,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IAEd,+BAA+B;IAC/B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IAE1C,+BAA+B;IAC/B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;CAC3C,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ampsec/platform-client",
3
- "version": "84.28.4",
3
+ "version": "84.30.0",
4
4
  "description": "",
5
5
  "main": "build/src/index.js",
6
6
  "runkitExampleFilename": "example/main.js",
package/src/dto/index.ts CHANGED
@@ -38,6 +38,8 @@ export * from './tenants.dto';
38
38
  export * from './tenantNotes.dto';
39
39
  export * from './tokens.dto';
40
40
  export * from './testEngagements.dto';
41
+ export * from './trainingSchedules.dto';
42
+ export * from './trainings.dto';
41
43
  export * from './users.dto';
42
44
  export * from './messagingChannels';
43
45
  export * from './cohort.dto';
@@ -1,5 +1,5 @@
1
1
  import {z} from 'zod';
2
- import {ChangeAwareDto, ChangeAwareUpsertDto} from './base.dto';
2
+ import {BaseDto, BaseUpsertDto} from './base.dto';
3
3
 
4
4
  /**
5
5
  * ------------------------
@@ -33,7 +33,7 @@ export const _TagSpecBase = z.object({
33
33
  */
34
34
  export const _TagSpecUpsertDto = _TagSpecBase;
35
35
 
36
- export type TagSpecUpsertDto = ChangeAwareUpsertDto & z.infer<typeof _TagSpecUpsertDto>;
36
+ export type TagSpecUpsertDto = BaseUpsertDto & z.infer<typeof _TagSpecUpsertDto>;
37
37
 
38
38
  /**
39
39
  * ------------------------
@@ -44,7 +44,7 @@ export const _TagSpecDto = _TagSpecBase.extend({
44
44
  id: z.string(),
45
45
  });
46
46
 
47
- export type TagSpecDto = ChangeAwareDto & z.infer<typeof _TagSpecDto>;
47
+ export type TagSpecDto = BaseDto & z.infer<typeof _TagSpecDto>;
48
48
 
49
49
  /**
50
50
  * ------------------------
@@ -0,0 +1,81 @@
1
+ import {z} from 'zod';
2
+ import {BaseDto, BaseUpsertDto} from './base.dto';
3
+ import {_TrainingDto} from './trainings.dto';
4
+
5
+ /**
6
+ * ------------------------
7
+ * Enums
8
+ * ------------------------
9
+ */
10
+ export const TrainingScheduleStatus = z.enum(['enabled', 'disabled']);
11
+
12
+ export const TrainingFrequency = z.enum(['quarterly', 'every_6_months', 'yearly']);
13
+
14
+ /**
15
+ * ------------------------
16
+ * Schedule Config
17
+ * ------------------------
18
+ */
19
+ export const _ScheduleConfig = z
20
+ .object({
21
+ frequency: TrainingFrequency,
22
+ dayOfMonth: z.number().min(1).max(31).optional(),
23
+ dayOfWeek: z.number().min(0).max(6).optional(),
24
+ })
25
+ .refine(cfg => cfg.dayOfMonth || cfg.dayOfWeek, {
26
+ message: 'Either dayOfMonth or dayOfWeek must be provided',
27
+ })
28
+ .refine(cfg => !(cfg.dayOfMonth && cfg.dayOfWeek), {
29
+ message: 'Only one of dayOfMonth or dayOfWeek can be provided',
30
+ });
31
+
32
+ /**
33
+ * ------------------------
34
+ * Base Training Schedule
35
+ * ------------------------
36
+ */
37
+ export const _TrainingScheduleBase = z.object({
38
+ /** Tenant ID */
39
+ tid: z.string(),
40
+
41
+ /** Schedule name */
42
+ name: z.string(),
43
+
44
+ /** Optional description */
45
+ description: z.string().nullish(),
46
+
47
+ /** Enabled / Disabled */
48
+ status: TrainingScheduleStatus.default('enabled'),
49
+
50
+ /** Training metadata */
51
+ trainingConfig: _TrainingDto,
52
+
53
+ /** Schedule rules */
54
+ scheduleConfig: _ScheduleConfig,
55
+ });
56
+
57
+ /**
58
+ * ------------------------
59
+ * Upsert DTO
60
+ * ------------------------
61
+ */
62
+ export const _TrainingScheduleUpsertDto = _TrainingScheduleBase;
63
+
64
+ export type TrainingScheduleUpsertDto = BaseUpsertDto & z.infer<typeof _TrainingScheduleUpsertDto>;
65
+
66
+ /**
67
+ * ------------------------
68
+ * Read DTO
69
+ * ------------------------
70
+ */
71
+ export const _TrainingScheduleDto = _TrainingScheduleBase.extend({
72
+ id: z.string(),
73
+
74
+ /** Last execution timestamp */
75
+ lastRunAt: z.string().datetime().nullish(),
76
+
77
+ /** Next scheduled execution */
78
+ nextRunAt: z.string().datetime().nullish(),
79
+ });
80
+
81
+ export type TrainingScheduleDto = BaseDto & z.infer<typeof _TrainingScheduleDto>;