@oneuptime/common 7.0.2928 → 7.0.2936

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 (469) hide show
  1. package/{AnalyticsModels/BaseModel.ts → Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts} +19 -17
  2. package/{AnalyticsModels → Models/AnalyticsModels/AnalyticsBaseModel}/CommonModel.ts +15 -15
  3. package/{AnalyticsModels → Models/AnalyticsModels/AnalyticsBaseModel}/NestedModel.ts +1 -1
  4. package/Models/AnalyticsModels/Index.ts +16 -0
  5. package/Models/AnalyticsModels/Log.ts +365 -0
  6. package/Models/AnalyticsModels/Metric.ts +693 -0
  7. package/Models/AnalyticsModels/MonitorMetricsByMinute.ts +177 -0
  8. package/Models/AnalyticsModels/NestedModels/KeyValueNestedModel.ts +59 -0
  9. package/Models/AnalyticsModels/Span.ts +643 -0
  10. package/Models/AnalyticsModels/TelemetryAttribute.ts +163 -0
  11. package/Models/DatabaseModels/AcmeCertificate.ts +142 -0
  12. package/Models/DatabaseModels/AcmeChallenge.ts +118 -0
  13. package/Models/DatabaseModels/ApiKey.ts +379 -0
  14. package/Models/DatabaseModels/ApiKeyPermission.ts +434 -0
  15. package/Models/DatabaseModels/BillingInvoice.ts +339 -0
  16. package/Models/DatabaseModels/BillingPaymentMethod.ts +317 -0
  17. package/Models/DatabaseModels/CallLog.ts +303 -0
  18. package/Models/DatabaseModels/CopilotAction.ts +545 -0
  19. package/Models/DatabaseModels/CopilotCodeRepository.ts +639 -0
  20. package/Models/DatabaseModels/CopilotPullRequest.ts +468 -0
  21. package/Models/DatabaseModels/DataMigration.ts +183 -0
  22. package/Models/{AccessControlModel.ts → DatabaseModels/DatabaseBaseModel/AccessControlModel.ts} +2 -2
  23. package/Models/{BaseModel.ts → DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts} +53 -48
  24. package/Models/{FileModel.ts → DatabaseModels/DatabaseBaseModel/FileModel.ts} +10 -10
  25. package/Models/{GlobalConfig.ts → DatabaseModels/DatabaseBaseModel/GlobalConfig.ts} +2 -2
  26. package/Models/{TenantModel.ts → DatabaseModels/DatabaseBaseModel/TenantModel.ts} +2 -2
  27. package/Models/{UserModel.ts → DatabaseModels/DatabaseBaseModel/UserModel.ts} +2 -2
  28. package/Models/DatabaseModels/Domain.ts +354 -0
  29. package/Models/DatabaseModels/EmailLog.ts +337 -0
  30. package/Models/DatabaseModels/EmailVerificationToken.ts +163 -0
  31. package/Models/DatabaseModels/File.ts +27 -0
  32. package/Models/DatabaseModels/GlobalConfig.ts +371 -0
  33. package/Models/DatabaseModels/GreenlockCertificate.ts +117 -0
  34. package/Models/DatabaseModels/GreenlockChallenge.ts +118 -0
  35. package/Models/DatabaseModels/Incident.ts +1094 -0
  36. package/Models/DatabaseModels/IncidentCustomField.ts +340 -0
  37. package/Models/DatabaseModels/IncidentInternalNote.ts +371 -0
  38. package/Models/DatabaseModels/IncidentNoteTemplate.ts +344 -0
  39. package/Models/DatabaseModels/IncidentOwnerTeam.ts +416 -0
  40. package/Models/DatabaseModels/IncidentOwnerUser.ts +415 -0
  41. package/Models/DatabaseModels/IncidentPublicNote.ts +453 -0
  42. package/Models/DatabaseModels/IncidentSeverity.ts +426 -0
  43. package/Models/DatabaseModels/IncidentState.ts +526 -0
  44. package/Models/DatabaseModels/IncidentStateTimeline.ts +579 -0
  45. package/Models/DatabaseModels/IncidentTemplate.ts +746 -0
  46. package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +418 -0
  47. package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +429 -0
  48. package/Models/DatabaseModels/Index.ts +292 -0
  49. package/Models/DatabaseModels/Label.ts +381 -0
  50. package/Models/DatabaseModels/Monitor.ts +1045 -0
  51. package/Models/DatabaseModels/MonitorCustomField.ts +340 -0
  52. package/Models/DatabaseModels/MonitorGroup.ts +410 -0
  53. package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +426 -0
  54. package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +425 -0
  55. package/Models/DatabaseModels/MonitorGroupResource.ts +386 -0
  56. package/Models/DatabaseModels/MonitorOwnerTeam.ts +424 -0
  57. package/Models/DatabaseModels/MonitorOwnerUser.ts +423 -0
  58. package/Models/DatabaseModels/MonitorProbe.ts +480 -0
  59. package/Models/DatabaseModels/MonitorSecret.ts +402 -0
  60. package/Models/DatabaseModels/MonitorStatus.ts +493 -0
  61. package/Models/DatabaseModels/MonitorStatusTimeline.ts +527 -0
  62. package/Models/DatabaseModels/OnCallDutyPolicy.ts +499 -0
  63. package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +340 -0
  64. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.ts +439 -0
  65. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.ts +439 -0
  66. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.ts +438 -0
  67. package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.ts +437 -0
  68. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +665 -0
  69. package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +726 -0
  70. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +403 -0
  71. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.ts +555 -0
  72. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.ts +496 -0
  73. package/Models/DatabaseModels/Probe.ts +567 -0
  74. package/Models/DatabaseModels/ProbeOwnerTeam.ts +424 -0
  75. package/Models/DatabaseModels/ProbeOwnerUser.ts +423 -0
  76. package/Models/DatabaseModels/Project.ts +1168 -0
  77. package/Models/DatabaseModels/ProjectCallSMSConfig.ts +430 -0
  78. package/Models/DatabaseModels/ProjectSmtpConfig.ts +521 -0
  79. package/Models/DatabaseModels/ProjectSso.ts +582 -0
  80. package/Models/DatabaseModels/PromoCode.ts +413 -0
  81. package/Models/DatabaseModels/Reseller.ts +278 -0
  82. package/Models/DatabaseModels/ResellerPlan.ts +306 -0
  83. package/Models/DatabaseModels/ScheduledMaintenance.ts +883 -0
  84. package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +340 -0
  85. package/Models/DatabaseModels/ScheduledMaintenanceInternalNote.ts +371 -0
  86. package/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.ts +345 -0
  87. package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +418 -0
  88. package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +417 -0
  89. package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +454 -0
  90. package/Models/DatabaseModels/ScheduledMaintenanceState.ts +559 -0
  91. package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +527 -0
  92. package/Models/DatabaseModels/ServiceCatalog.ts +512 -0
  93. package/Models/DatabaseModels/ServiceCatalogDependency.ts +412 -0
  94. package/Models/DatabaseModels/ServiceCatalogMonitor.ts +410 -0
  95. package/Models/DatabaseModels/ServiceCatalogOwnerTeam.ts +396 -0
  96. package/Models/DatabaseModels/ServiceCatalogOwnerUser.ts +395 -0
  97. package/Models/DatabaseModels/ServiceCatalogTelemetryService.ts +410 -0
  98. package/Models/DatabaseModels/ServiceCopilotCodeRepository.ts +542 -0
  99. package/Models/DatabaseModels/ShortLink.ts +119 -0
  100. package/Models/DatabaseModels/SmsLog.ts +303 -0
  101. package/Models/DatabaseModels/StatusPage.ts +1867 -0
  102. package/Models/DatabaseModels/StatusPageAnnouncement.ts +512 -0
  103. package/Models/DatabaseModels/StatusPageCustomField.ts +340 -0
  104. package/Models/DatabaseModels/StatusPageDomain.ts +541 -0
  105. package/Models/DatabaseModels/StatusPageFooterLink.ts +421 -0
  106. package/Models/DatabaseModels/StatusPageGroup.ts +479 -0
  107. package/Models/DatabaseModels/StatusPageHeaderLink.ts +421 -0
  108. package/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.ts +416 -0
  109. package/Models/DatabaseModels/StatusPageOwnerTeam.ts +424 -0
  110. package/Models/DatabaseModels/StatusPageOwnerUser.ts +423 -0
  111. package/Models/DatabaseModels/StatusPagePrivateUser.ts +464 -0
  112. package/Models/DatabaseModels/StatusPageResource.ts +810 -0
  113. package/Models/DatabaseModels/StatusPageSso.ts +583 -0
  114. package/Models/DatabaseModels/StatusPageSubscriber.ts +578 -0
  115. package/Models/DatabaseModels/Team.ts +439 -0
  116. package/Models/DatabaseModels/TeamMember.ts +422 -0
  117. package/Models/DatabaseModels/TeamPermission.ts +440 -0
  118. package/Models/DatabaseModels/TelemetryIngestionKey.ts +316 -0
  119. package/Models/DatabaseModels/TelemetryService.ts +523 -0
  120. package/Models/DatabaseModels/TelemetryUsageBilling.ts +415 -0
  121. package/Models/DatabaseModels/User.ts +722 -0
  122. package/Models/DatabaseModels/UserCall.ts +285 -0
  123. package/Models/DatabaseModels/UserEmail.ts +285 -0
  124. package/Models/DatabaseModels/UserNotificationRule.ts +455 -0
  125. package/Models/DatabaseModels/UserNotificationSetting.ts +280 -0
  126. package/Models/DatabaseModels/UserOnCallLog.ts +700 -0
  127. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +848 -0
  128. package/Models/DatabaseModels/UserSMS.ts +285 -0
  129. package/Models/DatabaseModels/UserTwoFactorAuth.ts +208 -0
  130. package/Models/DatabaseModels/Workflow.ts +524 -0
  131. package/Models/DatabaseModels/WorkflowLog.ts +302 -0
  132. package/Models/DatabaseModels/WorkflowVariable.ts +428 -0
  133. package/Models/Permissions/Permission.ts +0 -0
  134. package/Tests/AppModels/File.test.ts +10 -0
  135. package/Tests/Types/Database/Date.test.ts +17 -12
  136. package/Tests/Types/JSONFunctions.test.ts +1 -1
  137. package/Types/API/HTTPResponse.ts +2 -2
  138. package/Types/AnalyticsDatabase/TableColumn.ts +1 -1
  139. package/Types/BaseDatabase/InBetween.ts +18 -2
  140. package/Types/Database/AccessControl/ColumnAccessControl.ts +1 -1
  141. package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +1 -1
  142. package/Types/Database/TableColumn.ts +2 -2
  143. package/Types/Database/UniqueColumnBy.ts +1 -1
  144. package/Types/Date.ts +47 -0
  145. package/Types/JSONFunctions.ts +3 -1
  146. package/Types/Log/LogSeverity.ts +11 -0
  147. package/Types/Monitor/CriteriaFilter.ts +3 -0
  148. package/Types/Monitor/LogMonitor/LogMonitorResponse.ts +8 -0
  149. package/Types/Monitor/MonitorCriteriaInstance.ts +54 -0
  150. package/Types/Monitor/MonitorStep.ts +26 -0
  151. package/Types/Monitor/MonitorStepLogMonitor.ts +95 -0
  152. package/Types/Monitor/MonitorType.ts +26 -0
  153. package/Types/ObjectID.ts +19 -0
  154. package/Types/OnCallDutyPolicy/Layer.ts +1 -1
  155. package/Types/Workflow/Components/BaseModel.ts +1 -1
  156. package/Utils/API.ts +2 -2
  157. package/Utils/Uptime/Event.ts +11 -0
  158. package/Utils/Uptime/MonitorEvent.ts +6 -0
  159. package/Utils/Uptime/UptimeUtil.ts +362 -0
  160. package/build/dist/{AnalyticsModels/BaseModel.js → Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js} +7 -7
  161. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -0
  162. package/build/dist/{AnalyticsModels → Models/AnalyticsModels/AnalyticsBaseModel}/CommonModel.js +5 -5
  163. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/CommonModel.js.map +1 -0
  164. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/NestedModel.js.map +1 -0
  165. package/build/dist/Models/AnalyticsModels/Index.js +14 -0
  166. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -0
  167. package/build/dist/Models/AnalyticsModels/Log.js +333 -0
  168. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -0
  169. package/build/dist/Models/AnalyticsModels/Metric.js +627 -0
  170. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -0
  171. package/build/dist/Models/AnalyticsModels/MonitorMetricsByMinute.js +149 -0
  172. package/build/dist/Models/AnalyticsModels/MonitorMetricsByMinute.js.map +1 -0
  173. package/build/dist/Models/AnalyticsModels/NestedModels/KeyValueNestedModel.js +51 -0
  174. package/build/dist/Models/AnalyticsModels/NestedModels/KeyValueNestedModel.js.map +1 -0
  175. package/build/dist/Models/AnalyticsModels/Span.js +575 -0
  176. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -0
  177. package/build/dist/Models/AnalyticsModels/TelemetryAttribute.js +153 -0
  178. package/build/dist/Models/AnalyticsModels/TelemetryAttribute.js.map +1 -0
  179. package/build/dist/Models/DatabaseModels/AcmeCertificate.js +167 -0
  180. package/build/dist/Models/DatabaseModels/AcmeCertificate.js.map +1 -0
  181. package/build/dist/Models/DatabaseModels/AcmeChallenge.js +139 -0
  182. package/build/dist/Models/DatabaseModels/AcmeChallenge.js.map +1 -0
  183. package/build/dist/Models/DatabaseModels/ApiKey.js +404 -0
  184. package/build/dist/Models/DatabaseModels/ApiKey.js.map +1 -0
  185. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js +444 -0
  186. package/build/dist/Models/DatabaseModels/ApiKeyPermission.js.map +1 -0
  187. package/build/dist/Models/DatabaseModels/BillingInvoice.js +368 -0
  188. package/build/dist/Models/DatabaseModels/BillingInvoice.js.map +1 -0
  189. package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js +341 -0
  190. package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js.map +1 -0
  191. package/build/dist/Models/DatabaseModels/CallLog.js +330 -0
  192. package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -0
  193. package/build/dist/Models/DatabaseModels/CopilotAction.js +561 -0
  194. package/build/dist/Models/DatabaseModels/CopilotAction.js.map +1 -0
  195. package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js +658 -0
  196. package/build/dist/Models/DatabaseModels/CopilotCodeRepository.js.map +1 -0
  197. package/build/dist/Models/DatabaseModels/CopilotPullRequest.js +482 -0
  198. package/build/dist/Models/DatabaseModels/CopilotPullRequest.js.map +1 -0
  199. package/build/dist/Models/DatabaseModels/DataMigration.js +203 -0
  200. package/build/dist/Models/DatabaseModels/DataMigration.js.map +1 -0
  201. package/build/dist/Models/{AccessControlModel.js → DatabaseModels/DatabaseBaseModel/AccessControlModel.js} +1 -1
  202. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/AccessControlModel.js.map +1 -0
  203. package/build/dist/Models/{BaseModel.js → DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js} +22 -22
  204. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -0
  205. package/build/dist/Models/{FileModel.js → DatabaseModels/DatabaseBaseModel/FileModel.js} +10 -10
  206. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js.map +1 -0
  207. package/build/dist/Models/{GlobalConfig.js → DatabaseModels/DatabaseBaseModel/GlobalConfig.js} +1 -1
  208. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/GlobalConfig.js.map +1 -0
  209. package/build/dist/Models/{TenantModel.js → DatabaseModels/DatabaseBaseModel/TenantModel.js} +1 -1
  210. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/TenantModel.js.map +1 -0
  211. package/build/dist/Models/{UserModel.js → DatabaseModels/DatabaseBaseModel/UserModel.js} +1 -1
  212. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/UserModel.js.map +1 -0
  213. package/build/dist/Models/DatabaseModels/Domain.js +376 -0
  214. package/build/dist/Models/DatabaseModels/Domain.js.map +1 -0
  215. package/build/dist/Models/DatabaseModels/EmailLog.js +362 -0
  216. package/build/dist/Models/DatabaseModels/EmailLog.js.map +1 -0
  217. package/build/dist/Models/DatabaseModels/EmailVerificationToken.js +184 -0
  218. package/build/dist/Models/DatabaseModels/EmailVerificationToken.js.map +1 -0
  219. package/build/dist/Models/DatabaseModels/File.js +37 -0
  220. package/build/dist/Models/DatabaseModels/File.js.map +1 -0
  221. package/build/dist/Models/DatabaseModels/GlobalConfig.js +419 -0
  222. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -0
  223. package/build/dist/Models/DatabaseModels/GreenlockCertificate.js +138 -0
  224. package/build/dist/Models/DatabaseModels/GreenlockCertificate.js.map +1 -0
  225. package/build/dist/Models/DatabaseModels/GreenlockChallenge.js +139 -0
  226. package/build/dist/Models/DatabaseModels/GreenlockChallenge.js.map +1 -0
  227. package/build/dist/Models/DatabaseModels/Incident.js +1106 -0
  228. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -0
  229. package/build/dist/Models/DatabaseModels/IncidentCustomField.js +360 -0
  230. package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -0
  231. package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +391 -0
  232. package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -0
  233. package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js +364 -0
  234. package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js.map +1 -0
  235. package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +434 -0
  236. package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -0
  237. package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +433 -0
  238. package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -0
  239. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +478 -0
  240. package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -0
  241. package/build/dist/Models/DatabaseModels/IncidentSeverity.js +450 -0
  242. package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -0
  243. package/build/dist/Models/DatabaseModels/IncidentState.js +556 -0
  244. package/build/dist/Models/DatabaseModels/IncidentState.js.map +1 -0
  245. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +606 -0
  246. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -0
  247. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +758 -0
  248. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -0
  249. package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +434 -0
  250. package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -0
  251. package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +445 -0
  252. package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -0
  253. package/build/dist/Models/DatabaseModels/Index.js +252 -0
  254. package/build/dist/Models/DatabaseModels/Index.js.map +1 -0
  255. package/build/dist/Models/DatabaseModels/Label.js +403 -0
  256. package/build/dist/Models/DatabaseModels/Label.js.map +1 -0
  257. package/build/dist/Models/DatabaseModels/Monitor.js +1077 -0
  258. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -0
  259. package/build/dist/Models/DatabaseModels/MonitorCustomField.js +360 -0
  260. package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -0
  261. package/build/dist/Models/DatabaseModels/MonitorGroup.js +420 -0
  262. package/build/dist/Models/DatabaseModels/MonitorGroup.js.map +1 -0
  263. package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +442 -0
  264. package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -0
  265. package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +441 -0
  266. package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -0
  267. package/build/dist/Models/DatabaseModels/MonitorGroupResource.js +402 -0
  268. package/build/dist/Models/DatabaseModels/MonitorGroupResource.js.map +1 -0
  269. package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +442 -0
  270. package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -0
  271. package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +441 -0
  272. package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -0
  273. package/build/dist/Models/DatabaseModels/MonitorProbe.js +499 -0
  274. package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -0
  275. package/build/dist/Models/DatabaseModels/MonitorSecret.js +399 -0
  276. package/build/dist/Models/DatabaseModels/MonitorSecret.js.map +1 -0
  277. package/build/dist/Models/DatabaseModels/MonitorStatus.js +520 -0
  278. package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -0
  279. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +550 -0
  280. package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -0
  281. package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js +513 -0
  282. package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js.map +1 -0
  283. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +360 -0
  284. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -0
  285. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js +459 -0
  286. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js.map +1 -0
  287. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js +450 -0
  288. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js.map +1 -0
  289. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js +450 -0
  290. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js.map +1 -0
  291. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js +449 -0
  292. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js.map +1 -0
  293. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +690 -0
  294. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -0
  295. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +747 -0
  296. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -0
  297. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +413 -0
  298. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -0
  299. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js +579 -0
  300. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js.map +1 -0
  301. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js +510 -0
  302. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js.map +1 -0
  303. package/build/dist/Models/DatabaseModels/Probe.js +593 -0
  304. package/build/dist/Models/DatabaseModels/Probe.js.map +1 -0
  305. package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +442 -0
  306. package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -0
  307. package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +441 -0
  308. package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -0
  309. package/build/dist/Models/DatabaseModels/Project.js +1264 -0
  310. package/build/dist/Models/DatabaseModels/Project.js.map +1 -0
  311. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +456 -0
  312. package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -0
  313. package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js +556 -0
  314. package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js.map +1 -0
  315. package/build/dist/Models/DatabaseModels/ProjectSso.js +600 -0
  316. package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -0
  317. package/build/dist/Models/DatabaseModels/PromoCode.js +436 -0
  318. package/build/dist/Models/DatabaseModels/PromoCode.js.map +1 -0
  319. package/build/dist/Models/DatabaseModels/Reseller.js +307 -0
  320. package/build/dist/Models/DatabaseModels/Reseller.js.map +1 -0
  321. package/build/dist/Models/DatabaseModels/ResellerPlan.js +332 -0
  322. package/build/dist/Models/DatabaseModels/ResellerPlan.js.map +1 -0
  323. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +898 -0
  324. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -0
  325. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +360 -0
  326. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -0
  327. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js +389 -0
  328. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js.map +1 -0
  329. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js +364 -0
  330. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js.map +1 -0
  331. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +434 -0
  332. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -0
  333. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +433 -0
  334. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -0
  335. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +478 -0
  336. package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -0
  337. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +591 -0
  338. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -0
  339. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +551 -0
  340. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -0
  341. package/build/dist/Models/DatabaseModels/ServiceCatalog.js +527 -0
  342. package/build/dist/Models/DatabaseModels/ServiceCatalog.js.map +1 -0
  343. package/build/dist/Models/DatabaseModels/ServiceCatalogDependency.js +424 -0
  344. package/build/dist/Models/DatabaseModels/ServiceCatalogDependency.js.map +1 -0
  345. package/build/dist/Models/DatabaseModels/ServiceCatalogMonitor.js +425 -0
  346. package/build/dist/Models/DatabaseModels/ServiceCatalogMonitor.js.map +1 -0
  347. package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerTeam.js +410 -0
  348. package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerTeam.js.map +1 -0
  349. package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerUser.js +409 -0
  350. package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerUser.js.map +1 -0
  351. package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js +425 -0
  352. package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js.map +1 -0
  353. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js +559 -0
  354. package/build/dist/Models/DatabaseModels/ServiceCopilotCodeRepository.js.map +1 -0
  355. package/build/dist/Models/DatabaseModels/ShortLink.js +137 -0
  356. package/build/dist/Models/DatabaseModels/ShortLink.js.map +1 -0
  357. package/build/dist/Models/DatabaseModels/SmsLog.js +330 -0
  358. package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -0
  359. package/build/dist/Models/DatabaseModels/StatusPage.js +1927 -0
  360. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -0
  361. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +532 -0
  362. package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -0
  363. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +360 -0
  364. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -0
  365. package/build/dist/Models/DatabaseModels/StatusPageDomain.js +568 -0
  366. package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -0
  367. package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js +438 -0
  368. package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js.map +1 -0
  369. package/build/dist/Models/DatabaseModels/StatusPageGroup.js +502 -0
  370. package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -0
  371. package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js +438 -0
  372. package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js.map +1 -0
  373. package/build/dist/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.js +435 -0
  374. package/build/dist/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.js.map +1 -0
  375. package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +442 -0
  376. package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -0
  377. package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +441 -0
  378. package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -0
  379. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +489 -0
  380. package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -0
  381. package/build/dist/Models/DatabaseModels/StatusPageResource.js +839 -0
  382. package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -0
  383. package/build/dist/Models/DatabaseModels/StatusPageSso.js +607 -0
  384. package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -0
  385. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +594 -0
  386. package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -0
  387. package/build/dist/Models/DatabaseModels/Team.js +463 -0
  388. package/build/dist/Models/DatabaseModels/Team.js.map +1 -0
  389. package/build/dist/Models/DatabaseModels/TeamMember.js +442 -0
  390. package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -0
  391. package/build/dist/Models/DatabaseModels/TeamPermission.js +450 -0
  392. package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -0
  393. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +337 -0
  394. package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -0
  395. package/build/dist/Models/DatabaseModels/TelemetryService.js +539 -0
  396. package/build/dist/Models/DatabaseModels/TelemetryService.js.map +1 -0
  397. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +439 -0
  398. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -0
  399. package/build/dist/Models/DatabaseModels/User.js +782 -0
  400. package/build/dist/Models/DatabaseModels/User.js.map +1 -0
  401. package/build/dist/Models/DatabaseModels/UserCall.js +305 -0
  402. package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -0
  403. package/build/dist/Models/DatabaseModels/UserEmail.js +305 -0
  404. package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -0
  405. package/build/dist/Models/DatabaseModels/UserNotificationRule.js +475 -0
  406. package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -0
  407. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +302 -0
  408. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -0
  409. package/build/dist/Models/DatabaseModels/UserOnCallLog.js +714 -0
  410. package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -0
  411. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +870 -0
  412. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -0
  413. package/build/dist/Models/DatabaseModels/UserSMS.js +305 -0
  414. package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -0
  415. package/build/dist/Models/DatabaseModels/UserTwoFactorAuth.js +228 -0
  416. package/build/dist/Models/DatabaseModels/UserTwoFactorAuth.js.map +1 -0
  417. package/build/dist/Models/DatabaseModels/Workflow.js +542 -0
  418. package/build/dist/Models/DatabaseModels/Workflow.js.map +1 -0
  419. package/build/dist/Models/DatabaseModels/WorkflowLog.js +327 -0
  420. package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -0
  421. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +448 -0
  422. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -0
  423. package/build/dist/Models/Permissions/Permission.js +2 -0
  424. package/build/dist/Models/Permissions/Permission.js.map +1 -0
  425. package/build/dist/Tests/AppModels/File.test.js +10 -0
  426. package/build/dist/Tests/AppModels/File.test.js.map +1 -0
  427. package/build/dist/Tests/Types/Database/Date.test.js +10 -12
  428. package/build/dist/Tests/Types/Database/Date.test.js.map +1 -1
  429. package/build/dist/Tests/Types/JSONFunctions.test.js +1 -1
  430. package/build/dist/Tests/Types/JSONFunctions.test.js.map +1 -1
  431. package/build/dist/Types/BaseDatabase/InBetween.js +14 -2
  432. package/build/dist/Types/BaseDatabase/InBetween.js.map +1 -1
  433. package/build/dist/Types/Date.js +33 -0
  434. package/build/dist/Types/Date.js.map +1 -1
  435. package/build/dist/Types/JSONFunctions.js +4 -1
  436. package/build/dist/Types/JSONFunctions.js.map +1 -1
  437. package/build/dist/Types/Log/LogSeverity.js +12 -0
  438. package/build/dist/Types/Log/LogSeverity.js.map +1 -0
  439. package/build/dist/Types/Monitor/CriteriaFilter.js +2 -0
  440. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  441. package/build/dist/Types/Monitor/LogMonitor/LogMonitorResponse.js +2 -0
  442. package/build/dist/Types/Monitor/LogMonitor/LogMonitorResponse.js.map +1 -0
  443. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +49 -0
  444. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  445. package/build/dist/Types/Monitor/MonitorStep.js +18 -0
  446. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  447. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +59 -0
  448. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -0
  449. package/build/dist/Types/Monitor/MonitorType.js +25 -0
  450. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  451. package/build/dist/Types/ObjectID.js +16 -0
  452. package/build/dist/Types/ObjectID.js.map +1 -1
  453. package/build/dist/Utils/Uptime/Event.js +2 -0
  454. package/build/dist/Utils/Uptime/Event.js.map +1 -0
  455. package/build/dist/Utils/Uptime/MonitorEvent.js +2 -0
  456. package/build/dist/Utils/Uptime/MonitorEvent.js.map +1 -0
  457. package/build/dist/Utils/Uptime/UptimeUtil.js +238 -0
  458. package/build/dist/Utils/Uptime/UptimeUtil.js.map +1 -0
  459. package/package.json +1 -1
  460. package/build/dist/AnalyticsModels/BaseModel.js.map +0 -1
  461. package/build/dist/AnalyticsModels/CommonModel.js.map +0 -1
  462. package/build/dist/AnalyticsModels/NestedModel.js.map +0 -1
  463. package/build/dist/Models/AccessControlModel.js.map +0 -1
  464. package/build/dist/Models/BaseModel.js.map +0 -1
  465. package/build/dist/Models/FileModel.js.map +0 -1
  466. package/build/dist/Models/GlobalConfig.js.map +0 -1
  467. package/build/dist/Models/TenantModel.js.map +0 -1
  468. package/build/dist/Models/UserModel.js.map +0 -1
  469. /package/build/dist/{AnalyticsModels → Models/AnalyticsModels/AnalyticsBaseModel}/NestedModel.js +0 -0
