Passed
Pull Request — master (#190)
by
unknown
10:22
created

CreateMeetingParameters::getModeratorPassword()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
/*
4
 * BigBlueButton open source conferencing system - https://www.bigbluebutton.org/.
5
 *
6
 * Copyright (c) 2016-2022 BigBlueButton Inc. and by respective authors (see below).
7
 *
8
 * This program is free software; you can redistribute it and/or modify it under the
9
 * terms of the GNU Lesser General Public License as published by the Free Software
10
 * Foundation; either version 3.0 of the License, or (at your option) any later
11
 * version.
12
 *
13
 * BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
14
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
15
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public License along
18
 * with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
19
 */
20
21
namespace BigBlueButton\Parameters;
22
23
/**
24
 * Class CreateMeetingParameters.
25
 */
26
class CreateMeetingParameters extends MetaParameters
27
{
28
    use DocumentableTrait;
29
30
    /**
31
     * @var string
32
     */
33
    private $meetingId;
34
35
    /**
36
     * @var string
37
     */
38
    private $meetingName;
39
40
    /**
41
     * @var string
42
     *
43
     * @deprecated
44
     */
45
    private $attendeePassword;
46
47
    /**
48
     * @var string
49
     *
50
     * @deprecated
51
     */
52
    private $moderatorPassword;
53
54
    /**
55
     * @var string
56
     */
57
    private $dialNumber;
58
59
    /**
60
     * @var int
61
     */
62
    private $voiceBridge;
63
64
    /**
65
     * @var string
66
     */
67
    private $webVoice;
68
69
    /**
70
     * @var string
71
     */
72
    private $logoutUrl;
73
74
    /**
75
     * @var int
76
     */
77
    private $maxParticipants;
78
79
    /**
80
     * @var bool
81
     */
82
    private $record;
83
84
    /**
85
     * @var bool
86
     */
87
    private $autoStartRecording;
88
89
    /**
90
     * @var bool
91
     */
92
    private $allowStartStopRecording;
93
94
    /**
95
     * @var int
96
     */
97
    private $duration;
98
99
    /**
100
     * @var string
101
     */
102
    private $welcomeMessage;
103
104
    /**
105
     * @var string
106
     */
107
    private $moderatorOnlyMessage;
108
109
    /**
110
     * @var bool
111
     */
112
    private $webcamsOnlyForModerator;
113
114
    /**
115
     * @var string
116
     */
117
    private $logo;
118
119
    /**
120
     * @var string
121
     */
122
    private $copyright;
123
124
    /**
125
     * @var bool
126
     */
127
    private $muteOnStart;
128
129
    /**
130
     * @var bool
131
     */
132
    private $lockSettingsDisableCam;
133
134
    /**
135
     * @var bool
136
     */
137
    private $lockSettingsDisableMic;
138
139
    /**
140
     * @var bool
141
     */
142
    private $lockSettingsDisablePrivateChat;
143
144
    /**
145
     * @var bool
146
     */
147
    private $lockSettingsDisablePublicChat;
148
149
    /**
150
     * @var bool
151
     */
152
    private $lockSettingsDisableNote;
153
154
    /**
155
     * @var bool
156
     */
157
    private $lockSettingsHideUserList;
158
159
    /**
160
     * @var bool
161
     */
162
    private $lockSettingsLockedLayout;
163
164
    /**
165
     * @var bool
166
     */
167
    private $lockSettingsLockOnJoin = true;
168
169
    /**
170
     * @var bool
171
     */
172
    private $lockSettingsLockOnJoinConfigurable;
173
174
    /**
175
     * @var bool
176
     */
177
    private $lockSettingsHideViewersCursor;
178
179
    /**
180
     * @var bool
181
     */
182
    private $allowModsToUnmuteUsers;
183
184
    /**
185
     * @var bool
186
     */
187
    private $allowModsToEjectCameras;
188
189
    /**
190
     * @var bool
191
     */
192
    private $allowRequestsWithoutSession;
193
194
    /**
195
     * @var bool
196
     */
197
    private $isBreakout;
198
199
    /**
200
     * @var string
201
     */
202
    private $parentMeetingId;
203
204
    /**
205
     * @var int
206
     */
207
    private $sequence;
208
209
    /**
210
     * @var bool
211
     */
212
    private $freeJoin;
213
214
    /**
215
     * @var string
216
     */
217
    private $guestPolicy;
218
219
    /**
220
     * @var string
221
     */
222
    private $bannerText;
223
224
    /**
225
     * @var string
226
     */
227
    private $bannerColor;
228
229
    /**
230
     * @deprecated
231
     *
232
     * @var bool
233
     */
234
    private $learningDashboardEnabled;
235
236
    /**
237
     * @deprecated
238
     *
239
     * @var bool
240
     */
241
    private $virtualBackgroundsDisabled;
242
243
    /**
244
     * @var int
245
     */
246
    private $learningDashboardCleanupDelayInMinutes;
247
248
    /**
249
     * @var int
250
     */
251
    private $endWhenNoModeratorDelayInMinutes;
252
253
    /**
254
     * @var bool
255
     */
256
    private $endWhenNoModerator;
257
258
    /**
259
     * @var bool
260
     */
261
    private $meetingKeepEvents;
262
263
    /**
264
     * @deprecated
265
     *
266
     * @var bool
267
     */
268
    private $breakoutRoomsEnabled;
269
270
    /**
271
     * @var bool
272
     */
273
    private $breakoutRoomsRecord;
274
275
    /**
276
     * @var bool
277
     */
278
    private $breakoutRoomsPrivateChatEnabled;
279
280
    /**
281
     * @var string
282
     */
283
    private $meetingEndedURL;
284
285
    /**
286
     * @var string
287
     */
288
    private $meetingLayout;
289
290
    /**
291
     * @var int
292
     */
293
    private $userCameraCap;
294
295
    /**
296
     * @var int
297
     */
298
    private $meetingCameraCap;
299
300
    /**
301
     * @var int
302
     */
303
    private $meetingExpireIfNoUserJoinedInMinutes;
304
305
    /**
306
     * @var int
307
     */
308
    private $meetingExpireWhenLastUserLeftInMinutes;
309
310
    /**
311
     * @var bool
312
     */
313
    private $preUploadedPresentationOverrideDefault;
314
315
    /**
316
     * @var array
317
     */
318
    private $disabledFeatures = [];
319
320
    /**
321
     * @var array
322
     */
323
    private $breakoutRoomsGroups = [];
324
    
325
    /**
326
     * @var bool
327
     */
328
    private $notifyRecordingIsOn;
329
    
330
    /**
331
     * @var string
332
     */
333
    private $uploadExternalUrl;
334
    
335
    /**
336
     * @var string
337
     */
338
    private $uploadExternalDescription;
339
340
    /**
341
     * CreateMeetingParameters constructor.
342
     *
343
     * @param $meetingId
344
     * @param $meetingName
345
     */
346
    public function __construct($meetingId, $meetingName)
347
    {
348
        $this->meetingId   = $meetingId;
349
        $this->meetingName = $meetingName;
350
    }
351
352
    /**
353
     * @return string
354
     */
355
    public function getMeetingId()
356
    {
357
        return $this->meetingId;
358
    }
359
360
    /**
361
     * @param string $meetingId
362
     *
363
     * @return CreateMeetingParameters
364
     */
365
    public function setMeetingId($meetingId)
366
    {
367
        $this->meetingId = $meetingId;
368
369
        return $this;
370
    }
371
372
    /**
373
     * @return string
374
     */
375
    public function getMeetingName()
376
    {
377
        return $this->meetingName;
378
    }
379
380
    /**
381
     * @param string $meetingName
382
     *
383
     * @return CreateMeetingParameters
384
     */
385
    public function setMeetingName($meetingName)
386
    {
387
        $this->meetingName = $meetingName;
388
389
        return $this;
390
    }
391
392
    /**
393
     * @return string
394
     *
395
     * @deprecated
396
     */
397
    public function getAttendeePassword()
398
    {
399
        return $this->attendeePassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

399
        return /** @scrutinizer ignore-deprecated */ $this->attendeePassword;
Loading history...
400
    }
401
402
    /**
403
     * @param string $attendeePassword
404
     *
405
     * @return CreateMeetingParameters
406
     *
407
     * @deprecated
408
     */
409
    public function setAttendeePassword($attendeePassword)
410
    {
411
        $this->attendeePassword = $attendeePassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

411
        /** @scrutinizer ignore-deprecated */ $this->attendeePassword = $attendeePassword;
Loading history...
412
413
        return $this;
414
    }
415
416
    /**
417
     * @return string
418
     *
419
     * @deprecated
420
     */
421
    public function getModeratorPassword()
422
    {
423
        return $this->moderatorPassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

423
        return /** @scrutinizer ignore-deprecated */ $this->moderatorPassword;
Loading history...
424
    }
425
426
    /**
427
     * @param string $moderatorPassword
428
     *
429
     * @return CreateMeetingParameters
430
     *
431
     * @deprecated
432
     */
433
    public function setModeratorPassword($moderatorPassword)
434
    {
435
        $this->moderatorPassword = $moderatorPassword;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

435
        /** @scrutinizer ignore-deprecated */ $this->moderatorPassword = $moderatorPassword;
Loading history...
436
437
        return $this;
438
    }
439
440
    /**
441
     * @return string
442
     */
443
    public function getDialNumber()
444
    {
445
        return $this->dialNumber;
446
    }
447
448
    /**
449
     * @param string $dialNumber
450
     *
451
     * @return CreateMeetingParameters
452
     */
453
    public function setDialNumber($dialNumber)
454
    {
455
        $this->dialNumber = $dialNumber;
456
457
        return $this;
458
    }
459
460
    /**
461
     * @return int
462
     */
463
    public function getVoiceBridge()
464
    {
465
        return $this->voiceBridge;
466
    }
467
468
    /**
469
     * @param int $voiceBridge
470
     *
471
     * @return CreateMeetingParameters
472
     */
473
    public function setVoiceBridge($voiceBridge)
474
    {
475
        $this->voiceBridge = $voiceBridge;
476
477
        return $this;
478
    }
479
480
    /**
481
     * @return string
482
     */
483
    public function getWebVoice()
484
    {
485
        return $this->webVoice;
486
    }
487
488
    /**
489
     * @param string $webVoice
490
     *
491
     * @return CreateMeetingParameters
492
     */
493
    public function setWebVoice($webVoice)
494
    {
495
        $this->webVoice = $webVoice;
496
497
        return $this;
498
    }
499
500
    /**
501
     * @return string
502
     */
503
    public function getLogoutUrl()
504
    {
505
        return $this->logoutUrl;
506
    }
507
508
    /**
509
     * @param string $logoutUrl
510
     *
511
     * @return CreateMeetingParameters
512
     */
513
    public function setLogoutUrl($logoutUrl)
514
    {
515
        $this->logoutUrl = $logoutUrl;
516
517
        return $this;
518
    }
519
520
    /**
521
     * @return int
522
     */
523
    public function getMaxParticipants()
524
    {
525
        return $this->maxParticipants;
526
    }
527
528
    /**
529
     * @param int $maxParticipants
530
     *
531
     * @return CreateMeetingParameters
532
     */
533
    public function setMaxParticipants($maxParticipants)
534
    {
535
        $this->maxParticipants = $maxParticipants;
536
537
        return $this;
538
    }
539
540
    /**
541
     * @return null|bool
542
     */
543
    public function isRecorded()
544
    {
545
        return $this->record;
546
    }
547
548
    /**
549
     * @param bool $record
550
     *
551
     * @return CreateMeetingParameters
552
     */
553
    public function setRecord($record)
554
    {
555
        $this->record = $record;
556
557
        return $this;
558
    }
559
560
    /**
561
     * @return null|bool
562
     */
563
    public function isAutoStartRecording()
564
    {
565
        return $this->autoStartRecording;
566
    }
567
568
    /**
569
     * @param bool $autoStartRecording
570
     *
571
     * @return CreateMeetingParameters
572
     */
573
    public function setAutoStartRecording($autoStartRecording)
574
    {
575
        $this->autoStartRecording = $autoStartRecording;
576
577
        return $this;
578
    }
579
580
    /**
581
     * @return null|bool
582
     */
583
    public function isAllowStartStopRecording()
584
    {
585
        return $this->allowStartStopRecording;
586
    }
587
588
    /**
589
     * @param bool $allowStartStopRecording
590
     *
591
     * @return CreateMeetingParameters
592
     */
593
    public function setAllowStartStopRecording($allowStartStopRecording)
594
    {
595
        $this->allowStartStopRecording = $allowStartStopRecording;
596
597
        return $this;
598
    }
599
600
    /**
601
     * @return int
602
     */
603
    public function getDuration()
604
    {
605
        return $this->duration;
606
    }
607
608
    /**
609
     * @param int $duration
610
     *
611
     * @return CreateMeetingParameters
612
     */
613
    public function setDuration($duration)
614
    {
615
        $this->duration = $duration;
616
617
        return $this;
618
    }
619
620
    /**
621
     * @return string
622
     */
623
    public function getWelcomeMessage()
624
    {
625
        return $this->welcomeMessage;
626
    }
627
628
    /**
629
     * @param string $welcomeMessage
630
     *
631
     * @return CreateMeetingParameters
632
     */
633
    public function setWelcomeMessage($welcomeMessage)
634
    {
635
        $this->welcomeMessage = $welcomeMessage;
636
637
        return $this;
638
    }
639
640
    /**
641
     * @return string
642
     */
643
    public function getModeratorOnlyMessage()
644
    {
645
        return $this->moderatorOnlyMessage;
646
    }
647
648
    /**
649
     * @param string $message
650
     *
651
     * @return CreateMeetingParameters
652
     */
653
    public function setModeratorOnlyMessage($message)
654
    {
655
        $this->moderatorOnlyMessage = $message;
656
657
        return $this;
658
    }
659
660
    /**
661
     * @return null|bool
662
     */
663
    public function isWebcamsOnlyForModerator()
664
    {
665
        return $this->webcamsOnlyForModerator;
666
    }
667
668
    /**
669
     * @param bool $webcamsOnlyForModerator
670
     *
671
     * @return CreateMeetingParameters
672
     */
673
    public function setWebcamsOnlyForModerator($webcamsOnlyForModerator)
674
    {
675
        $this->webcamsOnlyForModerator = $webcamsOnlyForModerator;
676
677
        return $this;
678
    }
679
680
    /**
681
     * @return string
682
     */
683
    public function getLogo()
684
    {
685
        return $this->logo;
686
    }
687
688
    /**
689
     * @param string $logo
690
     *
691
     * @return CreateMeetingParameters
692
     */
693
    public function setLogo($logo)
694
    {
695
        $this->logo = $logo;
696
697
        return $this;
698
    }
699
700
    /**
701
     * @return string
702
     */
703
    public function getBannerText()
704
    {
705
        return $this->bannerText;
706
    }
707
708
    /**
709
     * @param string $bannerText
710
     *
711
     * @return CreateMeetingParameters
712
     */
713
    public function setBannerText($bannerText)
714
    {
715
        $this->bannerText = $bannerText;
716
717
        return $this;
718
    }
719
720
    /**
721
     * @return string
722
     */
723
    public function getBannerColor()
724
    {
725
        return $this->bannerColor;
726
    }
727
728
    /**
729
     * @param string $bannerColor
730
     *
731
     * @return CreateMeetingParameters
732
     */
733
    public function setBannerColor($bannerColor)
734
    {
735
        $this->bannerColor = $bannerColor;
736
737
        return $this;
738
    }
739
740
    /**
741
     * @deprecated
742
     *
743
     * @return bool
744
     */
745
    public function isLearningDashboardEnabled()
746
    {
747
        return $this->learningDashboardEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

747
        return /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled;
Loading history...
748
    }
749
750
    /**
751
     * @param bool $learningDashboardEnabled
752
     *
753
     * @deprecated
754
     *
755
     * @return CreateMeetingParameters
756
     */
757
    public function setLearningDashboardEnabled($learningDashboardEnabled)
758
    {
759
        $this->learningDashboardEnabled = $learningDashboardEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

759
        /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled = $learningDashboardEnabled;
Loading history...
760
761
        return $this;
762
    }
763
764
    /**
765
     * @deprecated
766
     */
767
    public function isVirtualBackgroundsDisabled(): bool
768
    {
769
        return $this->virtualBackgroundsDisabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

769
        return /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled;
Loading history...
770
    }
771
772
    /**
773
     * @deprecated
774
     *
775
     * @param mixed $virtualBackgroundsDisabled
776
     */
777
    public function setVirtualBackgroundsDisabled($virtualBackgroundsDisabled)
778
    {
779
        $this->virtualBackgroundsDisabled = $virtualBackgroundsDisabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

779
        /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled = $virtualBackgroundsDisabled;
Loading history...
780
781
        return $this;
782
    }
783
784
    /**
785
     * @return int
786
     */
787
    public function getLearningDashboardCleanupDelayInMinutes()
788
    {
789
        return $this->learningDashboardCleanupDelayInMinutes;
790
    }
791
792
    /**
793
     * @param int $learningDashboardCleanupDelayInMinutes
794
     *
795
     * @return CreateMeetingParameters
796
     */
797
    public function setLearningDashboardCleanupDelayInMinutes($learningDashboardCleanupDelayInMinutes)
798
    {
799
        $this->learningDashboardCleanupDelayInMinutes = $learningDashboardCleanupDelayInMinutes;
800
801
        return $this;
802
    }
803
804
    /**
805
     * @return int
806
     */
807
    public function getEndWhenNoModeratorDelayInMinutes()
808
    {
809
        return $this->endWhenNoModeratorDelayInMinutes;
810
    }
811
812
    /**
813
     * @param int $endWhenNoModeratorDelayInMinutes
814
     *
815
     * @return CreateMeetingParameters
816
     */
817
    public function setEndWhenNoModeratorDelayInMinutes($endWhenNoModeratorDelayInMinutes)
818
    {
819
        $this->endWhenNoModeratorDelayInMinutes = $endWhenNoModeratorDelayInMinutes;
820
821
        return $this;
822
    }
823
824
    /**
825
     * @return bool
826
     */
827
    public function isEndWhenNoModerator()
828
    {
829
        return $this->endWhenNoModerator;
830
    }
831
832
    /**
833
     * @param bool $endWhenNoModerator
834
     *
835
     * @return CreateMeetingParameters
836
     */
837
    public function setEndWhenNoModerator($endWhenNoModerator)
838
    {
839
        $this->endWhenNoModerator = $endWhenNoModerator;
840
841
        return $this;
842
    }
843
844
    /**
845
     * @return bool
846
     */
847
    public function isMeetingKeepEvents()
848
    {
849
        return $this->meetingKeepEvents;
850
    }
851
852
    /**
853
     * @param bool $meetingKeepEvents
854
     *
855
     * @return CreateMeetingParameters
856
     */
857
    public function setMeetingKeepEvents($meetingKeepEvents)
858
    {
859
        $this->meetingKeepEvents = $meetingKeepEvents;
860
861
        return $this;
862
    }
863
864
    /**
865
     * @return string
866
     */
867
    public function getCopyright()
868
    {
869
        return $this->copyright;
870
    }
871
872
    /**
873
     * @param string $copyright
874
     *
875
     * @return CreateMeetingParameters
876
     */
877
    public function setCopyright($copyright)
878
    {
879
        $this->copyright = $copyright;
880
881
        return $this;
882
    }
883
884
    /**
885
     * @return null|bool
886
     */
887
    public function isMuteOnStart()
888
    {
889
        return $this->muteOnStart;
890
    }
891
892
    /**
893
     * @param bool $muteOnStart
894
     *
895
     * @return CreateMeetingParameters
896
     */
897
    public function setMuteOnStart($muteOnStart)
898
    {
899
        $this->muteOnStart = $muteOnStart;
900
901
        return $this;
902
    }
903
904
    /**
905
     * @return null|bool
906
     */
907
    public function isLockSettingsDisableCam()
908
    {
909
        return $this->lockSettingsDisableCam;
910
    }
911
912
    /**
913
     * @param bool $lockSettingsDisableCam
914
     *
915
     * @return CreateMeetingParameters
916
     */
917
    public function setLockSettingsDisableCam($lockSettingsDisableCam)
918
    {
919
        $this->lockSettingsDisableCam = $lockSettingsDisableCam;
920
921
        return $this;
922
    }
923
924
    /**
925
     * @return null|bool
926
     */
927
    public function isLockSettingsDisableMic()
928
    {
929
        return $this->lockSettingsDisableMic;
930
    }
931
932
    /**
933
     * @param bool $lockSettingsDisableMic
934
     *
935
     * @return CreateMeetingParameters
936
     */
937
    public function setLockSettingsDisableMic($lockSettingsDisableMic)
938
    {
939
        $this->lockSettingsDisableMic = $lockSettingsDisableMic;
940
941
        return $this;
942
    }
943
944
    /**
945
     * @return null|bool
946
     */
947
    public function isLockSettingsDisablePrivateChat()
948
    {
949
        return $this->lockSettingsDisablePrivateChat;
950
    }
951
952
    /**
953
     * @param bool $lockSettingsDisablePrivateChat
954
     *
955
     * @return CreateMeetingParameters
956
     */
957
    public function setLockSettingsDisablePrivateChat($lockSettingsDisablePrivateChat)
958
    {
959
        $this->lockSettingsDisablePrivateChat = $lockSettingsDisablePrivateChat;
960
961
        return $this;
962
    }
963
964
    /**
965
     * @return null|bool
966
     */
967
    public function isLockSettingsDisablePublicChat()
968
    {
969
        return $this->lockSettingsDisablePublicChat;
970
    }
971
972
    /**
973
     * @param bool $lockSettingsDisablePublicChat
974
     *
975
     * @return CreateMeetingParameters
976
     */
977
    public function setLockSettingsDisablePublicChat($lockSettingsDisablePublicChat)
978
    {
979
        $this->lockSettingsDisablePublicChat = $lockSettingsDisablePublicChat;
980
981
        return $this;
982
    }
983
984
    /**
985
     * @return null|bool
986
     */
987
    public function isLockSettingsDisableNote()
988
    {
989
        return $this->lockSettingsDisableNote;
990
    }
991
992
    /**
993
     * @param bool $lockSettingsDisableNote
994
     *
995
     * @return CreateMeetingParameters
996
     */
997
    public function setLockSettingsDisableNote($lockSettingsDisableNote)
998
    {
999
        $this->lockSettingsDisableNote = $lockSettingsDisableNote;
1000
1001
        return $this;
1002
    }
1003
1004
    /**
1005
     * @return null|bool
1006
     */
1007
    public function isLockSettingsHideUserList()
1008
    {
1009
        return $this->lockSettingsHideUserList;
1010
    }
1011
1012
    /**
1013
     * @param bool $lockSettingsHideUserList
1014
     *
1015
     * @return CreateMeetingParameters
1016
     */
1017
    public function setLockSettingsHideUserList($lockSettingsHideUserList)
1018
    {
1019
        $this->lockSettingsHideUserList = $lockSettingsHideUserList;
1020
1021
        return $this;
1022
    }
1023
1024
    /**
1025
     * @return null|bool
1026
     */
1027
    public function isLockSettingsLockedLayout()
1028
    {
1029
        return $this->lockSettingsLockedLayout;
1030
    }
1031
1032
    /**
1033
     * @param bool $lockSettingsLockedLayout
1034
     *
1035
     * @return CreateMeetingParameters
1036
     */
1037
    public function setLockSettingsLockedLayout($lockSettingsLockedLayout)
1038
    {
1039
        $this->lockSettingsLockedLayout = $lockSettingsLockedLayout;
1040
1041
        return $this;
1042
    }
1043
1044
    /**
1045
     * @return null|bool
1046
     */
1047
    public function isLockSettingsLockOnJoin()
1048
    {
1049
        return $this->lockSettingsLockOnJoin;
1050
    }
1051
1052
    /**
1053
     * @param bool $lockOnJoin
1054
     *
1055
     * @return CreateMeetingParameters
1056
     */
1057
    public function setLockSettingsLockOnJoin($lockOnJoin)
1058
    {
1059
        $this->lockSettingsLockOnJoin = $lockOnJoin;
1060
1061
        return $this;
1062
    }
1063
1064
    /**
1065
     * @return null|bool
1066
     */
1067
    public function isLockSettingsLockOnJoinConfigurable()
1068
    {
1069
        return $this->lockSettingsLockOnJoinConfigurable;
1070
    }
1071
1072
    /**
1073
     * @param bool $lockOnJoinConfigurable
1074
     *
1075
     * @return CreateMeetingParameters
1076
     */
1077
    public function setLockSettingsLockOnJoinConfigurable($lockOnJoinConfigurable)
1078
    {
1079
        $this->lockSettingsLockOnJoinConfigurable = $lockOnJoinConfigurable;
1080
1081
        return $this;
1082
    }
1083
1084
    public function isLockSettingsHideViewersCursor(): bool
1085
    {
1086
        return $this->lockSettingsHideViewersCursor;
1087
    }
1088
1089
    public function setLockSettingsHideViewersCursor(bool $lockSettingsHideViewersCursor)
1090
    {
1091
        $this->lockSettingsHideViewersCursor = $lockSettingsHideViewersCursor;
1092
1093
        return $this;
1094
    }
1095
1096
    /**
1097
     * @return null|bool
1098
     */
1099
    public function isAllowModsToUnmuteUsers()
1100
    {
1101
        return $this->allowModsToUnmuteUsers;
1102
    }
1103
1104
    /**
1105
     * @param bool $allowModsToUnmuteUsers
1106
     *
1107
     * @return CreateMeetingParameters
1108
     */
1109
    public function setAllowModsToUnmuteUsers($allowModsToUnmuteUsers)
1110
    {
1111
        $this->allowModsToUnmuteUsers = $allowModsToUnmuteUsers;
1112
1113
        return $this;
1114
    }
1115
1116
    public function isAllowModsToEjectCameras(): bool
1117
    {
1118
        return $this->allowModsToEjectCameras;
1119
    }
1120
1121
    /**
1122
     * @return CreateMeetingParameters
1123
     */
1124
    public function setAllowModsToEjectCameras(bool $allowModsToEjectCameras): self
1125
    {
1126
        $this->allowModsToEjectCameras = $allowModsToEjectCameras;
1127
1128
        return $this;
1129
    }
1130
1131
    /**
1132
     * @param $endCallbackUrl
1133
     *
1134
     * @return CreateMeetingParameters
1135
     */
1136
    public function setEndCallbackUrl($endCallbackUrl)
1137
    {
1138
        $this->addMeta('endCallbackUrl', $endCallbackUrl);
1139
1140
        return $this;
1141
    }
1142
1143
    /**
1144
     * @param $recordingReadyCallbackUrl
1145
     *
1146
     * @return CreateMeetingParameters
1147
     */
1148
    public function setRecordingReadyCallbackUrl($recordingReadyCallbackUrl)
1149
    {
1150
        $this->addMeta('bbb-recording-ready-url', $recordingReadyCallbackUrl);
1151
1152
        return $this;
1153
    }
1154
1155
    /**
1156
     * @return null|bool
1157
     */
1158
    public function isBreakout()
1159
    {
1160
        return $this->isBreakout;
1161
    }
1162
1163
    /**
1164
     * @param bool $isBreakout
1165
     *
1166
     * @return CreateMeetingParameters
1167
     */
1168
    public function setBreakout($isBreakout)
1169
    {
1170
        $this->isBreakout = $isBreakout;
1171
1172
        return $this;
1173
    }
1174
1175
    /**
1176
     * @return string
1177
     */
1178
    public function getParentMeetingId()
1179
    {
1180
        return $this->parentMeetingId;
1181
    }
1182
1183
    /**
1184
     * @param string $parentMeetingId
1185
     *
1186
     * @return CreateMeetingParameters
1187
     */
1188
    public function setParentMeetingId($parentMeetingId)
1189
    {
1190
        $this->parentMeetingId = $parentMeetingId;
1191
1192
        return $this;
1193
    }
1194
1195
    /**
1196
     * @return int
1197
     */
1198
    public function getSequence()
1199
    {
1200
        return $this->sequence;
1201
    }
1202
1203
    /**
1204
     * @param int $sequence
1205
     *
1206
     * @return CreateMeetingParameters
1207
     */
1208
    public function setSequence($sequence)
1209
    {
1210
        $this->sequence = $sequence;
1211
1212
        return $this;
1213
    }
1214
1215
    /**
1216
     * @return null|bool
1217
     */
1218
    public function isFreeJoin()
1219
    {
1220
        return $this->freeJoin;
1221
    }
1222
1223
    /**
1224
     * @param bool $freeJoin
1225
     *
1226
     * @return CreateMeetingParameters
1227
     */
1228
    public function setFreeJoin($freeJoin)
1229
    {
1230
        $this->freeJoin = $freeJoin;
1231
1232
        return $this;
1233
    }
1234
1235
    /**
1236
     * @return string
1237
     */
1238
    public function getGuestPolicy()
1239
    {
1240
        return $this->guestPolicy;
1241
    }
1242
1243
    /**
1244
     * @param bool $guestPolicy
1245
     *
1246
     * @return CreateMeetingParameters
1247
     */
1248
    public function setGuestPolicy($guestPolicy)
1249
    {
1250
        $this->guestPolicy = $guestPolicy;
0 ignored issues
show
Documentation Bug introduced by
The property $guestPolicy was declared of type string, but $guestPolicy is of type boolean. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
1251
1252
        return $this;
1253
    }
1254
1255
    /**
1256
     * @deprecated
1257
     */
1258
    public function isBreakoutRoomsEnabled(): bool
1259
    {
1260
        return $this->breakoutRoomsEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1260
        return /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled;
Loading history...
1261
    }
1262
1263
    /**
1264
     * @deprecated
1265
     *
1266
     * @param mixed $breakoutRoomsEnabled
1267
     *
1268
     * @return CreateMeetingParameters
1269
     */
1270
    public function setBreakoutRoomsEnabled($breakoutRoomsEnabled)
1271
    {
1272
        $this->breakoutRoomsEnabled = $breakoutRoomsEnabled;
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1272
        /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled = $breakoutRoomsEnabled;
Loading history...
1273
1274
        return $this;
1275
    }
1276
1277
    public function isBreakoutRoomsRecord(): bool
1278
    {
1279
        return $this->breakoutRoomsRecord;
1280
    }
1281
1282
    /**
1283
     * @param bool $breakoutRoomsRecord
1284
     *
1285
     * @return $this
1286
     */
1287
    public function setBreakoutRoomsRecord($breakoutRoomsRecord)
1288
    {
1289
        $this->breakoutRoomsRecord = $breakoutRoomsRecord;
1290
1291
        return $this;
1292
    }
1293
1294
    public function isBreakoutRoomsPrivateChatEnabled()
1295
    {
1296
        return $this->breakoutRoomsPrivateChatEnabled;
1297
    }
1298
1299
    /**
1300
     * @return CreateMeetingParameters
1301
     */
1302
    public function setBreakoutRoomsPrivateChatEnabled(bool $breakoutRoomsPrivateChatEnabled)
1303
    {
1304
        $this->breakoutRoomsPrivateChatEnabled = $breakoutRoomsPrivateChatEnabled;
1305
1306
        return $this;
1307
    }
1308
1309
    public function getMeetingEndedURL(): string
1310
    {
1311
        return $this->meetingEndedURL;
1312
    }
1313
1314
    /**
1315
     * @return CreateMeetingParameters
1316
     */
1317
    public function setMeetingEndedURL(string $meetingEndedURL)
1318
    {
1319
        $this->meetingEndedURL = $meetingEndedURL;
1320
1321
        return $this;
1322
    }
1323
1324
    /**
1325
     * @return string
1326
     */
1327
    public function getMeetingLayout()
1328
    {
1329
        return $this->meetingLayout;
1330
    }
1331
1332
    /**
1333
     * @return CreateMeetingParameters
1334
     */
1335
    public function setMeetingLayout(string $meetingLayout)
1336
    {
1337
        $this->meetingLayout = $meetingLayout;
1338
1339
        return $this;
1340
    }
1341
1342
    /**
1343
     * @return bool
1344
     */
1345
    public function isAllowRequestsWithoutSession()
1346
    {
1347
        return $this->allowRequestsWithoutSession;
1348
    }
1349
1350
    /**
1351
     * @param $allowRequestsWithoutSession
1352
     *
1353
     * @return $this
1354
     */
1355
    public function setAllowRequestsWithoutSession($allowRequestsWithoutSession)
1356
    {
1357
        $this->allowRequestsWithoutSession = $allowRequestsWithoutSession;
1358
1359
        return $this;
1360
    }
1361
1362
    /**
1363
     * @return int
1364
     */
1365
    public function getUserCameraCap()
1366
    {
1367
        return $this->userCameraCap;
1368
    }
1369
1370
    /**
1371
     * @param int $userCameraCap
1372
     *
1373
     * @return CreateMeetingParameters
1374
     */
1375
    public function setUserCameraCap($userCameraCap)
1376
    {
1377
        $this->userCameraCap = $userCameraCap;
1378
1379
        return $this;
1380
    }
1381
1382
    public function getMeetingCameraCap(): int
1383
    {
1384
        return $this->meetingCameraCap;
1385
    }
1386
1387
    public function setMeetingCameraCap(int $meetingCameraCap): CreateMeetingParameters
1388
    {
1389
        $this->meetingCameraCap = $meetingCameraCap;
1390
1391
        return $this;
1392
    }
1393
1394
    public function getMeetingExpireIfNoUserJoinedInMinutes(): int
1395
    {
1396
        return $this->meetingExpireIfNoUserJoinedInMinutes;
1397
    }
1398
1399
    public function setMeetingExpireIfNoUserJoinedInMinutes(int $meetingExpireIfNoUserJoinedInMinutes): CreateMeetingParameters
1400
    {
1401
        $this->meetingExpireIfNoUserJoinedInMinutes = $meetingExpireIfNoUserJoinedInMinutes;
1402
1403
        return $this;
1404
    }
1405
1406
    public function getMeetingExpireWhenLastUserLeftInMinutes(): int
1407
    {
1408
        return $this->meetingExpireWhenLastUserLeftInMinutes;
1409
    }
1410
1411
    public function setMeetingExpireWhenLastUserLeftInMinutes(int $meetingExpireWhenLastUserLeftInMinutes): CreateMeetingParameters
1412
    {
1413
        $this->meetingExpireWhenLastUserLeftInMinutes = $meetingExpireWhenLastUserLeftInMinutes;
1414
1415
        return $this;
1416
    }
1417
1418
    public function isPreUploadedPresentationOverrideDefault(): bool
1419
    {
1420
        return $this->preUploadedPresentationOverrideDefault;
1421
    }
1422
1423
    public function setPreUploadedPresentationOverrideDefault(bool $preUploadedPresentationOverrideDefault): CreateMeetingParameters
1424
    {
1425
        $this->preUploadedPresentationOverrideDefault = $preUploadedPresentationOverrideDefault;
1426
1427
        return $this;
1428
    }
1429
1430
    public function getDisabledFeatures(): array
1431
    {
1432
        return $this->disabledFeatures;
1433
    }
1434
1435
    public function setDisabledFeatures(array $disabledFeatures): CreateMeetingParameters
1436
    {
1437
        $this->disabledFeatures = $disabledFeatures;
1438
1439
        return $this;
1440
    }
1441
1442
    public function getBreakoutRoomsGroups(): array
1443
    {
1444
        return $this->breakoutRoomsGroups;
1445
    }
1446
1447
    /**
1448
     * @param $id
1449
     * @param $name
1450
     * @param $roster
1451
     *
1452
     * @return $this
1453
     */
1454
    public function addBreakoutRoomsGroup($id, $name, $roster)
1455
    {
1456
        $this->breakoutRoomsGroups[] = ['id' => $id, 'name' => $name, 'roster' => $roster];
1457
1458
        return $this;
1459
    }
1460
    
1461
    public function getNotifyRecordingIsOn(): bool
1462
    {
1463
        return $this->notifyRecordingIsOn;
1464
    }
1465
1466
    /**
1467
     * @param $notifyRecordingIsOn
1468
     *
1469
     * @return $this
1470
     */
1471
    public function setNotifyRecordingIsOn(bool $notifyRecordingIsOn): CreateMeetingParameters
1472
    {
1473
        $this->notifyRecordingIsOn = $notifyRecordingIsOn;
1474
1475
        return $this;
1476
    }
1477
    
1478
    public function getUploadExternalUrl(): string
1479
    {
1480
        return $this->uploadExternalUrl;
1481
    }
1482
1483
    /**
1484
     * @param $uploadExternalUrl
1485
     *
1486
     * @return $this
1487
     */
1488
    public function setUploadExternalUrl(string $uploadExternalUrl): CreateMeetingParameters
1489
    {
1490
        $this->uploadExternalUrl = $uploadExternalUrl;
1491
1492
        return $this;
1493
    }
1494
    
1495
    public function getUploadExternalDescription(): string
1496
    {
1497
        return $this->uploadExternalDescription;
1498
    }
1499
1500
    /**
1501
     * @param $uploadExternalDescription
1502
     *
1503
     * @return $this
1504
     */
1505
    public function setUploadExternalDescription(string $uploadExternalDescription): CreateMeetingParameters
1506
    {
1507
        $this->uploadExternalDescription = $uploadExternalDescription;
1508
1509
        return $this;
1510
    }
1511
1512
    /**
1513
     * @return string
1514
     */
1515
    public function getHTTPQuery()
1516
    {
1517
        $queries = [
1518
            'name'                                   => $this->meetingName,
1519
            'meetingID'                              => $this->meetingId,
1520
            'attendeePW'                             => $this->attendeePassword,
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ters::$attendeePassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1520
            'attendeePW'                             => /** @scrutinizer ignore-deprecated */ $this->attendeePassword,
Loading history...
1521
            'moderatorPW'                            => $this->moderatorPassword,
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...ers::$moderatorPassword has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1521
            'moderatorPW'                            => /** @scrutinizer ignore-deprecated */ $this->moderatorPassword,
Loading history...
1522
            'dialNumber'                             => $this->dialNumber,
1523
            'voiceBridge'                            => $this->voiceBridge,
1524
            'webVoice'                               => $this->webVoice,
1525
            'logoutURL'                              => $this->logoutUrl,
1526
            'record'                                 => $this->record ? 'true' : 'false',
1527
            'duration'                               => $this->duration,
1528
            'maxParticipants'                        => $this->maxParticipants,
1529
            'autoStartRecording'                     => $this->autoStartRecording ? 'true' : 'false',
1530
            'allowStartStopRecording'                => $this->allowStartStopRecording ? 'true' : 'false',
1531
            'welcome'                                => trim($this->welcomeMessage),
1532
            'moderatorOnlyMessage'                   => trim($this->moderatorOnlyMessage),
1533
            'webcamsOnlyForModerator'                => $this->webcamsOnlyForModerator ? 'true' : 'false',
1534
            'logo'                                   => $this->logo,
1535
            'copyright'                              => $this->copyright,
1536
            'muteOnStart'                            => $this->muteOnStart ? 'true' : 'false',
1537
            'guestPolicy'                            => $this->guestPolicy,
1538
            'lockSettingsDisableCam'                 => $this->lockSettingsDisableCam ? 'true' : 'false',
1539
            'lockSettingsDisableMic'                 => $this->lockSettingsDisableMic ? 'true' : 'false',
1540
            'lockSettingsDisablePrivateChat'         => $this->lockSettingsDisablePrivateChat ? 'true' : 'false',
1541
            'lockSettingsDisablePublicChat'          => $this->lockSettingsDisablePublicChat ? 'true' : 'false',
1542
            'lockSettingsDisableNote'                => $this->lockSettingsDisableNote ? 'true' : 'false',
1543
            'lockSettingsHideUserList'               => $this->lockSettingsHideUserList ? 'true' : 'false',
1544
            'lockSettingsLockedLayout'               => $this->lockSettingsLockedLayout ? 'true' : 'false',
1545
            'lockSettingsLockOnJoin'                 => $this->lockSettingsLockOnJoin ? 'true' : 'false',
1546
            'lockSettingsLockOnJoinConfigurable'     => $this->lockSettingsLockOnJoinConfigurable ? 'true' : 'false',
1547
            'lockSettingsHideViewersCursor'          => $this->lockSettingsHideViewersCursor ? 'true' : 'false',
1548
            'allowModsToUnmuteUsers'                 => $this->allowModsToUnmuteUsers ? 'true' : 'false',
1549
            'allowModsToEjectCameras'                => $this->allowModsToEjectCameras ? 'true' : 'false',
1550
            'bannerText'                             => trim($this->bannerText),
1551
            'bannerColor'                            => trim($this->bannerColor),
1552
            'learningDashboardEnabled'               => $this->learningDashboardEnabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...earningDashboardEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1552
            'learningDashboardEnabled'               => /** @scrutinizer ignore-deprecated */ $this->learningDashboardEnabled ? 'true' : 'false',
Loading history...
1553
            'virtualBackgroundsDisabled'             => $this->virtualBackgroundsDisabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...tualBackgroundsDisabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1553
            'virtualBackgroundsDisabled'             => /** @scrutinizer ignore-deprecated */ $this->virtualBackgroundsDisabled ? 'true' : 'false',
Loading history...
1554
            'endWhenNoModeratorDelayInMinutes'       => $this->endWhenNoModeratorDelayInMinutes,
1555
            'allowRequestsWithoutSession'            => $this->allowRequestsWithoutSession ? 'true' : 'false',
1556
            'meetingEndedURL'                        => $this->meetingEndedURL,
1557
            'breakoutRoomsEnabled'                   => $this->breakoutRoomsEnabled ? 'true' : 'false',
0 ignored issues
show
Deprecated Code introduced by
The property BigBlueButton\Parameters...::$breakoutRoomsEnabled has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

1557
            'breakoutRoomsEnabled'                   => /** @scrutinizer ignore-deprecated */ $this->breakoutRoomsEnabled ? 'true' : 'false',
Loading history...
1558
            'breakoutRoomsRecord'                    => $this->breakoutRoomsRecord ? 'true' : 'false',
1559
            'breakoutRoomsPrivateChatEnabled'        => $this->breakoutRoomsPrivateChatEnabled ? 'true' : 'false',
1560
            'endWhenNoModerator'                     => $this->endWhenNoModerator ? 'true' : 'false',
1561
            'meetingKeepEvents'                      => $this->meetingKeepEvents ? 'true' : 'false',
1562
            'meetingLayout'                          => $this->meetingLayout,
1563
            'meetingCameraCap'                       => $this->meetingCameraCap,
1564
            'meetingExpireIfNoUserJoinedInMinutes'   => $this->meetingExpireIfNoUserJoinedInMinutes,
1565
            'meetingExpireWhenLastUserLeftInMinutes' => $this->meetingExpireWhenLastUserLeftInMinutes,
1566
            'preUploadedPresentationOverrideDefault' => $this->preUploadedPresentationOverrideDefault,
1567
            'disabledFeatures'                       => join(',', $this->disabledFeatures),
1568
            'notifyRecordingIsOn'                    => $this->notifyRecordingIsOn ? 'true' : 'false',
1569
            'uploadExternalUrl'                      => $this->uploadExternalUrl,
1570
            'uploadExternalDescription'              => $this->uploadExternalDescription,
1571
        ];
1572
1573
        // Add breakout rooms parameters only if the meeting is a breakout room
1574
        if ($this->isBreakout()) {
1575
            $queries = array_merge($queries, [
1576
                'isBreakout'      => $this->isBreakout ? 'true' : 'false',
1577
                'parentMeetingID' => $this->parentMeetingId,
1578
                'sequence'        => $this->sequence,
1579
                'freeJoin'        => $this->freeJoin ? 'true' : 'false',
1580
            ]);
1581
        } else {
1582
            $queries = array_merge($queries, [
1583
                'learningDashboardCleanupDelayInMinutes' => $this->learningDashboardCleanupDelayInMinutes,
1584
            ]);
1585
1586
            // Pre-defined groups to automatically assign the students to a given breakout room
1587
            if (!empty($this->breakoutRoomsGroups)) {
1588
                $queries = array_merge($queries, [
1589
                    'groups' => json_encode($this->breakoutRoomsGroups),
1590
                ]);
1591
            }
1592
        }
1593
1594
        $this->buildMeta($queries);
1595
1596
        return $this->buildHTTPQuery($queries);
1597
    }
1598
}
1599