@dnv-plant/typescriptpws 1.0.97 → 1.0.98

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.
@@ -1,15 +1,19 @@
1
- /***********************************************************************
2
- * This file has been auto-generated by a code generation tool.
3
- *
4
- * DO NOT MODIFY THIS FILE
5
- * This file is maintained by DNV.
6
- * Editing it may lead to inconsistent results and limit DNV's ability to provide support.
7
- * Please contact DNV if you believe changes are required.
8
- *
9
- * Version: 1.0.97
10
- * Date/time: 13 Apr 2026 17:02:52
11
- * Template: templates/typescriptpws/entityschemas.razor.
12
- ***********************************************************************/
1
+ // ************************************************************************************
2
+ // *
3
+ // * This file has been auto-generated by a code generation tool.
4
+ // *
5
+ // * DO NOT MODIFY THIS FILE
6
+ // * This file is maintained by DNV.
7
+ // * Editing it may lead to inconsistent results and limit DNV's ability to provide support.
8
+ // * Please contact DNV if you believe changes are required.
9
+ // *
10
+ // * API version: 1.0.
11
+ // * MDE version: 9.3.8211.
12
+ // * Package version: 1.0.98
13
+ // * Date/time: 23 Jun 2026 12:11:11.
14
+ // * Template: TYPE_SCRIPT_PWS/entity_schemas.sbn.
15
+ // *
16
+ // ************************************************************************************
13
17
 
14
18
  import * as Enums from './enums';
15
19
  import * as Entities from './entities';
