summaryrefslogblamecommitdiffstats
path: root/vendor/github.com/yaegashi/msgraph.go/beta/ModelIOS.go
blob: f2158af4c455b5fa1263daeb94b2b825b91cfedb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
                                                








































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                 
// Code generated by msgraph.go/gen DO NOT EDIT.

package msgraph

import "time"

// IOSBookmark undocumented
type IOSBookmark struct {
	// Object is the base model of IOSBookmark
	Object
	// URL URL allowed to access
	URL *string `json:"url,omitempty"`
	// BookmarkFolder The folder into which the bookmark should be added in Safari
	BookmarkFolder *string `json:"bookmarkFolder,omitempty"`
	// DisplayName The display name of the bookmark
	DisplayName *string `json:"displayName,omitempty"`
}

// IOSCertificateProfile Device Configuration.
type IOSCertificateProfile struct {
	// DeviceConfiguration is the base model of IOSCertificateProfile
	DeviceConfiguration
}

// IOSCertificateProfileBase iOS certificate profile base.
type IOSCertificateProfileBase struct {
	// IOSCertificateProfile is the base model of IOSCertificateProfileBase
	IOSCertificateProfile
	// RenewalThresholdPercentage Certificate renewal threshold percentage. Valid values 1 to 99
	RenewalThresholdPercentage *int `json:"renewalThresholdPercentage,omitempty"`
	// SubjectNameFormat Certificate Subject Name Format.
	SubjectNameFormat *AppleSubjectNameFormat `json:"subjectNameFormat,omitempty"`
	// SubjectAlternativeNameType Certificate Subject Alternative Name type.
	SubjectAlternativeNameType *SubjectAlternativeNameType `json:"subjectAlternativeNameType,omitempty"`
	// CertificateValidityPeriodValue Value for the Certificate Validity Period.
	CertificateValidityPeriodValue *int `json:"certificateValidityPeriodValue,omitempty"`
	// CertificateValidityPeriodScale Scale for the Certificate Validity Period.
	CertificateValidityPeriodScale *CertificateValidityPeriodScale `json:"certificateValidityPeriodScale,omitempty"`
}

// IOSCompliancePolicy This class contains compliance settings for IOS.
type IOSCompliancePolicy struct {
	// DeviceCompliancePolicy is the base model of IOSCompliancePolicy
	DeviceCompliancePolicy
	// PasscodeBlockSimple Indicates whether or not to block simple passcodes.
	PasscodeBlockSimple *bool `json:"passcodeBlockSimple,omitempty"`
	// PasscodeExpirationDays Number of days before the passcode expires. Valid values 1 to 65535
	PasscodeExpirationDays *int `json:"passcodeExpirationDays,omitempty"`
	// PasscodeMinimumLength Minimum length of passcode. Valid values 4 to 14
	PasscodeMinimumLength *int `json:"passcodeMinimumLength,omitempty"`
	// PasscodeMinutesOfInactivityBeforeLock Minutes of inactivity before a passcode is required.
	PasscodeMinutesOfInactivityBeforeLock *int `json:"passcodeMinutesOfInactivityBeforeLock,omitempty"`
	// PasscodeMinutesOfInactivityBeforeScreenTimeout Minutes of inactivity before the screen times out.
	PasscodeMinutesOfInactivityBeforeScreenTimeout *int `json:"passcodeMinutesOfInactivityBeforeScreenTimeout,omitempty"`
	// PasscodePreviousPasscodeBlockCount Number of previous passcodes to block. Valid values 1 to 24
	PasscodePreviousPasscodeBlockCount *int `json:"passcodePreviousPasscodeBlockCount,omitempty"`
	// PasscodeMinimumCharacterSetCount The number of character sets required in the password.
	PasscodeMinimumCharacterSetCount *int `json:"passcodeMinimumCharacterSetCount,omitempty"`
	// PasscodeRequiredType The required passcode type.
	PasscodeRequiredType *RequiredPasswordType `json:"passcodeRequiredType,omitempty"`
	// PasscodeRequired Indicates whether or not to require a passcode.
	PasscodeRequired *bool `json:"passcodeRequired,omitempty"`
	// OsMinimumVersion Minimum IOS version.
	OsMinimumVersion *string `json:"osMinimumVersion,omitempty"`
	// OsMaximumVersion Maximum IOS version.
	OsMaximumVersion *string `json:"osMaximumVersion,omitempty"`
	// OsMinimumBuildVersion Minimum IOS build version.
	OsMinimumBuildVersion *string `json:"osMinimumBuildVersion,omitempty"`
	// OsMaximumBuildVersion Maximum IOS build version.
	OsMaximumBuildVersion *string `json:"osMaximumBuildVersion,omitempty"`
	// SecurityBlockJailbrokenDevices Devices must not be jailbroken or rooted.
	SecurityBlockJailbrokenDevices *bool `json:"securityBlockJailbrokenDevices,omitempty"`
	// DeviceThreatProtectionEnabled Require that devices have enabled device threat protection .
	DeviceThreatProtectionEnabled *bool `json:"deviceThreatProtectionEnabled,omitempty"`
	// DeviceThreatProtectionRequiredSecurityLevel Require Mobile Threat Protection minimum risk level to report noncompliance.
	DeviceThreatProtectionRequiredSecurityLevel *DeviceThreatProtectionLevel `json:"deviceThreatProtectionRequiredSecurityLevel,omitempty"`
	// ManagedEmailProfileRequired Indicates whether or not to require a managed email profile.
	ManagedEmailProfileRequired *bool `json:"managedEmailProfileRequired,omitempty"`
	// RestrictedApps Require the device to not have the specified apps installed. This collection can contain a maximum of 100 elements.
	RestrictedApps []AppListItem `json:"restrictedApps,omitempty"`
}

// IOSCustomConfiguration This topic provides descriptions of the declared methods, properties and relationships exposed by the iosCustomConfiguration resource.
type IOSCustomConfiguration struct {
	// DeviceConfiguration is the base model of IOSCustomConfiguration
	DeviceConfiguration
	// PayloadName Name that is displayed to the user.
	PayloadName *string `json:"payloadName,omitempty"`
	// PayloadFileName Payload file name (*.mobileconfig | *.xml).
	PayloadFileName *string `json:"payloadFileName,omitempty"`
	// Payload Payload. (UTF8 encoded byte array)
	Payload *Binary `json:"payload,omitempty"`
}

// IOSDerivedCredentialAuthenticationConfiguration iOS Derived Credential profile.
type IOSDerivedCredentialAuthenticationConfiguration struct {
	// DeviceConfiguration is the base model of IOSDerivedCredentialAuthenticationConfiguration
	DeviceConfiguration
	// DerivedCredentialSettings undocumented
	DerivedCredentialSettings *DeviceManagementDerivedCredentialSettings `json:"derivedCredentialSettings,omitempty"`
}

// IOSDeviceFeaturesConfiguration iOS Device Features Configuration Profile.
type IOSDeviceFeaturesConfiguration struct {
	// AppleDeviceFeaturesConfigurationBase is the base model of IOSDeviceFeaturesConfiguration
	AppleDeviceFeaturesConfigurationBase
	// AssetTagTemplate Asset tag information for the device, displayed on the login window and lock screen.
	AssetTagTemplate *string `json:"assetTagTemplate,omitempty"`
	// ContentFilterSettings Gets or sets iOS Web Content Filter settings, supervised mode only
	ContentFilterSettings *IOSWebContentFilterBase `json:"contentFilterSettings,omitempty"`
	// LockScreenFootnote A footnote displayed on the login window and lock screen. Available in iOS 9.3.1 and later.
	LockScreenFootnote *string `json:"lockScreenFootnote,omitempty"`
	// HomeScreenDockIcons A list of app and folders to appear on the Home Screen Dock. This collection can contain a maximum of 500 elements.
	HomeScreenDockIcons []IOSHomeScreenItem `json:"homeScreenDockIcons,omitempty"`
	// HomeScreenPages A list of pages on the Home Screen. This collection can contain a maximum of 500 elements.
	HomeScreenPages []IOSHomeScreenPage `json:"homeScreenPages,omitempty"`
	// NotificationSettings Notification settings for each bundle id. Applicable to devices in supervised mode only (iOS 9.3 and later). This collection can contain a maximum of 500 elements.
	NotificationSettings []IOSNotificationSettings `json:"notificationSettings,omitempty"`
	// SingleSignOnSettings The Kerberos login settings that enable apps on receiving devices to authenticate smoothly.
	SingleSignOnSettings *IOSSingleSignOnSettings `json:"singleSignOnSettings,omitempty"`
	// WallpaperDisplayLocation A wallpaper display location specifier.
	WallpaperDisplayLocation *IOSWallpaperDisplayLocation `json:"wallpaperDisplayLocation,omitempty"`
	// WallpaperImage A wallpaper image must be in either PNG or JPEG format. It requires a supervised device with iOS 8 or later version.
	WallpaperImage *MimeContent `json:"wallpaperImage,omitempty"`
	// SingleSignOnExtension Gets or sets a single sign-on extension profile.
	SingleSignOnExtension *SingleSignOnExtension `json:"singleSignOnExtension,omitempty"`
	// IdentityCertificateForClientAuthentication undocumented
	IdentityCertificateForClientAuthentication *IOSCertificateProfileBase `json:"identityCertificateForClientAuthentication,omitempty"`
	// SingleSignOnExtensionPkinitCertificate undocumented
	SingleSignOnExtensionPkinitCertificate *IOSCertificateProfileBase `json:"singleSignOnExtensionPkinitCertificate,omitempty"`
}

// IOSDeviceType undocumented
type IOSDeviceType struct {
	// Object is the base model of IOSDeviceType
	Object
	// IPad Whether the app should run on iPads.
	IPad *bool `json:"iPad,omitempty"`
	// IPhoneAndIPod Whether the app should run on iPhones and iPods.
	IPhoneAndIPod *bool `json:"iPhoneAndIPod,omitempty"`
}

