Office365-REST-Python-Client 3.2.0__py3-none-any.whl → 3.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2963) hide show
  1. office365/admin/admin.py +45 -0
  2. office365/admin/baseline_parameter.py +3 -0
  3. office365/admin/baseline_parameter_type.py +14 -0
  4. office365/admin/browser_shared_cookie.py +99 -0
  5. office365/admin/browser_site.py +101 -0
  6. office365/admin/browser_site_list.py +87 -0
  7. office365/admin/configuration_management.py +86 -0
  8. office365/admin/edge/edge.py +25 -0
  9. office365/admin/exchange/admin.py +35 -0
  10. office365/admin/exchange/exchange_message_trace.py +15 -1
  11. office365/admin/exchange/exchange_message_trace_status.py +2 -0
  12. office365/admin/internet_explorer_mode.py +28 -0
  13. office365/admin/message_tracing_root.py +28 -0
  14. office365/admin/microsoft365/apps.py +26 -0
  15. office365/admin/microsoft365/m365_apps_installation_options.py +47 -0
  16. office365/admin/people/insights_settings.py +21 -0
  17. office365/admin/people/profile_property_setting.py +27 -0
  18. office365/admin/people/profile_source.py +48 -0
  19. office365/admin/people/pronouns_settings.py +16 -0
  20. office365/admin/people/settings.py +58 -0
  21. office365/admin/report_settings.py +13 -0
  22. office365/admin/sharepoint/settings.py +88 -1
  23. office365/backuprestore/browse_session_base.py +101 -0
  24. office365/backuprestore/email_notifications_setting.py +40 -0
  25. office365/backuprestore/onedrive_for_business_browse_session.py +16 -0
  26. office365/backuprestore/onedrive_for_business_restore_session.py +68 -0
  27. office365/backuprestore/protection_unit_base.py +92 -0
  28. office365/backuprestore/restorepoints/collection.py +61 -0
  29. office365/backuprestore/restorepoints/search_result.py +6 -0
  30. office365/backuprestore/root.py +354 -0
  31. office365/backuprestore/serviceapps/service_app.py +74 -0
  32. office365/backuprestore/sharepoint_browse_session.py +16 -0
  33. office365/backuprestore/sharepoint_protection_policy.py +60 -0
  34. office365/backuprestore/sharepoint_restore_session.py +66 -0
  35. office365/booking/appointment.py +197 -0
  36. office365/booking/business/business.py +75 -1
  37. office365/booking/business/collection.py +22 -0
  38. office365/booking/currency.py +13 -0
  39. office365/booking/custom_question.py +40 -0
  40. office365/booking/customer.py +51 -0
  41. office365/booking/service.py +145 -1
  42. office365/booking/staff/member.py +76 -0
  43. office365/common/add_large_gallery_view_operation.py +8 -0
  44. office365/common/agent_identity.py +45 -0
  45. office365/common/agent_identity_blueprint.py +41 -0
  46. office365/common/agent_identity_blueprint_principal.py +34 -0
  47. office365/common/agent_user.py +7 -0
  48. office365/common/ai_interaction.py +108 -0
  49. office365/common/akamai_web_application_firewall_provider.py +31 -0
  50. office365/common/anonymous_calendar_sharing_free_busy_detail.py +7 -0
  51. office365/common/anonymous_calendar_sharing_free_busy_reviewer.py +7 -0
  52. office365/common/anonymous_calendar_sharing_free_busy_simple.py +7 -0
  53. office365/common/anonymous_guest_conversation_member.py +16 -0
  54. office365/common/apple_device_features_configuration_base.py +7 -0
  55. office365/common/apple_managed_identity_provider.py +31 -0
  56. office365/common/arkose_fraud_protection_provider.py +31 -0
  57. office365/common/attribute_set.py +21 -0
  58. office365/common/azure_communication_services_user_conversation_member.py +16 -0
  59. office365/common/b2_b_registration_metrics_base.py +27 -0
  60. office365/common/b2_b_sign_in_activity_metrics_base.py +37 -0
  61. office365/common/base_map_feature.py +7 -0
  62. office365/common/building.py +39 -0
  63. office365/common/building_map.py +41 -0
  64. office365/common/complex_extension_value.py +10 -0
  65. office365/common/configuration_baseline.py +40 -0
  66. office365/common/configuration_drift.py +68 -0
  67. office365/common/configuration_monitor.py +103 -0
  68. office365/common/configuration_monitoring_result.py +56 -0
  69. office365/common/configuration_snapshot_job.py +71 -0
  70. office365/common/contract.py +32 -0
  71. office365/common/cross_tenant_access_policy_configuration_default.py +163 -0
  72. office365/common/cross_tenant_access_policy_configuration_partner.py +188 -0
  73. office365/common/cross_tenant_calendar_availability_basic.py +7 -0
  74. office365/common/cross_tenant_calendar_availability_limited_details.py +7 -0
  75. office365/common/cross_tenant_calendar_sharing_free_busy_detail.py +7 -0
  76. office365/common/cross_tenant_calendar_sharing_free_busy_reviewer.py +7 -0
  77. office365/common/cross_tenant_calendar_sharing_free_busy_simple.py +7 -0
  78. office365/common/cross_tenant_identity_sync_policy_partner.py +35 -0
  79. office365/common/cross_tenant_mail_tips_all.py +7 -0
  80. office365/common/cross_tenant_mail_tips_limited.py +7 -0
  81. office365/common/cross_tenant_migration.py +7 -0
  82. office365/common/cross_tenant_open_profile_card.py +7 -0
  83. office365/common/cross_tenant_places_desk_booking.py +7 -0
  84. office365/common/cross_tenant_places_room_booking.py +7 -0
  85. office365/common/custom_authentication_extension.py +25 -0
  86. office365/common/custom_data_provided_resource.py +25 -0
  87. office365/common/custom_data_provided_resource_access_review_upload_session.py +7 -0
  88. office365/common/data_source_configuration.py +19 -0
  89. office365/common/delta_participants.py +31 -0
  90. office365/common/desk.py +51 -0
  91. office365/common/dictionaries.py +10 -0
  92. office365/common/directory_object_partner_reference.py +32 -0
  93. office365/common/domain_dns_mx_record.py +21 -0
  94. office365/common/domain_dns_srv_record.py +41 -0
  95. office365/common/domain_dns_txt_record.py +16 -0
  96. office365/common/domain_dns_unavailable_record.py +16 -0
  97. office365/common/drive_protection_unit.py +26 -0
  98. office365/common/drive_protection_units_bulk_addition_job.py +20 -0
  99. office365/common/drive_restore_artifact.py +26 -0
  100. office365/common/drive_restore_artifacts_bulk_addition_request.py +20 -0
  101. office365/common/edition_upgrade_configuration.py +47 -0
  102. office365/common/email_authentication_method_configuration.py +44 -0
  103. office365/common/emergency_call_event.py +31 -0
  104. office365/common/end_user_settings.py +32 -0
  105. office365/common/endpoint.py +36 -0
  106. office365/common/engagement_async_operation.py +31 -0
  107. office365/common/engagement_conversation_discussion_message.py +7 -0
  108. office365/common/engagement_conversation_question_message.py +16 -0
  109. office365/common/engagement_conversation_system_message.py +7 -0
  110. office365/common/engagement_role.py +33 -0
  111. office365/common/engagement_role_member.py +33 -0
  112. office365/common/enrollment_troubleshooting_event.py +63 -0
  113. office365/common/enterprise_code_signing_certificate.py +57 -0
  114. office365/common/error_detail.py +16 -0
  115. office365/common/event_message_request.py +54 -0
  116. office365/common/event_message_response.py +29 -0
  117. office365/common/exchange_protection_policy.py +60 -0
  118. office365/common/exchange_restore_session.py +68 -0
  119. office365/common/exchange_settings.py +16 -0
  120. office365/common/external_authentication_method.py +21 -0
  121. office365/common/external_authentication_method_configuration.py +54 -0
  122. office365/common/external_domain_name.py +7 -0
  123. office365/common/external_users_self_service_sign_up_events_flow.py +85 -0
  124. office365/common/fido2_authentication_method_configuration.py +72 -0
  125. office365/common/fido2_combination_configuration.py +15 -0
  126. office365/common/fixture_map.py +16 -0
  127. office365/common/floor.py +16 -0
  128. office365/common/footprint_map.py +7 -0
  129. office365/common/granular_drive_restore_artifact.py +16 -0
  130. office365/common/granular_mailbox_restore_artifact.py +21 -0
  131. office365/common/granular_restore_artifact_base.py +62 -0
  132. office365/common/granular_site_restore_artifact.py +16 -0
  133. office365/common/human_security_fraud_protection_provider.py +21 -0
  134. office365/common/identity_built_in_user_flow_attribute.py +7 -0
  135. office365/common/identity_custom_user_flow_attribute.py +7 -0
  136. office365/common/image_info.py +17 -0
  137. office365/common/imported_windows_autopilot_device_identity_upload.py +52 -0
  138. office365/common/intune_brand.py +29 -0
  139. office365/common/ip_named_location.py +27 -0
  140. office365/common/ipv4_range.py +15 -0
  141. office365/common/ipv6_range.py +15 -0
  142. office365/common/key_value.py +15 -0
  143. office365/common/learning_assignment.py +48 -0
  144. office365/common/level_map.py +52 -0
  145. office365/common/mailbox.py +26 -0
  146. office365/common/mailbox_folder.py +104 -0
  147. office365/common/mailbox_item.py +61 -0
  148. office365/common/mailbox_protection_rule.py +16 -0
  149. office365/common/mailbox_protection_unit.py +26 -0
  150. office365/common/mailbox_protection_units_bulk_addition_job.py +20 -0
  151. office365/common/mailbox_restore_artifact.py +26 -0
  152. office365/common/mailbox_restore_artifacts_bulk_addition_request.py +20 -0
  153. office365/common/managed_android_lob_app.py +40 -0
  154. office365/common/managed_android_store_app.py +35 -0
  155. office365/common/managed_app_status_raw.py +21 -0
  156. office365/common/managed_ios_lob_app.py +56 -0
  157. office365/common/managed_ios_store_app.py +45 -0
  158. office365/common/managed_mobile_lob_app.py +45 -0
  159. office365/common/microsoft_account_user_conversation_member.py +16 -0
  160. office365/common/microsoft_authenticator_authentication_method_configuration.py +51 -0
  161. office365/common/microsoft_authenticator_authentication_method_target.py +25 -0
  162. office365/common/microsoft_store_for_business_app.py +45 -0
  163. office365/common/mime_content.py +15 -0
  164. office365/common/mute_participant_operation.py +8 -0
  165. office365/common/oidc_identity_provider.py +69 -0
  166. office365/common/on_attribute_collection_listener.py +25 -0
  167. office365/common/on_attribute_collection_start_custom_extension.py +7 -0
  168. office365/common/on_attribute_collection_start_listener.py +25 -0
  169. office365/common/on_attribute_collection_submit_custom_extension.py +7 -0
  170. office365/common/on_attribute_collection_submit_listener.py +25 -0
  171. office365/common/on_authentication_method_load_start_listener.py +25 -0
  172. office365/common/on_email_otp_send_listener.py +21 -0
  173. office365/common/on_fraud_protection_load_start_listener.py +25 -0
  174. office365/common/on_interactive_auth_flow_start_listener.py +25 -0
  175. office365/common/on_otp_send_custom_extension.py +7 -0
  176. office365/common/on_password_submit_custom_extension.py +7 -0
  177. office365/common/on_password_submit_listener.py +25 -0
  178. office365/common/on_token_issuance_start_listener.py +25 -0
  179. office365/common/on_user_create_start_listener.py +25 -0
  180. office365/common/on_verified_id_claim_validation_listener.py +25 -0
  181. office365/common/operation.py +35 -0
  182. office365/common/os_version_count.py +17 -0
  183. office365/common/participant_joining_notification.py +22 -0
  184. office365/common/participant_left_notification.py +27 -0
  185. office365/common/passkey_authentication_method_target.py +15 -0
  186. office365/common/passkey_profile.py +50 -0
  187. office365/common/phone_user_conversation_member.py +16 -0
  188. office365/common/play_prompt_operation.py +8 -0
  189. office365/common/privacy.py +32 -0
  190. office365/common/prompt.py +10 -0
  191. office365/common/protection_units_bulk_job_base.py +64 -0
  192. office365/common/provision_response.py +15 -0
  193. office365/common/proxied_domain.py +15 -0
  194. office365/common/qr_code.py +46 -0
  195. office365/common/qr_code_pin_authentication_method.py +41 -0
  196. office365/common/qr_code_pin_authentication_method_configuration.py +42 -0
  197. office365/common/qr_pin.py +32 -0
  198. office365/common/reading_assignment_submission.py +123 -0
  199. office365/common/reading_coach_passage.py +63 -0
  200. office365/common/record_operation.py +22 -0
  201. office365/common/reflect_check_in_response.py +70 -0
  202. office365/common/related_tenants_refresh_request.py +16 -0
  203. office365/common/reports_root.py +79 -0
  204. office365/common/request.py +47 -0
  205. office365/common/reseller_delegated_admin_relationship.py +21 -0
  206. office365/common/restore_artifact_base.py +59 -0
  207. office365/common/restore_artifacts_bulk_request_base.py +104 -0
  208. office365/common/restore_point.py +43 -0
  209. office365/common/restore_session_base.py +93 -0
  210. office365/common/role_assignment.py +40 -0
  211. office365/common/role_definition.py +52 -0
  212. office365/common/saml_or_ws_fed_external_domain_federation.py +28 -0
  213. office365/common/section.py +7 -0
  214. office365/common/section_map.py +16 -0
  215. office365/common/send_dtmf_tones_operation.py +26 -0
  216. office365/common/service_announcement_attachment.py +37 -0
  217. office365/common/setting_source.py +17 -0
  218. office365/common/shared_pc_configuration.py +88 -0
  219. office365/common/sharepoint_embedded_configuration.py +14 -0
  220. office365/common/site_protection_rule.py +16 -0
  221. office365/common/site_protection_unit.py +26 -0
  222. office365/common/site_protection_units_bulk_addition_job.py +20 -0
  223. office365/common/site_restore_artifact.py +26 -0
  224. office365/common/site_restore_artifacts_bulk_addition_request.py +20 -0
  225. office365/common/skype_for_business_user_conversation_member.py +21 -0
  226. office365/common/skype_user_conversation_member.py +16 -0
  227. office365/common/software_oath_authentication_method.py +16 -0
  228. office365/common/software_oath_authentication_method_configuration.py +32 -0
  229. office365/common/speaker_assignment_submission.py +108 -0
  230. office365/common/storage_quota_breakdown.py +26 -0
  231. office365/common/subscribe_to_tone_operation.py +8 -0
  232. office365/common/task_file_attachment.py +11 -0
  233. office365/common/teamwork_hosted_content.py +21 -0
  234. office365/common/temporary_access_pass_authentication_method_configuration.py +57 -0
  235. office365/common/unit_map.py +16 -0
  236. office365/common/verifiable_credential_authentication_method_target.py +15 -0
  237. office365/common/verifiable_credentials_authentication_method_configuration.py +34 -0
  238. office365/common/voice_authentication_method_configuration.py +37 -0
  239. office365/common/web_app.py +21 -0
  240. office365/common/what_if_analysis_result.py +30 -0
  241. office365/communications/aad_user_conversation_member_result.py +14 -0
  242. office365/communications/aad_user_notification_recipient.py +14 -0
  243. office365/communications/accept_join_response.py +10 -0
  244. office365/communications/app_hosted_media_config.py +14 -0
  245. office365/communications/application_identity.py +15 -0
  246. office365/communications/application_instance_identity.py +15 -0
  247. office365/communications/attendance_interval.py +17 -0
  248. office365/communications/audio_conferencing.py +20 -0
  249. office365/communications/azure_communication_services_user_identity.py +14 -0
  250. office365/communications/broadcast_meeting_caption_settings.py +17 -0
  251. office365/communications/call_participant_info.py +15 -0
  252. office365/communications/callrecords/administrative_unit_info.py +14 -0
  253. office365/communications/callrecords/call_record.py +13 -1
  254. office365/communications/callrecords/client_user_agent.py +19 -0
  255. office365/communications/callrecords/collection.py +8 -0
  256. office365/communications/callrecords/device_info.py +34 -0
  257. office365/communications/callrecords/direct_routing_log_row.py +47 -0
  258. office365/communications/callrecords/endpoint.py +8 -1
  259. office365/communications/callrecords/failure_info.py +16 -0
  260. office365/communications/callrecords/feedback_token_set.py +10 -0
  261. office365/communications/callrecords/media.py +23 -0
  262. office365/communications/callrecords/media_stream.py +65 -0
  263. office365/communications/callrecords/network_info.py +53 -0
  264. office365/communications/callrecords/organizer.py +7 -0
  265. office365/communications/callrecords/participant.py +7 -0
  266. office365/communications/callrecords/participant_base.py +31 -0
  267. office365/communications/callrecords/participant_endpoint.py +23 -0
  268. office365/communications/callrecords/pstn_call_log_row.py +40 -0
  269. office365/communications/callrecords/segment.py +34 -0
  270. office365/communications/callrecords/service_endpoint.py +10 -0
  271. office365/communications/callrecords/service_user_agent.py +15 -0
  272. office365/communications/callrecords/session.py +13 -1
  273. office365/communications/callrecords/trace_route_hop.py +20 -0
  274. office365/communications/callrecords/user_agent.py +15 -0
  275. office365/communications/callrecords/user_feedback.py +18 -0
  276. office365/communications/callrecords/user_identity.py +14 -0
  277. office365/communications/callrecords/wifi_band.py +15 -0
  278. office365/communications/callrecords/wifi_radio_type.py +18 -0
  279. office365/communications/calls/ai_insight.py +63 -0
  280. office365/communications/calls/audio_routing_group.py +32 -0
  281. office365/communications/calls/call.py +81 -5
  282. office365/communications/calls/content_sharing_session.py +7 -0
  283. office365/communications/calls/ended_event_message_detail.py +6 -0
  284. office365/communications/calls/event.py +40 -0
  285. office365/communications/calls/incoming_context.py +14 -1
  286. office365/communications/calls/invitation_participant_info.py +4 -0
  287. office365/communications/calls/media_state.py +15 -0
  288. office365/communications/calls/options.py +8 -0
  289. office365/communications/calls/participant.py +48 -1
  290. office365/communications/calls/participant_info.py +17 -1
  291. office365/communications/calls/route.py +13 -1
  292. office365/communications/calls/transcription_info.py +17 -0
  293. office365/communications/chat_members_notification_recipient.py +14 -0
  294. office365/communications/chat_renamed_event_message_detail.py +17 -0
  295. office365/communications/chat_restrictions.py +14 -0
  296. office365/communications/cloud_communications.py +35 -1
  297. office365/communications/comms_notification.py +15 -0
  298. office365/communications/comms_notifications.py +18 -0
  299. office365/communications/conversation_member_role_updated_event_message_detail.py +19 -0
  300. office365/communications/emergency_caller_info.py +19 -0
  301. office365/communications/encrypted_identity.py +10 -0
  302. office365/communications/engagement_identity_set.py +16 -0
  303. office365/communications/guest_identity.py +14 -0
  304. office365/communications/incoming_call_options.py +10 -0
  305. office365/communications/invite_new_bot_response.py +14 -0
  306. office365/communications/join_meeting_id_settings.py +16 -0
  307. office365/communications/max_work_location_details.py +15 -0
  308. office365/communications/media_config.py +10 -0
  309. office365/communications/media_info.py +15 -0
  310. office365/communications/media_prompt.py +15 -0
  311. office365/communications/meetings/join_meeting_id_info.py +13 -0
  312. office365/communications/onlinemeetings/attendance_record.py +62 -0
  313. office365/communications/onlinemeetings/base.py +86 -5
  314. office365/communications/onlinemeetings/broadcast_settings.py +6 -1
  315. office365/communications/onlinemeetings/chatmode.py +8 -9
  316. office365/communications/onlinemeetings/collection.py +9 -1
  317. office365/communications/onlinemeetings/engagement_conversation.py +16 -2
  318. office365/communications/onlinemeetings/meeting_attendance_report.py +64 -0
  319. office365/communications/onlinemeetings/online_meeting_info.py +6 -0
  320. office365/communications/onlinemeetings/restricted.py +16 -0
  321. office365/communications/onlinemeetings/sensitivity_label_assignment.py +14 -0
  322. office365/communications/operations/comms.py +22 -1
  323. office365/communications/organizer_meeting_info.py +15 -0
  324. office365/communications/out_of_office_settings.py +15 -0
  325. office365/communications/outgoing_call_options.py +10 -0
  326. office365/communications/participant_joining_response.py +10 -0
  327. office365/communications/phone_identity.py +10 -0
  328. office365/communications/presences/presence.py +19 -1
  329. office365/communications/presences/status_message.py +4 -0
  330. office365/communications/recording_info.py +17 -0
  331. office365/communications/reject_join_response.py +15 -0
  332. office365/communications/removed_state.py +14 -0
  333. office365/communications/service_hosted_media_config.py +16 -0
  334. office365/communications/teleconference_device_audio_quality.py +10 -0
  335. office365/communications/teleconference_device_media_quality.py +38 -0
  336. office365/communications/teleconference_device_screen_sharing_quality.py +10 -0
  337. office365/communications/teleconference_device_video_quality.py +17 -0
  338. office365/communications/teleconferencedevicequality.py +32 -1
  339. office365/communications/token_meeting_info.py +14 -0
  340. office365/communications/tone_info.py +16 -0
  341. office365/communications/user_identity.py +14 -0
  342. office365/communications/user_work_location.py +18 -0
  343. office365/communications/virtualevents/external_information.py +15 -0
  344. office365/communications/virtualevents/external_registration_information.py +15 -0
  345. office365/communications/virtualevents/presenter.py +35 -0
  346. office365/communications/virtualevents/presenter_details.py +21 -0
  347. office365/communications/virtualevents/presenter_info.py +17 -0
  348. office365/communications/virtualevents/registration.py +109 -0
  349. office365/communications/virtualevents/registration_configuration.py +52 -0
  350. office365/communications/virtualevents/registration_custom_question.py +31 -0
  351. office365/communications/virtualevents/registration_predefined_question.py +25 -0
  352. office365/communications/virtualevents/registration_question_answer.py +19 -0
  353. office365/communications/virtualevents/registration_question_base.py +21 -0
  354. office365/communications/virtualevents/root.py +21 -0
  355. office365/communications/virtualevents/session.py +35 -0
  356. office365/communications/virtualevents/settings.py +6 -0
  357. office365/communications/virtualevents/townhall.py +83 -0
  358. office365/communications/virtualevents/townhall_registration_configuration.py +7 -0
  359. office365/communications/virtualevents/virtual_event.py +78 -1
  360. office365/communications/virtualevents/webinar.py +65 -0
  361. office365/communications/virtualevents/webinar_registration_configuration.py +7 -0
  362. office365/copilot/action_result_part.py +4 -1
  363. office365/copilot/admin_catalog.py +28 -0
  364. office365/copilot/admin_limited_mode.py +21 -0
  365. office365/copilot/admin_setting.py +24 -0
  366. office365/copilot/ai_interaction_history.py +9 -0
  367. office365/copilot/ai_online_meeting.py +26 -0
  368. office365/copilot/ai_user.py +39 -0
  369. office365/copilot/copilot_package_request_status.py +14 -0
  370. office365/copilot/copilot_package_request_type.py +15 -0
  371. office365/copilot/package.py +153 -0
  372. office365/copilot/package_access_entity.py +3 -0
  373. office365/copilot/package_detail.py +92 -0
  374. office365/copilot/report_root.py +9 -0
  375. office365/copilot/retrieval_data_source.py +2 -0
  376. office365/delta_collection.py +37 -1
  377. office365/directory/administrative_unit.py +51 -1
  378. office365/directory/allowed_value.py +16 -0
  379. office365/directory/application_permission_type.py +13 -0
  380. office365/directory/application_resource_permission.py +18 -0
  381. office365/directory/applications/application.py +217 -14
  382. office365/directory/applications/applications_required_resource_access.py +21 -0
  383. office365/directory/applications/collection.py +40 -2
  384. office365/directory/applications/custom_security_attribute_exemption.py +2 -2
  385. office365/directory/applications/instance_resource_access.py +19 -0
  386. office365/directory/approval_settings.py +22 -0
  387. office365/directory/audit/provisioning/object_summary.py +19 -3
  388. office365/directory/audit/signins/activity.py +2 -2
  389. office365/directory/authentication/attributecollection/start_custom_extension_handler.py +8 -0
  390. office365/directory/authentication/attributecollection/submit_custom_extension_handler.py +8 -0
  391. office365/directory/authentication/authentication.py +124 -4
  392. office365/directory/authentication/behaviors.py +2 -0
  393. office365/directory/authentication/conditions/application.py +13 -0
  394. office365/directory/authentication/conditions/event_listener.py +32 -0
  395. office365/directory/authentication/error_correction_level.py +2 -0
  396. office365/directory/authentication/fraud_protection_provider.py +16 -0
  397. office365/directory/authentication/fraud_protection_provider_configuration.py +8 -0
  398. office365/directory/authentication/methods/fido.py +46 -1
  399. office365/directory/authentication/methods/method.py +12 -0
  400. office365/directory/authentication/methods/microsoft_authenticator.py +34 -0
  401. office365/directory/authentication/methods/phone.py +30 -0
  402. office365/directory/authentication/password_reset_response.py +4 -0
  403. office365/directory/authentication/platform_credential_authentication_method.py +51 -0
  404. office365/directory/authentication/qr_code_image_details.py +5 -0
  405. office365/directory/authentication/temporary_access_pass_authentication_method.py +42 -0
  406. office365/directory/authentication/windows_hello_for_business_authentication_method.py +39 -0
  407. office365/directory/b2b_registration_metrics.py +42 -0
  408. office365/directory/b2b_registration_metrics_initial.py +17 -0
  409. office365/directory/b2b_registration_metrics_recent.py +17 -0
  410. office365/directory/b2b_sign_in_activity_metrics.py +42 -0
  411. office365/directory/b2b_sign_in_activity_metrics_initial.py +17 -0
  412. office365/directory/b2b_sign_in_activity_metrics_recent.py +17 -0
  413. office365/directory/certificates/auth_pki.py +50 -0
  414. office365/directory/certificates/authority_detail.py +74 -0
  415. office365/directory/certificates/x509/authentication_method_configuration.py +98 -0
  416. office365/directory/certificates/x509/combination_configuration.py +20 -0
  417. office365/directory/claim_binding.py +17 -0
  418. office365/directory/claim_binding_source.py +12 -0
  419. office365/directory/claim_validation.py +15 -0
  420. office365/directory/credential.py +106 -0
  421. office365/directory/cross_cloud_azure_active_directory_tenant.py +16 -0
  422. office365/directory/custom_security_attribute_definition.py +65 -0
  423. office365/directory/datapolicy/operation.py +2 -1
  424. office365/directory/delegated_administration_role_assignment.py +24 -0
  425. office365/directory/delegated_administration_role_assignment_snapshot.py +20 -0
  426. office365/directory/delegatedadmin/access_assignment.py +60 -0
  427. office365/directory/delegatedadmin/access_container.py +18 -0
  428. office365/directory/delegatedadmin/access_details.py +16 -0
  429. office365/directory/delegatedadmin/customer.py +44 -0
  430. office365/directory/delegatedadmin/relationship.py +136 -0
  431. office365/directory/delegatedadmin/relationship_customer_participant.py +15 -0
  432. office365/directory/delegatedadmin/relationship_operation.py +56 -0
  433. office365/directory/delegatedadmin/relationship_request.py +48 -0
  434. office365/directory/delegatedadmin/service_management_detail.py +21 -0
  435. office365/directory/delegatedadmin/service_provider_constraints.py +28 -0
  436. office365/directory/device_local_credential_info.py +18 -1
  437. office365/directory/directory.py +86 -0
  438. office365/directory/domains/collection.py +57 -0
  439. office365/directory/domains/dns_cname_record.py +13 -0
  440. office365/directory/domains/dns_record.py +47 -0
  441. office365/directory/domains/domain.py +90 -0
  442. office365/directory/domains/internal_domain_federation.py +78 -0
  443. office365/directory/drifted_property.py +17 -0
  444. office365/directory/entity_type_and_ids.py +17 -0
  445. office365/directory/external_domain_federation.py +16 -0
  446. office365/directory/external_sponsors.py +10 -0
  447. office365/directory/external_token_based_sap_iag_connection_info.py +19 -0
  448. office365/directory/governance_invitation.py +42 -0
  449. office365/directory/governance_relationship.py +65 -0
  450. office365/directory/governance_request.py +76 -0
  451. office365/directory/groups/collection.py +19 -2
  452. office365/directory/groups/group.py +64 -11
  453. office365/directory/groups/setting.py +14 -1
  454. office365/directory/groups/setting_template.py +31 -0
  455. office365/directory/identities/api_connector.py +18 -0
  456. office365/directory/identities/authentication_events_flow.py +35 -0
  457. office365/directory/identities/b2x_identity_user_flow.py +89 -0
  458. office365/directory/identities/conditional_access_root.py +32 -3
  459. office365/directory/identities/conditional_access_template.py +47 -0
  460. office365/directory/identities/container.py +80 -8
  461. office365/directory/identities/named_location.py +29 -0
  462. office365/directory/identities/on_otp_send_custom_extension_handler.py +6 -0
  463. office365/directory/identities/on_password_migration_custom_extension_handler.py +8 -0
  464. office365/directory/identities/on_token_issuance_start_custom_extension.py +29 -0
  465. office365/directory/identities/on_token_issuance_start_custom_extension_handler.py +8 -0
  466. office365/directory/identities/on_verified_id_claim_validation_custom_extension.py +7 -0
  467. office365/directory/identities/on_verified_id_claim_validation_custom_extension_handler.py +8 -0
  468. office365/directory/identities/provider.py +16 -0
  469. office365/directory/identities/providers/saml_or_wsfed.py +32 -1
  470. office365/directory/identities/riskPrevention/container.py +70 -0
  471. office365/directory/identities/userflows/attribute.py +44 -0
  472. office365/directory/identities/userflows/b2x/user_flow.py +0 -10
  473. office365/directory/identities/userflows/language_configuration.py +11 -0
  474. office365/directory/identities/userflows/user_attribute_assignment.py +67 -0
  475. office365/directory/identities/userflows/user_flow.py +22 -1
  476. office365/directory/identities/verified_id_root.py +28 -0
  477. office365/directory/identities/web_application_firewall_provider.py +16 -0
  478. office365/directory/identities/web_application_firewall_verification_model.py +69 -0
  479. office365/directory/identity_set.py +19 -0
  480. office365/directory/identitygovernance/access_package_suggestion.py +43 -0
  481. office365/directory/identitygovernance/accessreview/context_data.py +10 -0
  482. office365/directory/identitygovernance/accessreview/context_data_base.py +15 -0
  483. office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_session_request.py +4 -1
  484. office365/directory/identitygovernance/accessreview/history/definition.py +23 -3
  485. office365/directory/identitygovernance/accessreview/instance.py +49 -3
  486. office365/directory/identitygovernance/accessreview/instance_decision_item.py +49 -1
  487. office365/directory/identitygovernance/accessreview/instance_decision_item_apply_result.py +16 -0
  488. office365/directory/identitygovernance/accessreview/instance_decision_item_custom_data_provided_resource.py +16 -0
  489. office365/directory/identitygovernance/accessreview/instance_decision_item_permission.py +17 -0
  490. office365/directory/identitygovernance/accessreview/instance_decision_item_resource.py +2 -0
  491. office365/directory/identitygovernance/accessreview/principal_scope.py +5 -0
  492. office365/directory/identitygovernance/accessreview/principal_scope_type.py +15 -0
  493. office365/directory/identitygovernance/accessreview/resource_scope.py +5 -0
  494. office365/directory/identitygovernance/accessreview/resource_scope_type.py +16 -0
  495. office365/directory/identitygovernance/accessreview/reviewer_scope.py +5 -0
  496. office365/directory/identitygovernance/accessreview/reviewer_scope_type.py +18 -0
  497. office365/directory/identitygovernance/accessreview/schedule_definition.py +64 -3
  498. office365/directory/identitygovernance/accessreview/set.py +34 -1
  499. office365/directory/identitygovernance/accessreview/stage.py +31 -1
  500. office365/directory/identitygovernance/activities_container.py +30 -0
  501. office365/directory/identitygovernance/apply_decision_context_data.py +10 -0
  502. office365/directory/identitygovernance/awaited_workflow_processing_result.py +6 -1
  503. office365/directory/identitygovernance/content_activity.py +35 -0
  504. office365/directory/identitygovernance/custom_callout_extension_type.py +15 -0
  505. office365/directory/identitygovernance/custom_extension_resource_type.py +14 -0
  506. office365/directory/identitygovernance/custom_task_extension.py +18 -1
  507. office365/directory/identitygovernance/custom_task_extension_callout_data.py +13 -2
  508. office365/directory/identitygovernance/custom_task_extension_reply_mode.py +14 -0
  509. office365/directory/identitygovernance/custom_task_extension_response_data.py +1 -1
  510. office365/directory/identitygovernance/data.py +10 -0
  511. office365/directory/identitygovernance/data_security_and_governance.py +23 -0
  512. office365/directory/identitygovernance/deleted_item_container.py +17 -0
  513. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment.py +37 -3
  514. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_policy.py +109 -3
  515. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request.py +64 -4
  516. office365/directory/identitygovernance/entitlementmanagement/accesspackage/catalog.py +74 -2
  517. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_file.py +27 -0
  518. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_upload_session.py +80 -0
  519. office365/directory/identitygovernance/entitlementmanagement/accesspackage/multiple_choice_question.py +18 -1
  520. office365/directory/identitygovernance/entitlementmanagement/accesspackage/package.py +51 -1
  521. office365/directory/identitygovernance/entitlementmanagement/accesspackage/question.py +18 -1
  522. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource.py +52 -1
  523. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_environment.py +11 -1
  524. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_role.py +11 -1
  525. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_role_scope.py +32 -0
  526. office365/directory/identitygovernance/entitlementmanagement/accesspackage/subject.py +31 -1
  527. office365/directory/identitygovernance/entitlementmanagement/available_access_package.py +42 -0
  528. office365/directory/identitygovernance/entitlementmanagement/connected_organization.py +16 -1
  529. office365/directory/identitygovernance/entitlementmanagement/control_configuration.py +37 -0
  530. office365/directory/identitygovernance/entitlementmanagement/entitlement_management.py +246 -1
  531. office365/directory/identitygovernance/entitlementmanagement/external_origin_resource_connector.py +58 -0
  532. office365/directory/identitygovernance/governance.py +39 -5
  533. office365/directory/identitygovernance/insights.py +3 -1
  534. office365/directory/identitygovernance/lifecycle_management_settings.py +15 -1
  535. office365/directory/identitygovernance/lifecycle_workflows_container.py +35 -2
  536. office365/directory/identitygovernance/lifecycletaskcategory.py +4 -0
  537. office365/directory/identitygovernance/lifecycleworkflows/category.py +4 -0
  538. office365/directory/identitygovernance/privilegedaccess/group.py +21 -0
  539. office365/directory/identitygovernance/privilegedaccess/group_resource.py +7 -0
  540. office365/directory/identitygovernance/privilegedaccess/role_management_custom_callout_extension.py +43 -0
  541. office365/directory/identitygovernance/privilegedaccess/root.py +27 -1
  542. office365/directory/identitygovernance/privilegedaccess/schedule/schedule.py +13 -1
  543. office365/directory/identitygovernance/privilegedaccess/schedule_request.py +22 -2
  544. office365/directory/identitygovernance/run.py +36 -5
  545. office365/directory/identitygovernance/subject_processing_result.py +121 -0
  546. office365/directory/identitygovernance/subject_type.py +13 -0
  547. office365/directory/identitygovernance/task_processing_result.py +18 -2
  548. office365/directory/identitygovernance/termsofuse/agreement.py +26 -4
  549. office365/directory/identitygovernance/termsofuse/agreement_file.py +4 -2
  550. office365/directory/identitygovernance/termsofuse/agreement_file_localization.py +4 -2
  551. office365/directory/identitygovernance/termsofuse/agreement_file_properties.py +15 -1
  552. office365/directory/identitygovernance/termsofuse/agreement_file_version.py +4 -2
  553. office365/directory/identitygovernance/user_data_security_and_governance.py +34 -0
  554. office365/directory/identitygovernance/user_protection_scope_container.py +9 -0
  555. office365/directory/identitygovernance/workflow/base.py +19 -3
  556. office365/directory/identitygovernance/workflow/executiontype.py +4 -0
  557. office365/directory/identitygovernance/workflow/setting.py +17 -0
  558. office365/directory/identitygovernance/workflow/version.py +28 -0
  559. office365/directory/identitygovernance/workflow/workflow.py +127 -0
  560. office365/directory/inheritable_permission.py +28 -0
  561. office365/directory/insights/identity.py +15 -0
  562. office365/directory/insights/resource_reference.py +4 -0
  563. office365/directory/insights/shared.py +27 -0
  564. office365/directory/insights/sharing_detail.py +4 -0
  565. office365/directory/insights/trending.py +22 -1
  566. office365/directory/insights/usage_details.py +4 -0
  567. office365/directory/insights/used.py +18 -0
  568. office365/directory/internal/sponsors.py +10 -0
  569. office365/directory/key_credential.py +9 -23
  570. office365/directory/licenses/collection.py +30 -0
  571. office365/directory/modified_property.py +16 -0
  572. office365/directory/multi_tenant_application_metrics.py +42 -0
  573. office365/directory/multi_tenant_application_metrics_base.py +27 -0
  574. office365/directory/multi_tenant_application_metrics_initial.py +17 -0
  575. office365/directory/multi_tenant_application_metrics_recent.py +17 -0
  576. office365/directory/multi_tenant_applications_to_provision.py +23 -0
  577. office365/directory/multi_tenant_applications_to_provision_snapshot.py +23 -0
  578. office365/directory/multi_tenant_organization_identity_sync_policy_template.py +37 -0
  579. office365/directory/multi_tenant_organization_join_request_record.py +54 -0
  580. office365/directory/multi_tenant_organization_member.py +76 -0
  581. office365/directory/multi_tenant_organization_partner_configuration_template.py +88 -0
  582. office365/directory/o_auth_consent_app_detail.py +17 -0
  583. office365/directory/objects/object.py +12 -0
  584. office365/directory/on_premises_directory_synchronization.py +37 -0
  585. office365/directory/password_credential.py +10 -23
  586. office365/directory/permissions/grants/condition_set.py +27 -1
  587. office365/directory/permissions/identity.py +4 -0
  588. office365/directory/permissions/identity_set.py +7 -25
  589. office365/directory/permissions/require_permission.py +78 -9
  590. office365/directory/policies/activity_based_timeout_policy.py +7 -0
  591. office365/directory/policies/admin_consent_request.py +50 -0
  592. office365/directory/policies/app_management.py +17 -1
  593. office365/directory/policies/authentication_flows.py +26 -1
  594. office365/directory/policies/authorization.py +12 -0
  595. office365/directory/policies/conditionalaccess/conditional_access.py +82 -0
  596. office365/directory/policies/crosstenant/access.py +43 -0
  597. office365/directory/policies/device_registration.py +69 -0
  598. office365/directory/policies/dlpaction.py +4 -0
  599. office365/directory/policies/feature_rollout.py +38 -0
  600. office365/directory/policies/federated_token_validation_policy.py +21 -0
  601. office365/directory/policies/ownerless_group_policy.py +59 -0
  602. office365/directory/policies/protected_application_metadata.py +1 -1
  603. office365/directory/policies/restrict_access_action_base.py +1 -1
  604. office365/directory/policies/root.py +142 -2
  605. office365/directory/policies/template.py +45 -0
  606. office365/directory/policies/tenant_app_management.py +39 -0
  607. office365/directory/policies/unifiedrolemanagement/policy.py +76 -1
  608. office365/directory/policies/unifiedrolemanagement/unified_role_assignment_schedule_request.py +145 -0
  609. office365/directory/policies/verified_id_profile_configuration.py +13 -1
  610. office365/directory/policies/verified_id_usage_configuration.py +5 -0
  611. office365/directory/profile_card_annotation.py +19 -0
  612. office365/directory/profile_source_localization.py +16 -0
  613. office365/directory/protection/bitlocker.py +32 -0
  614. office365/directory/protection/bitlocker_recovery_key.py +37 -0
  615. office365/directory/protection/information.py +18 -0
  616. office365/directory/protection/policy/base.py +82 -0
  617. office365/directory/protection/policy/one_drive_for_business.py +42 -0
  618. office365/directory/protection/riskyusers/risky_service_principal_history_item.py +15 -1
  619. office365/directory/protection/root.py +42 -0
  620. office365/directory/protection/rules/base.py +72 -0
  621. office365/directory/protection/rules/drive.py +13 -0
  622. office365/directory/protection/threatassessment/requests/email_file.py +26 -1
  623. office365/directory/protection/threatassessment/requests/file.py +11 -0
  624. office365/directory/protection/threatassessment/requests/mail.py +32 -0
  625. office365/directory/protection/threatassessment/requests/request.py +52 -1
  626. office365/directory/protection/threatassessment/requests/threat_assessment_result.py +36 -0
  627. office365/directory/protection/threatassessment/requests/url.py +6 -0
  628. office365/directory/recovery/change_object_base.py +31 -0
  629. office365/directory/recovery/job.py +26 -0
  630. office365/directory/recovery/job_base.py +59 -0
  631. office365/directory/recovery/job_entity_name_and_ids_filter.py +18 -0
  632. office365/directory/recovery/job_entity_names_filter.py +18 -0
  633. office365/directory/recovery/job_filtering_criteria_base.py +10 -0
  634. office365/directory/recovery/preview_job.py +9 -0
  635. office365/directory/recovery/recovery.py +37 -0
  636. office365/directory/related_tenant.py +88 -0
  637. office365/directory/related_tenants_refresh_status.py +17 -0
  638. office365/directory/relationship_creation_type.py +13 -0
  639. office365/directory/relationship_policy.py +29 -0
  640. office365/directory/relationship_status.py +14 -0
  641. office365/directory/remote_tenant_group.py +37 -0
  642. office365/directory/request_schedule.py +21 -0
  643. office365/directory/request_status.py +14 -0
  644. office365/directory/resource_visualization.py +21 -0
  645. office365/directory/role_template.py +15 -0
  646. office365/directory/role_type.py +15 -0
  647. office365/directory/rolemanagement/app_scope.py +18 -0
  648. office365/directory/rolemanagement/application.py +120 -0
  649. office365/directory/rolemanagement/resource_action.py +4 -0
  650. office365/directory/rolemanagement/roles/collection.py +26 -3
  651. office365/directory/rolemanagement/roles/permission.py +4 -0
  652. office365/directory/rolemanagement/unifiedrole/assignment.py +33 -1
  653. office365/directory/rolemanagement/unifiedrole/definition.py +30 -0
  654. office365/directory/service_provider_constraints.py +7 -0
  655. office365/directory/service_storage_quota_breakdown.py +7 -0
  656. office365/directory/serviceprincipals/approved_client_app.py +16 -0
  657. office365/directory/serviceprincipals/collection.py +48 -4
  658. office365/directory/serviceprincipals/identity.py +14 -0
  659. office365/directory/serviceprincipals/remote_desktop_security_configuration.py +39 -1
  660. office365/directory/serviceprincipals/service_principal.py +330 -19
  661. office365/directory/serviceprincipals/target_device_group.py +16 -0
  662. office365/directory/snapshot.py +50 -0
  663. office365/directory/status.py +15 -0
  664. office365/directory/subscriptions/company.py +75 -0
  665. office365/directory/synchronization/attribute_mapping.py +1 -1
  666. office365/directory/synchronization/attribute_mapping_function_schema.py +1 -1
  667. office365/directory/synchronization/directory_definition.py +1 -1
  668. office365/directory/synchronization/job.py +13 -1
  669. office365/directory/synchronization/job_subject.py +6 -3
  670. office365/directory/synchronization/linked_objects.py +8 -9
  671. office365/directory/synchronization/rule.py +4 -4
  672. office365/directory/synchronization/schema.py +19 -2
  673. office365/directory/synchronization/status.py +1 -1
  674. office365/directory/synchronization/synchronization.py +22 -0
  675. office365/directory/synchronization/template.py +20 -1
  676. office365/directory/tenant_governance.py +98 -0
  677. office365/directory/tenant_governance_policy_template.py +75 -0
  678. office365/directory/tenant_governance_setting.py +21 -0
  679. office365/directory/tenantinformation/multi_organization.py +72 -0
  680. office365/directory/tenantinformation/relationship.py +41 -0
  681. office365/directory/ticket_info.py +15 -0
  682. office365/directory/unified_approval_stage.py +25 -0
  683. office365/directory/unified_rbac_resource_action.py +41 -0
  684. office365/directory/unified_rbac_resource_namespace.py +37 -0
  685. office365/directory/unified_role.py +14 -0
  686. office365/directory/unified_role_assignment_schedule.py +47 -0
  687. office365/directory/unified_role_assignment_schedule_instance.py +60 -0
  688. office365/directory/unified_role_eligibility_schedule.py +26 -0
  689. office365/directory/unified_role_eligibility_schedule_instance.py +32 -0
  690. office365/directory/unified_role_eligibility_schedule_request.py +133 -0
  691. office365/directory/unified_role_management_policy_approval_rule.py +21 -0
  692. office365/directory/unified_role_management_policy_assignment.py +48 -0
  693. office365/directory/unified_role_management_policy_authentication_context_rule.py +21 -0
  694. office365/directory/unified_role_management_policy_custom_extension_rule.py +32 -0
  695. office365/directory/unified_role_management_policy_enablement_rule.py +15 -0
  696. office365/directory/unified_role_management_policy_expiration_rule.py +24 -0
  697. office365/directory/unified_role_management_policy_notification_rule.py +37 -0
  698. office365/directory/unified_role_management_policy_rule.py +25 -0
  699. office365/directory/unified_role_management_policy_rule_target.py +31 -0
  700. office365/directory/unified_role_schedule_base.py +96 -0
  701. office365/directory/unified_role_schedule_instance_base.py +75 -0
  702. office365/directory/unified_root.py +66 -0
  703. office365/directory/unified_storage_quota.py +62 -0
  704. office365/directory/users/activities/activity.py +24 -2
  705. office365/directory/users/activities/history_item.py +42 -1
  706. office365/directory/users/collection.py +17 -0
  707. office365/directory/users/identity.py +4 -0
  708. office365/directory/users/inference_classification.py +23 -0
  709. office365/directory/users/inference_classification_override.py +33 -0
  710. office365/directory/users/item_insights.py +7 -0
  711. office365/directory/users/note.py +101 -0
  712. office365/directory/users/provisioned_plan.py +16 -0
  713. office365/directory/users/settings.py +50 -1
  714. office365/directory/users/storage.py +15 -0
  715. office365/directory/users/user.py +146 -16
  716. office365/directory/users/windows_setting.py +50 -0
  717. office365/directory/users/windows_setting_instance.py +32 -0
  718. office365/directory/users/work_hours_and_locations_setting.py +53 -0
  719. office365/directory/users/work_plan_occurrence.py +56 -0
  720. office365/directory/users/work_plan_recurrence.py +51 -0
  721. office365/directory/verified_id_profile.py +91 -0
  722. office365/directory/visual_info.py +20 -0
  723. office365/education/challenging_word.py +15 -0
  724. office365/education/rubric_criterion.py +10 -0
  725. office365/education/rubric_level.py +15 -0
  726. office365/education/rubric_quality.py +21 -0
  727. office365/education/rubric_quality_feedback_model.py +14 -0
  728. office365/education/rubric_quality_selected_column_model.py +15 -0
  729. office365/entity.py +72 -3
  730. office365/entity_collection.py +33 -2
  731. office365/externalconnectors/acl.py +21 -0
  732. office365/externalconnectors/activity_settings.py +18 -0
  733. office365/externalconnectors/connection_operation.py +17 -2
  734. office365/externalconnectors/connector_type.py +12 -0
  735. office365/externalconnectors/content_category.py +18 -4
  736. office365/externalconnectors/display_template.py +20 -0
  737. office365/externalconnectors/external_activity.py +14 -1
  738. office365/externalconnectors/external_activity_result.py +12 -0
  739. office365/externalconnectors/external_group.py +15 -1
  740. office365/externalconnectors/external_item_content.py +19 -0
  741. office365/externalconnectors/external_item_information_protection_label.py +14 -0
  742. office365/externalconnectors/identity.py +19 -0
  743. office365/externalconnectors/item_id_resolver.py +16 -0
  744. office365/externalconnectors/principal.py +20 -0
  745. office365/externalconnectors/properties.py +10 -0
  746. office365/externalconnectors/property.py +28 -0
  747. office365/externalconnectors/property_rule.py +22 -0
  748. office365/externalconnectors/url_match_info.py +16 -0
  749. office365/externalconnectors/url_to_item_resolver_base.py +14 -0
  750. office365/graph_client.py +138 -33
  751. office365/graph_request.py +56 -4
  752. office365/intune/audit/actor.py +26 -0
  753. office365/intune/audit/event.py +48 -0
  754. office365/intune/audit/property.py +15 -0
  755. office365/intune/audit/resource.py +15 -1
  756. office365/intune/devices/and_app_management_role_assignment.py +15 -0
  757. office365/intune/devices/and_app_management_role_definition.py +7 -0
  758. office365/intune/devices/category.py +18 -0
  759. office365/intune/devices/compliance/android_compliance_policy.py +134 -0
  760. office365/intune/devices/compliance/android_work_profile_compliance_policy.py +134 -0
  761. office365/intune/devices/compliance/compliance.py +7 -0
  762. office365/intune/devices/compliance/information.py +19 -0
  763. office365/intune/devices/compliance/ios_compliance_policy.py +99 -0
  764. office365/intune/devices/compliance/mac_os_compliance_policy.py +114 -0
  765. office365/intune/devices/compliance/management_partner.py +91 -0
  766. office365/intune/devices/compliance/management_partner_assignment.py +17 -0
  767. office365/intune/devices/compliance/policy.py +155 -0
  768. office365/intune/devices/compliance/policy_state.py +61 -0
  769. office365/intune/devices/compliance/setting_state_device_summary.py +56 -0
  770. office365/intune/devices/compliance/windows10_compliance_policy.py +115 -0
  771. office365/intune/devices/compliance/windows10_mobile_compliance_policy.py +100 -0
  772. office365/intune/devices/compliance/windows81_compliance_policy.py +75 -0
  773. office365/intune/devices/compliance/windows_phone81_compliance_policy.py +75 -0
  774. office365/intune/devices/compliance_action_item.py +41 -0
  775. office365/intune/devices/compliance_device_overview.py +47 -0
  776. office365/intune/devices/compliance_device_status.py +52 -0
  777. office365/intune/devices/compliance_policy_assignment.py +25 -0
  778. office365/intune/devices/compliance_policy_device_state_summary.py +56 -0
  779. office365/intune/devices/compliance_policy_setting_state_summary.py +91 -0
  780. office365/intune/devices/compliance_scheduled_action_for_rule.py +39 -0
  781. office365/intune/devices/compliance_setting_state.py +72 -0
  782. office365/intune/devices/compliance_user_overview.py +47 -0
  783. office365/intune/devices/compliance_user_status.py +42 -0
  784. office365/intune/devices/configuration_assignment.py +25 -0
  785. office365/intune/devices/configuration_device_overview.py +47 -0
  786. office365/intune/devices/configuration_device_state_summary.py +46 -0
  787. office365/intune/devices/configuration_device_status.py +52 -0
  788. office365/intune/devices/configuration_state.py +63 -0
  789. office365/intune/devices/configuration_user_overview.py +47 -0
  790. office365/intune/devices/configuration_user_status.py +42 -0
  791. office365/intune/devices/configurations/android/android_lob_app.py +15 -1
  792. office365/intune/devices/configurations/android/android_store_app.py +15 -1
  793. office365/intune/devices/configurations/android/custom_configuration.py +22 -0
  794. office365/intune/devices/configurations/android/general_device_configuration.py +282 -0
  795. office365/intune/devices/configurations/android/minimum_operating_system.py +29 -0
  796. office365/intune/devices/configurations/android/mobile_app_identifier.py +14 -0
  797. office365/intune/devices/configurations/android/work_profile_custom_configuration.py +22 -0
  798. office365/intune/devices/configurations/android/work_profile_general_device_configuration.py +214 -0
  799. office365/intune/devices/configurations/configuration.py +136 -0
  800. office365/intune/devices/configurations/edge_search_engine.py +17 -0
  801. office365/intune/devices/configurations/edge_search_engine_base.py +10 -0
  802. office365/intune/devices/configurations/edge_search_engine_custom.py +14 -0
  803. office365/intune/devices/configurations/ios/certificate_profile.py +7 -0
  804. office365/intune/devices/configurations/ios/custom_configuration.py +26 -0
  805. office365/intune/devices/configurations/ios/features_configuration.py +62 -0
  806. office365/intune/devices/configurations/ios/general/device_configuration.py +761 -0
  807. office365/intune/devices/configurations/ios/home_screen_app.py +14 -0
  808. office365/intune/devices/configurations/ios/home_screen_folder.py +20 -0
  809. office365/intune/devices/configurations/ios/home_screen_folder_page.py +19 -0
  810. office365/intune/devices/configurations/ios/home_screen_item.py +14 -0
  811. office365/intune/devices/configurations/ios/home_screen_page.py +21 -0
  812. office365/intune/devices/configurations/ios/minimum_operating_system.py +21 -0
  813. office365/intune/devices/configurations/ios/network_usage_rule.py +18 -0
  814. office365/intune/devices/configurations/ios/notification_settings.py +25 -0
  815. office365/intune/devices/configurations/ios/update_configuration.py +38 -0
  816. office365/intune/devices/configurations/macos/mac_os_custom_configuration.py +26 -0
  817. office365/intune/devices/configurations/macos/mac_os_device_features_configuration.py +7 -0
  818. office365/intune/devices/configurations/macos/mac_os_general_device_configuration.py +88 -0
  819. office365/intune/devices/configurations/macos/mac_os_minimum_operating_system.py +25 -0
  820. office365/intune/devices/configurations/media_content_rating_australia.py +21 -0
  821. office365/intune/devices/configurations/media_content_rating_canada.py +21 -0
  822. office365/intune/devices/configurations/media_content_rating_france.py +21 -0
  823. office365/intune/devices/configurations/media_content_rating_germany.py +21 -0
  824. office365/intune/devices/configurations/media_content_rating_ireland.py +21 -0
  825. office365/intune/devices/configurations/media_content_rating_japan.py +21 -0
  826. office365/intune/devices/configurations/media_content_rating_new_zealand.py +21 -0
  827. office365/intune/devices/configurations/media_content_rating_united_kingdom.py +21 -0
  828. office365/intune/devices/configurations/media_content_rating_united_states.py +21 -0
  829. office365/intune/devices/configurations/oma_setting.py +16 -0
  830. office365/intune/devices/configurations/oma_setting_base64.py +15 -0
  831. office365/intune/devices/configurations/oma_setting_boolean.py +14 -0
  832. office365/intune/devices/configurations/oma_setting_date_time.py +15 -0
  833. office365/intune/devices/configurations/oma_setting_floating_point.py +14 -0
  834. office365/intune/devices/configurations/oma_setting_integer.py +14 -0
  835. office365/intune/devices/configurations/oma_setting_string.py +14 -0
  836. office365/intune/devices/configurations/oma_setting_string_xml.py +15 -0
  837. office365/intune/devices/configurations/rgb_color.py +16 -0
  838. office365/intune/devices/configurations/windows/bit_locker_removable_drive_policy.py +19 -0
  839. office365/intune/devices/configurations/windows/defender_advanced_threat_protection_configuration.py +21 -0
  840. office365/intune/devices/configurations/windows/firewall_network_profile.py +28 -0
  841. office365/intune/devices/configurations/windows/minimum_operating_system.py +16 -0
  842. office365/intune/devices/configurations/windows/out_of_box_experience_setting.py +25 -0
  843. office365/intune/devices/configurations/windows/phone81_custom_configuration.py +22 -0
  844. office365/intune/devices/configurations/windows/phone81_general_configuration.py +172 -0
  845. office365/intune/devices/configurations/windows/shared_pc_account_manager_policy.py +20 -0
  846. office365/intune/devices/configurations/windows/update_active_hours_install.py +16 -0
  847. office365/intune/devices/configurations/windows/update_for_business_configuration.py +253 -0
  848. office365/intune/devices/configurations/windows/update_install_schedule_type.py +10 -0
  849. office365/intune/devices/configurations/windows/update_scheduled_install.py +19 -0
  850. office365/intune/devices/configurations/windows/windows10_custom_configuration.py +22 -0
  851. office365/intune/devices/configurations/windows/windows10_endpoint_protection_configuration.py +255 -0
  852. office365/intune/devices/configurations/windows/windows10_enrollment_completion_page_configuration.py +16 -0
  853. office365/intune/devices/configurations/windows/windows10_enterprise_modern_app_management_configuration.py +16 -0
  854. office365/intune/devices/configurations/windows/windows10_general_configuration.py +1177 -0
  855. office365/intune/devices/configurations/windows/windows10_network_proxy_server.py +17 -0
  856. office365/intune/devices/configurations/windows/windows10_secure_assessment_configuration.py +36 -0
  857. office365/intune/devices/configurations/windows/windows10_team_general_configuration.py +128 -0
  858. office365/intune/devices/configurations/windows/windows81_general_configuration.py +210 -0
  859. office365/intune/devices/data.py +11 -0
  860. office365/intune/devices/device.py +138 -1
  861. office365/intune/devices/enrollment/configuration.py +48 -1
  862. office365/intune/devices/enrollment/configuration_assignment.py +22 -0
  863. office365/intune/devices/enrollment/limit_configuration.py +13 -0
  864. office365/intune/devices/enrollment_platform_restrictions_configuration.py +61 -0
  865. office365/intune/devices/enrollment_windows_hello_for_business_configuration.py +93 -0
  866. office365/intune/devices/install_state.py +61 -0
  867. office365/intune/devices/log_collection_response.py +60 -0
  868. office365/intune/devices/management/action_result.py +19 -0
  869. office365/intune/devices/management/android_managed_app_registration.py +7 -0
  870. office365/intune/devices/management/app_management.py +157 -3
  871. office365/intune/devices/management/apple_push_notification_certificate.py +52 -0
  872. office365/intune/devices/management/compliance_policy_setting_state.py +28 -0
  873. office365/intune/devices/management/configuration_manager_client_enabled_features.py +19 -0
  874. office365/intune/devices/management/configuration_manager_collection_assignment_target.py +14 -0
  875. office365/intune/devices/management/configuration_setting_state.py +28 -0
  876. office365/intune/devices/management/defender_detected_malware_actions.py +18 -0
  877. office365/intune/devices/management/delete_user_from_shared_apple_device_action_result.py +14 -0
  878. office365/intune/devices/management/detected_app.py +65 -0
  879. office365/intune/devices/management/enrollment_platform_restriction.py +17 -0
  880. office365/intune/devices/management/exchange_access_state_summary.py +18 -0
  881. office365/intune/devices/management/geo_location.py +22 -0
  882. office365/intune/devices/management/group_peer_outlier_recommendation_insight_settings.py +10 -0
  883. office365/intune/devices/management/health_attestation_state.py +46 -0
  884. office365/intune/devices/management/imported_windows_autopilot_device_identity.py +55 -0
  885. office365/intune/devices/management/imported_windows_autopilot_device_identity_state.py +22 -0
  886. office365/intune/devices/management/insight_value_double.py +14 -0
  887. office365/intune/devices/management/insight_value_int.py +14 -0
  888. office365/intune/devices/management/integer_range.py +15 -0
  889. office365/intune/devices/management/ios_managed_app_registration.py +7 -0
  890. office365/intune/devices/management/ios_update_device_status.py +79 -0
  891. office365/intune/devices/management/localized_notification_message.py +37 -0
  892. office365/intune/devices/management/locate_device_action_result.py +15 -0
  893. office365/intune/devices/management/m365_capability_base.py +32 -0
  894. office365/intune/devices/management/m365_capability_inbound_access.py +18 -0
  895. office365/intune/devices/management/m365_capability_resource_scope.py +16 -0
  896. office365/intune/devices/management/m365_capability_resource_scopes.py +23 -0
  897. office365/intune/devices/management/m365_resource_type.py +14 -0
  898. office365/intune/devices/management/managed/app/diagnostic_status.py +15 -0
  899. office365/intune/devices/management/managed/app/operation.py +32 -0
  900. office365/intune/devices/management/managed/app/protections/android.py +31 -1
  901. office365/intune/devices/management/managed/app/protections/default.py +34 -2
  902. office365/intune/devices/management/managed/app/protections/ios.py +34 -2
  903. office365/intune/devices/management/managed/app/protections/targeted.py +22 -1
  904. office365/intune/devices/management/managed/app/protections/targeted_managed_app_policy_assignment.py +25 -0
  905. office365/intune/devices/management/managed/app/protections/windows.py +230 -1
  906. office365/intune/devices/management/managed/app/registration.py +29 -2
  907. office365/intune/devices/management/managed/app_policy_deployment_summary.py +50 -0
  908. office365/intune/devices/management/managed/collection.py +26 -0
  909. office365/intune/devices/management/managed/device_mobile_app_configuration.py +138 -0
  910. office365/intune/devices/management/managed/device_mobile_app_configuration_assignment.py +25 -0
  911. office365/intune/devices/management/managed/device_mobile_app_configuration_device_status.py +52 -0
  912. office365/intune/devices/management/managed/device_mobile_app_configuration_device_summary.py +47 -0
  913. office365/intune/devices/management/managed/device_mobile_app_configuration_user_status.py +42 -0
  914. office365/intune/devices/management/managed/device_mobile_app_configuration_user_summary.py +47 -0
  915. office365/intune/devices/management/managed/device_overview.py +52 -0
  916. office365/intune/devices/management/managed/ebook/e_book_assignment.py +33 -0
  917. office365/intune/devices/management/managed/ebook/ebook.py +72 -1
  918. office365/intune/devices/management/managed/ebook/install_summary.py +41 -0
  919. office365/intune/devices/management/managed/ebook/user_install_state_summary.py +48 -0
  920. office365/intune/devices/management/managed/managed.py +87 -3
  921. office365/intune/devices/management/managed/mobile_app.py +26 -0
  922. office365/intune/devices/management/management.py +995 -6
  923. office365/intune/devices/management/mdm_windows_information_protection_policy.py +7 -0
  924. office365/intune/devices/management/mobile_threat_defense_connector.py +96 -0
  925. office365/intune/devices/management/mobileapps/app_configuration_setting_item.py +17 -0
  926. office365/intune/devices/management/mobileapps/app_list_item.py +17 -0
  927. office365/intune/devices/management/mobileapps/app_log_collection_download_details.py +19 -0
  928. office365/intune/devices/management/mobileapps/app_log_collection_request.py +40 -0
  929. office365/intune/devices/management/mobileapps/apps_installation_options_for_mac.py +15 -0
  930. office365/intune/devices/management/mobileapps/apps_installation_options_for_windows.py +17 -0
  931. office365/intune/devices/management/mobileapps/assignment.py +28 -0
  932. office365/intune/devices/management/mobileapps/content.py +24 -1
  933. office365/intune/devices/management/mobileapps/ios/ios_mobile_app_configuration.py +18 -1
  934. office365/intune/devices/management/mobileapps/ios/iosi_pad_os_web_clip.py +21 -0
  935. office365/intune/devices/management/mobileapps/ios/lob_app.py +58 -0
  936. office365/intune/devices/management/mobileapps/ios/lob_app_assignment_settings.py +16 -0
  937. office365/intune/devices/management/mobileapps/ios/lob_app_provisioning_configuration_assignment.py +25 -0
  938. office365/intune/devices/management/mobileapps/ios/mobile_app_identifier.py +14 -0
  939. office365/intune/devices/management/mobileapps/ios/store_app.py +47 -0
  940. office365/intune/devices/management/mobileapps/ios/store_app_assignment_settings.py +16 -0
  941. office365/intune/devices/management/mobileapps/ios/vpp_app.py +81 -0
  942. office365/intune/devices/management/mobileapps/ios/vpp_app_assignment_settings.py +15 -0
  943. office365/intune/devices/management/mobileapps/ios/vpp_e_book.py +53 -0
  944. office365/intune/devices/management/mobileapps/ios/vpp_e_book_assignment.py +7 -0
  945. office365/intune/devices/management/mobileapps/macos/mac_os_dmg_app.py +49 -0
  946. office365/intune/devices/management/mobileapps/macos/mac_os_included_app.py +15 -0
  947. office365/intune/devices/management/mobileapps/macos/mac_os_lob_app.py +70 -0
  948. office365/intune/devices/management/mobileapps/macos/mac_os_lob_app_assignment_settings.py +14 -0
  949. office365/intune/devices/management/mobileapps/macos/mac_os_lob_child_app.py +16 -0
  950. office365/intune/devices/management/mobileapps/macos/mac_os_microsoft_defender_app.py +7 -0
  951. office365/intune/devices/management/mobileapps/macos/mac_os_microsoft_edge_app.py +25 -0
  952. office365/intune/devices/management/mobileapps/macos/mac_os_office_suite_app.py +7 -0
  953. office365/intune/devices/management/mobileapps/managed/app_policy_deployment_summary_per_app.py +18 -0
  954. office365/intune/devices/management/mobileapps/microsoft_store_for_business_app_assignment_settings.py +14 -0
  955. office365/intune/devices/management/mobileapps/mobile_app.py +31 -2
  956. office365/intune/devices/management/mobileapps/mobile_app_assignment_settings.py +10 -0
  957. office365/intune/devices/management/mobileapps/mobile_app_identifier.py +10 -0
  958. office365/intune/devices/management/mobileapps/mobile_app_install_time_settings.py +17 -0
  959. office365/intune/devices/management/mobileapps/mobile_app_troubleshooting_event.py +28 -0
  960. office365/intune/devices/management/mobileapps/mobile_lob_app.py +20 -1
  961. office365/intune/devices/management/mobileapps/vpp_licensing_type.py +15 -0
  962. office365/intune/devices/management/mobileapps/win32/lob_app.py +115 -0
  963. office365/intune/devices/management/mobileapps/win32/lob_app_assignment_settings.py +35 -0
  964. office365/intune/devices/management/mobileapps/win32/lob_app_auto_update_settings.py +19 -0
  965. office365/intune/devices/management/mobileapps/win32/lob_app_file_system_rule.py +25 -0
  966. office365/intune/devices/management/mobileapps/win32/lob_app_install_experience.py +21 -0
  967. office365/intune/devices/management/mobileapps/win32/lob_app_msi_information.py +23 -0
  968. office365/intune/devices/management/mobileapps/win32/lob_app_power_shell_script_rule.py +32 -0
  969. office365/intune/devices/management/mobileapps/win32/lob_app_product_code_rule.py +19 -0
  970. office365/intune/devices/management/mobileapps/win32/lob_app_registry_rule.py +25 -0
  971. office365/intune/devices/management/mobileapps/win32/lob_app_restart_settings.py +16 -0
  972. office365/intune/devices/management/mobileapps/win32/lob_app_return_code.py +18 -0
  973. office365/intune/devices/management/mobileapps/win32/lob_app_rule.py +17 -0
  974. office365/intune/devices/management/mobileapps/windows/app_x.py +62 -0
  975. office365/intune/devices/management/mobileapps/windows/app_x_app_assignment_settings.py +14 -0
  976. office365/intune/devices/management/mobileapps/windows/microsoft_edge_app.py +30 -0
  977. office365/intune/devices/management/mobileapps/windows/mobile_msi.py +31 -0
  978. office365/intune/devices/management/mobileapps/windows/universal_app_x.py +93 -0
  979. office365/intune/devices/management/mobileapps/windows/universal_app_x_app_assignment_settings.py +14 -0
  980. office365/intune/devices/management/mobileapps/windows/universal_app_x_contained_app.py +16 -0
  981. office365/intune/devices/management/mobileapps/windows/web_app.py +16 -0
  982. office365/intune/devices/management/notification_message_template.py +68 -0
  983. office365/intune/devices/management/obliteration_behavior.py +15 -0
  984. office365/intune/devices/management/on_premises_conditional_access_settings.py +32 -0
  985. office365/intune/devices/management/operating_system_summary.py +25 -0
  986. office365/intune/devices/management/partner_assignment.py +17 -0
  987. office365/intune/devices/management/remote_lock_action_result.py +14 -0
  988. office365/intune/devices/management/remoteassistance/partner.py +41 -0
  989. office365/intune/devices/management/reports/reports.py +27 -0
  990. office365/intune/devices/management/reset_passcode_action_result.py +15 -0
  991. office365/intune/devices/management/resource_operation.py +26 -0
  992. office365/intune/devices/management/rotate_bit_locker_keys_device_action_result.py +14 -0
  993. office365/intune/devices/management/software_update_status_summary.py +86 -0
  994. office365/intune/devices/management/system_browser_enabled_on.py +16 -0
  995. office365/intune/devices/management/targeted_managed_app_configuration.py +68 -0
  996. office365/intune/devices/management/terms_and_conditions.py +87 -0
  997. office365/intune/devices/management/terms_and_conditions_acceptance_status.py +50 -0
  998. office365/intune/devices/management/terms_and_conditions_assignment.py +25 -0
  999. office365/intune/devices/management/update_windows_device_account_action_parameter.py +22 -0
  1000. office365/intune/devices/management/user_last_sign_in_recommendation_insight_setting.py +22 -0
  1001. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_app_version_details.py +51 -0
  1002. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_app_version_device_id.py +52 -0
  1003. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_os_version.py +56 -0
  1004. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_application_performance.py +56 -0
  1005. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_model_performance.py +50 -0
  1006. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_performance.py +76 -0
  1007. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_performance_details.py +47 -0
  1008. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_os_version_performance.py +36 -0
  1009. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_autopilot_devices_summary.py +16 -0
  1010. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_baseline.py +121 -0
  1011. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_category.py +47 -0
  1012. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_cloud_identity_devices_summary.py +14 -0
  1013. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_cloud_management_devices_summary.py +16 -0
  1014. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_performance.py +127 -0
  1015. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_scores.py +65 -0
  1016. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_history.py +101 -0
  1017. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_process.py +36 -0
  1018. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_process_performance.py +41 -0
  1019. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_insight.py +26 -0
  1020. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_insight_value.py +10 -0
  1021. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_metric.py +21 -0
  1022. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_metric_history.py +27 -0
  1023. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_model_scores.py +65 -0
  1024. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_overview.py +28 -0
  1025. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_score_history.py +17 -0
  1026. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_windows10_devices_summary.py +14 -0
  1027. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_device.py +197 -0
  1028. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_devices_summary.py +47 -0
  1029. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_hardware_readiness_metric.py +66 -0
  1030. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_metric.py +34 -0
  1031. office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_model_performance.py +65 -0
  1032. office365/intune/devices/management/virtualendpoint/virtual_endpoint.py +137 -0
  1033. office365/intune/devices/management/windows_autopilot_deployment_profile.py +106 -0
  1034. office365/intune/devices/management/windows_autopilot_deployment_profile_assignment.py +7 -0
  1035. office365/intune/devices/management/windows_autopilot_device_identity.py +97 -0
  1036. office365/intune/devices/management/windows_defender_scan_action_result.py +14 -0
  1037. office365/intune/devices/management/windows_device_account.py +14 -0
  1038. office365/intune/devices/management/windows_device_ad_account.py +15 -0
  1039. office365/intune/devices/management/windows_device_azure_ad_account.py +14 -0
  1040. office365/intune/devices/management/windows_information_protection_app.py +18 -0
  1041. office365/intune/devices/management/windows_information_protection_app_learning_summary.py +35 -0
  1042. office365/intune/devices/management/windows_information_protection_app_locker_file.py +31 -0
  1043. office365/intune/devices/management/windows_information_protection_data_recovery_certificate.py +18 -0
  1044. office365/intune/devices/management/windows_information_protection_desktop_app.py +16 -0
  1045. office365/intune/devices/management/windows_information_protection_ip_range_collection.py +17 -0
  1046. office365/intune/devices/management/windows_information_protection_network_learning_summary.py +21 -0
  1047. office365/intune/devices/management/windows_information_protection_pin_character_requirements.py +13 -0
  1048. office365/intune/devices/management/windows_information_protection_policy.py +76 -0
  1049. office365/intune/devices/management/windows_information_protection_proxied_domain_collection.py +19 -0
  1050. office365/intune/devices/management/windows_information_protection_resource_collection.py +16 -0
  1051. office365/intune/devices/management/windows_information_protection_store_app.py +10 -0
  1052. office365/intune/devices/management/windows_malware_overview.py +34 -1
  1053. office365/intune/devices/management/windows_protection_state.py +152 -0
  1054. office365/intune/devices/management/windowsmalware/malware_state_for_windows_device.py +58 -0
  1055. office365/intune/devices/management/windowsmalware/windows_device_malware_state.py +99 -0
  1056. office365/intune/devices/management/windowsmalware/windows_malware_category_count.py +22 -0
  1057. office365/intune/devices/management/windowsmalware/windows_malware_execution_state_count.py +20 -0
  1058. office365/intune/devices/management/windowsmalware/windows_malware_information.py +72 -0
  1059. office365/intune/devices/management/windowsmalware/windows_malware_name_count.py +18 -0
  1060. office365/intune/devices/management/windowsmalware/windows_malware_severity_count.py +21 -0
  1061. office365/intune/devices/management/windowsmalware/windows_malware_state_count.py +22 -0
  1062. office365/intune/devices/management_cached_report_configuration.py +7 -0
  1063. office365/intune/devices/management_exchange_connector.py +73 -0
  1064. office365/intune/devices/management_export_job.py +82 -0
  1065. office365/intune/devices/management_partner.py +84 -0
  1066. office365/intune/devices/management_troubleshooting_event.py +22 -0
  1067. office365/intune/organizations/branding.py +29 -0
  1068. office365/intune/organizations/branding_properties.py +187 -0
  1069. office365/intune/organizations/contact.py +132 -0
  1070. office365/intune/organizations/content_customization.py +9 -1
  1071. office365/intune/organizations/organization.py +125 -1
  1072. office365/intune/organizations/organizational_branding_localization.py +7 -0
  1073. office365/intune/print/air_print_settings.py +17 -0
  1074. office365/intune/print/archived_print_job.py +26 -0
  1075. office365/intune/print/certificate_signing_request.py +15 -0
  1076. office365/intune/print/connectors/connector.py +44 -0
  1077. office365/intune/print/document.py +37 -0
  1078. office365/intune/print/document_upload_properties.py +16 -0
  1079. office365/intune/print/job.py +91 -0
  1080. office365/intune/print/job_configuration.py +46 -0
  1081. office365/intune/print/job_status.py +22 -0
  1082. office365/intune/print/margin.py +17 -0
  1083. office365/intune/print/operation.py +28 -0
  1084. office365/intune/print/operation_status.py +18 -0
  1085. office365/intune/print/print.py +65 -0
  1086. office365/intune/print/printers/base.py +66 -0
  1087. office365/intune/print/printers/capabilities.py +82 -0
  1088. office365/intune/print/printers/create_operation.py +28 -0
  1089. office365/intune/print/printers/defaults.py +40 -0
  1090. office365/intune/print/printers/discovery_settings.py +15 -0
  1091. office365/intune/print/printers/location.py +31 -0
  1092. office365/intune/print/printers/printer.py +70 -0
  1093. office365/intune/print/printers/share_viewpoint.py +15 -0
  1094. office365/intune/print/printers/status.py +23 -0
  1095. office365/intune/print/services/endpoint.py +18 -0
  1096. office365/intune/print/settings.py +16 -0
  1097. office365/intune/print/shares/share.py +60 -0
  1098. office365/intune/print/task.py +47 -0
  1099. office365/intune/print/task_definition.py +38 -0
  1100. office365/intune/print/task_status.py +16 -0
  1101. office365/intune/print/task_trigger.py +32 -0
  1102. office365/intune/print/user_print.py +7 -0
  1103. office365/intune/servicecommunications/announcement_base.py +40 -0
  1104. office365/intune/servicecommunications/health/health.py +42 -0
  1105. office365/intune/servicecommunications/issues/issue.py +48 -1
  1106. office365/intune/servicecommunications/messages/update.py +105 -0
  1107. office365/intune/servicecommunications/service_health_issue_post.py +19 -0
  1108. office365/intune/servicecommunications/service_update_message_viewpoint.py +16 -0
  1109. office365/migration/__init__.py +24 -2
  1110. office365/migration/adapters/__init__.py +36 -6
  1111. office365/migration/base.py +105 -8
  1112. office365/migration/checkpoint.py +17 -16
  1113. office365/migration/delta.py +205 -0
  1114. office365/migration/fidelity.py +283 -0
  1115. office365/migration/job.py +172 -13
  1116. office365/migration/logging.py +373 -0
  1117. office365/migration/manifest.py +8 -3
  1118. office365/migration/map.py +84 -0
  1119. office365/migration/package/builder.py +80 -14
  1120. office365/migration/package/manifest_xml.py +19 -4
  1121. office365/migration/runner.py +156 -27
  1122. office365/migration/server_job.py +79 -1
  1123. office365/migration/session.py +335 -18
  1124. office365/migration/settings.py +67 -3
  1125. office365/migration/sharepoint/__init__.py +148 -0
  1126. office365/migration/sharepoint/adapters.py +2883 -114
  1127. office365/migration/sharepoint/branding.py +260 -0
  1128. office365/migration/sharepoint/handoff.py +252 -0
  1129. office365/migration/sharepoint/navigation.py +197 -0
  1130. office365/migration/sharepoint/package_target.py +132 -3
  1131. office365/migration/sharepoint/pages.py +853 -0
  1132. office365/migration/sharepoint/resolvers.py +695 -30
  1133. office365/migration/sharepoint/security.py +504 -0
  1134. office365/migration/sharepoint/site_scope.py +222 -0
  1135. office365/migration/sharepoint/site_settings.py +196 -0
  1136. office365/migration/sharepoint/site_verify.py +207 -0
  1137. office365/migration/sharepoint/structure.py +1426 -0
  1138. office365/migration/sharepoint/verify.py +186 -0
  1139. office365/migration/teams/_extract.py +2 -1
  1140. office365/migration/teams/models.py +1 -0
  1141. office365/migration/throttling.py +215 -0
  1142. office365/migration/validators.py +250 -15
  1143. office365/onedrive/columns/definition.py +11 -0
  1144. office365/onedrive/contenttypes/content_type.py +24 -0
  1145. office365/onedrive/deleted.py +14 -0
  1146. office365/onedrive/driveitems/collection.py +30 -0
  1147. office365/onedrive/driveitems/copy_result.py +115 -0
  1148. office365/onedrive/driveitems/driveItem.py +315 -41
  1149. office365/onedrive/driveitems/retention_label_settings.py +1 -1
  1150. office365/onedrive/drives/drive.py +8 -9
  1151. office365/onedrive/filestorage/containers/container.py +157 -1
  1152. office365/onedrive/filestorage/containers/custom_property_value.py +2 -0
  1153. office365/onedrive/filestorage/containertypes/registration_settings.py +2 -0
  1154. office365/onedrive/filestorage/containertypes/settings.py +2 -0
  1155. office365/onedrive/filestorage/containertypes/settings_override.py +2 -0
  1156. office365/onedrive/internal/paths/children.py +7 -1
  1157. office365/onedrive/listitems/collection.py +34 -4
  1158. office365/onedrive/listitems/list_item.py +11 -0
  1159. office365/onedrive/lists/list.py +28 -1
  1160. office365/onedrive/operations/long_running.py +34 -2
  1161. office365/onedrive/operations/public_inner_error.py +7 -17
  1162. office365/onedrive/operations/rich_long_running.py +27 -1
  1163. office365/onedrive/permissions/permission.py +10 -0
  1164. office365/onedrive/sharepoint/migration/jobs/error_event.py +35 -1
  1165. office365/onedrive/shares/drive_item.py +2 -3
  1166. office365/onedrive/sitepages/collection.py +34 -4
  1167. office365/onedrive/sitepages/site_page.py +1 -1
  1168. office365/onedrive/sites/site.py +140 -1
  1169. office365/onedrive/sites/sites_with_root.py +21 -2
  1170. office365/onedrive/storage/settings.py +13 -0
  1171. office365/onedrive/termstore/groups/collection.py +23 -3
  1172. office365/onedrive/termstore/groups/group.py +26 -3
  1173. office365/onedrive/termstore/relation.py +8 -0
  1174. office365/onedrive/termstore/sets/collection.py +27 -12
  1175. office365/onedrive/termstore/sets/name.py +4 -0
  1176. office365/onedrive/termstore/sets/set.py +16 -3
  1177. office365/onedrive/termstore/store.py +27 -3
  1178. office365/onedrive/termstore/store_manager.py +42 -10
  1179. office365/onedrive/termstore/terms/description.py +4 -0
  1180. office365/onedrive/termstore/terms/label.py +4 -0
  1181. office365/onedrive/termstore/terms/term.py +6 -1
  1182. office365/onedrive/wellknown_list_name.py +11 -0
  1183. office365/onedrive/workbooks/charts/area_format.py +27 -0
  1184. office365/onedrive/workbooks/charts/axis.py +79 -0
  1185. office365/onedrive/workbooks/charts/axis_format.py +32 -0
  1186. office365/onedrive/workbooks/charts/axis_title.py +38 -0
  1187. office365/onedrive/workbooks/charts/axis_title_format.py +22 -0
  1188. office365/onedrive/workbooks/charts/chart.py +44 -1
  1189. office365/onedrive/workbooks/charts/data_label_format.py +30 -0
  1190. office365/onedrive/workbooks/charts/data_labels.py +54 -1
  1191. office365/onedrive/workbooks/charts/fill.py +6 -0
  1192. office365/onedrive/workbooks/charts/font.py +38 -0
  1193. office365/onedrive/workbooks/charts/gridlines.py +33 -0
  1194. office365/onedrive/workbooks/charts/gridlines_format.py +24 -0
  1195. office365/onedrive/workbooks/charts/legend/format.py +27 -0
  1196. office365/onedrive/workbooks/charts/legend/legend.py +24 -1
  1197. office365/onedrive/workbooks/charts/line_format.py +16 -0
  1198. office365/onedrive/workbooks/charts/point.py +31 -0
  1199. office365/onedrive/workbooks/charts/point_format.py +22 -0
  1200. office365/onedrive/workbooks/charts/series/format.py +29 -0
  1201. office365/onedrive/workbooks/charts/series/series.py +13 -0
  1202. office365/onedrive/workbooks/charts/title.py +23 -0
  1203. office365/onedrive/workbooks/charts/title_format.py +27 -0
  1204. office365/onedrive/workbooks/comments/reply.py +18 -0
  1205. office365/onedrive/workbooks/filter.py +4 -0
  1206. office365/onedrive/workbooks/functions/functions.py +6 -0
  1207. office365/onedrive/workbooks/functions/result.py +13 -0
  1208. office365/onedrive/workbooks/names/named_item.py +27 -1
  1209. office365/onedrive/workbooks/operations/workbook.py +2 -1
  1210. office365/onedrive/workbooks/ranges/fill.py +6 -0
  1211. office365/onedrive/workbooks/ranges/format.py +6 -0
  1212. office365/onedrive/workbooks/ranges/format_protection.py +18 -0
  1213. office365/onedrive/workbooks/ranges/range.py +58 -1
  1214. office365/onedrive/workbooks/ranges/sort.py +6 -0
  1215. office365/onedrive/workbooks/ranges/view.py +67 -1
  1216. office365/onedrive/workbooks/tables/columns/column.py +18 -0
  1217. office365/onedrive/workbooks/tables/rows/row.py +6 -0
  1218. office365/onedrive/workbooks/tables/sort.py +22 -1
  1219. office365/onedrive/workbooks/tables/table.py +16 -0
  1220. office365/onedrive/workbooks/workbook.py +4 -0
  1221. office365/onedrive/workbooks/worksheets/protection.py +11 -0
  1222. office365/onedrive/workbooks/worksheets/worksheet.py +16 -0
  1223. office365/onenote/entity_base_model.py +13 -0
  1224. office365/onenote/notebooks/collection.py +38 -0
  1225. office365/onenote/notebooks/notebook.py +45 -4
  1226. office365/onenote/onenote.py +3 -3
  1227. office365/onenote/operations/onenote.py +24 -1
  1228. office365/onenote/pages/collection.py +36 -20
  1229. office365/onenote/pages/page.py +32 -0
  1230. office365/onenote/resources/resource.py +11 -0
  1231. office365/onenote/sectiongroups/section_group.py +20 -5
  1232. office365/onenote/sections/collection.py +47 -0
  1233. office365/onenote/sections/section.py +9 -5
  1234. office365/outlook/attachment_info.py +11 -0
  1235. office365/outlook/calendar/check_in_claim.py +32 -0
  1236. office365/outlook/calendar/events/event.py +29 -2
  1237. office365/outlook/calendar/place.py +56 -1
  1238. office365/outlook/calendar/place_collection.py +34 -0
  1239. office365/outlook/calendar/rooms/room.py +60 -1
  1240. office365/outlook/calendar/rooms/workspace.py +38 -0
  1241. office365/outlook/calendar/sharing_message.py +30 -0
  1242. office365/outlook/contacts/folders/collection.py +23 -3
  1243. office365/outlook/mail/attachments/attachment.py +11 -0
  1244. office365/outlook/mail/attachments/file.py +12 -1
  1245. office365/outlook/mail/attachments/type.py +7 -2
  1246. office365/outlook/mail/export_item_response.py +1 -1
  1247. office365/outlook/mail/folders/collection.py +38 -0
  1248. office365/outlook/mail/folders/folder.py +8 -3
  1249. office365/outlook/mail/messages/event_message.py +71 -0
  1250. office365/outlook/mail/messages/message.py +32 -13
  1251. office365/outlook/mail/post.py +118 -1
  1252. office365/outlook/people/person_type.py +2 -0
  1253. office365/outlook/people/profile_card_property.py +29 -0
  1254. office365/outlook/person.py +29 -1
  1255. office365/partners/billing/billed_reconciliation.py +3 -1
  1256. office365/partners/billing/billed_usage.py +3 -1
  1257. office365/partners/billing/billing.py +1 -1
  1258. office365/partners/billing/blob.py +15 -0
  1259. office365/partners/billing/export_success_operation.py +2 -1
  1260. office365/partners/billing/failed_operation.py +14 -1
  1261. office365/partners/billing/manifest.py +12 -1
  1262. office365/partners/billing/metrics.py +34 -0
  1263. office365/partners/billing/metrics_base.py +53 -0
  1264. office365/partners/billing/metrics_initial.py +17 -0
  1265. office365/partners/billing/metrics_recent.py +17 -0
  1266. office365/partners/billing/operation.py +35 -1
  1267. office365/partners/billing/reconciliation.py +40 -0
  1268. office365/partners/billing/running_operation.py +2 -1
  1269. office365/partners/billing/unbilled_reconciliation.py +3 -1
  1270. office365/partners/billing/unbilled_usage.py +3 -1
  1271. office365/partners/partnertenanttype.py +8 -12
  1272. office365/planner/applied_categories.py +10 -0
  1273. office365/planner/assigned_to_task_board_task_format.py +30 -0
  1274. office365/planner/assignment.py +31 -0
  1275. office365/planner/assignments.py +45 -1
  1276. office365/planner/bucket_task_board_task_format.py +16 -0
  1277. office365/planner/buckets/bucket.py +21 -8
  1278. office365/planner/buckets/collection.py +56 -15
  1279. office365/planner/category_descriptions.py +59 -0
  1280. office365/planner/entity.py +52 -0
  1281. office365/planner/external_reference.py +20 -0
  1282. office365/planner/internal/paths/collections.py +27 -0
  1283. office365/planner/order_hints_by_assignee.py +10 -0
  1284. office365/planner/planner.py +2 -2
  1285. office365/planner/plans/container.py +4 -0
  1286. office365/planner/plans/details.py +6 -2
  1287. office365/planner/plans/plan.py +36 -25
  1288. office365/planner/progress_task_board_task_format.py +16 -0
  1289. office365/planner/tasks/check_list_item.py +28 -1
  1290. office365/planner/tasks/check_list_items.py +46 -9
  1291. office365/planner/tasks/collection.py +67 -32
  1292. office365/planner/tasks/task.py +178 -24
  1293. office365/planner/tasks/task_details.py +54 -5
  1294. office365/planner/user.py +8 -6
  1295. office365/reports/internal/queries/create_report_query.py +3 -24
  1296. office365/reports/partners.py +11 -0
  1297. office365/reports/report.py +4 -0
  1298. office365/reports/report_export.py +197 -0
  1299. office365/reports/report_result.py +55 -0
  1300. office365/reports/root.py +90 -45
  1301. office365/reports/security/root.py +12 -6
  1302. office365/runtime/auth/authentication_context.py +90 -19
  1303. office365/runtime/auth/certificate.py +105 -0
  1304. office365/runtime/auth/entra/authentication_context.py +130 -9
  1305. office365/runtime/client_object.py +145 -5
  1306. office365/runtime/client_object_collection.py +350 -10
  1307. office365/runtime/client_request.py +323 -22
  1308. office365/runtime/client_request_exception.py +64 -2
  1309. office365/runtime/client_result.py +80 -2
  1310. office365/runtime/client_runtime_context.py +667 -30
  1311. office365/runtime/client_value.py +29 -10
  1312. office365/runtime/client_value_collection.py +30 -15
  1313. office365/runtime/converters/scalars.py +27 -0
  1314. office365/runtime/converters/upsert.py +3 -3
  1315. office365/runtime/converters/value.py +31 -4
  1316. office365/runtime/display.py +232 -0
  1317. office365/runtime/exceptions.py +65 -4
  1318. office365/runtime/http/prefer.py +123 -2
  1319. office365/runtime/http/request_options.py +10 -3
  1320. office365/runtime/http/throttling.py +151 -21
  1321. office365/runtime/imports.py +160 -34
  1322. office365/runtime/lro.py +751 -0
  1323. office365/runtime/odata/batch_util.py +33 -1
  1324. office365/runtime/odata/literals.py +49 -0
  1325. office365/runtime/odata/request.py +9 -4
  1326. office365/runtime/odata/type.py +10 -4
  1327. office365/runtime/odata/v3/batch_request.py +174 -26
  1328. office365/runtime/odata/v4/batch_request.py +146 -15
  1329. office365/runtime/odata/v4/upload_session_request.py +18 -0
  1330. office365/runtime/paths/alternate_key.py +44 -0
  1331. office365/runtime/paths/appid.py +8 -8
  1332. office365/runtime/paths/builder.py +11 -5
  1333. office365/runtime/persistence.py +71 -0
  1334. office365/runtime/pollable.py +234 -0
  1335. office365/runtime/progress.py +52 -0
  1336. office365/runtime/queries/batch.py +13 -5
  1337. office365/runtime/queries/client_query.py +27 -1
  1338. office365/runtime/queries/deferred.py +7 -0
  1339. office365/runtime/queries/get_or_create.py +19 -3
  1340. office365/runtime/queries/upsert_entity.py +103 -0
  1341. office365/runtime/query_capabilities.py +333 -0
  1342. office365/runtime/record_collection.py +176 -4
  1343. office365/runtime/respond_async.py +132 -0
  1344. office365/runtime/retry.py +124 -11
  1345. office365/runtime/transport/base.py +160 -4
  1346. office365/runtime/transport/httpx_transport.py +263 -0
  1347. office365/runtime/transport/offload.py +156 -0
  1348. office365/runtime/transport/requests_transport.py +163 -18
  1349. office365/runtime/transport/throttled_transport.py +29 -6
  1350. office365/runtime/verification.py +41 -9
  1351. office365/search/acronyms/acronym.py +19 -0
  1352. office365/search/aggregation_option.py +12 -0
  1353. office365/search/alteration_response.py +18 -0
  1354. office365/search/altered_query_token.py +16 -0
  1355. office365/search/answers/keyword.py +17 -0
  1356. office365/search/answers/variant.py +19 -0
  1357. office365/search/bookmarks/bookmark.py +21 -1
  1358. office365/search/bucket.py +4 -0
  1359. office365/search/bucket_aggregation_definition.py +23 -0
  1360. office365/search/bucket_aggregation_range.py +15 -0
  1361. office365/search/collapse_property.py +16 -0
  1362. office365/search/connection_item.py +14 -0
  1363. office365/search/entity_type.py +1 -1
  1364. office365/search/external/connection.py +88 -0
  1365. office365/search/external/item.py +29 -0
  1366. office365/search/external/item_configuration.py +18 -0
  1367. office365/search/external/search_settings.py +11 -1
  1368. office365/search/hits/container.py +4 -0
  1369. office365/search/hits/hit.py +10 -0
  1370. office365/search/identity.py +16 -0
  1371. office365/search/identity_set.py +8 -1
  1372. office365/search/qnas/qna.py +21 -1
  1373. office365/search/query.py +4 -0
  1374. office365/search/recommended_action.py +16 -0
  1375. office365/search/request.py +17 -0
  1376. office365/search/response.py +10 -0
  1377. office365/search/result_template.py +16 -0
  1378. office365/search/result_template_dictionary.py +10 -0
  1379. office365/search/result_template_option.py +14 -0
  1380. office365/search/retrieval_extract.py +15 -0
  1381. office365/search/retrieval_hit.py +27 -0
  1382. office365/search/retrieval_response.py +18 -0
  1383. office365/search/search_alteration.py +21 -0
  1384. office365/search/search_alteration_options.py +15 -0
  1385. office365/search/search_resource_metadata_dictionary.py +10 -0
  1386. office365/search/search_result.py +14 -0
  1387. office365/search/sharepoint_onedrive_options.py +7 -0
  1388. office365/search/sort_property.py +4 -0
  1389. office365/security/account.py +24 -0
  1390. office365/security/account_target_content.py +17 -0
  1391. office365/security/activity_metadata.py +15 -0
  1392. office365/security/address_book_account_target_content.py +15 -0
  1393. office365/security/ai_agent_evidence.py +19 -0
  1394. office365/security/alerts/alert.py +459 -0
  1395. office365/security/alerts/blob_container_evidence.py +17 -0
  1396. office365/security/alerts/blob_evidence.py +21 -0
  1397. office365/security/alerts/collection.py +49 -0
  1398. office365/security/alerts/detection.py +16 -0
  1399. office365/security/alerts/evidence.py +28 -0
  1400. office365/security/alerts/file_security_state.py +23 -0
  1401. office365/security/alerts/history_state.py +31 -0
  1402. office365/security/alerts/malware_evidence.py +22 -0
  1403. office365/security/alerts/process_evidence.py +27 -0
  1404. office365/security/alerts/sas_token_evidence.py +26 -0
  1405. office365/security/alerts/trigger.py +16 -0
  1406. office365/security/analyzed_message_evidence.py +34 -0
  1407. office365/security/article.py +75 -0
  1408. office365/security/assigned_training_info.py +16 -0
  1409. office365/security/attacksimulations/automation.py +90 -0
  1410. office365/security/attacksimulations/automation_run.py +43 -0
  1411. office365/security/attacksimulations/event.py +22 -0
  1412. office365/security/attacksimulations/landing_page.py +105 -0
  1413. office365/security/attacksimulations/landing_page_detail.py +26 -0
  1414. office365/security/attacksimulations/login_page.py +83 -0
  1415. office365/security/attacksimulations/operations/operation.py +37 -0
  1416. office365/security/attacksimulations/payload.py +192 -0
  1417. office365/security/attacksimulations/repeat_offender.py +21 -0
  1418. office365/security/attacksimulations/reports/overview.py +30 -0
  1419. office365/security/attacksimulations/reports/report.py +29 -0
  1420. office365/security/attacksimulations/root.py +124 -0
  1421. office365/security/attacksimulations/simulation.py +220 -0
  1422. office365/security/attacksimulations/training_user_coverage.py +22 -0
  1423. office365/security/attacksimulations/user.py +20 -0
  1424. office365/security/attacksimulations/user_coverage.py +26 -0
  1425. office365/security/attacksimulations/users/details.py +48 -0
  1426. office365/security/attribute_definition.py +37 -0
  1427. office365/security/attribute_mapping.py +11 -0
  1428. office365/security/attribute_mapping_source.py +25 -0
  1429. office365/security/audit/audit_data.py +15 -0
  1430. office365/security/audit/core_root.py +26 -0
  1431. office365/security/audit/log_query.py +114 -0
  1432. office365/security/audit/log_record.py +84 -0
  1433. office365/security/audit/whois_record.py +22 -0
  1434. office365/security/average_comparative_score.py +15 -0
  1435. office365/security/base_end_user_notification.py +20 -0
  1436. office365/security/cases/case.py +48 -0
  1437. office365/security/cases/ediscovery.py +136 -0
  1438. office365/security/cases/operation.py +67 -0
  1439. office365/security/cases/root.py +21 -0
  1440. office365/security/category_template.py +30 -0
  1441. office365/security/certification_control.py +15 -0
  1442. office365/security/cloud_app_security_state.py +16 -0
  1443. office365/security/cloud_application_evidence.py +20 -0
  1444. office365/security/cloud_clipboard_item.py +44 -0
  1445. office365/security/cloud_clipboard_item_payload.py +15 -0
  1446. office365/security/cloud_clipboard_root.py +28 -0
  1447. office365/security/cloud_flare_rule_model.py +16 -0
  1448. office365/security/cloud_flare_ruleset_model.py +16 -0
  1449. office365/security/cloud_flare_verified_details_model.py +25 -0
  1450. office365/security/cloud_flare_web_application_firewall_provider.py +21 -0
  1451. office365/security/cloud_logon_session_evidence.py +24 -0
  1452. office365/security/cloud_pc_audit_event.py +105 -0
  1453. office365/security/cloud_pc_device_image.py +95 -0
  1454. office365/security/cloud_pc_gallery_image.py +71 -0
  1455. office365/security/cloud_pc_on_premises_connection.py +130 -0
  1456. office365/security/cloud_pc_provisioning_policy.py +156 -0
  1457. office365/security/cloud_pc_provisioning_policy_assignment.py +38 -0
  1458. office365/security/cloud_pc_report.py +9 -0
  1459. office365/security/cloud_pc_service_plan.py +31 -0
  1460. office365/security/cloud_pc_user_setting.py +70 -0
  1461. office365/security/cloud_pc_user_setting_assignment.py +31 -0
  1462. office365/security/cloud_video_interop_info.py +16 -0
  1463. office365/security/coachmark_location.py +18 -0
  1464. office365/security/coachmark_location_type.py +17 -0
  1465. office365/security/collaboration/analyzed_email.py +288 -0
  1466. office365/security/collaboration/analyzed_email_attachment.py +25 -0
  1467. office365/security/collaboration/analyzed_email_delivery_detail.py +21 -0
  1468. office365/security/collaboration/analyzed_email_url.py +21 -0
  1469. office365/security/collaboration/collaboration_root.py +22 -0
  1470. office365/security/compromise_indicator.py +17 -0
  1471. office365/security/container_evidence.py +28 -0
  1472. office365/security/container_image_evidence.py +17 -0
  1473. office365/security/control_score.py +17 -0
  1474. office365/security/custom_training_setting.py +24 -0
  1475. office365/security/cvss_summary.py +18 -0
  1476. office365/security/data_source_container.py +44 -0
  1477. office365/security/datasecurity/classifcation_error_base.py +18 -0
  1478. office365/security/datasecurity/classification_error.py +20 -0
  1479. office365/security/datasecurity/compute_rights_and_inheritance_result.py +25 -0
  1480. office365/security/datasecurity/governance.py +42 -0
  1481. office365/security/datasecurity/label_content_right.py +44 -0
  1482. office365/security/datasecurity/policy_scope_base.py +26 -0
  1483. office365/security/datasecurity/policy_tenant_scope.py +15 -0
  1484. office365/security/datasecurity/policy_tip_action.py +16 -0
  1485. office365/security/datasecurity/process_content_batch_request.py +17 -0
  1486. office365/security/datasecurity/process_content_request.py +33 -0
  1487. office365/security/datasecurity/process_content_response.py +24 -0
  1488. office365/security/datasecurity/process_content_responses.py +16 -0
  1489. office365/security/datasecurity/process_file_metadata.py +16 -0
  1490. office365/security/datasecurity/sensitivity_label.py +117 -0
  1491. office365/security/datasecurity/tenant_protection_scope_container.py +9 -0
  1492. office365/security/datasecurity/usage_rights_included.py +31 -0
  1493. office365/security/detonation_details.py +34 -0
  1494. office365/security/device_evidence.py +50 -0
  1495. office365/security/dns_evidence.py +19 -0
  1496. office365/security/ediscovery/case_member.py +31 -0
  1497. office365/security/ediscovery/custodian.py +76 -0
  1498. office365/security/ediscovery/ediscovery_case_settings.py +57 -0
  1499. office365/security/ediscovery/ediscovery_estimate_operation.py +66 -0
  1500. office365/security/ediscovery/ediscovery_export_operation.py +64 -0
  1501. office365/security/ediscovery/ediscovery_index_operation.py +8 -0
  1502. office365/security/ediscovery/ediscovery_review_tag.py +34 -0
  1503. office365/security/ediscovery/noncustodial_data_source.py +37 -0
  1504. office365/security/ediscovery/operations/add_to_review_set.py +64 -0
  1505. office365/security/ediscovery/operations/hold.py +8 -0
  1506. office365/security/ediscovery/operations/hold_policy_sync.py +23 -0
  1507. office365/security/ediscovery/operations/purge_data.py +23 -0
  1508. office365/security/ediscovery/operations/search_export.py +83 -0
  1509. office365/security/ediscovery/operations/tag.py +8 -0
  1510. office365/security/ediscovery/review_set.py +22 -0
  1511. office365/security/ediscovery/review_set_query.py +9 -0
  1512. office365/security/ediscovery/search.py +81 -0
  1513. office365/security/email_payload_detail.py +17 -0
  1514. office365/security/end_user_notification.py +110 -0
  1515. office365/security/end_user_notification_detail.py +46 -0
  1516. office365/security/end_user_notification_setting.py +25 -0
  1517. office365/security/evaluation_outcome.py +13 -0
  1518. office365/security/event_propagation_result.py +18 -0
  1519. office365/security/event_query.py +17 -0
  1520. office365/security/expression_input_object.py +20 -0
  1521. office365/security/file_evidence.py +18 -0
  1522. office365/security/file_hash.py +21 -0
  1523. office365/security/file_hash_evidence.py +16 -0
  1524. office365/security/file_plan_applied_category.py +15 -0
  1525. office365/security/filter.py +22 -0
  1526. office365/security/filter_clause.py +17 -0
  1527. office365/security/filter_group.py +17 -0
  1528. office365/security/formatted_content.py +16 -0
  1529. office365/security/google_cloud_resource_evidence.py +21 -0
  1530. office365/security/health_issue.py +81 -0
  1531. office365/security/host_security_state.py +22 -0
  1532. office365/security/host_ssl_certificate_port.py +17 -0
  1533. office365/security/hunting_query_results.py +24 -0
  1534. office365/security/hyperlink.py +15 -0
  1535. office365/security/identity_accounts.py +47 -0
  1536. office365/security/identity_provider.py +14 -0
  1537. office365/security/incidents/incident.py +148 -0
  1538. office365/security/include_all_account_target_content.py +10 -0
  1539. office365/security/indicator.py +28 -0
  1540. office365/security/intelligence_profile_country_or_region_of_origin.py +15 -0
  1541. office365/security/investigation_security_state.py +15 -0
  1542. office365/security/invoke_action_result.py +24 -0
  1543. office365/security/io_t_device_evidence.py +46 -0
  1544. office365/security/ip_address.py +36 -0
  1545. office365/security/ip_evidence.py +19 -0
  1546. office365/security/kubernetes_cluster_evidence.py +20 -0
  1547. office365/security/kubernetes_controller_evidence.py +19 -0
  1548. office365/security/kubernetes_namespace_evidence.py +18 -0
  1549. office365/security/kubernetes_pod_evidence.py +38 -0
  1550. office365/security/kubernetes_secret_evidence.py +17 -0
  1551. office365/security/kubernetes_service_account_evidence.py +16 -0
  1552. office365/security/kubernetes_service_evidence.py +29 -0
  1553. office365/security/kubernetes_service_port.py +20 -0
  1554. office365/security/labels/retention/collection.py +68 -0
  1555. office365/security/labels/retention/duration_in_days.py +16 -0
  1556. office365/security/labels/retention/fileplan_descriptor.py +104 -0
  1557. office365/security/labels/retention/label.py +158 -0
  1558. office365/security/labels/root.py +83 -0
  1559. office365/security/mailbox_configuration_evidence.py +24 -0
  1560. office365/security/mailbox_evidence.py +18 -0
  1561. office365/security/malware_state.py +18 -0
  1562. office365/security/message_security_state.py +23 -0
  1563. office365/security/microsoft_custom_training_setting.py +26 -0
  1564. office365/security/microsoft_managed_training_setting.py +19 -0
  1565. office365/security/microsoft_training_assignment_mapping.py +26 -0
  1566. office365/security/monitor_mode.py +12 -0
  1567. office365/security/monitor_run_status.py +14 -0
  1568. office365/security/monitor_status.py +13 -0
  1569. office365/security/network_connection.py +39 -0
  1570. office365/security/network_connection_evidence.py +21 -0
  1571. office365/security/nic_evidence.py +18 -0
  1572. office365/security/no_training_notification_setting.py +15 -0
  1573. office365/security/no_training_setting.py +10 -0
  1574. office365/security/object_definition.py +25 -0
  1575. office365/security/object_mapping.py +33 -0
  1576. office365/security/parse_expression_response.py +22 -0
  1577. office365/security/passive_dns_record.py +47 -0
  1578. office365/security/payload_coachmark.py +21 -0
  1579. office365/security/payload_detail.py +20 -0
  1580. office365/security/positive_reinforcement_notification.py +17 -0
  1581. office365/security/process.py +28 -0
  1582. office365/security/processing_error.py +15 -0
  1583. office365/security/registry_key_state.py +26 -0
  1584. office365/security/retention_event.py +98 -0
  1585. office365/security/retention_event_status.py +18 -0
  1586. office365/security/scorecontrol/profile.py +135 -0
  1587. office365/security/search/data_source.py +34 -0
  1588. office365/security/securescores/control_state_update.py +19 -0
  1589. office365/security/securescores/secure_score.py +85 -0
  1590. office365/security/security.py +208 -0
  1591. office365/security/security_resource.py +18 -0
  1592. office365/security/security_vendor_information.py +17 -0
  1593. office365/security/sensitivity_label_info.py +18 -0
  1594. office365/security/sensor.py +84 -0
  1595. office365/security/sensor_candidate_activation_configuration.py +25 -0
  1596. office365/security/sensor_settings.py +20 -0
  1597. office365/security/service_principal_evidence.py +21 -0
  1598. office365/security/settings_container.py +19 -0
  1599. office365/security/simulation_event.py +15 -0
  1600. office365/security/simulation_events_content.py +19 -0
  1601. office365/security/simulation_notification.py +17 -0
  1602. office365/security/ssl_certificate.py +78 -0
  1603. office365/security/ssl_certificate_entity.py +24 -0
  1604. office365/security/string_key_attribute_mapping_source_value_pair.py +19 -0
  1605. office365/security/subdomain.py +26 -0
  1606. office365/security/subjectrightsrequests/authored_note.py +35 -0
  1607. office365/security/subjectrightsrequests/request.py +255 -0
  1608. office365/security/teams_message_evidence.py +52 -0
  1609. office365/security/threatintelligence/host.py +138 -0
  1610. office365/security/threatintelligence/host_component.py +46 -0
  1611. office365/security/threatintelligence/host_cookie.py +41 -0
  1612. office365/security/threatintelligence/host_logon_session_evidence.py +21 -0
  1613. office365/security/threatintelligence/host_pair.py +41 -0
  1614. office365/security/threatintelligence/host_port.py +106 -0
  1615. office365/security/threatintelligence/host_port_component.py +19 -0
  1616. office365/security/threatintelligence/host_reputation.py +43 -0
  1617. office365/security/threatintelligence/host_reputation_rule.py +21 -0
  1618. office365/security/threatintelligence/host_ssl_certificate.py +56 -0
  1619. office365/security/threatintelligence/host_tracker.py +41 -0
  1620. office365/security/threatintelligence/hosts/__init__.py +0 -0
  1621. office365/security/threatintelligence/profile.py +114 -0
  1622. office365/security/threatintelligence/threat_intelligence.py +193 -0
  1623. office365/security/threatintelligence/whoisrecords/__init__.py +0 -0
  1624. office365/security/timeline_event.py +25 -0
  1625. office365/security/training.py +123 -0
  1626. office365/security/training_language_detail.py +64 -0
  1627. office365/security/training_notification_setting.py +21 -0
  1628. office365/security/training_reminder_notification.py +17 -0
  1629. office365/security/training_setting.py +17 -0
  1630. office365/security/triggers/__init__.py +0 -0
  1631. office365/security/triggers/root.py +30 -0
  1632. office365/security/triggertypes/__init__.py +0 -0
  1633. office365/security/triggertypes/collection.py +9 -0
  1634. office365/security/triggertypes/root.py +24 -0
  1635. office365/security/unified_group_source.py +22 -0
  1636. office365/security/uri_click_security_state.py +20 -0
  1637. office365/security/user.py +21 -0
  1638. office365/security/user_account.py +27 -0
  1639. office365/security/user_evidence.py +17 -0
  1640. office365/security/user_security_state.py +33 -0
  1641. office365/security/user_simulation_event_info.py +21 -0
  1642. office365/security/user_source.py +27 -0
  1643. office365/security/user_training_content_event_info.py +19 -0
  1644. office365/security/user_training_event_info.py +22 -0
  1645. office365/security/user_training_status_info.py +19 -0
  1646. office365/security/vm_metadata.py +19 -0
  1647. office365/security/vulnerability.py +134 -0
  1648. office365/security/vulnerability_state.py +16 -0
  1649. office365/security/whois_base_record.py +127 -0
  1650. office365/security/whois_contact.py +20 -0
  1651. office365/security/whois_nameserver.py +21 -0
  1652. office365/sharepoint/activities/entity.py +9 -0
  1653. office365/sharepoint/administration/sitemove/service.py +70 -1
  1654. office365/sharepoint/administration/sitemove/systemsitelockexpres.py +8 -0
  1655. office365/sharepoint/administration/spfarm.py +8 -0
  1656. office365/sharepoint/administration/spwebapplication.py +23 -1
  1657. office365/sharepoint/alerts/alert.py +10 -0
  1658. office365/sharepoint/approvals/approvals.py +262 -1
  1659. office365/sharepoint/apps/access_requests.py +69 -0
  1660. office365/sharepoint/apps/appsitecontextutility.py +23 -1
  1661. office365/sharepoint/apps/apptileproperties.py +63 -1
  1662. office365/sharepoint/apps/catalog.py +18 -1
  1663. office365/sharepoint/apps/instance.py +87 -1
  1664. office365/sharepoint/apps/management/principal_info.py +19 -0
  1665. office365/sharepoint/attachments/collection.py +20 -3
  1666. office365/sharepoint/audit/audit.py +5 -0
  1667. office365/sharepoint/authentication/auth_file_detonation_request_response.py +15 -0
  1668. office365/sharepoint/authpolicy/events/event.py +20 -0
  1669. office365/sharepoint/authpolicy/tenant/compliancereportentitydata.py +12 -0
  1670. office365/sharepoint/automations/automations.py +682 -1
  1671. office365/sharepoint/brandcenter/brand_center.py +277 -0
  1672. office365/sharepoint/businessdata/infrastructure/securestore/connection_settings.py +42 -0
  1673. office365/sharepoint/businessdata/runtime/subscription.py +16 -0
  1674. office365/sharepoint/changes/alert.py +8 -0
  1675. office365/sharepoint/changes/app_consent_principal.py +9 -0
  1676. office365/sharepoint/changes/change.py +7 -0
  1677. office365/sharepoint/changes/content_type.py +8 -0
  1678. office365/sharepoint/changes/field.py +8 -0
  1679. office365/sharepoint/changes/folder.py +7 -0
  1680. office365/sharepoint/changes/item.py +53 -0
  1681. office365/sharepoint/changes/list.py +23 -0
  1682. office365/sharepoint/client_context.py +291 -14
  1683. office365/sharepoint/clientsidecomponent/hostedapps/add_response.py +19 -0
  1684. office365/sharepoint/comments/collection.py +1 -1
  1685. office365/sharepoint/comments/comment.py +20 -1
  1686. office365/sharepoint/compliance/sensitivitylabels/collection.py +33 -1
  1687. office365/sharepoint/content_solution.py +18 -0
  1688. office365/sharepoint/contentcenter/machinelearning/enabled.py +37 -0
  1689. office365/sharepoint/contentcenter/machinelearning/hub.py +57 -8
  1690. office365/sharepoint/contentcenter/machinelearning/models/entity_data.py +135 -0
  1691. office365/sharepoint/contentcenter/machinelearning/models/model.py +20 -2
  1692. office365/sharepoint/contentcenter/machinelearning/publications/publication.py +7 -0
  1693. office365/sharepoint/contentcenter/machinelearning/samples/entity_data.py +14 -0
  1694. office365/sharepoint/contentcenter/machinelearning/samples/sample.py +7 -0
  1695. office365/sharepoint/contentcenter/machinelearning/workitementitydata.py +7 -0
  1696. office365/sharepoint/contentcenter/machinelearning/workitems/item.py +12 -0
  1697. office365/sharepoint/contentcenter/sp_machine_learning_column_autofill_prompt_suggestion_data.py +25 -0
  1698. office365/sharepoint/contentcenter/sp_machine_learning_column_autofill_prompt_suggestion_result.py +16 -0
  1699. office365/sharepoint/contentcenter/sp_machine_learning_publications_result.py +38 -0
  1700. office365/sharepoint/contentcenter/syntex_models_landing_info.py +24 -0
  1701. office365/sharepoint/contentcenter/template_api.py +195 -0
  1702. office365/sharepoint/contenttypes/collection.py +54 -17
  1703. office365/sharepoint/contenttypes/content_type.py +146 -5
  1704. office365/sharepoint/contenttypes/content_type_id.py +4 -0
  1705. office365/sharepoint/contenttypes/fieldlinks/collection.py +1 -2
  1706. office365/sharepoint/contenttypes/fieldlinks/field_link.py +20 -2
  1707. office365/sharepoint/directory/conditional_access_policy.py +5 -0
  1708. office365/sharepoint/directory/group_and_user_status.py +9 -0
  1709. office365/sharepoint/directory/groups/group.py +203 -6
  1710. office365/sharepoint/directory/link.py +20 -0
  1711. office365/sharepoint/directory/members_info.py +15 -0
  1712. office365/sharepoint/directory/multi_conditional_access_policy.py +5 -0
  1713. office365/sharepoint/directory/my_groups_result.py +14 -0
  1714. office365/sharepoint/directory/named_location_policy.py +15 -0
  1715. office365/sharepoint/directory/provider/provider.py +141 -0
  1716. office365/sharepoint/directory/session.py +69 -0
  1717. office365/sharepoint/directory/tenant.py +37 -0
  1718. office365/sharepoint/directory/users/user.py +343 -1
  1719. office365/sharepoint/document_location.py +14 -0
  1720. office365/sharepoint/documentmanagement/document_set.py +4 -0
  1721. office365/sharepoint/dynamiccontent/updateservice.py +207 -1
  1722. office365/sharepoint/edgeworth_settings_apis.py +7 -0
  1723. office365/sharepoint/engage_distribution_info.py +17 -0
  1724. office365/sharepoint/entity.py +94 -4
  1725. office365/sharepoint/entity_collection.py +86 -1
  1726. office365/sharepoint/esign/digitallegacy.py +371 -1
  1727. office365/sharepoint/eventreceivers/definition.py +26 -0
  1728. office365/sharepoint/exceptions.py +2 -2
  1729. office365/sharepoint/features/definitions/definition.py +8 -0
  1730. office365/sharepoint/fields/calculated.py +22 -0
  1731. office365/sharepoint/fields/choice.py +9 -0
  1732. office365/sharepoint/fields/collection.py +61 -7
  1733. office365/sharepoint/fields/field.py +109 -1
  1734. office365/sharepoint/fields/lookup.py +23 -0
  1735. office365/sharepoint/fields/multi_choice.py +7 -0
  1736. office365/sharepoint/fields/multi_line_text.py +12 -0
  1737. office365/sharepoint/fields/number.py +27 -0
  1738. office365/sharepoint/fields/rating_scale.py +27 -0
  1739. office365/sharepoint/fields/user.py +12 -0
  1740. office365/sharepoint/files/checked_out_file.py +15 -0
  1741. office365/sharepoint/files/collection.py +269 -38
  1742. office365/sharepoint/files/download_operation.py +466 -0
  1743. office365/sharepoint/files/file.py +648 -20
  1744. office365/sharepoint/files/file_url_virus_status_update.py +9 -0
  1745. office365/sharepoint/files/publish/status.py +43 -0
  1746. office365/sharepoint/files/recent_file_collection.py +41 -0
  1747. office365/sharepoint/files/versions/collection.py +1 -1
  1748. office365/sharepoint/files/versions/event.py +13 -0
  1749. office365/sharepoint/flows/synchronization_result.py +13 -1
  1750. office365/sharepoint/folders/coloring.py +29 -0
  1751. office365/sharepoint/folders/folder.py +173 -4
  1752. office365/sharepoint/fontpackages/font_package.py +69 -0
  1753. office365/sharepoint/fontpackages/oob_settings.py +47 -0
  1754. office365/sharepoint/forms/form.py +8 -0
  1755. office365/sharepoint/glutamate_controller.py +44 -0
  1756. office365/sharepoint/htmlpages/html_page.py +5 -0
  1757. office365/sharepoint/item_reference.py +17 -0
  1758. office365/sharepoint/largeoperation/operation.py +26 -1
  1759. office365/sharepoint/likes/user_entity.py +7 -0
  1760. office365/sharepoint/list_creation_information.py +18 -0
  1761. office365/sharepoint/listhome/favorite_lists.py +130 -0
  1762. office365/sharepoint/listhome/favoritelistssubstrate.py +106 -1
  1763. office365/sharepoint/listhome/item2.py +7 -0
  1764. office365/sharepoint/listhome/itemcollection.py +99 -1
  1765. office365/sharepoint/listhome/nucleus.py +15 -1
  1766. office365/sharepoint/listhome/pinneditems.py +127 -1
  1767. office365/sharepoint/listitems/collection.py +28 -0
  1768. office365/sharepoint/listitems/favoriteitemcollection.py +20 -1
  1769. office365/sharepoint/listitems/listitem.py +529 -27
  1770. office365/sharepoint/listitems/relateditemmanager.py +231 -1
  1771. office365/sharepoint/listitems/versions/version.py +9 -0
  1772. office365/sharepoint/lists/apihubconnector.py +18 -1
  1773. office365/sharepoint/lists/batch_convert_asset_result.py +19 -0
  1774. office365/sharepoint/lists/batch_convert_classic_wiki_page_input.py +15 -0
  1775. office365/sharepoint/lists/batch_convert_item_result.py +21 -1
  1776. office365/sharepoint/lists/bloom_filter.py +33 -0
  1777. office365/sharepoint/lists/list.py +1255 -31
  1778. office365/sharepoint/lists/list_forms_api.py +106 -1
  1779. office365/sharepoint/lists/playlist.py +33 -1
  1780. office365/sharepoint/lists/recentlist.py +7 -0
  1781. office365/sharepoint/lists/recentlistcollection.py +76 -1
  1782. office365/sharepoint/lists/recentlistproxy.py +31 -1
  1783. office365/sharepoint/lists/recommendationcollection.py +71 -1
  1784. office365/sharepoint/lists/smart_wiki_library_utility.py +102 -0
  1785. office365/sharepoint/lists/smart_wiki_metadata_update_parameters.py +18 -0
  1786. office365/sharepoint/lists/templates/template.py +58 -0
  1787. office365/sharepoint/lists/version_policy_manager.py +14 -0
  1788. office365/sharepoint/migrationcenter/agentgroupentity.py +24 -1
  1789. office365/sharepoint/migrationcenter/common/task.py +8 -1
  1790. office365/sharepoint/migrationcenter/common/task_entity_data.py +231 -0
  1791. office365/sharepoint/migrationcenter/common/teams/channel_resource.py +7 -0
  1792. office365/sharepoint/migrationcenter/common/teams/team_resource.py +8 -0
  1793. office365/sharepoint/migrationcenter/common/url_parser.py +37 -1
  1794. office365/sharepoint/migrationcenter/credentialentitydata.py +7 -0
  1795. office365/sharepoint/migrationcenter/device.py +7 -0
  1796. office365/sharepoint/migrationcenter/deviceentitydata.py +8 -0
  1797. office365/sharepoint/migrationcenter/service/credential.py +21 -0
  1798. office365/sharepoint/migrationcenter/service/services.py +77 -0
  1799. office365/sharepoint/mount/folder_info.py +34 -0
  1800. office365/sharepoint/mount/onedriveitemcollection.py +26 -1
  1801. office365/sharepoint/mount/placesinformation.py +18 -1
  1802. office365/sharepoint/multigeo/service/allowed_data_location.py +7 -0
  1803. office365/sharepoint/multigeo/service/cross_geo_user_placement_job.py +7 -0
  1804. office365/sharepoint/multigeo/service/df_deprecation_job.py +18 -0
  1805. office365/sharepoint/multigeo/service/geo_tenant_instance_information.py +7 -0
  1806. office365/sharepoint/multigeo/service/job_entity_data.py +21 -0
  1807. office365/sharepoint/multigeo/service/microfeedpostdefinitionmanager.py +91 -0
  1808. office365/sharepoint/multigeo/service/move_job_entity_data.py +111 -0
  1809. office365/sharepoint/multigeo/service/move_site_ro_state.py +18 -0
  1810. office365/sharepoint/multigeo/service/multigeoservicesbeta.py +55 -13
  1811. office365/sharepoint/multigeo/service/sbsitemovejob.py +26 -0
  1812. office365/sharepoint/multigeo/service/site_move_job_entity_data.py +75 -0
  1813. office365/sharepoint/multigeo/service/storage_quota.py +49 -0
  1814. office365/sharepoint/multigeo/service/tenant_information.py +40 -0
  1815. office365/sharepoint/multigeo/service/unified_group.py +35 -0
  1816. office365/sharepoint/multigeo/service/user_personal_site_location.py +30 -0
  1817. office365/sharepoint/multigeo/service/usermovejob.py +11 -0
  1818. office365/sharepoint/navigation/home_site_navigation_settings.py +6 -1
  1819. office365/sharepoint/navigation/nodes/creationinformation.py +2 -0
  1820. office365/sharepoint/navigation/nodes/node.py +22 -1
  1821. office365/sharepoint/navigation/quickaccessitemcollection.py +37 -1
  1822. office365/sharepoint/news/ngspdatacollection.py +24 -1
  1823. office365/sharepoint/ngsp_ai_settings.py +32 -0
  1824. office365/sharepoint/oauth/token_response.py +56 -0
  1825. office365/sharepoint/onboarding/job_entity_data.py +14 -0
  1826. office365/sharepoint/onboarding/tenantrename/job.py +7 -0
  1827. office365/sharepoint/onboarding/tenantrename/jobentitydata.py +10 -0
  1828. office365/sharepoint/permissions/irm/effective_settings.py +78 -0
  1829. office365/sharepoint/permissions/irm/file_settings.py +47 -0
  1830. office365/sharepoint/permissions/irm/settings.py +16 -0
  1831. office365/sharepoint/permissions/roles/definitions/definition.py +12 -0
  1832. office365/sharepoint/permissions/securable_object.py +42 -0
  1833. office365/sharepoint/portal/groups/site_manager.py +28 -4
  1834. office365/sharepoint/portal/home/page_context.py +4 -0
  1835. office365/sharepoint/portal/home/service_context.py +57 -0
  1836. office365/sharepoint/portal/organization_news.py +37 -0
  1837. office365/sharepoint/portal/theme_manager.py +17 -0
  1838. office365/sharepoint/portal/userprofiles/sharedwithme/document.py +267 -0
  1839. office365/sharepoint/portal/userprofiles/sharedwithme/item_collection.py +147 -0
  1840. office365/sharepoint/portal/webcontrols/recentdocument.py +7 -0
  1841. office365/sharepoint/principal/groups/group.py +11 -1
  1842. office365/sharepoint/publishing/amplify/clientamplifyanywhereresults.py +1 -1
  1843. office365/sharepoint/publishing/amplify/historyresult.py +1 -1
  1844. office365/sharepoint/publishing/amplify/result.py +1 -1
  1845. office365/sharepoint/publishing/announcements/data.py +2 -2
  1846. office365/sharepoint/publishing/approval/request.py +7 -0
  1847. office365/sharepoint/publishing/campaign/campaign.py +9 -0
  1848. office365/sharepoint/publishing/channelannouncement.py +3 -3
  1849. office365/sharepoint/publishing/customproperties/base.py +19 -0
  1850. office365/sharepoint/publishing/customproperties/bigint.py +9 -0
  1851. office365/sharepoint/publishing/diagnostics/page_result.py +2 -2
  1852. office365/sharepoint/publishing/embed_data_v1.py +7 -0
  1853. office365/sharepoint/publishing/highlights_info.py +14 -0
  1854. office365/sharepoint/publishing/pagecopywithassets/response.py +79 -0
  1855. office365/sharepoint/publishing/pages/_3d/__init__.py +0 -0
  1856. office365/sharepoint/publishing/pages/campaign/publication.py +104 -16
  1857. office365/sharepoint/publishing/pages/canvas.py +81 -0
  1858. office365/sharepoint/publishing/pages/collection.py +39 -5
  1859. office365/sharepoint/publishing/pages/metadata.py +119 -0
  1860. office365/sharepoint/publishing/pages/move_response.py +64 -0
  1861. office365/sharepoint/publishing/pages/page.py +6 -0
  1862. office365/sharepoint/publishing/pages/reposts/metadata.py +30 -0
  1863. office365/sharepoint/publishing/person/magazineuserprofile.py +3 -3
  1864. office365/sharepoint/publishing/personmagazine/userprofiledata.py +1 -1
  1865. office365/sharepoint/publishing/point/site_status.py +25 -0
  1866. office365/sharepoint/publishing/point/user.py +7 -0
  1867. office365/sharepoint/publishing/profiledata.py +1 -1
  1868. office365/sharepoint/publishing/profilefullproperties.py +3 -3
  1869. office365/sharepoint/publishing/profilevieweditpolicies.py +24 -24
  1870. office365/sharepoint/publishing/publicationmetadata.py +2 -2
  1871. office365/sharepoint/publishing/ruleerrordetails.py +1 -1
  1872. office365/sharepoint/publishing/ruleresult.py +1 -1
  1873. office365/sharepoint/publishing/search.py +8 -0
  1874. office365/sharepoint/publishing/sitepagstreamdata.py +1 -1
  1875. office365/sharepoint/publishing/spotlightchannel.py +19 -1
  1876. office365/sharepoint/publishing/spotlightvideo.py +19 -1
  1877. office365/sharepoint/publishing/spstatusresponse.py +1 -1
  1878. office365/sharepoint/publishing/statusresponse.py +2 -4
  1879. office365/sharepoint/publishing/user_info.py +8 -0
  1880. office365/sharepoint/publishing/validations/prepublishvalidationserrorcodesforvivaengage.py +1 -1
  1881. office365/sharepoint/publishing/video/channel.py +7 -0
  1882. office365/sharepoint/publishing/video/item.py +11 -2
  1883. office365/sharepoint/publishing/video/service_manager.py +66 -2
  1884. office365/sharepoint/pushnotifications/subscriber.py +7 -0
  1885. office365/sharepoint/recyclebin/item.py +16 -0
  1886. office365/sharepoint/recyclebin/item_collection.py +1 -1
  1887. office365/sharepoint/request.py +67 -8
  1888. office365/sharepoint/request_context.py +41 -2
  1889. office365/sharepoint/role_definition_creation_information.py +14 -0
  1890. office365/sharepoint/search/relevant_results.py +7 -0
  1891. office365/sharepoint/search/result.py +6 -0
  1892. office365/sharepoint/search/searchresultitemcollection.py +86 -1
  1893. office365/sharepoint/search/semantic/enqueueproxy.py +68 -1
  1894. office365/sharepoint/search/semantic/itemcollection.py +35 -1
  1895. office365/sharepoint/search/service.py +7 -0
  1896. office365/sharepoint/search/simple_data_row.py +8 -0
  1897. office365/sharepoint/securestore/target_application.py +17 -0
  1898. office365/sharepoint/securestore/target_application_field.py +19 -0
  1899. office365/sharepoint/sharing/information.py +299 -1
  1900. office365/sharepoint/sharing/internal/sharing_restrictions.py +30 -0
  1901. office365/sharepoint/sharing/object_sharing_information.py +35 -0
  1902. office365/sharepoint/sharing/object_sharing_information_user.py +67 -0
  1903. office365/sharepoint/sharing/object_sharing_settings.py +143 -0
  1904. office365/sharepoint/sharing/permission_information.py +22 -0
  1905. office365/sharepoint/sharing/picker_settings.py +24 -0
  1906. office365/sharepoint/sharing/principal_info.py +25 -0
  1907. office365/sharepoint/sharing/shared_document_info.py +161 -0
  1908. office365/sharepoint/sharing/sharepoint_sharing_settings.py +85 -0
  1909. office365/sharepoint/sitedesigns/design_package_menu_contents.py +20 -0
  1910. office365/sharepoint/sitedesigns/principal.py +19 -0
  1911. office365/sharepoint/sitedesigns/run.py +43 -0
  1912. office365/sharepoint/sitedesigns/userfirstrun.py +53 -0
  1913. office365/sharepoint/sites/home/site.py +279 -0
  1914. office365/sharepoint/sites/language_collection.py +18 -0
  1915. office365/sharepoint/sites/migration/job_status.py +15 -0
  1916. office365/sharepoint/sites/site.py +8 -2
  1917. office365/sharepoint/sites/team_site_data.py +45 -0
  1918. office365/sharepoint/sites/version_policy_manager.py +35 -0
  1919. office365/sharepoint/smartcache/item.py +106 -0
  1920. office365/sharepoint/social/feed/manager.py +208 -1
  1921. office365/sharepoint/social/following/manager.py +82 -1
  1922. office365/sharepoint/social/following/rest_manager.py +186 -0
  1923. office365/sharepoint/social/rest_actor.py +25 -0
  1924. office365/sharepoint/social/rest_thread.py +39 -1
  1925. office365/sharepoint/sp_playlist_subscriber.py +12 -0
  1926. office365/sharepoint/taxonomy/create_xml_parameters.py +5 -5
  1927. office365/sharepoint/taxonomy/field.py +20 -19
  1928. office365/sharepoint/taxonomy/field_value_col.py +21 -0
  1929. office365/sharepoint/taxonomy/groups/collection.py +19 -2
  1930. office365/sharepoint/teams/channel_manager.py +272 -0
  1931. office365/sharepoint/tenant/administration/app_service_principal_public.py +46 -0
  1932. office365/sharepoint/tenant/administration/audit/data.py +4 -1
  1933. office365/sharepoint/tenant/administration/consumer_quota_info_api.py +7 -0
  1934. office365/sharepoint/tenant/administration/container/filterorder.py +1 -1
  1935. office365/sharepoint/tenant/administration/container/properties.py +1 -1
  1936. office365/sharepoint/tenant/administration/container/type/configurationproperties.py +1 -1
  1937. office365/sharepoint/tenant/administration/copilot/reportrow.py +1 -1
  1938. office365/sharepoint/tenant/administration/dataset_metadata_request_info.py +4 -1
  1939. office365/sharepoint/tenant/administration/dataset_metadata_response.py +9 -2
  1940. office365/sharepoint/tenant/administration/endpoints.py +5 -0
  1941. office365/sharepoint/tenant/administration/groups/group.py +130 -0
  1942. office365/sharepoint/tenant/administration/hubsites/hub_site.py +62 -0
  1943. office365/sharepoint/tenant/administration/hubsites/properties.py +53 -0
  1944. office365/sharepoint/tenant/administration/internal/aad/permission_grant.py +39 -0
  1945. office365/sharepoint/tenant/administration/internal/appservice/permission_request.py +7 -0
  1946. office365/sharepoint/tenant/administration/internal/appservice/principal.py +87 -2
  1947. office365/sharepoint/tenant/administration/licensed_onedrives_summary_metrics.py +16 -0
  1948. office365/sharepoint/tenant/administration/malware/file.py +35 -0
  1949. office365/sharepoint/tenant/administration/onedrives_count_and_size.py +15 -0
  1950. office365/sharepoint/tenant/administration/onedrives_summary_metrics.py +23 -0
  1951. office365/sharepoint/tenant/administration/onedrives_summary_metrics_by_unlicensed_reason.py +25 -0
  1952. office365/sharepoint/tenant/administration/owner_not_in_entra_onedrives_summary_metrics.py +22 -0
  1953. office365/sharepoint/tenant/administration/policies/content_security_configuration.py +67 -0
  1954. office365/sharepoint/tenant/administration/settings/service.py +240 -0
  1955. office365/sharepoint/tenant/administration/siteadministratorsfieldsdata.py +1 -1
  1956. office365/sharepoint/tenant/administration/sites/properties.py +21 -2
  1957. office365/sharepoint/tenant/administration/spcontenteventscustomemailproperty.py +1 -1
  1958. office365/sharepoint/tenant/administration/spdatagovernanceinsightresponse.py +6 -6
  1959. office365/sharepoint/tenant/administration/spofileversionfiletypepolicysettings.py +1 -1
  1960. office365/sharepoint/tenant/administration/spom365agentinsightsm365agentsonsitesdetails.py +4 -0
  1961. office365/sharepoint/tenant/administration/storage_usage_metrics_snapshot.py +8 -1
  1962. office365/sharepoint/tenant/administration/syntex/applicationproperties.py +19 -3
  1963. office365/sharepoint/tenant/administration/syntex/getmodifiedlistresponse.py +1 -1
  1964. office365/sharepoint/tenant/administration/tenant.py +5931 -34
  1965. office365/sharepoint/tenant/administration/theme_properties.py +24 -0
  1966. office365/sharepoint/tenant/administration/unlicensed_onedrives_summary_metrics.py +20 -0
  1967. office365/sharepoint/tenant/apps/instance.py +20 -0
  1968. office365/sharepoint/tenant/apps/user_experience_state.py +25 -0
  1969. office365/sharepoint/tenant/insights/reports/metadata.py +8 -0
  1970. office365/sharepoint/tenant/insights/reports/report.py +23 -0
  1971. office365/sharepoint/tenant/management/externalusers/results/remove.py +13 -0
  1972. office365/sharepoint/tenant/management/externalusers/results/session_revocation.py +9 -0
  1973. office365/sharepoint/tenant/management/office365_tenant.py +99 -8
  1974. office365/sharepoint/tenantadministration/sp_data_governance_insight_rest_api_client.py +475 -0
  1975. office365/sharepoint/tenantadministration/sp_data_governance_sar_rest_api_client.py +88 -0
  1976. office365/sharepoint/tenantadministration/spo_copilot_agent_insights_rest_api_client.py +170 -0
  1977. office365/sharepoint/tenantadministration/spo_file_archive_policy_info.py +4 -1
  1978. office365/sharepoint/tenantadministration/spo_restricted_content_discoverability_client.py +90 -0
  1979. office365/sharepoint/tenantadministration/spom365_agent_insights_rest_api_client.py +166 -0
  1980. office365/sharepoint/tenantadministration/spom365_agent_insights_top20_agents_details.py +11 -0
  1981. office365/sharepoint/tenantmanagement/group_creation_params.py +32 -0
  1982. office365/sharepoint/token.py +7 -0
  1983. office365/sharepoint/user_ai_tokens.py +56 -0
  1984. office365/sharepoint/user_photos.py +32 -0
  1985. office365/sharepoint/usercustomactions/action.py +109 -1
  1986. office365/sharepoint/userprofiles/followed_content.py +164 -0
  1987. office365/sharepoint/userprofiles/my_site_links.py +22 -0
  1988. office365/sharepoint/userprofiles/people_manager.py +68 -0
  1989. office365/sharepoint/userprofiles/peoplecollection.py +40 -1
  1990. office365/sharepoint/userprofiles/person_properties.py +22 -0
  1991. office365/sharepoint/userprofiles/personal_cache.py +246 -1
  1992. office365/sharepoint/userprofiles/personallistsproxy.py +33 -1
  1993. office365/sharepoint/userprofiles/profile_loader.py +16 -0
  1994. office365/sharepoint/userprofiles/user_profile.py +42 -0
  1995. office365/sharepoint/utilities/file_handler_wopi_properties.py +24 -0
  1996. office365/sharepoint/utilities/move_copy_util.py +44 -3
  1997. office365/sharepoint/utilities/upload_status.py +8 -0
  1998. office365/sharepoint/views/collection.py +135 -14
  1999. office365/sharepoint/views/field_collection.py +3 -0
  2000. office365/sharepoint/views/view.py +113 -0
  2001. office365/sharepoint/viva/app_configuration.py +34 -1
  2002. office365/sharepoint/viva/employee_engagement.py +149 -1
  2003. office365/sharepoint/viva/employee_experience_controller.py +97 -1
  2004. office365/sharepoint/viva/knowledgehub.py +37 -1
  2005. office365/sharepoint/viva/resource_get_endpoint.py +15 -0
  2006. office365/sharepoint/viva/visualizationappsynchronizationresult.py +18 -1
  2007. office365/sharepoint/webhooks/subscription.py +2 -1
  2008. office365/sharepoint/webhooks/subscription_information.py +2 -1
  2009. office365/sharepoint/webparts/client/webpart.py +15 -0
  2010. office365/sharepoint/webparts/webpart.py +12 -0
  2011. office365/sharepoint/webs/apptile.py +12 -0
  2012. office365/sharepoint/webs/dataleakage_prevention_status_info.py +24 -0
  2013. office365/sharepoint/webs/information.py +7 -0
  2014. office365/sharepoint/webs/modernize_homepage_result.py +7 -0
  2015. office365/sharepoint/webs/multilingual_settings.py +19 -1
  2016. office365/sharepoint/webs/regional_settings.py +27 -0
  2017. office365/sharepoint/webs/remote_web.py +19 -0
  2018. office365/sharepoint/webs/templates/template.py +7 -0
  2019. office365/sharepoint/webs/theme_info.py +14 -0
  2020. office365/sharepoint/webs/time_zone.py +15 -0
  2021. office365/sharepoint/webs/web.py +1167 -0
  2022. office365/sharepoint/workflow/associations/association.py +5 -0
  2023. office365/sharepoint/workflow/instances/instance.py +41 -0
  2024. office365/sharepoint/workflow/sp_workflow_task.py +618 -0
  2025. office365/sharepoint/workflow/template.py +8 -0
  2026. office365/subscriptions/change_notification.py +17 -0
  2027. office365/subscriptions/change_notification_collection.py +4 -0
  2028. office365/subscriptions/changetype.py +4 -0
  2029. office365/subscriptions/collection.py +10 -6
  2030. office365/subscriptions/subscription.py +57 -1
  2031. office365/teams/admin_root.py +35 -0
  2032. office365/teams/administration/number_assignment.py +74 -1
  2033. office365/teams/administration/telephone_number_long_running_operation.py +26 -3
  2034. office365/teams/administration/telephone_number_management_root.py +20 -1
  2035. office365/teams/administration/user_configuration.py +17 -3
  2036. office365/teams/app_settings.py +21 -0
  2037. office365/teams/apps/app.py +11 -0
  2038. office365/teams/apps/definition.py +38 -0
  2039. office365/teams/apps/installation.py +18 -0
  2040. office365/teams/assignment_type.py +13 -0
  2041. office365/teams/channels/channel.py +59 -0
  2042. office365/teams/channels/collection.py +62 -2
  2043. office365/teams/channels/layout_type.py +13 -0
  2044. office365/teams/channels/shared_team_info.py +6 -0
  2045. office365/teams/chats/chat.py +40 -1
  2046. office365/teams/chats/collection.py +11 -3
  2047. office365/teams/chats/deleted.py +6 -0
  2048. office365/teams/chats/messages/info.py +42 -0
  2049. office365/teams/chats/messages/message.py +39 -1
  2050. office365/teams/chats/pinned_chat_message_info.py +22 -0
  2051. office365/teams/chats/targeted_chat_message.py +21 -0
  2052. office365/teams/collection.py +76 -11
  2053. office365/teams/community_privacy.py +13 -0
  2054. office365/teams/info.py +11 -0
  2055. office365/teams/members/aad_user_conversation.py +16 -0
  2056. office365/teams/members/conversation.py +17 -0
  2057. office365/teams/members/conversation_collection.py +19 -7
  2058. office365/teams/migration_mode.py +13 -0
  2059. office365/teams/operations/async_operation.py +102 -1
  2060. office365/teams/operations/asyncoperationtype.py +10 -15
  2061. office365/teams/policy_assignment.py +23 -0
  2062. office365/teams/schedule/change_request.py +47 -1
  2063. office365/teams/schedule/day_note.py +34 -0
  2064. office365/teams/schedule/groups/group.py +16 -0
  2065. office365/teams/schedule/open_shift.py +38 -0
  2066. office365/teams/schedule/schedule.py +165 -0
  2067. office365/teams/schedule/shifts/open/change_request.py +13 -0
  2068. office365/teams/schedule/shifts/shift.py +23 -0
  2069. office365/teams/schedule/swap_shifts_change_request.py +16 -0
  2070. office365/teams/schedule/time_card.py +74 -0
  2071. office365/teams/schedule/time_off.py +38 -0
  2072. office365/teams/schedule/time_off_reason.py +35 -0
  2073. office365/teams/schedule/time_off_request.py +27 -0
  2074. office365/teams/tabs/tab.py +18 -0
  2075. office365/teams/team.py +2 -2
  2076. office365/teams/teamwork/shiftmanagement/user_solution_root.py +22 -0
  2077. office365/teams/teamwork/shiftmanagement/working_time_schedule.py +9 -0
  2078. office365/teams/teamwork/tags/member.py +16 -0
  2079. office365/teams/telephone_number_long_running_operation_details.py +19 -0
  2080. office365/teams/viva/community.py +42 -1
  2081. office365/teams/viva/employee_experience.py +34 -0
  2082. office365/teams/viva/employee_experience_user.py +19 -0
  2083. office365/teams/viva/engagement/conversation.py +33 -1
  2084. office365/teams/viva/engagement/conversation_message.py +112 -0
  2085. office365/teams/viva/engagement/conversation_message_reaction.py +41 -0
  2086. office365/teams/viva/learning/content.py +111 -0
  2087. office365/teams/viva/learning/courses/activity.py +49 -0
  2088. office365/teams/viva/learning/courses/self_initiated.py +14 -0
  2089. office365/teams/viva/learning/provider.py +60 -0
  2090. office365/teams/work.py +43 -1
  2091. office365/teams/workforce_integration.py +69 -0
  2092. office365/teams/workforce_integration_encryption.py +18 -0
  2093. office365/todo/attachments/base.py +11 -0
  2094. office365/todo/attachments/session.py +4 -0
  2095. office365/todo/attachments/task_file.py +2 -5
  2096. office365/todo/attachments/type.py +7 -10
  2097. office365/todo/linked_resource.py +6 -0
  2098. office365/todo/tasks/collection.py +45 -0
  2099. office365/todo/tasks/lists/collection.py +1 -0
  2100. office365/todo/tasks/task.py +1 -1
  2101. office365_rest_python_client-3.3.0.dist-info/METADATA +635 -0
  2102. office365_rest_python_client-3.3.0.dist-info/RECORD +6789 -0
  2103. office365/directory/identitygovernance/workflow.py +0 -106
  2104. office365/directory/identitygovernance/workflow_setting.py +0 -15
  2105. office365/directory/identitygovernance/workflow_version.py +0 -16
  2106. office365/directory/security/account.py +0 -14
  2107. office365/directory/security/ai_agent_evidence.py +0 -16
  2108. office365/directory/security/alerts/alert.py +0 -205
  2109. office365/directory/security/alerts/blob_container_evidence.py +0 -17
  2110. office365/directory/security/alerts/blob_evidence.py +0 -21
  2111. office365/directory/security/alerts/collection.py +0 -49
  2112. office365/directory/security/alerts/evidence.py +0 -28
  2113. office365/directory/security/alerts/file_security_state.py +0 -5
  2114. office365/directory/security/alerts/history_state.py +0 -16
  2115. office365/directory/security/alerts/malware_evidence.py +0 -22
  2116. office365/directory/security/alerts/process_evidence.py +0 -27
  2117. office365/directory/security/alerts/sas_token_evidence.py +0 -26
  2118. office365/directory/security/analyzed_message_evidence.py +0 -34
  2119. office365/directory/security/article.py +0 -56
  2120. office365/directory/security/attacksimulations/automation.py +0 -30
  2121. office365/directory/security/attacksimulations/automation_run.py +0 -12
  2122. office365/directory/security/attacksimulations/event.py +0 -5
  2123. office365/directory/security/attacksimulations/landing_page.py +0 -5
  2124. office365/directory/security/attacksimulations/operations/operation.py +0 -5
  2125. office365/directory/security/attacksimulations/repeat_offender.py +0 -17
  2126. office365/directory/security/attacksimulations/reports/overview.py +0 -5
  2127. office365/directory/security/attacksimulations/reports/report.py +0 -25
  2128. office365/directory/security/attacksimulations/root.py +0 -67
  2129. office365/directory/security/attacksimulations/simulation.py +0 -23
  2130. office365/directory/security/attacksimulations/user.py +0 -16
  2131. office365/directory/security/attacksimulations/user_coverage.py +0 -10
  2132. office365/directory/security/attacksimulations/users/details.py +0 -20
  2133. office365/directory/security/attribute_definition.py +0 -37
  2134. office365/directory/security/attribute_mapping.py +0 -23
  2135. office365/directory/security/attribute_mapping_source.py +0 -24
  2136. office365/directory/security/audit/audit_data.py +0 -15
  2137. office365/directory/security/audit/whois_record.py +0 -22
  2138. office365/directory/security/cases/case.py +0 -48
  2139. office365/directory/security/cases/ediscovery.py +0 -99
  2140. office365/directory/security/cases/operation.py +0 -10
  2141. office365/directory/security/cases/root.py +0 -21
  2142. office365/directory/security/category_template.py +0 -9
  2143. office365/directory/security/cloud_application_evidence.py +0 -20
  2144. office365/directory/security/cloud_logon_session_evidence.py +0 -24
  2145. office365/directory/security/collaboration/analyzed_email.py +0 -133
  2146. office365/directory/security/collaboration/analyzed_email_attachment.py +0 -22
  2147. office365/directory/security/collaboration/analyzed_email_delivery_detail.py +0 -15
  2148. office365/directory/security/collaboration/analyzed_email_url.py +0 -18
  2149. office365/directory/security/collaboration/collaboration_root.py +0 -22
  2150. office365/directory/security/compromise_indicator.py +0 -14
  2151. office365/directory/security/container_evidence.py +0 -23
  2152. office365/directory/security/container_image_evidence.py +0 -17
  2153. office365/directory/security/cvss_summary.py +0 -15
  2154. office365/directory/security/data_source_container.py +0 -44
  2155. office365/directory/security/datasecurity/classifcation_error_base.py +0 -18
  2156. office365/directory/security/datasecurity/classification_error.py +0 -12
  2157. office365/directory/security/datasecurity/compute_rights_and_inheritance_result.py +0 -17
  2158. office365/directory/security/datasecurity/governance.py +0 -17
  2159. office365/directory/security/datasecurity/policy_scope_base.py +0 -26
  2160. office365/directory/security/datasecurity/policy_tenant_scope.py +0 -15
  2161. office365/directory/security/datasecurity/policy_tip_action.py +0 -16
  2162. office365/directory/security/datasecurity/process_content_batch_request.py +0 -17
  2163. office365/directory/security/datasecurity/process_content_request.py +0 -24
  2164. office365/directory/security/datasecurity/process_content_response.py +0 -24
  2165. office365/directory/security/datasecurity/process_content_responses.py +0 -16
  2166. office365/directory/security/datasecurity/process_file_metadata.py +0 -16
  2167. office365/directory/security/datasecurity/sensitivity_label.py +0 -31
  2168. office365/directory/security/detonation_details.py +0 -34
  2169. office365/directory/security/device_evidence.py +0 -47
  2170. office365/directory/security/dns_evidence.py +0 -19
  2171. office365/directory/security/ediscovery/case_member.py +0 -21
  2172. office365/directory/security/ediscovery/custodian.py +0 -22
  2173. office365/directory/security/ediscovery/ediscovery_case_settings.py +0 -21
  2174. office365/directory/security/ediscovery/ediscovery_estimate_operation.py +0 -54
  2175. office365/directory/security/ediscovery/ediscovery_export_operation.py +0 -50
  2176. office365/directory/security/ediscovery/ediscovery_index_operation.py +0 -7
  2177. office365/directory/security/ediscovery/ediscovery_review_tag.py +0 -34
  2178. office365/directory/security/ediscovery/noncustodial_data_source.py +0 -18
  2179. office365/directory/security/ediscovery/operations/add_to_review_set.py +0 -52
  2180. office365/directory/security/ediscovery/operations/hold.py +0 -7
  2181. office365/directory/security/ediscovery/operations/hold_policy_sync.py +0 -9
  2182. office365/directory/security/ediscovery/operations/purge_data.py +0 -9
  2183. office365/directory/security/ediscovery/operations/search_export.py +0 -62
  2184. office365/directory/security/ediscovery/operations/tag.py +0 -7
  2185. office365/directory/security/ediscovery/review_set.py +0 -22
  2186. office365/directory/security/ediscovery/review_set_query.py +0 -7
  2187. office365/directory/security/ediscovery/search.py +0 -56
  2188. office365/directory/security/event_propagation_result.py +0 -18
  2189. office365/directory/security/event_query.py +0 -14
  2190. office365/directory/security/expression_input_object.py +0 -20
  2191. office365/directory/security/file_evidence.py +0 -18
  2192. office365/directory/security/file_hash.py +0 -16
  2193. office365/directory/security/file_hash_evidence.py +0 -16
  2194. office365/directory/security/file_plan_applied_category.py +0 -15
  2195. office365/directory/security/filter.py +0 -22
  2196. office365/directory/security/filter_clause.py +0 -17
  2197. office365/directory/security/filter_group.py +0 -17
  2198. office365/directory/security/formatted_content.py +0 -16
  2199. office365/directory/security/google_cloud_resource_evidence.py +0 -21
  2200. office365/directory/security/health_issue.py +0 -81
  2201. office365/directory/security/hunting_query_results.py +0 -24
  2202. office365/directory/security/identity_accounts.py +0 -36
  2203. office365/directory/security/incidents/incident.py +0 -59
  2204. office365/directory/security/indicator.py +0 -16
  2205. office365/directory/security/invoke_action_result.py +0 -15
  2206. office365/directory/security/io_t_device_evidence.py +0 -46
  2207. office365/directory/security/ip_address.py +0 -26
  2208. office365/directory/security/ip_evidence.py +0 -19
  2209. office365/directory/security/kubernetes_cluster_evidence.py +0 -20
  2210. office365/directory/security/kubernetes_controller_evidence.py +0 -19
  2211. office365/directory/security/kubernetes_namespace_evidence.py +0 -18
  2212. office365/directory/security/kubernetes_pod_evidence.py +0 -35
  2213. office365/directory/security/kubernetes_secret_evidence.py +0 -17
  2214. office365/directory/security/kubernetes_service_account_evidence.py +0 -16
  2215. office365/directory/security/kubernetes_service_evidence.py +0 -29
  2216. office365/directory/security/kubernetes_service_port.py +0 -20
  2217. office365/directory/security/labels/retention/collection.py +0 -68
  2218. office365/directory/security/labels/retention/duration_in_days.py +0 -16
  2219. office365/directory/security/labels/retention/fileplan_descriptor.py +0 -52
  2220. office365/directory/security/labels/retention/label.py +0 -158
  2221. office365/directory/security/labels/root.py +0 -83
  2222. office365/directory/security/mailbox_configuration_evidence.py +0 -19
  2223. office365/directory/security/mailbox_evidence.py +0 -18
  2224. office365/directory/security/network_connection_evidence.py +0 -18
  2225. office365/directory/security/nic_evidence.py +0 -18
  2226. office365/directory/security/object_definition.py +0 -25
  2227. office365/directory/security/object_mapping.py +0 -26
  2228. office365/directory/security/parse_expression_response.py +0 -19
  2229. office365/directory/security/passive_dns_record.py +0 -47
  2230. office365/directory/security/processing_error.py +0 -15
  2231. office365/directory/security/retention_event.py +0 -63
  2232. office365/directory/security/retention_event_status.py +0 -15
  2233. office365/directory/security/scorecontrol/profile.py +0 -23
  2234. office365/directory/security/search/data_source.py +0 -34
  2235. office365/directory/security/security.py +0 -157
  2236. office365/directory/security/sensor.py +0 -72
  2237. office365/directory/security/sensor_candidate_activation_configuration.py +0 -9
  2238. office365/directory/security/sensor_settings.py +0 -20
  2239. office365/directory/security/service_principal_evidence.py +0 -18
  2240. office365/directory/security/settings_container.py +0 -19
  2241. office365/directory/security/ssl_certificate.py +0 -59
  2242. office365/directory/security/string_key_attribute_mapping_source_value_pair.py +0 -16
  2243. office365/directory/security/subdomain.py +0 -26
  2244. office365/directory/security/subjectrightsrequests/identity.py +0 -21
  2245. office365/directory/security/subjectrightsrequests/request.py +0 -6
  2246. office365/directory/security/teams_message_evidence.py +0 -42
  2247. office365/directory/security/threatintelligence/host.py +0 -138
  2248. office365/directory/security/threatintelligence/host_component.py +0 -46
  2249. office365/directory/security/threatintelligence/host_cookie.py +0 -41
  2250. office365/directory/security/threatintelligence/host_logon_session_evidence.py +0 -21
  2251. office365/directory/security/threatintelligence/host_pair.py +0 -41
  2252. office365/directory/security/threatintelligence/host_port.py +0 -57
  2253. office365/directory/security/threatintelligence/host_port_component.py +0 -19
  2254. office365/directory/security/threatintelligence/host_reputation.py +0 -16
  2255. office365/directory/security/threatintelligence/host_reputation_rule.py +0 -16
  2256. office365/directory/security/threatintelligence/host_ssl_certificate.py +0 -43
  2257. office365/directory/security/threatintelligence/host_tracker.py +0 -41
  2258. office365/directory/security/threatintelligence/profile.py +0 -56
  2259. office365/directory/security/threatintelligence/threat_intelligence.py +0 -193
  2260. office365/directory/security/timeline_event.py +0 -19
  2261. office365/directory/security/triggers/root.py +0 -9
  2262. office365/directory/security/triggertypes/collection.py +0 -9
  2263. office365/directory/security/triggertypes/root.py +0 -24
  2264. office365/directory/security/unified_group_source.py +0 -22
  2265. office365/directory/security/user_account.py +0 -27
  2266. office365/directory/security/user_evidence.py +0 -17
  2267. office365/directory/security/user_source.py +0 -27
  2268. office365/directory/security/vm_metadata.py +0 -16
  2269. office365/directory/security/vulnerability.py +0 -74
  2270. office365/directory/security/whois_base_record.py +0 -59
  2271. office365/externalconnectors/binary_operator.py +0 -12
  2272. office365/externalconnectors/connection_operation_status.py +0 -15
  2273. office365/externalconnectors/connection_state.py +0 -15
  2274. office365/externalconnectors/external_activity_type.py +0 -15
  2275. office365/externalconnectors/external_item_content_type.py +0 -13
  2276. office365/intune/brand.py +0 -21
  2277. office365/intune/instance_resource_access.py +0 -19
  2278. office365/intune/provisioned_plan.py +0 -27
  2279. office365/onenote/operations/operation.py +0 -35
  2280. office365/partners/billing/billing_period.py +0 -13
  2281. office365/partners/billing/billing_reconciliation.py +0 -26
  2282. office365/sharepoint/contentcenter/machinelearning/publications/result.py +0 -9
  2283. office365/sharepoint/customactions/action.py +0 -36
  2284. office365_rest_python_client-3.2.0.dist-info/METADATA +0 -605
  2285. office365_rest_python_client-3.2.0.dist-info/RECORD +0 -5743
  2286. /office365/{directory/security → common}/__init__.py +0 -0
  2287. /office365/{intune → directory/applications}/resource_permission.py +0 -0
  2288. /office365/directory/identitygovernance/{workflow_subject.py → workflow/subject.py} +0 -0
  2289. /office365/{directory/security/alerts → intune/devices/configurations/macos}/__init__.py +0 -0
  2290. /office365/{directory/security/attacksimulations → intune/devices/configurations/windows/_10}/__init__.py +0 -0
  2291. /office365/intune/devices/configurations/windows/{10 → _10}/editiontype.py +0 -0
  2292. /office365/intune/{enrollment_state.py → devices/management/enrollment_state.py} +0 -0
  2293. /office365/{directory/security/attacksimulations/operations → intune/devices/management/mobileapps/macos}/__init__.py +0 -0
  2294. /office365/intune/{package_status.py → devices/management/package_status.py} +0 -0
  2295. /office365/intune/{process_integrity_level.py → devices/management/process_integrity_level.py} +0 -0
  2296. /office365/{directory/security/attacksimulations/reports → planner/internal}/__init__.py +0 -0
  2297. /office365/{directory/security/attacksimulations/users → planner/internal/paths}/__init__.py +0 -0
  2298. /office365/runtime/{decorators.py → deprecated.py} +0 -0
  2299. /office365/{directory/security/audit → security}/__init__.py +0 -0
  2300. /office365/{directory/security → security}/a365_ai_inference_call.py +0 -0
  2301. /office365/{directory/security → security}/a365_ai_invoke_agent.py +0 -0
  2302. /office365/{directory/security → security}/a365_ai_run_summary.py +0 -0
  2303. /office365/{directory/security → security}/a365_span_outputs.py +0 -0
  2304. /office365/{directory/security → security}/action.py +0 -0
  2305. /office365/{directory/security → security}/aed_audit_record.py +0 -0
  2306. /office365/{directory/security → security}/agent_admin_activity_record.py +0 -0
  2307. /office365/{directory/security → security}/agent_setting_admin_activity.py +0 -0
  2308. /office365/{directory/security → security}/ai_agent_platform.py +0 -0
  2309. /office365/{directory/security → security}/aip_discover.py +0 -0
  2310. /office365/{directory/security → security}/aip_file_deleted.py +0 -0
  2311. /office365/{directory/security → security}/aip_heart_beat.py +0 -0
  2312. /office365/{directory/security → security}/aip_protection_action_log_request.py +0 -0
  2313. /office365/{directory/security → security}/aip_scanner_discover_event.py +0 -0
  2314. /office365/{directory/security → security}/aip_sensitivity_label_action_log_request.py +0 -0
  2315. /office365/{directory/security → security}/air_admin_action_investigation_data.py +0 -0
  2316. /office365/{directory/security → security}/air_investigation_data.py +0 -0
  2317. /office365/{directory/security/cases → security/alerts}/__init__.py +0 -0
  2318. /office365/{directory/security → security}/alerts/active_directory_domain_evidence.py +0 -0
  2319. /office365/{directory/security → security}/alerts/antispamteamsdirection.py +0 -0
  2320. /office365/{directory/security → security}/alerts/azure_resource_evidence.py +0 -0
  2321. /office365/{directory/security → security}/alerts/classification.py +0 -0
  2322. /office365/{directory/security → security}/alerts/comment.py +0 -0
  2323. /office365/{directory/security → security}/alerts/connection_direction.py +0 -0
  2324. /office365/{directory/security → security}/alerts/connectionstatus.py +0 -0
  2325. /office365/{directory/security → security}/alerts/defenderavstatus.py +0 -0
  2326. /office365/{directory/security → security}/alerts/detectionsource.py +0 -0
  2327. /office365/{directory/security → security}/alerts/detectionstatus.py +0 -0
  2328. /office365/{directory/security → security}/alerts/determination.py +0 -0
  2329. /office365/{directory/security → security}/alerts/emailrole.py +0 -0
  2330. /office365/{directory/security → security}/alerts/evidenceremediationstatus.py +0 -0
  2331. /office365/{directory/security → security}/alerts/evidencerole.py +0 -0
  2332. /office365/{directory/security → security}/alerts/evidenceverdict.py +0 -0
  2333. /office365/{directory/security → security}/alerts/feedback.py +0 -0
  2334. /office365/{directory/security → security}/alerts/googlecloudlocationtype.py +0 -0
  2335. /office365/{directory/security → security}/alerts/iotdeviceimportancetype.py +0 -0
  2336. /office365/{directory/security → security}/alerts/kubernetesplatform.py +0 -0
  2337. /office365/{directory/security → security}/alerts/kubernetesservicetype.py +0 -0
  2338. /office365/{directory/security → security}/alerts/logontype.py +0 -0
  2339. /office365/{directory/security → security}/alerts/registryhive.py +0 -0
  2340. /office365/{directory/security → security}/alerts/registryoperation.py +0 -0
  2341. /office365/{directory/security → security}/alerts/registryvaluetype.py +0 -0
  2342. /office365/{directory/security → security}/alerts/securitynetworkprotocol.py +0 -0
  2343. /office365/{directory/security → security}/alerts/securityresourcetype.py +0 -0
  2344. /office365/{directory/security → security}/alerts/severity.py +0 -0
  2345. /office365/{directory/security → security}/alerts/status.py +0 -0
  2346. /office365/{directory/security → security}/alerts/useraccountsecuritytype.py +0 -0
  2347. /office365/{directory/security → security}/amazon_resource_evidence.py +0 -0
  2348. /office365/{directory/security → security}/antispam_directionality.py +0 -0
  2349. /office365/{directory/security → security}/artifact.py +0 -0
  2350. /office365/{directory/security/collaboration → security/attacksimulations}/__init__.py +0 -0
  2351. /office365/{directory/security → security}/attacksimulations/account_target_content_type.py +0 -0
  2352. /office365/{directory/security → security}/attacksimulations/clicksource.py +0 -0
  2353. /office365/{directory/security → security}/attacksimulations/endusernotificationpreference.py +0 -0
  2354. /office365/{directory/security → security}/attacksimulations/endusernotificationsettingtype.py +0 -0
  2355. /office365/{directory/security → security}/attacksimulations/endusernotificationtype.py +0 -0
  2356. /office365/{directory/security → security}/attacksimulations/notificationdeliveryfrequency.py +0 -0
  2357. /office365/{directory/security → security}/attacksimulations/notificationdeliverypreference.py +0 -0
  2358. /office365/{directory/security → security}/attacksimulations/oauthappscope.py +0 -0
  2359. /office365/{directory/security/datasecurity → security/attacksimulations/operations}/__init__.py +0 -0
  2360. /office365/{directory/security → security}/attacksimulations/operations/type.py +0 -0
  2361. /office365/{directory/security → security}/attacksimulations/payloadbrand.py +0 -0
  2362. /office365/{directory/security → security}/attacksimulations/payloadcomplexity.py +0 -0
  2363. /office365/{directory/security → security}/attacksimulations/payloaddeliveryplatform.py +0 -0
  2364. /office365/{directory/security → security}/attacksimulations/payloadindustry.py +0 -0
  2365. /office365/{directory/security → security}/attacksimulations/payloadtheme.py +0 -0
  2366. /office365/{directory/security/ediscovery → security/attacksimulations/reports}/__init__.py +0 -0
  2367. /office365/{directory/security → security}/attacksimulations/simulationattacktechnique.py +0 -0
  2368. /office365/{directory/security → security}/attacksimulations/simulationattacktype.py +0 -0
  2369. /office365/{directory/security → security}/attacksimulations/simulationautomationrunstatus.py +0 -0
  2370. /office365/{directory/security → security}/attacksimulations/simulationautomationstatus.py +0 -0
  2371. /office365/{directory/security → security}/attacksimulations/simulationcontentsource.py +0 -0
  2372. /office365/{directory/security → security}/attacksimulations/simulationcontentstatus.py +0 -0
  2373. /office365/{directory/security → security}/attacksimulations/simulationstatus.py +0 -0
  2374. /office365/{directory/security → security}/attacksimulations/targettedusertype.py +0 -0
  2375. /office365/{directory/security → security}/attacksimulations/trainingassignedto.py +0 -0
  2376. /office365/{directory/security → security}/attacksimulations/trainingavailabilitystatus.py +0 -0
  2377. /office365/{directory/security → security}/attacksimulations/trainingcompletionduration.py +0 -0
  2378. /office365/{directory/security → security}/attacksimulations/trainingsettingtype.py +0 -0
  2379. /office365/{directory/security → security}/attacksimulations/trainingstatus.py +0 -0
  2380. /office365/{directory/security → security}/attacksimulations/trainingtype.py +0 -0
  2381. /office365/{directory/security/ediscovery/operations → security/attacksimulations/users}/__init__.py +0 -0
  2382. /office365/{directory/security → security}/attribute_definition_metadata_entry.py +0 -0
  2383. /office365/{directory/security → security}/attribute_mapping_parameter_schema.py +0 -0
  2384. /office365/{directory/security/healthissues → security/audit}/__init__.py +0 -0
  2385. /office365/{directory/security → security}/audit/a365_ai_execute_tool.py +0 -0
  2386. /office365/{directory/security → security}/audit/aad_risk_detection_audit_record.py +0 -0
  2387. /office365/{directory/security → security}/audit/ai_app_interaction_audit_record.py +0 -0
  2388. /office365/{directory/security → security}/audit/ai_execute_tool_audit_record.py +0 -0
  2389. /office365/{directory/security → security}/audit/ai_interactions_change_notification_audit_record.py +0 -0
  2390. /office365/{directory/security → security}/audit/ai_interactions_export_audit_record.py +0 -0
  2391. /office365/{directory/security → security}/audit/ai_interactions_subscription_audit_record.py +0 -0
  2392. /office365/{directory/security → security}/audit/ai_invoke_agent_audit_record.py +0 -0
  2393. /office365/{directory/security → security}/audit/ai_span_outputs_audit_record.py +0 -0
  2394. /office365/{directory/security → security}/audit/air_manual_investigation_data.py +0 -0
  2395. /office365/{directory/security → security}/audit/alert_submission_audit_record.py +0 -0
  2396. /office365/{directory/security → security}/audit/alert_submission_result_detail_audit_record.py +0 -0
  2397. /office365/{directory/security → security}/audit/attack_sim_admin_audit_record.py +0 -0
  2398. /office365/{directory/security → security}/audit/attack_sim_audit_record.py +0 -0
  2399. /office365/{directory/security → security}/audit/audit_config_audit_record.py +0 -0
  2400. /office365/{directory/security → security}/audit/audit_log_query_status.py +0 -0
  2401. /office365/{directory/security → security}/audit/audit_record_type_dictionary.py +0 -0
  2402. /office365/{directory/security → security}/audit/audit_search_audit_record.py +0 -0
  2403. /office365/{directory/security → security}/audit/azfw_application_rule_aggregation_event_record.py +0 -0
  2404. /office365/{directory/security → security}/audit/azfw_dns_query_event_record.py +0 -0
  2405. /office365/{directory/security → security}/audit/azfw_network_rule_event_record.py +0 -0
  2406. /office365/{directory/security → security}/audit/azure_active_directory_account_logon_audit_record.py +0 -0
  2407. /office365/{directory/security → security}/audit/azure_active_directory_audit_record.py +0 -0
  2408. /office365/{directory/security → security}/audit/azure_active_directory_sts_logon_audit_record.py +0 -0
  2409. /office365/{directory/security → security}/audit/azure_ai_search_audit_record.py +0 -0
  2410. /office365/{directory/security → security}/audit/campaign_audit_record.py +0 -0
  2411. /office365/{directory/security → security}/audit/ccrai_policy_violation_record.py +0 -0
  2412. /office365/{directory/security → security}/audit/cdp_classifier_health_record.py +0 -0
  2413. /office365/{directory/security → security}/audit/cdp_cold_crawl_status_record.py +0 -0
  2414. /office365/{directory/security → security}/audit/cdp_consumption_resource_record.py +0 -0
  2415. /office365/{directory/security → security}/audit/cdp_content_explorer_aggregate_record.py +0 -0
  2416. /office365/{directory/security → security}/audit/cdp_dlp_sensitive_endpoint_audit_record.py +0 -0
  2417. /office365/{directory/security → security}/audit/cdp_log_record.py +0 -0
  2418. /office365/{directory/security → security}/audit/cdp_ocr_billing_record.py +0 -0
  2419. /office365/{directory/security → security}/audit/cdp_resource_scope_change_event_record.py +0 -0
  2420. /office365/{directory/security → security}/audit/cdpdlmai_interaction_insights_record.py +0 -0
  2421. /office365/{directory/security → security}/audit/cloud_update_device_config_audit_record.py +0 -0
  2422. /office365/{directory/security → security}/audit/cloud_update_profile_config_audit_record.py +0 -0
  2423. /office365/{directory/security → security}/audit/cloud_update_tenant_config_audit_record.py +0 -0
  2424. /office365/{directory/security → security}/audit/compliance_connector_audit_record.py +0 -0
  2425. /office365/{directory/security → security}/audit/compliance_dlm_exchange_audit_record.py +0 -0
  2426. /office365/{directory/security → security}/audit/compliance_dlm_share_point_audit_record.py +0 -0
  2427. /office365/{directory/security → security}/audit/compliance_dlp_applications_audit_record.py +0 -0
  2428. /office365/{directory/security → security}/audit/compliance_dlp_applications_classification_audit_record.py +0 -0
  2429. /office365/{directory/security → security}/audit/compliance_dlp_endpoint_audit_record.py +0 -0
  2430. /office365/{directory/security → security}/audit/compliance_dlp_endpoint_discovery_audit_record.py +0 -0
  2431. /office365/{directory/security → security}/audit/compliance_dlp_enforcement_audit_record.py +0 -0
  2432. /office365/{directory/security → security}/audit/compliance_dlp_exchange_audit_record.py +0 -0
  2433. /office365/{directory/security → security}/audit/compliance_dlp_exchange_classification_audit_record.py +0 -0
  2434. /office365/{directory/security → security}/audit/compliance_dlp_exchange_classification_cdp_record.py +0 -0
  2435. /office365/{directory/security → security}/audit/compliance_dlp_exchange_discovery_audit_record.py +0 -0
  2436. /office365/{directory/security → security}/audit/compliance_dlp_share_point_audit_record.py +0 -0
  2437. /office365/{directory/security → security}/audit/compliance_dlp_share_point_classification_audit_record.py +0 -0
  2438. /office365/{directory/security → security}/audit/compliance_dlp_share_point_classification_cdp_record.py +0 -0
  2439. /office365/{directory/security → security}/audit/compliance_dlp_share_point_classification_extended_audit_record.py +0 -0
  2440. /office365/{directory/security → security}/audit/compliance_exchange_ocr_audit_record.py +0 -0
  2441. /office365/{directory/security → security}/audit/compliance_manager_action_record.py +0 -0
  2442. /office365/{directory/security → security}/audit/compliance_policy_grading_share_point_audit_record.py +0 -0
  2443. /office365/{directory/security → security}/audit/compliance_settings_change_audit_record.py +0 -0
  2444. /office365/{directory/security → security}/audit/compliance_sit_grading_share_point_audit_record.py +0 -0
  2445. /office365/{directory/security → security}/audit/compliance_supervision_exchange_audit_record.py +0 -0
  2446. /office365/{directory/security → security}/audit/connected_ai_app_interaction_audit_record.py +0 -0
  2447. /office365/{directory/security → security}/audit/consumption_resource_audit_record.py +0 -0
  2448. /office365/{directory/security → security}/audit/content_store_metadata_record.py +0 -0
  2449. /office365/{directory/security → security}/audit/copilot_agent_management_audit_record.py +0 -0
  2450. /office365/{directory/security → security}/audit/copilot_for_security_logging_audit_record.py +0 -0
  2451. /office365/{directory/security → security}/audit/copilot_for_security_trigger_audit_record.py +0 -0
  2452. /office365/{directory/security → security}/audit/copilot_interaction_audit_record.py +0 -0
  2453. /office365/{directory/security → security}/audit/copilot_plugin_setting_audit_record.py +0 -0
  2454. /office365/{directory/security → security}/audit/copilot_prompt_book_setting_audit_record.py +0 -0
  2455. /office365/{directory/security → security}/audit/copilot_session_sharing_audit_record.py +0 -0
  2456. /office365/{directory/security → security}/audit/copilot_setting_audit_record.py +0 -0
  2457. /office365/{directory/security → security}/audit/copilot_workspace_setting_audit_record.py +0 -0
  2458. /office365/{directory/security → security}/audit/core_reporting_settings_audit_record.py +0 -0
  2459. /office365/{directory/security → security}/audit/critical_asset_management_classification_record.py +0 -0
  2460. /office365/{directory/security → security}/audit/crm_entity_operation_audit_record.py +0 -0
  2461. /office365/{directory/security → security}/audit/cross_tenant_access_policy_audit_record.py +0 -0
  2462. /office365/{directory/security → security}/audit/device_discovery_settings_authenticated_scans_record.py +0 -0
  2463. /office365/{directory/security → security}/audit/device_discovery_settings_exclusion_record.py +0 -0
  2464. /office365/{directory/security → security}/audit/device_discovery_settings_record.py +0 -0
  2465. /office365/{directory/security → security}/audit/discovery_audit_record.py +0 -0
  2466. /office365/{directory/security → security}/audit/dlp_endpoint_audit_record.py +0 -0
  2467. /office365/{directory/security → security}/audit/dlp_import_result_audit_record.py +0 -0
  2468. /office365/{directory/security → security}/audit/dragon_copilot_access_record.py +0 -0
  2469. /office365/{directory/security → security}/audit/dragon_copilot_admin_record.py +0 -0
  2470. /office365/{directory/security → security}/audit/dragon_copilot_clinical_data_record.py +0 -0
  2471. /office365/{directory/security → security}/audit/dragon_copilot_session_record.py +0 -0
  2472. /office365/{directory/security → security}/audit/dynamics365_business_central_audit_record.py +0 -0
  2473. /office365/{directory/security → security}/audit/ehr_connector_audit_base_record.py +0 -0
  2474. /office365/{directory/security → security}/audit/eop_submission_feed_entity_audit_record.py +0 -0
  2475. /office365/{directory/security → security}/audit/exchange_admin_audit_record.py +0 -0
  2476. /office365/{directory/security → security}/audit/exchange_aggregated_mailbox_audit_record.py +0 -0
  2477. /office365/{directory/security → security}/audit/exchange_aggregated_operation_record.py +0 -0
  2478. /office365/{directory/security → security}/audit/exchange_mailbox_audit_group_record.py +0 -0
  2479. /office365/{directory/security → security}/audit/exchange_mailbox_audit_record.py +0 -0
  2480. /office365/{directory/security → security}/audit/hosted_rpa_audit_record.py +0 -0
  2481. /office365/{directory/security → security}/audit/hr_signal_audit_record.py +0 -0
  2482. /office365/{directory/security → security}/audit/hygiene_event_record.py +0 -0
  2483. /office365/{directory/security → security}/audit/information_barrier_policy_application_audit_record.py +0 -0
  2484. /office365/{directory/security → security}/audit/information_worker_protection_audit_record.py +0 -0
  2485. /office365/{directory/security → security}/audit/insider_risk_scoped_user_insights_record.py +0 -0
  2486. /office365/{directory/security → security}/audit/insider_risk_scoped_users_record.py +0 -0
  2487. /office365/{directory/security → security}/audit/microsoft_stream_audit_record.py +0 -0
  2488. /office365/{directory/security → security}/audit/microsoft_teams_admin_audit_record.py +0 -0
  2489. /office365/{directory/security → security}/audit/microsoft_teams_analytics_audit_record.py +0 -0
  2490. /office365/{directory/security → security}/audit/microsoft_teams_audit_record.py +0 -0
  2491. /office365/{directory/security → security}/audit/microsoft_teams_device_audit_record.py +0 -0
  2492. /office365/{directory/security → security}/audit/microsoft_teams_retention_label_action_audit_record.py +0 -0
  2493. /office365/{directory/security → security}/audit/microsoft_teams_sensitivity_label_action_audit_record.py +0 -0
  2494. /office365/{directory/security → security}/audit/microsoft_teams_shifts_audit_record.py +0 -0
  2495. /office365/{directory/security → security}/audit/microsoft_teams_user_concern_audit_record.py +0 -0
  2496. /office365/{directory/security → security}/audit/multi_tenant_organization_join_request_transition_details.py +0 -0
  2497. /office365/{directory/security → security}/audit/multi_tenant_organization_member_transition_details.py +0 -0
  2498. /office365/{directory/security → security}/audit/whois_domain_status.py +0 -0
  2499. /office365/{directory/security → security}/audit/whois_history_record.py +0 -0
  2500. /office365/{directory/security → security}/authority_template.py +0 -0
  2501. /office365/{directory/security → security}/auto_auditing_configuration.py +0 -0
  2502. /office365/{directory/security → security}/autonomous_system.py +0 -0
  2503. /office365/{directory/security/incidents → security/cases}/__init__.py +0 -0
  2504. /office365/{directory/security → security}/cases/action.py +0 -0
  2505. /office365/{directory/security → security}/cases/additionaldataoptions.py +0 -0
  2506. /office365/{directory/security → security}/cases/additionaloptions.py +0 -0
  2507. /office365/{directory/security → security}/cases/exportcriteria.py +0 -0
  2508. /office365/{directory/security → security}/cases/exportfilestructure.py +0 -0
  2509. /office365/{directory/security → security}/cases/exportformat.py +0 -0
  2510. /office365/{directory/security → security}/cases/exportlocation.py +0 -0
  2511. /office365/{directory/security → security}/cases/exportoptions.py +0 -0
  2512. /office365/{directory/security → security}/cases/itemstoinclude.py +0 -0
  2513. /office365/{directory/security → security}/cases/operationstatus.py +0 -0
  2514. /office365/{directory/security → security}/cases/reviewsetsettings.py +0 -0
  2515. /office365/{directory/security → security}/cases/statisticsoptions.py +0 -0
  2516. /office365/{directory/security → security}/cases/status.py +0 -0
  2517. /office365/{directory/security → security}/cases/type.py +0 -0
  2518. /office365/{directory/security → security}/childselectability.py +0 -0
  2519. /office365/{directory/security → security}/citation_template.py +0 -0
  2520. /office365/{directory/security → security}/cloud_logon_request_evidence.py +0 -0
  2521. /office365/{directory/security → security}/cloudattachmentversion.py +0 -0
  2522. /office365/{directory/security/labels → security/collaboration}/__init__.py +0 -0
  2523. /office365/{directory/security → security}/collaboration/analyzed_email_authentication_detail.py +0 -0
  2524. /office365/{directory/security → security}/collaboration/analyzed_email_dlp_rule_info.py +0 -0
  2525. /office365/{directory/security → security}/collaboration/analyzed_email_exchange_transport_rule_info.py +0 -0
  2526. /office365/{directory/security → security}/collaboration/analyzed_email_recipient_detail.py +0 -0
  2527. /office365/{directory/security → security}/collaboration/analyzed_email_sender_detail.py +0 -0
  2528. /office365/{directory/security → security}/container_filter.py +0 -0
  2529. /office365/{directory/security → security}/container_registry_evidence.py +0 -0
  2530. /office365/{directory/security → security}/containerportprotocol.py +0 -0
  2531. /office365/{directory/security → security}/contentformat.py +0 -0
  2532. /office365/{directory/security → security}/contentprocessingerrortype.py +0 -0
  2533. /office365/{directory/security → security}/correlation_reason.py +0 -0
  2534. /office365/{directory/security → security}/cortana_briefing_audit_record.py +0 -0
  2535. /office365/{directory/security → security}/custom_security_attribute_comparison_operator.py +0 -0
  2536. /office365/{directory/security → security}/customer_key_service_encryption_audit_record.py +0 -0
  2537. /office365/{directory/security → security}/data_center_security_cmdlet_audit_record.py +0 -0
  2538. /office365/{directory/security → security}/data_governance_audit_record.py +0 -0
  2539. /office365/{directory/security → security}/data_insights_rest_api_audit_record.py +0 -0
  2540. /office365/{directory/security → security}/data_lake_export_operation_audit_record.py +0 -0
  2541. /office365/{directory/security → security}/data_set.py +0 -0
  2542. /office365/{directory/security → security}/data_share_operation_audit_record.py +0 -0
  2543. /office365/{directory/security/labels/retention → security/datasecurity}/__init__.py +0 -0
  2544. /office365/{directory/security → security}/datasecurity/classification_inner_error.py +0 -0
  2545. /office365/{directory/security → security}/datasecurity/custom_metadata_dictionary.py +0 -0
  2546. /office365/{directory/security → security}/datasecurity/dlp_action_info.py +0 -0
  2547. /office365/{directory/security → security}/datasecurity/integrated_application_metadata.py +0 -0
  2548. /office365/{directory/security/data_security_investigation_audit_record.py → security/datasecurity/investigation_audit_record.py} +0 -0
  2549. /office365/{directory/security → security}/datasecurity/policy_binding.py +0 -0
  2550. /office365/{directory/security → security}/datasecurity/policy_location.py +0 -0
  2551. /office365/{directory/security → security}/datasecurity/policy_location_application.py +0 -0
  2552. /office365/{directory/security → security}/datasecurity/policy_location_domain.py +0 -0
  2553. /office365/{directory/security → security}/datasecurity/policy_location_url.py +0 -0
  2554. /office365/{directory/security → security}/datasecurity/policy_user_scope.py +0 -0
  2555. /office365/{directory/security → security}/datasecurity/process_conversation_metadata.py +0 -0
  2556. /office365/{directory/security → security}/datasecurity/protected_content.py +0 -0
  2557. /office365/{directory/security → security}/default_audit_data.py +0 -0
  2558. /office365/{directory/security → security}/defender_case_management_audit_record.py +0 -0
  2559. /office365/{directory/security → security}/defender_preview_features_record.py +0 -0
  2560. /office365/{directory/security → security}/defender_security_for_ai_configuration_audit_record.py +0 -0
  2561. /office365/{directory/security → security}/delivery_action.py +0 -0
  2562. /office365/{directory/security → security}/delivery_location.py +0 -0
  2563. /office365/{directory/security → security}/department_template.py +0 -0
  2564. /office365/{directory/security → security}/deploy_feature_activity_record.py +0 -0
  2565. /office365/{directory/security → security}/deployment_access_key_type.py +0 -0
  2566. /office365/{directory/security → security}/detonation_behaviour_details.py +0 -0
  2567. /office365/{directory/security → security}/detonation_chain.py +0 -0
  2568. /office365/{directory/security → security}/detonation_observables.py +0 -0
  2569. /office365/{directory/security → security}/dictionary.py +0 -0
  2570. /office365/{directory/security → security}/dlp_sensitive_information_type_rule_package_cmdlet_record.py +0 -0
  2571. /office365/{directory/security → security}/dynamic_column_value.py +0 -0
  2572. /office365/{directory/security/scorecontrol → security/ediscovery}/__init__.py +0 -0
  2573. /office365/{directory/security/search → security/ediscovery/operations}/__init__.py +0 -0
  2574. /office365/{directory/security → security}/email_sender.py +0 -0
  2575. /office365/{directory/security → security}/event_source.py +0 -0
  2576. /office365/{directory/security → security}/export_file_metadata.py +0 -0
  2577. /office365/{directory/security → security}/fabric_audit_record.py +0 -0
  2578. /office365/{directory/security → security}/fabric_policy_record.py +0 -0
  2579. /office365/{directory/security → security}/file_details.py +0 -0
  2580. /office365/{directory/security → security}/file_plan_authority.py +0 -0
  2581. /office365/{directory/security → security}/file_plan_citation.py +0 -0
  2582. /office365/{directory/security → security}/file_plan_department.py +0 -0
  2583. /office365/{directory/security → security}/file_plan_descriptor_base.py +0 -0
  2584. /office365/{directory/security → security}/file_plan_descriptor_template.py +0 -0
  2585. /office365/{directory/security → security}/file_plan_reference.py +0 -0
  2586. /office365/{directory/security → security}/file_plan_reference_template.py +0 -0
  2587. /office365/{directory/security → security}/file_plan_subcategory.py +0 -0
  2588. /office365/{directory/security → security}/filehashalgorithm.py +0 -0
  2589. /office365/{directory/security → security}/filter_operand.py +0 -0
  2590. /office365/{directory/security → security}/geo_location.py +0 -0
  2591. /office365/{directory/security → security}/git_hub_organization_evidence.py +0 -0
  2592. /office365/{directory/security → security}/git_hub_repo_evidence.py +0 -0
  2593. /office365/{directory/security → security}/git_hub_user_evidence.py +0 -0
  2594. /office365/{directory/security → security}/group_filter.py +0 -0
  2595. /office365/{directory/security → security}/healthcare_signal_record.py +0 -0
  2596. /office365/{directory/security/securescores → security/healthissues}/__init__.py +0 -0
  2597. /office365/{directory/security → security}/healthissues/deploymentstatus.py +0 -0
  2598. /office365/{directory/security → security}/healthissues/sensorhealthstatus.py +0 -0
  2599. /office365/{directory/security → security}/healthissues/sensortype.py +0 -0
  2600. /office365/{directory/security → security}/healthissues/severity.py +0 -0
  2601. /office365/{directory/security → security}/healthissues/sourcetype.py +0 -0
  2602. /office365/{directory/security → security}/healthissues/status.py +0 -0
  2603. /office365/{directory/security → security}/healthissues/type.py +0 -0
  2604. /office365/{directory/security → security}/hunting_row_result.py +0 -0
  2605. /office365/{directory/security/subjectrightsrequests → security/incidents}/__init__.py +0 -0
  2606. /office365/{directory/security → security}/incidents/status.py +0 -0
  2607. /office365/{directory/security → security}/indicator_source.py +0 -0
  2608. /office365/{directory/security → security}/integrated_apps_app_admin_activity_audit_record.py +0 -0
  2609. /office365/{directory/security → security}/integrated_apps_app_settings_admin_activity_audit_record.py +0 -0
  2610. /office365/{directory/security → security}/intelligence_profile_indicator.py +0 -0
  2611. /office365/{directory/security → security}/intelligence_profile_kind.py +0 -0
  2612. /office365/{directory/security → security}/investigation_state.py +0 -0
  2613. /office365/{directory/security → security}/irm_activity_audit_trail_record.py +0 -0
  2614. /office365/{directory/security → security}/irm_user_defined_detection_record.py +0 -0
  2615. /office365/{directory/security → security}/kaizala_audit_record.py +0 -0
  2616. /office365/{directory/security/threatintelligence → security/labels}/__init__.py +0 -0
  2617. /office365/{directory/security/label_analytics_aggregate_audit_record.py → security/labels/analytics_aggregate_audit_record.py} +0 -0
  2618. /office365/{directory/security/label_content_explorer_audit_record.py → security/labels/content_explorer_audit_record.py} +0 -0
  2619. /office365/{directory/security/threatintelligence/hosts → security/labels/retention}/__init__.py +0 -0
  2620. /office365/{directory/security → security}/labels/retention/actionafterretentionperiod.py +0 -0
  2621. /office365/{directory/security → security}/labels/retention/behaviorduringretentionperiod.py +0 -0
  2622. /office365/{directory/security → security}/labels/retention/defaultrecordbehavior.py +0 -0
  2623. /office365/{directory/security → security}/labels/retention/disposition_review_stage.py +0 -0
  2624. /office365/{directory/security → security}/labels/retention/duration.py +0 -0
  2625. /office365/{directory/security → security}/labels/retention/trigger.py +0 -0
  2626. /office365/{directory/security → security}/large_content_metadata_audit_record.py +0 -0
  2627. /office365/{directory/security → security}/logged_on_user.py +0 -0
  2628. /office365/{directory/security → security}/m365_compliance_connector_audit_record.py +0 -0
  2629. /office365/{directory/security → security}/m365_search_sections_record.py +0 -0
  2630. /office365/{directory/security → security}/m365daad_audit_record.py +0 -0
  2631. /office365/{directory/security → security}/m365odsp_asset_metadata_record.py +0 -0
  2632. /office365/{directory/security → security}/mail_cluster_evidence.py +0 -0
  2633. /office365/{directory/security → security}/mail_submission_data.py +0 -0
  2634. /office365/{directory/security → security}/mailbox_configuration_type.py +0 -0
  2635. /office365/{directory/security → security}/managed_services_audit_record.py +0 -0
  2636. /office365/{directory/security → security}/managed_tenants_audit_record.py +0 -0
  2637. /office365/{directory/security → security}/mapg_alerts_audit_record.py +0 -0
  2638. /office365/{directory/security → security}/mapg_onboard_audit_record.py +0 -0
  2639. /office365/{directory/security → security}/mapg_policy_audit_record.py +0 -0
  2640. /office365/{directory/security → security}/mapg_remediation_audit_record.py +0 -0
  2641. /office365/{directory/security → security}/mcas_alerts_audit_record.py +0 -0
  2642. /office365/{directory/security → security}/mda_audit_record.py +0 -0
  2643. /office365/{directory/security → security}/mda_data_security_signal_record.py +0 -0
  2644. /office365/{directory/security → security}/mdash_audit_record.py +0 -0
  2645. /office365/{directory/security → security}/mdatp_audit_record.py +0 -0
  2646. /office365/{directory/security → security}/mdc_events_record.py +0 -0
  2647. /office365/{directory/security → security}/mdi_audit_record.py +0 -0
  2648. /office365/{directory/security → security}/merge_response.py +0 -0
  2649. /office365/{directory/security → security}/mesh_worlds_audit_record.py +0 -0
  2650. /office365/{directory/security → security}/microsoft365_backup_backup_item_audit_record.py +0 -0
  2651. /office365/{directory/security → security}/microsoft365_backup_backup_policy_audit_record.py +0 -0
  2652. /office365/{directory/security → security}/microsoft365_backup_granular_browse_task_audit_record.py +0 -0
  2653. /office365/{directory/security → security}/microsoft365_backup_restore_item_audit_record.py +0 -0
  2654. /office365/{directory/security → security}/microsoft365_backup_restore_task_audit_record.py +0 -0
  2655. /office365/{directory/security → security}/microsoft365_copilot_scheduled_prompt_audit_record.py +0 -0
  2656. /office365/{directory/security → security}/microsoft_defender_experts_xdr_audit_record.py +0 -0
  2657. /office365/{directory/security → security}/microsoft_flow_audit_record.py +0 -0
  2658. /office365/{directory/security → security}/microsoft_forms_audit_record.py +0 -0
  2659. /office365/{directory/security → security}/microsoft_graph_data_connect_consent.py +0 -0
  2660. /office365/{directory/security → security}/microsoft_graph_data_connect_operation.py +0 -0
  2661. /office365/{directory/security → security}/microsoft_purview_data_catalog_operation_record.py +0 -0
  2662. /office365/{directory/security → security}/microsoft_purview_data_map_operation_record.py +0 -0
  2663. /office365/{directory/security → security}/microsoft_purview_metadata_policy_operation_record.py +0 -0
  2664. /office365/{directory/security → security}/microsoft_purview_policy_operation_record.py +0 -0
  2665. /office365/{directory/security → security}/microsoft_purview_privacy_audit_event.py +0 -0
  2666. /office365/{directory/security → security}/microsoft_purview_unified_catalog_operation_record.py +0 -0
  2667. /office365/{directory/security → security}/mip_auto_label_exchange_item_audit_record.py +0 -0
  2668. /office365/{directory/security → security}/mip_auto_label_progress_feedback_audit_record.py +0 -0
  2669. /office365/{directory/security → security}/mip_auto_label_share_point_item_audit_record.py +0 -0
  2670. /office365/{directory/security → security}/mip_auto_label_share_point_policy_location_audit_record.py +0 -0
  2671. /office365/{directory/security → security}/mip_auto_label_simulation_share_point_completion_record.py +0 -0
  2672. /office365/{directory/security → security}/mip_auto_label_simulation_share_point_progress_record.py +0 -0
  2673. /office365/{directory/security → security}/mip_auto_label_simulation_statistics_record.py +0 -0
  2674. /office365/{directory/security → security}/mip_exact_data_match_audit_record.py +0 -0
  2675. /office365/{directory/security → security}/mip_label_analytics_audit_record.py +0 -0
  2676. /office365/{directory/security → security}/mip_label_audit_record.py +0 -0
  2677. /office365/{directory/security → security}/mos_agent_info_record.py +0 -0
  2678. /office365/{directory/security → security}/mos_agent_info_record_v2.py +0 -0
  2679. /office365/{directory/security → security}/ms365d_custom_detection_audit_record.py +0 -0
  2680. /office365/{directory/security → security}/ms365d_incident_audit_record.py +0 -0
  2681. /office365/{directory/security → security}/ms365d_suppression_rule_audit_record.py +0 -0
  2682. /office365/{directory/security → security}/msde_custom_collection_audit_record.py +0 -0
  2683. /office365/{directory/security → security}/msde_general_settings_audit_record.py +0 -0
  2684. /office365/{directory/security → security}/msde_indicators_settings_audit_record.py +0 -0
  2685. /office365/{directory/security → security}/msde_response_actions_audit_record.py +0 -0
  2686. /office365/{directory/security → security}/msde_roles_settings_audit_record.py +0 -0
  2687. /office365/{directory/security → security}/msp_vector_search_content_metadata_audit_record.py +0 -0
  2688. /office365/{directory/security → security}/mstic_nation_state_notification_record.py +0 -0
  2689. /office365/{directory/security → security}/multi_stage_disposition_audit_record.py +0 -0
  2690. /office365/{directory/security → security}/my_analytics_settings_audit_record.py +0 -0
  2691. /office365/{directory/security → security}/network_adapter.py +0 -0
  2692. /office365/{directory/security → security}/noisy_alert_policy_audit_record.py +0 -0
  2693. /office365/{directory/security → security}/oauth_application_evidence.py +0 -0
  2694. /office365/{directory/security → security}/object_definition_metadata_entry.py +0 -0
  2695. /office365/{directory/security → security}/object_mapping_metadata_entry.py +0 -0
  2696. /office365/{directory/security → security}/ocr_settings.py +0 -0
  2697. /office365/{directory/security → security}/office_native_audit_record.py +0 -0
  2698. /office365/{directory/security → security}/ome_portal_audit_record.py +0 -0
  2699. /office365/{directory/security → security}/on_demand_share_point_classification_audit_record.py +0 -0
  2700. /office365/{directory/security → security}/on_premises_file_share_scanner_dlp_audit_record.py +0 -0
  2701. /office365/{directory/security → security}/on_premises_share_point_scanner_dlp_audit_record.py +0 -0
  2702. /office365/{directory/security → security}/onboarding_status.py +0 -0
  2703. /office365/{directory/security → security}/one_drive_audit_record.py +0 -0
  2704. /office365/{directory/security → security}/organizational_data_in_m365_audit_record.py +0 -0
  2705. /office365/{directory/security → security}/outlook_copilot_automation_audit_record.py +0 -0
  2706. /office365/{directory/security → security}/owa_get_access_token_for_resource_audit_record.py +0 -0
  2707. /office365/{directory/security → security}/p4_ai_risk_score_record.py +0 -0
  2708. /office365/{directory/security → security}/p4ai_assessment_category_record.py +0 -0
  2709. /office365/{directory/security → security}/p4ai_assessment_fabric_scanner_record.py +0 -0
  2710. /office365/{directory/security → security}/p4ai_assessment_location_result_record.py +0 -0
  2711. /office365/{directory/security → security}/p4ai_assessment_record.py +0 -0
  2712. /office365/{directory/security → security}/people_admin_settings_audit_record.py +0 -0
  2713. /office365/{directory/security → security}/physical_badging_signal_audit_record.py +0 -0
  2714. /office365/{directory/security → security}/places_directory_audit_record.py +0 -0
  2715. /office365/{directory/security → security}/planner_chat_message_audit_record.py +0 -0
  2716. /office365/{directory/security → security}/planner_chat_message_list_audit_record.py +0 -0
  2717. /office365/{directory/security → security}/planner_copy_plan_audit_record.py +0 -0
  2718. /office365/{directory/security → security}/planner_goal_audit_record.py +0 -0
  2719. /office365/{directory/security → security}/planner_goal_list_audit_record.py +0 -0
  2720. /office365/{directory/security → security}/planner_plan_audit_record.py +0 -0
  2721. /office365/{directory/security → security}/planner_plan_list_audit_record.py +0 -0
  2722. /office365/{directory/security → security}/planner_plan_sensitivity_label_audit_record.py +0 -0
  2723. /office365/{directory/security → security}/planner_roster_audit_record.py +0 -0
  2724. /office365/{directory/security → security}/planner_roster_sensitivity_label_audit_record.py +0 -0
  2725. /office365/{directory/security → security}/planner_task_audit_record.py +0 -0
  2726. /office365/{directory/security → security}/planner_task_list_audit_record.py +0 -0
  2727. /office365/{directory/security → security}/planner_tenant_settings_audit_record.py +0 -0
  2728. /office365/{directory/security → security}/policy_config_change_audit_record.py +0 -0
  2729. /office365/{directory/security → security}/policypivotproperty.py +0 -0
  2730. /office365/{directory/security → security}/power_apps_audit_app_record.py +0 -0
  2731. /office365/{directory/security → security}/power_apps_audit_plan_record.py +0 -0
  2732. /office365/{directory/security → security}/power_apps_audit_resource_record.py +0 -0
  2733. /office365/{directory/security → security}/power_bi_audit_record.py +0 -0
  2734. /office365/{directory/security → security}/power_bi_dlp_audit_record.py +0 -0
  2735. /office365/{directory/security → security}/power_pages_site_audit_record.py +0 -0
  2736. /office365/{directory/security → security}/power_platform_admin_dlp_audit_record.py +0 -0
  2737. /office365/{directory/security → security}/power_platform_admin_environment_audit_record.py +0 -0
  2738. /office365/{directory/security → security}/power_platform_administrator_activity_record.py +0 -0
  2739. /office365/{directory/security → security}/power_platform_lockbox_resource_access_request_audit_record.py +0 -0
  2740. /office365/{directory/security → security}/power_platform_lockbox_resource_command_audit_record.py +0 -0
  2741. /office365/{directory/security → security}/power_platform_service_activity_audit_record.py +0 -0
  2742. /office365/{directory/security → security}/power_platform_tenant_isolation_record.py +0 -0
  2743. /office365/{directory/security → security}/priva_privacy_assessment_operation_record.py +0 -0
  2744. /office365/{directory/security → security}/priva_privacy_consent_operation_record.py +0 -0
  2745. /office365/{directory/security → security}/privacy_data_match_audit_record.py +0 -0
  2746. /office365/{directory/security → security}/privacy_data_minimization_record.py +0 -0
  2747. /office365/{directory/security → security}/privacy_digest_email_record.py +0 -0
  2748. /office365/{directory/security → security}/privacy_open_access_audit_record.py +0 -0
  2749. /office365/{directory/security → security}/privacy_portal_audit_record.py +0 -0
  2750. /office365/{directory/security → security}/privacy_remediation_action_record.py +0 -0
  2751. /office365/{directory/security → security}/privacy_remediation_record.py +0 -0
  2752. /office365/{directory/security → security}/project_audit_record.py +0 -0
  2753. /office365/{directory/security → security}/project_for_the_web_assigned_to_me_settings_audit_record.py +0 -0
  2754. /office365/{directory/security → security}/project_for_the_web_project_audit_record.py +0 -0
  2755. /office365/{directory/security → security}/project_for_the_web_project_settings_audit_record.py +0 -0
  2756. /office365/{directory/security → security}/project_for_the_web_roadmap_audit_record.py +0 -0
  2757. /office365/{directory/security → security}/project_for_the_web_roadmap_item_audit_record.py +0 -0
  2758. /office365/{directory/security → security}/project_for_the_web_roadmap_settings_audit_record.py +0 -0
  2759. /office365/{directory/security → security}/project_for_the_web_task_audit_record.py +0 -0
  2760. /office365/{directory/security → security}/protectionscopestate.py +0 -0
  2761. /office365/{directory/security → security}/protocol_type.py +0 -0
  2762. /office365/{directory/security → security}/public_error_response.py +0 -0
  2763. /office365/{directory/security → security}/public_folder_audit_record.py +0 -0
  2764. /office365/{directory/security → security}/purgeareas.py +0 -0
  2765. /office365/{directory/security → security}/purgetype.py +0 -0
  2766. /office365/{directory/security → security}/purview_insider_risk_alerts_record.py +0 -0
  2767. /office365/{directory/security → security}/purview_insider_risk_cases_record.py +0 -0
  2768. /office365/{directory/security → security}/purview_mc_recommendation_record.py +0 -0
  2769. /office365/{directory/security → security}/purview_posture_agent_audit_record.py +0 -0
  2770. /office365/{directory/security → security}/quarantine_audit_record.py +0 -0
  2771. /office365/{directory/security → security}/query_type.py +0 -0
  2772. /office365/{directory/security → security}/recipient_type.py +0 -0
  2773. /office365/{directory/security → security}/records_management_audit_record.py +0 -0
  2774. /office365/{directory/security → security}/redundancy_detection_settings.py +0 -0
  2775. /office365/{directory/security → security}/referenced_object.py +0 -0
  2776. /office365/{directory/security → security}/registry_key_evidence.py +0 -0
  2777. /office365/{directory/security → security}/registry_value_evidence.py +0 -0
  2778. /office365/{directory/security → security}/remediation_action.py +0 -0
  2779. /office365/{directory/security → security}/remediation_severity.py +0 -0
  2780. /office365/{directory/security → security}/report_file_metadata.py +0 -0
  2781. /office365/{directory/security → security}/report_submission.py +0 -0
  2782. /office365/{directory/security → security}/report_submission_result_detail.py +0 -0
  2783. /office365/{directory/security → security}/resource_access_event.py +0 -0
  2784. /office365/{directory/security → security}/restricted_mode_audit_record.py +0 -0
  2785. /office365/{directory/security → security}/restrictionaction.py +0 -0
  2786. /office365/{directory/security → security}/retention_duration_forever.py +0 -0
  2787. /office365/{directory/security → security}/retention_policy_audit_record.py +0 -0
  2788. /office365/{directory/security → security}/riskscore.py +0 -0
  2789. /office365/{directory/security → security}/rti_operations_agent_audit_record.py +0 -0
  2790. /office365/{directory/security → security}/sbp_configuration_event_record.py +0 -0
  2791. /office365/{directory/security → security}/sbp_usage_event_record.py +0 -0
  2792. /office365/{directory/security → security}/score_evidence.py +0 -0
  2793. /office365/{directory/security → security}/score_platform_generic_audit_record.py +0 -0
  2794. /office365/{directory/security/threatintelligence/whoisrecords → security/scorecontrol}/__init__.py +0 -0
  2795. /office365/{directory/security → security}/script_run_audit_record.py +0 -0
  2796. /office365/{directory/security/triggers → security/search}/__init__.py +0 -0
  2797. /office365/{directory/security/search_audit_record.py → security/search/audit_record.py} +0 -0
  2798. /office365/{directory/security → security}/search/datasourcecontainerstatus.py +0 -0
  2799. /office365/{directory/security → security}/search/datasourceholdstatus.py +0 -0
  2800. /office365/{directory/security → security}/search/datasourcescopes.py +0 -0
  2801. /office365/{directory/security → security}/search/documentversion.py +0 -0
  2802. /office365/{directory/security → security}/search.py +0 -0
  2803. /office365/{directory/security/triggertypes → security/securescores}/__init__.py +0 -0
  2804. /office365/{directory/security → security}/security_compliance_alert_record.py +0 -0
  2805. /office365/{directory/security → security}/security_compliance_center_eop_cmdlet_audit_record.py +0 -0
  2806. /office365/{directory/security → security}/security_compliance_insights_audit_record.py +0 -0
  2807. /office365/{directory/security → security}/security_compliance_rbac_audit_record.py +0 -0
  2808. /office365/{directory/security → security}/security_compliance_user_change_audit_record.py +0 -0
  2809. /office365/{directory/security → security}/security_copilot_identity_management_audit_record.py +0 -0
  2810. /office365/{directory/security → security}/security_development_lifecycle_ai_log_audit_record.py +0 -0
  2811. /office365/{directory/security → security}/security_group_evidence.py +0 -0
  2812. /office365/{directory/security → security}/sensitive_info_remediation_agent_data_record.py +0 -0
  2813. /office365/{directory/security → security}/sensitivity_label_action_audit_record.py +0 -0
  2814. /office365/{directory/security → security}/sensitivity_label_policy_match_audit_record.py +0 -0
  2815. /office365/{directory/security → security}/sensitivity_labeled_file_action_audit_record.py +0 -0
  2816. /office365/{directory/security → security}/sensor_candidate.py +0 -0
  2817. /office365/{directory/security → security}/sensor_candidate_activation_mode.py +0 -0
  2818. /office365/{directory/security → security}/sensor_deployment_package.py +0 -0
  2819. /office365/{directory/security → security}/sentinel_ai_tool_audit_record.py +0 -0
  2820. /office365/{directory/security → security}/sentinel_graph_audit_record.py +0 -0
  2821. /office365/{directory/security → security}/sentinel_job_audit_record.py +0 -0
  2822. /office365/{directory/security → security}/sentinel_kql_on_lake_audit_record.py +0 -0
  2823. /office365/{directory/security → security}/sentinel_lake_data_onboarding_audit_record.py +0 -0
  2824. /office365/{directory/security → security}/sentinel_lake_encryption_audit_record.py +0 -0
  2825. /office365/{directory/security → security}/sentinel_lake_onboarding_audit_record.py +0 -0
  2826. /office365/{directory/security → security}/sentinel_notebook_on_lake_audit_record.py +0 -0
  2827. /office365/{directory/security → security}/sentinel_package_audit_record.py +0 -0
  2828. /office365/{directory/security → security}/service_principal_type.py +0 -0
  2829. /office365/{directory/security → security}/service_source.py +0 -0
  2830. /office365/{directory/security → security}/share_point_app_permission_operation_audit_record.py +0 -0
  2831. /office365/{directory/security → security}/share_point_audit_record.py +0 -0
  2832. /office365/{directory/security → security}/share_point_comment_operation_audit_record.py +0 -0
  2833. /office365/{directory/security → security}/share_point_content_security_policy_audit_record.py +0 -0
  2834. /office365/{directory/security → security}/share_point_content_type_operation_audit_record.py +0 -0
  2835. /office365/{directory/security → security}/share_point_e_signature_audit_record.py +0 -0
  2836. /office365/{directory/security → security}/share_point_field_operation_audit_record.py +0 -0
  2837. /office365/{directory/security → security}/share_point_file_operation_audit_record.py +0 -0
  2838. /office365/{directory/security → security}/share_point_list_item_operation_audit_record.py +0 -0
  2839. /office365/{directory/security → security}/share_point_list_operation_audit_record.py +0 -0
  2840. /office365/{directory/security → security}/share_point_sharing_operation_audit_record.py +0 -0
  2841. /office365/{directory/security → security}/single_property_schema.py +0 -0
  2842. /office365/{directory/security → security}/site_source.py +0 -0
  2843. /office365/{directory/security → security}/skype_for_business_cmdlets_audit_record.py +0 -0
  2844. /office365/{directory/security → security}/skype_for_business_pstn_usage_audit_record.py +0 -0
  2845. /office365/{directory/security → security}/skype_for_business_users_blocked_audit_record.py +0 -0
  2846. /office365/{directory/security → security}/sonar_detonation_content_metadata.py +0 -0
  2847. /office365/{directory/security → security}/sonar_detonation_entity_audit_record.py +0 -0
  2848. /office365/{directory/security → security}/sonar_file_detonation_entity_audit_record.py +0 -0
  2849. /office365/{directory/security → security}/sonar_submission_entity_audit_record.py +0 -0
  2850. /office365/{directory/security → security}/sonar_url_detonation_entity_audit_record.py +0 -0
  2851. /office365/{directory/security → security}/spark_core_custom_live_pool_record.py +0 -0
  2852. /office365/{directory/security → security}/stream.py +0 -0
  2853. /office365/{directory/security → security}/string_key_long_value_pair.py +0 -0
  2854. /office365/{directory/security → security}/string_key_object_value_pair.py +0 -0
  2855. /office365/{directory/security → security}/string_key_string_value_pair.py +0 -0
  2856. /office365/{directory/security → security}/string_value_dictionary.py +0 -0
  2857. /office365/{directory/security → security}/subcategory_template.py +0 -0
  2858. /office365/{intune/devices/configurations/windows/10 → security/subjectrightsrequests}/__init__.py +0 -0
  2859. /office365/{directory/security → security}/subjectrightsrequests/all_mailbox_location.py +0 -0
  2860. /office365/{directory/security → security}/subjectrightsrequests/all_site_location.py +0 -0
  2861. /office365/{directory/security → security}/subjectrightsrequests/data_subject.py +0 -0
  2862. /office365/{directory/security → security}/subjectrightsrequests/detail.py +0 -0
  2863. /office365/{directory/security → security}/subjectrightsrequests/enumerated_mailbox_location.py +0 -0
  2864. /office365/{directory/security → security}/subjectrightsrequests/enumerated_site_location.py +0 -0
  2865. /office365/{directory/security → security}/subjectrightsrequests/history.py +0 -0
  2866. /office365/{directory/security → security}/subjectrightsrequests/mailbox_location.py +0 -0
  2867. /office365/{directory/security → security}/subjectrightsrequests/site_location.py +0 -0
  2868. /office365/{directory/security → security}/subjectrightsrequests/stage_detail.py +0 -0
  2869. /office365/{directory/security → security}/submission_entity_audit_record.py +0 -0
  2870. /office365/{directory/security → security}/submission_mail_evidence.py +0 -0
  2871. /office365/{directory/security → security}/supervisory_review_day_x_insights_audit_record.py +0 -0
  2872. /office365/{directory/security → security}/synthetic_probe_audit_record.py +0 -0
  2873. /office365/{directory/security → security}/tag.py +0 -0
  2874. /office365/{directory/security → security}/team_copilot_interaction_audit_record.py +0 -0
  2875. /office365/{directory/security → security}/teams_delivery_location.py +0 -0
  2876. /office365/{directory/security → security}/teams_easy_approvals_audit_record.py +0 -0
  2877. /office365/{directory/security → security}/teams_eval_data_hub_admin_operation_audit_record.py +0 -0
  2878. /office365/{directory/security → security}/teams_eval_data_hub_data_access_audit_record.py +0 -0
  2879. /office365/{directory/security → security}/teams_eval_data_hub_permission_change_audit_record.py +0 -0
  2880. /office365/{directory/security → security}/teams_healthcare_audit_record.py +0 -0
  2881. /office365/{directory/security → security}/teams_message_delivery_action.py +0 -0
  2882. /office365/{directory/security → security}/teams_updates_audit_record.py +0 -0
  2883. /office365/{directory/security → security}/tenant_allow_block_list_audit_record.py +0 -0
  2884. /office365/{directory/security → security}/threat_detection_detail.py +0 -0
  2885. /office365/{directory/security → security}/threat_finder_audit_record.py +0 -0
  2886. /office365/{directory/security → security}/threat_type.py +0 -0
  2887. /office365/{sharepoint/publishing/pages/3d → security/threatintelligence}/__init__.py +0 -0
  2888. /office365/{directory/security → security}/threatintelligence/article_indicator.py +0 -0
  2889. /office365/{directory/security/threat_intelligence_atp_content_data.py → security/threatintelligence/atp_content_data.py} +0 -0
  2890. /office365/{directory/security/threat_intelligence_export_audit_record.py → security/threatintelligence/export_audit_record.py} +0 -0
  2891. /office365/{directory/security → security}/threatintelligence/host_port_banner.py +0 -0
  2892. /office365/{directory/security → security}/threatintelligence/host_port_protocol.py +0 -0
  2893. /office365/{directory/security → security}/threatintelligence/host_port_status.py +0 -0
  2894. /office365/{directory/security → security}/threatintelligence/host_reputation_classification.py +0 -0
  2895. /office365/{directory/security → security}/threatintelligence/host_reputation_rule_severity.py +0 -0
  2896. /office365/{directory/security → security}/threatintelligence/hostname.py +0 -0
  2897. /office365/{directory/security/threat_intelligence_mail_data.py → security/threatintelligence/mail_data.py} +0 -0
  2898. /office365/{directory/security/threat_intelligence_object_audit_record.py → security/threatintelligence/object_audit_record.py} +0 -0
  2899. /office365/{directory/security/threat_intelligence_url_click_data.py → security/threatintelligence/url_click_data.py} +0 -0
  2900. /office365/{directory/security → security}/timeline_event_type.py +0 -0
  2901. /office365/{directory/security → security}/todo_audit_record.py +0 -0
  2902. /office365/{directory/security → security}/topic_modeling_settings.py +0 -0
  2903. /office365/{directory/security → security}/trainable_classifier_audit_record.py +0 -0
  2904. /office365/{directory/security → security}/triggers/eventpropagationstatus.py +0 -0
  2905. /office365/{directory/security → security}/triggers/eventstatustype.py +0 -0
  2906. /office365/{directory/security → security}/triggertypes/event_type.py +0 -0
  2907. /office365/{directory/security → security}/uam_operation_audit_record.py +0 -0
  2908. /office365/{directory/security → security}/unclassified_artifact.py +0 -0
  2909. /office365/{directory/security → security}/unified_group_audit_record.py +0 -0
  2910. /office365/{directory/security → security}/unified_simulation_matched_item_audit_record.py +0 -0
  2911. /office365/{directory/security → security}/unified_simulation_summary_audit_record.py +0 -0
  2912. /office365/{directory/security → security}/universal_print_management_audit_record.py +0 -0
  2913. /office365/{directory/security → security}/universal_print_print_job_audit_record.py +0 -0
  2914. /office365/{directory/security → security}/urbac_assignment_audit_record.py +0 -0
  2915. /office365/{directory/security → security}/urbac_enable_state_audit_record.py +0 -0
  2916. /office365/{directory/security → security}/urbac_role_audit_record.py +0 -0
  2917. /office365/{directory/security → security}/url_evidence.py +0 -0
  2918. /office365/{directory/security → security}/user_training_audit_record.py +0 -0
  2919. /office365/{directory/security → security}/useractivitytype.py +0 -0
  2920. /office365/{directory/security → security}/useractivitytypes.py +0 -0
  2921. /office365/{directory/security → security}/userscopetype.py +0 -0
  2922. /office365/{directory/security → security}/usx_workspace_onboarding_audit_record.py +0 -0
  2923. /office365/{directory/security → security}/verdict_category.py +0 -0
  2924. /office365/{directory/security → security}/vfam_create_policy_audit_record.py +0 -0
  2925. /office365/{directory/security → security}/vfam_delete_policy_audit_record.py +0 -0
  2926. /office365/{directory/security → security}/vfam_update_policy_audit_record.py +0 -0
  2927. /office365/{directory/security → security}/viva_amplify_audit_record.py +0 -0
  2928. /office365/{directory/security → security}/viva_engage_events_audit_record.py +0 -0
  2929. /office365/{directory/security → security}/viva_engage_network_association_audit_record.py +0 -0
  2930. /office365/{directory/security → security}/viva_engage_segment_audit_record.py +0 -0
  2931. /office365/{directory/security → security}/viva_glint_advanced_configuration_audit_record.py +0 -0
  2932. /office365/{directory/security → security}/viva_glint_agentic_campaign_audit_record.py +0 -0
  2933. /office365/{directory/security → security}/viva_glint_feedback_program_audit_record.py +0 -0
  2934. /office365/{directory/security → security}/viva_glint_organizational_data_audit_record.py +0 -0
  2935. /office365/{directory/security → security}/viva_glint_pulse_program_audit_record.py +0 -0
  2936. /office365/{directory/security → security}/viva_glint_pulse_program_respondent_rate_audit_record.py +0 -0
  2937. /office365/{directory/security → security}/viva_glint_question_audit_record.py +0 -0
  2938. /office365/{directory/security → security}/viva_glint_role_audit_record.py +0 -0
  2939. /office365/{directory/security → security}/viva_glint_rubicon_audit_record.py +0 -0
  2940. /office365/{directory/security → security}/viva_glint_support_access_audit_record.py +0 -0
  2941. /office365/{directory/security → security}/viva_glint_system_audit_record.py +0 -0
  2942. /office365/{directory/security → security}/viva_glint_user_audit_record.py +0 -0
  2943. /office365/{directory/security → security}/viva_glint_user_group_audit_record.py +0 -0
  2944. /office365/{directory/security → security}/viva_goals_audit_record.py +0 -0
  2945. /office365/{directory/security → security}/viva_learning_admin_audit_record.py +0 -0
  2946. /office365/{directory/security → security}/viva_learning_audit_record.py +0 -0
  2947. /office365/{directory/security → security}/viva_pulse_admin_audit_record.py +0 -0
  2948. /office365/{directory/security → security}/viva_pulse_organizer_audit_record.py +0 -0
  2949. /office365/{directory/security → security}/viva_pulse_report_audit_record.py +0 -0
  2950. /office365/{directory/security → security}/viva_pulse_response_audit_record.py +0 -0
  2951. /office365/{directory/security → security}/vm_cloud_provider.py +0 -0
  2952. /office365/{directory/security → security}/vulnerability_component.py +0 -0
  2953. /office365/{directory/security → security}/vulnerability_severity.py +0 -0
  2954. /office365/{directory/security → security}/wdatp_alerts_audit_record.py +0 -0
  2955. /office365/{directory/security → security}/web_content_filtering_audit_record.py +0 -0
  2956. /office365/{directory/security → security}/windows365_customer_lockbox_audit_record.py +0 -0
  2957. /office365/{directory/security → security}/workplace_analytics_audit_record.py +0 -0
  2958. /office365/{directory/security → security}/yammer_audit_record.py +0 -0
  2959. /office365/{directory/security → security}/yammer_user_hiding_audit_record.py +0 -0
  2960. /office365/sharepoint/publishing/pages/{3d → _3d}/page.py +0 -0
  2961. /office365/sharepoint/publishing/pages/{3d → _3d}/types.py +0 -0
  2962. /office365/{intune/print → todo/tasks}/taskstatus.py +0 -0
  2963. {office365_rest_python_client-3.2.0.dist-info → office365_rest_python_client-3.3.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,1426 @@
1
+ """Capture and recreate a SharePoint list's *structure* (columns, content types, views).
2
+
3
+ A whole-site migration recreates each target list container, but content copied
4
+ into a list whose custom columns/content types/views do not exist yet has nowhere
5
+ to land. This module takes a **read-only, serializable snapshot** of a source
6
+ list's structure (:func:`capture_list_structure`) and can replay it onto a target
7
+ list (:func:`provision_list_structure`) before content is copied.
8
+
9
+ ``capture_list_structure`` performs GETs only — it never writes. The snapshot is
10
+ a plain tree of dataclasses that round-trips through :meth:`ListStructure.to_dict`
11
+ / :meth:`ListStructure.from_dict` (JSON-friendly), so a plan can be captured once
12
+ and replayed.
13
+
14
+ Scope, deliberately:
15
+
16
+ * **Fields** — user-defined list columns with their ``SchemaXml`` prepared for
17
+ ``CreateFieldAsXml`` (see :meth:`~office365.sharepoint.fields.field.Field.schema_xml_for_copy`).
18
+ Built-in/system columns and framework columns injected by SharePoint features
19
+ (hidden, or not deletable) are skipped — a target list already has them. A
20
+ **lookup** column's schema names the list it points at; replayed verbatim it
21
+ would name the *source* list id, so it is repointed at the matching target list
22
+ (or skipped with a warning when that list is not part of the migration).
23
+ * **Content types** — non-hidden content types with their ordered field links, kept
24
+ to the columns the migration can actually recreate. A link to a framework column
25
+ (``MediaService*``, ``MetaInfo``, ...) is not replayed — the column itself is
26
+ hidden and server-provisioned — so comparing it would report a gap on every
27
+ library the migration provisioned.
28
+ * **Views** — non-hidden, non-personal views with their ordered columns.
29
+ * **List settings** — the container's own policy (versioning and its limits,
30
+ content approval and draft visibility, attachments, item-level read/write
31
+ permissions, list validation, and on a library minor versions and required
32
+ check-out), replayed per property so a setting the target list type cannot
33
+ accept is reported (as a warning) instead of failing the list.
34
+
35
+ Replay is **per list**, because that is as far as REST reaches: a *site* column or
36
+ a *site* content type is a web-level definition, and ``FieldLinks`` refuses to
37
+ attach a column that is not reachable from the list (``Column '<name>' does not
38
+ exist``) while the server assigns content types their own identifiers. A list that
39
+ uses one still gets a list-scoped copy; :func:`compare_web_scope_structure` reports
40
+ the web-level definitions the target web therefore lacks, so the gap is named
41
+ instead of silent.
42
+
43
+ Provisioning is idempotent: with ``on_conflict="skip"`` (default) it only creates
44
+ what is missing, so a re-run is a no-op. The server assigns content type
45
+ identifiers, so content types are matched and recreated **by name** (their
46
+ ``Id`` cannot be preserved over REST); field links are reconciled best-effort
47
+ and any column the server refuses to link is reported back to the caller.
48
+ Built-in columns the target list already provides are left alone rather than
49
+ sent as guaranteed link failures.
50
+ """
51
+
52
+ from __future__ import annotations
53
+
54
+ import logging
55
+ import re
56
+ from dataclasses import asdict, dataclass
57
+ from dataclasses import field as dc_field
58
+ from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Optional, Set, Tuple
59
+ from xml.etree import ElementTree
60
+
61
+ from office365.migration.map import ContentTypeMap
62
+ from office365.runtime.client_request_exception import ClientRequestException
63
+ from office365.runtime.paths.resource_path import ResourcePath
64
+ from office365.sharepoint.contenttypes.fieldlinks.collection import FieldLinkCollection
65
+ from office365.sharepoint.fields.builtin_field_name import SYSTEM_FIELD_NAMES
66
+
67
+ if TYPE_CHECKING:
68
+ from office365.sharepoint.contenttypes.content_type import ContentType
69
+ from office365.sharepoint.contenttypes.fieldlinks.field_link import FieldLink
70
+ from office365.sharepoint.fields.field import Field
71
+ from office365.sharepoint.lists.list import List as SPList
72
+ from office365.sharepoint.views.view import View
73
+ from office365.sharepoint.webs.web import Web
74
+
75
+ logger = logging.getLogger(__name__)
76
+
77
+ __all__ = [
78
+ "ContentTypeDefinition",
79
+ "FieldDefinition",
80
+ "ListStructure",
81
+ "ViewDefinition",
82
+ "WebScopeProvisionReport",
83
+ "WebScopeStructure",
84
+ "capture_list_structure",
85
+ "compare_web_scope_structure",
86
+ "normalize_guid",
87
+ "provision_list_structure",
88
+ "provision_web_scope_columns",
89
+ "rewrite_lookup_schema",
90
+ "web_scope_note",
91
+ ]
92
+
93
+ #: Field properties requested per column. ``SchemaXml`` is explicit because it is
94
+ #: the payload used to recreate the column on another list.
95
+ _FIELD_SELECT = [
96
+ "Id",
97
+ "InternalName",
98
+ "Title",
99
+ "FieldTypeKind",
100
+ "TypeAsString",
101
+ "SchemaXml",
102
+ "Required",
103
+ "Hidden",
104
+ "ReadOnlyField",
105
+ "FromBaseType",
106
+ "CanBeDeleted",
107
+ "Group",
108
+ "Description",
109
+ "CustomFormatter",
110
+ "ClientSideComponentId",
111
+ ]
112
+
113
+ #: List container settings captured with the structure, in the order they must be
114
+ #: applied (versioning before its limits, moderation and versioning before the
115
+ #: draft-item policy). Every name is live-verified writable over REST.
116
+ _LIST_SETTING_ORDER = (
117
+ "EnableVersioning",
118
+ "EnableMinorVersions",
119
+ "MajorVersionLimit",
120
+ "MajorWithMinorVersionsLimit",
121
+ "ForceCheckout",
122
+ "EnableModeration",
123
+ "DraftVersionVisibility",
124
+ "EnableAttachments",
125
+ "ReadSecurity",
126
+ "WriteSecurity",
127
+ )
128
+
129
+ #: Minor versions, their limit and required check-out only exist on document
130
+ #: libraries - a plain list rejects them ("The list does not support minor
131
+ #: versioning"), so they are captured only where they can be replayed.
132
+ _LIBRARY_SETTING_NAMES = frozenset({"EnableMinorVersions", "MajorWithMinorVersionsLimit", "ForceCheckout"})
133
+
134
+ #: List validation names columns in its formula, so it is applied only once the
135
+ #: columns have been created.
136
+ _VALIDATION_SETTING_NAMES = ("ValidationFormula", "ValidationMessage")
137
+
138
+ #: A version limit only exists while the matching versioning flavour is on; the
139
+ #: server rejects the write outright ("Versioning must be enabled and the number of
140
+ #: major versions must be between 1 and 50000"), so a limit whose flag is off in the
141
+ #: snapshot is skipped instead of sent to bounce.
142
+ _SETTING_DEPENDS_ON = {
143
+ "MajorVersionLimit": "EnableVersioning",
144
+ "MajorWithMinorVersionsLimit": "EnableMinorVersions",
145
+ }
146
+
147
+ #: SharePoint rewrites a list validation formula on write (it dropped the brackets
148
+ #: around a column reference: ``=IF([Title]="",TRUE,FALSE)`` was stored as
149
+ #: ``=IF(Title="",TRUE,FALSE)``), so both sides are compared without decoration.
150
+ _FORMULA_NOISE = re.compile(r"[\s\[\]]")
151
+
152
+ #: ``SchemaXml`` attributes a faithful re-create legitimately changes: they name the
153
+ #: *containing* site (the owning list, a lookup's target list, a taxonomy column's
154
+ #: hidden note list and its web) or are assigned by the server (column id, storage
155
+ #: column/ordinal). Everything else — type, required/indexed/unique flags, length,
156
+ #: format, rich text, choice list, default, formula, validation — must reproduce.
157
+ _SCHEMA_ATTRIBUTE_NOISE = frozenset({"SourceID", "List", "ListId", "WebId", "TextField", "ID", "ColName", "RowOrdinal"})
158
+
159
+
160
+ def comparable_setting(name: str, value: Any) -> Any:
161
+ """A list setting value in the form its own read-back is expected to take."""
162
+ if name == "ValidationFormula" and value is not None:
163
+ return _FORMULA_NOISE.sub("", str(value))
164
+ return value
165
+
166
+
167
+ def _comparable_attribute(name: str, value: str) -> Any:
168
+ """A schema attribute in the form its own read-back is expected to take."""
169
+ if name in {"ValidationFormula", "Formula"}:
170
+ return _FORMULA_NOISE.sub("", value)
171
+ return value
172
+
173
+
174
+ def comparable_schema(schema_xml: Optional[str]) -> Dict[str, Any]:
175
+ """A column's ``SchemaXml`` reduced to the parts a faithful copy reproduces.
176
+
177
+ Returns the column's attributes and its value-bearing child elements
178
+ (``Default``, ``CHOICES``, ``Formula``, ``FieldRefs``) keyed by name, with the
179
+ site-specific and server-assigned attributes dropped (see
180
+ :data:`_SCHEMA_ATTRIBUTE_NOISE`). Values are normalized the way their own
181
+ read-back comes back: a formula without brackets/whitespace and a choice list as
182
+ a tuple of its options. Unparsable schema yields an empty mapping, so an
183
+ unreadable column is never reported as a difference.
184
+ """
185
+ if not schema_xml:
186
+ return {}
187
+ try:
188
+ root = ElementTree.fromstring(schema_xml)
189
+ except ElementTree.ParseError:
190
+ return {}
191
+ comparable: Dict[str, Any] = {
192
+ f"attribute {name}": _comparable_attribute(name, value)
193
+ for name, value in sorted(root.attrib.items())
194
+ if name not in _SCHEMA_ATTRIBUTE_NOISE
195
+ }
196
+ for child in root:
197
+ tag = child.tag.upper()
198
+ if tag == "CHOICES":
199
+ comparable["choices"] = tuple(choice.text or "" for choice in child)
200
+ elif tag == "FIELDREFS":
201
+ comparable["field references"] = tuple(ref.attrib.get("Name") or "" for ref in child)
202
+ elif tag in {"FORMULA", "VALIDATIONFORMULA"}:
203
+ comparable[tag.lower()] = _FORMULA_NOISE.sub("", child.text or "")
204
+ else:
205
+ comparable[tag.lower()] = (child.text or "").strip()
206
+ return comparable
207
+
208
+
209
+ def _setting_names(base_type: Optional[int]) -> List[str]:
210
+ """The container settings worth capturing for a list of this base type."""
211
+ return [name for name in _LIST_SETTING_ORDER if base_type == 1 or name not in _LIBRARY_SETTING_NAMES]
212
+
213
+
214
+ @dataclass
215
+ class FieldDefinition:
216
+ """A single list column, ready to recreate via ``CreateFieldAsXml``."""
217
+
218
+ internal_name: str
219
+ title: Optional[str] = None
220
+ field_type_kind: Optional[int] = None
221
+ type_as_string: Optional[str] = None
222
+ schema_xml: Optional[str] = None
223
+ required: Optional[bool] = None
224
+ hidden: Optional[bool] = None
225
+ read_only: Optional[bool] = None
226
+ from_base_type: Optional[bool] = None
227
+ can_be_deleted: Optional[bool] = None
228
+ group: Optional[str] = None
229
+ description: Optional[str] = None
230
+ custom_formatter: Optional[str] = None
231
+ client_side_component_id: Optional[str] = None
232
+
233
+ def to_dict(self) -> Dict[str, Any]:
234
+ return asdict(self)
235
+
236
+ @classmethod
237
+ def from_dict(cls, data: Dict[str, Any]) -> "FieldDefinition":
238
+ return cls(
239
+ internal_name=data.get("internal_name", ""),
240
+ title=data.get("title"),
241
+ field_type_kind=data.get("field_type_kind"),
242
+ type_as_string=data.get("type_as_string"),
243
+ schema_xml=data.get("schema_xml"),
244
+ required=data.get("required"),
245
+ hidden=data.get("hidden"),
246
+ read_only=data.get("read_only"),
247
+ from_base_type=data.get("from_base_type"),
248
+ can_be_deleted=data.get("can_be_deleted"),
249
+ group=data.get("group"),
250
+ description=data.get("description"),
251
+ custom_formatter=data.get("custom_formatter"),
252
+ client_side_component_id=data.get("client_side_component_id"),
253
+ )
254
+
255
+
256
+ @dataclass
257
+ class ContentTypeDefinition:
258
+ """A content type bound to the list, with its field links in display order."""
259
+
260
+ string_id: str
261
+ name: Optional[str] = None
262
+ group: Optional[str] = None
263
+ description: Optional[str] = None
264
+ hidden: Optional[bool] = None
265
+ sealed: Optional[bool] = None
266
+ read_only: Optional[bool] = None
267
+ field_internal_names: List[str] = dc_field(default_factory=list)
268
+
269
+ def to_dict(self) -> Dict[str, Any]:
270
+ return asdict(self)
271
+
272
+ @classmethod
273
+ def from_dict(cls, data: Dict[str, Any]) -> "ContentTypeDefinition":
274
+ return cls(
275
+ string_id=data.get("string_id", ""),
276
+ name=data.get("name"),
277
+ group=data.get("group"),
278
+ description=data.get("description"),
279
+ hidden=data.get("hidden"),
280
+ sealed=data.get("sealed"),
281
+ read_only=data.get("read_only"),
282
+ field_internal_names=list(data.get("field_internal_names") or []),
283
+ )
284
+
285
+
286
+ @dataclass
287
+ class ViewDefinition:
288
+ """A list view, with its columns in display order."""
289
+
290
+ title: str
291
+ view_type: Optional[str] = None
292
+ row_limit: Optional[int] = None
293
+ paged: Optional[bool] = None
294
+ hidden: Optional[bool] = None
295
+ default_view: Optional[bool] = None
296
+ personal_view: Optional[bool] = None
297
+ view_query: Optional[str] = None
298
+ field_internal_names: List[str] = dc_field(default_factory=list)
299
+ custom_formatter: Optional[str] = None
300
+
301
+ def to_dict(self) -> Dict[str, Any]:
302
+ return asdict(self)
303
+
304
+ @classmethod
305
+ def from_dict(cls, data: Dict[str, Any]) -> "ViewDefinition":
306
+ return cls(
307
+ title=data.get("title", ""),
308
+ view_type=data.get("view_type"),
309
+ row_limit=data.get("row_limit"),
310
+ paged=data.get("paged"),
311
+ hidden=data.get("hidden"),
312
+ default_view=data.get("default_view"),
313
+ personal_view=data.get("personal_view"),
314
+ view_query=data.get("view_query"),
315
+ field_internal_names=list(data.get("field_internal_names") or []),
316
+ custom_formatter=data.get("custom_formatter"),
317
+ )
318
+
319
+
320
+ @dataclass
321
+ class ListStructure:
322
+ """A serializable snapshot of a list's container metadata and structure."""
323
+
324
+ title: Optional[str] = None
325
+ base_template: Optional[int] = None
326
+ base_type: Optional[int] = None
327
+ description: Optional[str] = None
328
+ content_types_enabled: Optional[bool] = None
329
+ settings: Dict[str, Any] = dc_field(default_factory=dict)
330
+ fields: List[FieldDefinition] = dc_field(default_factory=list)
331
+ content_types: List[ContentTypeDefinition] = dc_field(default_factory=list)
332
+ views: List[ViewDefinition] = dc_field(default_factory=list)
333
+
334
+ @property
335
+ def is_document_library(self) -> bool:
336
+ """Whether the captured list is a document library (``BaseType`` 1)."""
337
+ return self.base_type == 1
338
+
339
+ def to_dict(self) -> Dict[str, Any]:
340
+ """Return a JSON-friendly dict (nested dataclasses are expanded)."""
341
+ return asdict(self)
342
+
343
+ @classmethod
344
+ def from_dict(cls, data: Dict[str, Any]) -> "ListStructure":
345
+ """Rebuild a snapshot from :meth:`to_dict` output (unknown keys ignored)."""
346
+ return cls(
347
+ title=data.get("title"),
348
+ base_template=data.get("base_template"),
349
+ base_type=data.get("base_type"),
350
+ description=data.get("description"),
351
+ content_types_enabled=data.get("content_types_enabled"),
352
+ settings=dict(data.get("settings") or {}),
353
+ fields=[FieldDefinition.from_dict(item) for item in data.get("fields") or []],
354
+ content_types=[ContentTypeDefinition.from_dict(item) for item in data.get("content_types") or []],
355
+ views=[ViewDefinition.from_dict(item) for item in data.get("views") or []],
356
+ )
357
+
358
+
359
+ def capture_list_structure(sp_list: SPList) -> ListStructure:
360
+ """Read a SharePoint list's structure into a :class:`ListStructure` snapshot.
361
+
362
+ Issues only GET requests. Loads the list's scalar properties, its columns,
363
+ the non-hidden content types (with their field links), and the non-hidden
364
+ views (with their columns).
365
+
366
+ Args:
367
+ sp_list: A ``List`` (possibly not yet loaded); it is loaded in place.
368
+
369
+ Returns:
370
+ A fully-populated, serializable snapshot.
371
+ """
372
+ sp_list.ensure_properties(["Title", "BaseTemplate", "BaseType", "Description", "ContentTypesEnabled"])
373
+ # Container settings (versioning, content approval, attachments, item-level
374
+ # permissions, validation) travel with the columns: a target list created from
375
+ # its template alone keeps the template defaults, so a moderated or
376
+ # version-limited source would lose that policy.
377
+ setting_names = [*_LIST_SETTING_ORDER, *_VALIDATION_SETTING_NAMES]
378
+ sp_list.ensure_properties(setting_names).execute_query()
379
+
380
+ structure = ListStructure(
381
+ title=sp_list.title,
382
+ base_template=sp_list.base_template,
383
+ base_type=sp_list.base_type,
384
+ description=sp_list.description,
385
+ content_types_enabled=sp_list.content_types_enabled,
386
+ settings={
387
+ name: value
388
+ for name in [*_setting_names(sp_list.base_type), *_VALIDATION_SETTING_NAMES]
389
+ if (value := sp_list.properties.get(name)) is not None
390
+ },
391
+ )
392
+
393
+ loaded_fields = sp_list.fields.select(list(_FIELD_SELECT)).get().execute_query()
394
+ structure.fields = [_field_definition(field) for field in loaded_fields if _is_capturable_field(field)]
395
+ replayable = {field.internal_name for field in structure.fields if field.internal_name}
396
+
397
+ for content_type in sp_list.content_types.get().execute_query():
398
+ if not _is_capturable_content_type(content_type):
399
+ continue
400
+ links = content_type.field_links.get().execute_query()
401
+ structure.content_types.append(_content_type_definition(content_type, links, replayable))
402
+
403
+ for view in sp_list.views.get().execute_query():
404
+ if getattr(view, "hidden", False) or getattr(view, "personal_view", False):
405
+ continue
406
+ field_names = list(view.view_fields.get().execute_query())
407
+ structure.views.append(_view_definition(view, field_names))
408
+
409
+ return structure
410
+
411
+
412
+ def _is_capturable_field(field: Field) -> bool:
413
+ """Only recreatable user columns — not built-in, framework, or hidden fields.
414
+
415
+ Built-in/system fields are already present on any target list, and framework
416
+ columns injected by SharePoint features (shortcuts, media, sensitivity
417
+ labels, ...) cannot be recreated meaningfully. A list-scoped, deletable,
418
+ visible column is what a user actually added.
419
+ """
420
+ name = field.internal_name
421
+ if not name or name in SYSTEM_FIELD_NAMES:
422
+ return False
423
+ if field.from_base_type is True:
424
+ return False
425
+ if field.can_be_deleted is False:
426
+ return False
427
+ return field.hidden is not True
428
+
429
+
430
+ def _is_capturable_content_type(content_type: ContentType) -> bool:
431
+ """Content types that carry useful, recreatable structure (non-hidden, identified)."""
432
+ return bool(content_type.string_id) and not content_type.hidden
433
+
434
+
435
+ #: Content types in this length range are base types (Item ``0x01``, Document
436
+ #: ``0x0101``, ...); custom content types append a 32-hex-digit GUID.
437
+ _MIN_CUSTOM_CONTENT_TYPE_ID_LENGTH = 20
438
+
439
+ #: A GUID, optionally wrapped in the braces SharePoint uses in ``SchemaXml``.
440
+ _GUID_RE = re.compile(r"^\{?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}?$")
441
+ #: ``Type="Lookup"`` / ``Type="LookupMulti"`` — the columns that name their list.
442
+ _LOOKUP_TYPE_RE = re.compile(r'\bType="Lookup(?:Multi)?"')
443
+ #: The ``List="..."`` attribute a lookup column carries in its ``SchemaXml``.
444
+ _LIST_ATTR_RE = re.compile(r'\sList="([^"]*)"')
445
+
446
+
447
+ def normalize_guid(value: Any) -> Optional[str]:
448
+ """A lower-cased, brace-stripped GUID, or ``None`` when not a GUID.
449
+
450
+ Lookup schemas carry ``List="{...}"`` while the migration threads list ids
451
+ around as plain strings; normalizing both sides keeps the lookup keyed by the
452
+ same value regardless of case or brace style.
453
+ """
454
+ if value is None:
455
+ return None
456
+ text = str(value).strip()
457
+ if text.startswith("{") and text.endswith("}"):
458
+ text = text[1:-1]
459
+ return text.lower() if _GUID_RE.match(text) else None
460
+
461
+
462
+ def rewrite_lookup_schema(
463
+ schema_xml: Optional[str], list_id_map: Dict[str, str] | None
464
+ ) -> tuple[Optional[str], Optional[str]]:
465
+ """Repoint a lookup column's ``SchemaXml`` at the target list.
466
+
467
+ A lookup column is recreated from its source ``SchemaXml``, which names the
468
+ *source* list (``List="{source-guid}"``). Replayed verbatim onto another site
469
+ the target column points at a list id that does not exist there, so the column
470
+ is broken and every value written to it is silently dropped. Given a
471
+ ``list_id_map`` (normalized source list id -> normalized target list id) this
472
+ rewrites the attribute to the target list.
473
+
474
+ Returns ``(schema, unresolved)``: the rewritten schema (or ``None`` when the
475
+ field must be skipped), and the unresolved source list id when the referenced
476
+ list is not part of the migration (so the caller can warn).
477
+ """
478
+ if not schema_xml or not _LOOKUP_TYPE_RE.search(schema_xml):
479
+ return schema_xml, None
480
+ match = _LIST_ATTR_RE.search(schema_xml)
481
+ if match is None:
482
+ return schema_xml, None
483
+ referenced = normalize_guid(match.group(1))
484
+ if referenced is None:
485
+ # ``List="UserInfo"`` (the User column's user-information list) is a
486
+ # keyword, portable as-is.
487
+ return schema_xml, None
488
+ target = (list_id_map or {}).get(referenced)
489
+ if target is None:
490
+ return None, referenced
491
+ rewritten = f'{schema_xml[: match.start()]} List="{{{target}}}"{schema_xml[match.end() :]}'
492
+ return rewritten, None
493
+
494
+
495
+ #: Managed-metadata column types; recreated through ``TaxonomyField.create`` below.
496
+ _TAXONOMY_TYPES = frozenset({"TaxonomyFieldType", "TaxonomyFieldTypeMulti"})
497
+
498
+
499
+ def _is_taxonomy_definition(definition: FieldDefinition) -> bool:
500
+ """Whether a captured column is a managed-metadata (taxonomy) column."""
501
+ if (definition.type_as_string or "") in _TAXONOMY_TYPES:
502
+ return True
503
+ schema = definition.schema_xml or ""
504
+ return "TaxonomyFieldType" in schema and "<Name>TermSetId</Name>" in schema
505
+
506
+
507
+ #: A column bound to an external (BCS) content type. The generated ``FieldType``
508
+ #: model does not carry this member, so the ``TypeAsString``/``SchemaXml``
509
+ #: spelling is what identifies it.
510
+ _EXTERNAL_DATA_TYPE = "BusinessData"
511
+
512
+
513
+ def _is_external_data_definition(definition: FieldDefinition) -> bool:
514
+ """Whether a captured column reads its values from an external (BCS) source."""
515
+ if (definition.type_as_string or "") == _EXTERNAL_DATA_TYPE:
516
+ return True
517
+ return f'Type="{_EXTERNAL_DATA_TYPE}"' in (definition.schema_xml or "")
518
+
519
+
520
+ def _taxonomy_property(schema_xml: Optional[str], name: str) -> Optional[str]:
521
+ """Read a value from a taxonomy column's ``<Customization>`` property bag."""
522
+ if not schema_xml:
523
+ return None
524
+ match = re.search(
525
+ r"<Name>\s*" + re.escape(name) + r"\s*</Name>\s*<Value\b[^>]*>\s*([^<\s]+)\s*</Value>",
526
+ schema_xml,
527
+ re.IGNORECASE,
528
+ )
529
+ return match.group(1).strip() if match else None
530
+
531
+
532
+ def _taxonomy_allow_multiple(schema_xml: str) -> bool:
533
+ match = re.search(r'\bMult="(TRUE|FALSE)"', schema_xml, re.IGNORECASE)
534
+ if match:
535
+ return match.group(1).upper() == "TRUE"
536
+ return 'Type="TaxonomyFieldTypeMulti"' in schema_xml
537
+
538
+
539
+ def _ensure_taxonomy_field(container: SPList | Web, definition: FieldDefinition, warnings: List[str]) -> Optional[Field]:
540
+ """Recreate a managed-metadata column bound to the same term set on the target.
541
+
542
+ A taxonomy column cannot be replayed from its ``SchemaXml``: that schema names
543
+ the *source* web's hidden TaxonomyHiddenList and note field, so the copy ends
544
+ up pointing at columns that do not exist on the target and every value is
545
+ dropped. ``TaxonomyField.create`` lets SharePoint provision a fresh hidden
546
+ note column and bind ``LookupList`` to the target web's TaxonomyHiddenList.
547
+
548
+ Returns the pending column (its create is only submitted on the context's next
549
+ ``execute_query()``), or ``None`` when it could not even be queued.
550
+ """
551
+ name = definition.internal_name
552
+ term_set = _taxonomy_property(definition.schema_xml, "TermSetId")
553
+ if not term_set:
554
+ warning = f"taxonomy column '{name}' was not recreated: its term set id could not be read"
555
+ logger.debug(warning)
556
+ warnings.append(warning)
557
+ return None
558
+ from office365.sharepoint.taxonomy.field import TaxonomyField
559
+
560
+ try:
561
+ return TaxonomyField.create(
562
+ container.fields,
563
+ name,
564
+ term_set,
565
+ _taxonomy_property(definition.schema_xml, "SspId"),
566
+ _taxonomy_allow_multiple(definition.schema_xml or ""),
567
+ )
568
+ except Exception as exc: # noqa: BLE001 - best effort, surfaced as a warning
569
+ warning = f"taxonomy column '{name}' could not be recreated: {exc}"
570
+ logger.debug(warning)
571
+ warnings.append(warning)
572
+ return None
573
+
574
+
575
+ def _is_provisionable_content_type(definition: ContentTypeDefinition) -> bool:
576
+ """Skip base content types — they already exist on any target list."""
577
+ return len(definition.string_id or "") >= _MIN_CUSTOM_CONTENT_TYPE_ID_LENGTH
578
+
579
+
580
+ def _schema_for_copy(field: Field) -> Optional[str]:
581
+ """``SchemaXml`` stripped of origin attributes (``SourceID``/``Version``)."""
582
+ return field.schema_xml_for_copy()
583
+
584
+
585
+ def _field_kind_int(field: Field) -> Optional[int]:
586
+ # ``Field.field_type_kind`` is typed ``FieldType`` but a raw read leaves the
587
+ # JSON integer in the property bag, so accept either shape.
588
+ kind = field.field_type_kind
589
+ if kind is None:
590
+ return None
591
+ value = getattr(kind, "value", kind)
592
+ return value if isinstance(value, int) else None
593
+
594
+
595
+ def _field_definition(field: Field) -> FieldDefinition:
596
+ return FieldDefinition(
597
+ internal_name=field.internal_name or "",
598
+ title=field.title,
599
+ field_type_kind=_field_kind_int(field),
600
+ type_as_string=field.type_as_string,
601
+ schema_xml=_schema_for_copy(field),
602
+ required=field.required,
603
+ hidden=field.hidden,
604
+ read_only=field.read_only_field,
605
+ from_base_type=field.from_base_type,
606
+ can_be_deleted=field.can_be_deleted,
607
+ group=field.group,
608
+ description=field.description,
609
+ custom_formatter=field.properties.get("CustomFormatter"),
610
+ client_side_component_id=_component_id(field),
611
+ )
612
+
613
+
614
+ #: An "unset" ``ClientSideComponentId`` is the all-zero GUID, not an absent property.
615
+ _EMPTY_GUID = "00000000-0000-0000-0000-000000000000"
616
+
617
+
618
+ def _component_id(field: Field) -> Optional[str]:
619
+ """The SPFx field customizer registered on a column, if any."""
620
+ value = field.properties.get("ClientSideComponentId")
621
+ if not value or normalize_guid(value) == _EMPTY_GUID:
622
+ return None
623
+ return str(value)
624
+
625
+
626
+ def _content_type_definition(
627
+ content_type: ContentType, links: Iterable[FieldLink], replayable: Optional[set] = None
628
+ ) -> ContentTypeDefinition:
629
+ """A content type snapshot, with the links this migration can replay.
630
+
631
+ ``replayable`` is the set of internal names the snapshot can recreate on another
632
+ list. A link naming anything else (a built-in column, a server-provisioned
633
+ framework column such as ``MediaServiceMetadata``) is dropped: the column is not
634
+ provisioned either, so keeping the link would make every provisioned library
635
+ report a field link it was never going to have.
636
+ """
637
+ names = [name for name in (link.field_internal_name for link in links) if name]
638
+ if replayable is not None:
639
+ dropped = [name for name in names if name not in replayable]
640
+ if dropped:
641
+ logger.debug(
642
+ "content type %r: %d field link(s) name a column the migration cannot recreate: %s",
643
+ content_type.name,
644
+ len(dropped),
645
+ ", ".join(sorted(dropped)),
646
+ )
647
+ names = [name for name in names if name in replayable]
648
+ return ContentTypeDefinition(
649
+ string_id=content_type.string_id or "",
650
+ name=content_type.name,
651
+ group=content_type.group,
652
+ description=content_type.description,
653
+ hidden=content_type.hidden,
654
+ sealed=content_type.sealed,
655
+ read_only=content_type.read_only,
656
+ field_internal_names=names,
657
+ )
658
+
659
+
660
+ def _view_definition(view: View, field_names: Iterable[str]) -> ViewDefinition:
661
+ return ViewDefinition(
662
+ title=view.title or "",
663
+ view_type=view.view_type,
664
+ row_limit=view.row_limit,
665
+ paged=view.paged,
666
+ hidden=view.hidden,
667
+ default_view=view.default_view,
668
+ personal_view=view.personal_view,
669
+ view_query=view.view_query,
670
+ field_internal_names=[name for name in field_names if name],
671
+ custom_formatter=view.properties.get("CustomFormatter"),
672
+ )
673
+
674
+
675
+ def provision_list_structure(
676
+ sp_list: SPList,
677
+ structure: ListStructure,
678
+ *,
679
+ on_conflict: str = "skip",
680
+ content_type_map: Dict[str, str] | None = None,
681
+ list_id_map: Dict[str, str] | None = None,
682
+ ) -> List[str]:
683
+ """Recreate a captured list structure on ``sp_list`` (idempotent).
684
+
685
+ Ensures the captured user columns exist (creating missing ones from their
686
+ ``SchemaXml``), the custom content types exist (with their field links), and
687
+ the views exist. Existing structure is left intact with ``on_conflict="skip"``
688
+ (default); ``"update"`` reconciles content type metadata and view settings
689
+ where supported.
690
+
691
+ The captured container settings (versioning, content approval, attachments,
692
+ item-level read/write policy, list validation, and on libraries minor versions
693
+ and required check-out) are applied as well, one ``MERGE`` per setting so a
694
+ single rejected setting is reported instead of failing the list. Only settings
695
+ that differ from the target's own values are written, so a list created from the
696
+ same template (and a re-run) writes nothing. They are applied regardless of
697
+ ``on_conflict`` because the snapshot *is* the wanted policy and the item copy
698
+ depends on it: an item's approval status is only stored on a list that has
699
+ content approval enabled. Settings the target list type does not support come
700
+ back as warnings.
701
+
702
+ Unlike the deferred ``ensure_*`` primitives this executes the requests, so it
703
+ can be called right after creating/resolving the target list and before
704
+ content is copied. Run it again and it is a no-op.
705
+
706
+ Field links are reconciled best-effort: SharePoint Online rejects adding a
707
+ field link for a column that is not already inherited or auto-linked to the
708
+ content type (``Column '<name>' does not exist``). Such columns cannot be
709
+ attached over REST, so they are skipped and returned as warnings rather than
710
+ failing the whole provisioning.
711
+
712
+ Args:
713
+ sp_list: The target SharePoint list (its container must already exist).
714
+ structure: A snapshot from :func:`capture_list_structure`.
715
+ on_conflict: ``"skip"`` (default) or ``"update"``.
716
+ content_type_map: An optional mapping to populate with source→target content
717
+ type identifiers (only where they differ). SharePoint assigns recreated
718
+ list content types a fresh ``StringId``, so this lets a caller rewrite an
719
+ item's ``ContentTypeId`` to the target one (see
720
+ :class:`~office365.migration.map.ContentTypeMap`).
721
+ list_id_map: An optional mapping of **normalized** source list ids to target
722
+ list ids, used to repoint a lookup column's ``SchemaXml`` at the target
723
+ list (see :func:`rewrite_lookup_schema`). When a lookup references a list
724
+ absent from the map, the column is skipped and reported as a warning
725
+ rather than created broken.
726
+
727
+ Returns:
728
+ Human-readable warnings for anything the server would not let us apply
729
+ (unlinked content type columns, or lookup columns into a list that is not
730
+ part of the migration); empty when fully applied.
731
+ """
732
+ if on_conflict not in ("skip", "update"):
733
+ raise ValueError(f"on_conflict must be 'skip' or 'update', got {on_conflict!r}")
734
+
735
+ warnings: List[str] = []
736
+
737
+ _apply_list_settings(sp_list, structure, warnings, validation=False)
738
+
739
+ if structure.content_types_enabled:
740
+ _ensure_content_types_enabled(sp_list)
741
+
742
+ taxonomy_definitions: List[FieldDefinition] = []
743
+ for definition in structure.fields:
744
+ if not definition.schema_xml:
745
+ continue
746
+ if _is_taxonomy_definition(definition):
747
+ taxonomy_definitions.append(definition)
748
+ continue
749
+ if _is_external_data_definition(definition):
750
+ # An external-data column is a *reference* into a BDC model: replaying
751
+ # its schema would create a column that resolves nothing on the target,
752
+ # so it is reported instead (the list itself is reported as a handoff).
753
+ warning = (
754
+ f"column '{definition.internal_name}' was not recreated: it is bound to an "
755
+ "external (BCS) content type, which a client-side migration cannot provision"
756
+ )
757
+ logger.debug(warning)
758
+ warnings.append(warning)
759
+ continue
760
+ schema_xml, unresolved = rewrite_lookup_schema(definition.schema_xml, list_id_map)
761
+ if unresolved is not None:
762
+ warning = (
763
+ f"column '{definition.internal_name}' was not recreated: it is a lookup into "
764
+ f"list {{{unresolved}}}, which is not part of this migration"
765
+ )
766
+ logger.debug(warning)
767
+ warnings.append(warning)
768
+ continue
769
+ assert schema_xml is not None # a skipped lookup always names its unresolved list id
770
+ sp_list.fields.ensure_xml(schema_xml, definition.internal_name)
771
+
772
+ if taxonomy_definitions:
773
+ # Executes the queued scalar column creates, then loads the resulting fields
774
+ # so an already-present taxonomy column is not recreated (which would add a
775
+ # duplicate hidden note field and a second column with the same name).
776
+ existing = {field.internal_name for field in sp_list.fields.get().execute_query() if field.internal_name}
777
+ for definition in taxonomy_definitions:
778
+ if definition.internal_name in existing:
779
+ continue
780
+ _ensure_taxonomy_field(sp_list, definition, warnings)
781
+ sp_list.execute_query()
782
+
783
+ provisionable = [
784
+ (item.name, item) for item in structure.content_types if item.name and _is_provisionable_content_type(item)
785
+ ]
786
+ for name, definition in provisionable:
787
+ sp_list.content_types.ensure(
788
+ name,
789
+ definition.description,
790
+ definition.group,
791
+ content_type_id=definition.string_id,
792
+ on_conflict=on_conflict,
793
+ )
794
+
795
+ # Only captured user columns can be (re)linked. A content type's field links
796
+ # also name every built-in and SharePoint-owned column (``Title``,
797
+ # ``FileLeafRef``, framework columns, ...) which this module deliberately does
798
+ # not recreate — attempting to link one is a guaranteed server error, so they
799
+ # are left to the target list's own defaults.
800
+ available = {definition.internal_name for definition in structure.fields if definition.internal_name}
801
+
802
+ if provisionable or content_type_map is not None:
803
+ # Executes the queued field/content-type creates, then loads the (now
804
+ # created) content types so their field links can be reconciled and item
805
+ # content-type ids can be rewritten.
806
+ loaded = {ct.name: ct for ct in sp_list.content_types.get().execute_query() if ct.name}
807
+ reconcile = [
808
+ (loaded[name], definition.field_internal_names)
809
+ for name, definition in provisionable
810
+ if name in loaded and definition.field_internal_names
811
+ ]
812
+ warnings.extend(_reconcile_field_links(reconcile, available))
813
+ if content_type_map is not None:
814
+ content_type_map.update(ContentTypeMap.build(structure.content_types, loaded.values()).entries)
815
+
816
+ for view in structure.views:
817
+ sp_list.views.ensure_view(
818
+ view.title,
819
+ fields=list(view.field_internal_names) or None,
820
+ row_limit=view.row_limit,
821
+ view_type=view.view_type,
822
+ paged=view.paged,
823
+ personal_view=view.personal_view,
824
+ on_conflict=on_conflict,
825
+ )
826
+
827
+ _apply_list_settings(sp_list, structure, warnings, validation=True)
828
+
829
+ sp_list.execute_query()
830
+ _apply_formatting(sp_list, structure, warnings)
831
+ return warnings
832
+
833
+
834
+ def _apply_formatting(sp_list: SPList, structure: ListStructure, warnings: List[str]) -> None:
835
+ """Replay the column and view formatting JSON the target does not carry.
836
+
837
+ Column formatting lives on the column and row formatting on the view, and both
838
+ are a plain ``MERGE`` on the entity — so both run once the columns and views
839
+ exist. A column the server keeps sealed swallows the write without an error, so
840
+ the pass reads both sides back and reports what did not take rather than
841
+ claiming success.
842
+
843
+ An SPFx field customizer is a pointer into a deployed solution: it cannot work
844
+ on a target that does not have that solution, so it is reported, never copied.
845
+ """
846
+ for definition in structure.fields:
847
+ if definition.client_side_component_id:
848
+ warnings.append(
849
+ f"column '{definition.internal_name}' carries an SPFx field customizer "
850
+ f"({definition.client_side_component_id}), which is not carried: the solution has to be "
851
+ "deployed on the target"
852
+ )
853
+ column_formatters = {
854
+ definition.internal_name: definition.custom_formatter
855
+ for definition in structure.fields
856
+ if definition.custom_formatter and definition.internal_name
857
+ }
858
+ view_formatters = {
859
+ view.title: view.custom_formatter for view in structure.views if view.custom_formatter and view.title
860
+ }
861
+ if not column_formatters and not view_formatters:
862
+ return
863
+
864
+ written = False
865
+ for name, formatter in column_formatters.items():
866
+ field = sp_list.fields.get_by_internal_name_or_title(name).get().execute_query()
867
+ if field.properties.get("CustomFormatter") == formatter:
868
+ continue
869
+ field.set_property("CustomFormatter", formatter)
870
+ field.update()
871
+ written = True
872
+ for title, formatter in view_formatters.items():
873
+ view = sp_list.views.get_by_title(title).get().execute_query()
874
+ if view.properties.get("CustomFormatter") == formatter:
875
+ continue
876
+ view.set_property("CustomFormatter", formatter)
877
+ view.update()
878
+ written = True
879
+ if not written:
880
+ return
881
+ sp_list.execute_query()
882
+
883
+ # A sealed column accepts the MERGE and drops the value: read back, then report.
884
+ current_fields = {
885
+ field.internal_name: field.properties.get("CustomFormatter")
886
+ for field in sp_list.fields.select(["InternalName", "CustomFormatter"]).get().execute_query()
887
+ if field.internal_name
888
+ }
889
+ for name, formatter in column_formatters.items():
890
+ if name in current_fields and current_fields[name] != formatter:
891
+ warnings.append(f"column '{name}' kept its own formatting: the target would not accept the formatter")
892
+ current_views = {view.title: view.properties.get("CustomFormatter") for view in sp_list.views.get().execute_query()}
893
+ for title, formatter in view_formatters.items():
894
+ if title in current_views and current_views[title] != formatter:
895
+ warnings.append(f"view '{title}' kept its own formatting: the target would not accept the formatter")
896
+
897
+
898
+ def _apply_list_settings(sp_list: SPList, structure: ListStructure, warnings: List[str], *, validation: bool) -> None:
899
+ """Apply the captured container settings the target does not already carry.
900
+
901
+ Only *differing* settings are written (one GET reads the target's current
902
+ values first): a target created from the list template already carries most of
903
+ them, and blindly ``MERGE``-ing an equal value is both a needless request and a
904
+ false alarm — SharePoint rejects some of those writes for policy reasons (a
905
+ version limit with versioning off, a system library that grants no write) even
906
+ though the target is already correct.
907
+
908
+ The remaining settings are then written together, in one ``$batch``, instead of
909
+ one round-trip each. A change set is atomic, so a rejection does not produce a
910
+ half-applied list with a misleading ``200`` per survivor: the batch either
911
+ applies in full or does not apply at all, and the caller falls back to writing
912
+ each setting on its own — the same per-setting isolation as before, with the
913
+ same warning text — so a policy the target list type cannot express (minor
914
+ versions on a plain list, for instance) stays a fidelity note, not an error.
915
+ """
916
+ title = structure.title or sp_list.title
917
+ if not title:
918
+ return
919
+ wanted = {
920
+ name: value
921
+ for name, value in structure.settings.items()
922
+ if (name in _VALIDATION_SETTING_NAMES) is validation
923
+ and not (name in _LIBRARY_SETTING_NAMES and structure.base_type != 1)
924
+ and _setting_is_expressible(name, structure.settings)
925
+ }
926
+ if not wanted:
927
+ return
928
+ current = _current_settings(sp_list, list(wanted))
929
+ differing = {
930
+ name: value
931
+ for name, value in wanted.items()
932
+ if name not in current or comparable_setting(name, current[name]) != comparable_setting(name, value)
933
+ }
934
+ if not differing:
935
+ return
936
+ if len(differing) > 1 and _write_settings_together(sp_list, title, differing):
937
+ return
938
+ for name, value in differing.items():
939
+ _write_setting(sp_list, title, name, value, warnings)
940
+
941
+
942
+ def _write_settings_together(sp_list: SPList, title: str, settings: Dict[str, Any]) -> bool:
943
+ """Try to apply every setting in one ``$batch``; report whether it took.
944
+
945
+ Returns ``False`` when the server refused something, in which case nothing was
946
+ applied: a change set is atomic, so its sub-responses saying ``200`` is not
947
+ evidence that the write survived.
948
+ """
949
+ with sp_list.context.collect_batch_failures() as failures:
950
+ for name, value in settings.items():
951
+ handle = sp_list.context.web.lists.get_by_title(title)
952
+ handle.set_property(name, value)
953
+ handle.update()
954
+ try:
955
+ sp_list.context.execute_batch()
956
+ except Exception as exc: # noqa: BLE001 - the whole batch failed, nothing landed
957
+ logger.debug("list settings were not applied in one batch: %s", _rejection_reason(exc))
958
+ return False
959
+ return not failures
960
+
961
+
962
+ def _write_setting(sp_list: SPList, title: str, name: str, value: Any, warnings: List[str]) -> None:
963
+ """Write one setting through its own list handle, so a rejection stays its own."""
964
+ handle = sp_list.context.web.lists.get_by_title(title)
965
+ handle.set_property(name, value)
966
+ try:
967
+ handle.update().execute_query()
968
+ except Exception as exc: # noqa: BLE001 - any rejection is a fidelity note
969
+ warning = f"list setting '{name}' was not applied: {_rejection_reason(exc)}"
970
+ logger.debug(warning)
971
+ warnings.append(warning)
972
+
973
+
974
+ def _setting_is_expressible(name: str, settings: Dict[str, Any]) -> bool:
975
+ """Whether a captured setting can be applied given the snapshot's other values."""
976
+ dependency = _SETTING_DEPENDS_ON.get(name)
977
+ return dependency is None or bool(settings.get(dependency))
978
+
979
+
980
+ def _current_settings(sp_list: SPList, names: List[str]) -> Dict[str, Any]:
981
+ """The target list's current values for the settings about to be applied."""
982
+ sp_list.ensure_properties(names)
983
+ sp_list.get().execute_query()
984
+ return {name: sp_list.properties.get(name) for name in names if sp_list.properties.get(name) is not None}
985
+
986
+
987
+ def _rejection_reason(exc: Exception) -> str:
988
+ """The server's own wording for a rejected write, trimmed for a warning."""
989
+ message = getattr(exc, "message", None) or str(exc)
990
+ return message.strip()[:200]
991
+
992
+
993
+ def _ensure_content_types_enabled(sp_list: SPList) -> None:
994
+ """Turn on content types on the list, only when it is currently off."""
995
+
996
+ def _enable(_: Any) -> None:
997
+ if sp_list.content_types_enabled is not True:
998
+ sp_list.set_property("ContentTypesEnabled", True)
999
+ sp_list.update()
1000
+
1001
+ sp_list.ensure_property("ContentTypesEnabled").after_execute(_enable)
1002
+
1003
+
1004
+ def _content_type_label(content_type: ContentType) -> str:
1005
+ """How a content type is named in warnings."""
1006
+ return content_type.name or content_type.string_id or "<content type>"
1007
+
1008
+
1009
+ def _read_field_links(context: Any, content_types: "List[ContentType]") -> "Dict[int, Optional[List[str]]]":
1010
+ """Read the links of several content types in one round-trip.
1011
+
1012
+ Returns ``{id(content type): [linked column, ...]}``, or ``None`` for a content
1013
+ type whose links could not be read. Fresh collections are used so a re-read
1014
+ cannot append to an already loaded one.
1015
+ """
1016
+ collections = {
1017
+ id(content_type): FieldLinkCollection(context, ResourcePath("FieldLinks", content_type.resource_path))
1018
+ for content_type in content_types
1019
+ }
1020
+ with context.collect_batch_failures() as failures:
1021
+ for links in collections.values():
1022
+ links.get()
1023
+ context.execute_batch()
1024
+ unreadable = {id(query.return_type) for query, _ in failures if query.return_type is not None}
1025
+ result: Dict[int, Optional[List[str]]] = {}
1026
+ for key, links in collections.items():
1027
+ linked = [link.field_internal_name for link in links]
1028
+ result[key] = None if key in unreadable else [name for name in linked if name is not None]
1029
+ return result
1030
+
1031
+
1032
+ def _reconcile_field_links(targets: "List[Tuple[ContentType, List[str]]]", available: set[str]) -> List[str]:
1033
+ """Link the captured columns to each content type in as few round-trips as possible.
1034
+
1035
+ Only columns in ``available`` (the captured user columns) or already linked
1036
+ are attempted; every other captured link names a built-in/SharePoint-owned
1037
+ column the target list provides itself, so it is skipped rather than sent to
1038
+ the server as a guaranteed failure.
1039
+
1040
+ The content types are reconciled together: their links are read in one
1041
+ ``$batch`` and the missing ones are added in a second, so a content type with
1042
+ seven links costs a share of two requests instead of seven round-trips.
1043
+
1044
+ The links are then read back, and that re-read is what the warnings report.
1045
+ It is not redundant: the adds travel in a change set, which the server applies
1046
+ atomically, so one refused column rolls back its siblings while their
1047
+ sub-responses still say ``200``. The order is restored per content type only
1048
+ when the server did not keep the captured one — a ``Reorder`` rejection is
1049
+ therefore attributable to the content type that caused it.
1050
+
1051
+ Returns a list of warnings for content types whose links could not be read and
1052
+ for columns that are not linked afterwards. Adding a link for a ready column
1053
+ is a no-op; adding one for a column SharePoint does not consider part of the
1054
+ content type fails (``Column '<name>' does not exist``), which is a REST
1055
+ limitation rather than a client error, so it is reported instead of raised.
1056
+ """
1057
+ warnings: List[str] = []
1058
+ if not targets:
1059
+ return warnings
1060
+ context = targets[0][0].context
1061
+ content_types = [content_type for content_type, _ in targets]
1062
+
1063
+ before = _read_field_links(context, content_types)
1064
+ plan: "List[Tuple[ContentType, str, List[str], List[str]]]" = [] # linked, to link
1065
+ for content_type, internal_names in targets:
1066
+ label = _content_type_label(content_type)
1067
+ existing = before.get(id(content_type))
1068
+ if existing is None:
1069
+ warnings.append(f"content type '{label}': field links could not be read")
1070
+ continue
1071
+ skipped = [name for name in internal_names if name not in existing and name not in available]
1072
+ if skipped:
1073
+ logger.debug(
1074
+ "content type %r: left %d built-in column(s) to the target list: %s",
1075
+ label,
1076
+ len(skipped),
1077
+ ", ".join(sorted(skipped)),
1078
+ )
1079
+ linkable = [name for name in internal_names if name in existing or name in available]
1080
+ plan.append((content_type, label, existing, linkable))
1081
+
1082
+ if not plan:
1083
+ return warnings
1084
+
1085
+ # One round-trip for every missing link. A rejected sub-request is recorded
1086
+ # rather than raised (see ``collect_batch_failures``), and the re-read below
1087
+ # decides the outcome; the recorded failures are kept for the log.
1088
+ queued: Dict[int, "Tuple[str, str]"] = {}
1089
+ with context.collect_batch_failures() as add_failures:
1090
+ for content_type, label, existing, linkable in plan:
1091
+ for internal_name in linkable:
1092
+ if internal_name not in existing:
1093
+ queued[id(content_type.field_links.add(internal_name))] = (label, internal_name)
1094
+ context.execute_batch()
1095
+ # The server's reason is the useful half of the warning; keep it against the
1096
+ # column it belongs to, and let the re-read decide whether it still applies.
1097
+ refused = {queued[id(query.return_type)]: exc for query, exc in add_failures if id(query.return_type) in queued}
1098
+
1099
+ # Nothing was queued ⇒ nothing can have changed; skip the read-back.
1100
+ after = _read_field_links(context, [content_type for content_type, *_ in plan]) if queued else before
1101
+ for content_type, label, _existing, linkable in plan:
1102
+ linked = after.get(id(content_type))
1103
+ if linked is None:
1104
+ warnings.append(f"content type '{label}': field links could not be read back")
1105
+ continue
1106
+ missing = [name for name in linkable if name not in linked]
1107
+ for internal_name in missing:
1108
+ reason = refused.get((label, internal_name))
1109
+ suffix = f": {_message(reason)}" if reason is not None else ""
1110
+ warning = f"content type '{label}': column '{internal_name}' was not linked{suffix}"
1111
+ logger.debug(warning)
1112
+ warnings.append(warning)
1113
+ if missing or [name for name in linked if name in linkable] == linkable:
1114
+ continue # cannot order a column the server refused, or already in order
1115
+ try:
1116
+ content_type.field_links.reorder(linkable).execute_query()
1117
+ except ClientRequestException as exc:
1118
+ warning = f"content type '{label}': field link order was not applied: {_message(exc)}"
1119
+ logger.debug(warning)
1120
+ warnings.append(warning)
1121
+ return warnings
1122
+
1123
+
1124
+ def _message(exc: ClientRequestException) -> str:
1125
+ """Best-effort short description of a request failure."""
1126
+ return getattr(exc, "message", None) or str(exc)
1127
+
1128
+
1129
+ # --- web scope ---------------------------------------------------------------
1130
+ #
1131
+ # A site column and a site content type live at *web* scope. REST can create both
1132
+ # (`web.fields` / `web.content_types`), but it cannot *link* a fresh site column to
1133
+ # a content type (`FieldLinks` answers `Column '<name>' does not exist`), and the
1134
+ # server assigns content types their own identifiers. Provisioning therefore
1135
+ # replays a source list's structure onto the target *list*, which is faithful for
1136
+ # the list and lossy for the web. These helpers name the loss.
1137
+
1138
+ #: Web field properties needed to tell a user-facing column from a system one.
1139
+ _WEB_FIELD_SELECT = ["InternalName", "Group", "Hidden", "FromBaseType", "CanBeDeleted", "Sealed"]
1140
+
1141
+ #: Web content type properties needed to compare presence (ids are not preserved).
1142
+ _WEB_CONTENT_TYPE_SELECT = ["Name", "Hidden"]
1143
+
1144
+ #: Names listed inline in a note before it is truncated.
1145
+ _MAX_WEB_SCOPE_NAMES = 5
1146
+
1147
+
1148
+ @dataclass
1149
+ class WebScopeStructure:
1150
+ """Web-scope definitions the target web lacks after a per-list replay.
1151
+
1152
+ Attributes:
1153
+ columns: Internal names of source web columns with no counterpart on the target web.
1154
+ content_types: Names of source web content types absent from the target web.
1155
+ """
1156
+
1157
+ columns: List[str] = dc_field(default_factory=list)
1158
+ content_types: List[str] = dc_field(default_factory=list)
1159
+
1160
+ @property
1161
+ def is_empty(self) -> bool:
1162
+ """Whether the target web already carries every web-scope definition."""
1163
+ return not self.columns and not self.content_types
1164
+
1165
+ def to_dict(self) -> Dict[str, Any]:
1166
+ """A JSON-serializable form."""
1167
+ return {"columns": list(self.columns), "content_types": list(self.content_types)}
1168
+
1169
+
1170
+ def _is_web_scope_column(column: Field) -> bool:
1171
+ """Whether a web field is a user-facing column rather than platform plumbing."""
1172
+ name = column.internal_name
1173
+ if not name or name in SYSTEM_FIELD_NAMES:
1174
+ return False
1175
+ if column.hidden is True or column.from_base_type is True or column.sealed is True:
1176
+ return False
1177
+ return column.can_be_deleted is not False
1178
+
1179
+
1180
+ def _web_scope_columns(web: Web) -> List[str]:
1181
+ """The user-facing column names registered on ``web`` (one projected GET)."""
1182
+ loaded = web.fields.select(_WEB_FIELD_SELECT).get().execute_query()
1183
+ names: Set[str] = set()
1184
+ for column in loaded:
1185
+ name = column.internal_name
1186
+ if name and _is_web_scope_column(column):
1187
+ names.add(name)
1188
+ return sorted(names)
1189
+
1190
+
1191
+ def _web_scope_content_types(web: Web) -> List[str]:
1192
+ """The content type names registered on ``web`` (one projected GET)."""
1193
+ loaded = web.content_types.select(_WEB_CONTENT_TYPE_SELECT).get().execute_query()
1194
+ return sorted(
1195
+ {content_type.name for content_type in loaded if content_type.name and content_type.hidden is not True}
1196
+ )
1197
+
1198
+
1199
+ def compare_web_scope_structure(source_web: Web, target_web: Web) -> WebScopeStructure:
1200
+ """Web-scope columns/content types of ``source_web`` that ``target_web`` lacks.
1201
+
1202
+ Two projected GETs per web, read-only. The comparison is *by presence*:
1203
+ columns by internal name, content types by name-casefolded (a content type's
1204
+ ``string_id`` is assigned by the server and is not preserved by a copy, so it
1205
+ cannot be the key).
1206
+
1207
+ Args:
1208
+ source_web: The web the migration reads structure from.
1209
+ target_web: The web the migration replays it onto.
1210
+ """
1211
+ source_columns = _web_scope_columns(source_web)
1212
+ target_columns = set(_web_scope_columns(target_web))
1213
+ source_content_types = _web_scope_content_types(source_web)
1214
+ target_content_types = {name.casefold() for name in _web_scope_content_types(target_web)}
1215
+ return WebScopeStructure(
1216
+ columns=[name for name in source_columns if name not in target_columns],
1217
+ content_types=[name for name in source_content_types if name.casefold() not in target_content_types],
1218
+ )
1219
+
1220
+
1221
+ def _sample_names(names: List[str]) -> str:
1222
+ """Name a few entries inline, counting the rest."""
1223
+ shown = ", ".join(names[:_MAX_WEB_SCOPE_NAMES])
1224
+ if len(names) <= _MAX_WEB_SCOPE_NAMES:
1225
+ return shown
1226
+ return f"{shown} (+{len(names) - _MAX_WEB_SCOPE_NAMES} more)"
1227
+
1228
+
1229
+ def web_scope_note(missing: WebScopeStructure, source_url: Optional[str] = None) -> Optional[str]:
1230
+ """A warning line for the web-scope gap, or ``None`` when there is none.
1231
+
1232
+ Args:
1233
+ missing: The result of :func:`compare_web_scope_structure`.
1234
+ source_url: The *source* web's URL. The note names the affected target by
1235
+ its source, because the target web handle is often not URL-loaded and
1236
+ one note is emitted per web pair anyway.
1237
+ """
1238
+ if missing.is_empty:
1239
+ return None
1240
+ parts: List[str] = []
1241
+ if missing.columns:
1242
+ parts.append(f"{len(missing.columns)} column(s): {_sample_names(missing.columns)}")
1243
+ if missing.content_types:
1244
+ parts.append(f"{len(missing.content_types)} content type(s): {_sample_names(missing.content_types)}")
1245
+ return (
1246
+ f"web-scope structure is incomplete: the target of {source_url or 'this web'} lacks "
1247
+ + "; ".join(parts)
1248
+ + " — structure replay is per list, so a list that uses one still gets a list-scoped copy, "
1249
+ "but the web-level definition (and its inheritance by the web's other lists) is missing; "
1250
+ "web-scope columns are replayed when structure provisioning is on, and a web-scope content "
1251
+ "type cannot be attached over REST, so create that out of band (CSOM/PnP)"
1252
+ )
1253
+
1254
+
1255
+ @dataclass
1256
+ class WebScopeProvisionReport:
1257
+ """What web-scope column provisioning did, and what the server would not do.
1258
+
1259
+ Attributes:
1260
+ created: Internal names of the columns now registered on the target web.
1261
+ present: Internal names the target web already carried.
1262
+ skipped: Notes for the source columns deliberately not created — a column
1263
+ bound to a BCS model, a lookup into a list the migration does not carry,
1264
+ or a column whose schema could not be read.
1265
+ failed: Internal name -> why the server would not create it.
1266
+ """
1267
+
1268
+ created: List[str] = dc_field(default_factory=list)
1269
+ present: List[str] = dc_field(default_factory=list)
1270
+ skipped: List[str] = dc_field(default_factory=list)
1271
+ failed: Dict[str, str] = dc_field(default_factory=dict)
1272
+
1273
+ @property
1274
+ def is_empty(self) -> bool:
1275
+ """Whether every source column was already present (nothing to do, nothing to say)."""
1276
+ return not self.created and not self.skipped and not self.failed
1277
+
1278
+ def warnings(self) -> List[str]:
1279
+ """The skipped and failed columns as warning lines."""
1280
+ notes = list(self.skipped)
1281
+ notes.extend(f"web column '{name}' was not created: {reason}" for name, reason in sorted(self.failed.items()))
1282
+ return notes
1283
+
1284
+ def summary(self) -> str:
1285
+ """One line naming what was created, or ``""`` when nothing was."""
1286
+ if not self.created and not self.failed:
1287
+ return ""
1288
+ parts = [f"{len(self.created)} created"]
1289
+ if self.present:
1290
+ parts.append(f"{len(self.present)} already present")
1291
+ if self.skipped:
1292
+ parts.append(f"{len(self.skipped)} skipped")
1293
+ if self.failed:
1294
+ parts.append(f"{len(self.failed)} failed")
1295
+ return "web-scope columns: " + ", ".join(parts)
1296
+
1297
+ def to_dict(self) -> Dict[str, Any]:
1298
+ """A JSON-serializable form."""
1299
+ return {
1300
+ "created": list(self.created),
1301
+ "present": list(self.present),
1302
+ "skipped": list(self.skipped),
1303
+ "failed": dict(self.failed),
1304
+ }
1305
+
1306
+
1307
+ def _web_field_definition(web: Web, name: str) -> Optional[FieldDefinition]:
1308
+ """One web column's full definition (``SchemaXml`` included), or ``None``."""
1309
+ try:
1310
+ field = web.fields.get_by_internal_name_or_title(name).get().execute_query()
1311
+ except Exception as e: # noqa: BLE001 — an unreadable column is reported by the caller
1312
+ logger.debug("read web column '%s' failed: %s", name, e)
1313
+ return None
1314
+ return _field_definition(field)
1315
+
1316
+
1317
+ def _web_column_exists(web: Web, name: str) -> bool:
1318
+ """Whether ``name`` is a field of ``web`` now (the verification after a create)."""
1319
+ try:
1320
+ web.fields.get_by_internal_name_or_title(name).get().execute_query()
1321
+ except Exception: # noqa: BLE001 — absent or unreadable means "not there"
1322
+ return False
1323
+ return True
1324
+
1325
+
1326
+ def _create_web_column(web: Web, schema_xml: str, name: str, report: WebScopeProvisionReport) -> None:
1327
+ """Create one column from its schema and verify it by presence.
1328
+
1329
+ SharePoint Online registers the column and *then* raises
1330
+ ``SPFieldValidationException`` ("The object has been updated by another user
1331
+ since it was last fetched"), so the exception is not evidence of failure: what
1332
+ the web carries afterwards is.
1333
+ """
1334
+ error: Optional[BaseException] = None
1335
+ try:
1336
+ web.fields.create_field_as_xml(schema_xml).execute_query()
1337
+ except Exception as e: # noqa: BLE001 — verified by presence below instead
1338
+ error = e
1339
+ logger.debug("create web column '%s' raised: %s", name, e)
1340
+ if _web_column_exists(web, name):
1341
+ report.created.append(name)
1342
+ return
1343
+ report.failed[name] = str(error or "the column is not on the web after the create")
1344
+
1345
+
1346
+ def _provision_web_column(
1347
+ source_web: Web,
1348
+ target_web: Web,
1349
+ name: str,
1350
+ list_id_map: Dict[str, str] | None,
1351
+ report: WebScopeProvisionReport,
1352
+ ) -> None:
1353
+ """Create one missing web column, recording in ``report`` why it is not there."""
1354
+ definition = _web_field_definition(source_web, name)
1355
+ if definition is None or not definition.schema_xml:
1356
+ report.skipped.append(f"web column '{name}' was not recreated: its schema could not be read")
1357
+ return
1358
+ schema_xml: str = definition.schema_xml
1359
+ if _is_external_data_definition(definition):
1360
+ report.skipped.append(
1361
+ f"web column '{name}' was not recreated: it is bound to an external (BCS) content type, "
1362
+ "which a client-side migration cannot provision"
1363
+ )
1364
+ return
1365
+ if _is_taxonomy_definition(definition):
1366
+ notes: List[str] = []
1367
+ created = _ensure_taxonomy_field(target_web, definition, notes)
1368
+ if created is not None:
1369
+ try:
1370
+ created.execute_query()
1371
+ except Exception as e: # noqa: BLE001 — verified by presence below instead
1372
+ logger.debug("create web taxonomy column '%s' raised: %s", name, e)
1373
+ if _web_column_exists(target_web, name):
1374
+ report.created.append(name)
1375
+ else:
1376
+ report.failed[name] = notes[-1] if notes else "the taxonomy column is not on the web after the create"
1377
+ return
1378
+ rewritten, unresolved = rewrite_lookup_schema(schema_xml, list_id_map)
1379
+ if unresolved is not None:
1380
+ report.skipped.append(
1381
+ f"web column '{name}' was not recreated: it is a lookup into list {{{unresolved}}}, "
1382
+ "which is not part of this migration"
1383
+ )
1384
+ return
1385
+ _create_web_column(target_web, rewritten or schema_xml, name, report)
1386
+
1387
+
1388
+ def provision_web_scope_columns(
1389
+ source_web: Web,
1390
+ target_web: Web,
1391
+ *,
1392
+ list_id_map: Dict[str, str] | None = None,
1393
+ ) -> WebScopeProvisionReport:
1394
+ """Register the source web's site columns on ``target_web`` (idempotent).
1395
+
1396
+ Structure replay is per list, so a column a web defines at *site* scope was
1397
+ recreated as a list column on every target list that happened to have it and
1398
+ nowhere else: the web-level definition, and its inheritance by any other list,
1399
+ stayed missing. This closes that gap for the columns REST can create.
1400
+
1401
+ Run it **before** the per-list replay: a list's ``Fields`` collection includes
1402
+ the site columns it inherits, so a replayed list then uses the web column
1403
+ instead of minting a second, list-scoped copy of it.
1404
+
1405
+ A column is recreated from its source ``SchemaXml`` (origin attributes stripped
1406
+ by :meth:`~office365.sharepoint.fields.field.Field.schema_xml_for_copy`), a
1407
+ lookup is repointed at the target list, and a managed-metadata column goes
1408
+ through ``TaxonomyField.create`` so it binds the target web's own hidden
1409
+ taxonomy list instead of the source's. Content types are deliberately not
1410
+ attempted: SharePoint Online refuses a field link on a site-scope content type
1411
+ over REST, so a recreated one would be empty.
1412
+
1413
+ Args:
1414
+ source_web: The web the migration reads structure from.
1415
+ target_web: The web the columns are registered on.
1416
+ list_id_map: Normalized source list id -> target list id, for a lookup
1417
+ column (see :func:`rewrite_lookup_schema`).
1418
+ """
1419
+ report = WebScopeProvisionReport()
1420
+ target_names = set(_web_scope_columns(target_web))
1421
+ for name in _web_scope_columns(source_web):
1422
+ if name in target_names:
1423
+ report.present.append(name)
1424
+ continue
1425
+ _provision_web_column(source_web, target_web, name, list_id_map, report)
1426
+ return report