@@ -129,7 +133,7 @@ export interface AssetSchemaData extends SchemaBaseData {
129
133
  /**
130
134
  * ================================================================================
131
135
  * Class: AssetSchema
132
- * Description: Any equipment to be modeled, vessels, pipelines
136
+ * Description: Any equipment to be modeled, vessels, pipelines.
133
137
  * ================================================================================
134
138
  */
135
139
  export class AssetSchema extends SchemaBase<AssetSchemaData> {
@@ -194,9 +198,9 @@ export class MaterialComponentSchema extends SchemaBase<MaterialComponentSchemaD
194
198
  }
195
199
 
196
200
  export interface MaterialSchemaData extends SchemaBaseData {
197
- components: Entities.MaterialComponent[];
198
201
  name: string;
199
202
  componentCount: number;
203
+ components: Entities.MaterialComponent[];
200
204
  propertyTemplate: Enums.PropertyTemplate;
201
205
  }
202
206
 
@@ -213,9 +217,9 @@ export class MaterialSchema extends SchemaBase<MaterialSchemaData> {
213
217
  this.schema = this.schema
214
218
  .concat(
215
219
  Joi.object({
216
- components: Joi.array().items(new MaterialComponentSchema().schema).allow(null),
217
220
  name: Joi.string().allow(''),
218
221
  componentCount: Joi.number().integer(),
222
+ components: Joi.array().items(new MaterialComponentSchema().schema).allow(null),
219
223
  propertyTemplate: Joi.string().valid(
220
224
  ...Object.values(Enums.PropertyTemplate)
221
225
  .filter((v) => typeof v === 'number')
@@ -228,9 +232,9 @@ export class MaterialSchema extends SchemaBase<MaterialSchemaData> {
228
232
 
229
233
  this.propertyTypes = {
230
234
  ...this.propertyTypes,
231
- components: 'MaterialComponent[]',
232
235
  name: 'string',
233
236
  componentCount: 'number',
237
+ components: 'MaterialComponent[]',
234
238
  propertyTemplate: 'Enums.PropertyTemplate',
235
239
  };
236
240
  }
@@ -412,18 +416,18 @@ export class ReleaseOverTimeSchema extends SchemaBase<ReleaseOverTimeSchemaData>
412
416
  }
413
417
 
414
418
  export interface BESSReleaseSchemaData extends SchemaBaseData {
419
+ releaseAngle: number;
420
+ timeVaryingOption: Enums.TimeVaryingOption;
415
421
  height: number;
416
- area: number;
422
+ ventArea: number;
417
423
  temperature: number;
418
424
  duration: number;
419
- releaseAngle: number;
420
- timeVaryingOption: Enums.TimeVaryingOption;
421
425
  }
422
426
 
423
427
  /**
424
428
  * ================================================================================
425
429
  * Class: BESSReleaseSchema
426
- * Description: A release from a BESS unit in thermal runaway
430
+ * Description: A release from a BESS unit in thermal runaway.
427
431
  * ================================================================================
428
432
  */
429
433
  export class BESSReleaseSchema extends SchemaBase<BESSReleaseSchemaData> {
@@ -433,16 +437,16 @@ export class BESSReleaseSchema extends SchemaBase<BESSReleaseSchemaData> {
433
437
  this.schema = this.schema
434
438
  .concat(
435
439
  Joi.object({
436
- height: Joi.number().unsafe(),
437
- area: Joi.number().unsafe(),
438
- temperature: Joi.number().unsafe(),
439
- duration: Joi.number().unsafe(),
440
440
  releaseAngle: Joi.number().unsafe(),
441
441
  timeVaryingOption: Joi.string().valid(
442
442
  ...Object.values(Enums.TimeVaryingOption)
443
443
  .filter((v) => typeof v === 'number')
444
444
  .sort(),
445
445
  ),
446
+ height: Joi.number().unsafe(),
447
+ ventArea: Joi.number().unsafe(),
448
+ temperature: Joi.number().unsafe(),
449
+ duration: Joi.number().unsafe(),
446
450
  }),
447
451
  )
448
452
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -450,12 +454,12 @@ export class BESSReleaseSchema extends SchemaBase<BESSReleaseSchemaData> {
450
454
 
451
455
  this.propertyTypes = {
452
456
  ...this.propertyTypes,
457
+ releaseAngle: 'number',
458
+ timeVaryingOption: 'Enums.TimeVaryingOption',
453
459
  height: 'number',
454
- area: 'number',
460
+ ventArea: 'number',
455
461
  temperature: 'number',
456
462
  duration: 'number',
457
- releaseAngle: 'number',
458
- timeVaryingOption: 'Enums.TimeVaryingOption',
459
463
  };
460
464
  }
461
465
 
@@ -464,16 +468,65 @@ export class BESSReleaseSchema extends SchemaBase<BESSReleaseSchemaData> {
464
468
  }
465
469
  }
466
470
 
471
+ export interface OffGasCompositionSchemaData extends SchemaBaseData {
472
+ name: string;
473
+ componentCount: number;
474
+ components: Entities.MaterialComponent[];
475
+ propertyTemplate: Enums.PropertyTemplate;
476
+ }
477
+
478
+ /**
479
+ * ================================================================================
480
+ * Class: OffGasCompositionSchema
481
+ * Description: The off-gas composition to use in calculations.
482
+ * ================================================================================
483
+ */
484
+ export class OffGasCompositionSchema extends SchemaBase<OffGasCompositionSchemaData> {
485
+ readonly typeName = 'OffGasComposition';
486
+ constructor() {
487
+ super();
488
+ this.schema = this.schema
489
+ .concat(
490
+ Joi.object({
491
+ name: Joi.string().allow(''),
492
+ componentCount: Joi.number().integer(),
493
+ components: Joi.array().items(new MaterialComponentSchema().schema).allow(null),
494
+ propertyTemplate: Joi.string().valid(
495
+ ...Object.values(Enums.PropertyTemplate)
496
+ .filter((v) => typeof v === 'number')
497
+ .sort(),
498
+ ),
499
+ }),
500
+ )
501
+ .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
502
+ .unknown(true);
503
+
504
+ this.propertyTypes = {
505
+ ...this.propertyTypes,
506
+ name: 'string',
507
+ componentCount: 'number',
508
+ components: 'MaterialComponent[]',
509
+ propertyTemplate: 'Enums.PropertyTemplate',
510
+ };
511
+ }
512
+
513
+ makeEntity(data: OffGasCompositionSchemaData): Entities.OffGasComposition {
514
+ return new Entities.OffGasComposition(data);
515
+ }
516
+ }
517
+
467
518
  export interface BESSUnitSchemaData extends SchemaBaseData {
468
519
  location: Entities.LocalPosition;
469
520
  energyCapacity: number;
470
521
  chemistry: Enums.BESSChemistry;
522
+ offGasComposition: Entities.OffGasComposition;
523
+ offGasVolume: number;
471
524
  }
472
525
 
473
526
  /**
474
527
  * ================================================================================
475
528
  * Class: BESSUnitSchema
476
- * Description: A BESS unit, containing Li-ion betteries
529
+ * Description: A BESS unit, containing Li-ion betteries.
477
530
  * ================================================================================
478
531
  */
479
532
  export class BESSUnitSchema extends SchemaBase<BESSUnitSchemaData> {
@@ -490,6 +543,8 @@ export class BESSUnitSchema extends SchemaBase<BESSUnitSchemaData> {
490
543
  .filter((v) => typeof v === 'number')
491
544
  .sort(),
492
545
  ),
546
+ offGasComposition: new OffGasCompositionSchema().schema,
547
+ offGasVolume: Joi.number().unsafe(),
493
548
  }),
494
549
  )
495
550
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -500,6 +555,8 @@ export class BESSUnitSchema extends SchemaBase<BESSUnitSchemaData> {
500
555
  location: 'LocalPosition',
501
556
  energyCapacity: 'number',
502
557
  chemistry: 'Enums.BESSChemistry',
558
+ offGasComposition: 'OffGasComposition',
559
+ offGasVolume: 'number',
503
560
  };
504
561
  }
505
562
 
@@ -508,6 +565,49 @@ export class BESSUnitSchema extends SchemaBase<BESSUnitSchemaData> {
508
565
  }
509
566
  }
510
567
 
568
+ export interface BESSVolumeSchemaData extends SchemaBaseData {
569
+ volume: number;
570
+ isEstimate: boolean;
571
+ upperCI: number;
572
+ lowerCI: number;
573
+ }
574
+
575
+ /**
576
+ * ================================================================================
577
+ * Class: BESSVolumeSchema
578
+ * Description: Represents the off-gas volume for a calculation.
579
+ * ================================================================================
580
+ */
581
+ export class BESSVolumeSchema extends SchemaBase<BESSVolumeSchemaData> {
582
+ readonly typeName = 'BESSVolume';
583
+ constructor() {
584
+ super();
585
+ this.schema = this.schema
586
+ .concat(
587
+ Joi.object({
588
+ volume: Joi.number().unsafe(),
589
+ isEstimate: Joi.boolean(),
590
+ upperCI: Joi.number().unsafe(),
591
+ lowerCI: Joi.number().unsafe(),
592
+ }),
593
+ )
594
+ .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
595
+ .unknown(true);
596
+
597
+ this.propertyTypes = {
598
+ ...this.propertyTypes,
599
+ volume: 'number',
600
+ isEstimate: 'boolean',
601
+ upperCI: 'number',
602
+ lowerCI: 'number',
603
+ };
604
+ }
605
+
606
+ makeEntity(data: BESSVolumeSchemaData): Entities.BESSVolume {
607
+ return new Entities.BESSVolume(data);
608
+ }
609
+ }
610
+
511
611
  export interface BundSchemaData extends SchemaBaseData {
512
612
  bundHeight: number;
513
613
  bundDiameter: number;
@@ -575,7 +675,10 @@ export class InstantaneousSchema extends SchemaBase<InstantaneousSchemaData> {
575
675
  }
576
676
  }
577
677
 
578
- export interface CatastrophicRuptureSchemaData extends SchemaBaseData {}
678
+ export interface CatastrophicRuptureSchemaData extends SchemaBaseData {
679
+ useVesselBurstPressure: boolean;
680
+ vesselBurstPressure: number;
681
+ }
579
682
 
580
683
  /**
581
684
  * ================================================================================
@@ -588,12 +691,19 @@ export class CatastrophicRuptureSchema extends SchemaBase<CatastrophicRuptureSch
588
691
  constructor() {
589
692
  super();
590
693
  this.schema = this.schema
591
- .concat(Joi.object())
694
+ .concat(
695
+ Joi.object({
696
+ useVesselBurstPressure: Joi.boolean(),
697
+ vesselBurstPressure: Joi.number().unsafe(),
698
+ }),
699
+ )
592
700
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
593
701
  .unknown(true);
594
702
 
595
703
  this.propertyTypes = {
596
704
  ...this.propertyTypes,
705
+ useVesselBurstPressure: 'boolean',
706
+ vesselBurstPressure: 'number',
597
707
  };
598
708
  }
599
709
 
@@ -648,7 +758,7 @@ export interface ConstantMaterialResultSchemaData extends SchemaBaseData {
648
758
  /**
649
759
  * ================================================================================
650
760
  * Class: ConstantMaterialResultSchema
651
- * Description: Constant material properties, i.e. critical pressure, temperature, molecular weight
761
+ * Description: Constant material properties, i.e. critical pressure, temperature, molecular weight.
652
762
  * ================================================================================
653
763
  */
654
764
  export class ConstantMaterialResultSchema extends SchemaBase<ConstantMaterialResultSchemaData> {
@@ -681,6 +791,7 @@ export class ConstantMaterialResultSchema extends SchemaBase<ConstantMaterialRes
681
791
 
682
792
  export interface DischargeParametersSchemaData extends SchemaBaseData {
683
793
  flashAtOrifice: Enums.FlashAtOrifice;
794
+ maxReleaseDuration: number;
684
795
  }
685
796
 
686
797
  /**
@@ -701,6 +812,7 @@ export class DischargeParametersSchema extends SchemaBase<DischargeParametersSch
701
812
  .filter((v) => typeof v === 'number')
702
813
  .sort(),
703
814
  ),
815
+ maxReleaseDuration: Joi.number().unsafe(),
704
816
  }),
705
817
  )
706
818
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -709,6 +821,7 @@ export class DischargeParametersSchema extends SchemaBase<DischargeParametersSch
709
821
  this.propertyTypes = {
710
822
  ...this.propertyTypes,
711
823
  flashAtOrifice: 'Enums.FlashAtOrifice',
824
+ maxReleaseDuration: 'number',
712
825
  };
713
826
  }
714
827
 
@@ -780,8 +893,8 @@ export interface DischargeResultSchemaData extends SchemaBaseData {
780
893
  releaseMass: number;
781
894
  height: number;
782
895
  angle: number;
783
- holeDiameter: number;
784
896
  releaseType: Enums.DynamicType;
897
+ holeDiameter: number;
785
898
  preDilutionAirRate: number;
786
899
  }
787
900
 
@@ -802,12 +915,12 @@ export class DischargeResultSchema extends SchemaBase<DischargeResultSchemaData>
802
915
  releaseMass: Joi.number().unsafe(),
803
916
  height: Joi.number().unsafe(),
804
917
  angle: Joi.number().unsafe(),
805
- holeDiameter: Joi.number().unsafe(),
806
918
  releaseType: Joi.string().valid(
807
919
  ...Object.values(Enums.DynamicType)
808
920
  .filter((v) => typeof v === 'number')
809
921
  .sort(),
810
922
  ),
923
+ holeDiameter: Joi.number().unsafe(),
811
924
  preDilutionAirRate: Joi.number().unsafe(),
812
925
  }),
813
926
  )
@@ -820,8 +933,8 @@ export class DischargeResultSchema extends SchemaBase<DischargeResultSchemaData>
820
933
  releaseMass: 'number',
821
934
  height: 'number',
822
935
  angle: 'number',
823
- holeDiameter: 'number',
824
936
  releaseType: 'Enums.DynamicType',
937
+ holeDiameter: 'number',
825
938
  preDilutionAirRate: 'number',
826
939
  };
827
940
  }
@@ -841,7 +954,6 @@ export interface DispersionOutputConfigSchemaData extends SchemaBaseData {
841
954
  crosswindDistance: number;
842
955
  contourType: Enums.ContourType;
843
956
  lflFractionValue: number;
844
- componentToTrackIndex: number;
845
957
  componentToTrackName: string;
846
958
  }
847
959
 
@@ -879,7 +991,6 @@ export class DispersionOutputConfigSchema extends SchemaBase<DispersionOutputCon
879
991
  .sort(),
880
992
  ),
881
993
  lflFractionValue: Joi.number().unsafe(),
882
- componentToTrackIndex: Joi.number().integer(),
883
994
  componentToTrackName: Joi.string().allow(''),
884
995
  }),
885
996
  )
@@ -897,7 +1008,6 @@ export class DispersionOutputConfigSchema extends SchemaBase<DispersionOutputCon
897
1008
  crosswindDistance: 'number',
898
1009
  contourType: 'Enums.ContourType',
899
1010
  lflFractionValue: 'number',
900
- componentToTrackIndex: 'number',
901
1011
  componentToTrackName: 'string',
902
1012
  };
903
1013
  }
@@ -918,6 +1028,10 @@ export interface DispersionParametersSchemaData extends SchemaBaseData {
918
1028
  numberOfPoolObservers: number;
919
1029
  averagingTime: number;
920
1030
  lflFractionToStop: number;
1031
+ maxReleaseDuration: number;
1032
+ releaseAveragingMethod: Enums.ReleaseAveragingMethod;
1033
+ firstTimeForBetweenTwoTimes: number;
1034
+ secondTimeForBetweenTwoTimes: number;
921
1035
  }
922
1036
 
923
1037
  /**
@@ -947,6 +1061,14 @@ export class DispersionParametersSchema extends SchemaBase<DispersionParametersS
947
1061
  numberOfPoolObservers: Joi.number().integer(),
948
1062
  averagingTime: Joi.number().unsafe(),
949
1063
  lflFractionToStop: Joi.number().unsafe(),
1064
+ maxReleaseDuration: Joi.number().unsafe(),
1065
+ releaseAveragingMethod: Joi.string().valid(
1066
+ ...Object.values(Enums.ReleaseAveragingMethod)
1067
+ .filter((v) => typeof v === 'number')
1068
+ .sort(),
1069
+ ),
1070
+ firstTimeForBetweenTwoTimes: Joi.number().unsafe(),
1071
+ secondTimeForBetweenTwoTimes: Joi.number().unsafe(),
950
1072
  }),
951
1073
  )
952
1074
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -964,6 +1086,10 @@ export class DispersionParametersSchema extends SchemaBase<DispersionParametersS
964
1086
  numberOfPoolObservers: 'number',
965
1087
  averagingTime: 'number',
966
1088
  lflFractionToStop: 'number',
1089
+ maxReleaseDuration: 'number',
1090
+ releaseAveragingMethod: 'Enums.ReleaseAveragingMethod',
1091
+ firstTimeForBetweenTwoTimes: 'number',
1092
+ secondTimeForBetweenTwoTimes: 'number',
967
1093
  };
968
1094
  }
969
1095
 
@@ -989,6 +1115,7 @@ export interface DispersionRecordSchemaData extends SchemaBaseData {
989
1115
  massConc: number;
990
1116
  velocity: number;
991
1117
  massFlow: number;
1118
+ instCon: Enums.DynamicType;
992
1119
  profileFlag: number;
993
1120
  elevFlag: number;
994
1121
  rhoCloud: number;
@@ -1001,7 +1128,6 @@ export interface DispersionRecordSchemaData extends SchemaBaseData {
1001
1128
  dropletHeight: number;
1002
1129
  dropletDistance: number;
1003
1130
  mass: number;
1004
- instCon: Enums.DynamicType;
1005
1131
  }
1006
1132
 
1007
1133
  /**
@@ -1033,6 +1159,11 @@ export class DispersionRecordSchema extends SchemaBase<DispersionRecordSchemaDat
1033
1159
  massConc: Joi.number().unsafe(),
1034
1160
  velocity: Joi.number().unsafe(),
1035
1161
  massFlow: Joi.number().unsafe(),
1162
+ instCon: Joi.string().valid(
1163
+ ...Object.values(Enums.DynamicType)
1164
+ .filter((v) => typeof v === 'number')
1165
+ .sort(),
1166
+ ),
1036
1167
  profileFlag: Joi.number().integer(),
1037
1168
  elevFlag: Joi.number().integer(),
1038
1169
  rhoCloud: Joi.number().unsafe(),
@@ -1045,11 +1176,6 @@ export class DispersionRecordSchema extends SchemaBase<DispersionRecordSchemaDat
1045
1176
  dropletHeight: Joi.number().unsafe(),
1046
1177
  dropletDistance: Joi.number().unsafe(),
1047
1178
  mass: Joi.number().unsafe(),
1048
- instCon: Joi.string().valid(
1049
- ...Object.values(Enums.DynamicType)
1050
- .filter((v) => typeof v === 'number')
1051
- .sort(),
1052
- ),
1053
1179
  }),
1054
1180
  )
1055
1181
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -1073,6 +1199,7 @@ export class DispersionRecordSchema extends SchemaBase<DispersionRecordSchemaDat
1073
1199
  massConc: 'number',
1074
1200
  velocity: 'number',
1075
1201
  massFlow: 'number',
1202
+ instCon: 'Enums.DynamicType',
1076
1203
  profileFlag: 'number',
1077
1204
  elevFlag: 'number',
1078
1205
  rhoCloud: 'number',
@@ -1085,7 +1212,6 @@ export class DispersionRecordSchema extends SchemaBase<DispersionRecordSchemaDat
1085
1212
  dropletHeight: 'number',
1086
1213
  dropletDistance: 'number',
1087
1214
  mass: 'number',
1088
- instCon: 'Enums.DynamicType',
1089
1215
  };
1090
1216
  }
1091
1217
 
@@ -1133,7 +1259,7 @@ export class ExplosionConfinedVolumeSchema extends SchemaBase<ExplosionConfinedV
1133
1259
 
1134
1260
  export interface ExplosionOutputConfigSchemaData extends SchemaBaseData {
1135
1261
  overpressureLevel: number;
1136
- meConfinedMethod: Enums.MEConfinedMethod;
1262
+ MEConfinedMethod: Enums.MEConfinedMethod;
1137
1263
  }
1138
1264
 
1139
1265
  /**
@@ -1150,7 +1276,7 @@ export class ExplosionOutputConfigSchema extends SchemaBase<ExplosionOutputConfi
1150
1276
  .concat(
1151
1277
  Joi.object({
1152
1278
  overpressureLevel: Joi.number().unsafe(),
1153
- meConfinedMethod: Joi.string().valid(
1279
+ MEConfinedMethod: Joi.string().valid(
1154
1280
  ...Object.values(Enums.MEConfinedMethod)
1155
1281
  .filter((v) => typeof v === 'number')
1156
1282
  .sort(),
@@ -1163,7 +1289,7 @@ export class ExplosionOutputConfigSchema extends SchemaBase<ExplosionOutputConfi
1163
1289
  this.propertyTypes = {
1164
1290
  ...this.propertyTypes,
1165
1291
  overpressureLevel: 'number',
1166
- meConfinedMethod: 'Enums.MEConfinedMethod',
1292
+ MEConfinedMethod: 'Enums.MEConfinedMethod',
1167
1293
  };
1168
1294
  }
1169
1295
 
@@ -1301,9 +1427,9 @@ export class FlameRecordSchema extends SchemaBase<FlameRecordSchemaData> {
1301
1427
  export interface FlameResultSchemaData extends SchemaBaseData {
1302
1428
  time: number;
1303
1429
  surfaceEmissivePower: number;
1430
+ fireType: Enums.FireType;
1304
1431
  flameLength: number;
1305
1432
  flameDiameter: number;
1306
- fireType: Enums.FireType;
1307
1433
  liftOffHeight: number;
1308
1434
  liftOffTime: number;
1309
1435
  }
@@ -1323,13 +1449,13 @@ export class FlameResultSchema extends SchemaBase<FlameResultSchemaData> {
1323
1449
  Joi.object({
1324
1450
  time: Joi.number().unsafe(),
1325
1451
  surfaceEmissivePower: Joi.number().unsafe(),
1326
- flameLength: Joi.number().unsafe(),
1327
- flameDiameter: Joi.number().unsafe(),
1328
1452
  fireType: Joi.string().valid(
1329
1453
  ...Object.values(Enums.FireType)
1330
1454
  .filter((v) => typeof v === 'number')
1331
1455
  .sort(),
1332
1456
  ),
1457
+ flameLength: Joi.number().unsafe(),
1458
+ flameDiameter: Joi.number().unsafe(),
1333
1459
  liftOffHeight: Joi.number().unsafe(),
1334
1460
  liftOffTime: Joi.number().unsafe(),
1335
1461
  }),
@@ -1341,9 +1467,9 @@ export class FlameResultSchema extends SchemaBase<FlameResultSchemaData> {
1341
1467
  ...this.propertyTypes,
1342
1468
  time: 'number',
1343
1469
  surfaceEmissivePower: 'number',
1470
+ fireType: 'Enums.FireType',
1344
1471
  flameLength: 'number',
1345
1472
  flameDiameter: 'number',
1346
- fireType: 'Enums.FireType',
1347
1473
  liftOffHeight: 'number',
1348
1474
  liftOffTime: 'number',
1349
1475
  };
@@ -1393,11 +1519,11 @@ export class TransectSchema extends SchemaBase<TransectSchemaData> {
1393
1519
 
1394
1520
  export interface FlammableOutputConfigSchemaData extends SchemaBaseData {
1395
1521
  position: Entities.LocalPosition;
1396
- transect: Entities.Transect;
1397
1522
  radiationType: Enums.RadiationType;
1398
1523
  contourType: Enums.ContourType;
1399
1524
  radiationLevel: number;
1400
1525
  radiationResolution: Enums.Resolution;
1526
+ transect: Entities.Transect;
1401
1527
  fixedOrientation: number;
1402
1528
  orientation: number;
1403
1529
  fixedInclination: number;
@@ -1418,7 +1544,6 @@ export class FlammableOutputConfigSchema extends SchemaBase<FlammableOutputConfi
1418
1544
  .concat(
1419
1545
  Joi.object({
1420
1546
  position: new LocalPositionSchema().schema,
1421
- transect: new TransectSchema().schema,
1422
1547
  radiationType: Joi.string().valid(
1423
1548
  ...Object.values(Enums.RadiationType)
1424
1549
  .filter((v) => typeof v === 'number')
@@ -1435,6 +1560,7 @@ export class FlammableOutputConfigSchema extends SchemaBase<FlammableOutputConfi
1435
1560
  .filter((v) => typeof v === 'number')
1436
1561
  .sort(),
1437
1562
  ),
1563
+ transect: new TransectSchema().schema,
1438
1564
  fixedOrientation: Joi.number().integer(),
1439
1565
  orientation: Joi.number().unsafe(),
1440
1566
  fixedInclination: Joi.number().integer(),
@@ -1447,11 +1573,11 @@ export class FlammableOutputConfigSchema extends SchemaBase<FlammableOutputConfi
1447
1573
  this.propertyTypes = {
1448
1574
  ...this.propertyTypes,
1449
1575
  position: 'LocalPosition',
1450
- transect: 'Transect',
1451
1576
  radiationType: 'Enums.RadiationType',
1452
1577
  contourType: 'Enums.ContourType',
1453
1578
  radiationLevel: 'number',
1454
1579
  radiationResolution: 'Enums.Resolution',
1580
+ transect: 'Transect',
1455
1581
  fixedOrientation: 'number',
1456
1582
  orientation: 'number',
1457
1583
  fixedInclination: 'number',
@@ -1527,13 +1653,13 @@ export interface FlashResultSchemaData extends SchemaBaseData {
1527
1653
  vapourEntropy: number;
1528
1654
  liquidEnthalpy: number;
1529
1655
  vapourEnthalpy: number;
1656
+ fluidPhase: Enums.Phase;
1530
1657
  bubblePointPressure: number;
1531
1658
  bubblePointTemperature: number;
1532
1659
  dewPointPressure: number;
1533
1660
  dewPointTemperature: number;
1534
1661
  totalFluidDensity: number;
1535
1662
  liquidMassFraction: number;
1536
- fluidPhase: Enums.Phase;
1537
1663
  }
1538
1664
 
1539
1665
  /**
@@ -1558,17 +1684,17 @@ export class FlashResultSchema extends SchemaBase<FlashResultSchemaData> {
1558
1684
  vapourEntropy: Joi.number().unsafe(),
1559
1685
  liquidEnthalpy: Joi.number().unsafe(),
1560
1686
  vapourEnthalpy: Joi.number().unsafe(),
1687
+ fluidPhase: Joi.string().valid(
1688
+ ...Object.values(Enums.Phase)
1689
+ .filter((v) => typeof v === 'number')
1690
+ .sort(),
1691
+ ),
1561
1692
  bubblePointPressure: Joi.number().unsafe(),
1562
1693
  bubblePointTemperature: Joi.number().unsafe(),
1563
1694
  dewPointPressure: Joi.number().unsafe(),
1564
1695
  dewPointTemperature: Joi.number().unsafe(),
1565
1696
  totalFluidDensity: Joi.number().unsafe(),
1566
1697
  liquidMassFraction: Joi.number().unsafe(),
1567
- fluidPhase: Joi.string().valid(
1568
- ...Object.values(Enums.Phase)
1569
- .filter((v) => typeof v === 'number')
1570
- .sort(),
1571
- ),
1572
1698
  }),
1573
1699
  )
1574
1700
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -1585,13 +1711,13 @@ export class FlashResultSchema extends SchemaBase<FlashResultSchemaData> {
1585
1711
  vapourEntropy: 'number',
1586
1712
  liquidEnthalpy: 'number',
1587
1713
  vapourEnthalpy: 'number',
1714
+ fluidPhase: 'Enums.Phase',
1588
1715
  bubblePointPressure: 'number',
1589
1716
  bubblePointTemperature: 'number',
1590
1717
  dewPointPressure: 'number',
1591
1718
  dewPointTemperature: 'number',
1592
1719
  totalFluidDensity: 'number',
1593
1720
  liquidMassFraction: 'number',
1594
- fluidPhase: 'Enums.Phase',
1595
1721
  };
1596
1722
  }
1597
1723
 
@@ -1601,9 +1727,9 @@ export class FlashResultSchema extends SchemaBase<FlashResultSchemaData> {
1601
1727
  }
1602
1728
 
1603
1729
  export interface LeakSchemaData extends SchemaBaseData {
1604
- holeDiameter: number;
1605
1730
  releaseAngle: number;
1606
1731
  timeVaryingOption: Enums.TimeVaryingOption;
1732
+ holeDiameter: number;
1607
1733
  holeHeightFraction: number;
1608
1734
  releaseElevation: number;
1609
1735
  }
@@ -1621,13 +1747,13 @@ export class LeakSchema extends SchemaBase<LeakSchemaData> {
1621
1747
  this.schema = this.schema
1622
1748
  .concat(
1623
1749
  Joi.object({
1624
- holeDiameter: Joi.number().unsafe(),
1625
1750
  releaseAngle: Joi.number().unsafe(),
1626
1751
  timeVaryingOption: Joi.string().valid(
1627
1752
  ...Object.values(Enums.TimeVaryingOption)
1628
1753
  .filter((v) => typeof v === 'number')
1629
1754
  .sort(),
1630
1755
  ),
1756
+ holeDiameter: Joi.number().unsafe(),
1631
1757
  holeHeightFraction: Joi.number().unsafe(),
1632
1758
  releaseElevation: Joi.number().unsafe(),
1633
1759
  }),
@@ -1637,9 +1763,9 @@ export class LeakSchema extends SchemaBase<LeakSchemaData> {
1637
1763
 
1638
1764
  this.propertyTypes = {
1639
1765
  ...this.propertyTypes,
1640
- holeDiameter: 'number',
1641
1766
  releaseAngle: 'number',
1642
1767
  timeVaryingOption: 'Enums.TimeVaryingOption',
1768
+ holeDiameter: 'number',
1643
1769
  holeHeightFraction: 'number',
1644
1770
  releaseElevation: 'number',
1645
1771
  };
@@ -1651,10 +1777,10 @@ export class LeakSchema extends SchemaBase<LeakSchemaData> {
1651
1777
  }
1652
1778
 
1653
1779
  export interface LineRuptureSchemaData extends SchemaBaseData {
1654
- pipeDiameter: number;
1655
- pipeLength: number;
1656
1780
  releaseAngle: number;
1657
1781
  timeVaryingOption: Enums.TimeVaryingOption;
1782
+ pipeDiameter: number;
1783
+ pipeLength: number;
1658
1784
  pipeRoughness: number;
1659
1785
  pipeHeightFraction: number;
1660
1786
  }
@@ -1672,14 +1798,14 @@ export class LineRuptureSchema extends SchemaBase<LineRuptureSchemaData> {
1672
1798
  this.schema = this.schema
1673
1799
  .concat(
1674
1800
  Joi.object({
1675
- pipeDiameter: Joi.number().unsafe(),
1676
- pipeLength: Joi.number().unsafe(),
1677
1801
  releaseAngle: Joi.number().unsafe(),
1678
1802
  timeVaryingOption: Joi.string().valid(
1679
1803
  ...Object.values(Enums.TimeVaryingOption)
1680
1804
  .filter((v) => typeof v === 'number')
1681
1805
  .sort(),
1682
1806
  ),
1807
+ pipeDiameter: Joi.number().unsafe(),
1808
+ pipeLength: Joi.number().unsafe(),
1683
1809
  pipeRoughness: Joi.number().unsafe(),
1684
1810
  pipeHeightFraction: Joi.number().unsafe(),
1685
1811
  }),
@@ -1689,10 +1815,10 @@ export class LineRuptureSchema extends SchemaBase<LineRuptureSchemaData> {
1689
1815
 
1690
1816
  this.propertyTypes = {
1691
1817
  ...this.propertyTypes,
1692
- pipeDiameter: 'number',
1693
- pipeLength: 'number',
1694
1818
  releaseAngle: 'number',
1695
1819
  timeVaryingOption: 'Enums.TimeVaryingOption',
1820
+ pipeDiameter: 'number',
1821
+ pipeLength: 'number',
1696
1822
  pipeRoughness: 'number',
1697
1823
  pipeHeightFraction: 'number',
1698
1824
  };
@@ -1704,11 +1830,11 @@ export class LineRuptureSchema extends SchemaBase<LineRuptureSchemaData> {
1704
1830
  }
1705
1831
 
1706
1832
  export interface MaterialComponentDataItemSchemaData extends SchemaBaseData {
1833
+ description: string;
1707
1834
  equationNumber: number;
1835
+ equationString: string;
1708
1836
  equationCoefficients: number[];
1709
1837
  calculationLimits: number[];
1710
- description: string;
1711
- equationString: string;
1712
1838
  supercriticalExtrapolation: number;
1713
1839
  fractionTc: number;
1714
1840
  }
@@ -1726,11 +1852,11 @@ export class MaterialComponentDataItemSchema extends SchemaBase<MaterialComponen
1726
1852
  this.schema = this.schema
1727
1853
  .concat(
1728
1854
  Joi.object({
1855
+ description: Joi.string().allow(''),
1729
1856
  equationNumber: Joi.number().integer(),
1857
+ equationString: Joi.string().allow(''),
1730
1858
  equationCoefficients: Joi.array().items(Joi.number().unsafe()).allow(null),
1731
1859
  calculationLimits: Joi.array().items(Joi.number().unsafe()).allow(null),
1732
- description: Joi.string().allow(''),
1733
- equationString: Joi.string().allow(''),
1734
1860
  supercriticalExtrapolation: Joi.number().unsafe(),
1735
1861
  fractionTc: Joi.number().unsafe(),
1736
1862
  }),
@@ -1740,11 +1866,11 @@ export class MaterialComponentDataItemSchema extends SchemaBase<MaterialComponen
1740
1866
 
1741
1867
  this.propertyTypes = {
1742
1868
  ...this.propertyTypes,
1869
+ description: 'string',
1743
1870
  equationNumber: 'number',
1871
+ equationString: 'string',
1744
1872
  equationCoefficients: 'number[]',
1745
1873
  calculationLimits: 'number[]',
1746
- description: 'string',
1747
- equationString: 'string',
1748
1874
  supercriticalExtrapolation: 'number',
1749
1875
  fractionTc: 'number',
1750
1876
  };
@@ -1756,10 +1882,10 @@ export class MaterialComponentDataItemSchema extends SchemaBase<MaterialComponen
1756
1882
  }
1757
1883
 
1758
1884
  export interface MaterialComponentDataSchemaData extends SchemaBaseData {
1885
+ name: string;
1759
1886
  dipprVersion: number;
1760
1887
  casId: number;
1761
1888
  dataItem: Entities.MaterialComponentDataItem[];
1762
- name: string;
1763
1889
  }
1764
1890
 
1765
1891
  /**
@@ -1775,10 +1901,10 @@ export class MaterialComponentDataSchema extends SchemaBase<MaterialComponentDat
1775
1901
  this.schema = this.schema
1776
1902
  .concat(
1777
1903
  Joi.object({
1904
+ name: Joi.string().allow(''),
1778
1905
  dipprVersion: Joi.number().integer(),
1779
1906
  casId: Joi.number().integer(),
1780
1907
  dataItem: Joi.array().items(new MaterialComponentDataItemSchema().schema).allow(null),
1781
- name: Joi.string().allow(''),
1782
1908
  }),
1783
1909
  )
1784
1910
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -1786,10 +1912,10 @@ export class MaterialComponentDataSchema extends SchemaBase<MaterialComponentDat
1786
1912
 
1787
1913
  this.propertyTypes = {
1788
1914
  ...this.propertyTypes,
1915
+ name: 'string',
1789
1916
  dipprVersion: 'number',
1790
1917
  casId: 'number',
1791
1918
  dataItem: 'MaterialComponentDataItem[]',
1792
- name: 'string',
1793
1919
  };
1794
1920
  }
1795
1921
 
@@ -1803,6 +1929,7 @@ export interface MixtureConstantPropertiesResultSchemaData extends SchemaBaseDat
1803
1929
  upperFlammabilityLimit: number;
1804
1930
  criticalPressure: number;
1805
1931
  criticalTemperature: number;
1932
+ flammableToxicFlag: Enums.FlammableToxic;
1806
1933
  flashPoint: number;
1807
1934
  heatCombustion: number;
1808
1935
  maximumBurnRate: number;
@@ -1810,11 +1937,10 @@ export interface MixtureConstantPropertiesResultSchemaData extends SchemaBaseDat
1810
1937
  molecularWeight: number;
1811
1938
  bubblePoint: number;
1812
1939
  poolFireBurnRateLength: number;
1940
+ luminousSmokyFlame: Enums.LuminousSmokyFlame;
1813
1941
  dewPoint: number;
1814
1942
  emissivePowerLengthScale: number;
1815
1943
  laminarBurningVelocity: number;
1816
- flammableToxicFlag: Enums.FlammableToxic;
1817
- luminousSmokyFlame: Enums.LuminousSmokyFlame;
1818
1944
  }
1819
1945
 
1820
1946
  /**
@@ -1834,6 +1960,11 @@ export class MixtureConstantPropertiesResultSchema extends SchemaBase<MixtureCon
1834
1960
  upperFlammabilityLimit: Joi.number().unsafe(),
1835
1961
  criticalPressure: Joi.number().unsafe(),
1836
1962
  criticalTemperature: Joi.number().unsafe(),
1963
+ flammableToxicFlag: Joi.string().valid(
1964
+ ...Object.values(Enums.FlammableToxic)
1965
+ .filter((v) => typeof v === 'number')
1966
+ .sort(),
1967
+ ),
1837
1968
  flashPoint: Joi.number().unsafe(),
1838
1969
  heatCombustion: Joi.number().unsafe(),
1839
1970
  maximumBurnRate: Joi.number().unsafe(),
@@ -1841,19 +1972,14 @@ export class MixtureConstantPropertiesResultSchema extends SchemaBase<MixtureCon
1841
1972
  molecularWeight: Joi.number().unsafe(),
1842
1973
  bubblePoint: Joi.number().unsafe(),
1843
1974
  poolFireBurnRateLength: Joi.number().unsafe(),
1844
- dewPoint: Joi.number().unsafe(),
1845
- emissivePowerLengthScale: Joi.number().unsafe(),
1846
- laminarBurningVelocity: Joi.number().unsafe(),
1847
- flammableToxicFlag: Joi.string().valid(
1848
- ...Object.values(Enums.FlammableToxic)
1849
- .filter((v) => typeof v === 'number')
1850
- .sort(),
1851
- ),
1852
1975
  luminousSmokyFlame: Joi.string().valid(
1853
1976
  ...Object.values(Enums.LuminousSmokyFlame)
1854
1977
  .filter((v) => typeof v === 'number')
1855
1978
  .sort(),
1856
1979
  ),
1980
+ dewPoint: Joi.number().unsafe(),
1981
+ emissivePowerLengthScale: Joi.number().unsafe(),
1982
+ laminarBurningVelocity: Joi.number().unsafe(),
1857
1983
  }),
1858
1984
  )
1859
1985
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -1865,6 +1991,7 @@ export class MixtureConstantPropertiesResultSchema extends SchemaBase<MixtureCon
1865
1991
  upperFlammabilityLimit: 'number',
1866
1992
  criticalPressure: 'number',
1867
1993
  criticalTemperature: 'number',
1994
+ flammableToxicFlag: 'Enums.FlammableToxic',
1868
1995
  flashPoint: 'number',
1869
1996
  heatCombustion: 'number',
1870
1997
  maximumBurnRate: 'number',
@@ -1872,11 +1999,10 @@ export class MixtureConstantPropertiesResultSchema extends SchemaBase<MixtureCon
1872
1999
  molecularWeight: 'number',
1873
2000
  bubblePoint: 'number',
1874
2001
  poolFireBurnRateLength: 'number',
2002
+ luminousSmokyFlame: 'Enums.LuminousSmokyFlame',
1875
2003
  dewPoint: 'number',
1876
2004
  emissivePowerLengthScale: 'number',
1877
2005
  laminarBurningVelocity: 'number',
1878
- flammableToxicFlag: 'Enums.FlammableToxic',
1879
- luminousSmokyFlame: 'Enums.LuminousSmokyFlame',
1880
2006
  };
1881
2007
  }
1882
2008
 
@@ -1890,9 +2016,9 @@ export interface PipeSchemaData extends SchemaBaseData {
1890
2016
  nodes: Entities.LocalPosition[];
1891
2017
  nodeCount: number;
1892
2018
  diameter: number;
2019
+ roughness: number;
1893
2020
  material: Entities.Material;
1894
2021
  state: Entities.State;
1895
- roughness: number;
1896
2022
  pumpedInflow: number;
1897
2023
  }
1898
2024
 
@@ -1913,9 +2039,9 @@ export class PipeSchema extends SchemaBase<PipeSchemaData> {
1913
2039
  nodes: Joi.array().items(new LocalPositionSchema().schema).allow(null),
1914
2040
  nodeCount: Joi.number().integer(),
1915
2041
  diameter: Joi.number().unsafe(),
2042
+ roughness: Joi.number().unsafe(),
1916
2043
  material: new MaterialSchema().schema,
1917
2044
  state: new StateSchema().schema,
1918
- roughness: Joi.number().unsafe(),
1919
2045
  pumpedInflow: Joi.number().unsafe(),
1920
2046
  }),
1921
2047
  )
@@ -1928,9 +2054,9 @@ export class PipeSchema extends SchemaBase<PipeSchemaData> {
1928
2054
  nodes: 'LocalPosition[]',
1929
2055
  nodeCount: 'number',
1930
2056
  diameter: 'number',
2057
+ roughness: 'number',
1931
2058
  material: 'Material',
1932
2059
  state: 'State',
1933
- roughness: 'number',
1934
2060
  pumpedInflow: 'number',
1935
2061
  };
1936
2062
  }
@@ -1941,10 +2067,12 @@ export class PipeSchema extends SchemaBase<PipeSchemaData> {
1941
2067
  }
1942
2068
 
1943
2069
  export interface PipeBreachSchemaData extends SchemaBaseData {
1944
- distanceDownstream: number;
1945
2070
  releaseAngle: number;
1946
2071
  timeVaryingOption: Enums.TimeVaryingOption;
2072
+ distanceDownstream: number;
1947
2073
  relativeAperture: number;
2074
+ holeDiameter: number;
2075
+ breachSizingMethod: Enums.BreachSizingMethod;
1948
2076
  }
1949
2077
 
1950
2078
  /**
@@ -1960,14 +2088,20 @@ export class PipeBreachSchema extends SchemaBase<PipeBreachSchemaData> {
1960
2088
  this.schema = this.schema
1961
2089
  .concat(
1962
2090
  Joi.object({
1963
- distanceDownstream: Joi.number().unsafe(),
1964
2091
  releaseAngle: Joi.number().unsafe(),
1965
2092
  timeVaryingOption: Joi.string().valid(
1966
2093
  ...Object.values(Enums.TimeVaryingOption)
1967
2094
  .filter((v) => typeof v === 'number')
1968
2095
  .sort(),
1969
2096
  ),
2097
+ distanceDownstream: Joi.number().unsafe(),
1970
2098
  relativeAperture: Joi.number().unsafe(),
2099
+ holeDiameter: Joi.number().unsafe(),
2100
+ breachSizingMethod: Joi.string().valid(
2101
+ ...Object.values(Enums.BreachSizingMethod)
2102
+ .filter((v) => typeof v === 'number')
2103
+ .sort(),
2104
+ ),
1971
2105
  }),
1972
2106
  )
1973
2107
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -1975,10 +2109,12 @@ export class PipeBreachSchema extends SchemaBase<PipeBreachSchemaData> {
1975
2109
 
1976
2110
  this.propertyTypes = {
1977
2111
  ...this.propertyTypes,
1978
- distanceDownstream: 'number',
1979
2112
  releaseAngle: 'number',
1980
2113
  timeVaryingOption: 'Enums.TimeVaryingOption',
2114
+ distanceDownstream: 'number',
1981
2115
  relativeAperture: 'number',
2116
+ holeDiameter: 'number',
2117
+ breachSizingMethod: 'Enums.BreachSizingMethod',
1982
2118
  };
1983
2119
  }
1984
2120
 
@@ -1990,13 +2126,13 @@ export class PipeBreachSchema extends SchemaBase<PipeBreachSchemaData> {
1990
2126
  export interface PoolFireFlameResultSchemaData extends SchemaBaseData {
1991
2127
  time: number;
1992
2128
  surfaceEmissivePower: number;
2129
+ fireType: Enums.FireType;
1993
2130
  flameLength: number;
1994
2131
  flameDiameter: number;
1995
- poolZoneSEP: number[];
1996
- poolCentre: number;
1997
- fireType: Enums.FireType;
1998
2132
  liftOffHeight: number;
1999
2133
  liftOffTime: number;
2134
+ poolZoneSEP: number[];
2135
+ poolCentre: number;
2000
2136
  }
2001
2137
 
2002
2138
  /**
@@ -2014,17 +2150,17 @@ export class PoolFireFlameResultSchema extends SchemaBase<PoolFireFlameResultSch
2014
2150
  Joi.object({
2015
2151
  time: Joi.number().unsafe(),
2016
2152
  surfaceEmissivePower: Joi.number().unsafe(),
2017
- flameLength: Joi.number().unsafe(),
2018
- flameDiameter: Joi.number().unsafe(),
2019
- poolZoneSEP: Joi.array().items(Joi.number().unsafe()).allow(null),
2020
- poolCentre: Joi.number().unsafe(),
2021
2153
  fireType: Joi.string().valid(
2022
2154
  ...Object.values(Enums.FireType)
2023
2155
  .filter((v) => typeof v === 'number')
2024
2156
  .sort(),
2025
2157
  ),
2158
+ flameLength: Joi.number().unsafe(),
2159
+ flameDiameter: Joi.number().unsafe(),
2026
2160
  liftOffHeight: Joi.number().unsafe(),
2027
2161
  liftOffTime: Joi.number().unsafe(),
2162
+ poolZoneSEP: Joi.array().items(Joi.number().unsafe()).allow(null),
2163
+ poolCentre: Joi.number().unsafe(),
2028
2164
  }),
2029
2165
  )
2030
2166
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2034,13 +2170,13 @@ export class PoolFireFlameResultSchema extends SchemaBase<PoolFireFlameResultSch
2034
2170
  ...this.propertyTypes,
2035
2171
  time: 'number',
2036
2172
  surfaceEmissivePower: 'number',
2173
+ fireType: 'Enums.FireType',
2037
2174
  flameLength: 'number',
2038
2175
  flameDiameter: 'number',
2039
- poolZoneSEP: 'number[]',
2040
- poolCentre: 'number',
2041
- fireType: 'Enums.FireType',
2042
2176
  liftOffHeight: 'number',
2043
2177
  liftOffTime: 'number',
2178
+ poolZoneSEP: 'number[]',
2179
+ poolCentre: 'number',
2044
2180
  };
2045
2181
  }
2046
2182
 
@@ -2128,7 +2264,7 @@ export interface PoolVapourisationParametersSchemaData extends SchemaBaseData {
2128
2264
  /**
2129
2265
  * ================================================================================
2130
2266
  * Class: PoolVapourisationParametersSchema
2131
- * Description: Pool vapourisation parameters
2267
+ * Description: Pool vapourisation parameters.
2132
2268
  * ================================================================================
2133
2269
  */
2134
2270
  export class PoolVapourisationParametersSchema extends SchemaBase<PoolVapourisationParametersSchemaData> {
@@ -2161,8 +2297,8 @@ export class PoolVapourisationParametersSchema extends SchemaBase<PoolVapourisat
2161
2297
 
2162
2298
  export interface RadiationRecordSchemaData extends SchemaBaseData {
2163
2299
  position: Entities.LocalPosition;
2164
- radiationResult: number;
2165
2300
  radiationType: Enums.RadiationType;
2301
+ radiationResult: number;
2166
2302
  }
2167
2303
 
2168
2304
  /**
@@ -2179,12 +2315,12 @@ export class RadiationRecordSchema extends SchemaBase<RadiationRecordSchemaData>
2179
2315
  .concat(
2180
2316
  Joi.object({
2181
2317
  position: new LocalPositionSchema().schema,
2182
- radiationResult: Joi.number().unsafe(),
2183
2318
  radiationType: Joi.string().valid(
2184
2319
  ...Object.values(Enums.RadiationType)
2185
2320
  .filter((v) => typeof v === 'number')
2186
2321
  .sort(),
2187
2322
  ),
2323
+ radiationResult: Joi.number().unsafe(),
2188
2324
  }),
2189
2325
  )
2190
2326
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2193,8 +2329,8 @@ export class RadiationRecordSchema extends SchemaBase<RadiationRecordSchemaData>
2193
2329
  this.propertyTypes = {
2194
2330
  ...this.propertyTypes,
2195
2331
  position: 'LocalPosition',
2196
- radiationResult: 'number',
2197
2332
  radiationType: 'Enums.RadiationType',
2333
+ radiationResult: 'number',
2198
2334
  };
2199
2335
  }
2200
2336
 
@@ -2204,11 +2340,11 @@ export class RadiationRecordSchema extends SchemaBase<RadiationRecordSchemaData>
2204
2340
  }
2205
2341
 
2206
2342
  export interface ReliefValveSchemaData extends SchemaBaseData {
2343
+ releaseAngle: number;
2344
+ timeVaryingOption: Enums.TimeVaryingOption;
2207
2345
  reliefValveConstrictionDiameter: number;
2208
2346
  pipeDiameter: number;
2209
2347
  pipeLength: number;
2210
- releaseAngle: number;
2211
- timeVaryingOption: Enums.TimeVaryingOption;
2212
2348
  pipeRoughness: number;
2213
2349
  pipeHeightFraction: number;
2214
2350
  }
@@ -2226,15 +2362,15 @@ export class ReliefValveSchema extends SchemaBase<ReliefValveSchemaData> {
2226
2362
  this.schema = this.schema
2227
2363
  .concat(
2228
2364
  Joi.object({
2229
- reliefValveConstrictionDiameter: Joi.number().unsafe(),
2230
- pipeDiameter: Joi.number().unsafe(),
2231
- pipeLength: Joi.number().unsafe(),
2232
2365
  releaseAngle: Joi.number().unsafe(),
2233
2366
  timeVaryingOption: Joi.string().valid(
2234
2367
  ...Object.values(Enums.TimeVaryingOption)
2235
2368
  .filter((v) => typeof v === 'number')
2236
2369
  .sort(),
2237
2370
  ),
2371
+ reliefValveConstrictionDiameter: Joi.number().unsafe(),
2372
+ pipeDiameter: Joi.number().unsafe(),
2373
+ pipeLength: Joi.number().unsafe(),
2238
2374
  pipeRoughness: Joi.number().unsafe(),
2239
2375
  pipeHeightFraction: Joi.number().unsafe(),
2240
2376
  }),
@@ -2244,11 +2380,11 @@ export class ReliefValveSchema extends SchemaBase<ReliefValveSchemaData> {
2244
2380
 
2245
2381
  this.propertyTypes = {
2246
2382
  ...this.propertyTypes,
2383
+ releaseAngle: 'number',
2384
+ timeVaryingOption: 'Enums.TimeVaryingOption',
2247
2385
  reliefValveConstrictionDiameter: 'number',
2248
2386
  pipeDiameter: 'number',
2249
2387
  pipeLength: 'number',
2250
- releaseAngle: 'number',
2251
- timeVaryingOption: 'Enums.TimeVaryingOption',
2252
2388
  pipeRoughness: 'number',
2253
2389
  pipeHeightFraction: 'number',
2254
2390
  };
@@ -2311,11 +2447,11 @@ export class SafetySystemSchema extends SchemaBase<SafetySystemSchemaData> {
2311
2447
  export interface ScalarUdmOutputsSchemaData extends SchemaBaseData {
2312
2448
  observerCount: number;
2313
2449
  recordCount: number;
2450
+ cloudType: Enums.DynamicType;
2314
2451
  minimumConcentration: number;
2315
2452
  windPower: number;
2316
2453
  frictionVelocity: number;
2317
2454
  dispersionReleaseDuration: number;
2318
- cloudType: Enums.DynamicType;
2319
2455
  }
2320
2456
 
2321
2457
  /**
@@ -2333,15 +2469,15 @@ export class ScalarUdmOutputsSchema extends SchemaBase<ScalarUdmOutputsSchemaDat
2333
2469
  Joi.object({
2334
2470
  observerCount: Joi.number().integer(),
2335
2471
  recordCount: Joi.number().integer(),
2336
- minimumConcentration: Joi.number().unsafe(),
2337
- windPower: Joi.number().unsafe(),
2338
- frictionVelocity: Joi.number().unsafe(),
2339
- dispersionReleaseDuration: Joi.number().unsafe(),
2340
2472
  cloudType: Joi.string().valid(
2341
2473
  ...Object.values(Enums.DynamicType)
2342
2474
  .filter((v) => typeof v === 'number')
2343
2475
  .sort(),
2344
2476
  ),
2477
+ minimumConcentration: Joi.number().unsafe(),
2478
+ windPower: Joi.number().unsafe(),
2479
+ frictionVelocity: Joi.number().unsafe(),
2480
+ dispersionReleaseDuration: Joi.number().unsafe(),
2345
2481
  }),
2346
2482
  )
2347
2483
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2351,11 +2487,11 @@ export class ScalarUdmOutputsSchema extends SchemaBase<ScalarUdmOutputsSchemaDat
2351
2487
  ...this.propertyTypes,
2352
2488
  observerCount: 'number',
2353
2489
  recordCount: 'number',
2490
+ cloudType: 'Enums.DynamicType',
2354
2491
  minimumConcentration: 'number',
2355
2492
  windPower: 'number',
2356
2493
  frictionVelocity: 'number',
2357
2494
  dispersionReleaseDuration: 'number',
2358
- cloudType: 'Enums.DynamicType',
2359
2495
  };
2360
2496
  }
2361
2497
 
@@ -2365,10 +2501,10 @@ export class ScalarUdmOutputsSchema extends SchemaBase<ScalarUdmOutputsSchemaDat
2365
2501
  }
2366
2502
 
2367
2503
  export interface ShortPipeRuptureSchemaData extends SchemaBaseData {
2368
- pipeLength: number;
2369
- pipeDiameter: number;
2370
2504
  releaseAngle: number;
2371
2505
  timeVaryingOption: Enums.TimeVaryingOption;
2506
+ pipeLength: number;
2507
+ pipeDiameter: number;
2372
2508
  pipeRoughness: number;
2373
2509
  pipeHeightFraction: number;
2374
2510
  }
@@ -2376,7 +2512,7 @@ export interface ShortPipeRuptureSchemaData extends SchemaBaseData {
2376
2512
  /**
2377
2513
  * ================================================================================
2378
2514
  * Class: ShortPipeRuptureSchema
2379
- * Description: Short pipe rupture scenario
2515
+ * Description: Short pipe rupture scenario.
2380
2516
  * ================================================================================
2381
2517
  */
2382
2518
  export class ShortPipeRuptureSchema extends SchemaBase<ShortPipeRuptureSchemaData> {
@@ -2386,14 +2522,14 @@ export class ShortPipeRuptureSchema extends SchemaBase<ShortPipeRuptureSchemaDat
2386
2522
  this.schema = this.schema
2387
2523
  .concat(
2388
2524
  Joi.object({
2389
- pipeLength: Joi.number().unsafe(),
2390
- pipeDiameter: Joi.number().unsafe(),
2391
2525
  releaseAngle: Joi.number().unsafe(),
2392
2526
  timeVaryingOption: Joi.string().valid(
2393
2527
  ...Object.values(Enums.TimeVaryingOption)
2394
2528
  .filter((v) => typeof v === 'number')
2395
2529
  .sort(),
2396
2530
  ),
2531
+ pipeLength: Joi.number().unsafe(),
2532
+ pipeDiameter: Joi.number().unsafe(),
2397
2533
  pipeRoughness: Joi.number().unsafe(),
2398
2534
  pipeHeightFraction: Joi.number().unsafe(),
2399
2535
  }),
@@ -2403,10 +2539,10 @@ export class ShortPipeRuptureSchema extends SchemaBase<ShortPipeRuptureSchemaDat
2403
2539
 
2404
2540
  this.propertyTypes = {
2405
2541
  ...this.propertyTypes,
2406
- pipeLength: 'number',
2407
- pipeDiameter: 'number',
2408
2542
  releaseAngle: 'number',
2409
2543
  timeVaryingOption: 'Enums.TimeVaryingOption',
2544
+ pipeLength: 'number',
2545
+ pipeDiameter: 'number',
2410
2546
  pipeRoughness: 'number',
2411
2547
  pipeHeightFraction: 'number',
2412
2548
  };
@@ -2455,10 +2591,10 @@ export class StructureSchema extends SchemaBase<StructureSchemaData> {
2455
2591
  }
2456
2592
 
2457
2593
  export interface SubstrateSchemaData extends SchemaBaseData {
2458
- bund: Entities.Bund;
2459
2594
  surfaceRoughness: number;
2460
2595
  surfaceType: Enums.SurfaceType;
2461
2596
  poolSurfaceType: Enums.PoolSurfaceType;
2597
+ bund: Entities.Bund;
2462
2598
  }
2463
2599
 
2464
2600
  /**
@@ -2474,7 +2610,6 @@ export class SubstrateSchema extends SchemaBase<SubstrateSchemaData> {
2474
2610
  this.schema = this.schema
2475
2611
  .concat(
2476
2612
  Joi.object({
2477
- bund: new BundSchema().schema,
2478
2613
  surfaceRoughness: Joi.number().unsafe(),
2479
2614
  surfaceType: Joi.string().valid(
2480
2615
  ...Object.values(Enums.SurfaceType)
@@ -2486,6 +2621,7 @@ export class SubstrateSchema extends SchemaBase<SubstrateSchemaData> {
2486
2621
  .filter((v) => typeof v === 'number')
2487
2622
  .sort(),
2488
2623
  ),
2624
+ bund: new BundSchema().schema,
2489
2625
  }),
2490
2626
  )
2491
2627
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2493,10 +2629,10 @@ export class SubstrateSchema extends SchemaBase<SubstrateSchemaData> {
2493
2629
 
2494
2630
  this.propertyTypes = {
2495
2631
  ...this.propertyTypes,
2496
- bund: 'Bund',
2497
2632
  surfaceRoughness: 'number',
2498
2633
  surfaceType: 'Enums.SurfaceType',
2499
2634
  poolSurfaceType: 'Enums.PoolSurfaceType',
2635
+ bund: 'Bund',
2500
2636
  };
2501
2637
  }
2502
2638
 
@@ -2507,8 +2643,8 @@ export class SubstrateSchema extends SchemaBase<SubstrateSchemaData> {
2507
2643
 
2508
2644
  export interface ToxicRecordSchemaData extends SchemaBaseData {
2509
2645
  position: Entities.LocalPosition;
2510
- toxicResult: number;
2511
2646
  toxicResultType: Enums.ToxicResultType;
2647
+ toxicResult: number;
2512
2648
  }
2513
2649
 
2514
2650
  /**
@@ -2525,12 +2661,12 @@ export class ToxicRecordSchema extends SchemaBase<ToxicRecordSchemaData> {
2525
2661
  .concat(
2526
2662
  Joi.object({
2527
2663
  position: new LocalPositionSchema().schema,
2528
- toxicResult: Joi.number().unsafe(),
2529
2664
  toxicResultType: Joi.string().valid(
2530
2665
  ...Object.values(Enums.ToxicResultType)
2531
2666
  .filter((v) => typeof v === 'number')
2532
2667
  .sort(),
2533
2668
  ),
2669
+ toxicResult: Joi.number().unsafe(),
2534
2670
  }),
2535
2671
  )
2536
2672
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2539,8 +2675,8 @@ export class ToxicRecordSchema extends SchemaBase<ToxicRecordSchemaData> {
2539
2675
  this.propertyTypes = {
2540
2676
  ...this.propertyTypes,
2541
2677
  position: 'LocalPosition',
2542
- toxicResult: 'number',
2543
2678
  toxicResultType: 'Enums.ToxicResultType',
2679
+ toxicResult: 'number',
2544
2680
  };
2545
2681
  }
2546
2682
 
@@ -2552,15 +2688,15 @@ export class ToxicRecordSchema extends SchemaBase<ToxicRecordSchemaData> {
2552
2688
  export interface VesselSchemaData extends SchemaBaseData {
2553
2689
  location: Entities.LocalPosition;
2554
2690
  state: Entities.State;
2555
- material: Entities.Material;
2556
- safetySystem: Entities.SafetySystem;
2557
2691
  diameter: number;
2558
2692
  height: number;
2559
2693
  length: number;
2560
2694
  width: number;
2561
2695
  shape: Enums.VesselShape;
2696
+ material: Entities.Material;
2562
2697
  vesselConditions: Enums.VesselConditions;
2563
2698
  liquidFillFractionByVolume: number;
2699
+ safetySystem: Entities.SafetySystem;
2564
2700
  }
2565
2701
 
2566
2702
  /**
@@ -2578,8 +2714,6 @@ export class VesselSchema extends SchemaBase<VesselSchemaData> {
2578
2714
  Joi.object({
2579
2715
  location: new LocalPositionSchema().schema,
2580
2716
  state: new StateSchema().schema,
2581
- material: new MaterialSchema().schema,
2582
- safetySystem: new SafetySystemSchema().schema,
2583
2717
  diameter: Joi.number().unsafe(),
2584
2718
  height: Joi.number().unsafe(),
2585
2719
  length: Joi.number().unsafe(),
@@ -2589,12 +2723,14 @@ export class VesselSchema extends SchemaBase<VesselSchemaData> {
2589
2723
  .filter((v) => typeof v === 'number')
2590
2724
  .sort(),
2591
2725
  ),
2726
+ material: new MaterialSchema().schema,
2592
2727
  vesselConditions: Joi.string().valid(
2593
2728
  ...Object.values(Enums.VesselConditions)
2594
2729
  .filter((v) => typeof v === 'number')
2595
2730
  .sort(),
2596
2731
  ),
2597
2732
  liquidFillFractionByVolume: Joi.number().unsafe(),
2733
+ safetySystem: new SafetySystemSchema().schema,
2598
2734
  }),
2599
2735
  )
2600
2736
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2604,15 +2740,15 @@ export class VesselSchema extends SchemaBase<VesselSchemaData> {
2604
2740
  ...this.propertyTypes,
2605
2741
  location: 'LocalPosition',
2606
2742
  state: 'State',
2607
- material: 'Material',
2608
- safetySystem: 'SafetySystem',
2609
2743
  diameter: 'number',
2610
2744
  height: 'number',
2611
2745
  length: 'number',
2612
2746
  width: 'number',
2613
2747
  shape: 'Enums.VesselShape',
2748
+ material: 'Material',
2614
2749
  vesselConditions: 'Enums.VesselConditions',
2615
2750
  liquidFillFractionByVolume: 'number',
2751
+ safetySystem: 'SafetySystem',
2616
2752
  };
2617
2753
  }
2618
2754
 
@@ -2624,10 +2760,10 @@ export class VesselSchema extends SchemaBase<VesselSchemaData> {
2624
2760
  export interface VesselLeakMaxFlammableCloudResultsSchemaData extends SchemaBaseData {
2625
2761
  dischargeRate: number;
2626
2762
  expandedTemperature: number;
2763
+ phase: Enums.Phase;
2627
2764
  lflExtent: number;
2628
2765
  lflArea: number;
2629
2766
  lflHeight: number;
2630
- phase: Enums.Phase;
2631
2767
  }
2632
2768
 
2633
2769
  /**
@@ -2645,14 +2781,14 @@ export class VesselLeakMaxFlammableCloudResultsSchema extends SchemaBase<VesselL
2645
2781
  Joi.object({
2646
2782
  dischargeRate: Joi.number().unsafe(),
2647
2783
  expandedTemperature: Joi.number().unsafe(),
2648
- lflExtent: Joi.number().unsafe(),
2649
- lflArea: Joi.number().unsafe(),
2650
- lflHeight: Joi.number().unsafe(),
2651
2784
  phase: Joi.string().valid(
2652
2785
  ...Object.values(Enums.Phase)
2653
2786
  .filter((v) => typeof v === 'number')
2654
2787
  .sort(),
2655
2788
  ),
2789
+ lflExtent: Joi.number().unsafe(),
2790
+ lflArea: Joi.number().unsafe(),
2791
+ lflHeight: Joi.number().unsafe(),
2656
2792
  }),
2657
2793
  )
2658
2794
  .pattern(ignoredPropertiesRegex, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.date(), Joi.any()))
@@ -2662,10 +2798,10 @@ export class VesselLeakMaxFlammableCloudResultsSchema extends SchemaBase<VesselL
2662
2798
  ...this.propertyTypes,
2663
2799
  dischargeRate: 'number',
2664
2800
  expandedTemperature: 'number',
2801
+ phase: 'Enums.Phase',
2665
2802
  lflExtent: 'number',
2666
2803
  lflArea: 'number',
2667
2804
  lflHeight: 'number',
2668
- phase: 'Enums.Phase',
2669
2805
  };
2670
2806
  }
2671
2807