// IOSEasEmailProfileConfiguration By providing configurations in this profile you can instruct the native email client on iOS devices to communicate with an Exchange server and get email, contacts, calendar, reminders, and notes. Furthermore, you can also specify how much email to sync and how often the device should sync.
type IOSEasEmailProfileConfiguration struct {
	// EasEmailProfileConfigurationBase is the base model of IOSEasEmailProfileConfiguration
	EasEmailProfileConfigurationBase
	// AccountName Account name.
	AccountName *string `json:"accountName,omitempty"`
	// AuthenticationMethod Authentication method for this Email profile.
	AuthenticationMethod *EasAuthenticationMethod `json:"authenticationMethod,omitempty"`
	// BlockMovingMessagesToOtherEmailAccounts Indicates whether or not to block moving messages to other email accounts.
	BlockMovingMessagesToOtherEmailAccounts *bool `json:"blockMovingMessagesToOtherEmailAccounts,omitempty"`
	// BlockSendingEmailFromThirdPartyApps Indicates whether or not to block sending email from third party apps.
	BlockSendingEmailFromThirdPartyApps *bool `json:"blockSendingEmailFromThirdPartyApps,omitempty"`
	// BlockSyncingRecentlyUsedEmailAddresses Indicates whether or not to block syncing recently used email addresses, for instance - when composing new email.
	BlockSyncingRecentlyUsedEmailAddresses *bool `json:"blockSyncingRecentlyUsedEmailAddresses,omitempty"`
	// DurationOfEmailToSync Duration of time email should be synced back to.
	DurationOfEmailToSync *EmailSyncDuration `json:"durationOfEmailToSync,omitempty"`
	// EmailAddressSource Email attribute that is picked from AAD and injected into this profile before installing on the device.
	EmailAddressSource *UserEmailSource `json:"emailAddressSource,omitempty"`
	// EasServices Exchange data to sync.
	EasServices *EasServices `json:"easServices,omitempty"`
	// EasServicesUserOverrideEnabled Allow users to change sync settings.
	EasServicesUserOverrideEnabled *bool `json:"easServicesUserOverrideEnabled,omitempty"`
	// HostName Exchange location that (URL) that the native mail app connects to.
	HostName *string `json:"hostName,omitempty"`
	// RequireSmime Indicates whether or not to use S/MIME certificate.
	RequireSmime *bool `json:"requireSmime,omitempty"`
	// SmimeEnablePerMessageSwitch Indicates whether or not to allow unencrypted emails.
	SmimeEnablePerMessageSwitch *bool `json:"smimeEnablePerMessageSwitch,omitempty"`
	// SmimeEncryptByDefaultEnabled If set to true S/MIME encryption is enabled by default.
	SmimeEncryptByDefaultEnabled *bool `json:"smimeEncryptByDefaultEnabled,omitempty"`
	// SmimeSigningEnabled If set to true S/MIME signing is enabled for this account
	SmimeSigningEnabled *bool `json:"smimeSigningEnabled,omitempty"`
	// SmimeSigningUserOverrideEnabled If set to true, the user can toggle S/MIME signing on or off.
	SmimeSigningUserOverrideEnabled *bool `json:"smimeSigningUserOverrideEnabled,omitempty"`
	// SmimeEncryptByDefaultUserOverrideEnabled If set to true, the user can toggle the encryption by default setting.
	SmimeEncryptByDefaultUserOverrideEnabled *bool `json:"smimeEncryptByDefaultUserOverrideEnabled,omitempty"`
	// SmimeSigningCertificateUserOverrideEnabled If set to true, the user can select the signing identity.
	SmimeSigningCertificateUserOverrideEnabled *bool `json:"smimeSigningCertificateUserOverrideEnabled,omitempty"`
	// SmimeEncryptionCertificateUserOverrideEnabled If set to true the user can select the S/MIME encryption identity.
	SmimeEncryptionCertificateUserOverrideEnabled *bool `json:"smimeEncryptionCertificateUserOverrideEnabled,omitempty"`
	// RequireSsl Indicates whether or not to use SSL.
	RequireSsl *bool `json:"requireSsl,omitempty"`
	// UseOAuth Specifies whether the connection should use OAuth for authentication.
	UseOAuth *bool `json:"useOAuth,omitempty"`
	// SigningCertificateType Signing Certificate type for this Email profile.
	SigningCertificateType *EmailCertificateType `json:"signingCertificateType,omitempty"`
	// EncryptionCertificateType Encryption Certificate type for this Email profile.
	EncryptionCertificateType *EmailCertificateType `json:"encryptionCertificateType,omitempty"`
	// IdentityCertificate undocumented
	IdentityCertificate *IOSCertificateProfileBase `json:"identityCertificate,omitempty"`
	// SmimeSigningCertificate undocumented
	SmimeSigningCertificate *IOSCertificateProfile `json:"smimeSigningCertificate,omitempty"`
	// SmimeEncryptionCertificate undocumented
	SmimeEncryptionCertificate *IOSCertificateProfile `json:"smimeEncryptionCertificate,omitempty"`
	// DerivedCredentialSettings undocumented
	DerivedCredentialSettings *DeviceManagementDerivedCredentialSettings `json:"derivedCredentialSettings,omitempty"`
}

// IOSEduCertificateSettings undocumented
type IOSEduCertificateSettings struct {
	// Object is the base model of IOSEduCertificateSettings
	Object
	// TrustedRootCertificate Trusted Root Certificate.
	TrustedRootCertificate *Binary `json:"trustedRootCertificate,omitempty"`
	// CertFileName File name to display in UI.
	CertFileName *string `json:"certFileName,omitempty"`
	// CertificationAuthority PKCS Certification Authority.
	CertificationAuthority *string `json:"certificationAuthority,omitempty"`
	// CertificationAuthorityName PKCS Certification Authority Name.
	CertificationAuthorityName *string `json:"certificationAuthorityName,omitempty"`
	// CertificateTemplateName PKCS Certificate Template Name.
	CertificateTemplateName *string `json:"certificateTemplateName,omitempty"`
	// RenewalThresholdPercentage Certificate renewal threshold percentage. Valid values 1 to 99
	RenewalThresholdPercentage *int `json:"renewalThresholdPercentage,omitempty"`
	// CertificateValidityPeriodValue Value for the Certificate Validity Period.
	CertificateValidityPeriodValue *int `json:"certificateValidityPeriodValue,omitempty"`
	// CertificateValidityPeriodScale Scale for the Certificate Validity Period.
	CertificateValidityPeriodScale *CertificateValidityPeriodScale `json:"certificateValidityPeriodScale,omitempty"`
}

// IOSEduDeviceConfiguration iOS Education device configuration
type IOSEduDeviceConfiguration struct {
	// DeviceConfiguration is the base model of IOSEduDeviceConfiguration
	DeviceConfiguration
	// TeacherCertificateSettings The Trusted Root and PFX certificates for Teacher
	TeacherCertificateSettings *IOSEduCertificateSettings `json:"teacherCertificateSettings,omitempty"`
	// StudentCertificateSettings The Trusted Root and PFX certificates for Student
	StudentCertificateSettings *IOSEduCertificateSettings `json:"studentCertificateSettings,omitempty"`
	// DeviceCertificateSettings The Trusted Root and PFX certificates for Device
	DeviceCertificateSettings *IOSEduCertificateSettings `json:"deviceCertificateSettings,omitempty"`
}

// IOSEducationDeviceConfiguration iOS Education configuration profile
type IOSEducationDeviceConfiguration struct {
	// DeviceConfiguration is the base model of IOSEducationDeviceConfiguration
	DeviceConfiguration
}

// IOSEnterpriseWiFiConfiguration By providing the configurations in this profile you can instruct the iOS device to connect to desired Wi-Fi endpoint. By specifying the authentication method and security types expected by Wi-Fi endpoint you can make the Wi-Fi connection seamless for end user.
type IOSEnterpriseWiFiConfiguration struct {
	// IOSWiFiConfiguration is the base model of IOSEnterpriseWiFiConfiguration
	IOSWiFiConfiguration
	// EapType Extensible Authentication Protocol (EAP). Indicates the type of EAP protocol set on the Wi-Fi endpoint (router).
	EapType *EapType `json:"eapType,omitempty"`
	// EapFastConfiguration EAP-FAST Configuration Option when EAP-FAST is the selected EAP Type.
	EapFastConfiguration *EapFastConfiguration `json:"eapFastConfiguration,omitempty"`
	// TrustedServerCertificateNames Trusted server certificate names when EAP Type is configured to EAP-TLS/TTLS/FAST or PEAP. This is the common name used in the certificates issued by your trusted certificate authority (CA). If you provide this information, you can bypass the dynamic trust dialog that is displayed on end users' devices when they connect to this Wi-Fi network.
	TrustedServerCertificateNames []string `json:"trustedServerCertificateNames,omitempty"`
	// AuthenticationMethod Authentication Method when EAP Type is configured to PEAP or EAP-TTLS.
	AuthenticationMethod *WiFiAuthenticationMethod `json:"authenticationMethod,omitempty"`
	// InnerAuthenticationProtocolForEapTtls Non-EAP Method for Authentication when EAP Type is EAP-TTLS and Authenticationmethod is Username and Password.
	InnerAuthenticationProtocolForEapTtls *NonEapAuthenticationMethodForEapTtlsType `json:"innerAuthenticationProtocolForEapTtls,omitempty"`
	// OuterIdentityPrivacyTemporaryValue Enable identity privacy (Outer Identity) when EAP Type is configured to EAP - TTLS, EAP - FAST or PEAP. This property masks usernames with the text you enter. For example, if you use 'anonymous', each user that authenticates with this Wi-Fi connection using their real username is displayed as 'anonymous'.
	OuterIdentityPrivacyTemporaryValue *string `json:"outerIdentityPrivacyTemporaryValue,omitempty"`
	// UsernameFormatString Username format string used to build the username to connect to wifi
	UsernameFormatString *string `json:"usernameFormatString,omitempty"`
	// PasswordFormatString Password format string used to build the password to connect to wifi
	PasswordFormatString *string `json:"passwordFormatString,omitempty"`
	// RootCertificatesForServerValidation undocumented
	RootCertificatesForServerValidation []IOSTrustedRootCertificate `json:"rootCertificatesForServerValidation,omitempty"`
	// IdentityCertificateForClientAuthentication undocumented
	IdentityCertificateForClientAuthentication *IOSCertificateProfileBase `json:"identityCertificateForClientAuthentication,omitempty"`
	// DerivedCredentialSettings undocumented
	DerivedCredentialSettings *DeviceManagementDerivedCredentialSettings `json:"derivedCredentialSettings,omitempty"`
}

