@uug-ai/models 1.7.16 → 1.7.40

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 (2) hide show
  1. package/dist/types.d.ts +1516 -682
  2. package/package.json +1 -1
package/dist/types.d.ts CHANGED
@@ -1758,6 +1758,45 @@ export interface paths {
1758
1758
  patch?: never;
1759
1759
  trace?: never;
1760
1760
  };
1761
+ "/internal/auditauthorizationinfo": {
1762
+ parameters: {
1763
+ query?: never;
1764
+ header?: never;
1765
+ path?: never;
1766
+ cookie?: never;
1767
+ };
1768
+ /**
1769
+ * Get AuditAuthorizationInfo (schema generation only)
1770
+ * @description Internal endpoint used only to ensure AuditAuthorizationInfo schema is generated in OpenAPI spec
1771
+ */
1772
+ get: {
1773
+ parameters: {
1774
+ query?: never;
1775
+ header?: never;
1776
+ path?: never;
1777
+ cookie?: never;
1778
+ };
1779
+ requestBody?: never;
1780
+ responses: {
1781
+ /** @description OK */
1782
+ 200: {
1783
+ headers: {
1784
+ [name: string]: unknown;
1785
+ };
1786
+ content: {
1787
+ "application/json": components["schemas"]["models.AuditAuthorizationInfo"];
1788
+ };
1789
+ };
1790
+ };
1791
+ };
1792
+ put?: never;
1793
+ post?: never;
1794
+ delete?: never;
1795
+ options?: never;
1796
+ head?: never;
1797
+ patch?: never;
1798
+ trace?: never;
1799
+ };
1761
1800
  "/internal/auditevent": {
1762
1801
  parameters: {
1763
1802
  query?: never;
@@ -1797,6 +1836,45 @@ export interface paths {
1797
1836
  patch?: never;
1798
1837
  trace?: never;
1799
1838
  };
1839
+ "/internal/auditeventstatus": {
1840
+ parameters: {
1841
+ query?: never;
1842
+ header?: never;
1843
+ path?: never;
1844
+ cookie?: never;
1845
+ };
1846
+ /**
1847
+ * Get AuditEventStatus (schema generation only)
1848
+ * @description Internal endpoint used only to ensure AuditEventStatus schema is generated in OpenAPI spec
1849
+ */
1850
+ get: {
1851
+ parameters: {
1852
+ query?: never;
1853
+ header?: never;
1854
+ path?: never;
1855
+ cookie?: never;
1856
+ };
1857
+ requestBody?: never;
1858
+ responses: {
1859
+ /** @description OK */
1860
+ 200: {
1861
+ headers: {
1862
+ [name: string]: unknown;
1863
+ };
1864
+ content: {
1865
+ "application/json": components["schemas"]["models.AuditEventStatus"];
1866
+ };
1867
+ };
1868
+ };
1869
+ };
1870
+ put?: never;
1871
+ post?: never;
1872
+ delete?: never;
1873
+ options?: never;
1874
+ head?: never;
1875
+ patch?: never;
1876
+ trace?: never;
1877
+ };
1800
1878
  "/internal/auditfieldchange": {
1801
1879
  parameters: {
1802
1880
  query?: never;
@@ -1836,6 +1914,45 @@ export interface paths {
1836
1914
  patch?: never;
1837
1915
  trace?: never;
1838
1916
  };
1917
+ "/internal/auditrequestinfo": {
1918
+ parameters: {
1919
+ query?: never;
1920
+ header?: never;
1921
+ path?: never;
1922
+ cookie?: never;
1923
+ };
1924
+ /**
1925
+ * Get AuditRequestInfo (schema generation only)
1926
+ * @description Internal endpoint used only to ensure AuditRequestInfo schema is generated in OpenAPI spec
1927
+ */
1928
+ get: {
1929
+ parameters: {
1930
+ query?: never;
1931
+ header?: never;
1932
+ path?: never;
1933
+ cookie?: never;
1934
+ };
1935
+ requestBody?: never;
1936
+ responses: {
1937
+ /** @description OK */
1938
+ 200: {
1939
+ headers: {
1940
+ [name: string]: unknown;
1941
+ };
1942
+ content: {
1943
+ "application/json": components["schemas"]["models.AuditRequestInfo"];
1944
+ };
1945
+ };
1946
+ };
1947
+ };
1948
+ put?: never;
1949
+ post?: never;
1950
+ delete?: never;
1951
+ options?: never;
1952
+ head?: never;
1953
+ patch?: never;
1954
+ trace?: never;
1955
+ };
1839
1956
  "/internal/callerinfo": {
1840
1957
  parameters: {
1841
1958
  query?: never;
@@ -3825,6 +3942,240 @@ export interface paths {
3825
3942
  patch?: never;
3826
3943
  trace?: never;
3827
3944
  };
3945
+ "/internal/createprojecterrorresponse": {
3946
+ parameters: {
3947
+ query?: never;
3948
+ header?: never;
3949
+ path?: never;
3950
+ cookie?: never;
3951
+ };
3952
+ /**
3953
+ * Get CreateProjectErrorResponse (schema generation only)
3954
+ * @description Internal endpoint used only to ensure CreateProjectErrorResponse schema is generated in OpenAPI spec
3955
+ */
3956
+ get: {
3957
+ parameters: {
3958
+ query?: never;
3959
+ header?: never;
3960
+ path?: never;
3961
+ cookie?: never;
3962
+ };
3963
+ requestBody?: never;
3964
+ responses: {
3965
+ /** @description OK */
3966
+ 200: {
3967
+ headers: {
3968
+ [name: string]: unknown;
3969
+ };
3970
+ content: {
3971
+ "application/json": components["schemas"]["api.CreateProjectErrorResponse"];
3972
+ };
3973
+ };
3974
+ };
3975
+ };
3976
+ put?: never;
3977
+ post?: never;
3978
+ delete?: never;
3979
+ options?: never;
3980
+ head?: never;
3981
+ patch?: never;
3982
+ trace?: never;
3983
+ };
3984
+ "/internal/createprojectinput": {
3985
+ parameters: {
3986
+ query?: never;
3987
+ header?: never;
3988
+ path?: never;
3989
+ cookie?: never;
3990
+ };
3991
+ /**
3992
+ * Get CreateProjectInput (schema generation only)
3993
+ * @description Internal endpoint used only to ensure CreateProjectInput schema is generated in OpenAPI spec
3994
+ */
3995
+ get: {
3996
+ parameters: {
3997
+ query?: never;
3998
+ header?: never;
3999
+ path?: never;
4000
+ cookie?: never;
4001
+ };
4002
+ requestBody?: never;
4003
+ responses: {
4004
+ /** @description OK */
4005
+ 200: {
4006
+ headers: {
4007
+ [name: string]: unknown;
4008
+ };
4009
+ content: {
4010
+ "application/json": components["schemas"]["models.CreateProjectInput"];
4011
+ };
4012
+ };
4013
+ };
4014
+ };
4015
+ put?: never;
4016
+ post?: never;
4017
+ delete?: never;
4018
+ options?: never;
4019
+ head?: never;
4020
+ patch?: never;
4021
+ trace?: never;
4022
+ };
4023
+ "/internal/createprojectoutput": {
4024
+ parameters: {
4025
+ query?: never;
4026
+ header?: never;
4027
+ path?: never;
4028
+ cookie?: never;
4029
+ };
4030
+ /**
4031
+ * Get CreateProjectOutput (schema generation only)
4032
+ * @description Internal endpoint used only to ensure CreateProjectOutput schema is generated in OpenAPI spec
4033
+ */
4034
+ get: {
4035
+ parameters: {
4036
+ query?: never;
4037
+ header?: never;
4038
+ path?: never;
4039
+ cookie?: never;
4040
+ };
4041
+ requestBody?: never;
4042
+ responses: {
4043
+ /** @description OK */
4044
+ 200: {
4045
+ headers: {
4046
+ [name: string]: unknown;
4047
+ };
4048
+ content: {
4049
+ "application/json": components["schemas"]["models.CreateProjectOutput"];
4050
+ };
4051
+ };
4052
+ };
4053
+ };
4054
+ put?: never;
4055
+ post?: never;
4056
+ delete?: never;
4057
+ options?: never;
4058
+ head?: never;
4059
+ patch?: never;
4060
+ trace?: never;
4061
+ };
4062
+ "/internal/createprojectrequest": {
4063
+ parameters: {
4064
+ query?: never;
4065
+ header?: never;
4066
+ path?: never;
4067
+ cookie?: never;
4068
+ };
4069
+ /**
4070
+ * Get CreateProjectRequest (schema generation only)
4071
+ * @description Internal endpoint used only to ensure CreateProjectRequest schema is generated in OpenAPI spec
4072
+ */
4073
+ get: {
4074
+ parameters: {
4075
+ query?: never;
4076
+ header?: never;
4077
+ path?: never;
4078
+ cookie?: never;
4079
+ };
4080
+ requestBody?: never;
4081
+ responses: {
4082
+ /** @description OK */
4083
+ 200: {
4084
+ headers: {
4085
+ [name: string]: unknown;
4086
+ };
4087
+ content: {
4088
+ "application/json": components["schemas"]["api.CreateProjectRequest"];
4089
+ };
4090
+ };
4091
+ };
4092
+ };
4093
+ put?: never;
4094
+ post?: never;
4095
+ delete?: never;
4096
+ options?: never;
4097
+ head?: never;
4098
+ patch?: never;
4099
+ trace?: never;
4100
+ };
4101
+ "/internal/createprojectresponse": {
4102
+ parameters: {
4103
+ query?: never;
4104
+ header?: never;
4105
+ path?: never;
4106
+ cookie?: never;
4107
+ };
4108
+ /**
4109
+ * Get CreateProjectResponse (schema generation only)
4110
+ * @description Internal endpoint used only to ensure CreateProjectResponse schema is generated in OpenAPI spec
4111
+ */
4112
+ get: {
4113
+ parameters: {
4114
+ query?: never;
4115
+ header?: never;
4116
+ path?: never;
4117
+ cookie?: never;
4118
+ };
4119
+ requestBody?: never;
4120
+ responses: {
4121
+ /** @description OK */
4122
+ 200: {
4123
+ headers: {
4124
+ [name: string]: unknown;
4125
+ };
4126
+ content: {
4127
+ "application/json": components["schemas"]["api.CreateProjectResponse"];
4128
+ };
4129
+ };
4130
+ };
4131
+ };
4132
+ put?: never;
4133
+ post?: never;
4134
+ delete?: never;
4135
+ options?: never;
4136
+ head?: never;
4137
+ patch?: never;
4138
+ trace?: never;
4139
+ };
4140
+ "/internal/createprojectsuccessresponse": {
4141
+ parameters: {
4142
+ query?: never;
4143
+ header?: never;
4144
+ path?: never;
4145
+ cookie?: never;
4146
+ };
4147
+ /**
4148
+ * Get CreateProjectSuccessResponse (schema generation only)
4149
+ * @description Internal endpoint used only to ensure CreateProjectSuccessResponse schema is generated in OpenAPI spec
4150
+ */
4151
+ get: {
4152
+ parameters: {
4153
+ query?: never;
4154
+ header?: never;
4155
+ path?: never;
4156
+ cookie?: never;
4157
+ };
4158
+ requestBody?: never;
4159
+ responses: {
4160
+ /** @description OK */
4161
+ 200: {
4162
+ headers: {
4163
+ [name: string]: unknown;
4164
+ };
4165
+ content: {
4166
+ "application/json": components["schemas"]["api.CreateProjectSuccessResponse"];
4167
+ };
4168
+ };
4169
+ };
4170
+ };
4171
+ put?: never;
4172
+ post?: never;
4173
+ delete?: never;
4174
+ options?: never;
4175
+ head?: never;
4176
+ patch?: never;
4177
+ trace?: never;
4178
+ };
3828
4179
  "/internal/createvideowallerrorresponse": {
3829
4180
  parameters: {
3830
4181
  query?: never;
@@ -5073,6 +5424,201 @@ export interface paths {
5073
5424
  patch?: never;
5074
5425
  trace?: never;
5075
5426
  };
5427
+ "/internal/deleteprojecterrorresponse": {
5428
+ parameters: {
5429
+ query?: never;
5430
+ header?: never;
5431
+ path?: never;
5432
+ cookie?: never;
5433
+ };
5434
+ /**
5435
+ * Get DeleteProjectErrorResponse (schema generation only)
5436
+ * @description Internal endpoint used only to ensure DeleteProjectErrorResponse schema is generated in OpenAPI spec
5437
+ */
5438
+ get: {
5439
+ parameters: {
5440
+ query?: never;
5441
+ header?: never;
5442
+ path?: never;
5443
+ cookie?: never;
5444
+ };
5445
+ requestBody?: never;
5446
+ responses: {
5447
+ /** @description OK */
5448
+ 200: {
5449
+ headers: {
5450
+ [name: string]: unknown;
5451
+ };
5452
+ content: {
5453
+ "application/json": components["schemas"]["api.DeleteProjectErrorResponse"];
5454
+ };
5455
+ };
5456
+ };
5457
+ };
5458
+ put?: never;
5459
+ post?: never;
5460
+ delete?: never;
5461
+ options?: never;
5462
+ head?: never;
5463
+ patch?: never;
5464
+ trace?: never;
5465
+ };
5466
+ "/internal/deleteprojectinput": {
5467
+ parameters: {
5468
+ query?: never;
5469
+ header?: never;
5470
+ path?: never;
5471
+ cookie?: never;
5472
+ };
5473
+ /**
5474
+ * Get DeleteProjectInput (schema generation only)
5475
+ * @description Internal endpoint used only to ensure DeleteProjectInput schema is generated in OpenAPI spec
5476
+ */
5477
+ get: {
5478
+ parameters: {
5479
+ query?: never;
5480
+ header?: never;
5481
+ path?: never;
5482
+ cookie?: never;
5483
+ };
5484
+ requestBody?: never;
5485
+ responses: {
5486
+ /** @description OK */
5487
+ 200: {
5488
+ headers: {
5489
+ [name: string]: unknown;
5490
+ };
5491
+ content: {
5492
+ "application/json": components["schemas"]["models.DeleteProjectInput"];
5493
+ };
5494
+ };
5495
+ };
5496
+ };
5497
+ put?: never;
5498
+ post?: never;
5499
+ delete?: never;
5500
+ options?: never;
5501
+ head?: never;
5502
+ patch?: never;
5503
+ trace?: never;
5504
+ };
5505
+ "/internal/deleteprojectoutput": {
5506
+ parameters: {
5507
+ query?: never;
5508
+ header?: never;
5509
+ path?: never;
5510
+ cookie?: never;
5511
+ };
5512
+ /**
5513
+ * Get DeleteProjectOutput (schema generation only)
5514
+ * @description Internal endpoint used only to ensure DeleteProjectOutput schema is generated in OpenAPI spec
5515
+ */
5516
+ get: {
5517
+ parameters: {
5518
+ query?: never;
5519
+ header?: never;
5520
+ path?: never;
5521
+ cookie?: never;
5522
+ };
5523
+ requestBody?: never;
5524
+ responses: {
5525
+ /** @description OK */
5526
+ 200: {
5527
+ headers: {
5528
+ [name: string]: unknown;
5529
+ };
5530
+ content: {
5531
+ "application/json": components["schemas"]["models.DeleteProjectOutput"];
5532
+ };
5533
+ };
5534
+ };
5535
+ };
5536
+ put?: never;
5537
+ post?: never;
5538
+ delete?: never;
5539
+ options?: never;
5540
+ head?: never;
5541
+ patch?: never;
5542
+ trace?: never;
5543
+ };
5544
+ "/internal/deleteprojectresponse": {
5545
+ parameters: {
5546
+ query?: never;
5547
+ header?: never;
5548
+ path?: never;
5549
+ cookie?: never;
5550
+ };
5551
+ /**
5552
+ * Get DeleteProjectResponse (schema generation only)
5553
+ * @description Internal endpoint used only to ensure DeleteProjectResponse schema is generated in OpenAPI spec
5554
+ */
5555
+ get: {
5556
+ parameters: {
5557
+ query?: never;
5558
+ header?: never;
5559
+ path?: never;
5560
+ cookie?: never;
5561
+ };
5562
+ requestBody?: never;
5563
+ responses: {
5564
+ /** @description OK */
5565
+ 200: {
5566
+ headers: {
5567
+ [name: string]: unknown;
5568
+ };
5569
+ content: {
5570
+ "application/json": components["schemas"]["api.DeleteProjectResponse"];
5571
+ };
5572
+ };
5573
+ };
5574
+ };
5575
+ put?: never;
5576
+ post?: never;
5577
+ delete?: never;
5578
+ options?: never;
5579
+ head?: never;
5580
+ patch?: never;
5581
+ trace?: never;
5582
+ };
5583
+ "/internal/deleteprojectsuccessresponse": {
5584
+ parameters: {
5585
+ query?: never;
5586
+ header?: never;
5587
+ path?: never;
5588
+ cookie?: never;
5589
+ };
5590
+ /**
5591
+ * Get DeleteProjectSuccessResponse (schema generation only)
5592
+ * @description Internal endpoint used only to ensure DeleteProjectSuccessResponse schema is generated in OpenAPI spec
5593
+ */
5594
+ get: {
5595
+ parameters: {
5596
+ query?: never;
5597
+ header?: never;
5598
+ path?: never;
5599
+ cookie?: never;
5600
+ };
5601
+ requestBody?: never;
5602
+ responses: {
5603
+ /** @description OK */
5604
+ 200: {
5605
+ headers: {
5606
+ [name: string]: unknown;
5607
+ };
5608
+ content: {
5609
+ "application/json": components["schemas"]["api.DeleteProjectSuccessResponse"];
5610
+ };
5611
+ };
5612
+ };
5613
+ };
5614
+ put?: never;
5615
+ post?: never;
5616
+ delete?: never;
5617
+ options?: never;
5618
+ head?: never;
5619
+ patch?: never;
5620
+ trace?: never;
5621
+ };
5076
5622
  "/internal/deletestateerrorresponse": {
5077
5623
  parameters: {
5078
5624
  query?: never;
@@ -13029,6 +13575,84 @@ export interface paths {
13029
13575
  patch?: never;
13030
13576
  trace?: never;
13031
13577
  };
13578
+ "/internal/getprojectinput": {
13579
+ parameters: {
13580
+ query?: never;
13581
+ header?: never;
13582
+ path?: never;
13583
+ cookie?: never;
13584
+ };
13585
+ /**
13586
+ * Get GetProjectInput (schema generation only)
13587
+ * @description Internal endpoint used only to ensure GetProjectInput schema is generated in OpenAPI spec
13588
+ */
13589
+ get: {
13590
+ parameters: {
13591
+ query?: never;
13592
+ header?: never;
13593
+ path?: never;
13594
+ cookie?: never;
13595
+ };
13596
+ requestBody?: never;
13597
+ responses: {
13598
+ /** @description OK */
13599
+ 200: {
13600
+ headers: {
13601
+ [name: string]: unknown;
13602
+ };
13603
+ content: {
13604
+ "application/json": components["schemas"]["models.GetProjectInput"];
13605
+ };
13606
+ };
13607
+ };
13608
+ };
13609
+ put?: never;
13610
+ post?: never;
13611
+ delete?: never;
13612
+ options?: never;
13613
+ head?: never;
13614
+ patch?: never;
13615
+ trace?: never;
13616
+ };
13617
+ "/internal/getprojectoutput": {
13618
+ parameters: {
13619
+ query?: never;
13620
+ header?: never;
13621
+ path?: never;
13622
+ cookie?: never;
13623
+ };
13624
+ /**
13625
+ * Get GetProjectOutput (schema generation only)
13626
+ * @description Internal endpoint used only to ensure GetProjectOutput schema is generated in OpenAPI spec
13627
+ */
13628
+ get: {
13629
+ parameters: {
13630
+ query?: never;
13631
+ header?: never;
13632
+ path?: never;
13633
+ cookie?: never;
13634
+ };
13635
+ requestBody?: never;
13636
+ responses: {
13637
+ /** @description OK */
13638
+ 200: {
13639
+ headers: {
13640
+ [name: string]: unknown;
13641
+ };
13642
+ content: {
13643
+ "application/json": components["schemas"]["models.GetProjectOutput"];
13644
+ };
13645
+ };
13646
+ };
13647
+ };
13648
+ put?: never;
13649
+ post?: never;
13650
+ delete?: never;
13651
+ options?: never;
13652
+ head?: never;
13653
+ patch?: never;
13654
+ trace?: never;
13655
+ };
13032
13656
  "/internal/getprojectresponse": {
13033
13657
  parameters: {
13034
13658
  query?: never;
@@ -20478,6 +21102,45 @@ export interface paths {
20478
21102
  patch?: never;
20479
21103
  trace?: never;
20480
21104
  };
21105
+ "/internal/pipelinesourcedevice": {
21106
+ parameters: {
21107
+ query?: never;
21108
+ header?: never;
21109
+ path?: never;
21110
+ cookie?: never;
21111
+ };
21112
+ /**
21113
+ * Get PipelineSourceDevice (schema generation only)
21114
+ * @description Internal endpoint used only to ensure PipelineSourceDevice schema is generated in OpenAPI spec
21115
+ */
21116
+ get: {
21117
+ parameters: {
21118
+ query?: never;
21119
+ header?: never;
21120
+ path?: never;
21121
+ cookie?: never;
21122
+ };
21123
+ requestBody?: never;
21124
+ responses: {
21125
+ /** @description OK */
21126
+ 200: {
21127
+ headers: {
21128
+ [name: string]: unknown;
21129
+ };
21130
+ content: {
21131
+ "application/json": components["schemas"]["models.PipelineSourceDevice"];
21132
+ };
21133
+ };
21134
+ };
21135
+ };
21136
+ put?: never;
21137
+ post?: never;
21138
+ delete?: never;
21139
+ options?: never;
21140
+ head?: never;
21141
+ patch?: never;
21142
+ trace?: never;
21143
+ };
20481
21144
  "/internal/plan": {
20482
21145
  parameters: {
20483
21146
  query?: never;
@@ -20790,6 +21453,45 @@ export interface paths {
20790
21453
  patch?: never;
20791
21454
  trace?: never;
20792
21455
  };
21456
+ "/internal/projectupdate": {
21457
+ parameters: {
21458
+ query?: never;
21459
+ header?: never;
21460
+ path?: never;
21461
+ cookie?: never;
21462
+ };
21463
+ /**
21464
+ * Get ProjectUpdate (schema generation only)
21465
+ * @description Internal endpoint used only to ensure ProjectUpdate schema is generated in OpenAPI spec
21466
+ */
21467
+ get: {
21468
+ parameters: {
21469
+ query?: never;
21470
+ header?: never;
21471
+ path?: never;
21472
+ cookie?: never;
21473
+ };
21474
+ requestBody?: never;
21475
+ responses: {
21476
+ /** @description OK */
21477
+ 200: {
21478
+ headers: {
21479
+ [name: string]: unknown;
21480
+ };
21481
+ content: {
21482
+ "application/json": components["schemas"]["models.ProjectUpdate"];
21483
+ };
21484
+ };
21485
+ };
21486
+ };
21487
+ put?: never;
21488
+ post?: never;
21489
+ delete?: never;
21490
+ options?: never;
21491
+ head?: never;
21492
+ patch?: never;
21493
+ trace?: never;
21494
+ };
20793
21495
  "/internal/publishfileerrorresponse": {
20794
21496
  parameters: {
20795
21497
  query?: never;
@@ -26250,6 +26952,240 @@ export interface paths {
26250
26952
  patch?: never;
26251
26953
  trace?: never;
26252
26954
  };
26955
+ "/internal/updateprojecterrorresponse": {
26956
+ parameters: {
26957
+ query?: never;
26958
+ header?: never;
26959
+ path?: never;
26960
+ cookie?: never;
26961
+ };
26962
+ /**
26963
+ * Get UpdateProjectErrorResponse (schema generation only)
26964
+ * @description Internal endpoint used only to ensure UpdateProjectErrorResponse schema is generated in OpenAPI spec
26965
+ */
26966
+ get: {
26967
+ parameters: {
26968
+ query?: never;
26969
+ header?: never;
26970
+ path?: never;
26971
+ cookie?: never;
26972
+ };
26973
+ requestBody?: never;
26974
+ responses: {
26975
+ /** @description OK */
26976
+ 200: {
26977
+ headers: {
26978
+ [name: string]: unknown;
26979
+ };
26980
+ content: {
26981
+ "application/json": components["schemas"]["api.UpdateProjectErrorResponse"];
26982
+ };
26983
+ };
26984
+ };
26985
+ };
26986
+ put?: never;
26987
+ post?: never;
26988
+ delete?: never;
26989
+ options?: never;
26990
+ head?: never;
26991
+ patch?: never;
26992
+ trace?: never;
26993
+ };
26994
+ "/internal/updateprojectinput": {
26995
+ parameters: {
26996
+ query?: never;
26997
+ header?: never;
26998
+ path?: never;
26999
+ cookie?: never;
27000
+ };
27001
+ /**
27002
+ * Get UpdateProjectInput (schema generation only)
27003
+ * @description Internal endpoint used only to ensure UpdateProjectInput schema is generated in OpenAPI spec
27004
+ */
27005
+ get: {
27006
+ parameters: {
27007
+ query?: never;
27008
+ header?: never;
27009
+ path?: never;
27010
+ cookie?: never;
27011
+ };
27012
+ requestBody?: never;
27013
+ responses: {
27014
+ /** @description OK */
27015
+ 200: {
27016
+ headers: {
27017
+ [name: string]: unknown;
27018
+ };
27019
+ content: {
27020
+ "application/json": components["schemas"]["models.UpdateProjectInput"];
27021
+ };
27022
+ };
27023
+ };
27024
+ };
27025
+ put?: never;
27026
+ post?: never;
27027
+ delete?: never;
27028
+ options?: never;
27029
+ head?: never;
27030
+ patch?: never;
27031
+ trace?: never;
27032
+ };
27033
+ "/internal/updateprojectoutput": {
27034
+ parameters: {
27035
+ query?: never;
27036
+ header?: never;
27037
+ path?: never;
27038
+ cookie?: never;
27039
+ };
27040
+ /**
27041
+ * Get UpdateProjectOutput (schema generation only)
27042
+ * @description Internal endpoint used only to ensure UpdateProjectOutput schema is generated in OpenAPI spec
27043
+ */
27044
+ get: {
27045
+ parameters: {
27046
+ query?: never;
27047
+ header?: never;
27048
+ path?: never;
27049
+ cookie?: never;
27050
+ };
27051
+ requestBody?: never;
27052
+ responses: {
27053
+ /** @description OK */
27054
+ 200: {
27055
+ headers: {
27056
+ [name: string]: unknown;
27057
+ };
27058
+ content: {
27059
+ "application/json": components["schemas"]["models.UpdateProjectOutput"];
27060
+ };
27061
+ };
27062
+ };
27063
+ };
27064
+ put?: never;
27065
+ post?: never;
27066
+ delete?: never;
27067
+ options?: never;
27068
+ head?: never;
27069
+ patch?: never;
27070
+ trace?: never;
27071
+ };
27072
+ "/internal/updateprojectrequest": {
27073
+ parameters: {
27074
+ query?: never;
27075
+ header?: never;
27076
+ path?: never;
27077
+ cookie?: never;
27078
+ };
27079
+ /**
27080
+ * Get UpdateProjectRequest (schema generation only)
27081
+ * @description Internal endpoint used only to ensure UpdateProjectRequest schema is generated in OpenAPI spec
27082
+ */
27083
+ get: {
27084
+ parameters: {
27085
+ query?: never;
27086
+ header?: never;
27087
+ path?: never;
27088
+ cookie?: never;
27089
+ };
27090
+ requestBody?: never;
27091
+ responses: {
27092
+ /** @description OK */
27093
+ 200: {
27094
+ headers: {
27095
+ [name: string]: unknown;
27096
+ };
27097
+ content: {
27098
+ "application/json": components["schemas"]["api.UpdateProjectRequest"];
27099
+ };
27100
+ };
27101
+ };
27102
+ };
27103
+ put?: never;
27104
+ post?: never;
27105
+ delete?: never;
27106
+ options?: never;
27107
+ head?: never;
27108
+ patch?: never;
27109
+ trace?: never;
27110
+ };
27111
+ "/internal/updateprojectresponse": {
27112
+ parameters: {
27113
+ query?: never;
27114
+ header?: never;
27115
+ path?: never;
27116
+ cookie?: never;
27117
+ };
27118
+ /**
27119
+ * Get UpdateProjectResponse (schema generation only)
27120
+ * @description Internal endpoint used only to ensure UpdateProjectResponse schema is generated in OpenAPI spec
27121
+ */
27122
+ get: {
27123
+ parameters: {
27124
+ query?: never;
27125
+ header?: never;
27126
+ path?: never;
27127
+ cookie?: never;
27128
+ };
27129
+ requestBody?: never;
27130
+ responses: {
27131
+ /** @description OK */
27132
+ 200: {
27133
+ headers: {
27134
+ [name: string]: unknown;
27135
+ };
27136
+ content: {
27137
+ "application/json": components["schemas"]["api.UpdateProjectResponse"];
27138
+ };
27139
+ };
27140
+ };
27141
+ };
27142
+ put?: never;
27143
+ post?: never;
27144
+ delete?: never;
27145
+ options?: never;
27146
+ head?: never;
27147
+ patch?: never;
27148
+ trace?: never;
27149
+ };
27150
+ "/internal/updateprojectsuccessresponse": {
27151
+ parameters: {
27152
+ query?: never;
27153
+ header?: never;
27154
+ path?: never;
27155
+ cookie?: never;
27156
+ };
27157
+ /**
27158
+ * Get UpdateProjectSuccessResponse (schema generation only)
27159
+ * @description Internal endpoint used only to ensure UpdateProjectSuccessResponse schema is generated in OpenAPI spec
27160
+ */
27161
+ get: {
27162
+ parameters: {
27163
+ query?: never;
27164
+ header?: never;
27165
+ path?: never;
27166
+ cookie?: never;
27167
+ };
27168
+ requestBody?: never;
27169
+ responses: {
27170
+ /** @description OK */
27171
+ 200: {
27172
+ headers: {
27173
+ [name: string]: unknown;
27174
+ };
27175
+ content: {
27176
+ "application/json": components["schemas"]["api.UpdateProjectSuccessResponse"];
27177
+ };
27178
+ };
27179
+ };
27180
+ };
27181
+ put?: never;
27182
+ post?: never;
27183
+ delete?: never;
27184
+ options?: never;
27185
+ head?: never;
27186
+ patch?: never;
27187
+ trace?: never;
27188
+ };
26253
27189
  "/internal/updateuserprofileerrorresponse": {
26254
27190
  parameters: {
26255
27191
  query?: never;
@@ -28705,8 +29641,7 @@ export interface components {
28705
29641
  /** @description legacy: read by v20130101 only */
28706
29642
  export_files?: components["schemas"]["models.ExportFile"][];
28707
29643
  export_files_count?: number;
28708
- /**
28709
- * @description ExportHeartbeatAgeSeconds is computed at API response time
29644
+ /** @description ExportHeartbeatAgeSeconds is computed at API response time
28710
29645
  * (NOT persisted — bson:"-") and ships the server-side delta
28711
29646
  * between now and ExportUpdatedAt so the frontend can render a
28712
29647
  * "stuck" state without depending on the user's local clock
@@ -28715,46 +29650,39 @@ export interface components {
28715
29650
  * (legacy / pre-feature tasks); a zero value means the heartbeat
28716
29651
  * was just written. The FE only interprets this field in
28717
29652
  * combination with the in-flight signal — see isExportActive
28718
- * and getExportUiState for the rule.
28719
- */
29653
+ * and getExportUiState for the rule. */
28720
29654
  export_heartbeat_age_seconds?: number;
28721
29655
  export_in_progress?: boolean;
28722
29656
  /** @description "0% -> 100%" */
28723
29657
  export_progress?: number;
28724
29658
  export_requested?: boolean;
28725
29659
  export_revision?: number;
28726
- /**
28727
- * @description ExportSelectionDirty signals that the curated bundle composition
29660
+ /** @description ExportSelectionDirty signals that the curated bundle composition
28728
29661
  * (include_in_export flags on case_media / attachments, or a newly
28729
29662
  * added media row) changed since the last successful export
28730
29663
  * completion. Bumped to true by curation toggles and media inserts
28731
29664
  * in hub-api; cleared by hub-pipeline-export in CompleteExport.
28732
29665
  * The FE uses this to disable the Regenerate action when no
28733
29666
  * changes are pending and to surface a "selection changed" hint
28734
- * next to the export status badge.
28735
- */
29667
+ * next to the export status badge. */
28736
29668
  export_selection_dirty?: boolean;
28737
29669
  /** @description An export task, is containing multiple video in a compressed file format (.zip) */
28738
29670
  export_status?: string;
28739
- /**
28740
- * @description ExportUpdatedAt is a heartbeat written by hub-pipeline-export
29671
+ /** @description ExportUpdatedAt is a heartbeat written by hub-pipeline-export
28741
29672
  * every time it transitions the export state (claim, status
28742
29673
  * updates, per-file download, release, complete) and by hub-api
28743
29674
  * when a new export run is requested. It lets the API detect
28744
29675
  * orphaned runs whose worker died without releasing the lock:
28745
29676
  * when (now - ExportUpdatedAt) exceeds the staleness threshold,
28746
29677
  * isExportActive treats the lock as released so the user can
28747
- * retry instead of being blocked by a 409 forever.
28748
- */
29678
+ * retry instead of being blocked by a 409 forever. */
28749
29679
  export_updated_at?: string;
28750
29680
  id?: string;
28751
29681
  is_private?: boolean;
28752
29682
  labels?: string[];
28753
29683
  legal_hold?: boolean;
28754
- /**
28755
- * @description Number of source case_media rows attached to this task. Mirrors
28756
- * case_media documents where role == "source" and task_id matches.
28757
- */
29684
+ /** @description Number of source case_media rows attached to this task. Mirrors
29685
+ * case_media documents where role == "source" and task_id matches. */
28758
29686
  media_count?: number;
28759
29687
  media_date?: string;
28760
29688
  media_datetime?: string;
@@ -28766,16 +29694,13 @@ export interface components {
28766
29694
  notes_short?: string;
28767
29695
  notify_assignees?: boolean;
28768
29696
  organisationId?: string;
28769
- /**
28770
- * @description ProjectId optionally places the case/task in a project within its organisation.
28771
- * A nil value keeps it organisation-wide.
28772
- */
29697
+ /** @description ProjectId optionally places the case/task in a project within its organisation.
29698
+ * A nil value keeps it organisation-wide. */
28773
29699
  projectId?: string;
28774
29700
  reporter_email?: string;
28775
29701
  reporter_id?: string;
28776
29702
  reporter_profile?: string;
28777
- /**
28778
- * @description Retention / lifecycle.
29703
+ /** @description Retention / lifecycle.
28779
29704
  *
28780
29705
  * RetentionDays captures the *policy intent*: how many days the
28781
29706
  * case should be kept after its retention anchor (typically the
@@ -28802,8 +29727,7 @@ export interface components {
28802
29727
  * regardless of ExpiresAt. It is intentionally a separate flag
28803
29728
  * from the retention date so audits can distinguish "kept longer
28804
29729
  * because investigator extended" from "kept because under legal
28805
- * hold". Managed by a dedicated permission.
28806
- */
29730
+ * hold". Managed by a dedicated permission. */
28807
29731
  retention_days?: number;
28808
29732
  sequenceId?: string;
28809
29733
  sprite_url?: string;
@@ -28820,10 +29744,8 @@ export interface components {
28820
29744
  title?: string;
28821
29745
  user_id?: string;
28822
29746
  username?: string;
28823
- /**
28824
- * @description This is used for a single export, for a bulk export, we will use the first video as thumbnail and sprite.
28825
- * Referencing to some media: video, thumbnail and sprite
28826
- */
29747
+ /** @description This is used for a single export, for a bulk export, we will use the first video as thumbnail and sprite.
29748
+ * Referencing to some media: video, thumbnail and sprite */
28827
29749
  video_url?: string;
28828
29750
  videoFile?: string;
28829
29751
  videoProvider?: string;
@@ -28870,6 +29792,7 @@ export interface components {
28870
29792
  caseMediaId?: string;
28871
29793
  file?: string;
28872
29794
  organisationId?: string;
29795
+ projectId?: string;
28873
29796
  provider?: string;
28874
29797
  status?: components["schemas"]["models.CaseMediaStatus"];
28875
29798
  statusError?: string;
@@ -28980,25 +29903,21 @@ export interface components {
28980
29903
  params?: {
28981
29904
  [key: string]: unknown;
28982
29905
  };
28983
- /**
28984
- * @description SourceAttachmentId points at a video CaseAttachment by its id.
29906
+ /** @description SourceAttachmentId points at a video CaseAttachment by its id.
28985
29907
  * When both SourceCaseMediaId and SourceVideoFile are empty the API
28986
29908
  * materialises (idempotently — reuses the attachment's linked row
28987
29909
  * when present) a Role=source CaseMedia from the attachment's stored
28988
29910
  * video and applies the edit to that row, so an attached video can
28989
- * be redacted with the same flow as a device recording.
28990
- */
29911
+ * be redacted with the same flow as a device recording. */
28991
29912
  sourceAttachmentId?: string;
28992
29913
  sourceCaseMediaId?: string;
28993
- /**
28994
- * @description SourceVideoFile points at a legacy task.export_files entry by its
29914
+ /** @description SourceVideoFile points at a legacy task.export_files entry by its
28995
29915
  * storage key. When SourceCaseMediaId is empty the API resolves
28996
29916
  * this key against the task's ExportFiles, lazily creates a
28997
29917
  * Role=source CaseMedia row for it (idempotent — reuses an
28998
29918
  * existing row with the same video_file when present), and then
28999
29919
  * applies the edit to that row. Lets pre-migration cases be
29000
- * redacted without requiring a workspace-wide backfill.
29001
- */
29920
+ * redacted without requiring a workspace-wide backfill. */
29002
29921
  sourceVideoFile?: string;
29003
29922
  supersedesId?: string;
29004
29923
  };
@@ -29049,6 +29968,37 @@ export interface components {
29049
29968
  /** @description Additional metadata about the response, such as timestamps and request IDs */
29050
29969
  metadata?: components["schemas"]["api.Metadata"];
29051
29970
  };
29971
+ "api.CreateProjectErrorResponse": {
29972
+ /** @description Application-specific error code */
29973
+ applicationStatusCode?: string;
29974
+ /** @description Entity-specific error code */
29975
+ entityStatusCode?: string;
29976
+ /** @description HTTP status code for the error */
29977
+ httpStatusCode?: number;
29978
+ /** @description Error message describing the issue */
29979
+ message?: string;
29980
+ /** @description Additional metadata about the error, such as timestamps and request IDs */
29981
+ metadata?: components["schemas"]["api.Metadata"];
29982
+ };
29983
+ "api.CreateProjectRequest": {
29984
+ project?: components["schemas"]["models.Project"];
29985
+ };
29986
+ "api.CreateProjectResponse": {
29987
+ project?: components["schemas"]["models.Project"];
29988
+ };
29989
+ "api.CreateProjectSuccessResponse": {
29990
+ /** @description Application-specific status code */
29991
+ applicationStatusCode?: string;
29992
+ data?: components["schemas"]["api.CreateProjectResponse"];
29993
+ /** @description Entity-specific status code */
29994
+ entityStatusCode?: string;
29995
+ /** @description HTTP status code for the response */
29996
+ httpStatusCode?: number;
29997
+ /** @description Success message describing the operation */
29998
+ message?: string;
29999
+ /** @description Additional metadata about the response, such as timestamps and request IDs */
30000
+ metadata?: components["schemas"]["api.Metadata"];
30001
+ };
29052
30002
  "api.CreateVideowallErrorResponse": {
29053
30003
  /** @description Application-specific error code */
29054
30004
  applicationStatusCode?: string;
@@ -29115,6 +30065,20 @@ export interface components {
29115
30065
  /** @description Request fields (sent by client) */
29116
30066
  cursor?: string;
29117
30067
  hasMore?: boolean;
30068
+ /** @description IncludeTotal asks the server to also count everything the filter matches,
30069
+ * not just the page being returned, and report it as Total.
30070
+ *
30071
+ * It is opt-in because the count is a second query over the whole matched
30072
+ * set while the page itself stops at Limit, so its cost scales with the
30073
+ * tenant rather than with the response. Most callers page for display and
30074
+ * never read Total; making them pay for it is how a cheap list turns into
30075
+ * an expensive one, and it is why this defaults to off.
30076
+ *
30077
+ * A caller that omits it gets Total unset rather than zero-as-a-count:
30078
+ * Total is omitempty, so "not asked for" and "asked for, and the answer is
30079
+ * nought" are the same wire value. Callers that need to tell the two apart
30080
+ * must rely on having asked. */
30081
+ includeTotal?: boolean;
29118
30082
  limit?: number;
29119
30083
  /** @description Response fields (returned by server) */
29120
30084
  nextCursor?: string;
@@ -29122,6 +30086,8 @@ export interface components {
29122
30086
  page?: number;
29123
30087
  pageSize?: number;
29124
30088
  prevCursor?: string;
30089
+ /** @description Total is the size of the whole matched set, populated only when the
30090
+ * request set IncludeTotal. It is not the length of the page. */
29125
30091
  total?: number;
29126
30092
  };
29127
30093
  "api.DebugResponse": {
@@ -29176,10 +30142,8 @@ export interface components {
29176
30142
  metadata?: components["schemas"]["api.Metadata"];
29177
30143
  };
29178
30144
  "api.DeleteCaseAttachmentResponse": {
29179
- /**
29180
- * @description Id of the removed attachment, echoed back for client cache
29181
- * invalidation.
29182
- */
30145
+ /** @description Id of the removed attachment, echoed back for client cache
30146
+ * invalidation. */
29183
30147
  id?: string;
29184
30148
  };
29185
30149
  "api.DeleteCaseAttachmentSuccessResponse": {
@@ -29224,6 +30188,34 @@ export interface components {
29224
30188
  /** @description Additional metadata about the response, such as timestamps and request IDs */
29225
30189
  metadata?: components["schemas"]["api.Metadata"];
29226
30190
  };
30191
+ "api.DeleteProjectErrorResponse": {
30192
+ /** @description Application-specific error code */
30193
+ applicationStatusCode?: string;
30194
+ /** @description Entity-specific error code */
30195
+ entityStatusCode?: string;
30196
+ /** @description HTTP status code for the error */
30197
+ httpStatusCode?: number;
30198
+ /** @description Error message describing the issue */
30199
+ message?: string;
30200
+ /** @description Additional metadata about the error, such as timestamps and request IDs */
30201
+ metadata?: components["schemas"]["api.Metadata"];
30202
+ };
30203
+ "api.DeleteProjectResponse": {
30204
+ project?: components["schemas"]["models.Project"];
30205
+ };
30206
+ "api.DeleteProjectSuccessResponse": {
30207
+ /** @description Application-specific status code */
30208
+ applicationStatusCode?: string;
30209
+ data?: components["schemas"]["api.DeleteProjectResponse"];
30210
+ /** @description Entity-specific status code */
30211
+ entityStatusCode?: string;
30212
+ /** @description HTTP status code for the response */
30213
+ httpStatusCode?: number;
30214
+ /** @description Success message describing the operation */
30215
+ message?: string;
30216
+ /** @description Additional metadata about the response, such as timestamps and request IDs */
30217
+ metadata?: components["schemas"]["api.Metadata"];
30218
+ };
29227
30219
  "api.DeleteStateErrorResponse": {
29228
30220
  /** @description Application-specific error code */
29229
30221
  applicationStatusCode?: string;
@@ -31291,26 +32283,18 @@ export interface components {
31291
32283
  metadata?: components["schemas"]["api.Metadata"];
31292
32284
  };
31293
32285
  "api.IngestRequest": {
31294
- /**
31295
- * @description AnalysisId targets the recording via its analysis document _id (an
31296
- * ObjectID hex), as an alternative to MediaKey.
31297
- */
32286
+ /** @description AnalysisId targets the recording via its analysis document _id (an
32287
+ * ObjectID hex), as an alternative to MediaKey. */
31298
32288
  analysisId?: string;
31299
- /**
31300
- * @description MediaKey is the recording KEY the result belongs to — the stable string
32289
+ /** @description MediaKey is the recording KEY the result belongs to — the stable string
31301
32290
  * stored as media.videoFile / analysis.key (NOT the media document _id).
31302
- * Provide this or AnalysisId (MediaKey wins when both are present).
31303
- */
32291
+ * Provide this or AnalysisId (MediaKey wins when both are present). */
31304
32292
  mediaKey?: string;
31305
- /**
31306
- * @description Operation is the kind selector — the registry key the ingest dispatcher
31307
- * routes on (e.g. "detection").
31308
- */
32293
+ /** @description Operation is the kind selector — the registry key the ingest dispatcher
32294
+ * routes on (e.g. "detection"). */
31309
32295
  operation?: string;
31310
- /**
31311
- * @description Payload is the kind's typed result body, validated and normalised by the
31312
- * kind's handler (for "detection" this is a PostDetectionsRequest).
31313
- */
32296
+ /** @description Payload is the kind's typed result body, validated and normalised by the
32297
+ * kind's handler (for "detection" this is a PostDetectionsRequest). */
31314
32298
  payload?: number[];
31315
32299
  };
31316
32300
  "api.IngestResponse": {
@@ -31393,6 +32377,7 @@ export interface components {
31393
32377
  name?: string;
31394
32378
  names?: string[];
31395
32379
  sort?: string;
32380
+ timeRanges?: components["schemas"]["models.TimeRange"][];
31396
32381
  };
31397
32382
  "api.MarkerEventFilter": {
31398
32383
  deviceKeys?: string[];
@@ -31537,22 +32522,20 @@ export interface components {
31537
32522
  metadata?: components["schemas"]["api.Metadata"];
31538
32523
  };
31539
32524
  "api.PostDetectionsRequest": {
31540
- /**
31541
- * @description AnalysisId targets the recording via its analysis document _id (an
31542
- * ObjectID hex), as an alternative to MediaKey.
31543
- */
32525
+ /** @description AnalysisId targets the recording via its analysis document _id (an
32526
+ * ObjectID hex), as an alternative to MediaKey. */
31544
32527
  analysisId?: string;
31545
32528
  categories?: components["schemas"]["models.DetectionCategory"][];
31546
32529
  /** @description "pixel" | "normalized" */
31547
32530
  coordinateSpace?: string;
31548
32531
  media?: components["schemas"]["models.DetectionMedia"];
31549
- /**
31550
- * @description MediaKey is the recording KEY the run belongs to - the stable string that
32532
+ /** @description MediaKey is the recording KEY the run belongs to - the stable string that
31551
32533
  * is stored as media.videoFile and analysis.key (NOT the media document's
31552
32534
  * _id). The server resolves it against analysis.key. Provide this or
31553
- * AnalysisId (MediaKey wins when both are present).
31554
- */
32535
+ * AnalysisId (MediaKey wins when both are present). */
31555
32536
  mediaKey?: string;
32537
+ /** @description Name is an optional user-facing label for the run. */
32538
+ name?: string;
31556
32539
  schemaVersion?: string;
31557
32540
  source?: components["schemas"]["models.DetectionSource"];
31558
32541
  /** @description Task is an optional run discriminator; defaults to "detection". */
@@ -31596,10 +32579,8 @@ export interface components {
31596
32579
  fileName?: string;
31597
32580
  fileSize?: number;
31598
32581
  provider?: string;
31599
- /**
31600
- * @description SignedURL is a vault-signed URL that can be used to fetch the file
31601
- * after upload. It carries an HMAC signature and a TTL.
31602
- */
32582
+ /** @description SignedURL is a vault-signed URL that can be used to fetch the file
32583
+ * after upload. It carries an HMAC signature and a TTL. */
31603
32584
  signedUrl?: string;
31604
32585
  };
31605
32586
  "api.PublishFileSuccessResponse": {
@@ -31845,14 +32826,13 @@ export interface components {
31845
32826
  faceRedaction?: components["schemas"]["models.FaceRedaction"];
31846
32827
  fileName?: string;
31847
32828
  mode?: components["schemas"]["models.RedactionMode"];
31848
- /**
31849
- * @description OrganisationId scopes the redaction job to the owning organisation. It is
32829
+ /** @description OrganisationId scopes the redaction job to the owning organisation. It is
31850
32830
  * carried on the request struct itself (not only on the transport envelope)
31851
32831
  * so the worker can resolve the same Request whether the struct arrives on an
31852
32832
  * on-demand PipelineEvent (event.Payload) or a hub-workflows stage dispatch
31853
- * (run.User) — i.e. the request is self-contained and transport agnostic.
31854
- */
32833
+ * (run.User) — i.e. the request is self-contained and transport agnostic. */
31855
32834
  organisationId?: string;
32835
+ projectId?: string;
31856
32836
  signedUrl?: string;
31857
32837
  taskId?: string;
31858
32838
  };
@@ -32304,6 +33284,37 @@ export interface components {
32304
33284
  /** @description Additional metadata about the response, such as timestamps and request IDs */
32305
33285
  metadata?: components["schemas"]["api.Metadata"];
32306
33286
  };
33287
+ "api.UpdateProjectErrorResponse": {
33288
+ /** @description Application-specific error code */
33289
+ applicationStatusCode?: string;
33290
+ /** @description Entity-specific error code */
33291
+ entityStatusCode?: string;
33292
+ /** @description HTTP status code for the error */
33293
+ httpStatusCode?: number;
33294
+ /** @description Error message describing the issue */
33295
+ message?: string;
33296
+ /** @description Additional metadata about the error, such as timestamps and request IDs */
33297
+ metadata?: components["schemas"]["api.Metadata"];
33298
+ };
33299
+ "api.UpdateProjectRequest": {
33300
+ project?: components["schemas"]["models.ProjectUpdate"];
33301
+ };
33302
+ "api.UpdateProjectResponse": {
33303
+ project?: components["schemas"]["models.Project"];
33304
+ };
33305
+ "api.UpdateProjectSuccessResponse": {
33306
+ /** @description Application-specific status code */
33307
+ applicationStatusCode?: string;
33308
+ data?: components["schemas"]["api.UpdateProjectResponse"];
33309
+ /** @description Entity-specific status code */
33310
+ entityStatusCode?: string;
33311
+ /** @description HTTP status code for the response */
33312
+ httpStatusCode?: number;
33313
+ /** @description Success message describing the operation */
33314
+ message?: string;
33315
+ /** @description Additional metadata about the response, such as timestamps and request IDs */
33316
+ metadata?: components["schemas"]["api.Metadata"];
33317
+ };
32307
33318
  "api.UpdateUserProfileErrorResponse": {
32308
33319
  /** @description Application-specific error code */
32309
33320
  applicationStatusCode?: string;
@@ -32407,17 +33418,13 @@ export interface components {
32407
33418
  metadata?: components["schemas"]["api.Metadata"];
32408
33419
  };
32409
33420
  "api.UploadCaseAttachmentRequest": {
32410
- /**
32411
- * @description Name overrides the filename recorded on the attachment. Defaults
32412
- * to the multipart part filename when omitted.
32413
- */
33421
+ /** @description Name overrides the filename recorded on the attachment. Defaults
33422
+ * to the multipart part filename when omitted. */
32414
33423
  name?: string;
32415
- /**
32416
- * @description RelatedCaseMediaId optionally links the attachment to a specific
33424
+ /** @description RelatedCaseMediaId optionally links the attachment to a specific
32417
33425
  * case_media entry it documents or annotates (annotated screenshot
32418
33426
  * of a redacted clip, etc.). Hex ObjectID; must belong to the same
32419
- * task.
32420
- */
33427
+ * task. */
32421
33428
  relatedCaseMediaId?: string;
32422
33429
  };
32423
33430
  "api.UploadCaseAttachmentResponse": {
@@ -32487,25 +33494,27 @@ export interface components {
32487
33494
  triggerType?: components["schemas"]["models.WorkflowTriggerType"];
32488
33495
  };
32489
33496
  "api.WorkflowRunStatus": {
32490
- /**
32491
- * @description Dispatched / Resolved are the sizes of the run's dispatched and resolved
32492
- * operation sets, exposed as a coarse progress hint.
32493
- */
33497
+ /** @description Dispatched / Resolved are the sizes of the run's dispatched and resolved
33498
+ * operation sets, exposed as a coarse progress hint. */
32494
33499
  dispatched?: number;
33500
+ /** @description DispatchedOperations / ResolvedOperations name the stages behind the
33501
+ * Dispatched / Resolved counts, in dispatch/resolution order, so a surface
33502
+ * can render per-stage progress (e.g. "pose done, redaction running")
33503
+ * instead of only a run-level running/completed flip for multi-stage runs. */
33504
+ dispatchedOperations?: string[];
32495
33505
  end?: number;
32496
33506
  /** @description HasResults is true when the run accumulated any stage output. */
32497
33507
  hasResults?: boolean;
32498
33508
  key?: string;
32499
33509
  origin?: string;
32500
33510
  resolved?: number;
33511
+ resolvedOperations?: string[];
32501
33512
  runId?: string;
32502
33513
  sourceRef?: string;
32503
33514
  /** @description Start / End are unix seconds; End is 0 while the run is still open. */
32504
33515
  start?: number;
32505
- /**
32506
- * @description State is the derived lifecycle: running | completed | noResult
32507
- * (models.WorkflowRunState).
32508
- */
33516
+ /** @description State is the derived lifecycle: running | completed | noResult
33517
+ * (models.WorkflowRunState). */
32509
33518
  state?: string;
32510
33519
  workflowId?: string;
32511
33520
  workflowName?: string;
@@ -32676,10 +33685,8 @@ export interface components {
32676
33685
  in_process?: number;
32677
33686
  key?: string;
32678
33687
  organisationId?: string;
32679
- /**
32680
- * @description ProjectId optionally places the analysis in a project within its organisation.
32681
- * A nil value keeps the analysis organisation-wide.
32682
- */
33688
+ /** @description ProjectId optionally places the analysis in a project within its organisation.
33689
+ * A nil value keeps the analysis organisation-wide. */
32683
33690
  projectId?: string;
32684
33691
  provider?: string;
32685
33692
  requiredOperations?: string[];
@@ -32773,52 +33780,87 @@ export interface components {
32773
33780
  "models.Audit": {
32774
33781
  createdAt?: string;
32775
33782
  createdBy?: string;
32776
- /**
32777
- * @description LastAction is a short semantic label describing the most recent change
33783
+ /** @description LastAction is a short semantic label describing the most recent change
32778
33784
  * (e.g. "role.assigned", "member.suspended", "device.renamed"). For the
32779
- * complete history, query AuditEvent by TargetType/TargetId.
32780
- */
33785
+ * complete history, query AuditEvent by TargetType/TargetId. */
32781
33786
  lastAction?: string;
32782
33787
  updatedAt?: string;
32783
33788
  updatedBy?: string;
32784
33789
  };
33790
+ "models.AuditAuthorizationInfo": {
33791
+ granted?: boolean;
33792
+ permission?: string;
33793
+ policy?: string;
33794
+ resourceId?: string;
33795
+ resourceType?: string;
33796
+ scope?: string;
33797
+ };
32785
33798
  "models.AuditEvent": {
32786
- /**
32787
- * @description Action is a short semantic label, e.g. "case.commented", "device.renamed",
32788
- * "member.suspended".
32789
- */
33799
+ /** @description Action is a short semantic label, e.g. "case.commented", "device.renamed",
33800
+ * "member.suspended". */
32790
33801
  action?: string;
32791
- /**
32792
- * @description ActorId is the user who performed the action; ActorName is denormalised so
32793
- * history can be rendered without a lookup.
32794
- */
33802
+ /** @description ActorId is the user who performed the action; ActorName is denormalised so
33803
+ * history can be rendered without a lookup. */
32795
33804
  actorId?: string;
32796
33805
  actorName?: string;
33806
+ /** @description ActorType identifies the principal kind, e.g. "user", "apikey" or "system". */
33807
+ actorType?: string;
33808
+ /** @description AuthorizationInfo records the permission decisions actually made for the
33809
+ * operation. Authentication and trusted system events may leave it empty. */
33810
+ authorizationInfo?: components["schemas"]["models.AuditAuthorizationInfo"][];
33811
+ /** @description Category groups the action by subsystem. */
33812
+ category?: string;
32797
33813
  /** @description Changes optionally captures the field-level diff for this event. */
32798
33814
  changes?: components["schemas"]["models.AuditFieldChange"][];
32799
33815
  id?: string;
32800
- /** @description Metadata holds contextual key/value pairs (ip, userAgent, requestId, ...). */
33816
+ /** @description Metadata holds additional action-specific context. */
32801
33817
  metadata?: {
32802
33818
  [key: string]: string;
32803
33819
  };
33820
+ /** @description Operation is the coarse CRUD-style action class. */
33821
+ operation?: string;
32804
33822
  /** @description OrganisationId scopes the event to a tenant for org-wide audit queries. */
32805
33823
  organisationId?: string;
33824
+ /** @description ProjectId optionally narrows the event to a project within the organisation.
33825
+ * Organisation-wide actions leave it nil. */
33826
+ projectId?: string;
33827
+ /** @description Request contains transport and correlation evidence captured at ingress. */
33828
+ request?: components["schemas"]["models.AuditRequestInfo"];
33829
+ /** @description SchemaVersion identifies the persisted audit event contract. */
33830
+ schemaVersion?: number;
33831
+ /** @description Source identifies the service that produced the event. */
33832
+ source?: string;
33833
+ /** @description Status records the operation result independently of authorization. */
33834
+ status?: components["schemas"]["models.AuditEventStatus"];
32806
33835
  targetId?: string;
32807
- /**
32808
- * @description TargetType and TargetId identify the entity the action was performed on
33836
+ targetName?: string;
33837
+ /** @description TargetType and TargetId identify the entity the action was performed on
32809
33838
  * (e.g. TargetType "case" with the case id). Query these to render an
32810
33839
  * entity's audit history. TargetId is a string so it can hold either an
32811
- * ObjectID hex or a non-ObjectID key (such as a media key).
32812
- */
33840
+ * ObjectID hex or a non-ObjectID key (such as a media key). TargetName is the
33841
+ * denormalised point-in-time label of the target. */
32813
33842
  targetType?: string;
32814
33843
  /** @description Timestamp is when the action occurred. */
32815
33844
  timestamp?: string;
32816
33845
  };
33846
+ "models.AuditEventStatus": {
33847
+ code?: string;
33848
+ outcome?: string;
33849
+ };
32817
33850
  "models.AuditFieldChange": {
32818
33851
  field?: string;
32819
33852
  newValue?: string;
32820
33853
  oldValue?: string;
32821
33854
  };
33855
+ "models.AuditRequestInfo": {
33856
+ correlationId?: string;
33857
+ id?: string;
33858
+ ip?: string;
33859
+ method?: string;
33860
+ path?: string;
33861
+ traceId?: string;
33862
+ userAgent?: string;
33863
+ };
32822
33864
  /** @enum {string} */
32823
33865
  "models.BaseRole": "guest" | "editor" | "admin" | "owner" | "application";
32824
33866
  "models.CameraMetadata": {
@@ -32876,132 +33918,99 @@ export interface components {
32876
33918
  "models.CaseAttachment": {
32877
33919
  createdAt?: number;
32878
33920
  createdBy?: string;
32879
- /**
32880
- * @description Storage pointer into Vault (same abstraction as CaseMedia.File /
33921
+ /** @description Storage pointer into Vault (same abstraction as CaseMedia.File /
32881
33922
  * CaseMedia.Provider). Provider identifies the storage solution;
32882
- * File is the object key inside it.
32883
- */
33923
+ * File is the object key inside it. */
32884
33924
  file?: string;
32885
33925
  id?: string;
32886
- /**
32887
- * @description IncludeInExport and IncludeInShare are per-attachment curation
33926
+ /** @description IncludeInExport and IncludeInShare are per-attachment curation
32888
33927
  * flags. Same semantics as the namesakes on CaseMedia: defaulted
32889
33928
  * to true at upload time, toggled via PATCH, consulted by the
32890
33929
  * export pipeline and the share recipient endpoint, and frozen
32891
33930
  * into CaseShare.AttachmentSelection at CreateShare time.
32892
33931
  *
32893
33932
  * BSON tags deliberately omit `,omitempty` so a `false` value is
32894
- * persisted faithfully instead of being dropped to the default.
32895
- */
33933
+ * persisted faithfully instead of being dropped to the default. */
32896
33934
  includeInExport?: boolean;
32897
33935
  includeInShare?: boolean;
32898
33936
  mimeType?: string;
32899
- /**
32900
- * @description Name is the original filename at upload time. Users may rename
33937
+ /** @description Name is the original filename at upload time. Users may rename
32901
33938
  * the attachment afterwards without renaming the underlying object
32902
- * in Vault.
32903
- */
33939
+ * in Vault. */
32904
33940
  name?: string;
32905
33941
  organisationId?: string;
32906
- /**
32907
- * @description ProjectId optionally places the attachment in a project within its organisation.
32908
- * A nil value keeps it organisation-wide.
32909
- */
33942
+ /** @description ProjectId optionally places the attachment in a project within its organisation.
33943
+ * A nil value keeps it organisation-wide. */
32910
33944
  projectId?: string;
32911
33945
  provider?: string;
32912
- /**
32913
- * @description RelatedCaseMediaId optionally links the attachment to a specific
33946
+ /** @description RelatedCaseMediaId optionally links the attachment to a specific
32914
33947
  * case_media entry it documents or annotates (for example, an
32915
33948
  * annotated screenshot of a redacted clip). Nil for free-standing
32916
- * case-level attachments.
32917
- */
33949
+ * case-level attachments. */
32918
33950
  relatedCaseMediaId?: string;
32919
- /**
32920
- * @description Sha256 is the hex-encoded SHA-256 of the uploaded bytes,
33951
+ /** @description Sha256 is the hex-encoded SHA-256 of the uploaded bytes,
32921
33952
  * computed by hub-api while streaming the upload to Vault. Used
32922
33953
  * for de-duplication detection and integrity checks on large
32923
- * files. Optional — older entries may not have it.
32924
- */
33954
+ * files. Optional — older entries may not have it. */
32925
33955
  sha256?: string;
32926
- /**
32927
- * @description Size in bytes of the stored object. Useful for UI display and
33956
+ /** @description Size in bytes of the stored object. Useful for UI display and
32928
33957
  * for sanity-checking that the Vault object still matches what we
32929
- * recorded.
32930
- */
33958
+ * recorded. */
32931
33959
  size?: number;
32932
- /**
32933
- * @description TaskId / OrganisationId scope the row to its parent case and
33960
+ /** @description TaskId / OrganisationId scope the row to its parent case and
32934
33961
  * tenant. Required on every row in the case_attachments collection
32935
33962
  * so list/get queries can index on them directly without joining
32936
- * against the tasks collection.
32937
- */
33963
+ * against the tasks collection. */
32938
33964
  taskId?: string;
32939
- /**
32940
- * @description Optional derived preview generated by hub-api on upload (a
33965
+ /** @description Optional derived preview generated by hub-api on upload (a
32941
33966
  * downscaled JPEG for images, the first page rendered to an image
32942
33967
  * for PDFs, etc.). Absence is fine — the UI falls back to a
32943
- * kind-based icon.
32944
- */
33968
+ * kind-based icon. */
32945
33969
  thumbnailFile?: string;
32946
33970
  thumbnailProvider?: string;
32947
33971
  thumbnailUrl?: string;
32948
- /**
32949
- * @description Type is a coarse classification of the attachment used by the UI
33972
+ /** @description Type is a coarse classification of the attachment used by the UI
32950
33973
  * to pick an icon / viewer. MimeType is the source of truth for
32951
- * content negotiation; Type is derived from it at upload time.
32952
- */
33974
+ * content negotiation; Type is derived from it at upload time. */
32953
33975
  type?: components["schemas"]["models.CaseAttachmentType"];
32954
33976
  updatedAt?: number;
32955
- /**
32956
- * @description Url / ThumbnailUrl are signed by hub-api at fetch time and never
33977
+ /** @description Url / ThumbnailUrl are signed by hub-api at fetch time and never
32957
33978
  * persisted. They should be excluded from list-cases projections
32958
- * to keep that endpoint light.
32959
- */
33979
+ * to keep that endpoint light. */
32960
33980
  url?: string;
32961
33981
  };
32962
33982
  /** @enum {string} */
32963
33983
  "models.CaseAttachmentType": "pdf" | "image" | "document" | "audio" | "video" | "other";
32964
33984
  "models.CaseMedia": {
32965
- /**
32966
- * @description Action describes what the edit does. Only meaningful when
32967
- * Role = "edit". See CaseMediaAction.
32968
- */
33985
+ /** @description Action describes what the edit does. Only meaningful when
33986
+ * Role = "edit". See CaseMediaAction. */
32969
33987
  action?: components["schemas"]["models.CaseMediaAction"];
32970
- /**
32971
- * @description Analysis is a snapshot of the AnalysisWrapper associated with
33988
+ /** @description Analysis is a snapshot of the AnalysisWrapper associated with
32972
33989
  * the source media at attach time, including the per-operation
32973
33990
  * lifecycle fields (AsyncOperations / RequiredOperations /
32974
33991
  * ResolvedOperations) plus the analysis data (classify, counting,
32975
33992
  * faceRedaction, …) so the detail page and the face-redaction
32976
33993
  * edit modal can render without an extra lookup against the
32977
- * `analysis` collection. Only populated on Role = "source".
32978
- */
33994
+ * `analysis` collection. Only populated on Role = "source". */
32979
33995
  analysis?: components["schemas"]["models.AnalysisWrapper"];
32980
- /**
32981
- * @description Optional job linkage — back-pointers to the analysis / face
32982
- * redaction documents that drove the edit, when applicable.
32983
- */
33996
+ /** @description Optional job linkage — back-pointers to the analysis / face
33997
+ * redaction documents that drove the edit, when applicable. */
32984
33998
  analysisId?: string;
32985
33999
  cameraId?: string;
32986
34000
  createdAt?: number;
32987
34001
  createdBy?: string;
32988
- /**
32989
- * @description EditType is a sub-variant of Action (for example "face_blur",
34002
+ /** @description EditType is a sub-variant of Action (for example "face_blur",
32990
34003
  * "face_pixelate", "face_mask" when Action = "redaction"). Display
32991
34004
  * labels are derived from this in the UI. Canonical values are
32992
- * declared as CaseMediaEditType constants below.
32993
- */
34005
+ * declared as CaseMediaEditType constants below. */
32994
34006
  editType?: components["schemas"]["models.CaseMediaEditType"];
32995
34007
  endTimestamp?: number;
32996
34008
  faceRedactionId?: string;
32997
- /**
32998
- * @description Produced artefact (populated on Role = "edit" once the worker
32999
- * completes; for Role = "source" these mirror VideoFile/VideoProvider).
33000
- */
34009
+ /** @description Produced artefact (populated on Role = "edit" once the worker
34010
+ * completes; for Role = "source" these mirror VideoFile/VideoProvider). */
33001
34011
  file?: string;
33002
34012
  id?: string;
33003
- /**
33004
- * @description IncludeInExport and IncludeInShare are per-row curation flags. A
34013
+ /** @description IncludeInExport and IncludeInShare are per-row curation flags. A
33005
34014
  * case_media is included in an export bundle / share recipient view
33006
34015
  * when the corresponding flag is true. Both default to true at
33007
34016
  * insert time (set explicitly by the create path — the Go zero
@@ -33014,23 +34023,19 @@ export interface components {
33014
34023
  * from the source they resolve to.
33015
34024
  *
33016
34025
  * BSON tags deliberately omit `,omitempty` so a `false` value is
33017
- * persisted faithfully instead of being dropped to the default.
33018
- */
34026
+ * persisted faithfully instead of being dropped to the default. */
33019
34027
  includeInExport?: boolean;
33020
34028
  includeInShare?: boolean;
33021
- /**
33022
- * @description Media is a full snapshot of the source Media document captured at
34029
+ /** @description Media is a full snapshot of the source Media document captured at
33023
34030
  * attach time. It is only populated on Role = "source" and is what
33024
34031
  * the media-detail page and edit modal consume — the flat fields
33025
34032
  * above stay in place because they are queried directly by the
33026
34033
  * export pipeline and the case-level summarisers. The snapshot
33027
34034
  * makes the case self-contained: edits to or deletions of the
33028
- * original media row do not affect what the case shows.
33029
- */
34035
+ * original media row do not affect what the case shows. */
33030
34036
  media?: components["schemas"]["models.Media"];
33031
34037
  organisationId?: string;
33032
- /**
33033
- * @description OriginAttachmentId marks a Role=source row that was materialised
34038
+ /** @description OriginAttachmentId marks a Role=source row that was materialised
33034
34039
  * from a video CaseAttachment (see the case_attachments collection)
33035
34040
  * so a case's attached videos can flow through the same
33036
34041
  * workflow-run and redaction machinery as device recordings. It
@@ -33038,89 +34043,66 @@ export interface components {
33038
34043
  * out of the normal media playlist and default to
33039
34044
  * IncludeInExport=false / IncludeInShare=false at insert time (the
33040
34045
  * owning attachment carries its own export/share curation). Only
33041
- * meaningful on Role = "source".
33042
- */
34046
+ * meaningful on Role = "source". */
33043
34047
  originAttachmentId?: string;
33044
- /**
33045
- * @description Params carries kind-specific parameters used to produce the edit.
34048
+ /** @description Params carries kind-specific parameters used to produce the edit.
33046
34049
  * For Action = "composite" it is expected to contain an
33047
34050
  * "operations" array whose elements have an "op" discriminator
33048
- * matching one of the single-op CaseMediaAction values.
33049
- */
34051
+ * matching one of the single-op CaseMediaAction values. */
33050
34052
  params?: {
33051
34053
  [key: string]: unknown;
33052
34054
  };
33053
- /**
33054
- * @description ParentId links an edit (Role = "edit") to the case_media entry it
34055
+ /** @description ParentId links an edit (Role = "edit") to the case_media entry it
33055
34056
  * was produced from. For composite edits the parent is still a single
33056
- * source — the individual operations are described in Params.
33057
- */
34057
+ * source — the individual operations are described in Params. */
33058
34058
  parentId?: string;
33059
- /**
33060
- * @description ProjectId optionally places the case media in a project within its organisation.
33061
- * A nil value keeps it organisation-wide.
33062
- */
34059
+ /** @description ProjectId optionally places the case media in a project within its organisation.
34060
+ * A nil value keeps it organisation-wide. */
33063
34061
  projectId?: string;
33064
34062
  provider?: string;
33065
- /**
33066
- * @description Role describes whether this entry represents a source attached to
33067
- * the case or an edit derived from another entry. See CaseMediaRole.
33068
- */
34063
+ /** @description Role describes whether this entry represents a source attached to
34064
+ * the case or an edit derived from another entry. See CaseMediaRole. */
33069
34065
  role?: components["schemas"]["models.CaseMediaRole"];
33070
- /**
33071
- * @description SelectedVersionId is only meaningful on Role = "source" rows and
34066
+ /** @description SelectedVersionId is only meaningful on Role = "source" rows and
33072
34067
  * records which version of the source the case should display and
33073
34068
  * export. When set it points at an Role = "edit" CaseMedia entry
33074
34069
  * that descends from this source (directly via ParentId or
33075
34070
  * transitively via SupersedesId). When empty, consumers fall back
33076
34071
  * to the default behaviour (use the latest completed edit if any,
33077
34072
  * otherwise the source itself). Persisted so the choice survives
33078
- * across sessions and is honoured by the export pipeline.
33079
- */
34073
+ * across sessions and is honoured by the export pipeline. */
33080
34074
  selectedVersionId?: string;
33081
- /**
33082
- * @description Source snapshot fields (populated on Role = "source"; mirrored from
34075
+ /** @description Source snapshot fields (populated on Role = "source"; mirrored from
33083
34076
  * Media at attach time so the case stays self-contained even after
33084
- * the original media document is cleaned up).
33085
- */
34077
+ * the original media document is cleaned up). */
33086
34078
  sourceMediaId?: string;
33087
34079
  spriteFile?: string;
33088
34080
  spriteInterval?: number;
33089
34081
  spriteProvider?: string;
33090
- /**
33091
- * @description SpriteUrl is a signed playback URL for SpriteFile and is populated
33092
- * by the API at fetch time. Not persisted.
33093
- */
34082
+ /** @description SpriteUrl is a signed playback URL for SpriteFile and is populated
34083
+ * by the API at fetch time. Not persisted. */
33094
34084
  spriteUrl?: string;
33095
- /**
33096
- * @description Lifecycle (only meaningful on Role = "edit"). For sources this is
33097
- * implicitly Completed at creation time.
33098
- */
34085
+ /** @description Lifecycle (only meaningful on Role = "edit"). For sources this is
34086
+ * implicitly Completed at creation time. */
33099
34087
  status?: components["schemas"]["models.CaseMediaStatus"];
33100
34088
  statusError?: string;
33101
34089
  storageSolution?: string;
33102
- /**
33103
- * @description SupersedesId points at the previous version this entry replaces,
33104
- * preserving the full edit chain for auditing / rollback.
33105
- */
34090
+ /** @description SupersedesId points at the previous version this entry replaces,
34091
+ * preserving the full edit chain for auditing / rollback. */
33106
34092
  supersedesId?: string;
33107
34093
  taskId?: string;
33108
34094
  thumbnailFile?: string;
33109
34095
  thumbnailProvider?: string;
33110
- /**
33111
- * @description ThumbnailUrl is a signed playback URL for ThumbnailFile and is
33112
- * populated by the API at fetch time. Not persisted.
33113
- */
34096
+ /** @description ThumbnailUrl is a signed playback URL for ThumbnailFile and is
34097
+ * populated by the API at fetch time. Not persisted. */
33114
34098
  thumbnailUrl?: string;
33115
34099
  timestamp?: number;
33116
34100
  updatedAt?: number;
33117
34101
  /** @description Url is signed by the API at fetch time and not persisted. */
33118
34102
  url?: string;
33119
- /**
33120
- * @description Version is monotonically increasing within
34103
+ /** @description Version is monotonically increasing within
33121
34104
  * (TaskId, ParentId, Action, EditType). The most recent completed
33122
- * version is the one the export pipeline picks up.
33123
- */
34105
+ * version is the one the export pipeline picks up. */
33124
34106
  version?: number;
33125
34107
  videoFile?: string;
33126
34108
  videoProvider?: string;
@@ -33134,12 +34116,10 @@ export interface components {
33134
34116
  /** @enum {string} */
33135
34117
  "models.CaseMediaStatus": "queued" | "processing" | "completed" | "failed";
33136
34118
  "models.CaseShare": {
33137
- /**
33138
- * @description AttachmentSelection is the per-share snapshot of the
34119
+ /** @description AttachmentSelection is the per-share snapshot of the
33139
34120
  * task.Attachments[] ids the recipient is allowed to browse.
33140
34121
  * Same nil/empty/non-empty semantics as Selection — and the same
33141
- * reason the bson tag drops `,omitempty`.
33142
- */
34122
+ * reason the bson tag drops `,omitempty`. */
33143
34123
  attachment_selection?: string[];
33144
34124
  created_at?: number;
33145
34125
  email?: string;
@@ -33149,13 +34129,10 @@ export interface components {
33149
34129
  organisation_id?: string;
33150
34130
  /** @description e.g. ["view"] */
33151
34131
  permissions?: string[];
33152
- /**
33153
- * @description ProjectId optionally places the case share in a project within its organisation.
33154
- * A nil value keeps it organisation-wide.
33155
- */
34132
+ /** @description ProjectId optionally places the case share in a project within its organisation.
34133
+ * A nil value keeps it organisation-wide. */
33156
34134
  projectId?: string;
33157
- /**
33158
- * @description Selection is the per-share snapshot of the case_media ids the
34135
+ /** @description Selection is the per-share snapshot of the case_media ids the
33159
34136
  * recipient is allowed to browse, captured at CreateShare time.
33160
34137
  * It is the source of truth for what this specific token resolves
33161
34138
  * to — task.ShareSelection is only used as the owner-side
@@ -33176,8 +34153,7 @@ export interface components {
33176
34153
  * re-binding the share to whatever template the owner happens to
33177
34154
  * have in place at read time. The JSON tag keeps `omitempty`
33178
34155
  * because the frontend treats a missing field identically to
33179
- * `[]`.
33180
- */
34156
+ * `[]`. */
33181
34157
  selection?: string[];
33182
34158
  task_id?: string;
33183
34159
  token?: string;
@@ -33254,20 +34230,16 @@ export interface components {
33254
34230
  audit?: components["schemas"]["models.Audit"];
33255
34231
  author?: string;
33256
34232
  content?: string;
33257
- /**
33258
- * @description RBAC information
34233
+ /** @description RBAC information
33259
34234
  * DeviceId is a unique identifier for the device, it can be used to identify the device in the system.
33260
- * OrganisationId is used to identify the organisation that owns the device.
33261
- */
34235
+ * OrganisationId is used to identify the organisation that owns the device. */
33262
34236
  deviceId?: string;
33263
34237
  id?: string;
33264
34238
  organisationId?: string;
33265
34239
  /** @description ID of the parent comment, if this is a reply */
33266
34240
  parentId?: string;
33267
- /**
33268
- * @description ProjectId optionally places the comment in a project within its organisation.
33269
- * A nil value keeps the comment organisation-wide.
33270
- */
34241
+ /** @description ProjectId optionally places the comment in a project within its organisation.
34242
+ * A nil value keeps the comment organisation-wide. */
33271
34243
  projectId?: string;
33272
34244
  timestamps?: number[];
33273
34245
  /** @description Comment information */
@@ -33359,6 +34331,13 @@ export interface components {
33359
34331
  "models.CreateOrganisationOutput": {
33360
34332
  organisation?: components["schemas"]["models.Organisation"];
33361
34333
  };
34334
+ "models.CreateProjectInput": {
34335
+ project?: components["schemas"]["models.Project"];
34336
+ user?: components["schemas"]["models.User"];
34337
+ };
34338
+ "models.CreateProjectOutput": {
34339
+ project?: components["schemas"]["models.Project"];
34340
+ };
33362
34341
  "models.CreateVideowallInput": {
33363
34342
  user?: components["schemas"]["models.User"];
33364
34343
  videowall?: components["schemas"]["models.Videowall"];
@@ -33410,10 +34389,8 @@ export interface components {
33410
34389
  motionRegions?: components["schemas"]["models.Region"][];
33411
34390
  organisationId?: string;
33412
34391
  outputList?: string[];
33413
- /**
33414
- * @description ProjectId optionally places the alert in a project within its organisation.
33415
- * A nil value keeps the alert organisation-wide.
33416
- */
34392
+ /** @description ProjectId optionally places the alert in a project within its organisation.
34393
+ * A nil value keeps the alert organisation-wide. */
33417
34394
  projectId?: string;
33418
34395
  pushbullet_apikey?: string;
33419
34396
  pushover_apikey?: string;
@@ -33455,6 +34432,13 @@ export interface components {
33455
34432
  user_id?: string;
33456
34433
  };
33457
34434
  "models.DeleteCaseShareOutput": Record<string, never>;
34435
+ "models.DeleteProjectInput": {
34436
+ projectId?: string;
34437
+ user?: components["schemas"]["models.User"];
34438
+ };
34439
+ "models.DeleteProjectOutput": {
34440
+ project?: components["schemas"]["models.Project"];
34441
+ };
33458
34442
  "models.DeleteVideowallInput": {
33459
34443
  user?: components["schemas"]["models.User"];
33460
34444
  videowall_id?: string;
@@ -33552,43 +34536,33 @@ export interface components {
33552
34536
  categories?: components["schemas"]["models.DetectionCategory"][];
33553
34537
  /** @description CreatedAt is set by the server when the run is first stored (epoch millis). */
33554
34538
  createdAt?: number;
33555
- /**
33556
- * @description DeviceId is denormalised from the recording for convenient filtering and
33557
- * cascade cleanup; it is not authoritative.
33558
- */
34539
+ /** @description DeviceId is denormalised from the recording for convenient filtering and
34540
+ * cascade cleanup; it is not authoritative. */
33559
34541
  deviceId?: string;
33560
34542
  /** @description Id is the MongoDB document id, assigned on first insert. */
33561
34543
  id?: string;
33562
- /**
33563
- * @description Key is the recording/media key the run belongs to. It is the stable
33564
- * identity the collection is keyed by (survives re-analysis).
33565
- */
34544
+ /** @description Key is the recording/media key the run belongs to. It is the stable
34545
+ * identity the collection is keyed by (survives re-analysis). */
33566
34546
  key?: string;
33567
34547
  media?: components["schemas"]["models.DetectionMedia"];
33568
- /**
33569
- * @description OriginalBoxForm records the box geometry form the producer sent
33570
- * ("xywh", "xyxy", or "mixed") before conversion to the editor's TrackBox.
33571
- */
34548
+ /** @description Name is an optional user-facing label for the run. */
34549
+ name?: string;
34550
+ /** @description OriginalBoxForm records the box geometry form the producer sent
34551
+ * ("xywh", "xyxy", or "mixed") before conversion to the editor's TrackBox. */
33572
34552
  originalBoxForm?: string;
33573
- /**
33574
- * @description OriginalCoordinateSpace records the coordinate space the producer sent
34553
+ /** @description OriginalCoordinateSpace records the coordinate space the producer sent
33575
34554
  * ("pixel" or "normalized") before the server normalised it on write.
33576
- * Tracks are always stored normalised; this preserves the original for audit.
33577
- */
34555
+ * Tracks are always stored normalised; this preserves the original for audit. */
33578
34556
  originalCoordinateSpace?: string;
33579
- /**
33580
- * @description RecordingTimestamp is the start time (epoch seconds) of the recording the
34557
+ /** @description RecordingTimestamp is the start time (epoch seconds) of the recording the
33581
34558
  * run belongs to, denormalised from the analysis on write. It lets cleanup
33582
34559
  * expire a run on the same retention clock as its recording rather than by
33583
- * the (possibly much later) post time.
33584
- */
34560
+ * the (possibly much later) post time. */
33585
34561
  recordingTimestamp?: number;
33586
34562
  schemaVersion?: string;
33587
34563
  source?: components["schemas"]["models.DetectionSource"];
33588
- /**
33589
- * @description Task is a forward-compatibility discriminator for the kind of run.
33590
- * Defaults to "detection" when omitted.
33591
- */
34564
+ /** @description Task is a forward-compatibility discriminator for the kind of run.
34565
+ * Defaults to "detection" when omitted. */
33592
34566
  task?: string;
33593
34567
  tracks?: components["schemas"]["models.FaceRedactionTrack"][];
33594
34568
  /** @description UpdatedAt is set by the server every time the run is written (epoch millis). */
@@ -33602,10 +34576,8 @@ export interface components {
33602
34576
  /** @description producer identifier / editor layer label */
33603
34577
  name?: string;
33604
34578
  nmsIou?: number;
33605
- /**
33606
- * @description RotationApplied indicates whether boxes are against the rotated/oriented
33607
- * frame. Defaults to true on the wire; a nil pointer is treated as true.
33608
- */
34579
+ /** @description RotationApplied indicates whether boxes are against the rotated/oriented
34580
+ * frame. Defaults to true on the wire; a nil pointer is treated as true. */
33609
34581
  rotationApplied?: boolean;
33610
34582
  /** @description ULID/UUID; upsert key */
33611
34583
  runId?: string;
@@ -33631,21 +34603,17 @@ export interface components {
33631
34603
  agentLastSeen?: number;
33632
34604
  /** @description Deprecated - to be removed */
33633
34605
  analytics?: components["schemas"]["models.DeprecatedHeartbeat"][];
33634
- /**
33635
- * @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
34606
+ /** @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
33636
34607
  * more verbose information about the device's current state, capabilities, or configuration.
33637
- * for example the linked sites details, etc.
33638
- */
34608
+ * for example the linked sites details, etc. */
33639
34609
  atRuntimeMetadata?: components["schemas"]["models.DeviceAtRuntimeMetadata"];
33640
34610
  /** @description Audit information */
33641
34611
  audit?: components["schemas"]["models.Audit"];
33642
34612
  /** @description Device Specific Metadata */
33643
34613
  cameraMetadata?: components["schemas"]["models.CameraMetadata"];
33644
- /**
33645
- * @description Device status
34614
+ /** @description Device status
33646
34615
  * Note: Status is used to identify the status of the device, such as online, offline, maintenance, etc."
33647
- * LastSeenTimestamp is used to identify the last time the device was seen online.
33648
- */
34616
+ * LastSeenTimestamp is used to identify the last time the device was seen online. */
33649
34617
  connectionStart?: number;
33650
34618
  /** @description Type of deployment used e.g. "factory", "docker", "docker compose", "kubernetes" */
33651
34619
  deployment?: string;
@@ -33653,13 +34621,11 @@ export interface components {
33653
34621
  deviceLastSeen?: number;
33654
34622
  /** @description threshold in milliseconds to consider a device offline, based on agentLastSeen */
33655
34623
  disconnectedThreshold?: number;
33656
- /**
33657
- * @description FeaturePermissions is used to identify the permissions of the device, such as read, write, delete, etc.
34624
+ /** @description FeaturePermissions is used to identify the permissions of the device, such as read, write, delete, etc.
33658
34625
  * It is a map of feature names to permissions.
33659
34626
  * For example, "camera" can have permissions like "read", "write", "delete", etc.
33660
34627
  * This allows for fine-grained control over what features are accessible by users or groups.
33661
- * FeaturePermissions can be used to implement Role-Based Access Control (RBAC) for devices.
33662
- */
34628
+ * FeaturePermissions can be used to implement Role-Based Access Control (RBAC) for devices. */
33663
34629
  featurePermissions?: components["schemas"]["models.DeviceFeaturePermissions"];
33664
34630
  gpsMetadata?: components["schemas"]["models.GPSMetadata"];
33665
34631
  groupIds?: string[];
@@ -33669,11 +34635,9 @@ export interface components {
33669
34635
  id?: string;
33670
34636
  /** @description threshold in milliseconds to consider a device idle, based on deviceLastSeen */
33671
34637
  idleThreshold?: number;
33672
- /**
33673
- * @description Device information
34638
+ /** @description Device information
33674
34639
  * Note: DeviceId is a unique identifier for the device, it can be used to identify the device in the system.
33675
- * DeviceType is used to identify the type of device, such as camera, sensor, access control, etc.
33676
- */
34640
+ * DeviceType is used to identify the type of device, such as camera, sensor, access control, etc. */
33677
34641
  key?: string;
33678
34642
  /** @description Latest Media information */
33679
34643
  latestMedia?: components["schemas"]["models.Media"];
@@ -33686,26 +34650,20 @@ export interface components {
33686
34650
  metadata?: components["schemas"]["models.DeviceMetadata"];
33687
34651
  /** @description e.g. "Front Door Camera" */
33688
34652
  name?: string;
33689
- /**
33690
- * @description RBAC information
34653
+ /** @description RBAC information
33691
34654
  * Note: SiteId is used to identify the site where the device is located.
33692
34655
  * GroupId is used to identify the group of devices.
33693
34656
  * OrganisationId is used to identify the organisation that owns the device.
33694
- * FeaturePermissions is used to identify the permissions of the device, such as read, write, delete, etc.
33695
- */
34657
+ * FeaturePermissions is used to identify the permissions of the device, such as read, write, delete, etc. */
33696
34658
  organisationId?: string;
33697
- /**
33698
- * @description ProjectId optionally places the device in a project within its
33699
- * organisation. A nil value keeps the device organisation-wide. It narrows
33700
- * access on top of OrganisationId; it never replaces it.
33701
- */
34659
+ /** @description ProjectId places the device in exactly one project within its organisation.
34660
+ * A nil or zero legacy value resolves to that organisation's default project;
34661
+ * it does not make the device organisation-wide. */
33702
34662
  projectId?: string;
33703
- /**
33704
- * @description Versioning information
34663
+ /** @description Versioning information
33705
34664
  * Note: Version is used to identify the version of the device software.
33706
34665
  * ReleaseHash is used to identify the release hash of the device software, it can be used to identify the specific build of the device software.
33707
- * Deployment is used to identify the deployment type of the device, such as factory, docker, docker compose, kubernetes, etc.
33708
- */
34666
+ * Deployment is used to identify the deployment type of the device, such as factory, docker, docker compose, kubernetes, etc. */
33709
34667
  repository?: string;
33710
34668
  siteIds?: string[];
33711
34669
  /** @description Type of device e.g. "camera", "sensor", "access_control" */
@@ -33855,6 +34813,7 @@ export interface components {
33855
34813
  /** @description Add fields relevant to event stage */
33856
34814
  eventData?: string;
33857
34815
  name?: string;
34816
+ sourceDevice?: components["schemas"]["models.PipelineSourceDevice"];
33858
34817
  };
33859
34818
  "models.ExportFile": {
33860
34819
  camera_id?: string;
@@ -33872,13 +34831,11 @@ export interface components {
33872
34831
  video_url?: string;
33873
34832
  };
33874
34833
  "models.FaceRedaction": {
33875
- /**
33876
- * @description CaseMediaId back-references the case_media entry (role=edit,
34834
+ /** @description CaseMediaId back-references the case_media entry (role=edit,
33877
34835
  * action=redaction) created when the redaction is submitted. The
33878
34836
  * lifecycle (queued/processing/completed/failed) is owned by that
33879
34837
  * case_media document; this struct only carries the tracks/inputs
33880
- * the user has defined.
33881
- */
34838
+ * the user has defined. */
33882
34839
  caseMediaId?: string;
33883
34840
  id?: string;
33884
34841
  tracks?: components["schemas"]["models.FaceRedactionTrack"][];
@@ -33887,10 +34844,8 @@ export interface components {
33887
34844
  classId?: number;
33888
34845
  classified?: string;
33889
34846
  colorStr?: string[];
33890
- /**
33891
- * @description Confidence, ClassId and Shape preserve track-level provenance from a
33892
- * detection run; empty for tracks created by the editor.
33893
- */
34847
+ /** @description Confidence, ClassId and Shape preserve track-level provenance from a
34848
+ * detection run; empty for tracks created by the editor. */
33894
34849
  confidence?: number;
33895
34850
  deletedFrames?: number[];
33896
34851
  /** @description frame -> [x1, y1, x2, y2] */
@@ -34020,7 +34975,15 @@ export interface components {
34020
34975
  "models.GetOrganisationsOutput": {
34021
34976
  organisations?: components["schemas"]["models.Organisation"][];
34022
34977
  };
34978
+ "models.GetProjectInput": {
34979
+ projectId?: string;
34980
+ user?: components["schemas"]["models.User"];
34981
+ };
34982
+ "models.GetProjectOutput": {
34983
+ project?: components["schemas"]["models.Project"];
34984
+ };
34023
34985
  "models.GetProjectsInput": {
34986
+ includeInactive?: boolean;
34024
34987
  user?: components["schemas"]["models.User"];
34025
34988
  };
34026
34989
  "models.GetProjectsOutput": {
@@ -34082,17 +35045,13 @@ export interface components {
34082
35045
  name?: string;
34083
35046
  /** @description RBAC information */
34084
35047
  organisationId?: string;
34085
- /**
34086
- * @description ProjectId optionally places the group in a project within its organisation.
34087
- * A nil value keeps the group organisation-wide.
34088
- */
35048
+ /** @description ProjectId optionally places the group in a project within its organisation.
35049
+ * A nil value keeps the group organisation-wide. */
34089
35050
  projectId?: string;
34090
35051
  /** @description Nested sites */
34091
35052
  sites?: string[];
34092
- /**
34093
- * @description Media file information (by default "vault", however might change
34094
- * in the future (integration with other storage solutions, next to Vault).
34095
- */
35053
+ /** @description Media file information (by default "vault", however might change
35054
+ * in the future (integration with other storage solutions, next to Vault). */
34096
35055
  storageSolution?: string;
34097
35056
  /** @description Deprecated */
34098
35057
  user_id?: string;
@@ -34116,11 +35075,9 @@ export interface components {
34116
35075
  value?: string;
34117
35076
  };
34118
35077
  "models.Health": {
34119
- /**
34120
- * @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
35078
+ /** @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
34121
35079
  * more verbose information about the device's current state, capabilities, or configuration.
34122
- * for example the linked sites details, etc.
34123
- */
35080
+ * for example the linked sites details, etc. */
34124
35081
  atRuntimeMetadata?: components["schemas"]["models.HealthAtRuntimeMetadata"];
34125
35082
  /** @description Audit information */
34126
35083
  audit?: components["schemas"]["models.Audit"];
@@ -34197,10 +35154,8 @@ export interface components {
34197
35154
  /** @description last time the IO was seen */
34198
35155
  lastSeenTimestamp?: number;
34199
35156
  organisationId?: string;
34200
- /**
34201
- * @description ProjectId optionally places the IO in a project within its organisation.
34202
- * A nil value keeps the IO organisation-wide.
34203
- */
35157
+ /** @description ProjectId optionally places the IO in a project within its organisation.
35158
+ * A nil value keeps the IO organisation-wide. */
34204
35159
  projectId?: string;
34205
35160
  /** @description input or output */
34206
35161
  type?: string;
@@ -34227,10 +35182,8 @@ export interface components {
34227
35182
  name?: string;
34228
35183
  organisationId?: string;
34229
35184
  owner_id?: string;
34230
- /**
34231
- * @description ProjectId optionally places the label in a project within its organisation.
34232
- * A nil value keeps the label organisation-wide.
34233
- */
35185
+ /** @description ProjectId optionally places the label in a project within its organisation.
35186
+ * A nil value keeps the label organisation-wide. */
34234
35187
  projectId?: string;
34235
35188
  type?: string[];
34236
35189
  user_id?: string;
@@ -34262,11 +35215,9 @@ export interface components {
34262
35215
  name?: string;
34263
35216
  };
34264
35217
  "models.Marker": {
34265
- /**
34266
- * @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
35218
+ /** @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
34267
35219
  * more verbose information about the device's current state, capabilities, or configuration.
34268
- * for example the linked sites details, etc.
34269
- */
35220
+ * for example the linked sites details, etc. */
34270
35221
  atRuntimeMetadata?: components["schemas"]["models.MarkerAtRuntimeMetadata"];
34271
35222
  /** @description Audit information */
34272
35223
  audit?: components["schemas"]["models.Audit"];
@@ -34277,12 +35228,10 @@ export interface components {
34277
35228
  * @example Person forcably opened a door
34278
35229
  */
34279
35230
  description?: string;
34280
- /**
34281
- * @description Detections links this marker to the detection track(s) it was derived from,
35231
+ /** @description Detections links this marker to the detection track(s) it was derived from,
34282
35232
  * enabling on-demand bounding-box overlays on the recording. Each entry points
34283
35233
  * at a stored detection track (see DetectionRef). A marker usually links to a
34284
- * single track but may reference several; empty when no detection link is known.
34285
- */
35234
+ * single track but may reference several; empty when no detection link is known. */
34286
35235
  detections?: components["schemas"]["models.DetectionRef"][];
34287
35236
  /**
34288
35237
  * @description RBAC information
@@ -34336,10 +35285,8 @@ export interface components {
34336
35285
  * @example 686a906345c1df594pad69f0
34337
35286
  */
34338
35287
  organisationId?: string;
34339
- /**
34340
- * @description ProjectId optionally places the marker in a project within its organisation.
34341
- * A nil value keeps the marker organisation-wide.
34342
- */
35288
+ /** @description ProjectId optionally places the marker in a project within its organisation.
35289
+ * A nil value keeps the marker organisation-wide. */
34343
35290
  projectId?: string;
34344
35291
  /**
34345
35292
  * @description SiteId is used to identify the site where the marker is located
@@ -34480,10 +35427,8 @@ export interface components {
34480
35427
  startTimestamp?: number;
34481
35428
  };
34482
35429
  "models.MarkerMetadata": {
34483
- /**
34484
- * @description BoundingBox is the normalized [0,1] region of the detection within the frame,
34485
- * suitable for drawing overlays. Nil when no spatial information is available.
34486
- */
35430
+ /** @description BoundingBox is the normalized [0,1] region of the detection within the frame,
35431
+ * suitable for drawing overlays. Nil when no spatial information is available. */
34487
35432
  boundingBox?: components["schemas"]["models.MarkerBox"];
34488
35433
  /** @description Additional comments or description of the marker */
34489
35434
  comments?: components["schemas"]["models.Comment"];
@@ -34507,11 +35452,9 @@ export interface components {
34507
35452
  * @example v1.4.0
34508
35453
  */
34509
35454
  modelVersion?: string;
34510
- /**
34511
- * @description Raw is an escape hatch for pipeline-specific metadata that does not warrant a
35455
+ /** @description Raw is an escape hatch for pipeline-specific metadata that does not warrant a
34512
35456
  * first-class field. Values here are not indexed or validated; promote anything
34513
- * you need to query into a typed field instead.
34514
- */
35457
+ * you need to query into a typed field instead. */
34515
35458
  raw?: {
34516
35459
  [key: string]: unknown;
34517
35460
  };
@@ -34561,11 +35504,9 @@ export interface components {
34561
35504
  };
34562
35505
  "models.MarkerSummary": {
34563
35506
  categoryNames?: string[];
34564
- /**
34565
- * @description Detections mirrors the source marker's Detections so the frontend can map a
35507
+ /** @description Detections mirrors the source marker's Detections so the frontend can map a
34566
35508
  * summarised marker to its detection track(s) — and toggle their bounding-box
34567
- * overlay — without a second query. Empty when the marker has no detection link.
34568
- */
35509
+ * overlay — without a second query. Empty when the marker has no detection link. */
34569
35510
  detections?: components["schemas"]["models.DetectionRef"][];
34570
35511
  endTimestamp?: number;
34571
35512
  eventNames?: string[];
@@ -34617,22 +35558,18 @@ export interface components {
34617
35558
  markers?: components["schemas"]["models.MarkerGroup"][];
34618
35559
  };
34619
35560
  "models.Media": {
34620
- /**
34621
- * @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
35561
+ /** @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
34622
35562
  * more verbose information about the device's current state, capabilities, or configuration.
34623
- * for example the linked sites details, etc.
34624
- */
35563
+ * for example the linked sites details, etc. */
34625
35564
  atRuntimeMetadata?: components["schemas"]["models.MediaAtRuntimeMetadata"];
34626
35565
  /** @description Audit information */
34627
35566
  audit?: components["schemas"]["models.Audit"];
34628
35567
  categoryNames?: string[];
34629
35568
  classificationSummary?: components["schemas"]["models.ClassificationSummary"][];
34630
35569
  countingSummary?: components["schemas"]["models.CountingSummary"][];
34631
- /**
34632
- * @description RBAC information
35570
+ /** @description RBAC information
34633
35571
  * DeviceId is a unique identifier for the device, it can be used to identify the device in the system.
34634
- * OrganisationId is used to identify the organisation that owns the device.
34635
- */
35572
+ * OrganisationId is used to identify the organisation that owns the device. */
34636
35573
  deviceId?: string;
34637
35574
  /** @description device identifier */
34638
35575
  deviceKey?: string;
@@ -34645,32 +35582,28 @@ export interface components {
34645
35582
  /** @description Unique identifier for the media file */
34646
35583
  id?: string;
34647
35584
  markerNames?: string[];
34648
- /**
34649
- * @description MarkerSummary is a per-occurrence denormalisation of the markers that overlap
35585
+ /** @description MarkerSummary is a per-occurrence denormalisation of the markers that overlap
34650
35586
  * this media. Unlike the flat markerNames/eventNames/tagNames/categoryNames
34651
35587
  * arrays that back filtering, each entry preserves the correlation between a
34652
35588
  * single marker's name, its category/event/tag names and its time range, for
34653
- * display/detail rendering (icons, listings).
34654
- */
35589
+ * display/detail rendering (icons, listings). */
34655
35590
  markerSummary?: components["schemas"]["models.MarkerSummary"][];
34656
35591
  /** @description Metadata */
34657
35592
  metadata?: components["schemas"]["models.MediaMetadata"];
34658
35593
  organisationId?: string;
34659
- /**
34660
- * @description ProjectId optionally places the media in a project within its organisation.
34661
- * A nil value keeps the media organisation-wide.
34662
- */
35594
+ /** @description ProjectId optionally places the media in a project within its organisation.
35595
+ * A nil value keeps the media organisation-wide. */
34663
35596
  projectId?: string;
34664
35597
  siteId?: string;
35598
+ sourceMediaId?: string;
35599
+ sourceVaultId?: string;
34665
35600
  spriteFile?: string;
34666
35601
  spriteProvider?: string;
34667
35602
  star?: boolean;
34668
35603
  /** @description Time window of media file. */
34669
35604
  startTimestamp?: number;
34670
- /**
34671
- * @description Media file information (by default "vault", however might change
34672
- * in the future (integration with other storage solutions, next to Vault).
34673
- */
35605
+ /** @description Media file information (by default "vault", however might change
35606
+ * in the future (integration with other storage solutions, next to Vault). */
34674
35607
  storageSolution?: string;
34675
35608
  tagNames?: string[];
34676
35609
  thumbnailFile?: string;
@@ -34800,10 +35733,8 @@ export interface components {
34800
35733
  notification_type?: string;
34801
35734
  number_of_media?: string;
34802
35735
  organisationId?: string;
34803
- /**
34804
- * @description ProjectId optionally places the message in a project within its organisation.
34805
- * A nil value keeps the message organisation-wide.
34806
- */
35736
+ /** @description ProjectId optionally places the message in a project within its organisation.
35737
+ * A nil value keeps the message organisation-wide. */
34807
35738
  projectId?: string;
34808
35739
  sequence_id?: string;
34809
35740
  sites?: components["schemas"]["models.Site"][];
@@ -34822,31 +35753,25 @@ export interface components {
34822
35753
  userid?: string;
34823
35754
  };
34824
35755
  "models.Model": {
34825
- /**
34826
- * @description AtRuntimeMetadata are computed or dynamic information about the model that is relevant during its usage or processing.
35756
+ /** @description AtRuntimeMetadata are computed or dynamic information about the model that is relevant during its usage or processing.
34827
35757
  * This information is generated at run time and is not stored into the database. All other information of the model is persisted into the database.
34828
35758
  * and is not altered during runtime.
34829
35759
  * e.g.
34830
35760
  * Media model -> signed URLS for accessing the media, processing status, etc.
34831
- * Device model -> current status (active, inactive), etc.
34832
- */
35761
+ * Device model -> current status (active, inactive), etc. */
34833
35762
  atRuntimeMetadata?: components["schemas"]["models.MediaAtRuntimeMetadata"];
34834
- /**
34835
- * @description Audit information: every model should have audit information to track its creation and modification history.
34836
- * This is important for maintaining data integrity and accountability.
34837
- */
35763
+ /** @description Audit information: every model should have audit information to track its creation and modification history.
35764
+ * This is important for maintaining data integrity and accountability. */
34838
35765
  audit?: components["schemas"]["models.Audit"];
34839
35766
  /** @description Unique identifier for the model, this is used to retrieve the model from the database by its unique ID. */
34840
35767
  id?: string;
34841
- /**
34842
- * @description Metadata is additional information about the model that is not critical for its primary function,
35768
+ /** @description Metadata is additional information about the model that is not critical for its primary function,
34843
35769
  * but can provide useful context or details.
34844
35770
  * e.g.
34845
35771
  * User model -> profile information, preferences, etc.
34846
35772
  * Device model -> location, installation date, etc.
34847
35773
  * Media model -> tags, description, etc.
34848
- * Marker model -> comments, tags, etc.
34849
- */
35774
+ * Marker model -> comments, tags, etc. */
34850
35775
  metadata?: components["schemas"]["models.MediaMetadata"];
34851
35776
  };
34852
35777
  "models.ModelOption": {
@@ -34858,10 +35783,8 @@ export interface components {
34858
35783
  highUpload?: components["schemas"]["models.HighUpload"];
34859
35784
  monitorData?: string;
34860
35785
  name?: string;
34861
- /**
34862
- * @description OrganisationId and ProjectId snapshot the stored source device's ownership;
34863
- * nested user and payload fields are mutable actor/request context instead.
34864
- */
35786
+ /** @description OrganisationId and ProjectId snapshot the stored source device's ownership;
35787
+ * nested user and payload fields are mutable actor/request context instead. */
34865
35788
  organisationId?: string;
34866
35789
  plans?: {
34867
35790
  [key: string]: components["schemas"]["models.Plan"];
@@ -34896,10 +35819,8 @@ export interface components {
34896
35819
  notification_type?: string;
34897
35820
  number_of_media?: string;
34898
35821
  organisationId?: string;
34899
- /**
34900
- * @description ProjectId optionally places the message in a project within its organisation.
34901
- * A nil value keeps the message organisation-wide.
34902
- */
35822
+ /** @description ProjectId optionally places the message in a project within its organisation.
35823
+ * A nil value keeps the message organisation-wide. */
34903
35824
  projectId?: string;
34904
35825
  sequence_id?: string;
34905
35826
  sites?: components["schemas"]["models.Site"][];
@@ -34947,11 +35868,9 @@ export interface components {
34947
35868
  /** @description The user who owns this organisation */
34948
35869
  ownerId?: string;
34949
35870
  settings?: components["schemas"]["models.OrganisationSettings"];
34950
- /**
34951
- * @description Slug is a stable, URL-friendly handle for the organisation (e.g. "acme-corp").
35871
+ /** @description Slug is a stable, URL-friendly handle for the organisation (e.g. "acme-corp").
34952
35872
  * It is unique and decoupled from the display Name so it can be used in URLs
34953
- * and references without breaking when the name changes.
34954
- */
35873
+ * and references without breaking when the name changes. */
34955
35874
  slug?: string;
34956
35875
  /** @description Billing & Subscription */
34957
35876
  subscription?: components["schemas"]["models.Subscription"];
@@ -34971,13 +35890,11 @@ export interface components {
34971
35890
  organisationId?: string;
34972
35891
  /** @description Roles to assign upon acceptance */
34973
35892
  roleIds?: string[];
34974
- /**
34975
- * @description Scope is the granular scope applied to every role in RoleIds when the
35893
+ /** @description Scope is the granular scope applied to every role in RoleIds when the
34976
35894
  * invitation is accepted, i.e. it seeds the Scope of each resulting
34977
35895
  * RoleAssignment. Following the RoleAssignmentScope convention, a zero value
34978
35896
  * grants the roles organisation-wide; populate a dimension to restrict the
34979
- * resulting assignments to specific resources (see RoleAssignmentScope).
34980
- */
35897
+ * resulting assignments to specific resources (see RoleAssignmentScope). */
34981
35898
  scope?: components["schemas"]["models.RoleAssignmentScope"];
34982
35899
  status?: components["schemas"]["models.InvitationStatus"];
34983
35900
  token?: string;
@@ -35009,10 +35926,8 @@ export interface components {
35009
35926
  primaryContact?: components["schemas"]["models.Contact"];
35010
35927
  /** @description Technical/support contact */
35011
35928
  technicalContact?: components["schemas"]["models.Contact"];
35012
- /**
35013
- * @description Regional defaults applied across the organisation for display, scheduling
35014
- * and billing.
35015
- */
35929
+ /** @description Regional defaults applied across the organisation for display, scheduling
35930
+ * and billing. */
35016
35931
  timezone?: string;
35017
35932
  };
35018
35933
  "models.OrganisationUpdate": {
@@ -35028,11 +35943,9 @@ export interface components {
35028
35943
  };
35029
35944
  "models.OrganisationUser": {
35030
35945
  audit?: components["schemas"]["models.Audit"];
35031
- /**
35032
- * @description ExpiresAt optionally bounds the membership in time. It is an overlay on
35946
+ /** @description ExpiresAt optionally bounds the membership in time. It is an overlay on
35033
35947
  * Status: a membership is only effectively active when Status is
35034
- * MembershipStatusActive AND ExpiresAt is unset or in the future.
35035
- */
35948
+ * MembershipStatusActive AND ExpiresAt is unset or in the future. */
35036
35949
  expiresAt?: string;
35037
35950
  id?: string;
35038
35951
  invitedAt?: string;
@@ -35075,11 +35988,9 @@ export interface components {
35075
35988
  };
35076
35989
  date?: number;
35077
35990
  eventStage?: components["schemas"]["models.EventStage"];
35078
- /**
35079
- * @description Stages of the pipeline, e.g., event, monitor, sequence, analysis, throttler, notification
35991
+ /** @description Stages of the pipeline, e.g., event, monitor, sequence, analysis, throttler, notification
35080
35992
  * Idea is that we persist relevant data in each stage, so we have a good understanding what is used
35081
- * or computed at which stage.
35082
- */
35993
+ * or computed at which stage. */
35083
35994
  events?: string[];
35084
35995
  fileName?: string;
35085
35996
  monitorStage?: components["schemas"]["models.MonitorStage"];
@@ -35125,18 +36036,26 @@ export interface components {
35125
36036
  metadata?: components["schemas"]["models.PipelineMetadata"];
35126
36037
  /** @description RBAC */
35127
36038
  organisationId?: string;
35128
- /**
35129
- * @description Result is the typed result a producer stage hands back for a delegated
36039
+ /** @description Result is the typed result a producer stage hands back for a delegated
35130
36040
  * ingest handler (e.g. a DetectionRun-shaped body). It is the result
35131
36041
  * channel the ingest core reads from — distinct from the deprecated
35132
36042
  * PipelineEvent.Data bag, which only carries storage credentials on
35133
- * dispatch and must not be used to carry results.
35134
- */
36043
+ * dispatch and must not be used to carry results. */
35135
36044
  result?: number[];
35136
36045
  /** @description Signed URL */
35137
36046
  signedUrl?: string;
36047
+ sourceMediaId?: string;
36048
+ sourceVaultId?: string;
35138
36049
  timestamp?: number;
35139
36050
  };
36051
+ "models.PipelineSourceDevice": {
36052
+ cloudKey?: string;
36053
+ deviceId?: string;
36054
+ deviceKey?: string;
36055
+ organisationId?: string;
36056
+ ownerUserId?: string;
36057
+ projectId?: string;
36058
+ };
35140
36059
  "models.Plan": {
35141
36060
  /** @description AnalysisLimit is the maximum number of analysis operations allowed */
35142
36061
  analysisLimit?: number;
@@ -35160,13 +36079,21 @@ export interface components {
35160
36079
  };
35161
36080
  "models.Project": {
35162
36081
  audit?: components["schemas"]["models.Audit"];
36082
+ dates?: string[];
35163
36083
  description?: string;
36084
+ hasPincode?: boolean;
35164
36085
  id?: string;
35165
36086
  isActive?: boolean;
35166
36087
  name?: string;
35167
36088
  organisationId?: string;
35168
36089
  slug?: string;
35169
36090
  };
36091
+ "models.ProjectUpdate": {
36092
+ description?: string;
36093
+ isActive?: boolean;
36094
+ name?: string;
36095
+ slug?: string;
36096
+ };
35170
36097
  "models.Pushbullet": {
35171
36098
  apikey?: string;
35172
36099
  enabled?: boolean;
@@ -35205,22 +36132,18 @@ export interface components {
35205
36132
  isActive?: boolean;
35206
36133
  /** @description Organisation this role belongs to */
35207
36134
  organisationId?: string;
35208
- /**
35209
- * @description Pages and FeaturePermissions are two orthogonal authorization axes:
36135
+ /** @description Pages and FeaturePermissions are two orthogonal authorization axes:
35210
36136
  * - Pages controls which UI/nav pages are visible (coarse allow-list).
35211
36137
  * - FeaturePermissions controls the CRUD AccessLevel per feature.
35212
36138
  * Some names appear in both (e.g. sites/groups/roles/settings); that overlap
35213
36139
  * is intentional - visibility and capability are decided independently, and
35214
36140
  * the consuming service resolves them together (page hidden => not shown;
35215
- * feature level => what may be done once on the page).
35216
- */
36141
+ * feature level => what may be done once on the page). */
35217
36142
  pages?: string[];
35218
- /**
35219
- * @description ParentRole is the built-in BaseRole tier this custom role extends. It is a
36143
+ /** @description ParentRole is the built-in BaseRole tier this custom role extends. It is a
35220
36144
  * live tier identifier (NOT an ObjectID reference to another Role document):
35221
36145
  * it sets the effective tier/RoleLevel for coarse gating and bounds which
35222
- * pages the role may grant. See BaseRole.
35223
- */
36146
+ * pages the role may grant. See BaseRole. */
35224
36147
  role?: components["schemas"]["models.BaseRole"];
35225
36148
  roleName?: string;
35226
36149
  timeWindow?: components["schemas"]["models.TimeWindow"];
@@ -35228,11 +36151,9 @@ export interface components {
35228
36151
  };
35229
36152
  "models.RoleAssignment": {
35230
36153
  audit?: components["schemas"]["models.Audit"];
35231
- /**
35232
- * @description ExpiresAt optionally bounds the assignment in time. It is an overlay on
36154
+ /** @description ExpiresAt optionally bounds the assignment in time. It is an overlay on
35233
36155
  * IsActive: an assignment is only effectively active when IsActive is true
35234
- * AND ExpiresAt is unset or in the future. Use IsEffectivelyActive().
35235
- */
36156
+ * AND ExpiresAt is unset or in the future. Use IsEffectivelyActive(). */
35236
36157
  expiresAt?: string;
35237
36158
  id?: string;
35238
36159
  /** @description Administrative enable/disable switch (independent of expiry) */
@@ -35271,10 +36192,8 @@ export interface components {
35271
36192
  images?: components["schemas"]["models.Media"][];
35272
36193
  notified?: boolean;
35273
36194
  organisationId?: string;
35274
- /**
35275
- * @description ProjectId optionally places the sequence in a project within its organisation.
35276
- * A nil value keeps the sequence organisation-wide.
35277
- */
36195
+ /** @description ProjectId optionally places the sequence in a project within its organisation.
36196
+ * A nil value keeps the sequence organisation-wide. */
35278
36197
  projectId?: string;
35279
36198
  start?: number;
35280
36199
  user_id?: string;
@@ -35323,17 +36242,13 @@ export interface components {
35323
36242
  name?: string;
35324
36243
  /** @description RBAC information */
35325
36244
  organisationId?: string;
35326
- /**
35327
- * @description ProjectId optionally places the site in a project within its organisation.
35328
- * A nil value keeps the site organisation-wide.
35329
- */
36245
+ /** @description ProjectId optionally places the site in a project within its organisation.
36246
+ * A nil value keeps the site organisation-wide. */
35330
36247
  projectId?: string;
35331
36248
  secret_key?: string;
35332
36249
  storage_uri?: string;
35333
- /**
35334
- * @description Media file information (by default "vault", however might change
35335
- * in the future (integration with other storage solutions, next to Vault).
35336
- */
36250
+ /** @description Media file information (by default "vault", however might change
36251
+ * in the future (integration with other storage solutions, next to Vault). */
35337
36252
  storageSolution?: string;
35338
36253
  /** @description Deprecated */
35339
36254
  user_id?: string;
@@ -35386,20 +36301,16 @@ export interface components {
35386
36301
  value?: unknown;
35387
36302
  };
35388
36303
  "models.StageDependency": {
35389
- /**
35390
- * @description Condition is the predicate evaluated against the run root. Nil means the
35391
- * need matches as soon as its gate (if any) is satisfied.
35392
- */
36304
+ /** @description Condition is the predicate evaluated against the run root. Nil means the
36305
+ * need matches as soon as its gate (if any) is satisfied. */
35393
36306
  condition?: components["schemas"]["models.StageCondition"];
35394
- /**
35395
- * @description Operation is the id of the operation whose presence gates this need: it must
36307
+ /** @description Operation is the id of the operation whose presence gates this need: it must
35396
36308
  * be available on the run — present in Inputs or Results — before the need's
35397
36309
  * Condition is evaluated. It is an operation id, not necessarily a deployed
35398
36310
  * stage: the most common gate, "classify", is the analysis trigger (it arrives
35399
36311
  * in Inputs at open), not a stage. Empty means the need is ungated: a check on
35400
36312
  * the run root itself (device/user/identity, or an input present from open),
35401
- * evaluated as soon as the run opens with nothing to wait for.
35402
- */
36313
+ * evaluated as soon as the run opens with nothing to wait for. */
35403
36314
  operation?: string;
35404
36315
  };
35405
36316
  "models.StageParam": {
@@ -35427,11 +36338,9 @@ export interface components {
35427
36338
  requests?: components["schemas"]["models.StageResourceList"];
35428
36339
  };
35429
36340
  "models.State": {
35430
- /**
35431
- * @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
36341
+ /** @description AtRuntimeMetadata contains metadata that is generated at runtime, which can include
35432
36342
  * more verbose information about the device's current state, capabilities, or configuration.
35433
- * for example the linked sites details, etc.
35434
- */
36343
+ * for example the linked sites details, etc. */
35435
36344
  atRuntimeMetadata?: components["schemas"]["models.StateAtRuntimeMetadata"];
35436
36345
  /** @description Audit information */
35437
36346
  audit?: components["schemas"]["models.Audit"];
@@ -35572,8 +36481,7 @@ export interface components {
35572
36481
  /** @description legacy: read by v20130101 only */
35573
36482
  export_files?: components["schemas"]["models.ExportFile"][];
35574
36483
  export_files_count?: number;
35575
- /**
35576
- * @description ExportHeartbeatAgeSeconds is computed at API response time
36484
+ /** @description ExportHeartbeatAgeSeconds is computed at API response time
35577
36485
  * (NOT persisted — bson:"-") and ships the server-side delta
35578
36486
  * between now and ExportUpdatedAt so the frontend can render a
35579
36487
  * "stuck" state without depending on the user's local clock
@@ -35582,46 +36490,39 @@ export interface components {
35582
36490
  * (legacy / pre-feature tasks); a zero value means the heartbeat
35583
36491
  * was just written. The FE only interprets this field in
35584
36492
  * combination with the in-flight signal — see isExportActive
35585
- * and getExportUiState for the rule.
35586
- */
36493
+ * and getExportUiState for the rule. */
35587
36494
  export_heartbeat_age_seconds?: number;
35588
36495
  export_in_progress?: boolean;
35589
36496
  /** @description "0% -> 100%" */
35590
36497
  export_progress?: number;
35591
36498
  export_requested?: boolean;
35592
36499
  export_revision?: number;
35593
- /**
35594
- * @description ExportSelectionDirty signals that the curated bundle composition
36500
+ /** @description ExportSelectionDirty signals that the curated bundle composition
35595
36501
  * (include_in_export flags on case_media / attachments, or a newly
35596
36502
  * added media row) changed since the last successful export
35597
36503
  * completion. Bumped to true by curation toggles and media inserts
35598
36504
  * in hub-api; cleared by hub-pipeline-export in CompleteExport.
35599
36505
  * The FE uses this to disable the Regenerate action when no
35600
36506
  * changes are pending and to surface a "selection changed" hint
35601
- * next to the export status badge.
35602
- */
36507
+ * next to the export status badge. */
35603
36508
  export_selection_dirty?: boolean;
35604
36509
  /** @description An export task, is containing multiple video in a compressed file format (.zip) */
35605
36510
  export_status?: string;
35606
- /**
35607
- * @description ExportUpdatedAt is a heartbeat written by hub-pipeline-export
36511
+ /** @description ExportUpdatedAt is a heartbeat written by hub-pipeline-export
35608
36512
  * every time it transitions the export state (claim, status
35609
36513
  * updates, per-file download, release, complete) and by hub-api
35610
36514
  * when a new export run is requested. It lets the API detect
35611
36515
  * orphaned runs whose worker died without releasing the lock:
35612
36516
  * when (now - ExportUpdatedAt) exceeds the staleness threshold,
35613
36517
  * isExportActive treats the lock as released so the user can
35614
- * retry instead of being blocked by a 409 forever.
35615
- */
36518
+ * retry instead of being blocked by a 409 forever. */
35616
36519
  export_updated_at?: string;
35617
36520
  id?: string;
35618
36521
  is_private?: boolean;
35619
36522
  labels?: string[];
35620
36523
  legal_hold?: boolean;
35621
- /**
35622
- * @description Number of source case_media rows attached to this task. Mirrors
35623
- * case_media documents where role == "source" and task_id matches.
35624
- */
36524
+ /** @description Number of source case_media rows attached to this task. Mirrors
36525
+ * case_media documents where role == "source" and task_id matches. */
35625
36526
  media_count?: number;
35626
36527
  media_date?: string;
35627
36528
  media_datetime?: string;
@@ -35632,16 +36533,13 @@ export interface components {
35632
36533
  notes_short?: string;
35633
36534
  notify_assignees?: boolean;
35634
36535
  organisationId?: string;
35635
- /**
35636
- * @description ProjectId optionally places the case/task in a project within its organisation.
35637
- * A nil value keeps it organisation-wide.
35638
- */
36536
+ /** @description ProjectId optionally places the case/task in a project within its organisation.
36537
+ * A nil value keeps it organisation-wide. */
35639
36538
  projectId?: string;
35640
36539
  reporter_email?: string;
35641
36540
  reporter_id?: string;
35642
36541
  reporter_profile?: string;
35643
- /**
35644
- * @description Retention / lifecycle.
36542
+ /** @description Retention / lifecycle.
35645
36543
  *
35646
36544
  * RetentionDays captures the *policy intent*: how many days the
35647
36545
  * case should be kept after its retention anchor (typically the
@@ -35668,8 +36566,7 @@ export interface components {
35668
36566
  * regardless of ExpiresAt. It is intentionally a separate flag
35669
36567
  * from the retention date so audits can distinguish "kept longer
35670
36568
  * because investigator extended" from "kept because under legal
35671
- * hold". Managed by a dedicated permission.
35672
- */
36569
+ * hold". Managed by a dedicated permission. */
35673
36570
  retention_days?: number;
35674
36571
  sequenceId?: string;
35675
36572
  sprite_url?: string;
@@ -35686,10 +36583,8 @@ export interface components {
35686
36583
  title?: string;
35687
36584
  user_id?: string;
35688
36585
  username?: string;
35689
- /**
35690
- * @description This is used for a single export, for a bulk export, we will use the first video as thumbnail and sprite.
35691
- * Referencing to some media: video, thumbnail and sprite
35692
- */
36586
+ /** @description This is used for a single export, for a bulk export, we will use the first video as thumbnail and sprite.
36587
+ * Referencing to some media: video, thumbnail and sprite */
35693
36588
  video_url?: string;
35694
36589
  videoFile?: string;
35695
36590
  videoProvider?: string;
@@ -35838,10 +36733,8 @@ export interface components {
35838
36733
  };
35839
36734
  "models.TrackBox": {
35840
36735
  classId?: number;
35841
- /**
35842
- * @description Confidence, ClassId and Label preserve the producer's per-box model
35843
- * output so a stored detection run can be re-thresholded or audited later.
35844
- */
36736
+ /** @description Confidence, ClassId and Label preserve the producer's per-box model
36737
+ * output so a stored detection run can be re-thresholded or audited later. */
35845
36738
  confidence?: number;
35846
36739
  edited?: boolean;
35847
36740
  label?: string;
@@ -35874,6 +36767,14 @@ export interface components {
35874
36767
  "models.UpdateOrganisationOutput": {
35875
36768
  organisation?: components["schemas"]["models.Organisation"];
35876
36769
  };
36770
+ "models.UpdateProjectInput": {
36771
+ project?: components["schemas"]["models.ProjectUpdate"];
36772
+ projectId?: string;
36773
+ user?: components["schemas"]["models.User"];
36774
+ };
36775
+ "models.UpdateProjectOutput": {
36776
+ project?: components["schemas"]["models.Project"];
36777
+ };
35877
36778
  "models.UpdateVideowallInput": {
35878
36779
  user?: components["schemas"]["models.User"];
35879
36780
  videowall?: components["schemas"]["models.Videowall"];
@@ -36074,6 +36975,7 @@ export interface components {
36074
36975
  forwarder_id?: string;
36075
36976
  forwarder_type?: string;
36076
36977
  forwarder_worker?: string;
36978
+ id?: string;
36077
36979
  main_provider?: boolean;
36078
36980
  metadata?: components["schemas"]["models.VaultMediaMetadata"];
36079
36981
  provider?: string;
@@ -36117,18 +37019,14 @@ export interface components {
36117
37019
  time?: string;
36118
37020
  };
36119
37021
  "models.Videowall": {
36120
- /**
36121
- * @description AllowLayoutEdits lets any signed-in viewer (not just the owner) persist
36122
- * changes to Layout. When false only the owner may save.
36123
- */
37022
+ /** @description AllowLayoutEdits lets any signed-in viewer (not just the owner) persist
37023
+ * changes to Layout. When false only the owner may save. */
36124
37024
  allow_layout_edits?: boolean;
36125
37025
  assigned_users?: string[];
36126
37026
  cameras?: string[];
36127
- /**
36128
- * @description DefaultViewingMode chooses which stream quality the wall loads with:
37027
+ /** @description DefaultViewingMode chooses which stream quality the wall loads with:
36129
37028
  * "preview" (SD) or "live" (HD). Empty defaults to "live". Always clamped
36130
- * to "preview" when Liveview only grants preview permission.
36131
- */
37029
+ * to "preview" when Liveview only grants preview permission. */
36132
37030
  default_viewing_mode?: string;
36133
37031
  description?: string;
36134
37032
  expiration?: number;
@@ -36138,22 +37036,18 @@ export interface components {
36138
37036
  id?: string;
36139
37037
  io?: number;
36140
37038
  isActive?: number;
36141
- /**
36142
- * @description Layout stores a shareable custom arrangement of the wall's camera tiles
37039
+ /** @description Layout stores a shareable custom arrangement of the wall's camera tiles
36143
37040
  * (order + per-tile column/row spans). When nil the wall falls back to the
36144
37041
  * default responsive grid. It travels with the wall so it is shared with
36145
- * everyone the wall is shared with.
36146
- */
37042
+ * everyone the wall is shared with. */
36147
37043
  layout?: components["schemas"]["models.VideowallLayout"];
36148
37044
  liveview?: number;
36149
37045
  master_user_id?: string;
36150
37046
  name?: string;
36151
37047
  organisationId?: string;
36152
37048
  pass_code?: string;
36153
- /**
36154
- * @description ProjectId optionally places the videowall in a project within its
36155
- * organisation. A nil value keeps it organisation-wide.
36156
- */
37049
+ /** @description ProjectId optionally places the videowall in a project within its
37050
+ * organisation. A nil value keeps it organisation-wide. */
36157
37051
  projectId?: string;
36158
37052
  /** @description ForceMFA int `json:"force_mfa" bson:"force_mfa"` */
36159
37053
  ptz?: number;
@@ -36186,10 +37080,8 @@ export interface components {
36186
37080
  timezone?: string;
36187
37081
  };
36188
37082
  "models.Workflow": {
36189
- /**
36190
- * @description Audit carries bounded actor/timestamp metadata for database-backed user
36191
- * workflows. It is omitted from Helm-defined global workflows unless set.
36192
- */
37083
+ /** @description Audit carries bounded actor/timestamp metadata for database-backed user
37084
+ * workflows. It is omitted from Helm-defined global workflows unless set. */
36193
37085
  audit?: components["schemas"]["models.Audit"];
36194
37086
  createdAt?: number;
36195
37087
  description?: string;
@@ -36198,29 +37090,22 @@ export interface components {
36198
37090
  id?: string;
36199
37091
  name?: string;
36200
37092
  nodes?: components["schemas"]["models.WorkflowNode"][];
36201
- /**
36202
- * @description OrganisationId is the canonical tenant key. It is persisted as the
37093
+ /** @description OrganisationId is the canonical tenant key. It is persisted as the
36203
37094
  * camelCase `organisationId` field to match the platform-wide convention for
36204
37095
  * organisation-owned domain resources. Database-backed workflows are not yet
36205
37096
  * materially used in deployments, so new documents start with this canonical
36206
- * contract while readers may retain a legacy `organisation_id` fallback.
36207
- */
37097
+ * contract while readers may retain a legacy `organisation_id` fallback. */
36208
37098
  organisationId?: string;
36209
- /**
36210
- * @description ProjectId optionally places the workflow in a project within its organisation.
36211
- * A nil value keeps the workflow organisation-wide.
36212
- */
37099
+ /** @description ProjectId optionally places the workflow in a project within its organisation.
37100
+ * A nil value keeps the workflow organisation-wide. */
36213
37101
  projectId?: string;
36214
- /**
36215
- * @description Source is the workflow's provenance and availability (see WorkflowSource).
37102
+ /** @description Source is the workflow's provenance and availability (see WorkflowSource).
36216
37103
  * Empty means WorkflowSourceUser: an ordinary user workflow scoped to its
36217
37104
  * OrganisationId. WorkflowSourceConfig marks a Helm-defined, deployment-global,
36218
37105
  * read-only workflow. Every workflow persisted before this field existed
36219
- * decodes as user.
36220
- */
37106
+ * decodes as user. */
36221
37107
  source?: components["schemas"]["models.WorkflowSource"];
36222
- /**
36223
- * @description Stages is the workflow's executable stage set: the runtime-authoritative
37108
+ /** @description Stages is the workflow's executable stage set: the runtime-authoritative
36224
37109
  * projection the engine dispatches against. When set it is used as-is (config
36225
37110
  * workflows author it directly in the helm registry form: operation, dispatch,
36226
37111
  * needs, needsMode); when empty it is derived from Nodes+Edges on demand (UI
@@ -36230,23 +37115,18 @@ export interface components {
36230
37115
  * Only the routing fields (Operation, Dispatch, Needs, NeedsMode) are
36231
37116
  * meaningful here; a stage's deployment fields (image, queue, replicas, …) are
36232
37117
  * resolved by Operation against the shared deployed catalog, not per workflow.
36233
- * Operations need only be unique within a single workflow, not globally.
36234
- */
37118
+ * Operations need only be unique within a single workflow, not globally. */
36235
37119
  stages?: components["schemas"]["models.WorkflowStage"][];
36236
- /**
36237
- * @description Trigger is the legacy single-trigger field kept only so workflows persisted
37120
+ /** @description Trigger is the legacy single-trigger field kept only so workflows persisted
36238
37121
  * before Triggers existed still decode (and are not silently dropped on
36239
37122
  * re-save). New code should read and write Triggers; call NormalizeTriggers to
36240
37123
  * fold any legacy value into Triggers.
36241
37124
  *
36242
- * Deprecated: use Triggers.
36243
- */
37125
+ * Deprecated: use Triggers. */
36244
37126
  trigger?: components["schemas"]["models.WorkflowTrigger"];
36245
- /**
36246
- * @description Triggers is the set of activation modes for this workflow. A workflow may
37127
+ /** @description Triggers is the set of activation modes for this workflow. A workflow may
36247
37128
  * carry both an automatic and a manual trigger so it runs on its own for
36248
- * matching recordings and can also be launched on demand from a surface.
36249
- */
37129
+ * matching recordings and can also be launched on demand from a surface. */
36250
37130
  triggers?: components["schemas"]["models.WorkflowTrigger"][];
36251
37131
  updatedAt?: number;
36252
37132
  userId?: string;
@@ -36263,82 +37143,63 @@ export interface components {
36263
37143
  storageSolution?: string;
36264
37144
  };
36265
37145
  "models.WorkflowEdge": {
36266
- /**
36267
- * @description Condition is the structured predicate evaluated against the source stage's
37146
+ /** @description Condition is the structured predicate evaluated against the source stage's
36268
37147
  * result. Nil means the edge is an unconditional dependency. The edge is the
36269
37148
  * authoring source of truth for routing: this Condition is what compiles into
36270
37149
  * the target stage's Needs[].Condition (see WorkflowStage.Needs), which is the
36271
- * derived runtime projection.
36272
- */
37150
+ * derived runtime projection. */
36273
37151
  condition?: components["schemas"]["models.StageCondition"];
36274
37152
  id?: string;
36275
37153
  source?: string;
36276
- /**
36277
- * @description SourcePort optionally selects which of the source stage's declared Outputs
37154
+ /** @description SourcePort optionally selects which of the source stage's declared Outputs
36278
37155
  * (see WorkflowStage.Outputs) this edge reads; Condition is evaluated against
36279
- * that output's result. Empty means the stage's single implicit default port.
36280
- */
37156
+ * that output's result. Empty means the stage's single implicit default port. */
36281
37157
  sourcePort?: string;
36282
37158
  target?: string;
36283
- /**
36284
- * @description TargetPort optionally selects which of the target stage's declared Inputs
36285
- * (see WorkflowStage.Inputs) this edge feeds. Empty means the default port.
36286
- */
37159
+ /** @description TargetPort optionally selects which of the target stage's declared Inputs
37160
+ * (see WorkflowStage.Inputs) this edge feeds. Empty means the default port. */
36287
37161
  targetPort?: string;
36288
37162
  };
36289
37163
  "models.WorkflowNode": {
36290
- /**
36291
- * @description Data holds optional per-instance parameter values for this placement, keyed
37164
+ /** @description Data holds optional per-instance parameter values for this placement, keyed
36292
37165
  * by parameter name. They are validated against and defaulted from the
36293
37166
  * referenced stage's declared Params (see WorkflowStage.Params), layered over
36294
- * the stage's catalog defaults.
36295
- */
37167
+ * the stage's catalog defaults. */
36296
37168
  data?: {
36297
37169
  [key: string]: unknown;
36298
37170
  };
36299
- /**
36300
- * @description Id is this instance's identity within the workflow. It is the stable
37171
+ /** @description Id is this instance's identity within the workflow. It is the stable
36301
37172
  * handle that edges connect to, and the per-instance runtime key when the
36302
- * same stage is placed more than once.
36303
- */
37173
+ * same stage is placed more than once. */
36304
37174
  id?: string;
36305
37175
  label?: string;
36306
- /**
36307
- * @description StageRef is the referenced stage's Operation key (the catalog key shared
37176
+ /** @description StageRef is the referenced stage's Operation key (the catalog key shared
36308
37177
  * by platform- and user-defined stages), not its Mongo Id. Always set:
36309
- * every node is an instance of a catalog stage, resolved at compile time.
36310
- */
37178
+ * every node is an instance of a catalog stage, resolved at compile time. */
36311
37179
  stageRef?: string;
36312
37180
  x?: number;
36313
37181
  y?: number;
36314
37182
  };
36315
37183
  "models.WorkflowRun": {
36316
- /**
36317
- * @description Device identifies the recording the run derives from, with the few fields
37184
+ /** @description Device identifies the recording the run derives from, with the few fields
36318
37185
  * vault-override resolution and logging need (device key/name and where the
36319
37186
  * media is stored/served from). Copied from the recording at hand-off time.
36320
- * Wire-only.
36321
- */
37187
+ * Wire-only. */
36322
37188
  device?: components["schemas"]["models.WorkflowDevice"];
36323
- /**
36324
- * @description Inputs is the immutable start context the run opens with, keyed by the
37189
+ /** @description Inputs is the immutable start context the run opens with, keyed by the
36325
37190
  * upstream operation that produced it (e.g. "classify" → the classification
36326
37191
  * result). Conditions and stages read upstream context from here; it is set
36327
37192
  * once by analysis and never mutated by the run. Persisted at open so a run
36328
- * reloaded mid-flight still sees its start context.
36329
- */
37193
+ * reloaded mid-flight still sees its start context. */
36330
37194
  inputs?: {
36331
37195
  [key: string]: unknown;
36332
37196
  };
36333
- /**
36334
- * @description Key is the media key the run is about. It is copied from the recording at
37197
+ /** @description Key is the media key the run is about. It is copied from the recording at
36335
37198
  * hand-off time and can group all runs for that recording, but is not unique:
36336
37199
  * run state is correlated by Id/RunId because several workflows and manual
36337
- * re-runs may execute over the same key.
36338
- */
37200
+ * re-runs may execute over the same key. */
36339
37201
  key?: string;
36340
- /**
36341
- * @description Operation marks the message's role on the workflows queue (wire-only):
37202
+ /** @description Operation marks the message's role on the workflows queue (wire-only):
36342
37203
  * - "event": a fresh run hand-off from analysis. It opens the run and
36343
37204
  * carries the start context in Inputs (e.g. the classification result).
36344
37205
  * - any other value (e.g. "anpr"): either the engine dispatching that
@@ -36346,21 +37207,17 @@ export interface components {
36346
37207
  * result back (Payload or Results populated). These never collide because the
36347
37208
  * workflows queue only ever carries the "event" open and worker results —
36348
37209
  * a dispatch goes to the worker's own queue — so the engine never has to
36349
- * disambiguate a dispatch from a result.
36350
- */
37210
+ * disambiguate a dispatch from a result. */
36351
37211
  operation?: string;
36352
- /**
36353
- * @description Origin records how this run was opened — the run-side counterpart of the
37212
+ /** @description Origin records how this run was opened — the run-side counterpart of the
36354
37213
  * Workflow's trigger Type. An automatic run was teed off the pipeline by
36355
37214
  * analysis for a matching recording; a manual run was launched on demand by a
36356
37215
  * user from a surface. The engine reads it to skip automatic selection/time
36357
37216
  * gating for on-demand runs; it is persisted so "all runs for a media key" can
36358
37217
  * be filtered by how they started. Empty is treated as automatic for runs
36359
- * opened before origins existed.
36360
- */
37218
+ * opened before origins existed. */
36361
37219
  origin?: components["schemas"]["models.WorkflowRunOrigin"];
36362
- /**
36363
- * @description Payload is the self-describing block envelope a delegated-ingest worker
37220
+ /** @description Payload is the self-describing block envelope a delegated-ingest worker
36364
37221
  * hands back for the platform to persist: one or more typed blocks (e.g. a
36365
37222
  * "detection" block carrying a PostDetectionsRequest, optionally followed by
36366
37223
  * "marker" blocks). It is the channel the shared ingest core reads from,
@@ -36385,11 +37242,9 @@ export interface components {
36385
37242
  *
36386
37243
  * `bson:"-"` is load-bearing: the raw body is ingested into its own
36387
37244
  * collection, never duplicated into the run's persisted state. The engine
36388
- * never sets it on an outbound dispatch, so it never travels engine → worker.
36389
- */
37245
+ * never sets it on an outbound dispatch, so it never travels engine → worker. */
36390
37246
  payload?: number[];
36391
- /**
36392
- * @description RecordingTimestamp is the recording's start time (unix seconds), copied
37247
+ /** @description RecordingTimestamp is the recording's start time (unix seconds), copied
36393
37248
  * from the recording at hand-off time. It is denormalised onto any platform
36394
37249
  * artifact the engine ingests (see Payload) so cleanup expires the artifact
36395
37250
  * on the recording's retention clock rather than the post time. It is set on
@@ -36397,21 +37252,17 @@ export interface components {
36397
37252
  * reads it from the run document when stamping an ingested artifact. It is
36398
37253
  * therefore engine-internal — NOT sent on the engine→worker dispatch and not
36399
37254
  * something a worker has to echo back, so it is not part of the stage
36400
- * contract.
36401
- */
37255
+ * contract. */
36402
37256
  recordingTimestamp?: number;
36403
- /**
36404
- * @description Results is the run's accumulated stage outputs, keyed by operation. Each
37257
+ /** @description Results is the run's accumulated stage outputs, keyed by operation. Each
36405
37258
  * stage worker writes its result under its operation on the way back, and
36406
37259
  * conditions / downstream stages read upstream outputs from here. It grows
36407
37260
  * as the run progresses; the engine records each result into it. Together
36408
- * with Inputs it is the durable condition bag (Results wins on any overlap).
36409
- */
37261
+ * with Inputs it is the durable condition bag (Results wins on any overlap). */
36410
37262
  results?: {
36411
37263
  [key: string]: unknown;
36412
37264
  };
36413
- /**
36414
- * @description RunId is the run's identifier on the wire (the hex of the document Id). It
37265
+ /** @description RunId is the run's identifier on the wire (the hex of the document Id). It
36415
37266
  * is empty on an untargeted analysis hand-off; after workflow matching, the
36416
37267
  * engine derives a distinct document identity per recording, organisation,
36417
37268
  * and workflow. It is set on every engine→worker dispatch. The persisted
@@ -36421,11 +37272,9 @@ export interface components {
36421
37272
  * has been opened (its _id is set) is serialized, so a producer only has to
36422
37273
  * stamp Id and the two representations can never drift. A run without an Id
36423
37274
  * yet (the analysis hand-off) keeps whatever RunId it was given (normally
36424
- * empty, so runId is omitted).
36425
- */
37275
+ * empty, so runId is omitted). */
36426
37276
  runId?: string;
36427
- /**
36428
- * @description SignedURL is a vault-signed, short-lived URL (HMAC signature + TTL) a
37277
+ /** @description SignedURL is a vault-signed, short-lived URL (HMAC signature + TTL) a
36429
37278
  * dispatched stage worker can use to fetch the run's media directly, instead
36430
37279
  * of constructing the request from the raw Storage credentials. It is the
36431
37280
  * signed URL the upstream pipeline already holds for the recording (the same
@@ -36433,19 +37282,15 @@ export interface components {
36433
37282
  * analysis hand-off and carried on the engine→worker dispatch alongside
36434
37283
  * Storage. `bson:"-"` is load-bearing: a signed URL is credential-equivalent
36435
37284
  * and short-lived, so — like Storage — it is wire-only and never lands in the
36436
- * run's persisted state; a stage dispatched after a reload fetches via Storage.
36437
- */
37285
+ * run's persisted state; a stage dispatched after a reload fetches via Storage. */
36438
37286
  signedUrl?: string;
36439
- /**
36440
- * @description SourceRef ties a manual run back to the thing it was launched from — e.g.
37287
+ /** @description SourceRef ties a manual run back to the thing it was launched from — e.g.
36441
37288
  * the case id when launched from a case surface — so sibling runs fanned out
36442
37289
  * from one user action (one seed per selected media key) can be grouped above
36443
37290
  * the run. Empty for automatic runs. It generalises to any run-grouping handle
36444
- * (a case id today; a temporal device-series id is a forward-looking twin).
36445
- */
37291
+ * (a case id today; a temporal device-series id is a forward-looking twin). */
36446
37292
  sourceRef?: string;
36447
- /**
36448
- * @description Stages is the run's self-describing routing: the compiled stage set of the
37293
+ /** @description Stages is the run's self-describing routing: the compiled stage set of the
36449
37294
  * workflow this run executes (the output of Workflow.CompileStages) embedded
36450
37295
  * on the hand-off so the engine can dispatch a workflow it does not hold in
36451
37296
  * its boot-loaded config registry — a user/DB workflow launched manually.
@@ -36455,41 +37300,32 @@ export interface components {
36455
37300
  * legacy/config path: the engine falls back to the config registry keyed by
36456
37301
  * WorkflowId, so config workflows and older hand-offs are unchanged. It is
36457
37302
  * persisted so the return path — a stage result reopening the run on any
36458
- * replica — resolves the same routing without re-fetching the definition.
36459
- */
37303
+ * replica — resolves the same routing without re-fetching the definition. */
36460
37304
  stages?: components["schemas"]["models.WorkflowStage"][];
36461
- /**
36462
- * @description Storage carries the credentials a dispatched stage worker needs to fetch
37305
+ /** @description Storage carries the credentials a dispatched stage worker needs to fetch
36463
37306
  * the media (global Kerberos Storage plus any resolved per-recording vault
36464
37307
  * override). It is populated by the engine only on the engine→worker
36465
37308
  * dispatch hop and is empty on the analysis hand-off and the worker→engine
36466
37309
  * result. `bson:"-"` is load-bearing: credentials never sit in the run's
36467
- * persisted state.
36468
- */
37310
+ * persisted state. */
36469
37311
  storage?: components["schemas"]["models.WorkflowStorage"];
36470
37312
  /** @description TraceId continues the distributed trace across the workflow tail. */
36471
37313
  traceId?: string;
36472
- /**
36473
- * @description User is the curated, secret-free account context a run needs: the
37314
+ /** @description User is the curated, secret-free account context a run needs: the
36474
37315
  * organisation that owns the recording (for logging/scoping) and the account
36475
37316
  * Storage block used to resolve a per-recording vault override. Copied (and
36476
37317
  * scrubbed) from the analysis monitor stage — credential/secret fields and the
36477
37318
  * individual user id never cross the boundary. Wire-only; the persisted scope
36478
- * is OrganisationId.
36479
- */
37319
+ * is OrganisationId. */
36480
37320
  user?: components["schemas"]["models.WorkflowUser"];
36481
- /**
36482
- * @description WorkflowId is the id of the Workflow definition (models.Workflow) this run
37321
+ /** @description WorkflowId is the id of the Workflow definition (models.Workflow) this run
36483
37322
  * executes — the authored graph (nodes/edges/triggers) the run is an execution
36484
37323
  * of. It is empty only on an untargeted analysis hand-off; the engine stamps it
36485
- * as it fans that recording out to each matching config or database workflow.
36486
- */
37324
+ * as it fans that recording out to each matching config or database workflow. */
36487
37325
  workflowId?: string;
36488
- /**
36489
- * @description WorkflowName is the human-readable name of that Workflow, carried so a
37326
+ /** @description WorkflowName is the human-readable name of that Workflow, carried so a
36490
37327
  * dispatch/result is legible in worker context and logs without a lookup.
36491
- * Populated alongside WorkflowId.
36492
- */
37328
+ * Populated alongside WorkflowId. */
36493
37329
  workflowName?: string;
36494
37330
  };
36495
37331
  /** @enum {string} */
@@ -36499,55 +37335,44 @@ export interface components {
36499
37335
  "models.WorkflowStage": {
36500
37336
  /** @description Description explains what the stage does, for the catalog UI. */
36501
37337
  description?: string;
36502
- /**
36503
- * @description Dispatch is when the stage runs: DispatchAlways or DispatchConditional (the
37338
+ /** @description Dispatch is when the stage runs: DispatchAlways or DispatchConditional (the
36504
37339
  * closed Dispatch enum). Empty defaults to DispatchAlways. For a user
36505
37340
  * workflow it is derived from the graph's edges (conditional when the node has
36506
- * at least one incoming edge); see the Routing note above.
36507
- */
37341
+ * at least one incoming edge); see the Routing note above. */
36508
37342
  dispatch?: components["schemas"]["models.Dispatch"];
36509
37343
  /** @description Env is extra environment passed to the stage's workers. */
36510
37344
  env?: {
36511
37345
  [key: string]: string;
36512
37346
  };
36513
- /**
36514
- * @description Id is the catalog entry's Mongo id for user-defined stages. It is empty
36515
- * for platform-defined stages supplied via the runtime registry.
36516
- */
37347
+ /** @description Id is the catalog entry's Mongo id for user-defined stages. It is empty
37348
+ * for platform-defined stages supplied via the runtime registry. */
36517
37349
  id?: string;
36518
- /**
36519
- * @description Inputs and Outputs declare the stage's named ports — the connection points
37350
+ /** @description Inputs and Outputs declare the stage's named ports — the connection points
36520
37351
  * workflow edges attach to (WorkflowEdge.TargetPort / SourcePort). Empty means
36521
- * a single implicit default port.
36522
- */
37352
+ * a single implicit default port. */
36523
37353
  inputs?: components["schemas"]["models.StagePort"][];
36524
37354
  /** @description LogLevel is the worker log verbosity (trace | debug | info | warn | error). */
36525
37355
  logLevel?: string;
36526
37356
  /** @description Name is a human-friendly catalog name shown in the stage library. */
36527
37357
  name?: string;
36528
- /**
36529
- * @description Needs lists the dependencies of a conditional stage — its fan-in. It is the
37358
+ /** @description Needs lists the dependencies of a conditional stage — its fan-in. It is the
36530
37359
  * compiled, runtime-authoritative projection of the workflow's incoming edges
36531
37360
  * (one entry per edge), not an independently editable field. At least one
36532
37361
  * entry is required when Dispatch is DispatchConditional; ignored otherwise.
36533
37362
  * The runtime re-evaluates the stage against the run root whenever the run
36534
37363
  * progresses; each need's Operation gates when its Condition may be read (an
36535
37364
  * empty Operation is ungated, evaluated at open) and the stage fires for the
36536
- * first need whose Condition matches (a nil Condition matches unconditionally).
36537
- */
37365
+ * first need whose Condition matches (a nil Condition matches unconditionally). */
36538
37366
  needs?: components["schemas"]["models.StageDependency"][];
36539
- /**
36540
- * @description NeedsMode controls how multiple Needs combine into a dispatch decision:
37367
+ /** @description NeedsMode controls how multiple Needs combine into a dispatch decision:
36541
37368
  * NeedsModeAny (the default) fires the stage as soon as one need is satisfied
36542
37369
  * (its gate operation available and its condition matching); NeedsModeAll
36543
37370
  * fires the stage only once every need is satisfied (a join). It is
36544
37371
  * meaningful only when Dispatch is DispatchConditional and there is more than
36545
37372
  * one need; with a single need both modes behave identically. Empty defaults
36546
- * to NeedsModeAny.
36547
- */
37373
+ * to NeedsModeAny. */
36548
37374
  needsMode?: components["schemas"]["models.NeedsMode"];
36549
- /**
36550
- * @description Operation uniquely identifies the stage and binds its queue, dispatch and
37375
+ /** @description Operation uniquely identifies the stage and binds its queue, dispatch and
36551
37376
  * resolution. It is the key workflow nodes reference, and the key under which
36552
37377
  * the stage's result is filed in a run's Inputs/Results. Two stages may never
36553
37378
  * share an operation.
@@ -36562,22 +37387,17 @@ export interface components {
36562
37387
  * (e.g. "classify"), which seeds Inputs and can gate a need or be read by a
36563
37388
  * condition, yet is not itself a deployed stage. That is why routing —
36564
37389
  * Needs/gates, conditions, and the run's dispatched/resolved tiers — is keyed
36565
- * by operation (the wider id space), while deployment talks in stages.
36566
- */
37390
+ * by operation (the wider id space), while deployment talks in stages. */
36567
37391
  operation?: string;
36568
37392
  outputs?: components["schemas"]["models.StagePort"][];
36569
- /**
36570
- * @description Params declares the configurable parameters this stage accepts. A node's
37393
+ /** @description Params declares the configurable parameters this stage accepts. A node's
36571
37394
  * Data is validated against and defaulted from these (see WorkflowNode.Data);
36572
- * empty means the stage takes no parameters.
36573
- */
37395
+ * empty means the stage takes no parameters. */
36574
37396
  params?: components["schemas"]["models.StageParam"][];
36575
37397
  /** @description PullPolicy is the image pull policy (e.g. "IfNotPresent", "Always"). */
36576
37398
  pullPolicy?: string;
36577
- /**
36578
- * @description Queue is the queue the stage's workers consume from. Defaults to a name
36579
- * derived from Operation when empty.
36580
- */
37399
+ /** @description Queue is the queue the stage's workers consume from. Defaults to a name
37400
+ * derived from Operation when empty. */
36581
37401
  queue?: string;
36582
37402
  /** @description Replicas is the desired number of worker pods for the stage. */
36583
37403
  replicas?: number;
@@ -36598,18 +37418,15 @@ export interface components {
36598
37418
  vaultOverrideUri?: string;
36599
37419
  };
36600
37420
  "models.WorkflowTrigger": {
36601
- /**
36602
- * @description Conditions further scopes the automatic trigger with the same structured
37421
+ /** @description Conditions further scopes the automatic trigger with the same structured
36603
37422
  * (path, op, value) predicates a stage uses, evaluated against the pre-run
36604
37423
  * envelope (device.*, user.*, and the identity scalars known when a recording
36605
37424
  * arrives). All conditions must hold (AND) and they combine with the compiled
36606
37425
  * Devices shorthand, so `matches`, `in`, `eq`, … apply to device matching the
36607
37426
  * way they do to stages. An empty list adds no constraint. See
36608
- * CompiledConditions and StageCondition.
36609
- */
37427
+ * CompiledConditions and StageCondition. */
36610
37428
  conditions?: components["schemas"]["models.StageCondition"][];
36611
- /**
36612
- * @description Devices restricts the automatic trigger to recordings from the listed
37429
+ /** @description Devices restricts the automatic trigger to recordings from the listed
36613
37430
  * devices, matched by DeviceKey.Key. An empty list means every device is
36614
37431
  * eligible. Mirrors the alert device selection (see CustomAlert.DevicesList).
36615
37432
  *
@@ -36617,28 +37434,21 @@ export interface components {
36617
37434
  * CompiledConditions) into a single StageCondition — device.deviceKey `in`
36618
37435
  * [keys…] — evaluated by the same operator engine stage conditions use, so
36619
37436
  * device scoping and stage matching stay consistent. Author richer scoping
36620
- * (a device-name pattern, an organisation check, …) with Conditions.
36621
- */
37437
+ * (a device-name pattern, an organisation check, …) with Conditions. */
36622
37438
  devices?: components["schemas"]["models.DeviceKey"][];
36623
- /**
36624
- * @description Surfaces lists the UI surfaces a manual trigger can be launched from
36625
- * (manual). Ignored for automatic triggers.
36626
- */
37439
+ /** @description Surfaces lists the UI surfaces a manual trigger can be launched from
37440
+ * (manual). Ignored for automatic triggers. */
36627
37441
  surfaces?: components["schemas"]["models.WorkflowTriggerSurface"][];
36628
- /**
36629
- * @description Type is the activation mode. An empty Type is treated as
37442
+ /** @description Type is the activation mode. An empty Type is treated as
36630
37443
  * WorkflowTriggerAutomatic for backwards compatibility with triggers authored
36631
- * before manual triggers existed.
36632
- */
37444
+ * before manual triggers existed. */
36633
37445
  type?: components["schemas"]["models.WorkflowTriggerType"];
36634
- /**
36635
- * @description WeeklySchedule bounds the automatic trigger to recurring weekly windows,
37446
+ /** @description WeeklySchedule bounds the automatic trigger to recurring weekly windows,
36636
37447
  * each with its own day, time segments and IANA Timezone. An empty schedule
36637
37448
  * means any time is eligible. Reuses the alert weekly-schedule shape so the
36638
37449
  * same editor and evaluation semantics apply. The Timezone on each entry is
36639
37450
  * the user's timezone captured when the schedule was authored. Time is not
36640
- * path-expressible, so it stays a dedicated field rather than a condition.
36641
- */
37451
+ * path-expressible, so it stays a dedicated field rather than a condition. */
36642
37452
  weeklySchedule?: components["schemas"]["models.WeeklySchedule"][];
36643
37453
  };
36644
37454
  /** @enum {string} */
@@ -36683,8 +37493,11 @@ export declare namespace models {
36683
37493
  type AnalyticsLists = components['schemas']['models.AnalyticsLists'];
36684
37494
  type AnalyticsSummary = components['schemas']['models.AnalyticsSummary'];
36685
37495
  type Audit = components['schemas']['models.Audit'];
37496
+ type AuditAuthorizationInfo = components['schemas']['models.AuditAuthorizationInfo'];
36686
37497
  type AuditEvent = components['schemas']['models.AuditEvent'];
37498
+ type AuditEventStatus = components['schemas']['models.AuditEventStatus'];
36687
37499
  type AuditFieldChange = components['schemas']['models.AuditFieldChange'];
37500
+ type AuditRequestInfo = components['schemas']['models.AuditRequestInfo'];
36688
37501
  type CameraMetadata = components['schemas']['models.CameraMetadata'];
36689
37502
  type CameraPreset = components['schemas']['models.CameraPreset'];
36690
37503
  type CameraTour = components['schemas']['models.CameraTour'];
@@ -36716,6 +37529,8 @@ export declare namespace models {
36716
37529
  type CreateCaseShareOutput = components['schemas']['models.CreateCaseShareOutput'];
36717
37530
  type CreateOrganisationInput = components['schemas']['models.CreateOrganisationInput'];
36718
37531
  type CreateOrganisationOutput = components['schemas']['models.CreateOrganisationOutput'];
37532
+ type CreateProjectInput = components['schemas']['models.CreateProjectInput'];
37533
+ type CreateProjectOutput = components['schemas']['models.CreateProjectOutput'];
36719
37534
  type CreateVideowallInput = components['schemas']['models.CreateVideowallInput'];
36720
37535
  type CreateVideowallOutput = components['schemas']['models.CreateVideowallOutput'];
36721
37536
  type CreateWorkflowInput = components['schemas']['models.CreateWorkflowInput'];
@@ -36727,6 +37542,8 @@ export declare namespace models {
36727
37542
  type DateRangeSchedule = components['schemas']['models.DateRangeSchedule'];
36728
37543
  type DayTimeRange = components['schemas']['models.DayTimeRange'];
36729
37544
  type DeleteCaseShareInput = components['schemas']['models.DeleteCaseShareInput'];
37545
+ type DeleteProjectInput = components['schemas']['models.DeleteProjectInput'];
37546
+ type DeleteProjectOutput = components['schemas']['models.DeleteProjectOutput'];
36730
37547
  type DeleteVideowallInput = components['schemas']['models.DeleteVideowallInput'];
36731
37548
  type DeleteWorkflowInput = components['schemas']['models.DeleteWorkflowInput'];
36732
37549
  type DeleteWorkflowStageInput = components['schemas']['models.DeleteWorkflowStageInput'];
@@ -36775,6 +37592,8 @@ export declare namespace models {
36775
37592
  type GetOrganisationOutput = components['schemas']['models.GetOrganisationOutput'];
36776
37593
  type GetOrganisationsInput = components['schemas']['models.GetOrganisationsInput'];
36777
37594
  type GetOrganisationsOutput = components['schemas']['models.GetOrganisationsOutput'];
37595
+ type GetProjectInput = components['schemas']['models.GetProjectInput'];
37596
+ type GetProjectOutput = components['schemas']['models.GetProjectOutput'];
36778
37597
  type GetProjectsInput = components['schemas']['models.GetProjectsInput'];
36779
37598
  type GetProjectsOutput = components['schemas']['models.GetProjectsOutput'];
36780
37599
  type GetVideowallInput = components['schemas']['models.GetVideowallInput'];
@@ -36857,10 +37676,12 @@ export declare namespace models {
36857
37676
  type PipelineMetadata = components['schemas']['models.PipelineMetadata'];
36858
37677
  type PipelineMetrics = components['schemas']['models.PipelineMetrics'];
36859
37678
  type PipelinePayload = components['schemas']['models.PipelinePayload'];
37679
+ type PipelineSourceDevice = components['schemas']['models.PipelineSourceDevice'];
36860
37680
  type Plan = components['schemas']['models.Plan'];
36861
37681
  type Point = components['schemas']['models.Point'];
36862
37682
  type ProfileSettings = components['schemas']['models.ProfileSettings'];
36863
37683
  type Project = components['schemas']['models.Project'];
37684
+ type ProjectUpdate = components['schemas']['models.ProjectUpdate'];
36864
37685
  type Pushbullet = components['schemas']['models.Pushbullet'];
36865
37686
  type Pushover = components['schemas']['models.Pushover'];
36866
37687
  type Region = components['schemas']['models.Region'];
@@ -36914,6 +37735,8 @@ export declare namespace models {
36914
37735
  type UpdateCaseShareOTPInput = components['schemas']['models.UpdateCaseShareOTPInput'];
36915
37736
  type UpdateOrganisationInput = components['schemas']['models.UpdateOrganisationInput'];
36916
37737
  type UpdateOrganisationOutput = components['schemas']['models.UpdateOrganisationOutput'];
37738
+ type UpdateProjectInput = components['schemas']['models.UpdateProjectInput'];
37739
+ type UpdateProjectOutput = components['schemas']['models.UpdateProjectOutput'];
36917
37740
  type UpdateVideowallInput = components['schemas']['models.UpdateVideowallInput'];
36918
37741
  type UpdateVideowallOutput = components['schemas']['models.UpdateVideowallOutput'];
36919
37742
  type UpdateWorkflowInput = components['schemas']['models.UpdateWorkflowInput'];
@@ -36991,6 +37814,10 @@ export declare namespace api {
36991
37814
  type CreateOrganisationRequest = components['schemas']['api.CreateOrganisationRequest'];
36992
37815
  type CreateOrganisationResponse = components['schemas']['api.CreateOrganisationResponse'];
36993
37816
  type CreateOrganisationSuccessResponse = components['schemas']['api.CreateOrganisationSuccessResponse'];
37817
+ type CreateProjectErrorResponse = components['schemas']['api.CreateProjectErrorResponse'];
37818
+ type CreateProjectRequest = components['schemas']['api.CreateProjectRequest'];
37819
+ type CreateProjectResponse = components['schemas']['api.CreateProjectResponse'];
37820
+ type CreateProjectSuccessResponse = components['schemas']['api.CreateProjectSuccessResponse'];
36994
37821
  type CreateVideowallErrorResponse = components['schemas']['api.CreateVideowallErrorResponse'];
36995
37822
  type CreateVideowallRequest = components['schemas']['api.CreateVideowallRequest'];
36996
37823
  type CreateVideowallResponse = components['schemas']['api.CreateVideowallResponse'];
@@ -37009,6 +37836,9 @@ export declare namespace api {
37009
37836
  type DeleteDetectionRunErrorResponse = components['schemas']['api.DeleteDetectionRunErrorResponse'];
37010
37837
  type DeleteDetectionRunResponse = components['schemas']['api.DeleteDetectionRunResponse'];
37011
37838
  type DeleteDetectionRunSuccessResponse = components['schemas']['api.DeleteDetectionRunSuccessResponse'];
37839
+ type DeleteProjectErrorResponse = components['schemas']['api.DeleteProjectErrorResponse'];
37840
+ type DeleteProjectResponse = components['schemas']['api.DeleteProjectResponse'];
37841
+ type DeleteProjectSuccessResponse = components['schemas']['api.DeleteProjectSuccessResponse'];
37012
37842
  type DeleteStateErrorResponse = components['schemas']['api.DeleteStateErrorResponse'];
37013
37843
  type DeleteStateSuccessResponse = components['schemas']['api.DeleteStateSuccessResponse'];
37014
37844
  type DeleteTaskCommentErrorResponse = components['schemas']['api.DeleteTaskCommentErrorResponse'];
@@ -37342,6 +38172,10 @@ export declare namespace api {
37342
38172
  type UpdateOrganisationRequest = components['schemas']['api.UpdateOrganisationRequest'];
37343
38173
  type UpdateOrganisationResponse = components['schemas']['api.UpdateOrganisationResponse'];
37344
38174
  type UpdateOrganisationSuccessResponse = components['schemas']['api.UpdateOrganisationSuccessResponse'];
38175
+ type UpdateProjectErrorResponse = components['schemas']['api.UpdateProjectErrorResponse'];
38176
+ type UpdateProjectRequest = components['schemas']['api.UpdateProjectRequest'];
38177
+ type UpdateProjectResponse = components['schemas']['api.UpdateProjectResponse'];
38178
+ type UpdateProjectSuccessResponse = components['schemas']['api.UpdateProjectSuccessResponse'];
37345
38179
  type UpdateUserProfileErrorResponse = components['schemas']['api.UpdateUserProfileErrorResponse'];
37346
38180
  type UpdateUserProfileResponse = components['schemas']['api.UpdateUserProfileResponse'];
37347
38181
  type UpdateUserProfileSuccessResponse = components['schemas']['api.UpdateUserProfileSuccessResponse'];