@@ -0,0 +1,1867 @@
1
+ import File from "./File";
2
+ import Label from "./Label";
3
+ import MonitorStatus from "./MonitorStatus";
4
+ import Project from "./Project";
5
+ import ProjectCallSMSConfig from "./ProjectCallSMSConfig";
6
+ import ProjectSmtpConfig from "./ProjectSmtpConfig";
7
+ import User from "./User";
8
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
9
+ import Route from "../../Types/API/Route";
10
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
11
+ import Color from "../../Types/Color";
12
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
13
+ import ColumnBillingAccessControl from "../../Types/Database/AccessControl/ColumnBillingAccessControl";
14
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
15
+ import AccessControlColumn from "../../Types/Database/AccessControlColumn";
16
+ import ColumnLength from "../../Types/Database/ColumnLength";
17
+ import ColumnType from "../../Types/Database/ColumnType";
18
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
19
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
20
+ import EnableWorkflow from "../../Types/Database/EnableWorkflow";
21
+ import SlugifyColumn from "../../Types/Database/SlugifyColumn";
22
+ import TableColumn from "../../Types/Database/TableColumn";
23
+ import TableColumnType from "../../Types/Database/TableColumnType";
24
+ import TableMetadata from "../../Types/Database/TableMetadata";
25
+ import TenantColumn from "../../Types/Database/TenantColumn";
26
+ import UniqueColumnBy from "../../Types/Database/UniqueColumnBy";
27
+ import Recurring from "../../Types/Events/Recurring";
28
+ import IconProp from "../../Types/Icon/IconProp";
29
+ import { JSONObject } from "../../Types/JSON";
30
+ import ObjectID from "../../Types/ObjectID";
31
+ import Permission from "../../Types/Permission";
32
+ import Timezone from "../../Types/Timezone";
33
+ import {
34
+ Column,
35
+ Entity,
36
+ Index,
37
+ JoinColumn,
38
+ JoinTable,
39
+ ManyToMany,
40
+ ManyToOne,
41
+ } from "typeorm";
42
+
43
+ @EnableDocumentation()
44
+ @AccessControlColumn("labels")
45
+ @TenantColumn("projectId")
46
+ @TableAccessControl({
47
+ create: [
48
+ Permission.ProjectOwner,
49
+ Permission.ProjectAdmin,
50
+ Permission.ProjectMember,
51
+ Permission.CreateProjectStatusPage,
52
+ ],
53
+ read: [
54
+ Permission.ProjectOwner,
55
+ Permission.ProjectAdmin,
56
+ Permission.ProjectMember,
57
+ Permission.ReadProjectStatusPage,
58
+ ],
59
+ delete: [
60
+ Permission.ProjectOwner,
61
+ Permission.ProjectAdmin,
62
+ Permission.ProjectMember,
63
+ Permission.DeleteProjectStatusPage,
64
+ ],
65
+ update: [
66
+ Permission.ProjectOwner,
67
+ Permission.ProjectAdmin,
68
+ Permission.ProjectMember,
69
+ Permission.EditProjectStatusPage,
70
+ ],
71
+ })
72
+ @EnableWorkflow({
73
+ create: true,
74
+ delete: true,
75
+ update: true,
76
+ read: true,
77
+ })
78
+ @CrudApiEndpoint(new Route("/status-page"))
79
+ @SlugifyColumn("name", "slug")
80
+ @Entity({
81
+ name: "StatusPage",
82
+ })
83
+ @TableMetadata({
84
+ tableName: "StatusPage",
85
+ singularName: "Status Page",
86
+ pluralName: "Status Pages",
87
+ icon: IconProp.CheckCircle,
88
+ tableDescription: "Manage status pages for your project.",
89
+ })
90
+ export default class StatusPage extends BaseModel {
91
+ @ColumnAccessControl({
92
+ create: [
93
+ Permission.ProjectOwner,
94
+ Permission.ProjectAdmin,
95
+ Permission.ProjectMember,
96
+ Permission.CreateProjectStatusPage,
97
+ ],
98
+ read: [
99
+ Permission.ProjectOwner,
100
+ Permission.ProjectAdmin,
101
+ Permission.ProjectMember,
102
+ Permission.ReadProjectStatusPage,
103
+ ],
104
+ update: [],
105
+ })
106
+ @TableColumn({
107
+ manyToOneRelationColumn: "projectId",
108
+ type: TableColumnType.Entity,
109
+ modelType: Project,
110
+ title: "Project",
111
+ description: "Relation to Project Resource in which this object belongs",
112
+ })
113
+ @ManyToOne(
114
+ () => {
115
+ return Project;
116
+ },
117
+ {
118
+ eager: false,
119
+ nullable: true,
120
+ onDelete: "CASCADE",
121
+ orphanedRowAction: "nullify",
122
+ },
123
+ )
124
+ @JoinColumn({ name: "projectId" })
125
+ public project?: Project = undefined;
126
+
127
+ @ColumnAccessControl({
128
+ create: [
129
+ Permission.ProjectOwner,
130
+ Permission.ProjectAdmin,
131
+ Permission.ProjectMember,
132
+ Permission.CreateProjectStatusPage,
133
+ ],
134
+ read: [
135
+ Permission.ProjectOwner,
136
+ Permission.ProjectAdmin,
137
+ Permission.ProjectMember,
138
+ Permission.ReadProjectStatusPage,
139
+ ],
140
+ update: [],
141
+ })
142
+ @Index()
143
+ @TableColumn({
144
+ type: TableColumnType.ObjectID,
145
+ required: true,
146
+ canReadOnRelationQuery: true,
147
+ title: "Project ID",
148
+ description: "ID of your OneUptime Project in which this object belongs",
149
+ })
150
+ @Column({
151
+ type: ColumnType.ObjectID,
152
+ nullable: false,
153
+ transformer: ObjectID.getDatabaseTransformer(),
154
+ })
155
+ public projectId?: ObjectID = undefined;
156
+
157
+ @UniqueColumnBy("projectId")
158
+ @ColumnAccessControl({
159
+ create: [
160
+ Permission.ProjectOwner,
161
+ Permission.ProjectAdmin,
162
+ Permission.ProjectMember,
163
+ Permission.CreateProjectStatusPage,
164
+ ],
165
+ read: [
166
+ Permission.ProjectOwner,
167
+ Permission.ProjectAdmin,
168
+ Permission.ProjectMember,
169
+ Permission.ReadProjectStatusPage,
170
+ ],
171
+ update: [
172
+ Permission.ProjectOwner,
173
+ Permission.ProjectAdmin,
174
+ Permission.ProjectMember,
175
+ Permission.EditProjectStatusPage,
176
+ ],
177
+ })
178
+ @Index()
179
+ @TableColumn({
180
+ required: true,
181
+ type: TableColumnType.ShortText,
182
+ title: "Name",
183
+ description: "Any friendly name of this object",
184
+ canReadOnRelationQuery: true,
185
+ })
186
+ @Column({
187
+ nullable: false,
188
+ type: ColumnType.ShortText,
189
+ length: ColumnLength.ShortText,
190
+ })
191
+ public name?: string = undefined;
192
+
193
+ @ColumnAccessControl({
194
+ create: [
195
+ Permission.ProjectOwner,
196
+ Permission.ProjectAdmin,
197
+ Permission.ProjectMember,
198
+ Permission.CreateProjectStatusPage,
199
+ ],
200
+ read: [
201
+ Permission.ProjectOwner,
202
+ Permission.ProjectAdmin,
203
+ Permission.ProjectMember,
204
+ Permission.ReadProjectStatusPage,
205
+ ],
206
+ update: [
207
+ Permission.ProjectOwner,
208
+ Permission.ProjectAdmin,
209
+ Permission.ProjectMember,
210
+ Permission.EditProjectStatusPage,
211
+ ],
212
+ })
213
+ @TableColumn({
214
+ required: false,
215
+ type: TableColumnType.ShortText,
216
+ title: "Page Title",
217
+ description: "Title of your Status Page. This is used for SEO.",
218
+ })
219
+ @Column({
220
+ nullable: true,
221
+ type: ColumnType.ShortText,
222
+ length: ColumnLength.ShortText,
223
+ })
224
+ public pageTitle?: string = undefined;
225
+
226
+ @ColumnAccessControl({
227
+ create: [
228
+ Permission.ProjectOwner,
229
+ Permission.ProjectAdmin,
230
+ Permission.ProjectMember,
231
+ Permission.CreateProjectStatusPage,
232
+ ],
233
+ read: [
234
+ Permission.ProjectOwner,
235
+ Permission.ProjectAdmin,
236
+ Permission.ProjectMember,
237
+ Permission.ReadProjectStatusPage,
238
+ ],
239
+ update: [
240
+ Permission.ProjectOwner,
241
+ Permission.ProjectAdmin,
242
+ Permission.ProjectMember,
243
+ Permission.EditProjectStatusPage,
244
+ ],
245
+ })
246
+ @TableColumn({
247
+ required: false,
248
+ type: TableColumnType.LongText,
249
+ title: "Page Description",
250
+ description: "Description of your Status Page. This is used for SEO.",
251
+ })
252
+ @Column({
253
+ nullable: true,
254
+ type: ColumnType.LongText,
255
+ length: ColumnLength.LongText,
256
+ })
257
+ public pageDescription?: string = undefined;
258
+
259
+ @ColumnAccessControl({
260
+ create: [
261
+ Permission.ProjectOwner,
262
+ Permission.ProjectAdmin,
263
+ Permission.ProjectMember,
264
+ Permission.CreateProjectStatusPage,
265
+ ],
266
+ read: [
267
+ Permission.ProjectOwner,
268
+ Permission.ProjectAdmin,
269
+ Permission.ProjectMember,
270
+ Permission.ReadProjectStatusPage,
271
+ ],
272
+ update: [
273
+ Permission.ProjectOwner,
274
+ Permission.ProjectAdmin,
275
+ Permission.ProjectMember,
276
+ Permission.EditProjectStatusPage,
277
+ ],
278
+ })
279
+ @TableColumn({
280
+ required: false,
281
+ type: TableColumnType.LongText,
282
+ title: "Description",
283
+ description: "Friendly description that will help you remember",
284
+ })
285
+ @Column({
286
+ nullable: true,
287
+ type: ColumnType.LongText,
288
+ length: ColumnLength.LongText,
289
+ })
290
+ public description?: string = undefined;
291
+
292
+ @Index()
293
+ @ColumnAccessControl({
294
+ create: [
295
+ Permission.ProjectOwner,
296
+ Permission.ProjectAdmin,
297
+ Permission.ProjectMember,
298
+ Permission.CreateProjectStatusPage,
299
+ ],
300
+ read: [
301
+ Permission.ProjectOwner,
302
+ Permission.ProjectAdmin,
303
+ Permission.ProjectMember,
304
+ Permission.ReadProjectStatusPage,
305
+ ],
306
+ update: [],
307
+ })
308
+ @TableColumn({
309
+ required: true,
310
+ unique: true,
311
+ type: TableColumnType.Slug,
312
+ title: "Slug",
313
+ description: "Friendly globally unique name for your object",
314
+ })
315
+ @Column({
316
+ nullable: false,
317
+ type: ColumnType.Slug,
318
+ length: ColumnLength.Slug,
319
+ unique: true,
320
+ })
321
+ public slug?: string = undefined;
322
+
323
+ @ColumnAccessControl({
324
+ create: [
325
+ Permission.ProjectOwner,
326
+ Permission.ProjectAdmin,
327
+ Permission.ProjectMember,
328
+ Permission.CreateProjectStatusPage,
329
+ ],
330
+ read: [
331
+ Permission.ProjectOwner,
332
+ Permission.ProjectAdmin,
333
+ Permission.ProjectMember,
334
+ Permission.ReadProjectStatusPage,
335
+ ],
336
+ update: [],
337
+ })
338
+ @TableColumn({
339
+ manyToOneRelationColumn: "createdByUserId",
340
+ type: TableColumnType.Entity,
341
+ modelType: User,
342
+ title: "Created by User",
343
+ description:
344
+ "Relation to User who created this object (if this object was created by a User)",
345
+ })
346
+ @ManyToOne(
347
+ () => {
348
+ return User;
349
+ },
350
+ {
351
+ eager: false,
352
+ nullable: true,
353
+ onDelete: "CASCADE",
354
+ orphanedRowAction: "nullify",
355
+ },
356
+ )
357
+ @JoinColumn({ name: "createdByUserId" })
358
+ public createdByUser?: User = undefined;
359
+
360
+ @ColumnAccessControl({
361
+ create: [
362
+ Permission.ProjectOwner,
363
+ Permission.ProjectAdmin,
364
+ Permission.ProjectMember,
365
+ Permission.CreateProjectStatusPage,
366
+ ],
367
+ read: [
368
+ Permission.ProjectOwner,
369
+ Permission.ProjectAdmin,
370
+ Permission.ProjectMember,
371
+ Permission.ReadProjectStatusPage,
372
+ ],
373
+ update: [
374
+ Permission.ProjectOwner,
375
+ Permission.ProjectAdmin,
376
+ Permission.ProjectMember,
377
+ Permission.EditProjectStatusPage,
378
+ ],
379
+ })
380
+ @TableColumn({
381
+ required: false,
382
+ type: TableColumnType.EntityArray,
383
+ modelType: Label,
384
+ title: "Labels",
385
+ description:
386
+ "Relation to Labels Array where this object is categorized in.",
387
+ })
388
+ @ManyToMany(
389
+ () => {
390
+ return Label;
391
+ },
392
+ { eager: false },
393
+ )
394
+ @JoinTable({
395
+ name: "StatusPageLabel",
396
+ inverseJoinColumn: {
397
+ name: "labelId",
398
+ referencedColumnName: "_id",
399
+ },
400
+ joinColumn: {
401
+ name: "statusPageId",
402
+ referencedColumnName: "_id",
403
+ },
404
+ })
405
+ public labels?: Array<Label> = undefined;
406
+
407
+ @ColumnAccessControl({
408
+ create: [
409
+ Permission.ProjectOwner,
410
+ Permission.ProjectAdmin,
411
+ Permission.ProjectMember,
412
+ Permission.CreateProjectStatusPage,
413
+ ],
414
+ read: [
415
+ Permission.ProjectOwner,
416
+ Permission.ProjectAdmin,
417
+ Permission.ProjectMember,
418
+ Permission.ReadProjectStatusPage,
419
+ ],
420
+ update: [],
421
+ })
422
+ @TableColumn({
423
+ type: TableColumnType.ObjectID,
424
+ title: "Created by User ID",
425
+ description:
426
+ "User ID who created this object (if this object was created by a User)",
427
+ })
428
+ @Column({
429
+ type: ColumnType.ObjectID,
430
+ nullable: true,
431
+ transformer: ObjectID.getDatabaseTransformer(),
432
+ })
433
+ public createdByUserId?: ObjectID = undefined;
434
+
435
+ @ColumnAccessControl({
436
+ create: [],
437
+ read: [],
438
+ update: [],
439
+ })
440
+ @TableColumn({
441
+ manyToOneRelationColumn: "deletedByUserId",
442
+ type: TableColumnType.Entity,
443
+ title: "Deleted by User",
444
+ description:
445
+ "Relation to User who deleted this object (if this object was deleted by a User)",
446
+ })
447
+ @ManyToOne(
448
+ () => {
449
+ return User;
450
+ },
451
+ {
452
+ cascade: false,
453
+ eager: false,
454
+ nullable: true,
455
+ onDelete: "CASCADE",
456
+ orphanedRowAction: "nullify",
457
+ },
458
+ )
459
+ @JoinColumn({ name: "deletedByUserId" })
460
+ public deletedByUser?: User = undefined;
461
+
462
+ @ColumnAccessControl({
463
+ create: [],
464
+ read: [],
465
+ update: [],
466
+ })
467
+ @TableColumn({
468
+ type: TableColumnType.ObjectID,
469
+ title: "Deleted by User ID",
470
+ description:
471
+ "User ID who deleted this object (if this object was deleted by a User)",
472
+ })
473
+ @Column({
474
+ type: ColumnType.ObjectID,
475
+ nullable: true,
476
+ transformer: ObjectID.getDatabaseTransformer(),
477
+ })
478
+ public deletedByUserId?: ObjectID = undefined;
479
+
480
+ //// Branding Files.
481
+
482
+ @ColumnAccessControl({
483
+ create: [
484
+ Permission.ProjectOwner,
485
+ Permission.ProjectAdmin,
486
+ Permission.ProjectMember,
487
+ Permission.CreateProjectStatusPage,
488
+ ],
489
+ read: [
490
+ Permission.ProjectOwner,
491
+ Permission.ProjectAdmin,
492
+ Permission.ProjectMember,
493
+ Permission.ReadProjectStatusPage,
494
+ ],
495
+ update: [
496
+ Permission.ProjectOwner,
497
+ Permission.ProjectAdmin,
498
+ Permission.ProjectMember,
499
+ Permission.EditProjectStatusPage,
500
+ ],
501
+ })
502
+ @TableColumn({
503
+ manyToOneRelationColumn: "faviconFileId",
504
+ type: TableColumnType.Entity,
505
+ modelType: File,
506
+ title: "Favicon",
507
+ description: "Status Page Favicon",
508
+ })
509
+ @ManyToOne(
510
+ () => {
511
+ return File;
512
+ },
513
+ {
514
+ eager: false,
515
+ nullable: true,
516
+ onDelete: "CASCADE",
517
+ orphanedRowAction: "delete",
518
+ },
519
+ )
520
+ @JoinColumn({ name: "faviconFileId" })
521
+ public faviconFile?: File = undefined;
522
+
523
+ @ColumnAccessControl({
524
+ create: [
525
+ Permission.ProjectOwner,
526
+ Permission.ProjectAdmin,
527
+ Permission.ProjectMember,
528
+ Permission.CreateProjectStatusPage,
529
+ ],
530
+ read: [
531
+ Permission.ProjectOwner,
532
+ Permission.ProjectAdmin,
533
+ Permission.ProjectMember,
534
+ Permission.ReadProjectStatusPage,
535
+ ],
536
+ update: [
537
+ Permission.ProjectOwner,
538
+ Permission.ProjectAdmin,
539
+ Permission.ProjectMember,
540
+ Permission.EditProjectStatusPage,
541
+ ],
542
+ })
543
+ @TableColumn({
544
+ type: TableColumnType.ObjectID,
545
+ title: "Favicon",
546
+ description: "Status Page Favicon File ID",
547
+ })
548
+ @Column({
549
+ type: ColumnType.ObjectID,
550
+ nullable: true,
551
+ transformer: ObjectID.getDatabaseTransformer(),
552
+ })
553
+ public faviconFileId?: ObjectID = undefined;
554
+
555
+ @ColumnAccessControl({
556
+ create: [
557
+ Permission.ProjectOwner,
558
+ Permission.ProjectAdmin,
559
+ Permission.ProjectMember,
560
+ Permission.CreateProjectStatusPage,
561
+ ],
562
+ read: [
563
+ Permission.ProjectOwner,
564
+ Permission.ProjectAdmin,
565
+ Permission.ProjectMember,
566
+ Permission.ReadProjectStatusPage,
567
+ ],
568
+ update: [
569
+ Permission.ProjectOwner,
570
+ Permission.ProjectAdmin,
571
+ Permission.ProjectMember,
572
+ Permission.EditProjectStatusPage,
573
+ ],
574
+ })
575
+ @TableColumn({
576
+ manyToOneRelationColumn: "logoFileId",
577
+ type: TableColumnType.Entity,
578
+ modelType: File,
579
+ title: "Logo",
580
+ description: "Status Page Logo",
581
+ })
582
+ @ManyToOne(
583
+ () => {
584
+ return File;
585
+ },
586
+ {
587
+ eager: false,
588
+ nullable: true,
589
+ onDelete: "CASCADE",
590
+ orphanedRowAction: "delete",
591
+ },
592
+ )
593
+ @JoinColumn({ name: "logoFileId" })
594
+ public logoFile?: File = undefined;
595
+
596
+ @ColumnAccessControl({
597
+ create: [
598
+ Permission.ProjectOwner,
599
+ Permission.ProjectAdmin,
600
+ Permission.ProjectMember,
601
+ Permission.CreateProjectStatusPage,
602
+ ],
603
+ read: [
604
+ Permission.ProjectOwner,
605
+ Permission.ProjectAdmin,
606
+ Permission.ProjectMember,
607
+ Permission.ReadProjectStatusPage,
608
+ ],
609
+ update: [
610
+ Permission.ProjectOwner,
611
+ Permission.ProjectAdmin,
612
+ Permission.ProjectMember,
613
+ Permission.EditProjectStatusPage,
614
+ ],
615
+ })
616
+ @TableColumn({
617
+ type: TableColumnType.ObjectID,
618
+ title: "Logo",
619
+ description: "Status Page Logo File ID",
620
+ })
621
+ @Column({
622
+ type: ColumnType.ObjectID,
623
+ nullable: true,
624
+ transformer: ObjectID.getDatabaseTransformer(),
625
+ })
626
+ public logoFileId?: ObjectID = undefined;
627
+
628
+ @ColumnAccessControl({
629
+ create: [
630
+ Permission.ProjectOwner,
631
+ Permission.ProjectAdmin,
632
+ Permission.ProjectMember,
633
+ Permission.CreateProjectStatusPage,
634
+ ],
635
+ read: [
636
+ Permission.ProjectOwner,
637
+ Permission.ProjectAdmin,
638
+ Permission.ProjectMember,
639
+ Permission.ReadProjectStatusPage,
640
+ ],
641
+ update: [
642
+ Permission.ProjectOwner,
643
+ Permission.ProjectAdmin,
644
+ Permission.ProjectMember,
645
+ Permission.EditProjectStatusPage,
646
+ ],
647
+ })
648
+ @TableColumn({
649
+ manyToOneRelationColumn: "coverImageFileId",
650
+ type: TableColumnType.Entity,
651
+ modelType: File,
652
+ title: "Cover Image",
653
+ description: "Status Page Cover Image",
654
+ })
655
+ @ManyToOne(
656
+ () => {
657
+ return File;
658
+ },
659
+ {
660
+ eager: false,
661
+ nullable: true,
662
+ onDelete: "CASCADE",
663
+ orphanedRowAction: "delete",
664
+ },
665
+ )
666
+ @JoinColumn({ name: "coverImageFileId" })
667
+ public coverImageFile?: File = undefined;
668
+
669
+ @ColumnAccessControl({
670
+ create: [
671
+ Permission.ProjectOwner,
672
+ Permission.ProjectAdmin,
673
+ Permission.ProjectMember,
674
+ Permission.CreateProjectStatusPage,
675
+ ],
676
+ read: [
677
+ Permission.ProjectOwner,
678
+ Permission.ProjectAdmin,
679
+ Permission.ProjectMember,
680
+ Permission.ReadProjectStatusPage,
681
+ ],
682
+ update: [
683
+ Permission.ProjectOwner,
684
+ Permission.ProjectAdmin,
685
+ Permission.ProjectMember,
686
+ Permission.EditProjectStatusPage,
687
+ ],
688
+ })
689
+ @TableColumn({
690
+ type: TableColumnType.ObjectID,
691
+ title: "Cover Image",
692
+ description: "Status Page Cover Image ID",
693
+ })
694
+ @Column({
695
+ type: ColumnType.ObjectID,
696
+ nullable: true,
697
+ transformer: ObjectID.getDatabaseTransformer(),
698
+ })
699
+ public coverImageFileId?: ObjectID = undefined;
700
+
701
+ @ColumnAccessControl({
702
+ create: [
703
+ Permission.ProjectOwner,
704
+ Permission.ProjectAdmin,
705
+ Permission.ProjectMember,
706
+ Permission.CreateProjectStatusPage,
707
+ ],
708
+ read: [
709
+ Permission.ProjectOwner,
710
+ Permission.ProjectAdmin,
711
+ Permission.ProjectMember,
712
+ Permission.ReadProjectStatusPage,
713
+ ],
714
+ update: [
715
+ Permission.ProjectOwner,
716
+ Permission.ProjectAdmin,
717
+ Permission.ProjectMember,
718
+ Permission.EditProjectStatusPage,
719
+ ],
720
+ })
721
+ @TableColumn({
722
+ required: false,
723
+ type: TableColumnType.HTML,
724
+ title: "Header HTML",
725
+ description: "Status Page Custom HTML Header",
726
+ })
727
+ @Column({
728
+ nullable: true,
729
+ type: ColumnType.HTML,
730
+ })
731
+ @ColumnBillingAccessControl({
732
+ read: PlanType.Free,
733
+ update: PlanType.Growth,
734
+ create: PlanType.Free,
735
+ })
736
+ public headerHTML?: string = undefined;
737
+
738
+ @ColumnAccessControl({
739
+ create: [
740
+ Permission.ProjectOwner,
741
+ Permission.ProjectAdmin,
742
+ Permission.ProjectMember,
743
+ Permission.CreateProjectStatusPage,
744
+ ],
745
+ read: [
746
+ Permission.ProjectOwner,
747
+ Permission.ProjectAdmin,
748
+ Permission.ProjectMember,
749
+ Permission.ReadProjectStatusPage,
750
+ ],
751
+ update: [
752
+ Permission.ProjectOwner,
753
+ Permission.ProjectAdmin,
754
+ Permission.ProjectMember,
755
+ Permission.EditProjectStatusPage,
756
+ ],
757
+ })
758
+ @TableColumn({
759
+ required: false,
760
+ type: TableColumnType.HTML,
761
+ title: "Footer HTML",
762
+ description: "Status Page Custom HTML Footer",
763
+ })
764
+ @Column({
765
+ nullable: true,
766
+ type: ColumnType.HTML,
767
+ })
768
+ @ColumnBillingAccessControl({
769
+ read: PlanType.Free,
770
+ update: PlanType.Growth,
771
+ create: PlanType.Free,
772
+ })
773
+ public footerHTML?: string = undefined;
774
+
775
+ @ColumnAccessControl({
776
+ create: [
777
+ Permission.ProjectOwner,
778
+ Permission.ProjectAdmin,
779
+ Permission.ProjectMember,
780
+ Permission.CreateProjectStatusPage,
781
+ ],
782
+ read: [
783
+ Permission.ProjectOwner,
784
+ Permission.ProjectAdmin,
785
+ Permission.ProjectMember,
786
+ Permission.ReadProjectStatusPage,
787
+ ],
788
+ update: [
789
+ Permission.ProjectOwner,
790
+ Permission.ProjectAdmin,
791
+ Permission.ProjectMember,
792
+ Permission.EditProjectStatusPage,
793
+ ],
794
+ })
795
+ @TableColumn({
796
+ required: false,
797
+ type: TableColumnType.CSS,
798
+ title: "CSS",
799
+ description: "Status Page Custom CSS Header",
800
+ })
801
+ @Column({
802
+ nullable: true,
803
+ type: ColumnType.CSS,
804
+ })
805
+ @ColumnBillingAccessControl({
806
+ read: PlanType.Free,
807
+ update: PlanType.Growth,
808
+ create: PlanType.Free,
809
+ })
810
+ public customCSS?: string = undefined;
811
+
812
+ @ColumnAccessControl({
813
+ create: [
814
+ Permission.ProjectOwner,
815
+ Permission.ProjectAdmin,
816
+ Permission.ProjectMember,
817
+ Permission.CreateProjectStatusPage,
818
+ ],
819
+ read: [
820
+ Permission.ProjectOwner,
821
+ Permission.ProjectAdmin,
822
+ Permission.ProjectMember,
823
+ Permission.ReadProjectStatusPage,
824
+ ],
825
+ update: [
826
+ Permission.ProjectOwner,
827
+ Permission.ProjectAdmin,
828
+ Permission.ProjectMember,
829
+ Permission.EditProjectStatusPage,
830
+ ],
831
+ })
832
+ @TableColumn({
833
+ required: false,
834
+ type: TableColumnType.JavaScript,
835
+ title: "JavaScript",
836
+ description:
837
+ "Status Page Custom JavaScript. This runs when the status page is loaded.",
838
+ })
839
+ @Column({
840
+ nullable: true,
841
+ type: ColumnType.JavaScript,
842
+ })
843
+ @ColumnBillingAccessControl({
844
+ read: PlanType.Free,
845
+ update: PlanType.Growth,
846
+ create: PlanType.Free,
847
+ })
848
+ public customJavaScript?: string = undefined;
849
+
850
+ @ColumnAccessControl({
851
+ create: [
852
+ Permission.ProjectOwner,
853
+ Permission.ProjectAdmin,
854
+ Permission.ProjectMember,
855
+ Permission.CreateProjectStatusPage,
856
+ ],
857
+ read: [
858
+ Permission.ProjectOwner,
859
+ Permission.ProjectAdmin,
860
+ Permission.ProjectMember,
861
+ Permission.ReadProjectStatusPage,
862
+ ],
863
+ update: [
864
+ Permission.ProjectOwner,
865
+ Permission.ProjectAdmin,
866
+ Permission.ProjectMember,
867
+ Permission.EditProjectStatusPage,
868
+ ],
869
+ })
870
+ @TableColumn({
871
+ isDefaultValueColumn: true,
872
+ type: TableColumnType.Boolean,
873
+ title: "Public Status Page",
874
+ description: "Is this status page public?",
875
+ })
876
+ @Column({
877
+ type: ColumnType.Boolean,
878
+ default: true,
879
+ })
880
+ @ColumnBillingAccessControl({
881
+ read: PlanType.Free,
882
+ update: PlanType.Growth,
883
+ create: PlanType.Free,
884
+ })
885
+ public isPublicStatusPage?: boolean = undefined;
886
+
887
+ @ColumnAccessControl({
888
+ create: [
889
+ Permission.ProjectOwner,
890
+ Permission.ProjectAdmin,
891
+ Permission.ProjectMember,
892
+ Permission.CreateProjectStatusPage,
893
+ ],
894
+ read: [
895
+ Permission.ProjectOwner,
896
+ Permission.ProjectAdmin,
897
+ Permission.ProjectMember,
898
+ Permission.ReadProjectStatusPage,
899
+ ],
900
+ update: [
901
+ Permission.ProjectOwner,
902
+ Permission.ProjectAdmin,
903
+ Permission.ProjectMember,
904
+ Permission.EditProjectStatusPage,
905
+ ],
906
+ })
907
+ @TableColumn({
908
+ isDefaultValueColumn: true,
909
+ type: TableColumnType.Boolean,
910
+ title: "Show Incident Labels",
911
+ description: "Show Incident Labels on Status Page?",
912
+ })
913
+ @Column({
914
+ type: ColumnType.Boolean,
915
+ default: false,
916
+ })
917
+ @ColumnBillingAccessControl({
918
+ read: PlanType.Free,
919
+ update: PlanType.Growth,
920
+ create: PlanType.Free,
921
+ })
922
+ public showIncidentLabelsOnStatusPage?: boolean = undefined;
923
+
924
+ @ColumnAccessControl({
925
+ create: [
926
+ Permission.ProjectOwner,
927
+ Permission.ProjectAdmin,
928
+ Permission.ProjectMember,
929
+ Permission.CreateProjectStatusPage,
930
+ ],
931
+ read: [
932
+ Permission.ProjectOwner,
933
+ Permission.ProjectAdmin,
934
+ Permission.ProjectMember,
935
+ Permission.ReadProjectStatusPage,
936
+ ],
937
+ update: [
938
+ Permission.ProjectOwner,
939
+ Permission.ProjectAdmin,
940
+ Permission.ProjectMember,
941
+ Permission.EditProjectStatusPage,
942
+ ],
943
+ })
944
+ @TableColumn({
945
+ isDefaultValueColumn: true,
946
+ type: TableColumnType.Boolean,
947
+ title: "Show Scheduled Event Labels",
948
+ description: "Show Scheduled Event Labels on Status Page?",
949
+ })
950
+ @Column({
951
+ type: ColumnType.Boolean,
952
+ default: false,
953
+ })
954
+ @ColumnBillingAccessControl({
955
+ read: PlanType.Free,
956
+ update: PlanType.Growth,
957
+ create: PlanType.Free,
958
+ })
959
+ public showScheduledEventLabelsOnStatusPage?: boolean = undefined;
960
+
961
+ // This column is Deprectaed.
962
+ @ColumnAccessControl({
963
+ create: [
964
+ Permission.ProjectOwner,
965
+ Permission.ProjectAdmin,
966
+ Permission.ProjectMember,
967
+ Permission.CreateProjectStatusPage,
968
+ ],
969
+ read: [
970
+ Permission.ProjectOwner,
971
+ Permission.ProjectAdmin,
972
+ Permission.ProjectMember,
973
+ Permission.ReadProjectStatusPage,
974
+ ],
975
+ update: [
976
+ Permission.ProjectOwner,
977
+ Permission.ProjectAdmin,
978
+ Permission.ProjectMember,
979
+ Permission.EditProjectStatusPage,
980
+ ],
981
+ })
982
+ @TableColumn({
983
+ isDefaultValueColumn: true,
984
+ type: TableColumnType.Boolean,
985
+ title: "Enable Subscribers",
986
+ description: "Can subscribers subscribe to this Status Page?",
987
+ })
988
+ @Column({
989
+ type: ColumnType.Boolean,
990
+ default: true,
991
+ })
992
+ public enableSubscribers?: boolean = undefined;
993
+
994
+ @ColumnAccessControl({
995
+ create: [
996
+ Permission.ProjectOwner,
997
+ Permission.ProjectAdmin,
998
+ Permission.ProjectMember,
999
+ Permission.CreateProjectStatusPage,
1000
+ ],
1001
+ read: [
1002
+ Permission.ProjectOwner,
1003
+ Permission.ProjectAdmin,
1004
+ Permission.ProjectMember,
1005
+ Permission.ReadProjectStatusPage,
1006
+ ],
1007
+ update: [
1008
+ Permission.ProjectOwner,
1009
+ Permission.ProjectAdmin,
1010
+ Permission.ProjectMember,
1011
+ Permission.EditProjectStatusPage,
1012
+ ],
1013
+ })
1014
+ @TableColumn({
1015
+ isDefaultValueColumn: true,
1016
+ type: TableColumnType.Boolean,
1017
+ title: "Enable Email Subscribers",
1018
+ description: "Can email subscribers subscribe to this Status Page?",
1019
+ })
1020
+ @Column({
1021
+ type: ColumnType.Boolean,
1022
+ default: true,
1023
+ })
1024
+ public enableEmailSubscribers?: boolean = undefined;
1025
+
1026
+ @ColumnAccessControl({
1027
+ create: [
1028
+ Permission.ProjectOwner,
1029
+ Permission.ProjectAdmin,
1030
+ Permission.ProjectMember,
1031
+ Permission.CreateProjectStatusPage,
1032
+ ],
1033
+ read: [
1034
+ Permission.ProjectOwner,
1035
+ Permission.ProjectAdmin,
1036
+ Permission.ProjectMember,
1037
+ Permission.ReadProjectStatusPage,
1038
+ ],
1039
+ update: [
1040
+ Permission.ProjectOwner,
1041
+ Permission.ProjectAdmin,
1042
+ Permission.ProjectMember,
1043
+ Permission.EditProjectStatusPage,
1044
+ ],
1045
+ })
1046
+ @TableColumn({
1047
+ isDefaultValueColumn: true,
1048
+ type: TableColumnType.Boolean,
1049
+ title: "Allow Subscribers to Choose Resources",
1050
+ description: "Can subscribers choose which resources to subscribe to?",
1051
+ })
1052
+ @Column({
1053
+ type: ColumnType.Boolean,
1054
+ default: false,
1055
+ })
1056
+ @ColumnBillingAccessControl({
1057
+ read: PlanType.Free,
1058
+ update: PlanType.Scale,
1059
+ create: PlanType.Free,
1060
+ })
1061
+ public allowSubscribersToChooseResources?: boolean = undefined;
1062
+
1063
+ @ColumnAccessControl({
1064
+ create: [
1065
+ Permission.ProjectOwner,
1066
+ Permission.ProjectAdmin,
1067
+ Permission.ProjectMember,
1068
+ Permission.CreateProjectStatusPage,
1069
+ ],
1070
+ read: [
1071
+ Permission.ProjectOwner,
1072
+ Permission.ProjectAdmin,
1073
+ Permission.ProjectMember,
1074
+ Permission.ReadProjectStatusPage,
1075
+ ],
1076
+ update: [
1077
+ Permission.ProjectOwner,
1078
+ Permission.ProjectAdmin,
1079
+ Permission.ProjectMember,
1080
+ Permission.EditProjectStatusPage,
1081
+ ],
1082
+ })
1083
+ @TableColumn({
1084
+ isDefaultValueColumn: true,
1085
+ type: TableColumnType.Boolean,
1086
+ title: "Enable SMS Subscribers",
1087
+ description: "Can SMS subscribers subscribe to this Status Page?",
1088
+ })
1089
+ @Column({
1090
+ type: ColumnType.Boolean,
1091
+ default: false,
1092
+ })
1093
+ @ColumnBillingAccessControl({
1094
+ read: PlanType.Free,
1095
+ update: PlanType.Growth,
1096
+ create: PlanType.Free,
1097
+ })
1098
+ public enableSmsSubscribers?: boolean = undefined;
1099
+
1100
+ @ColumnAccessControl({
1101
+ create: [
1102
+ Permission.ProjectOwner,
1103
+ Permission.ProjectAdmin,
1104
+ Permission.ProjectMember,
1105
+ Permission.CreateProjectStatusPage,
1106
+ ],
1107
+ read: [
1108
+ Permission.ProjectOwner,
1109
+ Permission.ProjectAdmin,
1110
+ Permission.ProjectMember,
1111
+ Permission.ReadProjectStatusPage,
1112
+ ],
1113
+ update: [
1114
+ Permission.ProjectOwner,
1115
+ Permission.ProjectAdmin,
1116
+ Permission.ProjectMember,
1117
+ Permission.EditProjectStatusPage,
1118
+ ],
1119
+ })
1120
+ @TableColumn({
1121
+ isDefaultValueColumn: false,
1122
+ type: TableColumnType.ShortText,
1123
+ title: "Copyright Text",
1124
+ description: "Copyright Text",
1125
+ })
1126
+ @Column({
1127
+ type: ColumnType.ShortText,
1128
+ nullable: true,
1129
+ })
1130
+ public copyrightText?: string = undefined;
1131
+
1132
+ @ColumnAccessControl({
1133
+ create: [
1134
+ Permission.ProjectOwner,
1135
+ Permission.ProjectAdmin,
1136
+ Permission.ProjectMember,
1137
+ Permission.CreateProjectStatusPage,
1138
+ ],
1139
+ read: [
1140
+ Permission.ProjectOwner,
1141
+ Permission.ProjectAdmin,
1142
+ Permission.ProjectMember,
1143
+ Permission.ReadProjectStatusPage,
1144
+ ],
1145
+ update: [
1146
+ Permission.ProjectOwner,
1147
+ Permission.ProjectAdmin,
1148
+ Permission.ProjectMember,
1149
+ Permission.EditProjectStatusPage,
1150
+ ],
1151
+ })
1152
+ @TableColumn({
1153
+ isDefaultValueColumn: false,
1154
+ required: false,
1155
+ type: TableColumnType.JSON,
1156
+ title: "Custom Fields",
1157
+ description: "Custom Fields on this resource.",
1158
+ })
1159
+ @Column({
1160
+ type: ColumnType.JSON,
1161
+ nullable: true,
1162
+ })
1163
+ public customFields?: JSONObject = undefined;
1164
+
1165
+ @ColumnAccessControl({
1166
+ create: [
1167
+ Permission.ProjectOwner,
1168
+ Permission.ProjectAdmin,
1169
+ Permission.ProjectMember,
1170
+ Permission.CreateProjectStatusPage,
1171
+ ],
1172
+ read: [
1173
+ Permission.ProjectOwner,
1174
+ Permission.ProjectAdmin,
1175
+ Permission.ProjectMember,
1176
+ Permission.ReadProjectStatusPage,
1177
+ Permission.Public,
1178
+ ],
1179
+ update: [
1180
+ Permission.ProjectOwner,
1181
+ Permission.ProjectAdmin,
1182
+ Permission.ProjectMember,
1183
+ Permission.EditProjectStatusPage,
1184
+ ],
1185
+ })
1186
+ @TableColumn({
1187
+ required: true,
1188
+ type: TableColumnType.Boolean,
1189
+ isDefaultValueColumn: true,
1190
+ description: "Should SSO be required to login to Private Status Page",
1191
+ title: "Require SSO",
1192
+ })
1193
+ @Column({
1194
+ type: ColumnType.Boolean,
1195
+ nullable: false,
1196
+ unique: false,
1197
+ default: false,
1198
+ })
1199
+ public requireSsoForLogin?: boolean = undefined;
1200
+
1201
+ @ColumnAccessControl({
1202
+ create: [
1203
+ Permission.ProjectOwner,
1204
+ Permission.ProjectAdmin,
1205
+ Permission.ProjectMember,
1206
+ Permission.CreateProjectStatusPage,
1207
+ ],
1208
+ read: [
1209
+ Permission.ProjectOwner,
1210
+ Permission.ProjectAdmin,
1211
+ Permission.ProjectMember,
1212
+ Permission.ReadProjectStatusPage,
1213
+ ],
1214
+ update: [
1215
+ Permission.ProjectOwner,
1216
+ Permission.ProjectAdmin,
1217
+ Permission.ProjectMember,
1218
+ Permission.EditProjectStatusPage,
1219
+ ],
1220
+ })
1221
+ @TableColumn({
1222
+ manyToOneRelationColumn: "smtpConfigId",
1223
+ type: TableColumnType.Entity,
1224
+ modelType: ProjectSmtpConfig,
1225
+ title: "SMTP Config",
1226
+ description:
1227
+ "Relation to SMTP Config Resource which is used to send email to subscribers.",
1228
+ })
1229
+ @ManyToOne(
1230
+ () => {
1231
+ return ProjectSmtpConfig;
1232
+ },
1233
+ {
1234
+ eager: false,
1235
+ nullable: true,
1236
+ onDelete: "CASCADE",
1237
+ orphanedRowAction: "nullify",
1238
+ },
1239
+ )
1240
+ @JoinColumn({ name: "smtpConfigId" })
1241
+ public smtpConfig?: ProjectSmtpConfig = undefined;
1242
+
1243
+ @ColumnAccessControl({
1244
+ create: [
1245
+ Permission.ProjectOwner,
1246
+ Permission.ProjectAdmin,
1247
+ Permission.ProjectMember,
1248
+ Permission.CreateProjectStatusPage,
1249
+ ],
1250
+ read: [
1251
+ Permission.ProjectOwner,
1252
+ Permission.ProjectAdmin,
1253
+ Permission.ProjectMember,
1254
+ Permission.ReadProjectStatusPage,
1255
+ ],
1256
+ update: [
1257
+ Permission.ProjectOwner,
1258
+ Permission.ProjectAdmin,
1259
+ Permission.ProjectMember,
1260
+ Permission.EditProjectStatusPage,
1261
+ ],
1262
+ })
1263
+ @Index()
1264
+ @TableColumn({
1265
+ type: TableColumnType.ObjectID,
1266
+ required: false,
1267
+ canReadOnRelationQuery: true,
1268
+ title: "SMTP Config ID",
1269
+ description:
1270
+ "ID of your SMTP Config Resource which is used to send email to subscribers.",
1271
+ })
1272
+ @Column({
1273
+ type: ColumnType.ObjectID,
1274
+ nullable: true,
1275
+ transformer: ObjectID.getDatabaseTransformer(),
1276
+ })
1277
+ public smtpConfigId?: ObjectID = undefined;
1278
+
1279
+ @ColumnAccessControl({
1280
+ create: [
1281
+ Permission.ProjectOwner,
1282
+ Permission.ProjectAdmin,
1283
+ Permission.ProjectMember,
1284
+ Permission.CreateProjectStatusPage,
1285
+ ],
1286
+ read: [
1287
+ Permission.ProjectOwner,
1288
+ Permission.ProjectAdmin,
1289
+ Permission.ProjectMember,
1290
+ Permission.ReadProjectStatusPage,
1291
+ ],
1292
+ update: [
1293
+ Permission.ProjectOwner,
1294
+ Permission.ProjectAdmin,
1295
+ Permission.ProjectMember,
1296
+ Permission.EditProjectStatusPage,
1297
+ ],
1298
+ })
1299
+ @TableColumn({
1300
+ manyToOneRelationColumn: "callSmsConfigId",
1301
+ type: TableColumnType.Entity,
1302
+ modelType: ProjectCallSMSConfig,
1303
+ title: "Call/SMS Config",
1304
+ description:
1305
+ "Relation to Call/SMS Config Resource which is used to send SMS to subscribers.",
1306
+ })
1307
+ @ManyToOne(
1308
+ () => {
1309
+ return ProjectCallSMSConfig;
1310
+ },
1311
+ {
1312
+ eager: false,
1313
+ nullable: true,
1314
+ onDelete: "CASCADE",
1315
+ orphanedRowAction: "nullify",
1316
+ },
1317
+ )
1318
+ @JoinColumn({ name: "callSmsConfigId" })
1319
+ public callSmsConfig?: ProjectCallSMSConfig = undefined;
1320
+
1321
+ @ColumnAccessControl({
1322
+ create: [
1323
+ Permission.ProjectOwner,
1324
+ Permission.ProjectAdmin,
1325
+ Permission.ProjectMember,
1326
+ Permission.CreateProjectStatusPage,
1327
+ ],
1328
+ read: [
1329
+ Permission.ProjectOwner,
1330
+ Permission.ProjectAdmin,
1331
+ Permission.ProjectMember,
1332
+ Permission.ReadProjectStatusPage,
1333
+ ],
1334
+ update: [
1335
+ Permission.ProjectOwner,
1336
+ Permission.ProjectAdmin,
1337
+ Permission.ProjectMember,
1338
+ Permission.EditProjectStatusPage,
1339
+ ],
1340
+ })
1341
+ @Index()
1342
+ @TableColumn({
1343
+ type: TableColumnType.ObjectID,
1344
+ required: false,
1345
+ canReadOnRelationQuery: true,
1346
+ title: "Call/SMS Config ID",
1347
+ description:
1348
+ "ID of your Call/SMS Config Resource which is used to send SMS to subscribers.",
1349
+ })
1350
+ @Column({
1351
+ type: ColumnType.ObjectID,
1352
+ nullable: true,
1353
+ transformer: ObjectID.getDatabaseTransformer(),
1354
+ })
1355
+ public callSmsConfigId?: ObjectID = undefined;
1356
+
1357
+ @ColumnAccessControl({
1358
+ create: [
1359
+ Permission.ProjectOwner,
1360
+ Permission.ProjectAdmin,
1361
+ Permission.ProjectMember,
1362
+ Permission.CreateProjectStatusPage,
1363
+ ],
1364
+ read: [
1365
+ Permission.ProjectOwner,
1366
+ Permission.ProjectAdmin,
1367
+ Permission.ProjectMember,
1368
+ Permission.ReadProjectStatusPage,
1369
+ ],
1370
+ update: [],
1371
+ })
1372
+ @Index()
1373
+ @TableColumn({
1374
+ type: TableColumnType.Boolean,
1375
+ required: true,
1376
+ isDefaultValueColumn: true,
1377
+ title: "Are Owners Notified Of Resource Creation?",
1378
+ description: "Are owners notified of when this resource is created?",
1379
+ })
1380
+ @Column({
1381
+ type: ColumnType.Boolean,
1382
+ nullable: false,
1383
+ default: false,
1384
+ })
1385
+ public isOwnerNotifiedOfResourceCreation?: boolean = undefined;
1386
+
1387
+ @ColumnAccessControl({
1388
+ create: [
1389
+ Permission.ProjectOwner,
1390
+ Permission.ProjectAdmin,
1391
+ Permission.ProjectMember,
1392
+ Permission.CreateProjectStatusPage,
1393
+ ],
1394
+ read: [
1395
+ Permission.ProjectOwner,
1396
+ Permission.ProjectAdmin,
1397
+ Permission.ProjectMember,
1398
+ Permission.ReadProjectStatusPage,
1399
+ ],
1400
+ update: [
1401
+ Permission.ProjectOwner,
1402
+ Permission.ProjectAdmin,
1403
+ Permission.ProjectMember,
1404
+ Permission.EditProjectStatusPage,
1405
+ ],
1406
+ })
1407
+ @Index()
1408
+ @TableColumn({
1409
+ type: TableColumnType.Number,
1410
+ required: true,
1411
+ isDefaultValueColumn: true,
1412
+ title: "Show incident history in days",
1413
+ description:
1414
+ "How many days of incident history should be shown on the status page (in days)?",
1415
+ })
1416
+ @Column({
1417
+ type: ColumnType.Number,
1418
+ nullable: false,
1419
+ default: 14,
1420
+ })
1421
+ public showIncidentHistoryInDays?: number = undefined;
1422
+
1423
+ @ColumnAccessControl({
1424
+ create: [
1425
+ Permission.ProjectOwner,
1426
+ Permission.ProjectAdmin,
1427
+ Permission.ProjectMember,
1428
+ Permission.CreateProjectStatusPage,
1429
+ ],
1430
+ read: [
1431
+ Permission.ProjectOwner,
1432
+ Permission.ProjectAdmin,
1433
+ Permission.ProjectMember,
1434
+ Permission.ReadProjectStatusPage,
1435
+ ],
1436
+ update: [
1437
+ Permission.ProjectOwner,
1438
+ Permission.ProjectAdmin,
1439
+ Permission.ProjectMember,
1440
+ Permission.EditProjectStatusPage,
1441
+ ],
1442
+ })
1443
+ @Index()
1444
+ @TableColumn({
1445
+ type: TableColumnType.Number,
1446
+ required: true,
1447
+ isDefaultValueColumn: true,
1448
+ title: "Show announcement history in days",
1449
+ description:
1450
+ "How many days of announcement history should be shown on the status page (in days)?",
1451
+ })
1452
+ @Column({
1453
+ type: ColumnType.Number,
1454
+ nullable: false,
1455
+ default: 14,
1456
+ })
1457
+ public showAnnouncementHistoryInDays?: number = undefined;
1458
+
1459
+ @ColumnAccessControl({
1460
+ create: [
1461
+ Permission.ProjectOwner,
1462
+ Permission.ProjectAdmin,
1463
+ Permission.ProjectMember,
1464
+ Permission.CreateProjectStatusPage,
1465
+ ],
1466
+ read: [
1467
+ Permission.ProjectOwner,
1468
+ Permission.ProjectAdmin,
1469
+ Permission.ProjectMember,
1470
+ Permission.ReadProjectStatusPage,
1471
+ ],
1472
+ update: [
1473
+ Permission.ProjectOwner,
1474
+ Permission.ProjectAdmin,
1475
+ Permission.ProjectMember,
1476
+ Permission.EditProjectStatusPage,
1477
+ ],
1478
+ })
1479
+ @Index()
1480
+ @TableColumn({
1481
+ type: TableColumnType.Number,
1482
+ required: true,
1483
+ isDefaultValueColumn: true,
1484
+ title: "Show scheduled event history in days",
1485
+ description:
1486
+ "How many days of scheduled event history should be shown on the status page (in days)?",
1487
+ })
1488
+ @Column({
1489
+ type: ColumnType.Number,
1490
+ nullable: false,
1491
+ default: 14,
1492
+ })
1493
+ public showScheduledEventHistoryInDays?: number = undefined;
1494
+
1495
+ @ColumnAccessControl({
1496
+ create: [
1497
+ Permission.ProjectOwner,
1498
+ Permission.ProjectAdmin,
1499
+ Permission.ProjectMember,
1500
+ Permission.CreateProjectStatusPage,
1501
+ ],
1502
+ read: [
1503
+ Permission.ProjectOwner,
1504
+ Permission.ProjectAdmin,
1505
+ Permission.ProjectMember,
1506
+ Permission.ReadProjectStatusPage,
1507
+ ],
1508
+ update: [
1509
+ Permission.ProjectOwner,
1510
+ Permission.ProjectAdmin,
1511
+ Permission.ProjectMember,
1512
+ Permission.EditProjectStatusPage,
1513
+ ],
1514
+ })
1515
+ @Index()
1516
+ @TableColumn({
1517
+ type: TableColumnType.Markdown,
1518
+ required: false,
1519
+ isDefaultValueColumn: false,
1520
+ title: "Overview Page Description",
1521
+ description:
1522
+ "Overview Page description for your status page. This is a markdown field.",
1523
+ })
1524
+ @Column({
1525
+ type: ColumnType.Markdown,
1526
+ nullable: true,
1527
+ })
1528
+ public overviewPageDescription?: string = undefined;
1529
+
1530
+ @ColumnAccessControl({
1531
+ create: [
1532
+ Permission.ProjectOwner,
1533
+ Permission.ProjectAdmin,
1534
+ Permission.ProjectMember,
1535
+ Permission.CreateProjectStatusPage,
1536
+ ],
1537
+ read: [
1538
+ Permission.ProjectOwner,
1539
+ Permission.ProjectAdmin,
1540
+ Permission.ProjectMember,
1541
+ Permission.ReadProjectStatusPage,
1542
+ ],
1543
+ update: [
1544
+ Permission.ProjectOwner,
1545
+ Permission.ProjectAdmin,
1546
+ Permission.ProjectMember,
1547
+ Permission.EditProjectStatusPage,
1548
+ ],
1549
+ })
1550
+ @TableColumn({
1551
+ isDefaultValueColumn: true,
1552
+ type: TableColumnType.Boolean,
1553
+ title: "Hide Powered By OneUptime Branding",
1554
+ description: "Hide Powered By OneUptime Branding?",
1555
+ })
1556
+ @Column({
1557
+ type: ColumnType.Boolean,
1558
+ default: false,
1559
+ })
1560
+ @ColumnBillingAccessControl({
1561
+ read: PlanType.Free,
1562
+ update: PlanType.Scale,
1563
+ create: PlanType.Free,
1564
+ })
1565
+ public hidePoweredByOneUptimeBranding?: boolean = undefined;
1566
+
1567
+ @ColumnAccessControl({
1568
+ create: [
1569
+ Permission.ProjectOwner,
1570
+ Permission.ProjectAdmin,
1571
+ Permission.ProjectMember,
1572
+ Permission.CreateProjectStatusPage,
1573
+ ],
1574
+ read: [
1575
+ Permission.ProjectOwner,
1576
+ Permission.ProjectAdmin,
1577
+ Permission.ProjectMember,
1578
+ Permission.ReadProjectStatusPage,
1579
+ ],
1580
+ update: [
1581
+ Permission.ProjectOwner,
1582
+ Permission.ProjectAdmin,
1583
+ Permission.ProjectMember,
1584
+ Permission.EditProjectStatusPage,
1585
+ ],
1586
+ })
1587
+ @TableColumn({
1588
+ title: "Default Bar Color",
1589
+ required: false,
1590
+ unique: false,
1591
+ type: TableColumnType.Color,
1592
+ canReadOnRelationQuery: true,
1593
+ description: "Default color of the bar on the overview page",
1594
+ })
1595
+ @Column({
1596
+ type: ColumnType.Color,
1597
+ length: ColumnLength.Color,
1598
+ unique: false,
1599
+ nullable: true,
1600
+ transformer: Color.getDatabaseTransformer(),
1601
+ })
1602
+ public defaultBarColor?: Color = undefined;
1603
+
1604
+ @ColumnAccessControl({
1605
+ create: [
1606
+ Permission.ProjectOwner,
1607
+ Permission.ProjectAdmin,
1608
+ Permission.ProjectMember,
1609
+ Permission.CreateProjectStatusPage,
1610
+ ],
1611
+ read: [
1612
+ Permission.ProjectOwner,
1613
+ Permission.ProjectAdmin,
1614
+ Permission.ProjectMember,
1615
+ Permission.ReadProjectStatusPage,
1616
+ ],
1617
+ update: [
1618
+ Permission.ProjectOwner,
1619
+ Permission.ProjectAdmin,
1620
+ Permission.ProjectMember,
1621
+ Permission.EditProjectStatusPage,
1622
+ ],
1623
+ })
1624
+ @TableColumn({
1625
+ required: false,
1626
+ type: TableColumnType.EntityArray,
1627
+ modelType: MonitorStatus,
1628
+ title: "Downtime Monitor Statuses",
1629
+ description:
1630
+ 'List of monitors statuses that are considered as "down" for this status page.',
1631
+ })
1632
+ @ManyToMany(
1633
+ () => {
1634
+ return MonitorStatus;
1635
+ },
1636
+ { eager: false },
1637
+ )
1638
+ @JoinTable({
1639
+ name: "StatusPageDownMonitorStatus",
1640
+ inverseJoinColumn: {
1641
+ name: "monitorStatusId",
1642
+ referencedColumnName: "_id",
1643
+ },
1644
+ joinColumn: {
1645
+ name: "statusPageId",
1646
+ referencedColumnName: "_id",
1647
+ },
1648
+ })
1649
+ public downtimeMonitorStatuses?: Array<MonitorStatus> = undefined;
1650
+
1651
+ @ColumnAccessControl({
1652
+ create: [
1653
+ Permission.ProjectOwner,
1654
+ Permission.ProjectAdmin,
1655
+ Permission.ProjectMember,
1656
+ Permission.CreateProjectStatusPage,
1657
+ ],
1658
+ read: [
1659
+ Permission.ProjectOwner,
1660
+ Permission.ProjectAdmin,
1661
+ Permission.ProjectMember,
1662
+ Permission.ReadProjectStatusPage,
1663
+ ],
1664
+ update: [
1665
+ Permission.ProjectOwner,
1666
+ Permission.ProjectAdmin,
1667
+ Permission.ProjectMember,
1668
+ Permission.EditProjectStatusPage,
1669
+ ],
1670
+ })
1671
+ @TableColumn({
1672
+ isDefaultValueColumn: false,
1673
+ required: false,
1674
+ type: TableColumnType.JSON,
1675
+ title: "Subscriber Timezones",
1676
+ description: "Timezones of subscribers to this status page.",
1677
+ })
1678
+ @Column({
1679
+ type: ColumnType.JSON,
1680
+ nullable: true,
1681
+ })
1682
+ public subscriberTimezones?: Array<Timezone> = undefined;
1683
+
1684
+ // Status Page Report Starts from here.
1685
+ @ColumnAccessControl({
1686
+ create: [
1687
+ Permission.ProjectOwner,
1688
+ Permission.ProjectAdmin,
1689
+ Permission.ProjectMember,
1690
+ Permission.CreateProjectStatusPage,
1691
+ ],
1692
+ read: [
1693
+ Permission.ProjectOwner,
1694
+ Permission.ProjectAdmin,
1695
+ Permission.ProjectMember,
1696
+ Permission.ReadProjectStatusPage,
1697
+ ],
1698
+ update: [
1699
+ Permission.ProjectOwner,
1700
+ Permission.ProjectAdmin,
1701
+ Permission.ProjectMember,
1702
+ Permission.EditProjectStatusPage,
1703
+ ],
1704
+ })
1705
+ @TableColumn({
1706
+ isDefaultValueColumn: true,
1707
+ type: TableColumnType.Boolean,
1708
+ title: "Is Report Enabled",
1709
+ description: "Is Report Enabled for this Status Page?",
1710
+ })
1711
+ @Column({
1712
+ type: ColumnType.Boolean,
1713
+ default: false,
1714
+ })
1715
+ @ColumnBillingAccessControl({
1716
+ read: PlanType.Free,
1717
+ update: PlanType.Growth,
1718
+ create: PlanType.Free,
1719
+ })
1720
+ public isReportEnabled?: boolean = undefined;
1721
+
1722
+ @ColumnAccessControl({
1723
+ create: [
1724
+ Permission.ProjectOwner,
1725
+ Permission.ProjectAdmin,
1726
+ Permission.ProjectMember,
1727
+ Permission.CreateProjectStatusPage,
1728
+ ],
1729
+ read: [
1730
+ Permission.ProjectOwner,
1731
+ Permission.ProjectAdmin,
1732
+ Permission.ProjectMember,
1733
+ Permission.ReadProjectStatusPage,
1734
+ ],
1735
+ update: [
1736
+ Permission.ProjectOwner,
1737
+ Permission.ProjectAdmin,
1738
+ Permission.ProjectMember,
1739
+ Permission.EditProjectStatusPage,
1740
+ ],
1741
+ })
1742
+ @TableColumn({
1743
+ type: TableColumnType.Date,
1744
+ title: "Report Start Date Time",
1745
+ description: "When would you like to send the first report?",
1746
+ })
1747
+ @Column({
1748
+ type: ColumnType.Date,
1749
+ nullable: true,
1750
+ })
1751
+ @ColumnBillingAccessControl({
1752
+ read: PlanType.Free,
1753
+ update: PlanType.Growth,
1754
+ create: PlanType.Free,
1755
+ })
1756
+ public reportStartDateTime?: Date = undefined;
1757
+
1758
+ @ColumnAccessControl({
1759
+ create: [
1760
+ Permission.ProjectOwner,
1761
+ Permission.ProjectAdmin,
1762
+ Permission.ProjectMember,
1763
+ Permission.CreateProjectStatusPage,
1764
+ ],
1765
+ read: [
1766
+ Permission.ProjectOwner,
1767
+ Permission.ProjectAdmin,
1768
+ Permission.ProjectMember,
1769
+ Permission.ReadProjectStatusPage,
1770
+ ],
1771
+ update: [
1772
+ Permission.ProjectOwner,
1773
+ Permission.ProjectAdmin,
1774
+ Permission.ProjectMember,
1775
+ Permission.EditProjectStatusPage,
1776
+ ],
1777
+ })
1778
+ @TableColumn({
1779
+ type: TableColumnType.JSON,
1780
+ title: "Report Recurring Interval",
1781
+ description: "How often would you like to send the report?",
1782
+ })
1783
+ @Column({
1784
+ type: ColumnType.JSON,
1785
+ nullable: true,
1786
+ transformer: Recurring.getDatabaseTransformer(),
1787
+ })
1788
+ @ColumnBillingAccessControl({
1789
+ read: PlanType.Free,
1790
+ update: PlanType.Growth,
1791
+ create: PlanType.Free,
1792
+ })
1793
+ public reportRecurringInterval?: Recurring = undefined;
1794
+
1795
+ @ColumnAccessControl({
1796
+ create: [
1797
+ Permission.ProjectOwner,
1798
+ Permission.ProjectAdmin,
1799
+ Permission.ProjectMember,
1800
+ Permission.CreateProjectStatusPage,
1801
+ ],
1802
+ read: [
1803
+ Permission.ProjectOwner,
1804
+ Permission.ProjectAdmin,
1805
+ Permission.ProjectMember,
1806
+ Permission.ReadProjectStatusPage,
1807
+ ],
1808
+ update: [
1809
+ Permission.ProjectOwner,
1810
+ Permission.ProjectAdmin,
1811
+ Permission.ProjectMember,
1812
+ Permission.EditProjectStatusPage,
1813
+ ],
1814
+ })
1815
+ @TableColumn({
1816
+ type: TableColumnType.Date,
1817
+ title: "Send Next Report By",
1818
+ description: "When should the next report be sent?",
1819
+ })
1820
+ @Column({
1821
+ type: ColumnType.Date,
1822
+ nullable: true,
1823
+ })
1824
+ @ColumnBillingAccessControl({
1825
+ read: PlanType.Free,
1826
+ update: PlanType.Growth,
1827
+ create: PlanType.Free,
1828
+ })
1829
+ public sendNextReportBy?: Date = undefined;
1830
+
1831
+ @ColumnAccessControl({
1832
+ create: [
1833
+ Permission.ProjectOwner,
1834
+ Permission.ProjectAdmin,
1835
+ Permission.ProjectMember,
1836
+ Permission.CreateProjectStatusPage,
1837
+ ],
1838
+ read: [
1839
+ Permission.ProjectOwner,
1840
+ Permission.ProjectAdmin,
1841
+ Permission.ProjectMember,
1842
+ Permission.ReadProjectStatusPage,
1843
+ ],
1844
+ update: [
1845
+ Permission.ProjectOwner,
1846
+ Permission.ProjectAdmin,
1847
+ Permission.ProjectMember,
1848
+ Permission.EditProjectStatusPage,
1849
+ ],
1850
+ })
1851
+ @TableColumn({
1852
+ type: TableColumnType.Number,
1853
+ title: "Report data for the last N days",
1854
+ description: "How many days of data should be included in the report?",
1855
+ })
1856
+ @Column({
1857
+ type: ColumnType.Number,
1858
+ nullable: true,
1859
+ default: 30,
1860
+ })
1861
+ @ColumnBillingAccessControl({
1862
+ read: PlanType.Free,
1863
+ update: PlanType.Growth,
1864
+ create: PlanType.Free,
1865
+ })
1866
+ public reportDataInDays?: number = undefined;
1867
+ }