// IOSGeneralDeviceConfiguration This topic provides descriptions of the declared methods, properties and relationships exposed by the iosGeneralDeviceConfiguration resource.
type IOSGeneralDeviceConfiguration struct {
	// DeviceConfiguration is the base model of IOSGeneralDeviceConfiguration
	DeviceConfiguration
	// AccountBlockModification Indicates whether or not to allow account modification when the device is in supervised mode.
	AccountBlockModification *bool `json:"accountBlockModification,omitempty"`
	// ActivationLockAllowWhenSupervised Indicates whether or not to allow activation lock when the device is in the supervised mode.
	ActivationLockAllowWhenSupervised *bool `json:"activationLockAllowWhenSupervised,omitempty"`
	// AirDropBlocked Indicates whether or not to allow AirDrop when the device is in supervised mode.
	AirDropBlocked *bool `json:"airDropBlocked,omitempty"`
	// AirDropForceUnmanagedDropTarget Indicates whether or not to cause AirDrop to be considered an unmanaged drop target (iOS 9.0 and later).
	AirDropForceUnmanagedDropTarget *bool `json:"airDropForceUnmanagedDropTarget,omitempty"`
	// AirPlayForcePairingPasswordForOutgoingRequests Indicates whether or not to enforce all devices receiving AirPlay requests from this device to use a pairing password.
	AirPlayForcePairingPasswordForOutgoingRequests *bool `json:"airPlayForcePairingPasswordForOutgoingRequests,omitempty"`
	// AppleWatchBlockPairing Indicates whether or not to allow Apple Watch pairing when the device is in supervised mode (iOS 9.0 and later).
	AppleWatchBlockPairing *bool `json:"appleWatchBlockPairing,omitempty"`
	// AppleWatchForceWristDetection Indicates whether or not to force a paired Apple Watch to use Wrist Detection (iOS 8.2 and later).
	AppleWatchForceWristDetection *bool `json:"appleWatchForceWristDetection,omitempty"`
	// AppleNewsBlocked Indicates whether or not to block the user from using News when the device is in supervised mode (iOS 9.0 and later).
	AppleNewsBlocked *bool `json:"appleNewsBlocked,omitempty"`
	// AppsSingleAppModeList Gets or sets the list of iOS apps allowed to autonomously enter Single App Mode. Supervised only. iOS 7.0 and later. This collection can contain a maximum of 500 elements.
	AppsSingleAppModeList []AppListItem `json:"appsSingleAppModeList,omitempty"`
	// AppsVisibilityList List of apps in the visibility list (either visible/launchable apps list or hidden/unlaunchable apps list, controlled by AppsVisibilityListType) (iOS 9.3 and later). This collection can contain a maximum of 10000 elements.
	AppsVisibilityList []AppListItem `json:"appsVisibilityList,omitempty"`
	// AppsVisibilityListType Type of list that is in the AppsVisibilityList.
	AppsVisibilityListType *AppListType `json:"appsVisibilityListType,omitempty"`
	// AppStoreBlockAutomaticDownloads Indicates whether or not to block the automatic downloading of apps purchased on other devices when the device is in supervised mode (iOS 9.0 and later).
	AppStoreBlockAutomaticDownloads *bool `json:"appStoreBlockAutomaticDownloads,omitempty"`
	// AppStoreBlocked Indicates whether or not to block the user from using the App Store. Requires a supervised device for iOS 13 and later.
	AppStoreBlocked *bool `json:"appStoreBlocked,omitempty"`
	// AppStoreBlockInAppPurchases Indicates whether or not to block the user from making in app purchases.
	AppStoreBlockInAppPurchases *bool `json:"appStoreBlockInAppPurchases,omitempty"`
	// AppStoreBlockUIAppInstallation Indicates whether or not to block the App Store app, not restricting installation through Host apps. Applies to supervised mode only (iOS 9.0 and later).
	AppStoreBlockUIAppInstallation *bool `json:"appStoreBlockUIAppInstallation,omitempty"`
	// AppStoreRequirePassword Indicates whether or not to require a password when using the app store.
	AppStoreRequirePassword *bool `json:"appStoreRequirePassword,omitempty"`
	// AutoFillForceAuthentication Indicates whether or not to force user authentication before autofilling passwords and credit card information in Safari and other apps on supervised devices.
	AutoFillForceAuthentication *bool `json:"autoFillForceAuthentication,omitempty"`
	// BluetoothBlockModification Indicates whether or not to allow modification of Bluetooth settings when the device is in supervised mode (iOS 10.0 and later).
	BluetoothBlockModification *bool `json:"bluetoothBlockModification,omitempty"`
	// CameraBlocked Indicates whether or not to block the user from accessing the camera of the device. Requires a supervised device for iOS 13 and later.
	CameraBlocked *bool `json:"cameraBlocked,omitempty"`
	// CellularBlockDataRoaming Indicates whether or not to block data roaming.
	CellularBlockDataRoaming *bool `json:"cellularBlockDataRoaming,omitempty"`
	// CellularBlockGlobalBackgroundFetchWhileRoaming Indicates whether or not to block global background fetch while roaming.
	CellularBlockGlobalBackgroundFetchWhileRoaming *bool `json:"cellularBlockGlobalBackgroundFetchWhileRoaming,omitempty"`
	// CellularBlockPerAppDataModification Indicates whether or not to allow changes to cellular app data usage settings when the device is in supervised mode.
	CellularBlockPerAppDataModification *bool `json:"cellularBlockPerAppDataModification,omitempty"`
	// CellularBlockPersonalHotspot Indicates whether or not to block Personal Hotspot.
	CellularBlockPersonalHotspot *bool `json:"cellularBlockPersonalHotspot,omitempty"`
	// CellularBlockPlanModification Indicates whether or not to allow users to change the settings of the cellular plan on a supervised device.
	CellularBlockPlanModification *bool `json:"cellularBlockPlanModification,omitempty"`
	// CellularBlockVoiceRoaming Indicates whether or not to block voice roaming.
	CellularBlockVoiceRoaming *bool `json:"cellularBlockVoiceRoaming,omitempty"`
	// CertificatesBlockUntrustedTLSCertificates Indicates whether or not to block untrusted TLS certificates.
	CertificatesBlockUntrustedTLSCertificates *bool `json:"certificatesBlockUntrustedTlsCertificates,omitempty"`
	// ClassroomAppBlockRemoteScreenObservation Indicates whether or not to allow remote screen observation by Classroom app when the device is in supervised mode (iOS 9.3 and later).
	ClassroomAppBlockRemoteScreenObservation *bool `json:"classroomAppBlockRemoteScreenObservation,omitempty"`
	// ClassroomAppForceUnpromptedScreenObservation Indicates whether or not to automatically give permission to the teacher of a managed course on the Classroom app to view a student's screen without prompting when the device is in supervised mode.
	ClassroomAppForceUnpromptedScreenObservation *bool `json:"classroomAppForceUnpromptedScreenObservation,omitempty"`
	// ClassroomForceAutomaticallyJoinClasses Indicates whether or not to automatically give permission to the teacher's requests, without prompting the student, when the device is in supervised mode.
	ClassroomForceAutomaticallyJoinClasses *bool `json:"classroomForceAutomaticallyJoinClasses,omitempty"`
	// ClassroomForceUnpromptedAppAndDeviceLock Indicates whether or not to allow the teacher to lock apps or the device without prompting the student. Supervised only.
	ClassroomForceUnpromptedAppAndDeviceLock *bool `json:"classroomForceUnpromptedAppAndDeviceLock,omitempty"`
	// CompliantAppsList List of apps in the compliance (either allow list or block list, controlled by CompliantAppListType). This collection can contain a maximum of 10000 elements.
	CompliantAppsList []AppListItem `json:"compliantAppsList,omitempty"`
	// CompliantAppListType List that is in the AppComplianceList.
	CompliantAppListType *AppListType `json:"compliantAppListType,omitempty"`
	// ConfigurationProfileBlockChanges Indicates whether or not to block the user from installing configuration profiles and certificates interactively when the device is in supervised mode.
	ConfigurationProfileBlockChanges *bool `json:"configurationProfileBlockChanges,omitempty"`
	// DefinitionLookupBlocked Indicates whether or not to block definition lookup when the device is in supervised mode (iOS 8.1.3 and later ).
	DefinitionLookupBlocked *bool `json:"definitionLookupBlocked,omitempty"`
	// DeviceBlockEnableRestrictions Indicates whether or not to allow the user to enables restrictions in the device settings when the device is in supervised mode.
	DeviceBlockEnableRestrictions *bool `json:"deviceBlockEnableRestrictions,omitempty"`
	// DeviceBlockEraseContentAndSettings Indicates whether or not to allow the use of the 'Erase all content and settings' option on the device when the device is in supervised mode.
	DeviceBlockEraseContentAndSettings *bool `json:"deviceBlockEraseContentAndSettings,omitempty"`
	// DeviceBlockNameModification Indicates whether or not to allow device name modification when the device is in supervised mode (iOS 9.0 and later).
	DeviceBlockNameModification *bool `json:"deviceBlockNameModification,omitempty"`
	// DiagnosticDataBlockSubmission Indicates whether or not to block diagnostic data submission.
	DiagnosticDataBlockSubmission *bool `json:"diagnosticDataBlockSubmission,omitempty"`
	// DiagnosticDataBlockSubmissionModification Indicates whether or not to allow diagnostics submission settings modification when the device is in supervised mode (iOS 9.3.2 and later).
	DiagnosticDataBlockSubmissionModification *bool `json:"diagnosticDataBlockSubmissionModification,omitempty"`
	// DocumentsBlockManagedDocumentsInUnmanagedApps Indicates whether or not to block the user from viewing managed documents in unmanaged apps.
	DocumentsBlockManagedDocumentsInUnmanagedApps *bool `json:"documentsBlockManagedDocumentsInUnmanagedApps,omitempty"`
	// DocumentsBlockUnmanagedDocumentsInManagedApps Indicates whether or not to block the user from viewing unmanaged documents in managed apps.
	DocumentsBlockUnmanagedDocumentsInManagedApps *bool `json:"documentsBlockUnmanagedDocumentsInManagedApps,omitempty"`
	// EmailInDomainSuffixes An email address lacking a suffix that matches any of these strings will be considered out-of-domain.
	EmailInDomainSuffixes []string `json:"emailInDomainSuffixes,omitempty"`
	// EnterpriseAppBlockTrust Indicates whether or not to block the user from trusting an enterprise app.
	EnterpriseAppBlockTrust *bool `json:"enterpriseAppBlockTrust,omitempty"`
	// EnterpriseAppBlockTrustModification Indicates whether or not to block the user from modifying the enterprise app trust settings.
	EnterpriseAppBlockTrustModification *bool `json:"enterpriseAppBlockTrustModification,omitempty"`
	// EsimBlockModification Indicates whether or not to allow the addition or removal of cellular plans on the eSIM of a supervised device.
	EsimBlockModification *bool `json:"esimBlockModification,omitempty"`
	// FaceTimeBlocked Indicates whether or not to block the user from using FaceTime. Requires a supervised device for iOS 13 and later.
	FaceTimeBlocked *bool `json:"faceTimeBlocked,omitempty"`
	// FindMyFriendsBlocked Indicates whether or not to block changes to Find My Friends when the device is in supervised mode.
	FindMyFriendsBlocked *bool `json:"findMyFriendsBlocked,omitempty"`
	// GamingBlockGameCenterFriends Indicates whether or not to block the user from having friends in Game Center. Requires a supervised device for iOS 13 and later.
	GamingBlockGameCenterFriends *bool `json:"gamingBlockGameCenterFriends,omitempty"`
	// GamingBlockMultiplayer Indicates whether or not to block the user from using multiplayer gaming. Requires a supervised device for iOS 13 and later.
	GamingBlockMultiplayer *bool `json:"gamingBlockMultiplayer,omitempty"`
	// GameCenterBlocked Indicates whether or not to block the user from using Game Center when the device is in supervised mode.
	GameCenterBlocked *bool `json:"gameCenterBlocked,omitempty"`
	// HostPairingBlocked indicates whether or not to allow host pairing to control the devices an iOS device can pair with when the iOS device is in supervised mode.
	HostPairingBlocked *bool `json:"hostPairingBlocked,omitempty"`
	// IBooksStoreBlocked Indicates whether or not to block the user from using the iBooks Store when the device is in supervised mode.
	IBooksStoreBlocked *bool `json:"iBooksStoreBlocked,omitempty"`
	// IBooksStoreBlockErotica Indicates whether or not to block the user from downloading media from the iBookstore that has been tagged as erotica.
	IBooksStoreBlockErotica *bool `json:"iBooksStoreBlockErotica,omitempty"`
	// ICloudBlockActivityContinuation Indicates whether or not to block the user from continuing work they started on iOS device to another iOS or macOS device.
	ICloudBlockActivityContinuation *bool `json:"iCloudBlockActivityContinuation,omitempty"`
	// ICloudBlockBackup Indicates whether or not to block iCloud backup. Requires a supervised device for iOS 13 and later.
	ICloudBlockBackup *bool `json:"iCloudBlockBackup,omitempty"`
	// ICloudBlockDocumentSync Indicates whether or not to block iCloud document sync. Requires a supervised device for iOS 13 and later.
	ICloudBlockDocumentSync *bool `json:"iCloudBlockDocumentSync,omitempty"`
	// ICloudBlockManagedAppsSync Indicates whether or not to block Managed Apps Cloud Sync.
	ICloudBlockManagedAppsSync *bool `json:"iCloudBlockManagedAppsSync,omitempty"`
	// ICloudBlockPhotoLibrary Indicates whether or not to block iCloud Photo Library.
	ICloudBlockPhotoLibrary *bool `json:"iCloudBlockPhotoLibrary,omitempty"`
	// ICloudBlockPhotoStreamSync Indicates whether or not to block iCloud Photo Stream Sync.
	ICloudBlockPhotoStreamSync *bool `json:"iCloudBlockPhotoStreamSync,omitempty"`
	// ICloudBlockSharedPhotoStream Indicates whether or not to block Shared Photo Stream.
	ICloudBlockSharedPhotoStream *bool `json:"iCloudBlockSharedPhotoStream,omitempty"`
	// ICloudRequireEncryptedBackup Indicates whether or not to require backups to iCloud be encrypted.
	ICloudRequireEncryptedBackup *bool `json:"iCloudRequireEncryptedBackup,omitempty"`
	// ITunesBlockExplicitContent Indicates whether or not to block the user from accessing explicit content in iTunes and the App Store. Requires a supervised device for iOS 13 and later.
	ITunesBlockExplicitContent *bool `json:"iTunesBlockExplicitContent,omitempty"`
	// ITunesBlockMusicService Indicates whether or not to block Music service and revert Music app to classic mode when the device is in supervised mode (iOS 9.3 and later and macOS 10.12 and later).
	ITunesBlockMusicService *bool `json:"iTunesBlockMusicService,omitempty"`
	// ITunesBlockRadio Indicates whether or not to block the user from using iTunes Radio when the device is in supervised mode (iOS 9.3 and later).
	ITunesBlockRadio *bool `json:"iTunesBlockRadio,omitempty"`
	// KeyboardBlockAutoCorrect Indicates whether or not to block keyboard auto-correction when the device is in supervised mode (iOS 8.1.3 and later).
	KeyboardBlockAutoCorrect *bool `json:"keyboardBlockAutoCorrect,omitempty"`
	// KeyboardBlockDictation Indicates whether or not to block the user from using dictation input when the device is in supervised mode.
	KeyboardBlockDictation *bool `json:"keyboardBlockDictation,omitempty"`
	// KeyboardBlockPredictive Indicates whether or not to block predictive keyboards when device is in supervised mode (iOS 8.1.3 and later).
	KeyboardBlockPredictive *bool `json:"keyboardBlockPredictive,omitempty"`
	// KeyboardBlockShortcuts Indicates whether or not to block keyboard shortcuts when the device is in supervised mode (iOS 9.0 and later).
	KeyboardBlockShortcuts *bool `json:"keyboardBlockShortcuts,omitempty"`
	// KeyboardBlockSpellCheck Indicates whether or not to block keyboard spell-checking when the device is in supervised mode (iOS 8.1.3 and later).
	KeyboardBlockSpellCheck *bool `json:"keyboardBlockSpellCheck,omitempty"`
	// KioskModeAllowAssistiveSpeak Indicates whether or not to allow assistive speak while in kiosk mode.
	KioskModeAllowAssistiveSpeak *bool `json:"kioskModeAllowAssistiveSpeak,omitempty"`
	// KioskModeAllowAssistiveTouchSettings Indicates whether or not to allow access to the Assistive Touch Settings while in kiosk mode.
	KioskModeAllowAssistiveTouchSettings *bool `json:"kioskModeAllowAssistiveTouchSettings,omitempty"`
	// KioskModeAllowAutoLock Indicates whether or not to allow device auto lock while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockAutoLock instead.
	KioskModeAllowAutoLock *bool `json:"kioskModeAllowAutoLock,omitempty"`
	// KioskModeBlockAutoLock Indicates whether or not to block device auto lock while in kiosk mode.
	KioskModeBlockAutoLock *bool `json:"kioskModeBlockAutoLock,omitempty"`
	// KioskModeAllowColorInversionSettings Indicates whether or not to allow access to the Color Inversion Settings while in kiosk mode.
	KioskModeAllowColorInversionSettings *bool `json:"kioskModeAllowColorInversionSettings,omitempty"`
	// KioskModeAllowRingerSwitch Indicates whether or not to allow use of the ringer switch while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockRingerSwitch instead.
	KioskModeAllowRingerSwitch *bool `json:"kioskModeAllowRingerSwitch,omitempty"`
	// KioskModeBlockRingerSwitch Indicates whether or not to block use of the ringer switch while in kiosk mode.
	KioskModeBlockRingerSwitch *bool `json:"kioskModeBlockRingerSwitch,omitempty"`
	// KioskModeAllowScreenRotation Indicates whether or not to allow screen rotation while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockScreenRotation instead.
	KioskModeAllowScreenRotation *bool `json:"kioskModeAllowScreenRotation,omitempty"`
	// KioskModeBlockScreenRotation Indicates whether or not to block screen rotation while in kiosk mode.
	KioskModeBlockScreenRotation *bool `json:"kioskModeBlockScreenRotation,omitempty"`
	// KioskModeAllowSleepButton Indicates whether or not to allow use of the sleep button while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockSleepButton instead.
	KioskModeAllowSleepButton *bool `json:"kioskModeAllowSleepButton,omitempty"`
	// KioskModeBlockSleepButton Indicates whether or not to block use of the sleep button while in kiosk mode.
	KioskModeBlockSleepButton *bool `json:"kioskModeBlockSleepButton,omitempty"`
	// KioskModeAllowTouchscreen Indicates whether or not to allow use of the touchscreen while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockTouchscreen instead.
	KioskModeAllowTouchscreen *bool `json:"kioskModeAllowTouchscreen,omitempty"`
	// KioskModeBlockTouchscreen Indicates whether or not to block use of the touchscreen while in kiosk mode.
	KioskModeBlockTouchscreen *bool `json:"kioskModeBlockTouchscreen,omitempty"`
	// KioskModeEnableVoiceControl Indicates whether or not to enable voice control in kiosk mode.
	KioskModeEnableVoiceControl *bool `json:"kioskModeEnableVoiceControl,omitempty"`
	// KioskModeAllowVoiceControlModification Indicates whether or not to allow the user to toggle voice control in kiosk mode.
	KioskModeAllowVoiceControlModification *bool `json:"kioskModeAllowVoiceControlModification,omitempty"`
	// KioskModeAllowVoiceOverSettings Indicates whether or not to allow access to the voice over settings while in kiosk mode.
	KioskModeAllowVoiceOverSettings *bool `json:"kioskModeAllowVoiceOverSettings,omitempty"`
	// KioskModeAllowVolumeButtons Indicates whether or not to allow use of the volume buttons while in kiosk mode. This property's functionality is redundant with the OS default and is deprecated. Use KioskModeBlockVolumeButtons instead.
	KioskModeAllowVolumeButtons *bool `json:"kioskModeAllowVolumeButtons,omitempty"`
	// KioskModeBlockVolumeButtons Indicates whether or not to block the volume buttons while in Kiosk Mode.
	KioskModeBlockVolumeButtons *bool `json:"kioskModeBlockVolumeButtons,omitempty"`
	// KioskModeAllowZoomSettings Indicates whether or not to allow access to the zoom settings while in kiosk mode.
	KioskModeAllowZoomSettings *bool `json:"kioskModeAllowZoomSettings,omitempty"`
	// KioskModeAppStoreURL URL in the app store to the app to use for kiosk mode. Use if KioskModeManagedAppId is not known.
	KioskModeAppStoreURL *string `json:"kioskModeAppStoreUrl,omitempty"`
	// KioskModeBuiltInAppID ID for built-in apps to use for kiosk mode. Used when KioskModeManagedAppId and KioskModeAppStoreUrl are not set.
	KioskModeBuiltInAppID *string `json:"kioskModeBuiltInAppId,omitempty"`
	// KioskModeRequireAssistiveTouch Indicates whether or not to require assistive touch while in kiosk mode.
	KioskModeRequireAssistiveTouch *bool `json:"kioskModeRequireAssistiveTouch,omitempty"`
	// KioskModeRequireColorInversion Indicates whether or not to require color inversion while in kiosk mode.
	KioskModeRequireColorInversion *bool `json:"kioskModeRequireColorInversion,omitempty"`
	// KioskModeRequireMonoAudio Indicates whether or not to require mono audio while in kiosk mode.
	KioskModeRequireMonoAudio *bool `json:"kioskModeRequireMonoAudio,omitempty"`
	// KioskModeRequireVoiceOver Indicates whether or not to require voice over while in kiosk mode.
	KioskModeRequireVoiceOver *bool `json:"kioskModeRequireVoiceOver,omitempty"`
	// KioskModeRequireZoom Indicates whether or not to require zoom while in kiosk mode.
	KioskModeRequireZoom *bool `json:"kioskModeRequireZoom,omitempty"`
	// KioskModeManagedAppID Managed app id of the app to use for kiosk mode. If KioskModeManagedAppId is specified then KioskModeAppStoreUrl will be ignored.
	KioskModeManagedAppID *string `json:"kioskModeManagedAppId,omitempty"`
	// LockScreenBlockControlCenter Indicates whether or not to block the user from using control center on the lock screen.
	LockScreenBlockControlCenter *bool `json:"lockScreenBlockControlCenter,omitempty"`
	// LockScreenBlockNotificationView Indicates whether or not to block the user from using the notification view on the lock screen.
	LockScreenBlockNotificationView *bool `json:"lockScreenBlockNotificationView,omitempty"`
	// LockScreenBlockPassbook Indicates whether or not to block the user from using passbook when the device is locked.
	LockScreenBlockPassbook *bool `json:"lockScreenBlockPassbook,omitempty"`
	// LockScreenBlockTodayView Indicates whether or not to block the user from using the Today View on the lock screen.
	LockScreenBlockTodayView *bool `json:"lockScreenBlockTodayView,omitempty"`
	// MediaContentRatingAustralia Media content rating settings for Australia
	MediaContentRatingAustralia *MediaContentRatingAustralia `json:"mediaContentRatingAustralia,omitempty"`
	// MediaContentRatingCanada Media content rating settings for Canada
	MediaContentRatingCanada *MediaContentRatingCanada `json:"mediaContentRatingCanada,omitempty"`
	// MediaContentRatingFrance Media content rating settings for France
	MediaContentRatingFrance *MediaContentRatingFrance `json:"mediaContentRatingFrance,omitempty"`
	// MediaContentRatingGermany Media content rating settings for Germany
	MediaContentRatingGermany *MediaContentRatingGermany `json:"mediaContentRatingGermany,omitempty"`
	// MediaContentRatingIreland Media content rating settings for Ireland
	MediaContentRatingIreland *MediaContentRatingIreland `json:"mediaContentRatingIreland,omitempty"`
	// MediaContentRatingJapan Media content rating settings for Japan
	MediaContentRatingJapan *MediaContentRatingJapan `json:"mediaContentRatingJapan,omitempty"`
	// MediaContentRatingNewZealand Media content rating settings for New Zealand
	MediaContentRatingNewZealand *MediaContentRatingNewZealand `json:"mediaContentRatingNewZealand,omitempty"`
	// MediaContentRatingUnitedKingdom Media content rating settings for United Kingdom
	MediaContentRatingUnitedKingdom *MediaContentRatingUnitedKingdom `json:"mediaContentRatingUnitedKingdom,omitempty"`
	// MediaContentRatingUnitedStates Media content rating settings for United States
	MediaContentRatingUnitedStates *MediaContentRatingUnitedStates `json:"mediaContentRatingUnitedStates,omitempty"`
	// NetworkUsageRules List of managed apps and the network rules that applies to them. This collection can contain a maximum of 1000 elements.
	NetworkUsageRules []IOSNetworkUsageRule `json:"networkUsageRules,omitempty"`
	// MediaContentRatingApps Media content rating settings for Apps
	MediaContentRatingApps *RatingAppsType `json:"mediaContentRatingApps,omitempty"`
	// MessagesBlocked Indicates whether or not to block the user from using the Messages app on the supervised device.
	MessagesBlocked *bool `json:"messagesBlocked,omitempty"`
	// NotificationsBlockSettingsModification Indicates whether or not to allow notifications settings modification (iOS 9.3 and later).
	NotificationsBlockSettingsModification *bool `json:"notificationsBlockSettingsModification,omitempty"`
	// PasscodeBlockFingerprintUnlock Indicates whether or not to block fingerprint unlock.
	PasscodeBlockFingerprintUnlock *bool `json:"passcodeBlockFingerprintUnlock,omitempty"`
	// PasscodeBlockFingerprintModification Block modification of registered Touch ID fingerprints when in supervised mode.
	PasscodeBlockFingerprintModification *bool `json:"passcodeBlockFingerprintModification,omitempty"`
	// PasscodeBlockModification Indicates whether or not to allow passcode modification on the supervised device (iOS 9.0 and later).
	PasscodeBlockModification *bool `json:"passcodeBlockModification,omitempty"`
	// PasscodeBlockSimple Indicates whether or not to block simple passcodes.
	PasscodeBlockSimple *bool `json:"passcodeBlockSimple,omitempty"`
	// PasscodeExpirationDays Number of days before the passcode expires. Valid values 1 to 65535
	PasscodeExpirationDays *int `json:"passcodeExpirationDays,omitempty"`
	// PasscodeMinimumLength Minimum length of passcode. Valid values 4 to 14
	PasscodeMinimumLength *int `json:"passcodeMinimumLength,omitempty"`
	// PasscodeMinutesOfInactivityBeforeLock Minutes of inactivity before a passcode is required.
	PasscodeMinutesOfInactivityBeforeLock *int `json:"passcodeMinutesOfInactivityBeforeLock,omitempty"`
	// PasscodeMinutesOfInactivityBeforeScreenTimeout Minutes of inactivity before the screen times out.
	PasscodeMinutesOfInactivityBeforeScreenTimeout *int `json:"passcodeMinutesOfInactivityBeforeScreenTimeout,omitempty"`
	// PasscodeMinimumCharacterSetCount Number of character sets a passcode must contain. Valid values 0 to 4
	PasscodeMinimumCharacterSetCount *int `json:"passcodeMinimumCharacterSetCount,omitempty"`
	// PasscodePreviousPasscodeBlockCount Number of previous passcodes to block. Valid values 1 to 24
	PasscodePreviousPasscodeBlockCount *int `json:"passcodePreviousPasscodeBlockCount,omitempty"`
	// PasscodeSignInFailureCountBeforeWipe Number of sign in failures allowed before wiping the device. Valid values 4 to 11
	PasscodeSignInFailureCountBeforeWipe *int `json:"passcodeSignInFailureCountBeforeWipe,omitempty"`
	// PasscodeRequiredType Type of passcode that is required.
	PasscodeRequiredType *RequiredPasswordType `json:"passcodeRequiredType,omitempty"`
	// PasscodeRequired Indicates whether or not to require a passcode.
	PasscodeRequired *bool `json:"passcodeRequired,omitempty"`
	// PodcastsBlocked Indicates whether or not to block the user from using podcasts on the supervised device (iOS 8.0 and later).
	PodcastsBlocked *bool `json:"podcastsBlocked,omitempty"`
	// ProximityBlockSetupToNewDevice Indicates whether or not to enable the prompt to setup nearby devices with a supervised device.
	ProximityBlockSetupToNewDevice *bool `json:"proximityBlockSetupToNewDevice,omitempty"`
	// SafariBlockAutofill Indicates whether or not to block the user from using Auto fill in Safari. Requires a supervised device for iOS 13 and later.
	SafariBlockAutofill *bool `json:"safariBlockAutofill,omitempty"`
	// SafariBlockJavaScript Indicates whether or not to block JavaScript in Safari.
	SafariBlockJavaScript *bool `json:"safariBlockJavaScript,omitempty"`
	// SafariBlockPopups Indicates whether or not to block popups in Safari.
	SafariBlockPopups *bool `json:"safariBlockPopups,omitempty"`
	// SafariBlocked Indicates whether or not to block the user from using Safari. Requires a supervised device for iOS 13 and later.
	SafariBlocked *bool `json:"safariBlocked,omitempty"`
	// SafariCookieSettings Cookie settings for Safari.
	SafariCookieSettings *WebBrowserCookieSettings `json:"safariCookieSettings,omitempty"`
	// SafariManagedDomains URLs matching the patterns listed here will be considered managed.
	SafariManagedDomains []string `json:"safariManagedDomains,omitempty"`
	// SafariPasswordAutoFillDomains Users can save passwords in Safari only from URLs matching the patterns listed here. Applies to devices in supervised mode (iOS 9.3 and later).
	SafariPasswordAutoFillDomains []string `json:"safariPasswordAutoFillDomains,omitempty"`
	// SafariRequireFraudWarning Indicates whether or not to require fraud warning in Safari.
	SafariRequireFraudWarning *bool `json:"safariRequireFraudWarning,omitempty"`
	// ScreenCaptureBlocked Indicates whether or not to block the user from taking Screenshots.
	ScreenCaptureBlocked *bool `json:"screenCaptureBlocked,omitempty"`
	// SiriBlocked Indicates whether or not to block the user from using Siri.
	SiriBlocked *bool `json:"siriBlocked,omitempty"`
	// SiriBlockedWhenLocked Indicates whether or not to block the user from using Siri when locked.
	SiriBlockedWhenLocked *bool `json:"siriBlockedWhenLocked,omitempty"`
	// SiriBlockUserGeneratedContent Indicates whether or not to block Siri from querying user-generated content when used on a supervised device.
	SiriBlockUserGeneratedContent *bool `json:"siriBlockUserGeneratedContent,omitempty"`
	// SiriRequireProfanityFilter Indicates whether or not to prevent Siri from dictating, or speaking profane language on supervised device.
	SiriRequireProfanityFilter *bool `json:"siriRequireProfanityFilter,omitempty"`
	// SoftwareUpdatesEnforcedDelayInDays Sets how many days a software update will be delyed for a supervised device. Valid values 0 to 90
	SoftwareUpdatesEnforcedDelayInDays *int `json:"softwareUpdatesEnforcedDelayInDays,omitempty"`
	// SoftwareUpdatesForceDelayed Indicates whether or not to delay user visibility of software updates when the device is in supervised mode.
	SoftwareUpdatesForceDelayed *bool `json:"softwareUpdatesForceDelayed,omitempty"`
	// SpotlightBlockInternetResults Indicates whether or not to block Spotlight search from returning internet results on supervised device.
	SpotlightBlockInternetResults *bool `json:"spotlightBlockInternetResults,omitempty"`
	// VoiceDialingBlocked Indicates whether or not to block voice dialing.
	VoiceDialingBlocked *bool `json:"voiceDialingBlocked,omitempty"`
	// WallpaperBlockModification Indicates whether or not to allow wallpaper modification on supervised device (iOS 9.0 and later) .
	WallpaperBlockModification *bool `json:"wallpaperBlockModification,omitempty"`
	// WiFiConnectOnlyToConfiguredNetworks Indicates whether or not to force the device to use only Wi-Fi networks from configuration profiles when the device is in supervised mode.
	WiFiConnectOnlyToConfiguredNetworks *bool `json:"wiFiConnectOnlyToConfiguredNetworks,omitempty"`
	// ClassroomForceRequestPermissionToLeaveClasses Indicates whether a student enrolled in an unmanaged course via Classroom will request permission from the teacher when attempting to leave the course (iOS 11.3 and later).
	ClassroomForceRequestPermissionToLeaveClasses *bool `json:"classroomForceRequestPermissionToLeaveClasses,omitempty"`
	// KeychainBlockCloudSync Indicates whether or not iCloud keychain synchronization is blocked. Requires a supervised device for iOS 13 and later.
	KeychainBlockCloudSync *bool `json:"keychainBlockCloudSync,omitempty"`
	// PkiBlockOTAUpdates Indicates whether or not over-the-air PKI updates are blocked. Setting this restriction to false does not disable CRL and OCSP checks (iOS 7.0 and later).
	PkiBlockOTAUpdates *bool `json:"pkiBlockOTAUpdates,omitempty"`
	// PrivacyForceLimitAdTracking Indicates if ad tracking is limited.(iOS 7.0 and later).
	PrivacyForceLimitAdTracking *bool `json:"privacyForceLimitAdTracking,omitempty"`
	// EnterpriseBookBlockBackup Indicates whether or not Enterprise book back up is blocked.
	EnterpriseBookBlockBackup *bool `json:"enterpriseBookBlockBackup,omitempty"`
	// EnterpriseBookBlockMetadataSync Indicates whether or not Enterprise book notes and highlights sync is blocked.
	EnterpriseBookBlockMetadataSync *bool `json:"enterpriseBookBlockMetadataSync,omitempty"`
	// AirPrintBlocked Indicates whether or not AirPrint is blocked (iOS 11.0 and later).
	AirPrintBlocked *bool `json:"airPrintBlocked,omitempty"`
	// AirPrintBlockCredentialsStorage Indicates whether or not keychain storage of username and password for Airprint is blocked (iOS 11.0 and later).
	AirPrintBlockCredentialsStorage *bool `json:"airPrintBlockCredentialsStorage,omitempty"`
	// AirPrintForceTrustedTLS Indicates if trusted certificates are required for TLS printing communication (iOS 11.0 and later).
	AirPrintForceTrustedTLS *bool `json:"airPrintForceTrustedTLS,omitempty"`
	// AirPrintBlockiBeaconDiscovery Indicates whether or not iBeacon discovery of AirPrint printers is blocked. This prevents spurious AirPrint Bluetooth beacons from phishing for network traffic (iOS 11.0 and later).
	AirPrintBlockiBeaconDiscovery *bool `json:"airPrintBlockiBeaconDiscovery,omitempty"`
	// FilesNetworkDriveAccessBlocked Indicates if devices can access files or other resources on a network server using the Server Message Block (SMB) protocol. Available for devices running iOS and iPadOS, versions 13.0 and later.
	FilesNetworkDriveAccessBlocked *bool `json:"filesNetworkDriveAccessBlocked,omitempty"`
	// FilesUsbDriveAccessBlocked Indicates if sevices with access can connect to and open files on a USB drive. Available for devices running iOS and iPadOS, versions 13.0 and later.
	FilesUsbDriveAccessBlocked *bool `json:"filesUsbDriveAccessBlocked,omitempty"`
	// WiFiPowerOnForced Indicates whether or not Wi-Fi remains on, even when device is in airplane mode. Available for devices running iOS and iPadOS, versions 13.0 and later.
	WiFiPowerOnForced *bool `json:"wifiPowerOnForced,omitempty"`
	// BlockSystemAppRemoval Indicates whether or not the removal of system apps from the device is blocked on a supervised device (iOS 11.0 and later).
	BlockSystemAppRemoval *bool `json:"blockSystemAppRemoval,omitempty"`
	// VPNBlockCreation Indicates whether or not the creation of VPN configurations is blocked (iOS 11.0 and later).
	VPNBlockCreation *bool `json:"vpnBlockCreation,omitempty"`
	// AppRemovalBlocked Indicates if the removal of apps is allowed.
	AppRemovalBlocked *bool `json:"appRemovalBlocked,omitempty"`
	// UsbRestrictedModeBlocked Indicates if connecting to USB accessories while the device is locked is allowed (iOS 11.4.1 and later).
	UsbRestrictedModeBlocked *bool `json:"usbRestrictedModeBlocked,omitempty"`
	// PasswordBlockAutoFill Indicates if the AutoFill passwords feature is allowed (iOS 12.0 and later).
	PasswordBlockAutoFill *bool `json:"passwordBlockAutoFill,omitempty"`
	// PasswordBlockProximityRequests Indicates whether or not to block requesting passwords from nearby devices (iOS 12.0 and later).
	PasswordBlockProximityRequests *bool `json:"passwordBlockProximityRequests,omitempty"`
	// PasswordBlockAirDropSharing Indicates whether or not to block sharing passwords with the AirDrop passwords feature iOS 12.0 and later).
	PasswordBlockAirDropSharing *bool `json:"passwordBlockAirDropSharing,omitempty"`
	// DateAndTimeForceSetAutomatically Indicates whether or not the Date and Time "Set Automatically" feature is enabled and cannot be turned off by the user (iOS 12.0 and later).
	DateAndTimeForceSetAutomatically *bool `json:"dateAndTimeForceSetAutomatically,omitempty"`
	// ContactsAllowManagedToUnmanagedWrite Indicates whether or not managed apps can write contacts to unmanaged contacts accounts (iOS 12.0 and later).
	ContactsAllowManagedToUnmanagedWrite *bool `json:"contactsAllowManagedToUnmanagedWrite,omitempty"`
	// ContactsAllowUnmanagedToManagedRead Indicates whether or not unmanaged apps can read from managed contacts accounts (iOS 12.0 or later).
	ContactsAllowUnmanagedToManagedRead *bool `json:"contactsAllowUnmanagedToManagedRead,omitempty"`
	// CellularBlockPersonalHotspotModification Indicates whether or not to block the user from modifying the personal hotspot setting (iOS 12.2 or later).
	CellularBlockPersonalHotspotModification *bool `json:"cellularBlockPersonalHotspotModification,omitempty"`
	// ContinuousPathKeyboardBlocked Indicates whether or not to block the continuous path keyboard when the device is supervised (iOS 13 or later).
	ContinuousPathKeyboardBlocked *bool `json:"continuousPathKeyboardBlocked,omitempty"`
	// FindMyDeviceInFindMyAppBlocked Indicates whether or not to block Find My Device when the device is supervised (iOS 13 or later).
	FindMyDeviceInFindMyAppBlocked *bool `json:"findMyDeviceInFindMyAppBlocked,omitempty"`
	// FindMyFriendsInFindMyAppBlocked Indicates whether or not to block Find My Friends when the device is supervised (iOS 13 or later).
	FindMyFriendsInFindMyAppBlocked *bool `json:"findMyFriendsInFindMyAppBlocked,omitempty"`
	// ITunesBlocked Indicates whether or not to block the iTunes app. Requires a supervised device for iOS 13 and later.
	ITunesBlocked *bool `json:"iTunesBlocked,omitempty"`
}

