@oneuptime/common 10.3.0 → 10.4.1

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 (115) hide show
  1. package/Models/DatabaseModels/IncomingCallPolicyLabelRule.ts +522 -0
  2. package/Models/DatabaseModels/IncomingCallPolicyOwnerRule.ts +606 -0
  3. package/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.ts +508 -0
  4. package/Models/DatabaseModels/IncomingCallPolicyOwnerUser.ts +507 -0
  5. package/Models/DatabaseModels/Index.ts +24 -0
  6. package/Models/DatabaseModels/OnCallDutyPolicyLabelRule.ts +522 -0
  7. package/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.ts +606 -0
  8. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.ts +522 -0
  9. package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.ts +606 -0
  10. package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.ts +508 -0
  11. package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.ts +507 -0
  12. package/Server/API/TelemetryAPI.ts +69 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1778929624633-AddOnCallDutyPolicyScheduleOwners.ts +153 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1778931537020-AddOnCallIncomingCallOwnersAndRules.ts +823 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  16. package/Server/Services/IncomingCallPolicyLabelRuleEngineService.ts +197 -0
  17. package/Server/Services/IncomingCallPolicyLabelRuleService.ts +10 -0
  18. package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +220 -0
  19. package/Server/Services/IncomingCallPolicyOwnerRuleService.ts +10 -0
  20. package/Server/Services/IncomingCallPolicyOwnerTeamService.ts +9 -0
  21. package/Server/Services/IncomingCallPolicyOwnerUserService.ts +9 -0
  22. package/Server/Services/IncomingCallPolicyService.ts +35 -0
  23. package/Server/Services/OnCallDutyPolicyLabelRuleEngineService.ts +191 -0
  24. package/Server/Services/OnCallDutyPolicyLabelRuleService.ts +10 -0
  25. package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +214 -0
  26. package/Server/Services/OnCallDutyPolicyOwnerRuleService.ts +10 -0
  27. package/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.ts +200 -0
  28. package/Server/Services/OnCallDutyPolicyScheduleLabelRuleService.ts +10 -0
  29. package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +223 -0
  30. package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleService.ts +10 -0
  31. package/Server/Services/OnCallDutyPolicyScheduleOwnerTeamService.ts +9 -0
  32. package/Server/Services/OnCallDutyPolicyScheduleOwnerUserService.ts +9 -0
  33. package/Server/Services/OnCallDutyPolicyScheduleService.ts +32 -1
  34. package/Server/Services/OnCallDutyPolicyService.ts +21 -0
  35. package/Server/Services/ProfileAggregationService.ts +119 -0
  36. package/Server/Types/Database/Permissions/QueryPermission.ts +36 -0
  37. package/Types/Monitor/MonitorStep.ts +66 -0
  38. package/Types/Permission.ts +475 -0
  39. package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js +532 -0
  40. package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js.map +1 -0
  41. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js +615 -0
  42. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js.map +1 -0
  43. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js +524 -0
  44. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerTeam.js.map +1 -0
  45. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js +523 -0
  46. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerUser.js.map +1 -0
  47. package/build/dist/Models/DatabaseModels/Index.js +22 -0
  48. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  49. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js +532 -0
  50. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js.map +1 -0
  51. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js +615 -0
  52. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js.map +1 -0
  53. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js +532 -0
  54. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js.map +1 -0
  55. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js +615 -0
  56. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js.map +1 -0
  57. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js +524 -0
  58. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerTeam.js.map +1 -0
  59. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js +523 -0
  60. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerUser.js.map +1 -0
  61. package/build/dist/Server/API/TelemetryAPI.js +34 -0
  62. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  63. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778929624633-AddOnCallDutyPolicyScheduleOwners.js +58 -0
  64. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778929624633-AddOnCallDutyPolicyScheduleOwners.js.map +1 -0
  65. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778931537020-AddOnCallIncomingCallOwnersAndRules.js +292 -0
  66. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1778931537020-AddOnCallIncomingCallOwnersAndRules.js.map +1 -0
  67. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  68. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  69. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js +158 -0
  70. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js.map +1 -0
  71. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleService.js +9 -0
  72. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleService.js.map +1 -0
  73. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +181 -0
  74. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -0
  75. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleService.js +9 -0
  76. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleService.js.map +1 -0
  77. package/build/dist/Server/Services/IncomingCallPolicyOwnerTeamService.js +9 -0
  78. package/build/dist/Server/Services/IncomingCallPolicyOwnerTeamService.js.map +1 -0
  79. package/build/dist/Server/Services/IncomingCallPolicyOwnerUserService.js +9 -0
  80. package/build/dist/Server/Services/IncomingCallPolicyOwnerUserService.js.map +1 -0
  81. package/build/dist/Server/Services/IncomingCallPolicyService.js +38 -0
  82. package/build/dist/Server/Services/IncomingCallPolicyService.js.map +1 -1
  83. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js +157 -0
  84. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js.map +1 -0
  85. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleService.js +9 -0
  86. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleService.js.map +1 -0
  87. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +180 -0
  88. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -0
  89. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleService.js +9 -0
  90. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleService.js.map +1 -0
  91. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js +158 -0
  92. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js.map +1 -0
  93. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleService.js +9 -0
  94. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleService.js.map +1 -0
  95. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +181 -0
  96. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -0
  97. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleService.js +9 -0
  98. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleService.js.map +1 -0
  99. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerTeamService.js +9 -0
  100. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerTeamService.js.map +1 -0
  101. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerUserService.js +9 -0
  102. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerUserService.js.map +1 -0
  103. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +21 -0
  104. package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
  105. package/build/dist/Server/Services/OnCallDutyPolicyService.js +17 -3
  106. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  107. package/build/dist/Server/Services/ProfileAggregationService.js +80 -0
  108. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  109. package/build/dist/Server/Types/Database/Permissions/QueryPermission.js +25 -0
  110. package/build/dist/Server/Types/Database/Permissions/QueryPermission.js.map +1 -1
  111. package/build/dist/Types/Monitor/MonitorStep.js +42 -0
  112. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  113. package/build/dist/Types/Permission.js +415 -0
  114. package/build/dist/Types/Permission.js.map +1 -1
  115. package/package.json +1 -1
