Office365-REST-Python-Client 3.0.0__py3-none-any.whl → 3.2.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 (1350) hide show
  1. office365/admin/baseline_parameter.py +15 -0
  2. office365/admin/baseline_resource.py +17 -0
  3. office365/admin/drift_status.py +13 -0
  4. office365/admin/exchange/exchange_message_trace_status.py +18 -0
  5. office365/admin/snapshot_job_status.py +16 -0
  6. office365/backuprestore/artifact_query.py +16 -0
  7. office365/backuprestore/notification_events_type.py +13 -0
  8. office365/backuprestore/restorejobtype.py +1 -0
  9. office365/backuprestore/restorepoints/search_response.py +21 -0
  10. office365/backuprestore/restorepoints/search_result.py +14 -0
  11. office365/backuprestore/restoresessions/artifact_count.py +17 -0
  12. office365/backuprestore/restoresessions/browsable_resource_type.py +15 -0
  13. office365/backuprestore/restoresessions/browse_query_order.py +15 -0
  14. office365/backuprestore/restoresessions/browse_query_response_item.py +20 -0
  15. office365/backuprestore/restoresessions/browse_query_response_item_type.py +16 -0
  16. office365/backuprestore/restoresessions/browse_session_status.py +14 -0
  17. office365/backuprestore/restoresessions/browser_shared_cookie_history.py +24 -0
  18. office365/backuprestore/service_status.py +28 -1
  19. office365/backuprestore/time_period.py +16 -0
  20. office365/booking/assigned_place_mode.py +15 -0
  21. office365/booking/business/import_building_map_setting.py +14 -0
  22. office365/booking/chedulingpolicy.py +4 -2
  23. office365/booking/customers/information.py +4 -2
  24. office365/booking/drop_in_place_mode.py +10 -0
  25. office365/booking/mailbox_details.py +15 -0
  26. office365/booking/place_mode.py +10 -0
  27. office365/booking/place_service_plan_info.py +14 -0
  28. office365/booking/reservable_place_mode.py +10 -0
  29. office365/booking/unavailable_place_mode.py +14 -0
  30. office365/communications/adhoc_call.py +31 -0
  31. office365/communications/broadcastmeetingaudience.py +9 -1
  32. office365/communications/callrecords/audio_codec.py +33 -0
  33. office365/communications/callrecords/call_record.py +18 -0
  34. office365/communications/callrecords/media_stream_direction.py +12 -0
  35. office365/communications/callrecords/modality.py +0 -1
  36. office365/communications/callrecords/network_connection_type.py +16 -0
  37. office365/communications/callrecords/network_transport_protocol.py +14 -0
  38. office365/communications/callrecords/product_family.py +16 -0
  39. office365/communications/callrecords/pstn_call_duration_source.py +12 -0
  40. office365/communications/callrecords/service_role.py +32 -0
  41. office365/communications/callrecords/user_feedback_rating.py +17 -0
  42. office365/communications/callrecords/video_codec.py +22 -0
  43. office365/communications/calls/call.py +3 -0
  44. office365/communications/cloud_communications.py +3 -6
  45. office365/communications/onlinemeetings/attendee_notification_info.py +15 -0
  46. office365/communications/onlinemeetings/base.py +152 -1
  47. office365/communications/onlinemeetings/broadcast_settings.py +4 -0
  48. office365/communications/onlinemeetings/lobby_bypass_settings.py +16 -0
  49. office365/communications/onlinemeetings/online_meeting.py +48 -23
  50. office365/communications/onlinemeetings/online_meeting_info.py +22 -0
  51. office365/communications/onlinemeetings/online_meeting_type.py +16 -0
  52. office365/communications/onlinemeetings/participants.py +5 -3
  53. office365/communications/onlinemeetings/watermark_protection_values.py +15 -0
  54. office365/communications/presences/presence.py +18 -5
  55. office365/communications/presences/work_location_source.py +15 -0
  56. office365/communications/presences/work_location_type.py +15 -0
  57. office365/communications/quotas.py +66 -0
  58. office365/communications/virtualevents/communications_identity_set.py +23 -0
  59. office365/communications/virtualevents/virtual_event.py +3 -0
  60. office365/copilot/ai_agent_info.py +14 -0
  61. office365/copilot/ai_interaction_entity.py +16 -0
  62. office365/copilot/ai_interaction_plugin.py +10 -0
  63. office365/copilot/package_access_entity.py +14 -0
  64. office365/copilot/package_element.py +16 -0
  65. office365/copilot/package_element_detail.py +19 -0
  66. office365/copilot/retrieval_data_source.py +14 -0
  67. office365/copilot/retrieval_entity_type.py +17 -0
  68. office365/count_collection.py +1 -1
  69. office365/delta_collection.py +41 -2
  70. office365/directory/applications/all_allowed_scopes.py +10 -0
  71. office365/directory/applications/custom_security_attribute_exemption.py +18 -0
  72. office365/directory/applications/custom_security_attribute_string_value_exemption.py +14 -0
  73. office365/directory/applications/enumerated_scopes.py +15 -0
  74. office365/directory/applications/identifier_uri_restriction.py +22 -0
  75. office365/directory/applications/implicitgrantsettings.py +8 -1
  76. office365/directory/applications/inheritable_scopes.py +15 -0
  77. office365/directory/applications/key_credential_configuration.py +22 -0
  78. office365/directory/applications/no_scopes.py +10 -0
  79. office365/directory/applications/optional_claim.py +14 -1
  80. office365/directory/applications/password_credential_configuration.py +22 -0
  81. office365/directory/applications/preauthorized.py +11 -1
  82. office365/directory/applications/redirecturisettings.py +8 -1
  83. office365/directory/applications/resource_access.py +4 -0
  84. office365/directory/applications/template.py +63 -3
  85. office365/directory/attribute_rule_members.py +15 -0
  86. office365/directory/audit/directory.py +9 -0
  87. office365/directory/audit/log_root.py +15 -15
  88. office365/directory/audit/logs/recordtype.py +476 -1
  89. office365/directory/audit/logs/usertype.py +16 -1
  90. office365/directory/audit/provisioning/object_summary.py +67 -3
  91. office365/directory/audit/signins/authentication_app_device_details.py +17 -0
  92. office365/directory/audit/signins/governance_insight.py +17 -0
  93. office365/directory/audit/signins/membership_outlier_insight.py +55 -0
  94. office365/directory/audit/signins/signin.py +78 -8
  95. office365/directory/authentication/attributecollection/external_users_self_service_sign_up.py +20 -0
  96. office365/directory/authentication/attributecollection/handler.py +10 -0
  97. office365/directory/authentication/attributecollection/method_load_start_handler.py +10 -0
  98. office365/directory/authentication/attributecollection/start_custom_extension_handler.py +17 -0
  99. office365/directory/authentication/attributecollection/start_handler.py +10 -0
  100. office365/directory/authentication/attributecollection/submit_custom_extension_handler.py +17 -0
  101. office365/directory/authentication/attributecollection/submit_handler.py +10 -0
  102. office365/directory/authentication/authentication.py +13 -36
  103. office365/directory/authentication/error_correction_level.py +14 -0
  104. office365/directory/authentication/fraud_protection_configuration.py +10 -0
  105. office365/directory/authentication/fraud_protection_provider_configuration.py +12 -0
  106. office365/directory/authentication/generic_error.py +8 -1
  107. office365/directory/authentication/methods/configuration.py +17 -0
  108. office365/directory/authentication/methods/details.py +36 -0
  109. office365/directory/authentication/methods/mode_detail.py +17 -0
  110. office365/directory/authentication/methods/passkey_type.py +13 -0
  111. office365/directory/authentication/methods/root.py +8 -12
  112. office365/directory/authentication/methods/target.py +17 -0
  113. office365/directory/authentication/oidc_address_inbound_claims.py +18 -0
  114. office365/directory/authentication/oidc_client_authentication.py +10 -0
  115. office365/directory/authentication/oidc_client_secret_authentication.py +14 -0
  116. office365/directory/authentication/oidc_inbound_claim_mapping_override.py +23 -0
  117. office365/directory/authentication/oidc_private_jwt_key_client_authentication.py +10 -0
  118. office365/directory/authentication/signing_certificate_update_status.py +16 -0
  119. office365/directory/authentication/strength/root.py +39 -0
  120. office365/directory/authentication/strength/usage.py +4 -0
  121. office365/directory/certificates/authority.py +5 -0
  122. office365/directory/certificates/pkcs12_certificate.py +15 -0
  123. office365/directory/certificates/self_signed.py +4 -0
  124. office365/directory/certificates/x509/issuer_hints_configuration.py +2 -1
  125. office365/directory/connected_organization_members.py +15 -0
  126. office365/directory/connection_info.py +14 -0
  127. office365/directory/domains/domain.py +3 -0
  128. office365/directory/domains/state.py +13 -1
  129. office365/directory/domains/verified.py +14 -4
  130. office365/directory/extensions/custom/http_request_endpoint.py +16 -0
  131. office365/directory/groups/access_type.py +15 -0
  132. office365/directory/groups/group_members.py +15 -0
  133. office365/directory/groups/setting_template_value.py +17 -0
  134. office365/directory/identities/application_context.py +15 -0
  135. office365/directory/identities/application_enforced_restrictions_session_control.py +10 -0
  136. office365/directory/identities/auth_context.py +14 -0
  137. office365/directory/identities/authentication_flow.py +15 -0
  138. office365/directory/identities/conditional_access_root.py +35 -3
  139. office365/directory/identities/conditional_access_session_control.py +14 -0
  140. office365/directory/identities/ip_range.py +10 -0
  141. office365/directory/identities/on_fraud_protection_load_start_external_users_auth_handler.py +15 -0
  142. office365/directory/identities/on_interactive_auth_flow_start_external_users_self_service_sign_up.py +14 -0
  143. office365/directory/identities/on_interactive_auth_flow_start_handler.py +10 -0
  144. office365/directory/identities/on_otp_send_custom_extension_handler.py +17 -0
  145. office365/directory/identities/on_otp_send_handler.py +10 -0
  146. office365/directory/identities/on_password_submit_handler.py +10 -0
  147. office365/directory/identities/providers/on_authentication_method_load_start_external_users_self_service_sign_up.py +16 -0
  148. office365/directory/identities/providers/on_fraud_protection_load_start_handler.py +10 -0
  149. office365/directory/identities/providers/verified_id_profile_state.py +13 -0
  150. office365/directory/identities/providers/verified_id_usage_configuration_purpose.py +14 -0
  151. office365/directory/identities/riskPrevention/web_application_firewall_dns_configuration.py +21 -0
  152. office365/directory/identities/riskPrevention/web_application_firewall_verification_result.py +23 -0
  153. office365/directory/identities/riskPrevention/web_application_firewall_verified_details.py +8 -1
  154. office365/directory/identities/sign_in_context.py +10 -0
  155. office365/directory/identities/userflows/user_attribute_values_item.py +16 -0
  156. office365/directory/identities/userflows/user_flow_api_connector_configuration.py +16 -0
  157. office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_session_request.py +12 -0
  158. office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_stats.py +15 -0
  159. office365/directory/identitygovernance/accessreview/disable_and_delete_user_apply_action.py +10 -0
  160. office365/directory/identitygovernance/accessreview/error.py +10 -0
  161. office365/directory/identitygovernance/accessreview/history/definition.py +3 -3
  162. office365/directory/identitygovernance/accessreview/history_schedule_settings.py +16 -0
  163. office365/directory/identitygovernance/accessreview/inactive_users_query_scope.py +15 -0
  164. office365/directory/identitygovernance/accessreview/instance.py +2 -2
  165. office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_assignment_policy_resource.py +15 -0
  166. office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_resource.py +15 -0
  167. office365/directory/identitygovernance/accessreview/instance_decision_item_azure_role_resource.py +17 -0
  168. office365/directory/identitygovernance/accessreview/instance_decision_item_resource.py +16 -0
  169. office365/directory/identitygovernance/accessreview/instance_decision_item_service_principal_resource.py +16 -0
  170. office365/directory/identitygovernance/accessreview/notification_recipient_item.py +20 -0
  171. office365/directory/identitygovernance/accessreview/notification_recipient_query_scope.py +16 -0
  172. office365/directory/identitygovernance/accessreview/notification_recipients_type.py +16 -0
  173. office365/directory/identitygovernance/accessreview/notify_members.py +14 -0
  174. office365/directory/identitygovernance/accessreview/principal_resource_memberships_scope.py +20 -0
  175. office365/directory/identitygovernance/accessreview/principal_scope.py +12 -0
  176. office365/directory/identitygovernance/accessreview/query_scope.py +16 -0
  177. office365/directory/identitygovernance/accessreview/recommendation_insight_setting.py +10 -0
  178. office365/directory/identitygovernance/accessreview/remove_access_apply_action.py +10 -0
  179. office365/directory/identitygovernance/accessreview/resource_scope.py +15 -0
  180. office365/directory/identitygovernance/accessreview/reviewer_scope.py +17 -0
  181. office365/directory/identitygovernance/accessreview/schedule/settings.py +33 -1
  182. office365/directory/identitygovernance/accessreview/stage.py +1 -1
  183. office365/directory/identitygovernance/accessreview/stage_settings.py +33 -0
  184. office365/directory/identitygovernance/accessreview/target_owners.py +17 -0
  185. office365/directory/identitygovernance/activate_processing_result_scope.py +3 -0
  186. office365/directory/identitygovernance/activate_run_scope.py +2 -0
  187. office365/directory/identitygovernance/appconsent/request_scope.py +8 -1
  188. office365/directory/identitygovernance/attribute_set_entry.py +15 -0
  189. office365/directory/identitygovernance/awaited_workflow_processing_result.py +17 -0
  190. office365/directory/identitygovernance/cancel_runs_scope.py +16 -0
  191. office365/directory/identitygovernance/cancel_scope.py +10 -0
  192. office365/directory/identitygovernance/content_base.py +10 -0
  193. office365/directory/identitygovernance/content_category.py +24 -0
  194. office365/directory/identitygovernance/count_based_quarantine_condition.py +14 -0
  195. office365/directory/identitygovernance/custom_task_extension_callout_data.py +4 -0
  196. office365/directory/identitygovernance/custom_task_extension_response_data.py +21 -0
  197. office365/directory/identitygovernance/directory_object_workflow_subject.py +15 -0
  198. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer.py +16 -0
  199. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_choice.py +22 -0
  200. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_string.py +14 -0
  201. office365/directory/identitygovernance/entitlementmanagement/accesspackage/approval_stage.py +36 -0
  202. office365/directory/identitygovernance/entitlementmanagement/accesspackage/approver_information_visibility.py +14 -0
  203. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_approval_settings.py +23 -0
  204. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_policy_scope.py +17 -0
  205. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_callback_data.py +20 -0
  206. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_parameters.py +14 -0
  207. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_requirements.py +25 -0
  208. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_requestor_settings.py +25 -0
  209. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_review_settings.py +29 -0
  210. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignmentfilterbycurrentuseroptions.py +2 -0
  211. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignmentrequestfilterbycurrentuseroptions.py +4 -0
  212. office365/directory/identitygovernance/entitlementmanagement/accesspackage/automatic_request_settings.py +17 -0
  213. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_upload_status.py +14 -0
  214. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_extension_callout_instance.py +21 -0
  215. office365/directory/identitygovernance/entitlementmanagement/accesspackage/dynamic_approval_stage.py +10 -0
  216. office365/directory/identitygovernance/entitlementmanagement/accesspackage/expiration_pattern.py +20 -0
  217. office365/directory/identitygovernance/entitlementmanagement/accesspackage/localized_text.py +15 -0
  218. office365/directory/identitygovernance/entitlementmanagement/accesspackage/notification_settings.py +14 -0
  219. office365/directory/identitygovernance/entitlementmanagement/accesspackage/request_approval_stage_callback_configuration.py +10 -0
  220. office365/directory/identitygovernance/entitlementmanagement/accesspackage/requesttype.py +1 -0
  221. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute.py +26 -0
  222. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_destination.py +10 -0
  223. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_question.py +15 -0
  224. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_source.py +10 -0
  225. office365/directory/identitygovernance/entitlementmanagement/accesspackage/subject_lifecycle.py +14 -0
  226. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_filter_by_current_user_options.py +14 -0
  227. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_reason.py +10 -0
  228. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_related_people_based.py +17 -0
  229. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_related_people_insight_level.py +14 -0
  230. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_self_assignment_history_based.py +16 -0
  231. office365/directory/identitygovernance/entitlementmanagement/accesspackage/user_directory_attribute_store.py +10 -0
  232. office365/directory/identitygovernance/entitlementmanagement/assignment_request_approval_stage_callback_data.py +17 -0
  233. office365/directory/identitygovernance/entitlementmanagement/azure_active_directory_tenant.py +15 -0
  234. office365/directory/identitygovernance/entitlementmanagement/domain_identity_source.py +15 -0
  235. office365/directory/identitygovernance/entitlementmanagement/fallback_to_microsoft_provider_on_error.py +12 -0
  236. office365/directory/identitygovernance/entitlementmanagement/identity_source.py +10 -0
  237. office365/directory/identitygovernance/entitlementmanagement/schedule.py +21 -0
  238. office365/directory/identitygovernance/entitlementmanagement/social_identity_source.py +18 -0
  239. office365/directory/identitygovernance/guest_sponsor_trigger.py +14 -0
  240. office365/directory/identitygovernance/percentage_based_quarantine_condition.py +14 -0
  241. office365/directory/identitygovernance/preview_failed_task.py +17 -0
  242. office365/directory/identitygovernance/process_content_metadata_base.py +26 -0
  243. office365/directory/identitygovernance/provisioning_attribute_mapping.py +10 -0
  244. office365/directory/identitygovernance/provisioning_object_workflow_subject.py +19 -0
  245. office365/directory/identitygovernance/quarantine_condition.py +10 -0
  246. office365/directory/identitygovernance/quarantine_configuration.py +20 -0
  247. office365/directory/identitygovernance/quarantine_details.py +18 -0
  248. office365/directory/identitygovernance/resource_access_detail.py +23 -0
  249. office365/directory/identitygovernance/subject_summary.py +18 -0
  250. office365/directory/identitygovernance/termsofuse/agreement_file_data.py +14 -0
  251. office365/directory/identitygovernance/termsofuse/terms_expiration.py +16 -0
  252. office365/directory/identitygovernance/text_content.py +14 -0
  253. office365/directory/identitygovernance/workflow.py +23 -0
  254. office365/directory/identitygovernance/workflow_setting.py +15 -0
  255. office365/directory/identitygovernance/workflow_subject.py +10 -0
  256. office365/directory/insights/office_graph.py +7 -6
  257. office365/directory/invitations/invitation.py +45 -2
  258. office365/directory/licenses/service_plan_info.py +4 -0
  259. office365/directory/licenses/subscribed_sku.py +3 -0
  260. office365/directory/licenses/units_detail.py +4 -0
  261. office365/directory/objects/collection.py +34 -8
  262. office365/directory/objects/object.py +3 -0
  263. office365/directory/objects/service_provisioning_xml_error.py +14 -0
  264. office365/directory/permissions/comment_action.py +18 -0
  265. office365/directory/permissions/create_action.py +10 -0
  266. office365/directory/permissions/default_user_role.py +16 -1
  267. office365/directory/permissions/delete_action.py +15 -0
  268. office365/directory/permissions/email_identity.py +7 -9
  269. office365/directory/policies/all_devices_assignment_target.py +12 -0
  270. office365/directory/policies/all_domains.py +10 -0
  271. office365/directory/policies/all_licensed_users_assignment_target.py +10 -0
  272. office365/directory/policies/allowedtargetscope.py +1 -0
  273. office365/directory/policies/app_management_application_configuration.py +15 -0
  274. office365/directory/policies/app_management_configuration.py +22 -0
  275. office365/directory/policies/app_management_policy_actor_exemptions.py +18 -0
  276. office365/directory/policies/app_management_service_principal_configuration.py +10 -0
  277. office365/directory/policies/authentication_combination_configuration.py +18 -0
  278. office365/directory/policies/authentication_context_class_reference.py +26 -0
  279. office365/directory/policies/authentication_methods.py +59 -0
  280. office365/directory/policies/authentication_strength.py +65 -8
  281. office365/directory/policies/azure_ad_registration_policy.py +16 -0
  282. office365/directory/policies/ca_policies_deletable_root.py +33 -0
  283. office365/directory/policies/claims_mapping_policy.py +7 -0
  284. office365/directory/policies/cloud_app_security_session_control.py +15 -0
  285. office365/directory/policies/conditionalaccess/all_external_tenants.py +10 -0
  286. office365/directory/policies/conditionalaccess/applications.py +20 -0
  287. office365/directory/policies/conditionalaccess/authentication_flows.py +15 -0
  288. office365/directory/policies/conditionalaccess/client_applications.py +18 -0
  289. office365/directory/policies/conditionalaccess/condition_set.py +42 -0
  290. office365/directory/policies/conditionalaccess/device_and_app_management_assignment_target.py +10 -0
  291. office365/directory/policies/conditionalaccess/device_info.py +43 -0
  292. office365/directory/policies/conditionalaccess/devices.py +15 -0
  293. office365/directory/policies/conditionalaccess/enumerated_external_tenants.py +15 -0
  294. office365/directory/policies/conditionalaccess/external_tenants.py +17 -0
  295. office365/directory/policies/conditionalaccess/filter.py +16 -0
  296. office365/directory/policies/conditionalaccess/grant_controls.py +24 -0
  297. office365/directory/policies/conditionalaccess/grantcontrol.py +1 -0
  298. office365/directory/policies/conditionalaccess/guests_or_external_users.py +19 -0
  299. office365/directory/policies/conditionalaccess/locations.py +16 -0
  300. office365/directory/policies/conditionalaccess/persistent_browser_session_control.py +15 -0
  301. office365/directory/policies/conditionalaccess/platforms.py +21 -0
  302. office365/directory/policies/conditionalaccess/policy_deletable_item.py +17 -0
  303. office365/directory/policies/conditionalaccess/policy_detail.py +19 -0
  304. office365/directory/policies/conditionalaccess/secure_sign_in_session_control.py +10 -0
  305. office365/directory/policies/conditionalaccess/service_principal_sign_in.py +14 -0
  306. office365/directory/policies/conditionalaccess/session_controls.py +32 -0
  307. office365/directory/policies/conditionalaccess/sign_in_conditions.py +29 -0
  308. office365/directory/policies/conditionalaccess/sign_in_frequency_session_control.py +24 -0
  309. office365/directory/policies/conditionalaccess/sign_in_identity.py +10 -0
  310. office365/directory/policies/conditionalaccess/user_action_context.py +15 -0
  311. office365/directory/policies/conditionalaccess/user_sign_in.py +19 -0
  312. office365/directory/policies/conditionalaccess/users.py +29 -0
  313. office365/directory/policies/crosstenant/app_service_connect_setting.py +19 -0
  314. office365/directory/policies/crosstenant/b2_b_setting.py +22 -0
  315. office365/directory/policies/crosstenant/inbound_trust.py +16 -0
  316. office365/directory/policies/crosstenant/m365_collaboration_inbound_setting.py +17 -0
  317. office365/directory/policies/crosstenant/m365_collaboration_outbound_setting.py +19 -0
  318. office365/directory/policies/crosstenant/target.py +16 -0
  319. office365/directory/policies/crosstenant/target_configuration.py +24 -0
  320. office365/directory/policies/crosstenant/tenant_restrictions.py +15 -0
  321. office365/directory/policies/crosstenant/user_sync_inbound.py +14 -0
  322. office365/directory/policies/custom_app_management_application_configuration.py +15 -0
  323. office365/directory/policies/custom_app_management_configuration.py +19 -0
  324. office365/directory/policies/default_invitation_redemption_identity_provider_configuration.py +10 -0
  325. office365/directory/policies/devices_filter.py +20 -0
  326. office365/directory/policies/enumerated_domains.py +15 -0
  327. office365/directory/policies/face_check_configuration.py +15 -0
  328. office365/directory/policies/group_scope.py +10 -0
  329. office365/directory/policies/identifier_uri_configuration.py +16 -0
  330. office365/directory/policies/inbound_outbound_policy_configuration.py +15 -0
  331. office365/directory/policies/invitation_redemption_identity_provider_configuration.py +19 -0
  332. office365/directory/policies/match_confidence_level.py +13 -0
  333. office365/directory/policies/protected_application_metadata.py +15 -0
  334. office365/directory/policies/protection_policy_artifact_count.py +17 -0
  335. office365/directory/policies/restrict_access_action.py +10 -0
  336. office365/directory/policies/restrict_access_action_base.py +15 -0
  337. office365/directory/policies/retention_setting.py +16 -0
  338. office365/directory/policies/root.py +14 -1
  339. office365/directory/policies/scope_base.py +14 -0
  340. office365/directory/policies/security_defaults.py +16 -0
  341. office365/directory/policies/self_service_sign_up_authentication_flow_configuration.py +14 -0
  342. office365/directory/policies/tenant_scope.py +10 -0
  343. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_filter_by_current_user_options.py +12 -0
  344. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_instance_filter_by_current_user_options.py +12 -0
  345. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_request_filter_by_current_user_options.py +14 -0
  346. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_filter_by_current_user_options.py +12 -0
  347. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_instance_filter_by_current_user_options.py +12 -0
  348. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_request_filter_by_current_user_options.py +14 -0
  349. office365/directory/policies/user_scope.py +10 -0
  350. office365/directory/policies/validating_domains.py +15 -0
  351. office365/directory/policies/verified_id_profile_configuration.py +15 -0
  352. office365/directory/policies/verified_id_usage_configuration.py +14 -0
  353. office365/directory/protection/riskyusers/activity.py +7 -1
  354. office365/directory/protection/riskyusers/risk_service_principal_activity.py +17 -0
  355. office365/directory/quotas.py +34 -0
  356. office365/directory/recovery/recovery_action.py +14 -0
  357. office365/directory/recovery/recovery_status.py +18 -0
  358. office365/directory/recovery/resource_type_name.py +23 -0
  359. office365/directory/requestor_manager.py +14 -0
  360. office365/directory/rolemanagement/unifiedrole/notification_recipients.py +20 -0
  361. office365/directory/rolemanagement/unifiedrole/permission.py +4 -0
  362. office365/directory/security/account.py +0 -1
  363. office365/directory/security/action.py +17 -0
  364. office365/directory/security/ai_agent_platform.py +15 -0
  365. office365/directory/security/alerts/alert.py +17 -0
  366. office365/directory/security/{blob_container_evidence.py → alerts/blob_container_evidence.py} +1 -1
  367. office365/directory/security/{blob_evidence.py → alerts/blob_evidence.py} +1 -1
  368. office365/directory/security/alerts/connection_direction.py +14 -0
  369. office365/directory/security/{sas_token_evidence.py → alerts/sas_token_evidence.py} +1 -1
  370. office365/directory/security/alerts/status.py +1 -2
  371. office365/directory/security/analyzed_message_evidence.py +3 -0
  372. office365/directory/security/antispam_directionality.py +15 -0
  373. office365/directory/security/attacksimulations/account_target_content_type.py +14 -0
  374. office365/directory/security/audit/audit_data.py +15 -0
  375. office365/directory/security/audit/audit_log_query_status.py +16 -0
  376. office365/directory/security/audit/multi_tenant_organization_join_request_transition_details.py +20 -0
  377. office365/directory/security/audit/multi_tenant_organization_member_transition_details.py +22 -0
  378. office365/directory/security/audit/whois_domain_status.py +16 -0
  379. office365/directory/security/{whois_record.py → audit/whois_record.py} +1 -1
  380. office365/directory/security/cases/additionaldataoptions.py +1 -0
  381. office365/directory/security/cases/ediscovery.py +3 -0
  382. office365/directory/security/cloud_application_evidence.py +3 -1
  383. office365/directory/security/cloud_logon_session_evidence.py +2 -0
  384. office365/directory/security/{analyzed_email_attachment.py → collaboration/analyzed_email_attachment.py} +3 -1
  385. office365/directory/security/{collaboration_root.py → collaboration/collaboration_root.py} +1 -1
  386. office365/directory/security/container_evidence.py +4 -0
  387. office365/directory/security/container_image_evidence.py +4 -1
  388. office365/directory/security/correlation_reason.py +28 -0
  389. office365/directory/security/datasecurity/classifcation_error_base.py +18 -0
  390. office365/directory/security/{audit_data.py → datasecurity/classification_error.py} +2 -2
  391. office365/directory/security/datasecurity/classification_inner_error.py +18 -0
  392. office365/directory/security/datasecurity/compute_rights_and_inheritance_result.py +17 -0
  393. office365/directory/security/datasecurity/custom_metadata_dictionary.py +10 -0
  394. office365/directory/security/datasecurity/dlp_action_info.py +15 -0
  395. office365/directory/security/{data_security → datasecurity}/governance.py +1 -1
  396. office365/directory/security/datasecurity/integrated_application_metadata.py +15 -0
  397. office365/directory/security/datasecurity/policy_binding.py +17 -0
  398. office365/directory/security/datasecurity/policy_location.py +14 -0
  399. office365/directory/security/datasecurity/policy_location_application.py +10 -0
  400. office365/directory/security/datasecurity/policy_location_domain.py +10 -0
  401. office365/directory/security/datasecurity/policy_location_url.py +10 -0
  402. office365/directory/security/datasecurity/policy_scope_base.py +26 -0
  403. office365/directory/security/datasecurity/policy_tenant_scope.py +15 -0
  404. office365/directory/security/datasecurity/policy_tip_action.py +16 -0
  405. office365/directory/security/datasecurity/policy_user_scope.py +10 -0
  406. office365/directory/security/datasecurity/process_content_batch_request.py +17 -0
  407. office365/directory/security/datasecurity/process_content_request.py +24 -0
  408. office365/directory/security/datasecurity/process_content_response.py +24 -0
  409. office365/directory/security/datasecurity/process_content_responses.py +16 -0
  410. office365/directory/security/datasecurity/process_conversation_metadata.py +27 -0
  411. office365/directory/security/datasecurity/process_file_metadata.py +16 -0
  412. office365/directory/security/datasecurity/protected_content.py +16 -0
  413. office365/directory/security/delivery_action.py +16 -0
  414. office365/directory/security/delivery_location.py +20 -0
  415. office365/directory/security/detonation_details.py +11 -0
  416. office365/directory/security/device_evidence.py +11 -0
  417. office365/directory/security/dns_evidence.py +6 -1
  418. office365/directory/security/event_source.py +14 -0
  419. office365/directory/security/file_plan_applied_category.py +4 -1
  420. office365/directory/security/formatted_content.py +16 -0
  421. office365/directory/security/indicator_source.py +14 -0
  422. office365/directory/security/intelligence_profile_kind.py +13 -0
  423. office365/directory/security/investigation_state.py +29 -0
  424. office365/directory/security/invoke_action_result.py +0 -1
  425. office365/directory/security/io_t_device_evidence.py +6 -1
  426. office365/directory/security/ip_evidence.py +2 -0
  427. office365/directory/security/kubernetes_controller_evidence.py +2 -0
  428. office365/directory/security/kubernetes_pod_evidence.py +10 -0
  429. office365/directory/security/labels/retention/duration_in_days.py +3 -0
  430. office365/directory/security/mailbox_configuration_type.py +16 -0
  431. office365/directory/security/mailbox_evidence.py +3 -1
  432. office365/directory/security/onboarding_status.py +15 -0
  433. office365/directory/security/passive_dns_record.py +1 -1
  434. office365/directory/security/processing_error.py +15 -0
  435. office365/directory/security/protocol_type.py +13 -0
  436. office365/directory/security/public_error_response.py +4 -1
  437. office365/directory/security/query_type.py +13 -0
  438. office365/directory/security/recipient_type.py +13 -0
  439. office365/directory/security/remediation_action.py +17 -0
  440. office365/directory/security/remediation_severity.py +14 -0
  441. office365/directory/security/security.py +1 -1
  442. office365/directory/security/sensor_candidate_activation_mode.py +13 -0
  443. office365/directory/security/service_principal_type.py +15 -0
  444. office365/directory/security/service_source.py +25 -0
  445. office365/directory/security/ssl_certificate.py +1 -1
  446. office365/directory/security/subdomain.py +1 -1
  447. office365/directory/security/subjectrightsrequests/all_mailbox_location.py +10 -0
  448. office365/directory/security/subjectrightsrequests/all_site_location.py +10 -0
  449. office365/directory/security/subjectrightsrequests/data_subject.py +17 -0
  450. office365/directory/security/subjectrightsrequests/detail.py +26 -0
  451. office365/directory/security/subjectrightsrequests/enumerated_mailbox_location.py +15 -0
  452. office365/directory/security/subjectrightsrequests/enumerated_site_location.py +15 -0
  453. office365/directory/security/subjectrightsrequests/history.py +22 -0
  454. office365/directory/security/subjectrightsrequests/mailbox_location.py +10 -0
  455. office365/directory/security/subjectrightsrequests/site_location.py +10 -0
  456. office365/directory/security/subjectrightsrequests/stage_detail.py +19 -0
  457. office365/directory/security/teams_delivery_location.py +15 -0
  458. office365/directory/security/teams_message_delivery_action.py +16 -0
  459. office365/directory/security/threat_type.py +16 -0
  460. office365/directory/security/{host.py → threatintelligence/host.py} +8 -8
  461. office365/directory/security/{host_component.py → threatintelligence/host_component.py} +1 -1
  462. office365/directory/security/{host_cookie.py → threatintelligence/host_cookie.py} +1 -1
  463. office365/directory/security/{host_pair.py → threatintelligence/host_pair.py} +1 -1
  464. office365/directory/security/{host_port.py → threatintelligence/host_port.py} +1 -1
  465. office365/directory/security/threatintelligence/host_port_banner.py +19 -0
  466. office365/directory/security/threatintelligence/host_port_component.py +19 -0
  467. office365/directory/security/threatintelligence/host_port_protocol.py +13 -0
  468. office365/directory/security/threatintelligence/host_port_status.py +14 -0
  469. office365/directory/security/threatintelligence/host_reputation_classification.py +15 -0
  470. office365/directory/security/threatintelligence/host_reputation_rule.py +16 -0
  471. office365/directory/security/threatintelligence/host_reputation_rule_severity.py +15 -0
  472. office365/directory/security/{host_ssl_certificate.py → threatintelligence/host_ssl_certificate.py} +1 -1
  473. office365/directory/security/{host_tracker.py → threatintelligence/host_tracker.py} +1 -1
  474. office365/directory/security/threatintelligence/hosts/__init__.py +0 -0
  475. office365/directory/security/threatintelligence/threat_intelligence.py +9 -9
  476. office365/directory/security/threatintelligence/whoisrecords/__init__.py +0 -0
  477. office365/directory/security/timeline_event_type.py +20 -0
  478. office365/directory/security/user_evidence.py +2 -0
  479. office365/directory/security/verdict_category.py +20 -0
  480. office365/directory/security/vm_cloud_provider.py +13 -0
  481. office365/directory/security/vulnerability_severity.py +16 -0
  482. office365/directory/security/whois_base_record.py +1 -1
  483. office365/directory/serviceprincipals/delegated_permission_classification.py +27 -0
  484. office365/directory/serviceprincipals/remote_desktop_security_configuration.py +16 -0
  485. office365/directory/single_service_principal.py +15 -0
  486. office365/directory/single_user.py +15 -0
  487. office365/directory/synchronization/attribute_mapping.py +23 -0
  488. office365/directory/synchronization/error.py +10 -1
  489. office365/directory/synchronization/job_application_parameters.py +19 -0
  490. office365/directory/synchronization/job_restart_criteria.py +7 -1
  491. office365/directory/synchronization/job_subject.py +17 -0
  492. office365/directory/synchronization/linked_objects.py +22 -0
  493. office365/directory/synchronization/metadata_entry.py +16 -0
  494. office365/directory/synchronization/on_premises_accidental_deletion_prevention.py +20 -0
  495. office365/directory/synchronization/on_premises_directory_synchronization_configuration.py +19 -0
  496. office365/directory/synchronization/on_premises_directory_synchronization_feature.py +33 -0
  497. office365/directory/synchronization/progress.py +4 -0
  498. office365/directory/synchronization/quarantine.py +11 -0
  499. office365/directory/synchronization/rule.py +32 -0
  500. office365/directory/synchronization/schedule.py +18 -0
  501. office365/directory/synchronization/secret_key_string_value_pair.py +16 -0
  502. office365/directory/synchronization/status.py +17 -3
  503. office365/directory/synchronization/task_execution.py +26 -1
  504. office365/directory/target_agent_identity_sponsors_or_owners.py +10 -0
  505. office365/directory/target_application_owners.py +10 -0
  506. office365/directory/target_manager.py +14 -0
  507. office365/directory/target_user_sponsors.py +10 -0
  508. office365/directory/tenantinformation/information.py +4 -0
  509. office365/directory/users/activities/activity.py +42 -8
  510. office365/directory/users/settings.py +5 -13
  511. office365/directory/users/user.py +4 -3
  512. office365/directory/users/work_location_update_scope.py +13 -0
  513. office365/education/related_contact.py +19 -0
  514. office365/entity_collection.py +2 -22
  515. office365/externalconnectors/acl_type.py +16 -0
  516. office365/externalconnectors/binary_operator.py +12 -0
  517. office365/externalconnectors/connection_operation_status.py +15 -0
  518. office365/externalconnectors/connection_state.py +15 -0
  519. office365/externalconnectors/external_activity_type.py +15 -0
  520. office365/externalconnectors/external_item_content_type.py +13 -0
  521. office365/externalconnectors/identity_type.py +14 -0
  522. office365/externalconnectors/label.py +65 -0
  523. office365/externalconnectors/property_type.py +22 -0
  524. office365/externalconnectors/rule_operation.py +19 -0
  525. office365/graph_client.py +164 -16
  526. office365/graph_request.py +3 -1
  527. office365/intune/browser/browser_site_history.py +25 -0
  528. office365/intune/devices/alternative_security_id.py +5 -0
  529. office365/intune/devices/cloud_pc_launch_detail.py +22 -0
  530. office365/intune/devices/cloud_pc_windows_setting.py +14 -0
  531. office365/intune/devices/device_metadata.py +17 -0
  532. office365/intune/devices/enumerated_device_registration_membership.py +16 -0
  533. office365/intune/devices/imported_windows_autopilot_device_identity_import_status.py +15 -0
  534. office365/intune/devices/imported_windows_autopilot_device_identity_upload_status.py +14 -0
  535. office365/intune/devices/management/all_device_registration_membership.py +10 -0
  536. office365/intune/devices/management/device_protection_overview.py +24 -0
  537. office365/intune/devices/management/managed/managed.py +79 -0
  538. office365/intune/devices/management/managed/windows/autopilot_device_type.py +13 -0
  539. office365/intune/devices/management/managed/windows/defender_product_status.py +36 -0
  540. office365/intune/devices/management/managed/windows/information_protection_enforcement_level.py +14 -0
  541. office365/intune/devices/management/mobileapps/file_encryption_info.py +20 -0
  542. office365/intune/devices/management/mobileapps/ios/ios_device_type.py +15 -0
  543. office365/intune/devices/management/user_experience_analytics_settings.py +14 -0
  544. office365/intune/devices/management/user_experience_analytics_summarized_by.py +17 -0
  545. office365/intune/devices/management/virtualendpoint/cloudpcs/exclusion_group_assignment_target.py +10 -0
  546. office365/intune/devices/management/virtualendpoint/cloudpcs/group_assignment_target.py +16 -0
  547. office365/intune/devices/management/virtualendpoint/provisioningpolicies/microsoft_managed_desktop.py +18 -0
  548. office365/intune/devices/management/windows_malware_overview.py +16 -0
  549. office365/intune/devices/no_device_registration_membership.py +10 -0
  550. office365/intune/devices/operating_system_specifications.py +15 -0
  551. office365/intune/enrollment_state.py +15 -0
  552. office365/intune/instance_resource_access.py +19 -0
  553. office365/intune/organizations/content_customization.py +15 -0
  554. office365/intune/organizations/login_page_layout_configuration.py +17 -0
  555. office365/intune/organizations/login_page_text_visibility_settings.py +19 -0
  556. office365/intune/organizations/physical_office_address.py +19 -0
  557. office365/intune/organizations/privacy_profile.py +15 -0
  558. office365/intune/policies/azure_ad_join_policy.py +18 -0
  559. office365/intune/policies/local_admin_password_settings.py +14 -0
  560. office365/intune/policies/local_admin_settings.py +16 -0
  561. office365/intune/print/printers/incompatible_printer_settings.py +13 -0
  562. office365/intune/print/user_print.py +0 -2
  563. office365/intune/process_integrity_level.py +17 -0
  564. office365/intune/resource_permission.py +15 -0
  565. office365/limits.py +66 -0
  566. office365/migration/__init__.py +127 -7
  567. office365/migration/adapters/__init__.py +104 -0
  568. office365/migration/adapters/filesystem.py +177 -0
  569. office365/migration/assessment/__init__.py +27 -0
  570. office365/migration/assessment/containers.py +24 -0
  571. office365/migration/assessment/export.py +51 -0
  572. office365/migration/assessment/issue.py +19 -0
  573. office365/migration/assessment/registry.py +60 -0
  574. office365/migration/assessment/report.py +153 -31
  575. office365/migration/assessment/runner.py +57 -0
  576. office365/migration/assessment/scanners/__init__.py +13 -0
  577. office365/migration/assessment/scanners/base.py +123 -0
  578. office365/migration/base.py +85 -11
  579. office365/migration/checkpoint.py +76 -0
  580. office365/migration/job.py +209 -0
  581. office365/migration/manifest.py +71 -0
  582. office365/migration/outlook/__init__.py +20 -0
  583. office365/migration/outlook/assessor.py +73 -0
  584. office365/migration/outlook/registry.py +27 -0
  585. office365/migration/outlook/scanner.py +82 -0
  586. office365/migration/package/__init__.py +82 -0
  587. office365/migration/package/builder.py +603 -0
  588. office365/migration/package/crypto.py +54 -0
  589. office365/migration/package/manifest_xml.py +495 -0
  590. office365/migration/package/staging.py +180 -0
  591. office365/migration/report.py +116 -0
  592. office365/migration/report_io.py +79 -0
  593. office365/migration/runner.py +315 -0
  594. office365/migration/server_job.py +202 -0
  595. office365/migration/session.py +188 -0
  596. office365/migration/settings.py +67 -0
  597. office365/migration/sharepoint/__init__.py +55 -0
  598. office365/migration/sharepoint/adapters.py +520 -0
  599. office365/migration/sharepoint/assessor.py +348 -0
  600. office365/migration/sharepoint/options.py +57 -0
  601. office365/migration/sharepoint/package_target.py +209 -0
  602. office365/migration/sharepoint/registry.py +70 -0
  603. office365/migration/sharepoint/resolvers.py +96 -0
  604. office365/migration/sharepoint/scanners/__init__.py +56 -0
  605. office365/migration/sharepoint/scanners/browser_file_handling.py +55 -0
  606. office365/migration/sharepoint/scanners/checked_out_files.py +57 -0
  607. office365/migration/sharepoint/scanners/fields.py +52 -0
  608. office365/migration/sharepoint/scanners/file_versions.py +56 -0
  609. office365/migration/sharepoint/scanners/files.py +28 -0
  610. office365/migration/sharepoint/scanners/large_excel_files.py +56 -0
  611. office365/migration/sharepoint/scanners/large_lists.py +58 -0
  612. office365/migration/sharepoint/scanners/large_sites.py +125 -0
  613. office365/migration/sharepoint/scanners/locked_sites.py +38 -0
  614. office365/migration/sharepoint/scanners/long_onedrive_urls.py +52 -0
  615. office365/migration/sharepoint/scanners/lookup.py +38 -0
  616. office365/migration/sharepoint/scanners/paths.py +50 -0
  617. office365/migration/sharepoint/scanners/permissions.py +42 -0
  618. office365/migration/sharepoint/scanners/smat.py +51 -0
  619. office365/migration/sharepoint/scanners/summary.py +38 -0
  620. office365/migration/sharepoint/scanners/thicket_folders.py +38 -0
  621. office365/migration/sharepoint/scanners/unsupported_site_templates.py +90 -0
  622. office365/migration/sharepoint/tenant_assessor.py +95 -0
  623. office365/migration/sharepoint/transfer.py +94 -0
  624. office365/migration/tasks.py +121 -0
  625. office365/migration/teams/__init__.py +29 -0
  626. office365/migration/teams/_extract.py +108 -0
  627. office365/migration/teams/adapters.py +190 -0
  628. office365/migration/teams/models.py +73 -0
  629. office365/migration/validators.py +48 -0
  630. office365/onedrive/base_item.py +10 -15
  631. office365/onedrive/contenttypes/content_type.py +8 -13
  632. office365/onedrive/documentsets/version.py +3 -6
  633. office365/onedrive/driveitems/audio.py +16 -0
  634. office365/onedrive/driveitems/bundle.py +4 -0
  635. office365/onedrive/driveitems/driveItem.py +237 -31
  636. office365/onedrive/driveitems/image.py +4 -0
  637. office365/onedrive/driveitems/malware.py +14 -0
  638. office365/onedrive/driveitems/package.py +14 -0
  639. office365/onedrive/driveitems/photo.py +13 -1
  640. office365/onedrive/driveitems/publication_facet.py +4 -0
  641. office365/onedrive/driveitems/remote_item.py +18 -0
  642. office365/onedrive/driveitems/special_folder.py +4 -0
  643. office365/onedrive/driveitems/uploadable_properties.py +2 -2
  644. office365/onedrive/driveitems/video.py +15 -1
  645. office365/onedrive/drives/drive.py +9 -0
  646. office365/onedrive/drives/quota.py +9 -1
  647. office365/onedrive/files/file.py +4 -0
  648. office365/onedrive/files/system_info.py +4 -0
  649. office365/onedrive/filestorage/containertypes/app_permission.py +20 -1
  650. office365/onedrive/filestorage/containertypes/billing_classification.py +8 -0
  651. office365/onedrive/filestorage/containertypes/billing_status.py +7 -0
  652. office365/onedrive/filestorage/containertypes/settings_override.py +17 -0
  653. office365/onedrive/folders/folder.py +4 -0
  654. office365/onedrive/internal/paths/shared.py +1 -3
  655. office365/onedrive/internal/paths/site.py +2 -1
  656. office365/onedrive/listitems/collection.py +2 -2
  657. office365/onedrive/lists/info.py +4 -0
  658. office365/onedrive/operations/pending.py +4 -0
  659. office365/onedrive/operations/public_inner_error.py +21 -0
  660. office365/onedrive/sensitivitylabels/usagerights.py +1 -1
  661. office365/onedrive/share_point_migration_job_error_level.py +15 -0
  662. office365/onedrive/share_point_migration_object_type.py +20 -0
  663. office365/onedrive/shares/shared.py +4 -0
  664. office365/onedrive/sites/collection.py +4 -0
  665. office365/onedrive/sites/sites_with_root.py +3 -3
  666. office365/onedrive/sites/website.py +17 -0
  667. office365/onedrive/sites/website_type.py +15 -0
  668. office365/onedrive/termstore/groups/collection.py +3 -10
  669. office365/onedrive/termstore/groups/group.py +6 -1
  670. office365/onedrive/termstore/relation_type.py +13 -0
  671. office365/onedrive/termstore/sets/collection.py +3 -10
  672. office365/onedrive/termstore/store.py +14 -29
  673. office365/onedrive/termstore/store_manager.py +128 -0
  674. office365/onedrive/termstore/terms/collection.py +4 -11
  675. office365/onedrive/workbooks/charts/axes.py +4 -10
  676. office365/onedrive/workbooks/filter_criteria.py +9 -0
  677. office365/onedrive/workbooks/filter_datetime.py +15 -0
  678. office365/onedrive/workbooks/icon.py +7 -1
  679. office365/onedrive/workbooks/operations/error.py +4 -0
  680. office365/onedrive/workbooks/ranges/reference.py +4 -0
  681. office365/onedrive/workbooks/session_info.py +4 -0
  682. office365/onedrive/workbooks/sort_field.py +5 -0
  683. office365/onedrive/workbooks/workbook.py +7 -0
  684. office365/onedrive/workbooks/worksheets/protection_options.py +4 -0
  685. office365/onedrive/workbooks/worksheets/worksheet.py +5 -3
  686. office365/onenote/pages/collection.py +1 -1
  687. office365/onenote/pages/page.py +5 -11
  688. office365/outlook/calendar/attendees/attendee.py +4 -0
  689. office365/outlook/calendar/attendees/availability.py +4 -0
  690. office365/outlook/calendar/attendees/base.py +4 -0
  691. office365/outlook/calendar/collection.py +7 -0
  692. office365/outlook/calendar/events/event.py +8 -14
  693. office365/outlook/calendar/events/reminder.py +4 -0
  694. office365/outlook/calendar/location_constraint.py +4 -0
  695. office365/outlook/calendar/meetingtimes/suggestion.py +8 -0
  696. office365/outlook/calendar/meetingtimes/suggestions_result.py +4 -0
  697. office365/outlook/calendar/meetingtimes/time_constraint.py +4 -0
  698. office365/outlook/calendar/response_status.py +7 -1
  699. office365/outlook/calendar/schedule/free_busy_error.py +15 -0
  700. office365/outlook/calendar/schedule/information.py +4 -0
  701. office365/outlook/calendar/schedule/item.py +4 -0
  702. office365/outlook/calendar/sharing/message_action.py +11 -1
  703. office365/outlook/calendar/timezones/base.py +4 -0
  704. office365/outlook/calendar/timezones/custom.py +9 -1
  705. office365/outlook/calendar/timezones/daylight_time_zone_offset.py +14 -0
  706. office365/outlook/calendar/working_hours.py +4 -0
  707. office365/outlook/check_in_method.py +15 -0
  708. office365/outlook/contacts/folders/collection.py +4 -13
  709. office365/outlook/convert_id_result.py +7 -1
  710. office365/outlook/item.py +3 -11
  711. office365/outlook/locale_info.py +4 -0
  712. office365/outlook/mail/attachments/attachment_item.py +7 -0
  713. office365/outlook/mail/attachments/collection.py +33 -18
  714. office365/outlook/mail/automaticreplies/mailtips.py +4 -0
  715. office365/outlook/mail/automaticreplies/setting.py +4 -0
  716. office365/outlook/mail/email_details.py +16 -0
  717. office365/outlook/mail/export_item_response.py +19 -0
  718. office365/outlook/mail/folders/folder.py +5 -11
  719. office365/outlook/mail/location.py +1 -1
  720. office365/outlook/mail/location_constraint_item.py +8 -1
  721. office365/outlook/mail/mailbox_item_import_session.py +16 -0
  722. office365/outlook/mail/messages/collection.py +1 -1
  723. office365/outlook/mail/messages/followup_flag.py +4 -0
  724. office365/outlook/mail/messages/internet_header.py +4 -0
  725. office365/outlook/mail/messages/message.py +21 -7
  726. office365/outlook/mail/messages/rules/actions.py +4 -0
  727. office365/outlook/mail/messages/rules/predicates.py +29 -0
  728. office365/outlook/mail/messages/rules/rule.py +1 -1
  729. office365/outlook/mail/messages/rules/size_range.py +15 -0
  730. office365/outlook/mail/patterned_recurrence.py +4 -0
  731. office365/outlook/mail/recurrence_pattern.py +4 -0
  732. office365/outlook/mail/recurrence_range.py +4 -0
  733. office365/outlook/mail/tips/error.py +7 -1
  734. office365/outlook/people/person_type.py +14 -0
  735. office365/outlook/place_feature_enablement.py +14 -0
  736. office365/outlook/resource_link.py +17 -0
  737. office365/outlook/resource_link_type.py +12 -0
  738. office365/outlook/scored_email_address.py +18 -0
  739. office365/outlook/timezones/information.py +4 -0
  740. office365/outlook/timezones/standard_time_zone_offset.py +20 -0
  741. office365/partners/billing/attribute_set.py +13 -0
  742. office365/partners/billing/billing_period.py +13 -0
  743. office365/partners/partners.py +5 -4
  744. office365/planner/buckets/collection.py +2 -2
  745. office365/planner/plans/details.py +3 -9
  746. office365/planner/user.py +6 -4
  747. office365/reports/internal/queries/create_report_query.py +26 -12
  748. office365/reports/print_usage.py +67 -0
  749. office365/reports/print_usage_by_printer.py +21 -0
  750. office365/reports/print_usage_by_user.py +16 -0
  751. office365/reports/relying_party_detailed_summary.py +70 -0
  752. office365/reports/root.py +77 -95
  753. office365/runtime/auth/authentication_context.py +46 -15
  754. office365/runtime/auth/entra/authentication_context.py +22 -2
  755. office365/runtime/auth/providers/acs_token_provider.py +6 -2
  756. office365/runtime/auth/providers/cookie_provider.py +7 -3
  757. office365/runtime/auth/providers/saml_token_provider.py +6 -2
  758. office365/runtime/auth/sts_profile.py +1 -1
  759. office365/runtime/client_object.py +68 -67
  760. office365/runtime/client_object_collection.py +143 -30
  761. office365/runtime/client_request.py +77 -1
  762. office365/runtime/client_request_exception.py +173 -26
  763. office365/runtime/client_result.py +26 -18
  764. office365/runtime/client_runtime_context.py +303 -25
  765. office365/runtime/client_value.py +14 -40
  766. office365/runtime/client_value_collection.py +4 -8
  767. office365/runtime/converters/__init__.py +1 -0
  768. office365/runtime/converters/csv_reader.py +94 -0
  769. office365/runtime/converters/csv_writer.py +66 -0
  770. office365/runtime/converters/dataframe.py +202 -0
  771. office365/runtime/converters/excel.py +44 -0
  772. office365/runtime/converters/json_file.py +30 -0
  773. office365/runtime/converters/keyvalue.py +95 -0
  774. office365/runtime/converters/ndjson.py +17 -0
  775. office365/runtime/converters/parquet.py +67 -0
  776. office365/runtime/converters/records.py +101 -0
  777. office365/runtime/converters/registry.py +185 -0
  778. office365/runtime/converters/scalars.py +159 -0
  779. office365/runtime/converters/sql.py +69 -0
  780. office365/runtime/converters/streamers.py +105 -0
  781. office365/runtime/converters/streams.py +42 -0
  782. office365/runtime/converters/upsert.py +101 -0
  783. office365/runtime/converters/value.py +186 -0
  784. office365/runtime/decorators.py +27 -0
  785. office365/runtime/exceptions.py +105 -0
  786. office365/runtime/http/mime.py +12 -0
  787. office365/runtime/http/prefer.py +26 -0
  788. office365/runtime/http/throttling.py +407 -0
  789. office365/runtime/http/url.py +36 -0
  790. office365/runtime/imports.py +571 -0
  791. office365/runtime/limits.py +455 -0
  792. office365/runtime/odata/batch_util.py +92 -0
  793. office365/runtime/odata/query_options.py +26 -1
  794. office365/runtime/odata/request.py +38 -18
  795. office365/runtime/odata/type.py +48 -105
  796. office365/runtime/odata/v3/batch_request.py +90 -1
  797. office365/runtime/odata/v4/batch_request.py +106 -3
  798. office365/runtime/odata/v4/upload_session.py +4 -0
  799. office365/runtime/odata/v4/upload_session_request.py +26 -10
  800. office365/runtime/operations.py +164 -0
  801. office365/runtime/parallel.py +94 -0
  802. office365/runtime/paths/builder.py +4 -2
  803. office365/runtime/paths/v4/entity.py +2 -2
  804. office365/runtime/queries/batch.py +40 -14
  805. office365/runtime/queries/client_query.py +8 -10
  806. office365/runtime/queries/deferred.py +72 -0
  807. office365/runtime/queries/delete_entity.py +2 -2
  808. office365/runtime/queries/function.py +35 -1
  809. office365/runtime/queries/get_or_create.py +109 -0
  810. office365/runtime/queries/read_entity.py +23 -4
  811. office365/runtime/queries/update_entity.py +2 -2
  812. office365/runtime/queries/upload_session.py +1 -1
  813. office365/runtime/record_collection.py +443 -0
  814. office365/runtime/retry.py +203 -0
  815. office365/runtime/transport/base.py +6 -1
  816. office365/runtime/transport/requests_transport.py +4 -0
  817. office365/runtime/transport/throttled_transport.py +67 -0
  818. office365/runtime/types/binary_content.py +14 -0
  819. office365/runtime/types/ipv4_cidr_range.py +14 -0
  820. office365/runtime/types/ipv6_cidr_range.py +14 -0
  821. office365/runtime/types/json.py +10 -0
  822. office365/runtime/types/odata_property.py +7 -0
  823. office365/runtime/types/public_error.py +23 -0
  824. office365/runtime/types/public_inner_error.py +21 -0
  825. office365/runtime/types/setting_value.py +15 -0
  826. office365/runtime/verification.py +40 -0
  827. office365/search/request.py +2 -2
  828. office365/sharepoint/activities/logger.py +118 -8
  829. office365/sharepoint/administration/analytics/usage_service.py +15 -7
  830. office365/sharepoint/administration/sitemove/service.py +791 -8
  831. office365/sharepoint/agreements/summarydata.py +15 -5
  832. office365/sharepoint/alerts/alert.py +79 -0
  833. office365/sharepoint/apps/app_collection.py +25 -0
  834. office365/sharepoint/apps/launcher.py +16 -0
  835. office365/sharepoint/authentication/auth_file_detonation_request_response.py +48 -0
  836. office365/sharepoint/authentication/spo_auth_file_detonation_request.py +7 -0
  837. office365/sharepoint/authpolicy/tenant/compliancereport.py +5 -0
  838. office365/sharepoint/brandcenter/brand_font_file_delete_result.py +9 -0
  839. office365/sharepoint/businessdata/app_bdc_catalog.py +135 -0
  840. office365/sharepoint/businessdata/entityfieldvaluedictionary.py +65 -0
  841. office365/sharepoint/businessdata/entityidentifier.py +23 -0
  842. office365/sharepoint/businessdata/entityinstance.py +52 -0
  843. office365/sharepoint/businessdata/entityview.py +31 -0
  844. office365/sharepoint/businessdata/externalsubscriptionstore.py +9 -0
  845. office365/sharepoint/businessdata/typedescriptor.py +37 -0
  846. office365/sharepoint/changes/change.py +6 -0
  847. office365/sharepoint/changes/collection.py +1 -1
  848. office365/sharepoint/changes/item.py +4 -10
  849. office365/sharepoint/client_context.py +109 -47
  850. office365/sharepoint/clientsidecomponent/agreementssolutionfilecontext.py +1 -0
  851. office365/sharepoint/clientsidecomponent/hostedapps/app.py +21 -0
  852. office365/sharepoint/clientsidecomponent/hostedapps/manager.py +16 -0
  853. office365/sharepoint/clientsidecomponent/spteamsappcomponent.py +3 -0
  854. office365/sharepoint/comments/comment.py +84 -10
  855. office365/sharepoint/comments/contentanchor.py +6 -0
  856. office365/sharepoint/compliance/store_proxy.py +306 -68
  857. office365/sharepoint/compliance/tags/tag.py +3 -0
  858. office365/sharepoint/containers/active/properties.py +3 -0
  859. office365/sharepoint/contentcenter/machinelearning/column_autofill_choice_settings.py +15 -0
  860. office365/sharepoint/contentcenter/machinelearning/column_autofill_preview_data.py +25 -0
  861. office365/sharepoint/contentcenter/machinelearning/column_autofill_preview_result.py +12 -0
  862. office365/sharepoint/contentcenter/machinelearning/hub.py +231 -29
  863. office365/sharepoint/contentcenter/machinelearning/list_autofill_entity_data.py +15 -0
  864. office365/sharepoint/contentcenter/machinelearning/list_autofill_item_results.py +18 -0
  865. office365/sharepoint/contentcenter/machinelearning/modeldependencies.py +4 -3
  866. office365/sharepoint/contentcenter/machinelearning/models/model.py +231 -0
  867. office365/sharepoint/contentcenter/machinelearning/publications/publication.py +168 -0
  868. office365/sharepoint/contentcenter/machinelearning/samples/sample.py +120 -0
  869. office365/sharepoint/contentcenter/machinelearning/sp_machine_learning_doc_lib_autofill_item_results.py +19 -0
  870. office365/sharepoint/contentcenter/machinelearning/workitems/item.py +69 -0
  871. office365/sharepoint/contentsolution/template_api.py +148 -0
  872. office365/sharepoint/contenttypes/collection.py +37 -16
  873. office365/sharepoint/contenttypes/content_type.py +4 -10
  874. office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -7
  875. office365/sharepoint/convergence/addnoliveblobsinodcservicestateapi.py +9 -0
  876. office365/sharepoint/convergence/consumer_permissions.py +15 -0
  877. office365/sharepoint/convergence/migration_complete_state_api.py +25 -0
  878. office365/sharepoint/convergence/odcmetadatacleanedupapi.py +9 -0
  879. office365/sharepoint/directory/helper.py +5 -5
  880. office365/sharepoint/directory/multi_conditional_access_policy.py +37 -0
  881. office365/sharepoint/directory/named_location_policy.py +62 -0
  882. office365/sharepoint/directory/provider/provider.py +1 -1
  883. office365/sharepoint/documentmanagement/document_id.py +12 -0
  884. office365/sharepoint/entity.py +18 -5
  885. office365/sharepoint/entity_collection.py +2 -2
  886. office365/sharepoint/eventreceivers/definition_collection.py +32 -0
  887. office365/sharepoint/exceptions.py +194 -0
  888. office365/sharepoint/fields/builtin_field_id.py +45 -34
  889. office365/sharepoint/fields/builtin_field_name.py +123 -0
  890. office365/sharepoint/fields/coercion.py +131 -0
  891. office365/sharepoint/fields/collection.py +182 -67
  892. office365/sharepoint/fields/field.py +21 -2
  893. office365/sharepoint/fields/name.py +55 -0
  894. office365/sharepoint/files/checked_out_file.py +2 -6
  895. office365/sharepoint/files/collection.py +81 -8
  896. office365/sharepoint/files/file.py +122 -14
  897. office365/sharepoint/files/file_url_virus_status_update.py +22 -0
  898. office365/sharepoint/files/versionbatchdeleteparameters.py +1 -0
  899. office365/sharepoint/files/versions/version.py +40 -21
  900. office365/sharepoint/folders/collection.py +9 -2
  901. office365/sharepoint/folders/folder.py +271 -29
  902. office365/sharepoint/htmlpages/html_page.py +16 -0
  903. office365/sharepoint/htmlpages/html_page_service.py +19 -0
  904. office365/sharepoint/internal/image_content_part.py +5 -0
  905. office365/sharepoint/internal/paths/web.py +3 -1
  906. office365/sharepoint/internal/sticky_routing_options.py +13 -0
  907. office365/sharepoint/ir/migration.py +9 -0
  908. office365/sharepoint/likes/liked_by_information.py +2 -6
  909. office365/sharepoint/listitems/caml/__init__.py +31 -0
  910. office365/sharepoint/listitems/caml/builder.py +129 -0
  911. office365/sharepoint/listitems/caml/expressions.py +424 -0
  912. office365/sharepoint/listitems/caml/fields.py +68 -0
  913. office365/sharepoint/listitems/caml/guard.py +63 -0
  914. office365/sharepoint/listitems/caml/query.py +71 -2
  915. office365/sharepoint/listitems/caml/values.py +113 -0
  916. office365/sharepoint/listitems/collection.py +39 -10
  917. office365/sharepoint/listitems/compliance_info.py +1 -0
  918. office365/sharepoint/listitems/form_update_value.py +2 -1
  919. office365/sharepoint/listitems/listdata_validation_exception_value.py +3 -1
  920. office365/sharepoint/listitems/listitem.py +5 -5
  921. office365/sharepoint/listitems/upsert.py +75 -0
  922. office365/sharepoint/listitems/versions/version.py +3 -15
  923. office365/sharepoint/lists/batch_convert_item_result.py +19 -0
  924. office365/sharepoint/lists/batch_convert_result.py +17 -0
  925. office365/sharepoint/lists/collection.py +43 -0
  926. office365/sharepoint/lists/conversion_loss_item.py +13 -0
  927. office365/sharepoint/lists/conversion_loss_report.py +18 -0
  928. office365/sharepoint/lists/exporter.py +4 -3
  929. office365/sharepoint/lists/extended_share_point_permission_settings.py +17 -0
  930. office365/sharepoint/lists/list.py +459 -26
  931. office365/sharepoint/lists/list_forms_api.py +7 -0
  932. office365/sharepoint/lists/smart_wiki_library_utility.py +58 -0
  933. office365/sharepoint/logger/activityrequest.py +3 -0
  934. office365/sharepoint/logger/export.py +12 -0
  935. office365/sharepoint/marketplace/app_metadata.py +97 -1
  936. office365/sharepoint/marketplace/appstatequeryjobdefinition.py +9 -0
  937. office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_response.py +7 -3
  938. office365/sharepoint/marketplace/corporatecuratedgallery/available_addins_response.py +3 -1
  939. office365/sharepoint/marketplace/corporatecuratedgallery/carddesigns/card_designs.py +35 -0
  940. office365/sharepoint/marketplace/sitecollection/appcatalog/allowed_item.py +5 -0
  941. office365/sharepoint/marketplace/tenant/appcatalog/accessor.py +110 -39
  942. office365/sharepoint/microfeed/attachment_store.py +69 -0
  943. office365/sharepoint/microfeed/data.py +58 -0
  944. office365/sharepoint/microfeed/manager.py +259 -0
  945. office365/sharepoint/microfeed/microfeedstore.py +69 -0
  946. office365/sharepoint/microservice/manager.py +61 -0
  947. office365/sharepoint/migrationcenter/common/task.py +193 -4
  948. office365/sharepoint/migrationcenter/common/task_entity_data.py +1 -1
  949. office365/sharepoint/migrationcenter/deploy_status.py +13 -0
  950. office365/sharepoint/migrationcenter/service/performance/dashboard_data.py +4 -2
  951. office365/sharepoint/migrationcenter/service/properties.py +20 -0
  952. office365/sharepoint/migrationcenter/service/storage.py +34 -0
  953. office365/sharepoint/migrationcenter/spflight.py +13 -0
  954. office365/sharepoint/migrationcenter/urlparseresult.py +77 -0
  955. office365/sharepoint/multigeo/service/dfdeprecationjob.py +8 -1
  956. office365/sharepoint/multigeo/service/geoexperience.py +15 -0
  957. office365/sharepoint/multigeo/service/groupmovejob.py +9 -0
  958. office365/sharepoint/multigeo/service/move_job_report.py +23 -0
  959. office365/sharepoint/multigeo/service/movesiterostate.py +8 -1
  960. office365/sharepoint/multigeo/service/partner_company_id_lookup.py +22 -0
  961. office365/sharepoint/multigeo/service/services.py +3 -6
  962. office365/sharepoint/multigeo/service/sitemovejob.py +9 -0
  963. office365/sharepoint/multigeo/service/spmultigeoproxy.py +13 -0
  964. office365/sharepoint/navigation/menu/node.py +5 -3
  965. office365/sharepoint/navigation/menu/state.py +1 -1
  966. office365/sharepoint/navigation/nodes/collection.py +36 -1
  967. office365/sharepoint/navigation/service.py +2 -8
  968. office365/sharepoint/navigation/servicerest.py +127 -0
  969. office365/sharepoint/oauth/authentication.py +13 -0
  970. office365/sharepoint/permissions/roles/assignments/assignment.py +2 -8
  971. office365/sharepoint/permissions/roles/definitions/definition.py +3 -9
  972. office365/sharepoint/portal/groups/service.py +12 -0
  973. office365/sharepoint/portal/groups/site_manager.py +283 -32
  974. office365/sharepoint/portal/linkedsites/manager.py +25 -3
  975. office365/sharepoint/portal/sites/manager.py +197 -0
  976. office365/sharepoint/portal/theme_manager.py +120 -8
  977. office365/sharepoint/principal/principal.py +3 -8
  978. office365/sharepoint/principal/users/user.py +15 -6
  979. office365/sharepoint/publishing/announcements/controller.py +31 -0
  980. office365/sharepoint/publishing/campaign/campaign.py +36 -1
  981. office365/sharepoint/publishing/content_distribution_controller.py +23 -0
  982. office365/sharepoint/publishing/copytoparams.py +3 -0
  983. office365/sharepoint/publishing/diagnostics/controller.py +12 -0
  984. office365/sharepoint/publishing/emailpublishingstatus.py +4 -2
  985. office365/sharepoint/publishing/engage_distribution_info.py +2 -0
  986. office365/sharepoint/publishing/feedvideopage.py +351 -0
  987. office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +40 -0
  988. office365/sharepoint/publishing/pages/3d/page.py +308 -0
  989. office365/sharepoint/publishing/pages/campaign/publication.py +549 -7
  990. office365/sharepoint/publishing/pages/metadata.py +6 -11
  991. office365/sharepoint/publishing/pages/page.py +358 -6
  992. office365/sharepoint/publishing/pages/reposts/repost.py +327 -0
  993. office365/sharepoint/publishing/pages/service.py +95 -43
  994. office365/sharepoint/publishing/pages/topics/topic.py +307 -0
  995. office365/sharepoint/publishing/point/post.py +28 -0
  996. office365/sharepoint/publishing/point/postservicemanager.py +31 -0
  997. office365/sharepoint/publishing/point/tenantmanager.py +9 -0
  998. office365/sharepoint/publishing/point/user.py +9 -0
  999. office365/sharepoint/publishing/portallaunchwavesmanager.py +36 -0
  1000. office365/sharepoint/publishing/portalnavigationcachewrapper.py +21 -0
  1001. office365/sharepoint/publishing/rich_sharing.py +12 -0
  1002. office365/sharepoint/publishing/sites/communication/site.py +14 -6
  1003. office365/sharepoint/publishing/video/channel.py +112 -0
  1004. office365/sharepoint/publishing/video/item.py +231 -0
  1005. office365/sharepoint/publishing/videopermissiongroup.py +16 -0
  1006. office365/sharepoint/quotamanagement/consumer/consumer_quota_info_api.py +14 -0
  1007. office365/sharepoint/quotamanagement/consumer/non_quota_backfill_api.py +23 -0
  1008. office365/sharepoint/quotamanagement/consumer/nonquotamigrationapi.py +9 -0
  1009. office365/sharepoint/quotamanagement/consumer/quotamigrationapi.py +13 -0
  1010. office365/sharepoint/request.py +90 -21
  1011. office365/sharepoint/search/administration/document_crawl_log.py +24 -7
  1012. office365/sharepoint/search/administration/providers/crawl_versions_info.py +29 -0
  1013. office365/sharepoint/search/administration/providers/recycle_bin_info.py +23 -0
  1014. office365/sharepoint/search/administration/providers/site_content_processing_info.py +67 -0
  1015. office365/sharepoint/search/analytics/signal_store.py +15 -0
  1016. office365/sharepoint/search/promoted_result_query_rule.py +6 -2
  1017. office365/sharepoint/search/ranking_labeling.py +11 -0
  1018. office365/sharepoint/search/relevant_results.py +1 -1
  1019. office365/sharepoint/search/reordering_rule_collection.py +30 -0
  1020. office365/sharepoint/search/result.py +1 -1
  1021. office365/sharepoint/search/service.py +61 -0
  1022. office365/sharepoint/search/setting.py +75 -15
  1023. office365/sharepoint/search/simple_data_row.py +1 -1
  1024. office365/sharepoint/sharing/direct_abilities.py +1 -0
  1025. office365/sharepoint/sharing/main_link_audience_role_abilities.py +17 -0
  1026. office365/sharepoint/sharing/mainlinkabilities.py +3 -3
  1027. office365/sharepoint/sharing/mainlinkaudienceabilities.py +4 -0
  1028. office365/sharepoint/sharing/mainlinkinfo.py +4 -0
  1029. office365/sharepoint/sharing/object_sharing_settings.py +4 -10
  1030. office365/sharepoint/sitedesigns/app_settings_in_teams.py +6 -1
  1031. office365/sharepoint/sitedesigns/creation_info.py +1 -1
  1032. office365/sharepoint/sitedesigns/insert_field_response.py +10 -1
  1033. office365/sharepoint/sitedesigns/main_link_details.py +2 -0
  1034. office365/sharepoint/sitedesigns/sectiondesignideasapi.py +26 -0
  1035. office365/sharepoint/sitedesigns/thread_engagement_data.py +2 -0
  1036. office365/sharepoint/sites/home/sharepointhomeservicemanager.py +18 -0
  1037. office365/sharepoint/sites/manager/baaa_request.py +2 -0
  1038. office365/sharepoint/sites/manager/service.py +192 -5
  1039. office365/sharepoint/sites/site.py +988 -65
  1040. office365/sharepoint/sites/siteprovisioninginfoprovider.py +13 -0
  1041. office365/sharepoint/sites/version_policy_manager.py +6 -10
  1042. office365/sharepoint/sitescripts/utility.py +1 -1
  1043. office365/sharepoint/social/rest_thread.py +2 -6
  1044. office365/sharepoint/taxonomy/field.py +1 -0
  1045. office365/sharepoint/taxonomy/groups/group.py +2 -6
  1046. office365/sharepoint/taxonomy/item.py +12 -6
  1047. office365/sharepoint/taxonomy/service.py +18 -2
  1048. office365/sharepoint/teams/manage_channel_capabilities_request.py +3 -0
  1049. office365/sharepoint/tenant/administration/bulk_insert_operation_result.py +5 -0
  1050. office365/sharepoint/tenant/administration/catalog_management_category.py +23 -0
  1051. office365/sharepoint/tenant/administration/catalog_management_custom_property_map.py +3 -0
  1052. office365/sharepoint/tenant/administration/catalog_management_group.py +16 -0
  1053. office365/sharepoint/tenant/administration/catalog_management_schema.py +18 -0
  1054. office365/sharepoint/tenant/administration/catalog_management_status.py +23 -0
  1055. office365/sharepoint/tenant/administration/container/properties.py +6 -0
  1056. office365/sharepoint/tenant/administration/datagovernance/insight_client.py +292 -23
  1057. office365/sharepoint/tenant/administration/dataset_metadata_response.py +6 -0
  1058. office365/sharepoint/tenant/administration/ddiadapter.py +97 -0
  1059. office365/sharepoint/tenant/administration/internal/aad/collection.py +20 -0
  1060. office365/sharepoint/tenant/administration/internal/aad/permission_grant.py +0 -19
  1061. office365/sharepoint/tenant/administration/internal/appservice/permission_request.py +72 -1
  1062. office365/sharepoint/tenant/administration/internal/appservice/principal.py +1 -3
  1063. office365/sharepoint/tenant/administration/odb_license_enforcement_service.py +26 -0
  1064. office365/sharepoint/tenant/administration/ransomware/activitiesoverview.py +2 -1
  1065. office365/sharepoint/tenant/administration/rcd_categories_map.py +19 -0
  1066. office365/sharepoint/tenant/administration/rcd_category_detail_result.py +17 -0
  1067. office365/sharepoint/tenant/administration/rcd_group_definition.py +19 -0
  1068. office365/sharepoint/tenant/administration/rcd_group_metadata.py +20 -0
  1069. office365/sharepoint/tenant/administration/rcd_save_result.py +12 -0
  1070. office365/sharepoint/tenant/administration/rcd_site_status_detail.py +18 -0
  1071. office365/sharepoint/tenant/administration/secondary_administrators_info.py +0 -7
  1072. office365/sharepoint/tenant/administration/site_property_scope_config.py +1 -0
  1073. office365/sharepoint/tenant/administration/sites/properties.py +564 -6
  1074. office365/sharepoint/tenant/administration/spdatagovernancesarrestapiclient.py +60 -1
  1075. office365/sharepoint/tenant/administration/spom365agentinsightsm365agentsonsitesdetails.py +3 -1
  1076. office365/sharepoint/tenant/administration/tenant.py +94 -227
  1077. office365/sharepoint/tenant/administration/tenant_admin_ransomware_event_site_restore_point.py +1 -0
  1078. office365/sharepoint/tenant/administration/tenant_data_loss_prevention_quarantine_settings.py +17 -0
  1079. office365/sharepoint/tenant/cdn_api.py +18 -4
  1080. office365/sharepoint/tenant/insights/reports/manager.py +24 -12
  1081. office365/sharepoint/tenant/management/office365_tenant.py +466 -12
  1082. office365/sharepoint/tenantadministration/catalog_management_collection.py +69 -0
  1083. office365/sharepoint/tenantadministration/catalog_management_custom_properties_collection.py +237 -0
  1084. office365/sharepoint/tenantadministration/catalog_management_restricted_content_discovery_collection.py +56 -0
  1085. office365/sharepoint/tenantadministration/sp_data_governance_client_exception.py +7 -0
  1086. office365/sharepoint/tenantadministration/spo_file_archive_policy_info.py +28 -0
  1087. office365/sharepoint/tenantadministration/spo_file_archive_policy_report_info.py +20 -0
  1088. office365/sharepoint/tenantadministration/spo_file_archive_policy_site_info.py +15 -0
  1089. office365/sharepoint/tenantadministration/spom365_agent_insights_top20_agents_details.py +14 -0
  1090. office365/sharepoint/thresholds.py +529 -0
  1091. office365/sharepoint/translation/jobs/job.py +72 -2
  1092. office365/sharepoint/translation/jobs/status.py +47 -9
  1093. office365/sharepoint/translation/sync_translator.py +15 -2
  1094. office365/sharepoint/types/resource_path.py +2 -1
  1095. office365/sharepoint/usercustomactions/collection.py +41 -0
  1096. office365/sharepoint/userprofiles/person_properties.py +4 -10
  1097. office365/sharepoint/utilities/autofillcolumninfo.py +2 -0
  1098. office365/sharepoint/utilities/llmcolumninfo.py +2 -0
  1099. office365/sharepoint/utilities/move_copy_util.py +285 -10
  1100. office365/sharepoint/viva/connections/page.py +27 -0
  1101. office365/sharepoint/viva/home.py +38 -0
  1102. office365/sharepoint/viva/learningmanager.py +9 -0
  1103. office365/sharepoint/viva/site_manager.py +10 -0
  1104. office365/sharepoint/viva/vivaresources.py +60 -0
  1105. office365/sharepoint/webhooks/subscription.py +30 -1
  1106. office365/sharepoint/webhooks/subscription_information.py +2 -2
  1107. office365/sharepoint/webparts/definitions/definition.py +21 -10
  1108. office365/sharepoint/webparts/limited_manager.py +30 -12
  1109. office365/sharepoint/webs/context_web_information.py +14 -9
  1110. office365/sharepoint/webs/regional_settings.py +11 -15
  1111. office365/sharepoint/webs/templates/__init__.py +11 -0
  1112. office365/sharepoint/webs/templates/type.py +74 -15
  1113. office365/sharepoint/webs/time_zone.py +9 -6
  1114. office365/sharepoint/webs/web.py +57 -10
  1115. office365/sharepoint/webs/web_fetch_result.py +13 -0
  1116. office365/sharepoint/workflow/definition.py +6 -0
  1117. office365/sharepoint/workflow/deployment_service.py +155 -0
  1118. office365/sharepoint/workflow/instances/service.py +33 -0
  1119. office365/sharepoint/workflow/interopservice.py +68 -0
  1120. office365/sharepoint/workflow/messagingservice.py +24 -0
  1121. office365/sharepoint/workflow/servicesmanager.py +41 -2
  1122. office365/sharepoint/workflow/subscriptions/service.py +67 -0
  1123. office365/sharepoint/workflow/subscriptions/subscription.py +31 -0
  1124. office365/sharepoint/workflow/task.py +425 -0
  1125. office365/subscriptions/subscription.py +2 -8
  1126. office365/teams/administration/account_type.py +17 -0
  1127. office365/teams/administration/activation_state.py +16 -0
  1128. office365/teams/administration/assignment_category.py +8 -1
  1129. office365/teams/administration/assignment_status.py +18 -0
  1130. office365/teams/administration/customer_action.py +13 -0
  1131. office365/teams/administration/number_capability.py +15 -0
  1132. office365/teams/administration/number_source.py +13 -0
  1133. office365/teams/administration/number_type.py +15 -0
  1134. office365/teams/administration/port_in_status.py +13 -0
  1135. office365/teams/administration/reverse_number_lookup_option.py +12 -0
  1136. office365/teams/apps/app.py +5 -5
  1137. office365/teams/apps/installed_event_message_detail.py +17 -0
  1138. office365/teams/apps/removed_event_message_detail.py +17 -0
  1139. office365/teams/apps/upgraded_event_message_detail.py +17 -0
  1140. office365/teams/archived_event_message_detail.py +16 -0
  1141. office365/teams/channels/channel.py +23 -22
  1142. office365/teams/channels/collection.py +10 -5
  1143. office365/teams/chats/chat.py +36 -27
  1144. office365/teams/chats/collection.py +19 -0
  1145. office365/teams/chats/messages/body.py +32 -0
  1146. office365/teams/chats/messages/collection.py +43 -0
  1147. office365/teams/chats/messages/hosted_content.py +27 -0
  1148. office365/teams/chats/messages/message.py +68 -3
  1149. office365/teams/class_settings.py +14 -0
  1150. office365/teams/collection.py +89 -14
  1151. office365/teams/created_event_message_detail.py +18 -0
  1152. office365/teams/description_updated_event_message_detail.py +17 -0
  1153. office365/teams/joining_disabled_event_message_detail.py +16 -0
  1154. office365/teams/joining_enabled_event_message_detail.py +16 -0
  1155. office365/teams/licensing_details.py +14 -0
  1156. office365/teams/members/aad_user_conversation.py +4 -4
  1157. office365/teams/members/conversation.py +3 -3
  1158. office365/teams/members/conversation_collection.py +7 -9
  1159. office365/teams/members_notification_recipient.py +14 -0
  1160. office365/teams/operations/async_operation.py +59 -8
  1161. office365/teams/operations/type.py +4 -1
  1162. office365/teams/renamed_event_message_detail.py +17 -0
  1163. office365/teams/schedule/entitytheme.py +23 -0
  1164. office365/teams/schedule/time_card_break.py +19 -0
  1165. office365/teams/schedule/time_card_entry.py +19 -0
  1166. office365/teams/schedule/time_card_event.py +18 -0
  1167. office365/teams/schedule/time_card_state.py +14 -0
  1168. office365/teams/schedule/time_clock_settings.py +15 -0
  1169. office365/teams/schedule/time_off_details.py +15 -0
  1170. office365/teams/schedule/time_off_item.py +14 -0
  1171. office365/teams/schedule/time_off_reason_icon_type.py +32 -0
  1172. office365/teams/tabs/updated_event_message_detail.py +16 -0
  1173. office365/teams/team.py +88 -46
  1174. office365/teams/teamwork/application_identity.py +15 -0
  1175. office365/teams/teamwork/shiftmanagement/user_solution_root.py +4 -0
  1176. office365/teams/teamwork/user.py +6 -8
  1177. office365/teams/teamwork/workforce_integration_encryption_protocol.py +12 -0
  1178. office365/teams/teamwork/workforce_integration_supported_entities.py +22 -0
  1179. office365/teams/unarchived_event_message_detail.py +16 -0
  1180. office365/teams/viva/employee_experience_user.py +5 -3
  1181. office365/todo/attachments/collection.py +78 -3
  1182. office365/todo/attachments/info.py +17 -1
  1183. office365/todo/attachments/session.py +74 -0
  1184. office365/todo/attachments/type.py +14 -2
  1185. office365/todo/linked_resource.py +10 -0
  1186. office365/todo/tasks/collection.py +5 -3
  1187. office365/todo/tasks/lists/collection.py +4 -4
  1188. office365/todo/tasks/lists/list.py +36 -0
  1189. office365/todo/tasks/task.py +95 -8
  1190. office365/todo/todo.py +5 -2
  1191. office365_rest_python_client-3.2.0.dist-info/METADATA +605 -0
  1192. {office365_rest_python_client-3.0.0.dist-info → office365_rest_python_client-3.2.0.dist-info}/RECORD +1328 -690
  1193. office365/migration/assessor.py +0 -243
  1194. office365/onedrive/termstore/store_exporter.py +0 -40
  1195. office365/onedrive/termstore/store_importer.py +0 -34
  1196. office365/runtime/csv_writer.py +0 -77
  1197. office365/runtime/odata/member.py +0 -14
  1198. office365/runtime/odata/method.py +0 -19
  1199. office365/runtime/odata/model.py +0 -54
  1200. office365/runtime/odata/parameter.py +0 -19
  1201. office365/runtime/odata/property.py +0 -19
  1202. office365/runtime/odata/query_options_builder.py +0 -38
  1203. office365/runtime/odata/reader.py +0 -99
  1204. office365/runtime/odata/type_information.py +0 -32
  1205. office365/runtime/odata/v3/metadata_reader.py +0 -52
  1206. office365/runtime/odata/v4/metadata_reader.py +0 -28
  1207. office365/runtime/queries/noop.py +0 -17
  1208. office365/runtime/utilities.py +0 -226
  1209. office365/sharepoint/listitems/caml/types.py +0 -70
  1210. office365/sharepoint/migration/assessment/scanners/base.py +0 -57
  1211. office365/sharepoint/migration/assessment/scanners/list.py +0 -68
  1212. office365/sharepoint/migration/assessment/scanners/site.py +0 -25
  1213. office365/todo/wellknown_list_name.py +0 -2
  1214. office365_rest_python_client-3.0.0.dist-info/METADATA +0 -465
  1215. /office365/directory/identitygovernance/accessreview/{access_review_history_instance.py → history_instance.py} +0 -0
  1216. /office365/directory/identitygovernance/accessreview/{access_review_instance_decision_item.py → instance_decision_item.py} +0 -0
  1217. /office365/directory/identitygovernance/accessreview/{access_review_reviewer.py → reviewer.py} +0 -0
  1218. /office365/directory/identitygovernance/accessreview/{access_review_schedule_definition.py → schedule_definition.py} +0 -0
  1219. /office365/directory/identitygovernance/{accessreview/access_package_text_input_question.py → entitlementmanagement/accesspackage/text_input_question.py} +0 -0
  1220. /office365/directory/{security/data_security → recovery}/__init__.py +0 -0
  1221. /office365/directory/security/{active_directory_domain_evidence.py → alerts/active_directory_domain_evidence.py} +0 -0
  1222. /office365/directory/security/{azure_resource_evidence.py → alerts/azure_resource_evidence.py} +0 -0
  1223. /office365/{sharepoint/migration → directory/security/audit}/__init__.py +0 -0
  1224. /office365/directory/security/{a365_ai_execute_tool.py → audit/a365_ai_execute_tool.py} +0 -0
  1225. /office365/directory/security/{aad_risk_detection_audit_record.py → audit/aad_risk_detection_audit_record.py} +0 -0
  1226. /office365/directory/security/{ai_app_interaction_audit_record.py → audit/ai_app_interaction_audit_record.py} +0 -0
  1227. /office365/directory/security/{ai_execute_tool_audit_record.py → audit/ai_execute_tool_audit_record.py} +0 -0
  1228. /office365/directory/security/{ai_interactions_change_notification_audit_record.py → audit/ai_interactions_change_notification_audit_record.py} +0 -0
  1229. /office365/directory/security/{ai_interactions_export_audit_record.py → audit/ai_interactions_export_audit_record.py} +0 -0
  1230. /office365/directory/security/{ai_interactions_subscription_audit_record.py → audit/ai_interactions_subscription_audit_record.py} +0 -0
  1231. /office365/directory/security/{ai_invoke_agent_audit_record.py → audit/ai_invoke_agent_audit_record.py} +0 -0
  1232. /office365/directory/security/{ai_span_outputs_audit_record.py → audit/ai_span_outputs_audit_record.py} +0 -0
  1233. /office365/directory/security/{air_manual_investigation_data.py → audit/air_manual_investigation_data.py} +0 -0
  1234. /office365/directory/security/{alert_submission_audit_record.py → audit/alert_submission_audit_record.py} +0 -0
  1235. /office365/directory/security/{alert_submission_result_detail_audit_record.py → audit/alert_submission_result_detail_audit_record.py} +0 -0
  1236. /office365/directory/security/{attack_sim_admin_audit_record.py → audit/attack_sim_admin_audit_record.py} +0 -0
  1237. /office365/directory/security/{attack_sim_audit_record.py → audit/attack_sim_audit_record.py} +0 -0
  1238. /office365/directory/security/{audit_config_audit_record.py → audit/audit_config_audit_record.py} +0 -0
  1239. /office365/directory/security/{audit_record_type_dictionary.py → audit/audit_record_type_dictionary.py} +0 -0
  1240. /office365/directory/security/{audit_search_audit_record.py → audit/audit_search_audit_record.py} +0 -0
  1241. /office365/directory/security/{azfw_application_rule_aggregation_event_record.py → audit/azfw_application_rule_aggregation_event_record.py} +0 -0
  1242. /office365/directory/security/{azfw_dns_query_event_record.py → audit/azfw_dns_query_event_record.py} +0 -0
  1243. /office365/directory/security/{azfw_network_rule_event_record.py → audit/azfw_network_rule_event_record.py} +0 -0
  1244. /office365/directory/security/{azure_active_directory_account_logon_audit_record.py → audit/azure_active_directory_account_logon_audit_record.py} +0 -0
  1245. /office365/directory/security/{azure_active_directory_audit_record.py → audit/azure_active_directory_audit_record.py} +0 -0
  1246. /office365/directory/security/{azure_active_directory_sts_logon_audit_record.py → audit/azure_active_directory_sts_logon_audit_record.py} +0 -0
  1247. /office365/directory/security/{azure_ai_search_audit_record.py → audit/azure_ai_search_audit_record.py} +0 -0
  1248. /office365/directory/security/{campaign_audit_record.py → audit/campaign_audit_record.py} +0 -0
  1249. /office365/directory/security/{ccrai_policy_violation_record.py → audit/ccrai_policy_violation_record.py} +0 -0
  1250. /office365/directory/security/{cdp_classifier_health_record.py → audit/cdp_classifier_health_record.py} +0 -0
  1251. /office365/directory/security/{cdp_cold_crawl_status_record.py → audit/cdp_cold_crawl_status_record.py} +0 -0
  1252. /office365/directory/security/{cdp_consumption_resource_record.py → audit/cdp_consumption_resource_record.py} +0 -0
  1253. /office365/directory/security/{cdp_content_explorer_aggregate_record.py → audit/cdp_content_explorer_aggregate_record.py} +0 -0
  1254. /office365/directory/security/{cdp_dlp_sensitive_endpoint_audit_record.py → audit/cdp_dlp_sensitive_endpoint_audit_record.py} +0 -0
  1255. /office365/directory/security/{cdp_log_record.py → audit/cdp_log_record.py} +0 -0
  1256. /office365/directory/security/{cdp_ocr_billing_record.py → audit/cdp_ocr_billing_record.py} +0 -0
  1257. /office365/directory/security/{cdp_resource_scope_change_event_record.py → audit/cdp_resource_scope_change_event_record.py} +0 -0
  1258. /office365/directory/security/{cdpdlmai_interaction_insights_record.py → audit/cdpdlmai_interaction_insights_record.py} +0 -0
  1259. /office365/directory/security/{cloud_update_device_config_audit_record.py → audit/cloud_update_device_config_audit_record.py} +0 -0
  1260. /office365/directory/security/{cloud_update_profile_config_audit_record.py → audit/cloud_update_profile_config_audit_record.py} +0 -0
  1261. /office365/directory/security/{cloud_update_tenant_config_audit_record.py → audit/cloud_update_tenant_config_audit_record.py} +0 -0
  1262. /office365/directory/security/{compliance_connector_audit_record.py → audit/compliance_connector_audit_record.py} +0 -0
  1263. /office365/directory/security/{compliance_dlm_exchange_audit_record.py → audit/compliance_dlm_exchange_audit_record.py} +0 -0
  1264. /office365/directory/security/{compliance_dlm_share_point_audit_record.py → audit/compliance_dlm_share_point_audit_record.py} +0 -0
  1265. /office365/directory/security/{compliance_dlp_applications_audit_record.py → audit/compliance_dlp_applications_audit_record.py} +0 -0
  1266. /office365/directory/security/{compliance_dlp_applications_classification_audit_record.py → audit/compliance_dlp_applications_classification_audit_record.py} +0 -0
  1267. /office365/directory/security/{compliance_dlp_endpoint_audit_record.py → audit/compliance_dlp_endpoint_audit_record.py} +0 -0
  1268. /office365/directory/security/{compliance_dlp_endpoint_discovery_audit_record.py → audit/compliance_dlp_endpoint_discovery_audit_record.py} +0 -0
  1269. /office365/directory/security/{compliance_dlp_enforcement_audit_record.py → audit/compliance_dlp_enforcement_audit_record.py} +0 -0
  1270. /office365/directory/security/{compliance_dlp_exchange_audit_record.py → audit/compliance_dlp_exchange_audit_record.py} +0 -0
  1271. /office365/directory/security/{compliance_dlp_exchange_classification_audit_record.py → audit/compliance_dlp_exchange_classification_audit_record.py} +0 -0
  1272. /office365/directory/security/{compliance_dlp_exchange_classification_cdp_record.py → audit/compliance_dlp_exchange_classification_cdp_record.py} +0 -0
  1273. /office365/directory/security/{compliance_dlp_exchange_discovery_audit_record.py → audit/compliance_dlp_exchange_discovery_audit_record.py} +0 -0
  1274. /office365/directory/security/{compliance_dlp_share_point_audit_record.py → audit/compliance_dlp_share_point_audit_record.py} +0 -0
  1275. /office365/directory/security/{compliance_dlp_share_point_classification_audit_record.py → audit/compliance_dlp_share_point_classification_audit_record.py} +0 -0
  1276. /office365/directory/security/{compliance_dlp_share_point_classification_cdp_record.py → audit/compliance_dlp_share_point_classification_cdp_record.py} +0 -0
  1277. /office365/directory/security/{compliance_dlp_share_point_classification_extended_audit_record.py → audit/compliance_dlp_share_point_classification_extended_audit_record.py} +0 -0
  1278. /office365/directory/security/{compliance_exchange_ocr_audit_record.py → audit/compliance_exchange_ocr_audit_record.py} +0 -0
  1279. /office365/directory/security/{compliance_manager_action_record.py → audit/compliance_manager_action_record.py} +0 -0
  1280. /office365/directory/security/{compliance_policy_grading_share_point_audit_record.py → audit/compliance_policy_grading_share_point_audit_record.py} +0 -0
  1281. /office365/directory/security/{compliance_settings_change_audit_record.py → audit/compliance_settings_change_audit_record.py} +0 -0
  1282. /office365/directory/security/{compliance_sit_grading_share_point_audit_record.py → audit/compliance_sit_grading_share_point_audit_record.py} +0 -0
  1283. /office365/directory/security/{compliance_supervision_exchange_audit_record.py → audit/compliance_supervision_exchange_audit_record.py} +0 -0
  1284. /office365/directory/security/{connected_ai_app_interaction_audit_record.py → audit/connected_ai_app_interaction_audit_record.py} +0 -0
  1285. /office365/directory/security/{consumption_resource_audit_record.py → audit/consumption_resource_audit_record.py} +0 -0
  1286. /office365/directory/security/{content_store_metadata_record.py → audit/content_store_metadata_record.py} +0 -0
  1287. /office365/directory/security/{copilot_agent_management_audit_record.py → audit/copilot_agent_management_audit_record.py} +0 -0
  1288. /office365/directory/security/{copilot_for_security_logging_audit_record.py → audit/copilot_for_security_logging_audit_record.py} +0 -0
  1289. /office365/directory/security/{copilot_for_security_trigger_audit_record.py → audit/copilot_for_security_trigger_audit_record.py} +0 -0
  1290. /office365/directory/security/{copilot_interaction_audit_record.py → audit/copilot_interaction_audit_record.py} +0 -0
  1291. /office365/directory/security/{copilot_plugin_setting_audit_record.py → audit/copilot_plugin_setting_audit_record.py} +0 -0
  1292. /office365/directory/security/{copilot_prompt_book_setting_audit_record.py → audit/copilot_prompt_book_setting_audit_record.py} +0 -0
  1293. /office365/directory/security/{copilot_session_sharing_audit_record.py → audit/copilot_session_sharing_audit_record.py} +0 -0
  1294. /office365/directory/security/{copilot_setting_audit_record.py → audit/copilot_setting_audit_record.py} +0 -0
  1295. /office365/directory/security/{copilot_workspace_setting_audit_record.py → audit/copilot_workspace_setting_audit_record.py} +0 -0
  1296. /office365/directory/security/{core_reporting_settings_audit_record.py → audit/core_reporting_settings_audit_record.py} +0 -0
  1297. /office365/directory/security/{critical_asset_management_classification_record.py → audit/critical_asset_management_classification_record.py} +0 -0
  1298. /office365/directory/security/{crm_entity_operation_audit_record.py → audit/crm_entity_operation_audit_record.py} +0 -0
  1299. /office365/directory/security/{cross_tenant_access_policy_audit_record.py → audit/cross_tenant_access_policy_audit_record.py} +0 -0
  1300. /office365/directory/security/{device_discovery_settings_authenticated_scans_record.py → audit/device_discovery_settings_authenticated_scans_record.py} +0 -0
  1301. /office365/directory/security/{device_discovery_settings_exclusion_record.py → audit/device_discovery_settings_exclusion_record.py} +0 -0
  1302. /office365/directory/security/{device_discovery_settings_record.py → audit/device_discovery_settings_record.py} +0 -0
  1303. /office365/directory/security/{discovery_audit_record.py → audit/discovery_audit_record.py} +0 -0
  1304. /office365/directory/security/{dlp_endpoint_audit_record.py → audit/dlp_endpoint_audit_record.py} +0 -0
  1305. /office365/directory/security/{dlp_import_result_audit_record.py → audit/dlp_import_result_audit_record.py} +0 -0
  1306. /office365/directory/security/{dragon_copilot_access_record.py → audit/dragon_copilot_access_record.py} +0 -0
  1307. /office365/directory/security/{dragon_copilot_admin_record.py → audit/dragon_copilot_admin_record.py} +0 -0
  1308. /office365/directory/security/{dragon_copilot_clinical_data_record.py → audit/dragon_copilot_clinical_data_record.py} +0 -0
  1309. /office365/directory/security/{dragon_copilot_session_record.py → audit/dragon_copilot_session_record.py} +0 -0
  1310. /office365/directory/security/{dynamics365_business_central_audit_record.py → audit/dynamics365_business_central_audit_record.py} +0 -0
  1311. /office365/directory/security/{ehr_connector_audit_base_record.py → audit/ehr_connector_audit_base_record.py} +0 -0
  1312. /office365/directory/security/{eop_submission_feed_entity_audit_record.py → audit/eop_submission_feed_entity_audit_record.py} +0 -0
  1313. /office365/directory/security/{exchange_admin_audit_record.py → audit/exchange_admin_audit_record.py} +0 -0
  1314. /office365/directory/security/{exchange_aggregated_mailbox_audit_record.py → audit/exchange_aggregated_mailbox_audit_record.py} +0 -0
  1315. /office365/directory/security/{exchange_aggregated_operation_record.py → audit/exchange_aggregated_operation_record.py} +0 -0
  1316. /office365/directory/security/{exchange_mailbox_audit_group_record.py → audit/exchange_mailbox_audit_group_record.py} +0 -0
  1317. /office365/directory/security/{exchange_mailbox_audit_record.py → audit/exchange_mailbox_audit_record.py} +0 -0
  1318. /office365/directory/security/{hosted_rpa_audit_record.py → audit/hosted_rpa_audit_record.py} +0 -0
  1319. /office365/directory/security/{hr_signal_audit_record.py → audit/hr_signal_audit_record.py} +0 -0
  1320. /office365/directory/security/{hygiene_event_record.py → audit/hygiene_event_record.py} +0 -0
  1321. /office365/directory/security/{information_barrier_policy_application_audit_record.py → audit/information_barrier_policy_application_audit_record.py} +0 -0
  1322. /office365/directory/security/{information_worker_protection_audit_record.py → audit/information_worker_protection_audit_record.py} +0 -0
  1323. /office365/directory/security/{insider_risk_scoped_user_insights_record.py → audit/insider_risk_scoped_user_insights_record.py} +0 -0
  1324. /office365/directory/security/{insider_risk_scoped_users_record.py → audit/insider_risk_scoped_users_record.py} +0 -0
  1325. /office365/directory/security/{microsoft_stream_audit_record.py → audit/microsoft_stream_audit_record.py} +0 -0
  1326. /office365/directory/security/{microsoft_teams_admin_audit_record.py → audit/microsoft_teams_admin_audit_record.py} +0 -0
  1327. /office365/directory/security/{microsoft_teams_analytics_audit_record.py → audit/microsoft_teams_analytics_audit_record.py} +0 -0
  1328. /office365/directory/security/{microsoft_teams_audit_record.py → audit/microsoft_teams_audit_record.py} +0 -0
  1329. /office365/directory/security/{microsoft_teams_device_audit_record.py → audit/microsoft_teams_device_audit_record.py} +0 -0
  1330. /office365/directory/security/{microsoft_teams_retention_label_action_audit_record.py → audit/microsoft_teams_retention_label_action_audit_record.py} +0 -0
  1331. /office365/directory/security/{microsoft_teams_sensitivity_label_action_audit_record.py → audit/microsoft_teams_sensitivity_label_action_audit_record.py} +0 -0
  1332. /office365/directory/security/{microsoft_teams_shifts_audit_record.py → audit/microsoft_teams_shifts_audit_record.py} +0 -0
  1333. /office365/directory/security/{microsoft_teams_user_concern_audit_record.py → audit/microsoft_teams_user_concern_audit_record.py} +0 -0
  1334. /office365/directory/security/{whois_history_record.py → audit/whois_history_record.py} +0 -0
  1335. /office365/directory/security/{case.py → cases/case.py} +0 -0
  1336. /office365/{sharepoint/migration/assessment → directory/security/collaboration}/__init__.py +0 -0
  1337. /office365/directory/security/{analyzed_email.py → collaboration/analyzed_email.py} +0 -0
  1338. /office365/directory/security/{analyzed_email_authentication_detail.py → collaboration/analyzed_email_authentication_detail.py} +0 -0
  1339. /office365/directory/security/{analyzed_email_delivery_detail.py → collaboration/analyzed_email_delivery_detail.py} +0 -0
  1340. /office365/directory/security/{analyzed_email_dlp_rule_info.py → collaboration/analyzed_email_dlp_rule_info.py} +0 -0
  1341. /office365/directory/security/{analyzed_email_exchange_transport_rule_info.py → collaboration/analyzed_email_exchange_transport_rule_info.py} +0 -0
  1342. /office365/directory/security/{analyzed_email_recipient_detail.py → collaboration/analyzed_email_recipient_detail.py} +0 -0
  1343. /office365/directory/security/{analyzed_email_sender_detail.py → collaboration/analyzed_email_sender_detail.py} +0 -0
  1344. /office365/directory/security/{analyzed_email_url.py → collaboration/analyzed_email_url.py} +0 -0
  1345. /office365/{sharepoint/migration/assessment/scanners → directory/security/datasecurity}/__init__.py +0 -0
  1346. /office365/directory/security/{data_security → datasecurity}/sensitivity_label.py +0 -0
  1347. /office365/directory/security/{host_logon_session_evidence.py → threatintelligence/host_logon_session_evidence.py} +0 -0
  1348. /office365/directory/security/{host_reputation.py → threatintelligence/host_reputation.py} +0 -0
  1349. /office365/directory/security/{hostname.py → threatintelligence/hostname.py} +0 -0
  1350. {office365_rest_python_client-3.0.0.dist-info → office365_rest_python_client-3.2.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,109 @@
1
+ """Shared idempotent get-or-create helpers (the metadata analogue of upsert).
2
+
3
+ The ``ensure_*`` methods across the library all implement the same idea — return
4
+ an existing resource or create it — in one of two ways:
5
+
6
+ - **create-first** (:func:`create_or_get`): queue the create; if the server
7
+ reports a duplicate, load and return the existing resource.
8
+ - **get-first** (:func:`get_or_create`): queue a read; if it 404s, queue the
9
+ create in the read's queue slot (so later queries still run after it).
10
+
11
+ Both centralize the error classification (via the exception registry types) and
12
+ the ``copy_from``/``execute_first`` mechanics, so every ``ensure_*`` behaves the
13
+ same and a re-run is a no-op. ``on_conflict="update"`` reconciles an existing
14
+ resource's definition (the metadata upsert).
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ from typing import TYPE_CHECKING, Callable, Optional, Type, TypeVar
20
+
21
+ from office365.runtime.exceptions import DuplicatedObjectException, ObjectNotFoundException
22
+ from office365.runtime.queries.deferred import DeferredOperationQuery
23
+
24
+ if TYPE_CHECKING:
25
+ from office365.runtime.client_object import ClientObject
26
+ from office365.runtime.queries.client_query import ClientQuery
27
+
28
+ T = TypeVar("T", bound="ClientObject")
29
+
30
+ ON_CONFLICT_MODES = ("skip", "update")
31
+
32
+
33
+ def create_or_get(
34
+ create: Callable[[], T],
35
+ find: Callable[[], T],
36
+ *,
37
+ on_duplicate: Type[Exception] = DuplicatedObjectException,
38
+ on_conflict: str = "skip",
39
+ reconcile: Optional[Callable[[T], None]] = None,
40
+ ) -> T:
41
+ """Queue a create; on a duplicate, load and return the existing resource.
42
+
43
+ Args:
44
+ create: Queues the create and returns the new entity.
45
+ find: Queues the read of the existing entity and returns it.
46
+ on_duplicate: The exception type signalling the resource already exists.
47
+ on_conflict: ``"skip"`` (keep existing) or ``"update"`` (reconcile it).
48
+ reconcile: Applied to the existing entity when ``on_conflict="update"``.
49
+ """
50
+ if on_conflict not in ON_CONFLICT_MODES:
51
+ raise ValueError(f"on_conflict must be one of {ON_CONFLICT_MODES}, got {on_conflict!r}")
52
+ return_type = create()
53
+
54
+ def _apply(existing: "ClientObject") -> None:
55
+ return_type.copy_from(existing)
56
+ if on_conflict == "update" and callable(reconcile):
57
+ reconcile(return_type)
58
+
59
+ def _on_duplicate(error: Exception) -> None:
60
+ if not isinstance(error, on_duplicate):
61
+ raise error
62
+ find().after_execute(_apply, execute_first=True)
63
+
64
+ return_type.on_error(_on_duplicate)
65
+ return return_type
66
+
67
+
68
+ def get_or_create(
69
+ find: Callable[[], T],
70
+ create_query: Callable[[], "ClientQuery"],
71
+ return_type: T,
72
+ *,
73
+ on_missing: Type[Exception] = ObjectNotFoundException,
74
+ on_conflict: str = "skip",
75
+ reconcile: Optional[Callable[[T], None]] = None,
76
+ ) -> T:
77
+ """Queue a read; on a not-found, queue the create in the read's queue slot.
78
+
79
+ The create runs in the placeholder's position, so anything queued after the
80
+ ensure still runs after the resource exists (e.g. item creates after field
81
+ creates).
82
+
83
+ Args:
84
+ find: Queues the read of the existing entity and returns it.
85
+ create_query: Builds (does not queue) the create query.
86
+ return_type: The entity to populate (existing or created).
87
+ on_missing: The exception type signalling the resource is absent.
88
+ on_conflict: ``"skip"`` (keep existing) or ``"update"`` (reconcile it).
89
+ reconcile: Applied to the existing entity when ``on_conflict="update"``.
90
+ """
91
+ if on_conflict not in ON_CONFLICT_MODES:
92
+ raise ValueError(f"on_conflict must be one of {ON_CONFLICT_MODES}, got {on_conflict!r}")
93
+ context = return_type.context
94
+ barrier = DeferredOperationQuery(context, return_type=return_type)
95
+
96
+ def _on_found(existing: "ClientObject") -> None:
97
+ return_type.copy_from(existing)
98
+ if on_conflict == "update" and callable(reconcile):
99
+ reconcile(return_type)
100
+ barrier.resolve()
101
+
102
+ def _on_missing(error: Exception) -> None:
103
+ if not isinstance(error, on_missing):
104
+ raise error
105
+ barrier.defer(create_query())
106
+
107
+ find().after_execute(_on_found).on_error(_on_missing)
108
+ context.add_query(barrier)
109
+ return return_type
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, List, Optional
3
+ from typing import TYPE_CHECKING, List, Optional, cast
4
4
 
5
5
  from office365.runtime.client_value import ClientValue
6
6
  from office365.runtime.paths.service_operation import ServiceOperationPath
@@ -22,12 +22,31 @@ class ReadEntityQuery(ClientQuery[ReturnT]):
22
22
 
23
23
  @property
24
24
  def query_options(self) -> "QueryOptions":
25
- from office365.runtime.odata.query_options_builder import QueryOptionsBuilder
26
-
27
25
  if self._query_options is None:
28
- self._query_options = QueryOptionsBuilder.build(self._return_type, self._properties_to_include) # type: ignore[reportArgumentType]
26
+ self._query_options = self._build_query_options()
29
27
  return self._query_options
30
28
 
29
+ def _build_query_options(self) -> "QueryOptions":
30
+ """Resolve query options for the return object, expanding the requested properties."""
31
+ from office365.runtime.client_object import ClientObject
32
+ from office365.runtime.client_object_collection import ClientObjectCollection
33
+
34
+ client_object = cast(ClientObject, self._return_type)
35
+ query_options = client_object.query_options
36
+ for name in self._properties_to_include or []:
37
+ if name in query_options.select:
38
+ continue
39
+
40
+ if isinstance(client_object, ClientObjectCollection):
41
+ prop = client_object.create_typed_object().get_property(name)
42
+ else:
43
+ prop = client_object.get_property(name)
44
+
45
+ if name == "Properties" or isinstance(prop, ClientObject):
46
+ query_options.expand.append(name)
47
+ query_options.select.append(name)
48
+ return query_options
49
+
31
50
  @property
32
51
  def url(self) -> str:
33
52
  assert self.binding_type is not None
@@ -1,8 +1,8 @@
1
1
  from office365.runtime.client_object import ClientObject
2
- from office365.runtime.queries.client_query import ClientQuery
2
+ from office365.runtime.queries.client_query import ClientQuery, ReturnT
3
3
 
4
4
 
5
- class UpdateEntityQuery(ClientQuery):
5
+ class UpdateEntityQuery(ClientQuery[ReturnT]):
6
6
  """Represents an OData update operation for modifying an existing entity.
7
7
 
8
8
  This query type is used to construct and execute PATCH or PUT operations
@@ -5,7 +5,7 @@ from office365.runtime.odata.v4.upload_session import UploadSession
5
5
  from office365.runtime.queries.service_operation import ServiceOperationQuery
6
6
 
7
7
 
8
- class UploadSessionQuery(ServiceOperationQuery):
8
+ class UploadSessionQuery(ServiceOperationQuery[ClientResult[UploadSession]]):
9
9
  """
10
10
  The UploadSession query provides information about how to upload large files to OneDrive, OneDrive for
11
11
  Business, or SharePoint document libraries
@@ -0,0 +1,443 @@
1
+ """A collection that can be exported to / imported from tabular and record formats.
2
+
3
+ Keeps the data-interchange concern (pandas/CSV/JSON/NDJSON/Excel) out of the core
4
+ :class:`~office365.runtime.client_object_collection.ClientObjectCollection`, and
5
+ exposes named conveniences (``to_csv``/``from_dataframe``/``queue_dataframe`` …)
6
+ and unified ``export_to``/``from_records`` entry points backed by a format
7
+ registry. ``from_*`` is the **streaming** entry (returns an
8
+ :class:`~office365.runtime.imports.ImportResult` driver — bounded, resumable,
9
+ idempotent); ``queue_*`` is the deferred queue-all entry.
10
+
11
+ Keyed imports (skip/upsert) are opt-in: a subclass exposes an
12
+ :class:`~office365.runtime.converters.upsert.UpsertTarget` via :meth:`upsert_target`.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ from os import PathLike
18
+ from typing import IO, TYPE_CHECKING, Any, Callable, Dict, Iterable, List, Optional, Union
19
+
20
+ from typing_extensions import Self
21
+
22
+ from office365.runtime.client_object import ClientObjectT
23
+ from office365.runtime.client_object_collection import ClientObjectCollection
24
+ from office365.runtime.converters import registry
25
+ from office365.runtime.limits import SAFE_PAGE_SIZE
26
+ from office365.runtime.verification import VerificationReport
27
+
28
+ if TYPE_CHECKING:
29
+ from office365.runtime.converters.dataframe import DataFrameResult
30
+ from office365.runtime.converters.upsert import UpsertTarget
31
+ from office365.runtime.imports import CheckpointStore, ImportCheckpoint, ImportResult
32
+ from office365.runtime.operations import ProgressCallback
33
+
34
+
35
+ # The pipeline and the migration toolkit share one reconciliation report type.
36
+ VerificationResult = VerificationReport
37
+
38
+
39
+ def _apply_mapping(convert: Callable[[Any], list[dict]], mapping: Dict[str, str]) -> Callable[[Any], list[dict]]:
40
+ """Wrap a chunk converter to rename record keys (``source -> target``)."""
41
+
42
+ def mapped(chunk: Any) -> list[dict]:
43
+ return [{mapping.get(k, k): v for k, v in record.items()} for record in convert(chunk)]
44
+
45
+ return mapped
46
+
47
+
48
+ class RecordCollection(ClientObjectCollection[ClientObjectT]):
49
+ """A collection with record import/export capabilities."""
50
+
51
+ # ── Export ───────────────────────────────────────────────────
52
+
53
+ def export_to(self, target: Any, *, format: str = "csv", page_size: Optional[int] = None, **opts: Any) -> Self: # noqa: A002
54
+ """Deferred export of the loaded items to ``target`` in ``format``.
55
+
56
+ The writer is resolved from the format registry, so formats are pluggable.
57
+ Pass ``page_size`` to **stream** an appendable format (CSV/TSV/NDJSON/JSON)
58
+ page by page — bounded memory for large collections:
59
+
60
+ >>> client.users.get_all().export_to(f, format="csv").execute_query()
61
+ >>> lst.items.export_to("out.csv", page_size=2000).execute_query()
62
+ """
63
+ if page_size:
64
+ return self._export_paged(target, format, page_size, opts)
65
+ writer = registry.writer_for(format)
66
+ return self.after_execute(lambda _: writer(self, target, **opts))
67
+
68
+ def _export_paged(self, target: Any, format: str, page_size: int, opts: Dict[str, Any]) -> Self: # noqa: A002
69
+ """Page through the collection and append records (bounded memory)."""
70
+ from office365.runtime.converters import streamers
71
+ from office365.runtime.converters.records import records_from_items
72
+
73
+ factory = streamers.streamer_for(format)
74
+ if factory is None: # not appendable — write the whole collection at once
75
+ writer = registry.writer_for(format)
76
+ return self.after_execute(lambda _: writer(self, target, **opts))
77
+
78
+ stream = factory(target, **opts)
79
+ state = {"start": 0}
80
+
81
+ def _on_page(col: ClientObjectCollection) -> None:
82
+ items = list(col)[state["start"] :]
83
+ state["start"] = len(col)
84
+ stream.write(records_from_items(items, col.query_options.select, col.query_options.expand))
85
+ if not col.has_next:
86
+ stream.close()
87
+
88
+ self.get_all(page_size=page_size, page_loaded=_on_page)
89
+ return self
90
+
91
+ def to_records(self, raw: bool = False) -> List[Dict[str, Any]]:
92
+ """Project loaded items into plain dict records — the neutral export form.
93
+
94
+ The projection shared by every exporter: ``.select()``/``.expand()``
95
+ columns, one record per expanded child item, native JSON-safe values.
96
+ Unlike ``to_csv`` this returns a value directly, so load first.
97
+
98
+ Args:
99
+ raw: When True, keep native property values (no JSON coercion).
100
+ """
101
+ from office365.runtime.converters.records import iter_records
102
+
103
+ return iter_records(self, raw=raw)
104
+
105
+ def to_csv(self, file: IO[str]) -> Self:
106
+ """Export loaded items to CSV (deferred)."""
107
+ return self.export_to(file, format="csv")
108
+
109
+ def to_ndjson(self, file: IO[str]) -> Self:
110
+ """Export loaded items as NDJSON — one record per line (deferred)."""
111
+ return self.export_to(file, format="ndjson")
112
+
113
+ def to_excel(self, target: Union[str, PathLike]) -> Self:
114
+ """Export loaded items to an Excel (.xlsx) worksheet (deferred).
115
+
116
+ Requires the optional dependency (``pip install
117
+ office365-rest-python-client[excel]``).
118
+ """
119
+ return self.export_to(target, format="excel")
120
+
121
+ def to_parquet(self, target: Any) -> Self:
122
+ """Export loaded items to Parquet (deferred; requires the ``[parquet]`` extra)."""
123
+ return self.export_to(target, format="parquet")
124
+
125
+ def to_orc(self, target: Any) -> Self:
126
+ """Export loaded items to ORC (deferred; requires the ``[parquet]`` extra)."""
127
+ return self.export_to(target, format="orc")
128
+
129
+ def to_feather(self, target: Any) -> Self:
130
+ """Export loaded items to Feather (deferred; requires the ``[parquet]`` extra)."""
131
+ return self.export_to(target, format="feather")
132
+
133
+ def to_sql(self, target: Any, *, table: str, **opts: Any) -> Self:
134
+ """Write loaded items to a SQL table (deferred; requires the ``[sql]`` extra)."""
135
+ from office365.runtime.converters.records import iter_records
136
+ from office365.runtime.converters.sql import write_sql
137
+
138
+ return self.after_execute(lambda _: write_sql(iter_records(self), target, table=table, **opts))
139
+
140
+ def to_duckdb(self, target: Any, *, table: str, **opts: Any) -> Self:
141
+ """Write loaded items to a DuckDB table (deferred; requires the ``[duckdb]`` extra)."""
142
+ from office365.runtime.converters.records import iter_records
143
+ from office365.runtime.converters.sql import write_duckdb
144
+
145
+ return self.after_execute(lambda _: write_duckdb(iter_records(self), target, table=table, **opts))
146
+
147
+ def to_dataframe(self) -> "DataFrameResult":
148
+ """Build a pandas DataFrame from the loaded items (deferred result).
149
+
150
+ Returns a ``DataFrameResult`` whose ``.value`` holds the DataFrame after
151
+ ``execute_query()``. Requires the ``[pandas]`` extra.
152
+ """
153
+ from office365.runtime.converters.dataframe import DataFrameResult, require_pandas, write_dataframe
154
+
155
+ require_pandas() # fail fast on a missing optional dependency
156
+ result = DataFrameResult(self.context)
157
+ self.after_execute(lambda _: write_dataframe(self, result))
158
+ return result
159
+
160
+ # ── Import: deferred (queue-all) ─────────────────────────────
161
+
162
+ def queue_records(self, records: List[dict], progress: "ProgressCallback | None" = None) -> Self:
163
+ """Queue a create per record (deferred, run with ``execute_query()``).
164
+
165
+ The neutral queue-all counterpart of :meth:`to_records`. Records are
166
+ normalized to the item type and each becomes an entity queued for
167
+ creation. Use the streaming :meth:`from_records` for large or
168
+ resumable/idempotent imports (bounded memory).
169
+ """
170
+ from office365.runtime.converters.csv_reader import coerce_records
171
+
172
+ return self._import_records(coerce_records(self._item_type, records), progress=progress)
173
+
174
+ def queue_dataframe(self, df, progress: "ProgressCallback | None" = None) -> Self:
175
+ """Queue a create per DataFrame row (deferred, run with ``execute_query()``)."""
176
+ return self.queue_records(registry.reader_for("dataframe")(df), progress=progress)
177
+
178
+ def _import_records(self, records: List[dict], progress: "ProgressCallback | None" = None) -> Self:
179
+ """Queue a create per record, appending the pending entities to this collection."""
180
+ from office365.runtime.operations import query_progress_hook
181
+ from office365.runtime.queries.create_entity import CreateEntityQuery
182
+
183
+ hook = query_progress_hook(len(records), progress) if callable(progress) else None
184
+ for record in records:
185
+ entity = self.create_typed_object(record)
186
+ self.add_child(entity)
187
+ qry = CreateEntityQuery(self, entity, entity)
188
+ self.context.add_query(qry)
189
+ if hook is not None:
190
+ self.context.after_execute(hook)
191
+ return self
192
+
193
+ # ── Import: streaming (bounded, resumable, idempotent) ───────
194
+
195
+ def from_records(
196
+ self,
197
+ source: Any,
198
+ *,
199
+ format: str = "records", # noqa: A002
200
+ chunksize: int = SAFE_PAGE_SIZE,
201
+ key: "str | list[str] | None" = None,
202
+ key_field: str = "MigrationKey",
203
+ on_conflict: str = "skip",
204
+ enforce_unique: bool = False,
205
+ checkpoint: "ImportCheckpoint | CheckpointStore | str | PathLike | None" = None,
206
+ on_error: str = "raise",
207
+ progress: "ProgressCallback | None" = None,
208
+ prepare: "Callable[[Any], None] | None" = None,
209
+ before_chunk: "Callable[[Any], None] | None" = None,
210
+ to_records: "Callable[[Any], list[dict]] | None" = None,
211
+ total: Optional[int] = None,
212
+ dry_run: bool = False,
213
+ dead_letter: "str | PathLike | None" = None,
214
+ mapping: "Dict[str, str] | None" = None,
215
+ coerce: "Dict[str, Callable[[Any], Any]] | None" = None,
216
+ ) -> "ImportResult":
217
+ """Stream a source into this collection, memory-bounded (the streaming entry).
218
+
219
+ ``source`` is chunked by ``format``: ``dataframe``/``csv`` (a DataFrame,
220
+ chunk iterable, or CSV path/URL/file), ``records`` (an iterable of record
221
+ batches), or any registered format (read whole). Returns an
222
+ :class:`~office365.runtime.imports.ImportResult`; choose the terminal
223
+ (``execute_query``/``execute_batch``) or iterate it. ``key`` enables
224
+ idempotent skip/upsert via :meth:`upsert_target`; ``mapping`` renames
225
+ source columns/keys; ``coerce`` maps a record key to a value converter
226
+ (used for typed destination fields).
227
+ """
228
+ from office365.runtime.imports import ImportResult
229
+
230
+ chunks, convert, inferred_total = self._resolve_source(source, format, chunksize, to_records)
231
+ if total is None:
232
+ total = inferred_total
233
+ if mapping:
234
+ convert = _apply_mapping(convert, mapping)
235
+
236
+ raw_key_columns = [key] if isinstance(key, str) else (list(key) if key else [])
237
+ key_columns = [self._key_column(c) for c in raw_key_columns]
238
+ target = self.upsert_target(key_field=key_field, enforce_unique=enforce_unique) if key_columns else None
239
+ if key_columns and target is None:
240
+ raise ValueError("key= requires an upsert-capable collection (override upsert_target())")
241
+ existing: Dict[str, Any] = {}
242
+ keys_loaded = False
243
+
244
+ def _prepare(first_chunk: Any) -> None:
245
+ if callable(prepare):
246
+ prepare(first_chunk)
247
+
248
+ def _ensure_keys() -> None:
249
+ """Ensure the key column and load existing keys (once, on every run).
250
+
251
+ Loading is lazy (on the first queued chunk) rather than part of the
252
+ fresh-run-only ``prepare`` so a **resumed** run still skips records
253
+ that are already present — the key load is what makes a replayed or
254
+ overlapping chunk idempotent, not just a fresh run.
255
+ """
256
+ nonlocal keys_loaded
257
+ if target is None or keys_loaded:
258
+ return
259
+ target.ensure_key_field()
260
+ self.context.execute_query()
261
+ existing.update(target.load_keys())
262
+ keys_loaded = True
263
+
264
+ def _queue(records: list[dict]) -> tuple[int, int]:
265
+ if coerce:
266
+ records = [
267
+ {
268
+ key: (coerce[key](value) if key in coerce and value is not None else value)
269
+ for key, value in record.items()
270
+ }
271
+ for record in records
272
+ ]
273
+ if target is None:
274
+ if not dry_run:
275
+ self.queue_records(records)
276
+ return len(records), 0
277
+ from office365.runtime.converters.upsert import keyed_queue
278
+
279
+ _ensure_keys()
280
+ return keyed_queue(
281
+ target,
282
+ records,
283
+ key_columns=key_columns,
284
+ existing=existing,
285
+ on_conflict=on_conflict,
286
+ dry_run=dry_run,
287
+ )
288
+
289
+ return ImportResult(
290
+ self.context,
291
+ self,
292
+ chunks,
293
+ to_records=convert,
294
+ prepare=_prepare,
295
+ before_chunk=before_chunk,
296
+ queue=_queue,
297
+ total=total,
298
+ progress=progress,
299
+ checkpoint=checkpoint,
300
+ on_error=on_error,
301
+ dry_run=dry_run,
302
+ dead_letter=dead_letter,
303
+ signature={
304
+ "format": format,
305
+ "chunk_size": chunksize,
306
+ "key": list(key_columns),
307
+ "key_field": key_field,
308
+ },
309
+ )
310
+
311
+ def from_dataframe(self, df, **opts: Any) -> "ImportResult":
312
+ """Stream a pandas DataFrame (or chunked CSV) into this collection."""
313
+ return self.from_records(df, format="dataframe", **opts)
314
+
315
+ def from_csv(self, source: Any, **opts: Any) -> "ImportResult":
316
+ """Stream a CSV source (path/URL/file or chunk iterable) into this collection."""
317
+ return self.from_records(source, format="csv", **opts)
318
+
319
+ def from_json(self, source: Any, **opts: Any) -> "ImportResult":
320
+ """Stream a JSON-array file into this collection."""
321
+ return self.from_records(source, format="json", **opts)
322
+
323
+ def from_ndjson(self, source: Any, **opts: Any) -> "ImportResult":
324
+ """Stream an NDJSON (JSON Lines) source into this collection."""
325
+ return self.from_records(source, format="ndjson", **opts)
326
+
327
+ def from_excel(self, source: Any, **opts: Any) -> "ImportResult":
328
+ """Stream an Excel (.xlsx) worksheet into this collection."""
329
+ return self.from_records(source, format="excel", **opts)
330
+
331
+ def from_parquet(self, source: Any, **opts: Any) -> "ImportResult":
332
+ """Stream a Parquet file into this collection (requires the ``[parquet]`` extra)."""
333
+ return self.from_records(source, format="parquet", **opts)
334
+
335
+ def from_orc(self, source: Any, **opts: Any) -> "ImportResult":
336
+ """Stream an ORC file into this collection (requires the ``[parquet]`` extra)."""
337
+ return self.from_records(source, format="orc", **opts)
338
+
339
+ def from_feather(self, source: Any, **opts: Any) -> "ImportResult":
340
+ """Stream a Feather file into this collection (requires the ``[parquet]`` extra)."""
341
+ return self.from_records(source, format="feather", **opts)
342
+
343
+ def from_sql(self, source: Any, *, query: str, chunksize: int = 2000, **opts: Any) -> "ImportResult":
344
+ """Stream a SQL query result into this collection (requires the ``[sql]`` extra).
345
+
346
+ ``source`` is a SQLAlchemy ``Engine``/``Connection`` or a connection URL
347
+ string; rows are fetched in ``chunksize`` batches (bounded memory).
348
+ """
349
+ from office365.runtime.converters.sql import sql_chunks
350
+
351
+ return self.from_records(sql_chunks(source, query, chunksize), format="records", **opts)
352
+
353
+ def from_duckdb(self, source: Any, *, query: str, chunksize: int = 2000, **opts: Any) -> "ImportResult":
354
+ """Stream a DuckDB query result into this collection (requires the ``[duckdb]`` extra).
355
+
356
+ ``source`` is a DuckDB connection or a database path; rows are fetched in
357
+ ``chunksize`` batches (bounded memory).
358
+ """
359
+ from office365.runtime.converters.sql import duckdb_chunks
360
+
361
+ return self.from_records(duckdb_chunks(source, query, chunksize), format="records", **opts)
362
+
363
+ # ── Verification ─────────────────────────────────────────────
364
+
365
+ def verify_keys(self, keys: Iterable[str], *, key_field: str = "MigrationKey") -> VerificationReport:
366
+ """Reconcile an import: assert every key hash exists in the target.
367
+
368
+ Uses the same keyed lookup as upsert (loads existing keys once), so it
369
+ verifies that an idempotent import actually landed every record.
370
+ """
371
+ target = self.upsert_target(key_field=key_field)
372
+ if target is None:
373
+ raise ValueError("verify_keys requires an upsert-capable collection")
374
+ existing = target.load_keys()
375
+ keys = list(keys)
376
+ missing = [key for key in keys if key not in existing]
377
+ return VerificationReport(
378
+ source_count=len(keys), target_count=len(keys) - len(missing), checked=len(keys), missing=missing
379
+ )
380
+
381
+ def verify(
382
+ self,
383
+ source: Any,
384
+ *,
385
+ key: "str | list[str]",
386
+ format: str = "dataframe", # noqa: A002
387
+ key_field: str = "MigrationKey",
388
+ to_records: "Callable[[Any], list[dict]] | None" = None,
389
+ ) -> VerificationReport:
390
+ """Reconcile a source's natural keys against this collection (bounded).
391
+
392
+ Streams the source, hashes each record's natural key and checks it against
393
+ the target's existing keys — the pipeline counterpart of the migration
394
+ toolkit's ``verify``. Use ``List.verify(df, key=...)`` for a list.
395
+ """
396
+ from office365.runtime.converters.upsert import record_key
397
+
398
+ raw = [key] if isinstance(key, str) else list(key)
399
+ key_columns = [self._key_column(c) for c in raw]
400
+ target = self.upsert_target(key_field=key_field)
401
+ if target is None:
402
+ raise ValueError("verify requires an upsert-capable collection")
403
+ existing = target.load_keys()
404
+ chunks, convert, _ = self._resolve_source(source, format, SAFE_PAGE_SIZE, to_records)
405
+ checked = 0
406
+ missing: list[str] = []
407
+ for chunk in chunks:
408
+ for record in convert(chunk):
409
+ checked += 1
410
+ if record_key(record, key_columns) not in existing:
411
+ missing.append(record_key(record, key_columns))
412
+ return VerificationReport(
413
+ source_count=checked, target_count=checked - len(missing), checked=checked, missing=missing
414
+ )
415
+
416
+ # ── Extension hooks ──────────────────────────────────────────
417
+
418
+ def upsert_target(self, *, key_field: str = "MigrationKey", enforce_unique: bool = False) -> "UpsertTarget | None":
419
+ """The keyed-import target, or ``None`` when the collection isn't keyable."""
420
+ return None
421
+
422
+ def _key_column(self, column: str) -> str:
423
+ """Map a source column name to the record key used after import coercion."""
424
+ return column
425
+
426
+ def _resolve_source(
427
+ self,
428
+ source: Any,
429
+ format: str, # noqa: A002
430
+ chunksize: int,
431
+ to_records: "Callable[[Any], list[dict]] | None",
432
+ ) -> "tuple[Iterable[Any], Callable[[Any], list[dict]], Optional[int]]":
433
+ """Resolve ``(chunks, to_records, total)`` for a streaming import."""
434
+ if format in ("dataframe", "csv"):
435
+ from office365.runtime.converters.dataframe import dataframe_chunks, records_from_dataframe
436
+
437
+ chunks, total = dataframe_chunks(source, chunksize)
438
+ convert = to_records or (lambda chunk: records_from_dataframe(chunk))
439
+ return chunks, convert, total
440
+ if format == "records":
441
+ return source, (to_records or (lambda batch: batch)), None
442
+ records = registry.reader_for(format)(source)
443
+ return [records], (to_records or (lambda batch: batch)), len(records)