// IOSHomeScreenApp undocumented
type IOSHomeScreenApp struct {
	// IOSHomeScreenItem is the base model of IOSHomeScreenApp
	IOSHomeScreenItem
	// BundleID BundleID of app
	BundleID *string `json:"bundleID,omitempty"`
}

// IOSHomeScreenFolder undocumented
type IOSHomeScreenFolder struct {
	// IOSHomeScreenItem is the base model of IOSHomeScreenFolder
	IOSHomeScreenItem
	// Pages Pages of Home Screen Layout Icons which must be Application Type. This collection can contain a maximum of 500 elements.
	Pages []IOSHomeScreenFolderPage `json:"pages,omitempty"`
}

// IOSHomeScreenFolderPage undocumented
type IOSHomeScreenFolderPage struct {
	// Object is the base model of IOSHomeScreenFolderPage
	Object
	// DisplayName Name of the folder page
	DisplayName *string `json:"displayName,omitempty"`
	// Apps A list of apps to appear on a page within a folder. This collection can contain a maximum of 500 elements.
	Apps []IOSHomeScreenApp `json:"apps,omitempty"`
}

// IOSHomeScreenItem undocumented
type IOSHomeScreenItem struct {
	// Object is the base model of IOSHomeScreenItem
	Object
	// DisplayName Name of the app
	DisplayName *string `json:"displayName,omitempty"`
}