@@ -0,0 +1,507 @@
1
+ import IncomingCallPolicy from "./IncomingCallPolicy";
2
+ import Project from "./Project";
3
+ import User from "./User";
4
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
5
+ import Route from "../../Types/API/Route";
6
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
7
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
8
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
9
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
10
+ import ColumnType from "../../Types/Database/ColumnType";
11
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
12
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
13
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
14
+ import TableColumn from "../../Types/Database/TableColumn";
15
+ import TableColumnType from "../../Types/Database/TableColumnType";
16
+ import TableMetadata from "../../Types/Database/TableMetadata";
17
+ import TenantColumn from "../../Types/Database/TenantColumn";
18
+ import IconProp from "../../Types/Icon/IconProp";
19
+ import ObjectID from "../../Types/ObjectID";
20
+ import Permission from "../../Types/Permission";
21
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
22
+
23
+ @EnableDocumentation()
24
+ @TenantColumn("projectId")
25
+ @TableBillingAccessControl({
26
+ create: PlanType.Growth,
27
+ read: PlanType.Free,
28
+ update: PlanType.Growth,
29
+ delete: PlanType.Free,
30
+ })
31
+ @TableAccessControl({
32
+ create: [
33
+ Permission.ProjectOwner,
34
+ Permission.ProjectAdmin,
35
+ Permission.ProjectMember,
36
+ Permission.OnCallAdmin,
37
+ Permission.OnCallMember,
38
+ Permission.CreateIncomingCallPolicyOwnerUser,
39
+ ],
40
+ read: [
41
+ Permission.ProjectOwner,
42
+ Permission.ProjectAdmin,
43
+ Permission.ProjectMember,
44
+ Permission.Viewer,
45
+ Permission.OnCallAdmin,
46
+ Permission.OnCallMember,
47
+ Permission.OnCallViewer,
48
+ Permission.ReadIncomingCallPolicyOwnerUser,
49
+ Permission.ReadAllProjectResources,
50
+ ],
51
+ delete: [
52
+ Permission.ProjectOwner,
53
+ Permission.ProjectAdmin,
54
+ Permission.ProjectMember,
55
+ Permission.OnCallAdmin,
56
+ Permission.OnCallMember,
57
+ Permission.DeleteIncomingCallPolicyOwnerUser,
58
+ ],
59
+ update: [
60
+ Permission.ProjectOwner,
61
+ Permission.ProjectAdmin,
62
+ Permission.ProjectMember,
63
+ Permission.OnCallAdmin,
64
+ Permission.OnCallMember,
65
+ Permission.EditIncomingCallPolicyOwnerUser,
66
+ ],
67
+ })
68
+ @EnableWorkflow({
69
+ create: true,
70
+ delete: true,
71
+ update: true,
72
+ read: true,
73
+ })
74
+ @CrudApiEndpoint(new Route("/incoming-call-policy-owner-user"))
75
+ @TableMetadata({
76
+ tableName: "IncomingCallPolicyOwnerUser",
77
+ singularName: "Incoming Call Policy User Owner",
78
+ pluralName: "Incoming Call Policy User Owners",
79
+ icon: IconProp.IncomingCall,
80
+ tableDescription: "Add users as owners to your incoming call policies.",
81
+ })
82
+ @Entity({
83
+ name: "IncomingCallPolicyOwnerUser",
84
+ })
85
+ @Index(["incomingCallPolicyId", "userId", "projectId"])
86
+ export default class IncomingCallPolicyOwnerUser extends BaseModel {
87
+ @ColumnAccessControl({
88
+ create: [
89
+ Permission.ProjectOwner,
90
+ Permission.ProjectAdmin,
91
+ Permission.ProjectMember,
92
+ Permission.OnCallAdmin,
93
+ Permission.OnCallMember,
94
+ Permission.CreateIncomingCallPolicyOwnerUser,
95
+ ],
96
+ read: [
97
+ Permission.ProjectOwner,
98
+ Permission.ProjectAdmin,
99
+ Permission.ProjectMember,
100
+ Permission.Viewer,
101
+ Permission.OnCallAdmin,
102
+ Permission.OnCallMember,
103
+ Permission.OnCallViewer,
104
+ Permission.ReadIncomingCallPolicyOwnerUser,
105
+ Permission.ReadAllProjectResources,
106
+ ],
107
+ update: [],
108
+ })
109
+ @TableColumn({
110
+ manyToOneRelationColumn: "projectId",
111
+ type: TableColumnType.Entity,
112
+ modelType: Project,
113
+ title: "Project",
114
+ description: "Relation to Project Resource in which this object belongs",
115
+ })
116
+ @ManyToOne(
117
+ () => {
118
+ return Project;
119
+ },
120
+ {
121
+ eager: false,
122
+ nullable: false,
123
+ onDelete: "CASCADE",
124
+ orphanedRowAction: "nullify",
125
+ },
126
+ )
127
+ @JoinColumn({ name: "projectId" })
128
+ public project?: Project = undefined;
129
+
130
+ @ColumnAccessControl({
131
+ create: [
132
+ Permission.ProjectOwner,
133
+ Permission.ProjectAdmin,
134
+ Permission.ProjectMember,
135
+ Permission.OnCallAdmin,
136
+ Permission.OnCallMember,
137
+ Permission.CreateIncomingCallPolicyOwnerUser,
138
+ ],
139
+ read: [
140
+ Permission.ProjectOwner,
141
+ Permission.ProjectAdmin,
142
+ Permission.ProjectMember,
143
+ Permission.Viewer,
144
+ Permission.OnCallAdmin,
145
+ Permission.OnCallMember,
146
+ Permission.OnCallViewer,
147
+ Permission.ReadIncomingCallPolicyOwnerUser,
148
+ Permission.ReadAllProjectResources,
149
+ ],
150
+ update: [],
151
+ })
152
+ @Index()
153
+ @TableColumn({
154
+ type: TableColumnType.ObjectID,
155
+ required: true,
156
+ canReadOnRelationQuery: true,
157
+ title: "Project ID",
158
+ description: "ID of your OneUptime Project in which this object belongs",
159
+ })
160
+ @Column({
161
+ type: ColumnType.ObjectID,
162
+ nullable: false,
163
+ transformer: ObjectID.getDatabaseTransformer(),
164
+ })
165
+ public projectId?: ObjectID = undefined;
166
+
167
+ @ColumnAccessControl({
168
+ create: [
169
+ Permission.ProjectOwner,
170
+ Permission.ProjectAdmin,
171
+ Permission.ProjectMember,
172
+ Permission.OnCallAdmin,
173
+ Permission.OnCallMember,
174
+ Permission.CreateIncomingCallPolicyOwnerUser,
175
+ ],
176
+ read: [
177
+ Permission.ProjectOwner,
178
+ Permission.ProjectAdmin,
179
+ Permission.ProjectMember,
180
+ Permission.Viewer,
181
+ Permission.OnCallAdmin,
182
+ Permission.OnCallMember,
183
+ Permission.OnCallViewer,
184
+ Permission.ReadIncomingCallPolicyOwnerUser,
185
+ Permission.ReadAllProjectResources,
186
+ ],
187
+ update: [],
188
+ })
189
+ @TableColumn({
190
+ manyToOneRelationColumn: "userId",
191
+ type: TableColumnType.Entity,
192
+ modelType: User,
193
+ title: "User",
194
+ description:
195
+ "User that is the owner. This user will receive notifications. ",
196
+ })
197
+ @ManyToOne(
198
+ () => {
199
+ return User;
200
+ },
201
+ {
202
+ eager: false,
203
+ nullable: true,
204
+ onDelete: "CASCADE",
205
+ orphanedRowAction: "nullify",
206
+ },
207
+ )
208
+ @JoinColumn({ name: "userId" })
209
+ public user?: User = undefined;
210
+
211
+ @ColumnAccessControl({
212
+ create: [
213
+ Permission.ProjectOwner,
214
+ Permission.ProjectAdmin,
215
+ Permission.ProjectMember,
216
+ Permission.OnCallAdmin,
217
+ Permission.OnCallMember,
218
+ Permission.CreateIncomingCallPolicyOwnerUser,
219
+ ],
220
+ read: [
221
+ Permission.ProjectOwner,
222
+ Permission.ProjectAdmin,
223
+ Permission.ProjectMember,
224
+ Permission.Viewer,
225
+ Permission.OnCallAdmin,
226
+ Permission.OnCallMember,
227
+ Permission.OnCallViewer,
228
+ Permission.ReadIncomingCallPolicyOwnerUser,
229
+ Permission.ReadAllProjectResources,
230
+ ],
231
+ update: [],
232
+ })
233
+ @Index()
234
+ @TableColumn({
235
+ type: TableColumnType.ObjectID,
236
+ required: true,
237
+ canReadOnRelationQuery: true,
238
+ title: "User ID",
239
+ description: "ID of your OneUptime User in which this object belongs",
240
+ })
241
+ @Column({
242
+ type: ColumnType.ObjectID,
243
+ nullable: false,
244
+ transformer: ObjectID.getDatabaseTransformer(),
245
+ })
246
+ public userId?: ObjectID = undefined;
247
+
248
+ @ColumnAccessControl({
249
+ create: [
250
+ Permission.ProjectOwner,
251
+ Permission.ProjectAdmin,
252
+ Permission.ProjectMember,
253
+ Permission.OnCallAdmin,
254
+ Permission.OnCallMember,
255
+ Permission.CreateIncomingCallPolicyOwnerUser,
256
+ ],
257
+ read: [
258
+ Permission.ProjectOwner,
259
+ Permission.ProjectAdmin,
260
+ Permission.ProjectMember,
261
+ Permission.Viewer,
262
+ Permission.OnCallAdmin,
263
+ Permission.OnCallMember,
264
+ Permission.OnCallViewer,
265
+ Permission.ReadIncomingCallPolicyOwnerUser,
266
+ Permission.ReadAllProjectResources,
267
+ ],
268
+ update: [],
269
+ })
270
+ @TableColumn({
271
+ manyToOneRelationColumn: "incomingCallPolicyId",
272
+ type: TableColumnType.Entity,
273
+ modelType: IncomingCallPolicy,
274
+ title: "Incoming Call Policy",
275
+ description:
276
+ "Relation to Incoming Call Policy Resource in which this object belongs",
277
+ })
278
+ @ManyToOne(
279
+ () => {
280
+ return IncomingCallPolicy;
281
+ },
282
+ {
283
+ eager: false,
284
+ nullable: true,
285
+ onDelete: "CASCADE",
286
+ orphanedRowAction: "nullify",
287
+ },
288
+ )
289
+ @JoinColumn({ name: "incomingCallPolicyId" })
290
+ public incomingCallPolicy?: IncomingCallPolicy = undefined;
291
+
292
+ @ColumnAccessControl({
293
+ create: [
294
+ Permission.ProjectOwner,
295
+ Permission.ProjectAdmin,
296
+ Permission.ProjectMember,
297
+ Permission.OnCallAdmin,
298
+ Permission.OnCallMember,
299
+ Permission.CreateIncomingCallPolicyOwnerUser,
300
+ ],
301
+ read: [
302
+ Permission.ProjectOwner,
303
+ Permission.ProjectAdmin,
304
+ Permission.ProjectMember,
305
+ Permission.Viewer,
306
+ Permission.OnCallAdmin,
307
+ Permission.OnCallMember,
308
+ Permission.OnCallViewer,
309
+ Permission.ReadIncomingCallPolicyOwnerUser,
310
+ Permission.ReadAllProjectResources,
311
+ ],
312
+ update: [],
313
+ })
314
+ @Index()
315
+ @TableColumn({
316
+ type: TableColumnType.ObjectID,
317
+ required: true,
318
+ canReadOnRelationQuery: true,
319
+ title: "Incoming Call Policy ID",
320
+ description:
321
+ "ID of your OneUptime Incoming Call Policy in which this object belongs",
322
+ })
323
+ @Column({
324
+ type: ColumnType.ObjectID,
325
+ nullable: false,
326
+ transformer: ObjectID.getDatabaseTransformer(),
327
+ })
328
+ public incomingCallPolicyId?: ObjectID = undefined;
329
+
330
+ @ColumnAccessControl({
331
+ create: [
332
+ Permission.ProjectOwner,
333
+ Permission.ProjectAdmin,
334
+ Permission.ProjectMember,
335
+ Permission.OnCallAdmin,
336
+ Permission.OnCallMember,
337
+ Permission.CreateIncomingCallPolicyOwnerUser,
338
+ ],
339
+ read: [
340
+ Permission.ProjectOwner,
341
+ Permission.ProjectAdmin,
342
+ Permission.ProjectMember,
343
+ Permission.Viewer,
344
+ Permission.OnCallAdmin,
345
+ Permission.OnCallMember,
346
+ Permission.OnCallViewer,
347
+ Permission.ReadIncomingCallPolicyOwnerUser,
348
+ Permission.ReadAllProjectResources,
349
+ ],
350
+ update: [],
351
+ })
352
+ @TableColumn({
353
+ manyToOneRelationColumn: "createdByUserId",
354
+ type: TableColumnType.Entity,
355
+ modelType: User,
356
+ title: "Created by User",
357
+ description:
358
+ "Relation to User who created this object (if this object was created by a User)",
359
+ })
360
+ @ManyToOne(
361
+ () => {
362
+ return User;
363
+ },
364
+ {
365
+ eager: false,
366
+ nullable: true,
367
+ onDelete: "SET NULL",
368
+ orphanedRowAction: "nullify",
369
+ },
370
+ )
371
+ @JoinColumn({ name: "createdByUserId" })
372
+ public createdByUser?: User = undefined;
373
+
374
+ @ColumnAccessControl({
375
+ create: [
376
+ Permission.ProjectOwner,
377
+ Permission.ProjectAdmin,
378
+ Permission.ProjectMember,
379
+ Permission.OnCallAdmin,
380
+ Permission.OnCallMember,
381
+ Permission.CreateIncomingCallPolicyOwnerUser,
382
+ ],
383
+ read: [
384
+ Permission.ProjectOwner,
385
+ Permission.ProjectAdmin,
386
+ Permission.ProjectMember,
387
+ Permission.Viewer,
388
+ Permission.OnCallAdmin,
389
+ Permission.OnCallMember,
390
+ Permission.OnCallViewer,
391
+ Permission.ReadIncomingCallPolicyOwnerUser,
392
+ Permission.ReadAllProjectResources,
393
+ ],
394
+ update: [],
395
+ })
396
+ @TableColumn({
397
+ type: TableColumnType.ObjectID,
398
+ title: "Created by User ID",
399
+ description:
400
+ "User ID who created this object (if this object was created by a User)",
401
+ })
402
+ @Column({
403
+ type: ColumnType.ObjectID,
404
+ nullable: true,
405
+ transformer: ObjectID.getDatabaseTransformer(),
406
+ })
407
+ public createdByUserId?: ObjectID = undefined;
408
+
409
+ @ColumnAccessControl({
410
+ create: [],
411
+ read: [
412
+ Permission.ProjectOwner,
413
+ Permission.ProjectAdmin,
414
+ Permission.ProjectMember,
415
+ Permission.Viewer,
416
+ Permission.OnCallAdmin,
417
+ Permission.OnCallMember,
418
+ Permission.OnCallViewer,
419
+ Permission.ReadIncomingCallPolicyOwnerUser,
420
+ Permission.ReadAllProjectResources,
421
+ ],
422
+ update: [],
423
+ })
424
+ @TableColumn({
425
+ manyToOneRelationColumn: "deletedByUserId",
426
+ type: TableColumnType.Entity,
427
+ title: "Deleted by User",
428
+ modelType: User,
429
+ description:
430
+ "Relation to User who deleted this object (if this object was deleted by a User)",
431
+ })
432
+ @ManyToOne(
433
+ () => {
434
+ return User;
435
+ },
436
+ {
437
+ cascade: false,
438
+ eager: false,
439
+ nullable: true,
440
+ onDelete: "SET NULL",
441
+ orphanedRowAction: "nullify",
442
+ },
443
+ )
444
+ @JoinColumn({ name: "deletedByUserId" })
445
+ public deletedByUser?: User = undefined;
446
+
447
+ @ColumnAccessControl({
448
+ create: [],
449
+ read: [
450
+ Permission.ProjectOwner,
451
+ Permission.ProjectAdmin,
452
+ Permission.ProjectMember,
453
+ Permission.Viewer,
454
+ Permission.OnCallAdmin,
455
+ Permission.OnCallMember,
456
+ Permission.OnCallViewer,
457
+ Permission.ReadIncomingCallPolicyOwnerUser,
458
+ Permission.ReadAllProjectResources,
459
+ ],
460
+ update: [],
461
+ })
462
+ @TableColumn({
463
+ type: TableColumnType.ObjectID,
464
+ title: "Deleted by User ID",
465
+ description:
466
+ "User ID who deleted this object (if this object was deleted by a User)",
467
+ })
468
+ @Column({
469
+ type: ColumnType.ObjectID,
470
+ nullable: true,
471
+ transformer: ObjectID.getDatabaseTransformer(),
472
+ })
473
+ public deletedByUserId?: ObjectID = undefined;
474
+
475
+ @ColumnAccessControl({
476
+ create: [],
477
+ read: [
478
+ Permission.ProjectOwner,
479
+ Permission.ProjectAdmin,
480
+ Permission.ProjectMember,
481
+ Permission.Viewer,
482
+ Permission.OnCallAdmin,
483
+ Permission.OnCallMember,
484
+ Permission.OnCallViewer,
485
+ Permission.ReadIncomingCallPolicyOwnerUser,
486
+ Permission.ReadAllProjectResources,
487
+ ],
488
+ update: [],
489
+ })
490
+ @Index()
491
+ @TableColumn({
492
+ type: TableColumnType.Boolean,
493
+ computed: true,
494
+ hideColumnInDocumentation: true,
495
+ required: true,
496
+ isDefaultValueColumn: true,
497
+ title: "Are Owners Notified",
498
+ description: "Are owners notified of this resource ownership?",
499
+ defaultValue: false,
500
+ })
501
+ @Column({
502
+ type: ColumnType.Boolean,
503
+ nullable: false,
504
+ default: false,
505
+ })
506
+ public isOwnerNotified?: boolean = undefined;
507
+ }
@@ -94,6 +94,20 @@ import OnCallDutyPolicyFeed from "./OnCallDutyPolicyFeed";
94
94
  import OnCallDutyPolicySchedule from "./OnCallDutyPolicySchedule";