// IOSHomeScreenPage undocumented
type IOSHomeScreenPage struct {
	// Object is the base model of IOSHomeScreenPage
	Object
	// DisplayName Name of the page
	DisplayName *string `json:"displayName,omitempty"`
	// Icons A list of apps and folders to appear on a page. This collection can contain a maximum of 500 elements.
	Icons []IOSHomeScreenItem `json:"icons,omitempty"`
}

// IOSImportedPFXCertificateProfile iOS PFX Import certificate profile
type IOSImportedPFXCertificateProfile struct {
	// IOSCertificateProfile is the base model of IOSImportedPFXCertificateProfile
	IOSCertificateProfile
	// IntendedPurpose Intended Purpose of the Certificate Profile - which could be Unassigned, SmimeEncryption, SmimeSigning etc.
	IntendedPurpose *IntendedPurpose `json:"intendedPurpose,omitempty"`
	// ManagedDeviceCertificateStates undocumented
	ManagedDeviceCertificateStates []ManagedDeviceCertificateState `json:"managedDeviceCertificateStates,omitempty"`
}

// IOSKerberosSingleSignOnExtension undocumented
type IOSKerberosSingleSignOnExtension struct {
	// KerberosSingleSignOnExtension is the base model of IOSKerberosSingleSignOnExtension
	KerberosSingleSignOnExtension
}

// IOSLobApp Contains properties and inherited properties for iOS Line Of Business apps.
type IOSLobApp struct {
	// MobileLobApp is the base model of IOSLobApp
	MobileLobApp
	// BundleID The Identity Name.
	BundleID *string `json:"bundleId,omitempty"`
	// ApplicableDeviceType The iOS architecture for which this app can run on.
	ApplicableDeviceType *IOSDeviceType `json:"applicableDeviceType,omitempty"`
	// MinimumSupportedOperatingSystem The value for the minimum applicable operating system.
	MinimumSupportedOperatingSystem *IOSMinimumOperatingSystem `json:"minimumSupportedOperatingSystem,omitempty"`
	// ExpirationDateTime The expiration time.
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// VersionNumber The version number of iOS Line of Business (LoB) app.
	VersionNumber *string `json:"versionNumber,omitempty"`
	// BuildNumber The build number of iOS Line of Business (LoB) app.
	BuildNumber *string `json:"buildNumber,omitempty"`
	// IdentityVersion The identity version.
	IdentityVersion *string `json:"identityVersion,omitempty"`
}

// IOSLobAppAssignmentSettings undocumented
type IOSLobAppAssignmentSettings struct {
	// MobileAppAssignmentSettings is the base model of IOSLobAppAssignmentSettings
	MobileAppAssignmentSettings
	// VPNConfigurationID The VPN Configuration Id to apply for this app.
	VPNConfigurationID *string `json:"vpnConfigurationId,omitempty"`
	// UninstallOnDeviceRemoval Whether or not to uninstall the app when device is removed from Intune.
	UninstallOnDeviceRemoval *bool `json:"uninstallOnDeviceRemoval,omitempty"`
}

// IOSLobAppProvisioningConfiguration This topic provides descriptions of the declared methods, properties and relationships exposed by the iOS Lob App Provisioning Configuration resource.
type IOSLobAppProvisioningConfiguration struct {
	// Entity is the base model of IOSLobAppProvisioningConfiguration
	Entity
	// ExpirationDateTime Optional profile expiration date and time.
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// PayloadFileName Payload file name (*.mobileprovision | *.xml).
	PayloadFileName *string `json:"payloadFileName,omitempty"`
	// Payload Payload. (UTF8 encoded byte array)
	Payload *Binary `json:"payload,omitempty"`
	// RoleScopeTagIDs List of Scope Tags for this iOS LOB app provisioning configuration entity.
	RoleScopeTagIDs []string `json:"roleScopeTagIds,omitempty"`
	// CreatedDateTime DateTime the object was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// Description Admin provided description of the Device Configuration.
	Description *string `json:"description,omitempty"`
	// LastModifiedDateTime DateTime the object was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// DisplayName Admin provided name of the device configuration.
	DisplayName *string `json:"displayName,omitempty"`
	// Version Version of the device configuration.
	Version *int `json:"version,omitempty"`
	// GroupAssignments undocumented
	GroupAssignments []MobileAppProvisioningConfigGroupAssignment `json:"groupAssignments,omitempty"`
	// Assignments undocumented
	Assignments []IOSLobAppProvisioningConfigurationAssignment `json:"assignments,omitempty"`
	// DeviceStatuses undocumented
	DeviceStatuses []ManagedDeviceMobileAppConfigurationDeviceStatus `json:"deviceStatuses,omitempty"`
	// UserStatuses undocumented
	UserStatuses []ManagedDeviceMobileAppConfigurationUserStatus `json:"userStatuses,omitempty"`
}

// IOSLobAppProvisioningConfigurationAssignment A class containing the properties used for Group Assignment of an iOS LOB App Provisioning and Configuration.
type IOSLobAppProvisioningConfigurationAssignment struct {
	// Entity is the base model of IOSLobAppProvisioningConfigurationAssignment
	Entity
	// Target The target group assignment defined by the admin.
	Target *DeviceAndAppManagementAssignmentTarget `json:"target,omitempty"`
}

// IOSLobAppProvisioningConfigurationPolicySetItem A class containing the properties used for iOS lob app provisioning configuration PolicySetItem.
type IOSLobAppProvisioningConfigurationPolicySetItem struct {
	// PolicySetItem is the base model of IOSLobAppProvisioningConfigurationPolicySetItem
	PolicySetItem
}

// IOSManagedAppProtection Policy used to configure detailed management settings targeted to specific security groups and for a specified set of apps on an iOS device
type IOSManagedAppProtection struct {
	// TargetedManagedAppProtection is the base model of IOSManagedAppProtection
	TargetedManagedAppProtection
	// AppDataEncryptionType Type of encryption which should be used for data in a managed app.
	AppDataEncryptionType *ManagedAppDataEncryptionType `json:"appDataEncryptionType,omitempty"`
	// MinimumRequiredSdkVersion Versions less than the specified version will block the managed app from accessing company data.
	MinimumRequiredSdkVersion *string `json:"minimumRequiredSdkVersion,omitempty"`
	// DeployedAppCount Count of apps to which the current policy is deployed.
	DeployedAppCount *int `json:"deployedAppCount,omitempty"`
	// FaceIDBlocked Indicates whether use of the FaceID is allowed in place of a pin if PinRequired is set to True.
	FaceIDBlocked *bool `json:"faceIdBlocked,omitempty"`
	// ExemptedAppProtocols Apps in this list will be exempt from the policy and will be able to receive data from managed apps.
	ExemptedAppProtocols []KeyValuePair `json:"exemptedAppProtocols,omitempty"`
	// MinimumWipeSdkVersion Versions less than the specified version will block the managed app from accessing company data.
	MinimumWipeSdkVersion *string `json:"minimumWipeSdkVersion,omitempty"`
	// AllowedIOSDeviceModels Semicolon seperated list of device models allowed, as a string, for the managed app to work.
	AllowedIOSDeviceModels *string `json:"allowedIosDeviceModels,omitempty"`
	// AppActionIfIOSDeviceModelNotAllowed Defines a managed app behavior, either block or wipe, if the specified device model is not allowed.
	AppActionIfIOSDeviceModelNotAllowed *ManagedAppRemediationAction `json:"appActionIfIosDeviceModelNotAllowed,omitempty"`
	// ThirdPartyKeyboardsBlocked Defines if third party keyboards are allowed while accessing a managed app
	ThirdPartyKeyboardsBlocked *bool `json:"thirdPartyKeyboardsBlocked,omitempty"`
	// FilterOpenInToOnlyManagedApps Defines if open-in operation is supported from the managed app to the filesharing locations selected. This setting only applies when AllowedOutboundDataTransferDestinations is set to ManagedApps and DisableProtectionOfManagedOutboundOpenInData is set to False.
	FilterOpenInToOnlyManagedApps *bool `json:"filterOpenInToOnlyManagedApps,omitempty"`
	// DisableProtectionOfManagedOutboundOpenInData Disable protection of data transferred to other apps through IOS OpenIn option. This setting is only allowed to be True when AllowedOutboundDataTransferDestinations is set to ManagedApps.
	DisableProtectionOfManagedOutboundOpenInData *bool `json:"disableProtectionOfManagedOutboundOpenInData,omitempty"`
	// ProtectInboundDataFromUnknownSources Protect incoming data from unknown source. This setting is only allowed to be True when AllowedInboundDataTransferSources is set to AllApps.
	ProtectInboundDataFromUnknownSources *bool `json:"protectInboundDataFromUnknownSources,omitempty"`
	// CustomBrowserProtocol A custom browser protocol to open weblink on iOS.
	CustomBrowserProtocol *string `json:"customBrowserProtocol,omitempty"`
	// Apps undocumented
	Apps []ManagedMobileApp `json:"apps,omitempty"`
	// DeploymentSummary undocumented
	DeploymentSummary *ManagedAppPolicyDeploymentSummary `json:"deploymentSummary,omitempty"`
}

// IOSManagedAppRegistration Represents the synchronization details of an ios app, with management capabilities, for a specific user.
type IOSManagedAppRegistration struct {
	// ManagedAppRegistration is the base model of IOSManagedAppRegistration
	ManagedAppRegistration
}

// IOSMinimumOperatingSystem undocumented
type IOSMinimumOperatingSystem struct {
	// Object is the base model of IOSMinimumOperatingSystem
	Object
	// V8_0 Version 8.0 or later.
	V8_0 *bool `json:"v8_0,omitempty"`
	// V9_0 Version 9.0 or later.
	V9_0 *bool `json:"v9_0,omitempty"`
	// V10_0 Version 10.0 or later.
	V10_0 *bool `json:"v10_0,omitempty"`
	// V11_0 Version 11.0 or later.
	V11_0 *bool `json:"v11_0,omitempty"`
	// V12_0 Version 12.0 or later.
	V12_0 *bool `json:"v12_0,omitempty"`
	// V13_0 Version 13.0 or later.
	V13_0 *bool `json:"v13_0,omitempty"`
}

// IOSMobileAppConfiguration Contains properties, inherited properties and actions for iOS mobile app configurations.
type IOSMobileAppConfiguration struct {
	// ManagedDeviceMobileAppConfiguration is the base model of IOSMobileAppConfiguration
	ManagedDeviceMobileAppConfiguration
	// EncodedSettingXML mdm app configuration Base64 binary.
	EncodedSettingXML *Binary `json:"encodedSettingXml,omitempty"`
	// Settings app configuration setting items.
	Settings []AppConfigurationSettingItem `json:"settings,omitempty"`
}

// IOSMobileAppIdentifier undocumented
type IOSMobileAppIdentifier struct {
	// MobileAppIdentifier is the base model of IOSMobileAppIdentifier
	MobileAppIdentifier
	// BundleID The identifier for an app, as specified in the app store.
	BundleID *string `json:"bundleId,omitempty"`
}