95
95
  import OnCallDutyPolicyScheduleLayer from "./OnCallDutyPolicyScheduleLayer";
96
96
  import OnCallDutyPolicyScheduleLayerUser from "./OnCallDutyPolicyScheduleLayerUser";
97
+ import OnCallDutyPolicyScheduleOwnerTeam from "./OnCallDutyPolicyScheduleOwnerTeam";
98
+ import OnCallDutyPolicyScheduleOwnerUser from "./OnCallDutyPolicyScheduleOwnerUser";
99
+
100
+ // On-Call Duty Label and Owner Rules
101
+ import OnCallDutyPolicyLabelRule from "./OnCallDutyPolicyLabelRule";
102
+ import OnCallDutyPolicyOwnerRule from "./OnCallDutyPolicyOwnerRule";
103
+ import OnCallDutyPolicyScheduleLabelRule from "./OnCallDutyPolicyScheduleLabelRule";
104
+ import OnCallDutyPolicyScheduleOwnerRule from "./OnCallDutyPolicyScheduleOwnerRule";
105
+
106
+ // Incoming Call Policy Owners and Rules
107
+ import IncomingCallPolicyOwnerTeam from "./IncomingCallPolicyOwnerTeam";
108
+ import IncomingCallPolicyOwnerUser from "./IncomingCallPolicyOwnerUser";
109
+ import IncomingCallPolicyLabelRule from "./IncomingCallPolicyLabelRule";
110
+ import IncomingCallPolicyOwnerRule from "./IncomingCallPolicyOwnerRule";
97
111
  import OnCallDutyPolicyTimeLog from "./OnCallDutyPolicyTimeLog";
98
112
 
99
113
  // Incoming Call Policy
@@ -577,9 +591,19 @@ const AllModelTypes: Array<{
577
591
  OnCallDutyPolicySchedule,
578
592
  OnCallDutyPolicyScheduleLayer,
579
593
  OnCallDutyPolicyScheduleLayerUser,
594
+ OnCallDutyPolicyScheduleOwnerTeam,
595
+ OnCallDutyPolicyScheduleOwnerUser,
580
596
  OnCallDutyPolicyFeed,
581
597
  OnCallDutyPolicyOwnerTeam,
582
598
  OnCallDutyPolicyOwnerUser,
599
+ OnCallDutyPolicyLabelRule,
600
+ OnCallDutyPolicyOwnerRule,
601
+ OnCallDutyPolicyScheduleLabelRule,
602
+ OnCallDutyPolicyScheduleOwnerRule,
603
+ IncomingCallPolicyOwnerTeam,
604
+ IncomingCallPolicyOwnerUser,
605
+ IncomingCallPolicyLabelRule,
606
+ IncomingCallPolicyOwnerRule,
583
607
  OnCallDutyPolicyEscalationRuleSchedule,
584
608
 
585
609
  UsageBilling,