// IOSNetworkUsageRule undocumented
type IOSNetworkUsageRule struct {
	// Object is the base model of IOSNetworkUsageRule
	Object
	// ManagedApps Information about the managed apps that this rule is going to apply to. This collection can contain a maximum of 500 elements.
	ManagedApps []AppListItem `json:"managedApps,omitempty"`
	// CellularDataBlockWhenRoaming If set to true, corresponding managed apps will not be allowed to use cellular data when roaming.
	CellularDataBlockWhenRoaming *bool `json:"cellularDataBlockWhenRoaming,omitempty"`
	// CellularDataBlocked If set to true, corresponding managed apps will not be allowed to use cellular data at any time.
	CellularDataBlocked *bool `json:"cellularDataBlocked,omitempty"`
}

// IOSNotificationSettings undocumented
type IOSNotificationSettings struct {
	// Object is the base model of IOSNotificationSettings
	Object
	// BundleID Bundle id of app to which to apply these notification settings.
	BundleID *string `json:"bundleID,omitempty"`
	// AppName Application name to be associated with the bundleID.
	AppName *string `json:"appName,omitempty"`
	// Publisher Publisher to be associated with the bundleID.
	Publisher *string `json:"publisher,omitempty"`
	// Enabled Indicates whether notifications are allowed for this app.
	Enabled *bool `json:"enabled,omitempty"`
	// ShowInNotificationCenter Indicates whether notifications can be shown in notification center.
	ShowInNotificationCenter *bool `json:"showInNotificationCenter,omitempty"`
	// ShowOnLockScreen Indicates whether notifications can be shown on the lock screen.
	ShowOnLockScreen *bool `json:"showOnLockScreen,omitempty"`
	// AlertType Indicates the type of alert for notifications for this app.
	AlertType *IOSNotificationAlertType `json:"alertType,omitempty"`
	// BadgesEnabled Indicates whether badges are allowed for this app.
	BadgesEnabled *bool `json:"badgesEnabled,omitempty"`
	// SoundsEnabled Indicates whether sounds are allowed for this app.
	SoundsEnabled *bool `json:"soundsEnabled,omitempty"`
}

// IOSPkcsCertificateProfile iOS PKCS certificate profile.
type IOSPkcsCertificateProfile struct {
	// IOSCertificateProfileBase is the base model of IOSPkcsCertificateProfile
	IOSCertificateProfileBase
	// CertificationAuthority PKCS Certification Authority.
	CertificationAuthority *string `json:"certificationAuthority,omitempty"`
	// CertificationAuthorityName PKCS Certification Authority Name.
	CertificationAuthorityName *string `json:"certificationAuthorityName,omitempty"`
	// CertificateTemplateName PKCS Certificate Template Name.
	CertificateTemplateName *string `json:"certificateTemplateName,omitempty"`
	// SubjectAlternativeNameFormatString Custom String that defines the AAD Attribute.
	SubjectAlternativeNameFormatString *string `json:"subjectAlternativeNameFormatString,omitempty"`
	// ManagedDeviceCertificateStates undocumented
	ManagedDeviceCertificateStates []ManagedDeviceCertificateState `json:"managedDeviceCertificateStates,omitempty"`
}

// IOSScepCertificateProfile iOS SCEP certificate profile.
type IOSScepCertificateProfile struct {
	// IOSCertificateProfileBase is the base model of IOSScepCertificateProfile
	IOSCertificateProfileBase
	// ScepServerUrls SCEP Server Url(s).
	ScepServerUrls []string `json:"scepServerUrls,omitempty"`
	// SubjectNameFormatString Custom format to use with SubjectNameFormat = Custom. Example: CN={{EmailAddress}},E={{EmailAddress}},OU=Enterprise Users,O=Contoso Corporation,L=Redmond,ST=WA,C=US
	SubjectNameFormatString *string `json:"subjectNameFormatString,omitempty"`
	// KeyUsage SCEP Key Usage.
	KeyUsage *KeyUsages `json:"keyUsage,omitempty"`
	// KeySize SCEP Key Size.
	KeySize *KeySize `json:"keySize,omitempty"`
	// ExtendedKeyUsages Extended Key Usage (EKU) settings. This collection can contain a maximum of 500 elements.
	ExtendedKeyUsages []ExtendedKeyUsage `json:"extendedKeyUsages,omitempty"`
	// SubjectAlternativeNameFormatString Custom String that defines the AAD Attribute.
	SubjectAlternativeNameFormatString *string `json:"subjectAlternativeNameFormatString,omitempty"`
	// CertificateStore Target store certificate
	CertificateStore *CertificateStore `json:"certificateStore,omitempty"`
	// CustomSubjectAlternativeNames Custom Subject Alternative Name Settings. This collection can contain a maximum of 500 elements.
	CustomSubjectAlternativeNames []CustomSubjectAlternativeName `json:"customSubjectAlternativeNames,omitempty"`
	// RootCertificate undocumented
	RootCertificate *IOSTrustedRootCertificate `json:"rootCertificate,omitempty"`
	// ManagedDeviceCertificateStates undocumented
	ManagedDeviceCertificateStates []ManagedDeviceCertificateState `json:"managedDeviceCertificateStates,omitempty"`
}

// IOSSingleSignOnSettings undocumented
type IOSSingleSignOnSettings struct {
	// Object is the base model of IOSSingleSignOnSettings
	Object
	// AllowedAppsList List of app identifiers that are allowed to use this login. If this field is omitted, the login applies to all applications on the device. This collection can contain a maximum of 500 elements.
	AllowedAppsList []AppListItem `json:"allowedAppsList,omitempty"`
	// AllowedUrls List of HTTP URLs that must be matched in order to use this login. With iOS 9.0 or later, a wildcard characters may be used.
	AllowedUrls []string `json:"allowedUrls,omitempty"`
	// DisplayName The display name of login settings shown on the receiving device.
	DisplayName *string `json:"displayName,omitempty"`
	// KerberosPrincipalName A Kerberos principal name. If not provided, the user is prompted for one during profile installation.
	KerberosPrincipalName *string `json:"kerberosPrincipalName,omitempty"`
	// KerberosRealm A Kerberos realm name. Case sensitive.
	KerberosRealm *string `json:"kerberosRealm,omitempty"`
}

// IOSStoreApp Contains properties and inherited properties for iOS store apps.
type IOSStoreApp struct {
	// MobileApp is the base model of IOSStoreApp
	MobileApp
	// BundleID The Identity Name.
	BundleID *string `json:"bundleId,omitempty"`
	// AppStoreURL The Apple App Store URL
	AppStoreURL *string `json:"appStoreUrl,omitempty"`
	// ApplicableDeviceType The iOS architecture for which this app can run on.
	ApplicableDeviceType *IOSDeviceType `json:"applicableDeviceType,omitempty"`
	// MinimumSupportedOperatingSystem The value for the minimum applicable operating system.
	MinimumSupportedOperatingSystem *IOSMinimumOperatingSystem `json:"minimumSupportedOperatingSystem,omitempty"`
}

// IOSStoreAppAssignmentSettings undocumented
type IOSStoreAppAssignmentSettings struct {
	// MobileAppAssignmentSettings is the base model of IOSStoreAppAssignmentSettings
	MobileAppAssignmentSettings
	// VPNConfigurationID The VPN Configuration Id to apply for this app.
	VPNConfigurationID *string `json:"vpnConfigurationId,omitempty"`
	// UninstallOnDeviceRemoval Whether or not to uninstall the app when device is removed from Intune.
	UninstallOnDeviceRemoval *bool `json:"uninstallOnDeviceRemoval,omitempty"`
}

// IOSTrustedRootCertificate iOS Trusted Root Certificate configuration profile.
type IOSTrustedRootCertificate struct {
	// DeviceConfiguration is the base model of IOSTrustedRootCertificate
	DeviceConfiguration
	// TrustedRootCertificate Trusted Root Certificate.
	TrustedRootCertificate *Binary `json:"trustedRootCertificate,omitempty"`
	// CertFileName File name to display in UI.
	CertFileName *string `json:"certFileName,omitempty"`
}

// IOSUpdateConfiguration IOS Update Configuration, allows you to configure time window within week to install iOS updates
type IOSUpdateConfiguration struct {
	// DeviceConfiguration is the base model of IOSUpdateConfiguration
	DeviceConfiguration
	// IsEnabled Is setting enabled in UI
	IsEnabled *bool `json:"isEnabled,omitempty"`
	// ActiveHoursStart Active Hours Start (active hours mean the time window when updates install should not happen)
	ActiveHoursStart *TimeOfDay `json:"activeHoursStart,omitempty"`
	// ActiveHoursEnd Active Hours End (active hours mean the time window when updates install should not happen)
	ActiveHoursEnd *TimeOfDay `json:"activeHoursEnd,omitempty"`
	// ScheduledInstallDays Days in week for which active hours are configured. This collection can contain a maximum of 7 elements.
	ScheduledInstallDays []DayOfWeek `json:"scheduledInstallDays,omitempty"`
	// UtcTimeOffsetInMinutes UTC Time Offset indicated in minutes
	UtcTimeOffsetInMinutes *int `json:"utcTimeOffsetInMinutes,omitempty"`
	// EnforcedSoftwareUpdateDelayInDays Days before software updates are visible to iOS devices ranging from 0 to 90 inclusive
	EnforcedSoftwareUpdateDelayInDays *int `json:"enforcedSoftwareUpdateDelayInDays,omitempty"`
}

// IOSUpdateDeviceStatus undocumented
type IOSUpdateDeviceStatus struct {
	// Entity is the base model of IOSUpdateDeviceStatus
	Entity
	// InstallStatus The installation status of the policy report.
	InstallStatus *IOSUpdatesInstallStatus `json:"installStatus,omitempty"`
	// OsVersion The device version that is being reported.
	OsVersion *string `json:"osVersion,omitempty"`
	// DeviceID The device id that is being reported.
	DeviceID *string `json:"deviceId,omitempty"`
	// UserID The User id that is being reported.
	UserID *string `json:"userId,omitempty"`
	// DeviceDisplayName Device name of the DevicePolicyStatus.
	DeviceDisplayName *string `json:"deviceDisplayName,omitempty"`
	// UserName The User Name that is being reported
	UserName *string `json:"userName,omitempty"`
	// DeviceModel The device model that is being reported
	DeviceModel *string `json:"deviceModel,omitempty"`
	// Platform Platform of the device that is being reported
	Platform *int `json:"platform,omitempty"`
	// ComplianceGracePeriodExpirationDateTime The DateTime when device compliance grace period expires
	ComplianceGracePeriodExpirationDateTime *time.Time `json:"complianceGracePeriodExpirationDateTime,omitempty"`
	// Status Compliance status of the policy report.
	Status *ComplianceStatus `json:"status,omitempty"`
	// LastReportedDateTime Last modified date time of the policy report.
	LastReportedDateTime *time.Time `json:"lastReportedDateTime,omitempty"`
	// UserPrincipalName UserPrincipalName.
	UserPrincipalName *string `json:"userPrincipalName,omitempty"`
}

// IOSVPNConfiguration By providing the configurations in this profile you can instruct the iOS device to connect to desired VPN endpoint. By specifying the authentication method and security types expected by VPN endpoint you can make the VPN connection seamless for end user.
type IOSVPNConfiguration struct {
	// AppleVPNConfiguration is the base model of IOSVPNConfiguration
	AppleVPNConfiguration
	// ProviderType Provider type for per-app VPN.
	ProviderType *VPNProviderType `json:"providerType,omitempty"`
	// UserDomain Zscaler only. Enter a static domain to pre-populate the login field with in the Zscaler app. If this is left empty, the user's Azure Active Directory domain will be used instead.
	UserDomain *string `json:"userDomain,omitempty"`
	// StrictEnforcement Zscaler only. Blocks network traffic until the user signs into Zscaler app. "True" means traffic is blocked.
	StrictEnforcement *bool `json:"strictEnforcement,omitempty"`
	// CloudName Zscaler only. Zscaler cloud which the user is assigned to.
	CloudName *string `json:"cloudName,omitempty"`
	// ExcludeList Zscaler only. List of network addresses which are not sent through the Zscaler cloud.
	ExcludeList []string `json:"excludeList,omitempty"`
	// IdentityCertificate undocumented
	IdentityCertificate *IOSCertificateProfileBase `json:"identityCertificate,omitempty"`
	// DerivedCredentialSettings undocumented
	DerivedCredentialSettings *DeviceManagementDerivedCredentialSettings `json:"derivedCredentialSettings,omitempty"`
}

// IOSVPNSecurityAssociationParameters undocumented
type IOSVPNSecurityAssociationParameters struct {
	// Object is the base model of IOSVPNSecurityAssociationParameters
	Object
	// SecurityEncryptionAlgorithm Encryption algorithm
	SecurityEncryptionAlgorithm *VPNEncryptionAlgorithmType `json:"securityEncryptionAlgorithm,omitempty"`
	// SecurityIntegrityAlgorithm Integrity algorithm
	SecurityIntegrityAlgorithm *VPNIntegrityAlgorithmType `json:"securityIntegrityAlgorithm,omitempty"`
	// SecurityDiffieHellmanGroup Diffie-Hellman Group
	SecurityDiffieHellmanGroup *int `json:"securityDiffieHellmanGroup,omitempty"`
	// LifetimeInMinutes Lifetime (minutes)
	LifetimeInMinutes *int `json:"lifetimeInMinutes,omitempty"`
}

// IOSVPPApp Contains properties and inherited properties for iOS Volume-Purchased Program (VPP) Apps.
type IOSVPPApp struct {
	// MobileApp is the base model of IOSVPPApp
	MobileApp
	// UsedLicenseCount The number of VPP licenses in use.
	UsedLicenseCount *int `json:"usedLicenseCount,omitempty"`
	// TotalLicenseCount The total number of VPP licenses.
	TotalLicenseCount *int `json:"totalLicenseCount,omitempty"`
	// ReleaseDateTime The VPP application release date and time.
	ReleaseDateTime *time.Time `json:"releaseDateTime,omitempty"`
	// AppStoreURL The store URL.
	AppStoreURL *string `json:"appStoreUrl,omitempty"`
	// LicensingType The supported License Type.
	LicensingType *VPPLicensingType `json:"licensingType,omitempty"`
	// ApplicableDeviceType The applicable iOS Device Type.
	ApplicableDeviceType *IOSDeviceType `json:"applicableDeviceType,omitempty"`
	// VPPTokenOrganizationName The organization associated with the Apple Volume Purchase Program Token
	VPPTokenOrganizationName *string `json:"vppTokenOrganizationName,omitempty"`
	// VPPTokenAccountType The type of volume purchase program which the given Apple Volume Purchase Program Token is associated with. Possible values are: `business`, `education`.
	VPPTokenAccountType *VPPTokenAccountType `json:"vppTokenAccountType,omitempty"`
	// VPPTokenAppleID The Apple Id associated with the given Apple Volume Purchase Program Token.
	VPPTokenAppleID *string `json:"vppTokenAppleId,omitempty"`
	// BundleID The Identity Name.
	BundleID *string `json:"bundleId,omitempty"`
	// VPPTokenID Identifier of the VPP token associated with this app.
	VPPTokenID *string `json:"vppTokenId,omitempty"`
	// RevokeLicenseActionResults Results of revoke license actions on this app.
	RevokeLicenseActionResults []IOSVPPAppRevokeLicensesActionResult `json:"revokeLicenseActionResults,omitempty"`
	// AssignedLicenses undocumented
	AssignedLicenses []IOSVPPAppAssignedLicense `json:"assignedLicenses,omitempty"`
}

// IOSVPPAppAssignedDeviceLicense iOS Volume Purchase Program device license assignment. This class does not support Create, Delete, or Update.
type IOSVPPAppAssignedDeviceLicense struct {
	// IOSVPPAppAssignedLicense is the base model of IOSVPPAppAssignedDeviceLicense
	IOSVPPAppAssignedLicense
	// ManagedDeviceID The managed device ID.
	ManagedDeviceID *string `json:"managedDeviceId,omitempty"`
	// DeviceName The device name.
	DeviceName *string `json:"deviceName,omitempty"`
}

// IOSVPPAppAssignedLicense iOS Volume Purchase Program license assignment. This class does not support Create, Delete, or Update.
type IOSVPPAppAssignedLicense struct {
	// Entity is the base model of IOSVPPAppAssignedLicense
	Entity
	// UserEmailAddress The user email address.
	UserEmailAddress *string `json:"userEmailAddress,omitempty"`
	// UserID The user ID.
	UserID *string `json:"userId,omitempty"`
	// UserName The user name.
	UserName *string `json:"userName,omitempty"`
	// UserPrincipalName The user principal name.
	UserPrincipalName *string `json:"userPrincipalName,omitempty"`
}

// IOSVPPAppAssignedUserLicense iOS Volume Purchase Program user license assignment. This class does not support Create, Delete, or Update.
type IOSVPPAppAssignedUserLicense struct {
	// IOSVPPAppAssignedLicense is the base model of IOSVPPAppAssignedUserLicense
	IOSVPPAppAssignedLicense
}

// IOSVPPAppAssignmentSettings undocumented
type IOSVPPAppAssignmentSettings struct {
	// MobileAppAssignmentSettings is the base model of IOSVPPAppAssignmentSettings
	MobileAppAssignmentSettings
	// UseDeviceLicensing Whether or not to use device licensing.
	UseDeviceLicensing *bool `json:"useDeviceLicensing,omitempty"`
	// VPNConfigurationID The VPN Configuration Id to apply for this app.
	VPNConfigurationID *string `json:"vpnConfigurationId,omitempty"`
	// UninstallOnDeviceRemoval Whether or not to uninstall the app when device is removed from Intune.
	UninstallOnDeviceRemoval *bool `json:"uninstallOnDeviceRemoval,omitempty"`
}

// IOSVPPAppRevokeLicensesActionResult undocumented
type IOSVPPAppRevokeLicensesActionResult struct {
	// Object is the base model of IOSVPPAppRevokeLicensesActionResult
	Object
	// UserID UserId associated with the action.
	UserID *string `json:"userId,omitempty"`
	// ManagedDeviceID DeviceId associated with the action.
	ManagedDeviceID *string `json:"managedDeviceId,omitempty"`
	// TotalLicensesCount A count of the number of licenses for which revoke was attempted.
	TotalLicensesCount *int `json:"totalLicensesCount,omitempty"`
	// FailedLicensesCount A count of the number of licenses for which revoke failed.
	FailedLicensesCount *int `json:"failedLicensesCount,omitempty"`
	// ActionFailureReason The reason for the revoke licenses action failure.
	ActionFailureReason *VPPTokenActionFailureReason `json:"actionFailureReason,omitempty"`
	// ActionName Action name
	ActionName *string `json:"actionName,omitempty"`
	// ActionState State of the action
	ActionState *ActionState `json:"actionState,omitempty"`
	// StartDateTime Time the action was initiated
	StartDateTime *time.Time `json:"startDateTime,omitempty"`
	// LastUpdatedDateTime Time the action state was last updated
	LastUpdatedDateTime *time.Time `json:"lastUpdatedDateTime,omitempty"`
}

// IOSVPPEBook A class containing the properties for iOS Vpp eBook.
type IOSVPPEBook struct {
	// ManagedEBook is the base model of IOSVPPEBook
	ManagedEBook
	// VPPTokenID The Vpp token ID.
	VPPTokenID *UUID `json:"vppTokenId,omitempty"`
	// AppleID The Apple ID associated with Vpp token.
	AppleID *string `json:"appleId,omitempty"`
	// VPPOrganizationName The Vpp token's organization name.
	VPPOrganizationName *string `json:"vppOrganizationName,omitempty"`
	// Genres Genres.
	Genres []string `json:"genres,omitempty"`
	// Language Language.
	Language *string `json:"language,omitempty"`
	// Seller Seller.
	Seller *string `json:"seller,omitempty"`
	// TotalLicenseCount Total license count.
	TotalLicenseCount *int `json:"totalLicenseCount,omitempty"`
	// UsedLicenseCount Used license count.
	UsedLicenseCount *int `json:"usedLicenseCount,omitempty"`
	// RoleScopeTagIDs List of Scope Tags for this Entity instance.
	RoleScopeTagIDs []string `json:"roleScopeTagIds,omitempty"`
}

// IOSVPPEBookAssignment Contains properties used to assign an iOS VPP EBook to a group.
type IOSVPPEBookAssignment struct {
	// ManagedEBookAssignment is the base model of IOSVPPEBookAssignment
	ManagedEBookAssignment
}

// IOSWebContentFilterAutoFilter undocumented
type IOSWebContentFilterAutoFilter struct {
	// IOSWebContentFilterBase is the base model of IOSWebContentFilterAutoFilter
	IOSWebContentFilterBase
	// AllowedUrls Additional URLs allowed for access
	AllowedUrls []string `json:"allowedUrls,omitempty"`
	// BlockedUrls Additional URLs blocked for access
	BlockedUrls []string `json:"blockedUrls,omitempty"`
}

// IOSWebContentFilterBase undocumented
type IOSWebContentFilterBase struct {
	// Object is the base model of IOSWebContentFilterBase
	Object
}

// IOSWebContentFilterSpecificWebsitesAccess undocumented
type IOSWebContentFilterSpecificWebsitesAccess struct {
	// IOSWebContentFilterBase is the base model of IOSWebContentFilterSpecificWebsitesAccess
	IOSWebContentFilterBase
	// SpecificWebsitesOnly URL bookmarks which will be installed into built-in browser and user is only allowed to access websites through bookmarks. This collection can contain a maximum of 500 elements.
	SpecificWebsitesOnly []IOSBookmark `json:"specificWebsitesOnly,omitempty"`
	// WebsiteList URL bookmarks which will be installed into built-in browser and user is only allowed to access websites through bookmarks. This collection can contain a maximum of 500 elements.
	WebsiteList []IOSBookmark `json:"websiteList,omitempty"`
}

// IOSWiFiConfiguration By providing the configurations in this profile you can instruct the iOS device to connect to desired Wi-Fi endpoint. By specifying the authentication method and security types expected by Wi-Fi endpoint you can make the Wi-Fi connection seamless for end user. This profile provides limited and simpler security types than Enterprise Wi-Fi profile.
type IOSWiFiConfiguration struct {
	// DeviceConfiguration is the base model of IOSWiFiConfiguration
	DeviceConfiguration
	// NetworkName Network Name
	NetworkName *string `json:"networkName,omitempty"`
	// Ssid This is the name of the Wi-Fi network that is broadcast to all devices.
	Ssid *string `json:"ssid,omitempty"`
	// ConnectAutomatically Connect automatically when this network is in range. Setting this to true will skip the user prompt and automatically connect the device to Wi-Fi network.
	ConnectAutomatically *bool `json:"connectAutomatically,omitempty"`
	// ConnectWhenNetworkNameIsHidden Connect when the network is not broadcasting its name (SSID). When set to true, this profile forces the device to connect to a network that doesn't broadcast its SSID to all devices.
	ConnectWhenNetworkNameIsHidden *bool `json:"connectWhenNetworkNameIsHidden,omitempty"`
	// WiFiSecurityType Indicates whether Wi-Fi endpoint uses an EAP based security type.
	WiFiSecurityType *WiFiSecurityType `json:"wiFiSecurityType,omitempty"`
	// ProxySettings Proxy Type for this Wi-Fi connection
	ProxySettings *WiFiProxySetting `json:"proxySettings,omitempty"`
	// ProxyManualAddress IP Address or DNS hostname of the proxy server when manual configuration is selected.
	ProxyManualAddress *string `json:"proxyManualAddress,omitempty"`
	// ProxyManualPort Port of the proxy server when manual configuration is selected.
	ProxyManualPort *int `json:"proxyManualPort,omitempty"`
	// ProxyAutomaticConfigurationURL URL of the proxy server automatic configuration script when automatic configuration is selected. This URL is typically the location of PAC (Proxy Auto Configuration) file.
	ProxyAutomaticConfigurationURL *string `json:"proxyAutomaticConfigurationUrl,omitempty"`
	// PreSharedKey This is the pre-shared key for WPA Personal Wi-Fi network.
	PreSharedKey *string `json:"preSharedKey,omitempty"`
}