Office365-REST-Python-Client 3.0.0__py3-none-any.whl → 3.1.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 (1199) 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/media_stream_direction.py +12 -0
  34. office365/communications/callrecords/modality.py +0 -1
  35. office365/communications/callrecords/network_connection_type.py +16 -0
  36. office365/communications/callrecords/network_transport_protocol.py +14 -0
  37. office365/communications/callrecords/product_family.py +16 -0
  38. office365/communications/callrecords/pstn_call_duration_source.py +12 -0
  39. office365/communications/callrecords/service_role.py +32 -0
  40. office365/communications/callrecords/user_feedback_rating.py +17 -0
  41. office365/communications/callrecords/video_codec.py +22 -0
  42. office365/communications/cloud_communications.py +3 -6
  43. office365/communications/onlinemeetings/attendee_notification_info.py +15 -0
  44. office365/communications/onlinemeetings/base.py +152 -1
  45. office365/communications/onlinemeetings/broadcast_settings.py +4 -0
  46. office365/communications/onlinemeetings/lobby_bypass_settings.py +16 -0
  47. office365/communications/onlinemeetings/online_meeting.py +48 -23
  48. office365/communications/onlinemeetings/online_meeting_info.py +22 -0
  49. office365/communications/onlinemeetings/online_meeting_type.py +16 -0
  50. office365/communications/onlinemeetings/participants.py +5 -3
  51. office365/communications/onlinemeetings/watermark_protection_values.py +15 -0
  52. office365/communications/presences/presence.py +15 -5
  53. office365/communications/presences/work_location_source.py +15 -0
  54. office365/communications/presences/work_location_type.py +15 -0
  55. office365/communications/virtualevents/communications_identity_set.py +23 -0
  56. office365/copilot/ai_agent_info.py +14 -0
  57. office365/copilot/ai_interaction_entity.py +16 -0
  58. office365/copilot/ai_interaction_plugin.py +10 -0
  59. office365/copilot/package_access_entity.py +14 -0
  60. office365/copilot/package_element.py +16 -0
  61. office365/copilot/package_element_detail.py +19 -0
  62. office365/copilot/retrieval_data_source.py +14 -0
  63. office365/copilot/retrieval_entity_type.py +17 -0
  64. office365/count_collection.py +1 -1
  65. office365/delta_collection.py +41 -2
  66. office365/directory/applications/all_allowed_scopes.py +10 -0
  67. office365/directory/applications/custom_security_attribute_exemption.py +18 -0
  68. office365/directory/applications/custom_security_attribute_string_value_exemption.py +14 -0
  69. office365/directory/applications/enumerated_scopes.py +15 -0
  70. office365/directory/applications/identifier_uri_restriction.py +22 -0
  71. office365/directory/applications/implicitgrantsettings.py +8 -1
  72. office365/directory/applications/inheritable_scopes.py +15 -0
  73. office365/directory/applications/key_credential_configuration.py +22 -0
  74. office365/directory/applications/no_scopes.py +10 -0
  75. office365/directory/applications/optional_claim.py +14 -1
  76. office365/directory/applications/password_credential_configuration.py +22 -0
  77. office365/directory/applications/preauthorized.py +11 -1
  78. office365/directory/applications/redirecturisettings.py +8 -1
  79. office365/directory/applications/resource_access.py +4 -0
  80. office365/directory/applications/template.py +63 -3
  81. office365/directory/attribute_rule_members.py +15 -0
  82. office365/directory/audit/directory.py +9 -0
  83. office365/directory/audit/log_root.py +15 -15
  84. office365/directory/audit/logs/recordtype.py +476 -1
  85. office365/directory/audit/logs/usertype.py +16 -1
  86. office365/directory/audit/provisioning/object_summary.py +67 -3
  87. office365/directory/audit/signins/authentication_app_device_details.py +17 -0
  88. office365/directory/audit/signins/governance_insight.py +17 -0
  89. office365/directory/audit/signins/membership_outlier_insight.py +55 -0
  90. office365/directory/audit/signins/signin.py +78 -8
  91. office365/directory/authentication/attributecollection/external_users_self_service_sign_up.py +20 -0
  92. office365/directory/authentication/attributecollection/handler.py +10 -0
  93. office365/directory/authentication/attributecollection/method_load_start_handler.py +10 -0
  94. office365/directory/authentication/attributecollection/start_custom_extension_handler.py +17 -0
  95. office365/directory/authentication/attributecollection/start_handler.py +10 -0
  96. office365/directory/authentication/attributecollection/submit_custom_extension_handler.py +17 -0
  97. office365/directory/authentication/attributecollection/submit_handler.py +10 -0
  98. office365/directory/authentication/authentication.py +13 -36
  99. office365/directory/authentication/error_correction_level.py +14 -0
  100. office365/directory/authentication/fraud_protection_configuration.py +10 -0
  101. office365/directory/authentication/fraud_protection_provider_configuration.py +12 -0
  102. office365/directory/authentication/generic_error.py +8 -1
  103. office365/directory/authentication/methods/configuration.py +17 -0
  104. office365/directory/authentication/methods/details.py +36 -0
  105. office365/directory/authentication/methods/mode_detail.py +17 -0
  106. office365/directory/authentication/methods/passkey_type.py +13 -0
  107. office365/directory/authentication/methods/root.py +8 -12
  108. office365/directory/authentication/methods/target.py +17 -0
  109. office365/directory/authentication/oidc_address_inbound_claims.py +18 -0
  110. office365/directory/authentication/oidc_client_authentication.py +10 -0
  111. office365/directory/authentication/oidc_client_secret_authentication.py +14 -0
  112. office365/directory/authentication/oidc_inbound_claim_mapping_override.py +23 -0
  113. office365/directory/authentication/oidc_private_jwt_key_client_authentication.py +10 -0
  114. office365/directory/authentication/signing_certificate_update_status.py +16 -0
  115. office365/directory/authentication/strength/root.py +39 -0
  116. office365/directory/authentication/strength/usage.py +4 -0
  117. office365/directory/certificates/authority.py +5 -0
  118. office365/directory/certificates/pkcs12_certificate.py +15 -0
  119. office365/directory/certificates/self_signed.py +4 -0
  120. office365/directory/certificates/x509/issuer_hints_configuration.py +2 -1
  121. office365/directory/connected_organization_members.py +15 -0
  122. office365/directory/connection_info.py +14 -0
  123. office365/directory/domains/state.py +13 -1
  124. office365/directory/domains/verified.py +14 -4
  125. office365/directory/extensions/custom/http_request_endpoint.py +16 -0
  126. office365/directory/groups/access_type.py +15 -0
  127. office365/directory/groups/group_members.py +15 -0
  128. office365/directory/groups/setting_template_value.py +17 -0
  129. office365/directory/identities/application_context.py +15 -0
  130. office365/directory/identities/application_enforced_restrictions_session_control.py +10 -0
  131. office365/directory/identities/auth_context.py +14 -0
  132. office365/directory/identities/authentication_flow.py +15 -0
  133. office365/directory/identities/conditional_access_root.py +35 -3
  134. office365/directory/identities/conditional_access_session_control.py +14 -0
  135. office365/directory/identities/ip_range.py +10 -0
  136. office365/directory/identities/on_fraud_protection_load_start_external_users_auth_handler.py +15 -0
  137. office365/directory/identities/on_interactive_auth_flow_start_external_users_self_service_sign_up.py +14 -0
  138. office365/directory/identities/on_interactive_auth_flow_start_handler.py +10 -0
  139. office365/directory/identities/on_otp_send_custom_extension_handler.py +17 -0
  140. office365/directory/identities/on_otp_send_handler.py +10 -0
  141. office365/directory/identities/on_password_submit_handler.py +10 -0
  142. office365/directory/identities/providers/on_authentication_method_load_start_external_users_self_service_sign_up.py +16 -0
  143. office365/directory/identities/providers/on_fraud_protection_load_start_handler.py +10 -0
  144. office365/directory/identities/providers/verified_id_profile_state.py +13 -0
  145. office365/directory/identities/providers/verified_id_usage_configuration_purpose.py +14 -0
  146. office365/directory/identities/riskPrevention/web_application_firewall_dns_configuration.py +21 -0
  147. office365/directory/identities/riskPrevention/web_application_firewall_verification_result.py +23 -0
  148. office365/directory/identities/riskPrevention/web_application_firewall_verified_details.py +8 -1
  149. office365/directory/identities/sign_in_context.py +10 -0
  150. office365/directory/identities/userflows/user_attribute_values_item.py +16 -0
  151. office365/directory/identities/userflows/user_flow_api_connector_configuration.py +16 -0
  152. office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_session_request.py +12 -0
  153. office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_stats.py +15 -0
  154. office365/directory/identitygovernance/accessreview/disable_and_delete_user_apply_action.py +10 -0
  155. office365/directory/identitygovernance/accessreview/error.py +10 -0
  156. office365/directory/identitygovernance/accessreview/history/definition.py +3 -3
  157. office365/directory/identitygovernance/accessreview/history_schedule_settings.py +16 -0
  158. office365/directory/identitygovernance/accessreview/inactive_users_query_scope.py +15 -0
  159. office365/directory/identitygovernance/accessreview/instance.py +2 -2
  160. office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_assignment_policy_resource.py +15 -0
  161. office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_resource.py +15 -0
  162. office365/directory/identitygovernance/accessreview/instance_decision_item_azure_role_resource.py +17 -0
  163. office365/directory/identitygovernance/accessreview/instance_decision_item_resource.py +16 -0
  164. office365/directory/identitygovernance/accessreview/instance_decision_item_service_principal_resource.py +16 -0
  165. office365/directory/identitygovernance/accessreview/notification_recipient_item.py +20 -0
  166. office365/directory/identitygovernance/accessreview/notification_recipient_query_scope.py +16 -0
  167. office365/directory/identitygovernance/accessreview/notification_recipients_type.py +16 -0
  168. office365/directory/identitygovernance/accessreview/notify_members.py +14 -0
  169. office365/directory/identitygovernance/accessreview/principal_resource_memberships_scope.py +20 -0
  170. office365/directory/identitygovernance/accessreview/principal_scope.py +12 -0
  171. office365/directory/identitygovernance/accessreview/query_scope.py +16 -0
  172. office365/directory/identitygovernance/accessreview/recommendation_insight_setting.py +10 -0
  173. office365/directory/identitygovernance/accessreview/remove_access_apply_action.py +10 -0
  174. office365/directory/identitygovernance/accessreview/resource_scope.py +15 -0
  175. office365/directory/identitygovernance/accessreview/reviewer_scope.py +17 -0
  176. office365/directory/identitygovernance/accessreview/schedule/settings.py +33 -1
  177. office365/directory/identitygovernance/accessreview/stage.py +1 -1
  178. office365/directory/identitygovernance/accessreview/stage_settings.py +33 -0
  179. office365/directory/identitygovernance/accessreview/target_owners.py +17 -0
  180. office365/directory/identitygovernance/activate_processing_result_scope.py +3 -0
  181. office365/directory/identitygovernance/activate_run_scope.py +2 -0
  182. office365/directory/identitygovernance/appconsent/request_scope.py +8 -1
  183. office365/directory/identitygovernance/attribute_set_entry.py +15 -0
  184. office365/directory/identitygovernance/awaited_workflow_processing_result.py +17 -0
  185. office365/directory/identitygovernance/cancel_runs_scope.py +16 -0
  186. office365/directory/identitygovernance/cancel_scope.py +10 -0
  187. office365/directory/identitygovernance/content_base.py +10 -0
  188. office365/directory/identitygovernance/content_category.py +24 -0
  189. office365/directory/identitygovernance/count_based_quarantine_condition.py +14 -0
  190. office365/directory/identitygovernance/custom_task_extension_callout_data.py +4 -0
  191. office365/directory/identitygovernance/custom_task_extension_response_data.py +21 -0
  192. office365/directory/identitygovernance/directory_object_workflow_subject.py +15 -0
  193. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer.py +16 -0
  194. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_choice.py +22 -0
  195. office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_string.py +14 -0
  196. office365/directory/identitygovernance/entitlementmanagement/accesspackage/approval_stage.py +36 -0
  197. office365/directory/identitygovernance/entitlementmanagement/accesspackage/approver_information_visibility.py +14 -0
  198. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_approval_settings.py +23 -0
  199. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_policy_scope.py +17 -0
  200. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_callback_data.py +20 -0
  201. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_parameters.py +14 -0
  202. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_requirements.py +25 -0
  203. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_requestor_settings.py +25 -0
  204. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_review_settings.py +29 -0
  205. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignmentfilterbycurrentuseroptions.py +2 -0
  206. office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignmentrequestfilterbycurrentuseroptions.py +4 -0
  207. office365/directory/identitygovernance/entitlementmanagement/accesspackage/automatic_request_settings.py +17 -0
  208. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_upload_status.py +14 -0
  209. office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_extension_callout_instance.py +21 -0
  210. office365/directory/identitygovernance/entitlementmanagement/accesspackage/dynamic_approval_stage.py +10 -0
  211. office365/directory/identitygovernance/entitlementmanagement/accesspackage/expiration_pattern.py +20 -0
  212. office365/directory/identitygovernance/entitlementmanagement/accesspackage/localized_text.py +15 -0
  213. office365/directory/identitygovernance/entitlementmanagement/accesspackage/notification_settings.py +14 -0
  214. office365/directory/identitygovernance/entitlementmanagement/accesspackage/request_approval_stage_callback_configuration.py +10 -0
  215. office365/directory/identitygovernance/entitlementmanagement/accesspackage/requesttype.py +1 -0
  216. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute.py +26 -0
  217. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_destination.py +10 -0
  218. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_question.py +15 -0
  219. office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_source.py +10 -0
  220. office365/directory/identitygovernance/entitlementmanagement/accesspackage/subject_lifecycle.py +14 -0
  221. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_filter_by_current_user_options.py +14 -0
  222. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_reason.py +10 -0
  223. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_related_people_based.py +17 -0
  224. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_related_people_insight_level.py +14 -0
  225. office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_self_assignment_history_based.py +16 -0
  226. office365/directory/identitygovernance/entitlementmanagement/accesspackage/user_directory_attribute_store.py +10 -0
  227. office365/directory/identitygovernance/entitlementmanagement/assignment_request_approval_stage_callback_data.py +17 -0
  228. office365/directory/identitygovernance/entitlementmanagement/azure_active_directory_tenant.py +15 -0
  229. office365/directory/identitygovernance/entitlementmanagement/domain_identity_source.py +15 -0
  230. office365/directory/identitygovernance/entitlementmanagement/fallback_to_microsoft_provider_on_error.py +12 -0
  231. office365/directory/identitygovernance/entitlementmanagement/identity_source.py +10 -0
  232. office365/directory/identitygovernance/entitlementmanagement/schedule.py +21 -0
  233. office365/directory/identitygovernance/entitlementmanagement/social_identity_source.py +18 -0
  234. office365/directory/identitygovernance/guest_sponsor_trigger.py +14 -0
  235. office365/directory/identitygovernance/percentage_based_quarantine_condition.py +14 -0
  236. office365/directory/identitygovernance/preview_failed_task.py +17 -0
  237. office365/directory/identitygovernance/process_content_metadata_base.py +26 -0
  238. office365/directory/identitygovernance/provisioning_attribute_mapping.py +10 -0
  239. office365/directory/identitygovernance/provisioning_object_workflow_subject.py +19 -0
  240. office365/directory/identitygovernance/quarantine_condition.py +10 -0
  241. office365/directory/identitygovernance/quarantine_configuration.py +20 -0
  242. office365/directory/identitygovernance/quarantine_details.py +18 -0
  243. office365/directory/identitygovernance/resource_access_detail.py +23 -0
  244. office365/directory/identitygovernance/subject_summary.py +18 -0
  245. office365/directory/identitygovernance/termsofuse/agreement_file_data.py +14 -0
  246. office365/directory/identitygovernance/termsofuse/terms_expiration.py +16 -0
  247. office365/directory/identitygovernance/text_content.py +14 -0
  248. office365/directory/identitygovernance/workflow.py +23 -0
  249. office365/directory/identitygovernance/workflow_setting.py +15 -0
  250. office365/directory/identitygovernance/workflow_subject.py +10 -0
  251. office365/directory/insights/office_graph.py +7 -6
  252. office365/directory/invitations/invitation.py +45 -2
  253. office365/directory/licenses/service_plan_info.py +4 -0
  254. office365/directory/licenses/units_detail.py +4 -0
  255. office365/directory/objects/collection.py +34 -8
  256. office365/directory/objects/service_provisioning_xml_error.py +14 -0
  257. office365/directory/permissions/comment_action.py +18 -0
  258. office365/directory/permissions/create_action.py +10 -0
  259. office365/directory/permissions/default_user_role.py +16 -1
  260. office365/directory/permissions/delete_action.py +15 -0
  261. office365/directory/permissions/email_identity.py +7 -9
  262. office365/directory/policies/all_devices_assignment_target.py +12 -0
  263. office365/directory/policies/all_domains.py +10 -0
  264. office365/directory/policies/all_licensed_users_assignment_target.py +10 -0
  265. office365/directory/policies/allowedtargetscope.py +1 -0
  266. office365/directory/policies/app_management_application_configuration.py +15 -0
  267. office365/directory/policies/app_management_configuration.py +22 -0
  268. office365/directory/policies/app_management_policy_actor_exemptions.py +18 -0
  269. office365/directory/policies/app_management_service_principal_configuration.py +10 -0
  270. office365/directory/policies/authentication_combination_configuration.py +18 -0
  271. office365/directory/policies/authentication_context_class_reference.py +26 -0
  272. office365/directory/policies/authentication_methods.py +59 -0
  273. office365/directory/policies/authentication_strength.py +65 -8
  274. office365/directory/policies/azure_ad_registration_policy.py +16 -0
  275. office365/directory/policies/ca_policies_deletable_root.py +33 -0
  276. office365/directory/policies/claims_mapping_policy.py +7 -0
  277. office365/directory/policies/cloud_app_security_session_control.py +15 -0
  278. office365/directory/policies/conditionalaccess/all_external_tenants.py +10 -0
  279. office365/directory/policies/conditionalaccess/applications.py +20 -0
  280. office365/directory/policies/conditionalaccess/authentication_flows.py +15 -0
  281. office365/directory/policies/conditionalaccess/client_applications.py +18 -0
  282. office365/directory/policies/conditionalaccess/condition_set.py +42 -0
  283. office365/directory/policies/conditionalaccess/device_and_app_management_assignment_target.py +10 -0
  284. office365/directory/policies/conditionalaccess/device_info.py +43 -0
  285. office365/directory/policies/conditionalaccess/devices.py +15 -0
  286. office365/directory/policies/conditionalaccess/enumerated_external_tenants.py +15 -0
  287. office365/directory/policies/conditionalaccess/external_tenants.py +17 -0
  288. office365/directory/policies/conditionalaccess/filter.py +16 -0
  289. office365/directory/policies/conditionalaccess/grant_controls.py +24 -0
  290. office365/directory/policies/conditionalaccess/grantcontrol.py +1 -0
  291. office365/directory/policies/conditionalaccess/guests_or_external_users.py +19 -0
  292. office365/directory/policies/conditionalaccess/locations.py +16 -0
  293. office365/directory/policies/conditionalaccess/persistent_browser_session_control.py +15 -0
  294. office365/directory/policies/conditionalaccess/platforms.py +21 -0
  295. office365/directory/policies/conditionalaccess/policy_deletable_item.py +17 -0
  296. office365/directory/policies/conditionalaccess/policy_detail.py +19 -0
  297. office365/directory/policies/conditionalaccess/secure_sign_in_session_control.py +10 -0
  298. office365/directory/policies/conditionalaccess/service_principal_sign_in.py +14 -0
  299. office365/directory/policies/conditionalaccess/session_controls.py +32 -0
  300. office365/directory/policies/conditionalaccess/sign_in_conditions.py +29 -0
  301. office365/directory/policies/conditionalaccess/sign_in_frequency_session_control.py +24 -0
  302. office365/directory/policies/conditionalaccess/sign_in_identity.py +10 -0
  303. office365/directory/policies/conditionalaccess/user_action_context.py +15 -0
  304. office365/directory/policies/conditionalaccess/user_sign_in.py +19 -0
  305. office365/directory/policies/conditionalaccess/users.py +29 -0
  306. office365/directory/policies/crosstenant/app_service_connect_setting.py +19 -0
  307. office365/directory/policies/crosstenant/b2_b_setting.py +22 -0
  308. office365/directory/policies/crosstenant/inbound_trust.py +16 -0
  309. office365/directory/policies/crosstenant/m365_collaboration_inbound_setting.py +17 -0
  310. office365/directory/policies/crosstenant/m365_collaboration_outbound_setting.py +19 -0
  311. office365/directory/policies/crosstenant/target.py +16 -0
  312. office365/directory/policies/crosstenant/target_configuration.py +24 -0
  313. office365/directory/policies/crosstenant/tenant_restrictions.py +15 -0
  314. office365/directory/policies/crosstenant/user_sync_inbound.py +14 -0
  315. office365/directory/policies/custom_app_management_application_configuration.py +15 -0
  316. office365/directory/policies/custom_app_management_configuration.py +19 -0
  317. office365/directory/policies/default_invitation_redemption_identity_provider_configuration.py +10 -0
  318. office365/directory/policies/devices_filter.py +20 -0
  319. office365/directory/policies/enumerated_domains.py +15 -0
  320. office365/directory/policies/face_check_configuration.py +15 -0
  321. office365/directory/policies/group_scope.py +10 -0
  322. office365/directory/policies/identifier_uri_configuration.py +16 -0
  323. office365/directory/policies/inbound_outbound_policy_configuration.py +15 -0
  324. office365/directory/policies/invitation_redemption_identity_provider_configuration.py +19 -0
  325. office365/directory/policies/match_confidence_level.py +13 -0
  326. office365/directory/policies/protected_application_metadata.py +15 -0
  327. office365/directory/policies/protection_policy_artifact_count.py +17 -0
  328. office365/directory/policies/restrict_access_action.py +10 -0
  329. office365/directory/policies/restrict_access_action_base.py +15 -0
  330. office365/directory/policies/retention_setting.py +16 -0
  331. office365/directory/policies/root.py +14 -1
  332. office365/directory/policies/scope_base.py +14 -0
  333. office365/directory/policies/security_defaults.py +16 -0
  334. office365/directory/policies/self_service_sign_up_authentication_flow_configuration.py +14 -0
  335. office365/directory/policies/tenant_scope.py +10 -0
  336. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_filter_by_current_user_options.py +12 -0
  337. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_instance_filter_by_current_user_options.py +12 -0
  338. office365/directory/policies/unifiedrolemanagement/role_assignment_schedule_request_filter_by_current_user_options.py +14 -0
  339. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_filter_by_current_user_options.py +12 -0
  340. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_instance_filter_by_current_user_options.py +12 -0
  341. office365/directory/policies/unifiedrolemanagement/role_eligibility_schedule_request_filter_by_current_user_options.py +14 -0
  342. office365/directory/policies/user_scope.py +10 -0
  343. office365/directory/policies/validating_domains.py +15 -0
  344. office365/directory/policies/verified_id_profile_configuration.py +15 -0
  345. office365/directory/policies/verified_id_usage_configuration.py +14 -0
  346. office365/directory/protection/riskyusers/activity.py +7 -1
  347. office365/directory/protection/riskyusers/risk_service_principal_activity.py +17 -0
  348. office365/directory/recovery/recovery_action.py +14 -0
  349. office365/directory/recovery/recovery_status.py +18 -0
  350. office365/directory/recovery/resource_type_name.py +23 -0
  351. office365/directory/requestor_manager.py +14 -0
  352. office365/directory/rolemanagement/unifiedrole/notification_recipients.py +20 -0
  353. office365/directory/rolemanagement/unifiedrole/permission.py +4 -0
  354. office365/directory/security/account.py +0 -1
  355. office365/directory/security/action.py +17 -0
  356. office365/directory/security/ai_agent_platform.py +15 -0
  357. office365/directory/security/alerts/alert.py +17 -0
  358. office365/directory/security/{blob_container_evidence.py → alerts/blob_container_evidence.py} +1 -1
  359. office365/directory/security/{blob_evidence.py → alerts/blob_evidence.py} +1 -1
  360. office365/directory/security/alerts/connection_direction.py +14 -0
  361. office365/directory/security/{sas_token_evidence.py → alerts/sas_token_evidence.py} +1 -1
  362. office365/directory/security/alerts/status.py +1 -2
  363. office365/directory/security/analyzed_message_evidence.py +3 -0
  364. office365/directory/security/antispam_directionality.py +15 -0
  365. office365/directory/security/attacksimulations/account_target_content_type.py +14 -0
  366. office365/directory/security/audit/audit_data.py +15 -0
  367. office365/directory/security/audit/audit_log_query_status.py +16 -0
  368. office365/directory/security/audit/multi_tenant_organization_join_request_transition_details.py +20 -0
  369. office365/directory/security/audit/multi_tenant_organization_member_transition_details.py +22 -0
  370. office365/directory/security/audit/whois_domain_status.py +16 -0
  371. office365/directory/security/{whois_record.py → audit/whois_record.py} +1 -1
  372. office365/directory/security/cases/additionaldataoptions.py +1 -0
  373. office365/directory/security/cases/ediscovery.py +3 -0
  374. office365/directory/security/cloud_application_evidence.py +3 -1
  375. office365/directory/security/cloud_logon_session_evidence.py +2 -0
  376. office365/directory/security/{analyzed_email_attachment.py → collaboration/analyzed_email_attachment.py} +3 -1
  377. office365/directory/security/{collaboration_root.py → collaboration/collaboration_root.py} +1 -1
  378. office365/directory/security/container_evidence.py +4 -0
  379. office365/directory/security/container_image_evidence.py +4 -1
  380. office365/directory/security/correlation_reason.py +28 -0
  381. office365/directory/security/datasecurity/classifcation_error_base.py +18 -0
  382. office365/directory/security/{audit_data.py → datasecurity/classification_error.py} +2 -2
  383. office365/directory/security/datasecurity/classification_inner_error.py +18 -0
  384. office365/directory/security/datasecurity/compute_rights_and_inheritance_result.py +17 -0
  385. office365/directory/security/datasecurity/custom_metadata_dictionary.py +10 -0
  386. office365/directory/security/datasecurity/dlp_action_info.py +15 -0
  387. office365/directory/security/{data_security → datasecurity}/governance.py +1 -1
  388. office365/directory/security/datasecurity/integrated_application_metadata.py +15 -0
  389. office365/directory/security/datasecurity/policy_binding.py +17 -0
  390. office365/directory/security/datasecurity/policy_location.py +14 -0
  391. office365/directory/security/datasecurity/policy_location_application.py +10 -0
  392. office365/directory/security/datasecurity/policy_location_domain.py +10 -0
  393. office365/directory/security/datasecurity/policy_location_url.py +10 -0
  394. office365/directory/security/datasecurity/policy_scope_base.py +26 -0
  395. office365/directory/security/datasecurity/policy_tenant_scope.py +15 -0
  396. office365/directory/security/datasecurity/policy_tip_action.py +16 -0
  397. office365/directory/security/datasecurity/policy_user_scope.py +10 -0
  398. office365/directory/security/datasecurity/process_content_batch_request.py +17 -0
  399. office365/directory/security/datasecurity/process_content_request.py +24 -0
  400. office365/directory/security/datasecurity/process_content_response.py +24 -0
  401. office365/directory/security/datasecurity/process_content_responses.py +16 -0
  402. office365/directory/security/datasecurity/process_conversation_metadata.py +27 -0
  403. office365/directory/security/datasecurity/process_file_metadata.py +16 -0
  404. office365/directory/security/datasecurity/protected_content.py +16 -0
  405. office365/directory/security/delivery_action.py +16 -0
  406. office365/directory/security/delivery_location.py +20 -0
  407. office365/directory/security/detonation_details.py +11 -0
  408. office365/directory/security/device_evidence.py +11 -0
  409. office365/directory/security/dns_evidence.py +6 -1
  410. office365/directory/security/event_source.py +14 -0
  411. office365/directory/security/file_plan_applied_category.py +4 -1
  412. office365/directory/security/formatted_content.py +16 -0
  413. office365/directory/security/indicator_source.py +14 -0
  414. office365/directory/security/intelligence_profile_kind.py +13 -0
  415. office365/directory/security/investigation_state.py +29 -0
  416. office365/directory/security/invoke_action_result.py +0 -1
  417. office365/directory/security/io_t_device_evidence.py +6 -1
  418. office365/directory/security/ip_evidence.py +2 -0
  419. office365/directory/security/kubernetes_controller_evidence.py +2 -0
  420. office365/directory/security/kubernetes_pod_evidence.py +10 -0
  421. office365/directory/security/labels/retention/duration_in_days.py +3 -0
  422. office365/directory/security/mailbox_configuration_type.py +16 -0
  423. office365/directory/security/mailbox_evidence.py +3 -1
  424. office365/directory/security/onboarding_status.py +15 -0
  425. office365/directory/security/passive_dns_record.py +1 -1
  426. office365/directory/security/processing_error.py +15 -0
  427. office365/directory/security/protocol_type.py +13 -0
  428. office365/directory/security/public_error_response.py +4 -1
  429. office365/directory/security/query_type.py +13 -0
  430. office365/directory/security/recipient_type.py +13 -0
  431. office365/directory/security/remediation_action.py +17 -0
  432. office365/directory/security/remediation_severity.py +14 -0
  433. office365/directory/security/security.py +1 -1
  434. office365/directory/security/sensor_candidate_activation_mode.py +13 -0
  435. office365/directory/security/service_principal_type.py +15 -0
  436. office365/directory/security/service_source.py +25 -0
  437. office365/directory/security/ssl_certificate.py +1 -1
  438. office365/directory/security/subdomain.py +1 -1
  439. office365/directory/security/subjectrightsrequests/all_mailbox_location.py +10 -0
  440. office365/directory/security/subjectrightsrequests/all_site_location.py +10 -0
  441. office365/directory/security/subjectrightsrequests/data_subject.py +17 -0
  442. office365/directory/security/subjectrightsrequests/detail.py +26 -0
  443. office365/directory/security/subjectrightsrequests/enumerated_mailbox_location.py +15 -0
  444. office365/directory/security/subjectrightsrequests/enumerated_site_location.py +15 -0
  445. office365/directory/security/subjectrightsrequests/history.py +22 -0
  446. office365/directory/security/subjectrightsrequests/mailbox_location.py +10 -0
  447. office365/directory/security/subjectrightsrequests/site_location.py +10 -0
  448. office365/directory/security/subjectrightsrequests/stage_detail.py +19 -0
  449. office365/directory/security/teams_delivery_location.py +15 -0
  450. office365/directory/security/teams_message_delivery_action.py +16 -0
  451. office365/directory/security/threat_type.py +16 -0
  452. office365/directory/security/{host.py → threatintelligence/host.py} +8 -8
  453. office365/directory/security/{host_component.py → threatintelligence/host_component.py} +1 -1
  454. office365/directory/security/{host_cookie.py → threatintelligence/host_cookie.py} +1 -1
  455. office365/directory/security/{host_pair.py → threatintelligence/host_pair.py} +1 -1
  456. office365/directory/security/{host_port.py → threatintelligence/host_port.py} +1 -1
  457. office365/directory/security/threatintelligence/host_port_banner.py +19 -0
  458. office365/directory/security/threatintelligence/host_port_component.py +19 -0
  459. office365/directory/security/threatintelligence/host_port_protocol.py +13 -0
  460. office365/directory/security/threatintelligence/host_port_status.py +14 -0
  461. office365/directory/security/threatintelligence/host_reputation_classification.py +15 -0
  462. office365/directory/security/threatintelligence/host_reputation_rule.py +16 -0
  463. office365/directory/security/threatintelligence/host_reputation_rule_severity.py +15 -0
  464. office365/directory/security/{host_ssl_certificate.py → threatintelligence/host_ssl_certificate.py} +1 -1
  465. office365/directory/security/{host_tracker.py → threatintelligence/host_tracker.py} +1 -1
  466. office365/directory/security/threatintelligence/hosts/__init__.py +0 -0
  467. office365/directory/security/threatintelligence/threat_intelligence.py +9 -9
  468. office365/directory/security/threatintelligence/whoisrecords/__init__.py +0 -0
  469. office365/directory/security/timeline_event_type.py +20 -0
  470. office365/directory/security/user_evidence.py +2 -0
  471. office365/directory/security/verdict_category.py +20 -0
  472. office365/directory/security/vm_cloud_provider.py +13 -0
  473. office365/directory/security/vulnerability_severity.py +16 -0
  474. office365/directory/security/whois_base_record.py +1 -1
  475. office365/directory/serviceprincipals/delegated_permission_classification.py +27 -0
  476. office365/directory/serviceprincipals/remote_desktop_security_configuration.py +16 -0
  477. office365/directory/single_service_principal.py +15 -0
  478. office365/directory/single_user.py +15 -0
  479. office365/directory/synchronization/attribute_mapping.py +23 -0
  480. office365/directory/synchronization/error.py +10 -1
  481. office365/directory/synchronization/job_application_parameters.py +19 -0
  482. office365/directory/synchronization/job_restart_criteria.py +7 -1
  483. office365/directory/synchronization/job_subject.py +17 -0
  484. office365/directory/synchronization/linked_objects.py +22 -0
  485. office365/directory/synchronization/metadata_entry.py +16 -0
  486. office365/directory/synchronization/on_premises_accidental_deletion_prevention.py +20 -0
  487. office365/directory/synchronization/on_premises_directory_synchronization_configuration.py +19 -0
  488. office365/directory/synchronization/on_premises_directory_synchronization_feature.py +33 -0
  489. office365/directory/synchronization/progress.py +4 -0
  490. office365/directory/synchronization/quarantine.py +11 -0
  491. office365/directory/synchronization/rule.py +32 -0
  492. office365/directory/synchronization/schedule.py +18 -0
  493. office365/directory/synchronization/secret_key_string_value_pair.py +16 -0
  494. office365/directory/synchronization/status.py +17 -3
  495. office365/directory/synchronization/task_execution.py +26 -1
  496. office365/directory/target_agent_identity_sponsors_or_owners.py +10 -0
  497. office365/directory/target_application_owners.py +10 -0
  498. office365/directory/target_manager.py +14 -0
  499. office365/directory/target_user_sponsors.py +10 -0
  500. office365/directory/tenantinformation/information.py +4 -0
  501. office365/directory/users/activities/activity.py +42 -8
  502. office365/directory/users/settings.py +5 -13
  503. office365/directory/users/user.py +4 -3
  504. office365/directory/users/work_location_update_scope.py +13 -0
  505. office365/education/related_contact.py +19 -0
  506. office365/entity_collection.py +0 -20
  507. office365/externalconnectors/acl_type.py +16 -0
  508. office365/externalconnectors/binary_operator.py +12 -0
  509. office365/externalconnectors/connection_operation_status.py +15 -0
  510. office365/externalconnectors/connection_state.py +15 -0
  511. office365/externalconnectors/external_activity_type.py +15 -0
  512. office365/externalconnectors/external_item_content_type.py +13 -0
  513. office365/externalconnectors/identity_type.py +14 -0
  514. office365/externalconnectors/label.py +65 -0
  515. office365/externalconnectors/property_type.py +22 -0
  516. office365/externalconnectors/rule_operation.py +19 -0
  517. office365/graph_client.py +120 -16
  518. office365/graph_request.py +3 -1
  519. office365/intune/browser/browser_site_history.py +25 -0
  520. office365/intune/devices/alternative_security_id.py +5 -0
  521. office365/intune/devices/cloud_pc_launch_detail.py +22 -0
  522. office365/intune/devices/cloud_pc_windows_setting.py +14 -0
  523. office365/intune/devices/device_metadata.py +17 -0
  524. office365/intune/devices/enumerated_device_registration_membership.py +16 -0
  525. office365/intune/devices/imported_windows_autopilot_device_identity_import_status.py +15 -0
  526. office365/intune/devices/imported_windows_autopilot_device_identity_upload_status.py +14 -0
  527. office365/intune/devices/management/all_device_registration_membership.py +10 -0
  528. office365/intune/devices/management/device_protection_overview.py +24 -0
  529. office365/intune/devices/management/managed/managed.py +79 -0
  530. office365/intune/devices/management/managed/windows/autopilot_device_type.py +13 -0
  531. office365/intune/devices/management/managed/windows/defender_product_status.py +36 -0
  532. office365/intune/devices/management/managed/windows/information_protection_enforcement_level.py +14 -0
  533. office365/intune/devices/management/mobileapps/file_encryption_info.py +20 -0
  534. office365/intune/devices/management/mobileapps/ios/ios_device_type.py +15 -0
  535. office365/intune/devices/management/user_experience_analytics_settings.py +14 -0
  536. office365/intune/devices/management/user_experience_analytics_summarized_by.py +17 -0
  537. office365/intune/devices/management/virtualendpoint/cloudpcs/exclusion_group_assignment_target.py +10 -0
  538. office365/intune/devices/management/virtualendpoint/cloudpcs/group_assignment_target.py +16 -0
  539. office365/intune/devices/management/virtualendpoint/provisioningpolicies/microsoft_managed_desktop.py +18 -0
  540. office365/intune/devices/management/windows_malware_overview.py +16 -0
  541. office365/intune/devices/no_device_registration_membership.py +10 -0
  542. office365/intune/devices/operating_system_specifications.py +15 -0
  543. office365/intune/enrollment_state.py +15 -0
  544. office365/intune/instance_resource_access.py +19 -0
  545. office365/intune/organizations/content_customization.py +15 -0
  546. office365/intune/organizations/login_page_layout_configuration.py +17 -0
  547. office365/intune/organizations/login_page_text_visibility_settings.py +19 -0
  548. office365/intune/organizations/physical_office_address.py +19 -0
  549. office365/intune/organizations/privacy_profile.py +15 -0
  550. office365/intune/policies/azure_ad_join_policy.py +18 -0
  551. office365/intune/policies/local_admin_password_settings.py +14 -0
  552. office365/intune/policies/local_admin_settings.py +16 -0
  553. office365/intune/print/printers/incompatible_printer_settings.py +13 -0
  554. office365/intune/print/user_print.py +0 -2
  555. office365/intune/process_integrity_level.py +17 -0
  556. office365/intune/resource_permission.py +15 -0
  557. office365/migration/__init__.py +122 -7
  558. office365/migration/_util.py +73 -0
  559. office365/migration/adapters/__init__.py +94 -0
  560. office365/migration/adapters/filesystem.py +174 -0
  561. office365/migration/assessment/__init__.py +27 -0
  562. office365/migration/assessment/containers.py +24 -0
  563. office365/migration/assessment/export.py +51 -0
  564. office365/migration/assessment/registry.py +60 -0
  565. office365/migration/assessment/report.py +142 -31
  566. office365/migration/assessment/runner.py +57 -0
  567. office365/migration/assessment/scanners/__init__.py +13 -0
  568. office365/migration/assessment/scanners/base.py +135 -0
  569. office365/migration/base.py +53 -4
  570. office365/migration/checkpoint.py +76 -0
  571. office365/migration/job.py +209 -0
  572. office365/migration/manifest.py +71 -0
  573. office365/migration/outlook/__init__.py +20 -0
  574. office365/migration/outlook/assessor.py +73 -0
  575. office365/migration/outlook/registry.py +27 -0
  576. office365/migration/outlook/scanner.py +82 -0
  577. office365/migration/report.py +111 -0
  578. office365/migration/runner.py +208 -0
  579. office365/migration/server_job.py +90 -0
  580. office365/migration/session.py +105 -0
  581. office365/migration/sharepoint/__init__.py +53 -0
  582. office365/migration/sharepoint/adapters.py +354 -0
  583. office365/migration/sharepoint/assessor.py +312 -0
  584. office365/migration/sharepoint/registry.py +48 -0
  585. office365/migration/sharepoint/scanners/__init__.py +27 -0
  586. office365/migration/sharepoint/scanners/fields.py +52 -0
  587. office365/migration/sharepoint/scanners/files.py +25 -0
  588. office365/migration/sharepoint/scanners/large_sites.py +124 -0
  589. office365/migration/sharepoint/scanners/locked_sites.py +38 -0
  590. office365/migration/sharepoint/scanners/paths.py +45 -0
  591. office365/migration/sharepoint/scanners/permissions.py +24 -0
  592. office365/migration/sharepoint/scanners/summary.py +37 -0
  593. office365/migration/sharepoint/tenant_assessor.py +93 -0
  594. office365/migration/sharepoint/transfer.py +92 -0
  595. office365/migration/teams/__init__.py +29 -0
  596. office365/migration/teams/_extract.py +108 -0
  597. office365/migration/teams/adapters.py +190 -0
  598. office365/migration/teams/models.py +73 -0
  599. office365/migration/validators.py +65 -0
  600. office365/onedrive/base_item.py +10 -15
  601. office365/onedrive/contenttypes/content_type.py +8 -13
  602. office365/onedrive/documentsets/version.py +3 -6
  603. office365/onedrive/driveitems/audio.py +16 -0
  604. office365/onedrive/driveitems/bundle.py +4 -0
  605. office365/onedrive/driveitems/driveItem.py +126 -24
  606. office365/onedrive/driveitems/image.py +4 -0
  607. office365/onedrive/driveitems/malware.py +14 -0
  608. office365/onedrive/driveitems/package.py +14 -0
  609. office365/onedrive/driveitems/photo.py +13 -1
  610. office365/onedrive/driveitems/publication_facet.py +4 -0
  611. office365/onedrive/driveitems/remote_item.py +18 -0
  612. office365/onedrive/driveitems/special_folder.py +4 -0
  613. office365/onedrive/driveitems/uploadable_properties.py +2 -2
  614. office365/onedrive/driveitems/video.py +15 -1
  615. office365/onedrive/drives/drive.py +9 -0
  616. office365/onedrive/drives/quota.py +9 -1
  617. office365/onedrive/files/file.py +4 -0
  618. office365/onedrive/files/system_info.py +4 -0
  619. office365/onedrive/filestorage/containertypes/app_permission.py +20 -1
  620. office365/onedrive/filestorage/containertypes/billing_classification.py +8 -0
  621. office365/onedrive/filestorage/containertypes/billing_status.py +7 -0
  622. office365/onedrive/filestorage/containertypes/settings_override.py +17 -0
  623. office365/onedrive/folders/folder.py +4 -0
  624. office365/onedrive/internal/paths/shared.py +1 -3
  625. office365/onedrive/internal/paths/site.py +2 -1
  626. office365/onedrive/listitems/collection.py +2 -2
  627. office365/onedrive/lists/info.py +4 -0
  628. office365/onedrive/operations/pending.py +4 -0
  629. office365/onedrive/operations/public_inner_error.py +21 -0
  630. office365/onedrive/sensitivitylabels/usagerights.py +1 -1
  631. office365/onedrive/share_point_migration_job_error_level.py +15 -0
  632. office365/onedrive/share_point_migration_object_type.py +20 -0
  633. office365/onedrive/shares/shared.py +4 -0
  634. office365/onedrive/sites/collection.py +4 -0
  635. office365/onedrive/sites/sites_with_root.py +3 -3
  636. office365/onedrive/sites/website.py +17 -0
  637. office365/onedrive/sites/website_type.py +15 -0
  638. office365/onedrive/termstore/groups/collection.py +6 -6
  639. office365/onedrive/termstore/groups/group.py +6 -1
  640. office365/onedrive/termstore/relation_type.py +13 -0
  641. office365/onedrive/termstore/sets/collection.py +6 -6
  642. office365/onedrive/termstore/store.py +14 -29
  643. office365/onedrive/termstore/store_manager.py +128 -0
  644. office365/onedrive/termstore/terms/collection.py +6 -6
  645. office365/onedrive/workbooks/charts/axes.py +4 -10
  646. office365/onedrive/workbooks/filter_criteria.py +9 -0
  647. office365/onedrive/workbooks/filter_datetime.py +15 -0
  648. office365/onedrive/workbooks/icon.py +7 -1
  649. office365/onedrive/workbooks/operations/error.py +4 -0
  650. office365/onedrive/workbooks/ranges/reference.py +4 -0
  651. office365/onedrive/workbooks/session_info.py +4 -0
  652. office365/onedrive/workbooks/sort_field.py +5 -0
  653. office365/onedrive/workbooks/worksheets/protection_options.py +4 -0
  654. office365/onedrive/workbooks/worksheets/worksheet.py +5 -3
  655. office365/onenote/pages/collection.py +1 -1
  656. office365/onenote/pages/page.py +5 -11
  657. office365/outlook/calendar/attendees/attendee.py +4 -0
  658. office365/outlook/calendar/attendees/availability.py +4 -0
  659. office365/outlook/calendar/attendees/base.py +4 -0
  660. office365/outlook/calendar/collection.py +7 -0
  661. office365/outlook/calendar/events/event.py +8 -14
  662. office365/outlook/calendar/events/reminder.py +4 -0
  663. office365/outlook/calendar/location_constraint.py +4 -0
  664. office365/outlook/calendar/meetingtimes/suggestion.py +8 -0
  665. office365/outlook/calendar/meetingtimes/suggestions_result.py +4 -0
  666. office365/outlook/calendar/meetingtimes/time_constraint.py +4 -0
  667. office365/outlook/calendar/response_status.py +7 -1
  668. office365/outlook/calendar/schedule/free_busy_error.py +15 -0
  669. office365/outlook/calendar/schedule/information.py +4 -0
  670. office365/outlook/calendar/schedule/item.py +4 -0
  671. office365/outlook/calendar/sharing/message_action.py +11 -1
  672. office365/outlook/calendar/timezones/base.py +4 -0
  673. office365/outlook/calendar/timezones/custom.py +9 -1
  674. office365/outlook/calendar/timezones/daylight_time_zone_offset.py +14 -0
  675. office365/outlook/calendar/working_hours.py +4 -0
  676. office365/outlook/check_in_method.py +15 -0
  677. office365/outlook/contacts/folders/collection.py +1 -1
  678. office365/outlook/convert_id_result.py +7 -1
  679. office365/outlook/item.py +3 -11
  680. office365/outlook/locale_info.py +4 -0
  681. office365/outlook/mail/attachments/attachment_item.py +7 -0
  682. office365/outlook/mail/attachments/collection.py +33 -18
  683. office365/outlook/mail/automaticreplies/mailtips.py +4 -0
  684. office365/outlook/mail/automaticreplies/setting.py +4 -0
  685. office365/outlook/mail/email_details.py +16 -0
  686. office365/outlook/mail/export_item_response.py +19 -0
  687. office365/outlook/mail/folders/folder.py +5 -11
  688. office365/outlook/mail/location.py +1 -1
  689. office365/outlook/mail/location_constraint_item.py +8 -1
  690. office365/outlook/mail/mailbox_item_import_session.py +16 -0
  691. office365/outlook/mail/messages/collection.py +1 -1
  692. office365/outlook/mail/messages/followup_flag.py +4 -0
  693. office365/outlook/mail/messages/internet_header.py +4 -0
  694. office365/outlook/mail/messages/message.py +21 -7
  695. office365/outlook/mail/messages/rules/actions.py +4 -0
  696. office365/outlook/mail/messages/rules/predicates.py +29 -0
  697. office365/outlook/mail/messages/rules/rule.py +1 -1
  698. office365/outlook/mail/messages/rules/size_range.py +15 -0
  699. office365/outlook/mail/patterned_recurrence.py +4 -0
  700. office365/outlook/mail/recurrence_pattern.py +4 -0
  701. office365/outlook/mail/recurrence_range.py +4 -0
  702. office365/outlook/mail/tips/error.py +7 -1
  703. office365/outlook/people/person_type.py +14 -0
  704. office365/outlook/place_feature_enablement.py +14 -0
  705. office365/outlook/resource_link.py +17 -0
  706. office365/outlook/resource_link_type.py +12 -0
  707. office365/outlook/scored_email_address.py +18 -0
  708. office365/outlook/timezones/information.py +4 -0
  709. office365/outlook/timezones/standard_time_zone_offset.py +20 -0
  710. office365/partners/billing/attribute_set.py +13 -0
  711. office365/partners/billing/billing_period.py +13 -0
  712. office365/partners/partners.py +5 -4
  713. office365/planner/buckets/collection.py +2 -2
  714. office365/planner/plans/details.py +3 -9
  715. office365/planner/user.py +6 -4
  716. office365/reports/internal/queries/create_report_query.py +26 -12
  717. office365/reports/print_usage.py +67 -0
  718. office365/reports/print_usage_by_printer.py +21 -0
  719. office365/reports/print_usage_by_user.py +16 -0
  720. office365/reports/relying_party_detailed_summary.py +70 -0
  721. office365/reports/root.py +77 -95
  722. office365/runtime/auth/authentication_context.py +41 -15
  723. office365/runtime/auth/entra/authentication_context.py +22 -2
  724. office365/runtime/auth/providers/acs_token_provider.py +6 -2
  725. office365/runtime/auth/providers/cookie_provider.py +7 -3
  726. office365/runtime/auth/providers/saml_token_provider.py +6 -2
  727. office365/runtime/auth/sts_profile.py +1 -1
  728. office365/runtime/client_object.py +50 -67
  729. office365/runtime/client_object_collection.py +297 -14
  730. office365/runtime/client_request_exception.py +63 -4
  731. office365/runtime/client_result.py +26 -18
  732. office365/runtime/client_runtime_context.py +232 -25
  733. office365/runtime/client_value.py +14 -40
  734. office365/runtime/client_value_collection.py +4 -8
  735. office365/runtime/converters/__init__.py +1 -0
  736. office365/runtime/converters/csv_reader.py +94 -0
  737. office365/runtime/converters/csv_writer.py +60 -0
  738. office365/runtime/converters/dataframe.py +122 -0
  739. office365/runtime/converters/excel.py +44 -0
  740. office365/runtime/converters/json_file.py +21 -0
  741. office365/runtime/converters/keyvalue.py +95 -0
  742. office365/runtime/converters/ndjson.py +17 -0
  743. office365/runtime/converters/records.py +82 -0
  744. office365/runtime/converters/scalars.py +128 -0
  745. office365/runtime/converters/value.py +186 -0
  746. office365/runtime/decorators.py +27 -0
  747. office365/runtime/http/mime.py +12 -0
  748. office365/runtime/http/throttling.py +205 -0
  749. office365/runtime/http/url.py +36 -0
  750. office365/runtime/odata/batch_util.py +92 -0
  751. office365/runtime/odata/query_options.py +26 -1
  752. office365/runtime/odata/request.py +27 -16
  753. office365/runtime/odata/type.py +47 -105
  754. office365/runtime/odata/v3/batch_request.py +88 -1
  755. office365/runtime/odata/v4/batch_request.py +88 -0
  756. office365/runtime/odata/v4/upload_session.py +4 -0
  757. office365/runtime/odata/v4/upload_session_request.py +26 -10
  758. office365/runtime/operations.py +135 -0
  759. office365/runtime/parallel.py +96 -0
  760. office365/runtime/paths/builder.py +4 -2
  761. office365/runtime/queries/batch.py +23 -14
  762. office365/runtime/queries/client_query.py +8 -10
  763. office365/runtime/queries/deferred.py +72 -0
  764. office365/runtime/queries/delete_entity.py +2 -2
  765. office365/runtime/queries/function.py +35 -1
  766. office365/runtime/queries/read_entity.py +23 -4
  767. office365/runtime/queries/update_entity.py +2 -2
  768. office365/runtime/queries/upload_session.py +1 -1
  769. office365/runtime/retry.py +137 -0
  770. office365/runtime/types/binary_content.py +14 -0
  771. office365/runtime/types/ipv4_cidr_range.py +14 -0
  772. office365/runtime/types/ipv6_cidr_range.py +14 -0
  773. office365/runtime/types/json.py +10 -0
  774. office365/runtime/types/odata_property.py +7 -0
  775. office365/runtime/types/public_error.py +23 -0
  776. office365/runtime/types/public_inner_error.py +21 -0
  777. office365/runtime/types/setting_value.py +15 -0
  778. office365/search/request.py +2 -2
  779. office365/sharepoint/agreements/summarydata.py +15 -5
  780. office365/sharepoint/authentication/auth_file_detonation_request_response.py +48 -0
  781. office365/sharepoint/authentication/spo_auth_file_detonation_request.py +7 -0
  782. office365/sharepoint/brandcenter/brand_font_file_delete_result.py +9 -0
  783. office365/sharepoint/changes/change.py +6 -0
  784. office365/sharepoint/changes/collection.py +1 -1
  785. office365/sharepoint/changes/item.py +4 -10
  786. office365/sharepoint/client_context.py +78 -33
  787. office365/sharepoint/clientsidecomponent/agreementssolutionfilecontext.py +1 -0
  788. office365/sharepoint/clientsidecomponent/spteamsappcomponent.py +3 -0
  789. office365/sharepoint/comments/comment.py +2 -10
  790. office365/sharepoint/comments/contentanchor.py +6 -0
  791. office365/sharepoint/compliance/store_proxy.py +306 -68
  792. office365/sharepoint/compliance/tags/tag.py +3 -0
  793. office365/sharepoint/containers/active/properties.py +3 -0
  794. office365/sharepoint/contentcenter/machinelearning/column_autofill_choice_settings.py +15 -0
  795. office365/sharepoint/contentcenter/machinelearning/column_autofill_preview_data.py +25 -0
  796. office365/sharepoint/contentcenter/machinelearning/column_autofill_preview_result.py +12 -0
  797. office365/sharepoint/contentcenter/machinelearning/hub.py +231 -29
  798. office365/sharepoint/contentcenter/machinelearning/list_autofill_entity_data.py +15 -0
  799. office365/sharepoint/contentcenter/machinelearning/list_autofill_item_results.py +18 -0
  800. office365/sharepoint/contentcenter/machinelearning/modeldependencies.py +4 -3
  801. office365/sharepoint/contentcenter/machinelearning/models/model.py +254 -0
  802. office365/sharepoint/contentcenter/machinelearning/publications/publication.py +177 -0
  803. office365/sharepoint/contentcenter/machinelearning/samples/sample.py +134 -0
  804. office365/sharepoint/contentcenter/machinelearning/sp_machine_learning_doc_lib_autofill_item_results.py +19 -0
  805. office365/sharepoint/contentcenter/machinelearning/workitems/item.py +149 -0
  806. office365/sharepoint/contenttypes/collection.py +9 -10
  807. office365/sharepoint/contenttypes/content_type.py +4 -10
  808. office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -7
  809. office365/sharepoint/directory/helper.py +5 -5
  810. office365/sharepoint/directory/multi_conditional_access_policy.py +37 -0
  811. office365/sharepoint/directory/named_location_policy.py +62 -0
  812. office365/sharepoint/directory/provider/provider.py +1 -1
  813. office365/sharepoint/entity.py +8 -4
  814. office365/sharepoint/eventreceivers/definition_collection.py +32 -0
  815. office365/sharepoint/fields/collection.py +165 -67
  816. office365/sharepoint/fields/field.py +4 -2
  817. office365/sharepoint/fields/name.py +11 -0
  818. office365/sharepoint/files/checked_out_file.py +2 -6
  819. office365/sharepoint/files/collection.py +75 -8
  820. office365/sharepoint/files/file.py +68 -6
  821. office365/sharepoint/files/file_url_virus_status_update.py +22 -0
  822. office365/sharepoint/files/versionbatchdeleteparameters.py +1 -0
  823. office365/sharepoint/files/versions/version.py +2 -8
  824. office365/sharepoint/folders/collection.py +5 -2
  825. office365/sharepoint/folders/folder.py +198 -26
  826. office365/sharepoint/internal/image_content_part.py +5 -0
  827. office365/sharepoint/internal/paths/web.py +3 -1
  828. office365/sharepoint/internal/sticky_routing_options.py +13 -0
  829. office365/sharepoint/likes/liked_by_information.py +2 -6
  830. office365/sharepoint/listitems/collection.py +28 -0
  831. office365/sharepoint/listitems/compliance_info.py +1 -0
  832. office365/sharepoint/listitems/form_update_value.py +2 -1
  833. office365/sharepoint/listitems/listdata_validation_exception_value.py +3 -1
  834. office365/sharepoint/listitems/listitem.py +5 -5
  835. office365/sharepoint/listitems/versions/version.py +3 -15
  836. office365/sharepoint/lists/batch_convert_item_result.py +19 -0
  837. office365/sharepoint/lists/batch_convert_result.py +17 -0
  838. office365/sharepoint/lists/collection.py +36 -0
  839. office365/sharepoint/lists/conversion_loss_item.py +13 -0
  840. office365/sharepoint/lists/conversion_loss_report.py +18 -0
  841. office365/sharepoint/lists/extended_share_point_permission_settings.py +17 -0
  842. office365/sharepoint/lists/list.py +95 -20
  843. office365/sharepoint/lists/list_forms_api.py +7 -0
  844. office365/sharepoint/logger/activityrequest.py +3 -0
  845. office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_response.py +7 -3
  846. office365/sharepoint/marketplace/corporatecuratedgallery/available_addins_response.py +3 -1
  847. office365/sharepoint/marketplace/tenant/appcatalog/accessor.py +4 -10
  848. office365/sharepoint/microfeed/attachment_store.py +69 -0
  849. office365/sharepoint/microfeed/data.py +64 -0
  850. office365/sharepoint/microfeed/manager.py +259 -0
  851. office365/sharepoint/microfeed/microfeedstore.py +69 -0
  852. office365/sharepoint/migrationcenter/service/performance/dashboard_data.py +4 -2
  853. office365/sharepoint/multigeo/service/dfdeprecationjob.py +8 -1
  854. office365/sharepoint/multigeo/service/geoexperience.py +15 -0
  855. office365/sharepoint/multigeo/service/groupmovejob.py +9 -0
  856. office365/sharepoint/multigeo/service/move_job_report.py +23 -0
  857. office365/sharepoint/multigeo/service/movesiterostate.py +8 -1
  858. office365/sharepoint/multigeo/service/partner_company_id_lookup.py +22 -0
  859. office365/sharepoint/multigeo/service/services.py +3 -6
  860. office365/sharepoint/multigeo/service/sitemovejob.py +9 -0
  861. office365/sharepoint/navigation/menu/node.py +5 -3
  862. office365/sharepoint/navigation/menu/state.py +1 -1
  863. office365/sharepoint/navigation/nodes/collection.py +36 -1
  864. office365/sharepoint/navigation/service.py +2 -8
  865. office365/sharepoint/permissions/roles/assignments/assignment.py +2 -8
  866. office365/sharepoint/permissions/roles/definitions/definition.py +3 -9
  867. office365/sharepoint/portal/groups/service.py +12 -0
  868. office365/sharepoint/portal/groups/site_manager.py +283 -32
  869. office365/sharepoint/portal/linkedsites/manager.py +25 -3
  870. office365/sharepoint/portal/sites/manager.py +197 -0
  871. office365/sharepoint/principal/principal.py +3 -8
  872. office365/sharepoint/principal/users/user.py +5 -6
  873. office365/sharepoint/publishing/announcements/controller.py +31 -0
  874. office365/sharepoint/publishing/content_distribution_controller.py +23 -0
  875. office365/sharepoint/publishing/copytoparams.py +3 -0
  876. office365/sharepoint/publishing/diagnostics/controller.py +12 -0
  877. office365/sharepoint/publishing/emailpublishingstatus.py +4 -2
  878. office365/sharepoint/publishing/engage_distribution_info.py +2 -0
  879. office365/sharepoint/publishing/feedvideopage.py +358 -0
  880. office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +40 -0
  881. office365/sharepoint/publishing/pages/3d/page.py +314 -0
  882. office365/sharepoint/publishing/pages/campaign/publication.py +549 -7
  883. office365/sharepoint/publishing/pages/metadata.py +6 -11
  884. office365/sharepoint/publishing/pages/page.py +469 -0
  885. office365/sharepoint/publishing/pages/reposts/repost.py +334 -0
  886. office365/sharepoint/publishing/pages/service.py +95 -43
  887. office365/sharepoint/publishing/pages/topics/topic.py +314 -0
  888. office365/sharepoint/publishing/point/post.py +28 -0
  889. office365/sharepoint/publishing/point/postservicemanager.py +31 -0
  890. office365/sharepoint/publishing/point/tenantmanager.py +9 -0
  891. office365/sharepoint/publishing/point/user.py +9 -0
  892. office365/sharepoint/publishing/portallaunchwavesmanager.py +36 -0
  893. office365/sharepoint/publishing/portalnavigationcachewrapper.py +21 -0
  894. office365/sharepoint/publishing/rich_sharing.py +12 -0
  895. office365/sharepoint/publishing/sites/communication/site.py +14 -6
  896. office365/sharepoint/publishing/subtitlefile.py +40 -0
  897. office365/sharepoint/publishing/video/channel.py +112 -0
  898. office365/sharepoint/publishing/video/item.py +231 -0
  899. office365/sharepoint/publishing/videopermissiongroup.py +16 -0
  900. office365/sharepoint/request.py +35 -7
  901. office365/sharepoint/search/analytics/signal_store.py +15 -0
  902. office365/sharepoint/search/promoted_result_query_rule.py +6 -2
  903. office365/sharepoint/search/ranking_labeling.py +11 -0
  904. office365/sharepoint/search/relevant_results.py +1 -1
  905. office365/sharepoint/search/reordering_rule_collection.py +30 -0
  906. office365/sharepoint/search/result.py +1 -1
  907. office365/sharepoint/search/service.py +61 -0
  908. office365/sharepoint/search/setting.py +75 -15
  909. office365/sharepoint/search/simple_data_row.py +1 -1
  910. office365/sharepoint/sharing/direct_abilities.py +1 -0
  911. office365/sharepoint/sharing/main_link_audience_role_abilities.py +17 -0
  912. office365/sharepoint/sharing/mainlinkabilities.py +3 -3
  913. office365/sharepoint/sharing/mainlinkaudienceabilities.py +4 -0
  914. office365/sharepoint/sharing/mainlinkinfo.py +4 -0
  915. office365/sharepoint/sharing/object_sharing_settings.py +4 -10
  916. office365/sharepoint/sitedesigns/app_settings_in_teams.py +6 -1
  917. office365/sharepoint/sitedesigns/creation_info.py +1 -1
  918. office365/sharepoint/sitedesigns/insert_field_response.py +10 -1
  919. office365/sharepoint/sitedesigns/main_link_details.py +2 -0
  920. office365/sharepoint/sitedesigns/sectiondesignideasapi.py +26 -0
  921. office365/sharepoint/sitedesigns/thread_engagement_data.py +2 -0
  922. office365/sharepoint/sites/home/sharepointhomeservicemanager.py +18 -0
  923. office365/sharepoint/sites/manager/baaa_request.py +2 -0
  924. office365/sharepoint/sites/manager/service.py +192 -5
  925. office365/sharepoint/sites/site.py +12 -0
  926. office365/sharepoint/sites/version_policy_manager.py +6 -10
  927. office365/sharepoint/sitescripts/utility.py +1 -1
  928. office365/sharepoint/social/rest_thread.py +2 -6
  929. office365/sharepoint/taxonomy/field.py +1 -0
  930. office365/sharepoint/taxonomy/groups/group.py +2 -6
  931. office365/sharepoint/taxonomy/item.py +12 -6
  932. office365/sharepoint/taxonomy/service.py +18 -2
  933. office365/sharepoint/teams/manage_channel_capabilities_request.py +3 -0
  934. office365/sharepoint/tenant/administration/bulk_insert_operation_result.py +5 -0
  935. office365/sharepoint/tenant/administration/catalog_management_category.py +23 -0
  936. office365/sharepoint/tenant/administration/catalog_management_custom_property_map.py +3 -0
  937. office365/sharepoint/tenant/administration/catalog_management_group.py +16 -0
  938. office365/sharepoint/tenant/administration/catalog_management_schema.py +18 -0
  939. office365/sharepoint/tenant/administration/catalog_management_status.py +23 -0
  940. office365/sharepoint/tenant/administration/container/properties.py +6 -0
  941. office365/sharepoint/tenant/administration/dataset_metadata_response.py +6 -0
  942. office365/sharepoint/tenant/administration/ransomware/activitiesoverview.py +2 -1
  943. office365/sharepoint/tenant/administration/rcd_categories_map.py +19 -0
  944. office365/sharepoint/tenant/administration/rcd_category_detail_result.py +17 -0
  945. office365/sharepoint/tenant/administration/rcd_group_definition.py +19 -0
  946. office365/sharepoint/tenant/administration/rcd_group_metadata.py +20 -0
  947. office365/sharepoint/tenant/administration/rcd_save_result.py +12 -0
  948. office365/sharepoint/tenant/administration/rcd_site_status_detail.py +18 -0
  949. office365/sharepoint/tenant/administration/secondary_administrators_info.py +0 -7
  950. office365/sharepoint/tenant/administration/site_property_scope_config.py +1 -0
  951. office365/sharepoint/tenant/administration/spom365agentinsightsm365agentsonsitesdetails.py +3 -1
  952. office365/sharepoint/tenant/administration/tenant.py +94 -227
  953. office365/sharepoint/tenant/administration/tenant_admin_ransomware_event_site_restore_point.py +1 -0
  954. office365/sharepoint/tenant/administration/tenant_data_loss_prevention_quarantine_settings.py +17 -0
  955. office365/sharepoint/tenant/cdn_api.py +18 -4
  956. office365/sharepoint/tenant/management/office365_tenant.py +15 -10
  957. office365/sharepoint/tenantadministration/spo_file_archive_policy_info.py +28 -0
  958. office365/sharepoint/tenantadministration/spo_file_archive_policy_report_info.py +20 -0
  959. office365/sharepoint/tenantadministration/spo_file_archive_policy_site_info.py +15 -0
  960. office365/sharepoint/tenantadministration/spom365_agent_insights_top20_agents_details.py +14 -0
  961. office365/sharepoint/types/resource_path.py +2 -1
  962. office365/sharepoint/usercustomactions/collection.py +41 -0
  963. office365/sharepoint/userprofiles/person_properties.py +4 -10
  964. office365/sharepoint/utilities/autofillcolumninfo.py +2 -0
  965. office365/sharepoint/utilities/llmcolumninfo.py +2 -0
  966. office365/sharepoint/utilities/move_copy_util.py +284 -10
  967. office365/sharepoint/viva/site_manager.py +10 -0
  968. office365/sharepoint/webhooks/subscription.py +41 -1
  969. office365/sharepoint/webhooks/subscription_information.py +2 -2
  970. office365/sharepoint/webparts/definitions/definition.py +8 -10
  971. office365/sharepoint/webparts/limited_manager.py +2 -6
  972. office365/sharepoint/webs/regional_settings.py +11 -15
  973. office365/sharepoint/webs/time_zone.py +9 -6
  974. office365/sharepoint/webs/web.py +57 -10
  975. office365/sharepoint/webs/web_fetch_result.py +13 -0
  976. office365/subscriptions/subscription.py +2 -8
  977. office365/teams/administration/account_type.py +17 -0
  978. office365/teams/administration/activation_state.py +16 -0
  979. office365/teams/administration/assignment_category.py +8 -1
  980. office365/teams/administration/assignment_status.py +18 -0
  981. office365/teams/administration/customer_action.py +13 -0
  982. office365/teams/administration/number_capability.py +15 -0
  983. office365/teams/administration/number_source.py +13 -0
  984. office365/teams/administration/number_type.py +15 -0
  985. office365/teams/administration/port_in_status.py +13 -0
  986. office365/teams/administration/reverse_number_lookup_option.py +12 -0
  987. office365/teams/apps/app.py +5 -5
  988. office365/teams/apps/installed_event_message_detail.py +17 -0
  989. office365/teams/apps/removed_event_message_detail.py +17 -0
  990. office365/teams/apps/upgraded_event_message_detail.py +17 -0
  991. office365/teams/archived_event_message_detail.py +16 -0
  992. office365/teams/channels/channel.py +23 -22
  993. office365/teams/channels/collection.py +10 -5
  994. office365/teams/chats/chat.py +36 -27
  995. office365/teams/chats/collection.py +19 -0
  996. office365/teams/chats/messages/body.py +32 -0
  997. office365/teams/chats/messages/collection.py +43 -0
  998. office365/teams/chats/messages/hosted_content.py +27 -0
  999. office365/teams/chats/messages/message.py +68 -3
  1000. office365/teams/class_settings.py +14 -0
  1001. office365/teams/collection.py +89 -14
  1002. office365/teams/created_event_message_detail.py +18 -0
  1003. office365/teams/description_updated_event_message_detail.py +17 -0
  1004. office365/teams/joining_disabled_event_message_detail.py +16 -0
  1005. office365/teams/joining_enabled_event_message_detail.py +16 -0
  1006. office365/teams/licensing_details.py +14 -0
  1007. office365/teams/members/aad_user_conversation.py +4 -4
  1008. office365/teams/members/conversation.py +3 -3
  1009. office365/teams/members/conversation_collection.py +7 -9
  1010. office365/teams/members_notification_recipient.py +14 -0
  1011. office365/teams/operations/async_operation.py +59 -8
  1012. office365/teams/operations/type.py +4 -1
  1013. office365/teams/renamed_event_message_detail.py +17 -0
  1014. office365/teams/schedule/entitytheme.py +23 -0
  1015. office365/teams/schedule/time_card_break.py +19 -0
  1016. office365/teams/schedule/time_card_entry.py +19 -0
  1017. office365/teams/schedule/time_card_event.py +18 -0
  1018. office365/teams/schedule/time_card_state.py +14 -0
  1019. office365/teams/schedule/time_clock_settings.py +15 -0
  1020. office365/teams/schedule/time_off_details.py +15 -0
  1021. office365/teams/schedule/time_off_item.py +14 -0
  1022. office365/teams/schedule/time_off_reason_icon_type.py +32 -0
  1023. office365/teams/tabs/updated_event_message_detail.py +16 -0
  1024. office365/teams/team.py +88 -46
  1025. office365/teams/teamwork/application_identity.py +15 -0
  1026. office365/teams/teamwork/shiftmanagement/user_solution_root.py +4 -0
  1027. office365/teams/teamwork/user.py +6 -8
  1028. office365/teams/teamwork/workforce_integration_encryption_protocol.py +12 -0
  1029. office365/teams/teamwork/workforce_integration_supported_entities.py +22 -0
  1030. office365/teams/unarchived_event_message_detail.py +16 -0
  1031. office365/teams/viva/employee_experience_user.py +5 -3
  1032. office365/todo/attachments/collection.py +78 -3
  1033. office365/todo/attachments/info.py +17 -1
  1034. office365/todo/attachments/session.py +74 -0
  1035. office365/todo/attachments/type.py +14 -2
  1036. office365/todo/linked_resource.py +10 -0
  1037. office365/todo/tasks/collection.py +5 -3
  1038. office365/todo/tasks/lists/collection.py +4 -4
  1039. office365/todo/tasks/lists/list.py +36 -0
  1040. office365/todo/tasks/task.py +95 -8
  1041. office365/todo/todo.py +5 -2
  1042. {office365_rest_python_client-3.0.0.dist-info → office365_rest_python_client-3.1.0.dist-info}/METADATA +13 -3
  1043. {office365_rest_python_client-3.0.0.dist-info → office365_rest_python_client-3.1.0.dist-info}/RECORD +1179 -598
  1044. office365/migration/assessor.py +0 -243
  1045. office365/onedrive/termstore/store_exporter.py +0 -40
  1046. office365/onedrive/termstore/store_importer.py +0 -34
  1047. office365/runtime/csv_writer.py +0 -77
  1048. office365/runtime/odata/member.py +0 -14
  1049. office365/runtime/odata/method.py +0 -19
  1050. office365/runtime/odata/model.py +0 -54
  1051. office365/runtime/odata/parameter.py +0 -19
  1052. office365/runtime/odata/property.py +0 -19
  1053. office365/runtime/odata/query_options_builder.py +0 -38
  1054. office365/runtime/odata/reader.py +0 -99
  1055. office365/runtime/odata/type_information.py +0 -32
  1056. office365/runtime/odata/v3/metadata_reader.py +0 -52
  1057. office365/runtime/odata/v4/metadata_reader.py +0 -28
  1058. office365/runtime/queries/noop.py +0 -17
  1059. office365/runtime/utilities.py +0 -226
  1060. office365/sharepoint/migration/assessment/scanners/base.py +0 -57
  1061. office365/sharepoint/migration/assessment/scanners/list.py +0 -68
  1062. office365/sharepoint/migration/assessment/scanners/site.py +0 -25
  1063. office365/todo/wellknown_list_name.py +0 -2
  1064. /office365/directory/identitygovernance/accessreview/{access_review_history_instance.py → history_instance.py} +0 -0
  1065. /office365/directory/identitygovernance/accessreview/{access_review_instance_decision_item.py → instance_decision_item.py} +0 -0
  1066. /office365/directory/identitygovernance/accessreview/{access_review_reviewer.py → reviewer.py} +0 -0
  1067. /office365/directory/identitygovernance/accessreview/{access_review_schedule_definition.py → schedule_definition.py} +0 -0
  1068. /office365/directory/identitygovernance/{accessreview/access_package_text_input_question.py → entitlementmanagement/accesspackage/text_input_question.py} +0 -0
  1069. /office365/directory/{security/data_security → recovery}/__init__.py +0 -0
  1070. /office365/directory/security/{active_directory_domain_evidence.py → alerts/active_directory_domain_evidence.py} +0 -0
  1071. /office365/directory/security/{azure_resource_evidence.py → alerts/azure_resource_evidence.py} +0 -0
  1072. /office365/{sharepoint/migration → directory/security/audit}/__init__.py +0 -0
  1073. /office365/directory/security/{a365_ai_execute_tool.py → audit/a365_ai_execute_tool.py} +0 -0
  1074. /office365/directory/security/{aad_risk_detection_audit_record.py → audit/aad_risk_detection_audit_record.py} +0 -0
  1075. /office365/directory/security/{ai_app_interaction_audit_record.py → audit/ai_app_interaction_audit_record.py} +0 -0
  1076. /office365/directory/security/{ai_execute_tool_audit_record.py → audit/ai_execute_tool_audit_record.py} +0 -0
  1077. /office365/directory/security/{ai_interactions_change_notification_audit_record.py → audit/ai_interactions_change_notification_audit_record.py} +0 -0
  1078. /office365/directory/security/{ai_interactions_export_audit_record.py → audit/ai_interactions_export_audit_record.py} +0 -0
  1079. /office365/directory/security/{ai_interactions_subscription_audit_record.py → audit/ai_interactions_subscription_audit_record.py} +0 -0
  1080. /office365/directory/security/{ai_invoke_agent_audit_record.py → audit/ai_invoke_agent_audit_record.py} +0 -0
  1081. /office365/directory/security/{ai_span_outputs_audit_record.py → audit/ai_span_outputs_audit_record.py} +0 -0
  1082. /office365/directory/security/{air_manual_investigation_data.py → audit/air_manual_investigation_data.py} +0 -0
  1083. /office365/directory/security/{alert_submission_audit_record.py → audit/alert_submission_audit_record.py} +0 -0
  1084. /office365/directory/security/{alert_submission_result_detail_audit_record.py → audit/alert_submission_result_detail_audit_record.py} +0 -0
  1085. /office365/directory/security/{attack_sim_admin_audit_record.py → audit/attack_sim_admin_audit_record.py} +0 -0
  1086. /office365/directory/security/{attack_sim_audit_record.py → audit/attack_sim_audit_record.py} +0 -0
  1087. /office365/directory/security/{audit_config_audit_record.py → audit/audit_config_audit_record.py} +0 -0
  1088. /office365/directory/security/{audit_record_type_dictionary.py → audit/audit_record_type_dictionary.py} +0 -0
  1089. /office365/directory/security/{audit_search_audit_record.py → audit/audit_search_audit_record.py} +0 -0
  1090. /office365/directory/security/{azfw_application_rule_aggregation_event_record.py → audit/azfw_application_rule_aggregation_event_record.py} +0 -0
  1091. /office365/directory/security/{azfw_dns_query_event_record.py → audit/azfw_dns_query_event_record.py} +0 -0
  1092. /office365/directory/security/{azfw_network_rule_event_record.py → audit/azfw_network_rule_event_record.py} +0 -0
  1093. /office365/directory/security/{azure_active_directory_account_logon_audit_record.py → audit/azure_active_directory_account_logon_audit_record.py} +0 -0
  1094. /office365/directory/security/{azure_active_directory_audit_record.py → audit/azure_active_directory_audit_record.py} +0 -0
  1095. /office365/directory/security/{azure_active_directory_sts_logon_audit_record.py → audit/azure_active_directory_sts_logon_audit_record.py} +0 -0
  1096. /office365/directory/security/{azure_ai_search_audit_record.py → audit/azure_ai_search_audit_record.py} +0 -0
  1097. /office365/directory/security/{campaign_audit_record.py → audit/campaign_audit_record.py} +0 -0
  1098. /office365/directory/security/{ccrai_policy_violation_record.py → audit/ccrai_policy_violation_record.py} +0 -0
  1099. /office365/directory/security/{cdp_classifier_health_record.py → audit/cdp_classifier_health_record.py} +0 -0
  1100. /office365/directory/security/{cdp_cold_crawl_status_record.py → audit/cdp_cold_crawl_status_record.py} +0 -0
  1101. /office365/directory/security/{cdp_consumption_resource_record.py → audit/cdp_consumption_resource_record.py} +0 -0
  1102. /office365/directory/security/{cdp_content_explorer_aggregate_record.py → audit/cdp_content_explorer_aggregate_record.py} +0 -0
  1103. /office365/directory/security/{cdp_dlp_sensitive_endpoint_audit_record.py → audit/cdp_dlp_sensitive_endpoint_audit_record.py} +0 -0
  1104. /office365/directory/security/{cdp_log_record.py → audit/cdp_log_record.py} +0 -0
  1105. /office365/directory/security/{cdp_ocr_billing_record.py → audit/cdp_ocr_billing_record.py} +0 -0
  1106. /office365/directory/security/{cdp_resource_scope_change_event_record.py → audit/cdp_resource_scope_change_event_record.py} +0 -0
  1107. /office365/directory/security/{cdpdlmai_interaction_insights_record.py → audit/cdpdlmai_interaction_insights_record.py} +0 -0
  1108. /office365/directory/security/{cloud_update_device_config_audit_record.py → audit/cloud_update_device_config_audit_record.py} +0 -0
  1109. /office365/directory/security/{cloud_update_profile_config_audit_record.py → audit/cloud_update_profile_config_audit_record.py} +0 -0
  1110. /office365/directory/security/{cloud_update_tenant_config_audit_record.py → audit/cloud_update_tenant_config_audit_record.py} +0 -0
  1111. /office365/directory/security/{compliance_connector_audit_record.py → audit/compliance_connector_audit_record.py} +0 -0
  1112. /office365/directory/security/{compliance_dlm_exchange_audit_record.py → audit/compliance_dlm_exchange_audit_record.py} +0 -0
  1113. /office365/directory/security/{compliance_dlm_share_point_audit_record.py → audit/compliance_dlm_share_point_audit_record.py} +0 -0
  1114. /office365/directory/security/{compliance_dlp_applications_audit_record.py → audit/compliance_dlp_applications_audit_record.py} +0 -0
  1115. /office365/directory/security/{compliance_dlp_applications_classification_audit_record.py → audit/compliance_dlp_applications_classification_audit_record.py} +0 -0
  1116. /office365/directory/security/{compliance_dlp_endpoint_audit_record.py → audit/compliance_dlp_endpoint_audit_record.py} +0 -0
  1117. /office365/directory/security/{compliance_dlp_endpoint_discovery_audit_record.py → audit/compliance_dlp_endpoint_discovery_audit_record.py} +0 -0
  1118. /office365/directory/security/{compliance_dlp_enforcement_audit_record.py → audit/compliance_dlp_enforcement_audit_record.py} +0 -0
  1119. /office365/directory/security/{compliance_dlp_exchange_audit_record.py → audit/compliance_dlp_exchange_audit_record.py} +0 -0
  1120. /office365/directory/security/{compliance_dlp_exchange_classification_audit_record.py → audit/compliance_dlp_exchange_classification_audit_record.py} +0 -0
  1121. /office365/directory/security/{compliance_dlp_exchange_classification_cdp_record.py → audit/compliance_dlp_exchange_classification_cdp_record.py} +0 -0
  1122. /office365/directory/security/{compliance_dlp_exchange_discovery_audit_record.py → audit/compliance_dlp_exchange_discovery_audit_record.py} +0 -0
  1123. /office365/directory/security/{compliance_dlp_share_point_audit_record.py → audit/compliance_dlp_share_point_audit_record.py} +0 -0
  1124. /office365/directory/security/{compliance_dlp_share_point_classification_audit_record.py → audit/compliance_dlp_share_point_classification_audit_record.py} +0 -0
  1125. /office365/directory/security/{compliance_dlp_share_point_classification_cdp_record.py → audit/compliance_dlp_share_point_classification_cdp_record.py} +0 -0
  1126. /office365/directory/security/{compliance_dlp_share_point_classification_extended_audit_record.py → audit/compliance_dlp_share_point_classification_extended_audit_record.py} +0 -0
  1127. /office365/directory/security/{compliance_exchange_ocr_audit_record.py → audit/compliance_exchange_ocr_audit_record.py} +0 -0
  1128. /office365/directory/security/{compliance_manager_action_record.py → audit/compliance_manager_action_record.py} +0 -0
  1129. /office365/directory/security/{compliance_policy_grading_share_point_audit_record.py → audit/compliance_policy_grading_share_point_audit_record.py} +0 -0
  1130. /office365/directory/security/{compliance_settings_change_audit_record.py → audit/compliance_settings_change_audit_record.py} +0 -0
  1131. /office365/directory/security/{compliance_sit_grading_share_point_audit_record.py → audit/compliance_sit_grading_share_point_audit_record.py} +0 -0
  1132. /office365/directory/security/{compliance_supervision_exchange_audit_record.py → audit/compliance_supervision_exchange_audit_record.py} +0 -0
  1133. /office365/directory/security/{connected_ai_app_interaction_audit_record.py → audit/connected_ai_app_interaction_audit_record.py} +0 -0
  1134. /office365/directory/security/{consumption_resource_audit_record.py → audit/consumption_resource_audit_record.py} +0 -0
  1135. /office365/directory/security/{content_store_metadata_record.py → audit/content_store_metadata_record.py} +0 -0
  1136. /office365/directory/security/{copilot_agent_management_audit_record.py → audit/copilot_agent_management_audit_record.py} +0 -0
  1137. /office365/directory/security/{copilot_for_security_logging_audit_record.py → audit/copilot_for_security_logging_audit_record.py} +0 -0
  1138. /office365/directory/security/{copilot_for_security_trigger_audit_record.py → audit/copilot_for_security_trigger_audit_record.py} +0 -0
  1139. /office365/directory/security/{copilot_interaction_audit_record.py → audit/copilot_interaction_audit_record.py} +0 -0
  1140. /office365/directory/security/{copilot_plugin_setting_audit_record.py → audit/copilot_plugin_setting_audit_record.py} +0 -0
  1141. /office365/directory/security/{copilot_prompt_book_setting_audit_record.py → audit/copilot_prompt_book_setting_audit_record.py} +0 -0
  1142. /office365/directory/security/{copilot_session_sharing_audit_record.py → audit/copilot_session_sharing_audit_record.py} +0 -0
  1143. /office365/directory/security/{copilot_setting_audit_record.py → audit/copilot_setting_audit_record.py} +0 -0
  1144. /office365/directory/security/{copilot_workspace_setting_audit_record.py → audit/copilot_workspace_setting_audit_record.py} +0 -0
  1145. /office365/directory/security/{core_reporting_settings_audit_record.py → audit/core_reporting_settings_audit_record.py} +0 -0
  1146. /office365/directory/security/{critical_asset_management_classification_record.py → audit/critical_asset_management_classification_record.py} +0 -0
  1147. /office365/directory/security/{crm_entity_operation_audit_record.py → audit/crm_entity_operation_audit_record.py} +0 -0
  1148. /office365/directory/security/{cross_tenant_access_policy_audit_record.py → audit/cross_tenant_access_policy_audit_record.py} +0 -0
  1149. /office365/directory/security/{device_discovery_settings_authenticated_scans_record.py → audit/device_discovery_settings_authenticated_scans_record.py} +0 -0
  1150. /office365/directory/security/{device_discovery_settings_exclusion_record.py → audit/device_discovery_settings_exclusion_record.py} +0 -0
  1151. /office365/directory/security/{device_discovery_settings_record.py → audit/device_discovery_settings_record.py} +0 -0
  1152. /office365/directory/security/{discovery_audit_record.py → audit/discovery_audit_record.py} +0 -0
  1153. /office365/directory/security/{dlp_endpoint_audit_record.py → audit/dlp_endpoint_audit_record.py} +0 -0
  1154. /office365/directory/security/{dlp_import_result_audit_record.py → audit/dlp_import_result_audit_record.py} +0 -0
  1155. /office365/directory/security/{dragon_copilot_access_record.py → audit/dragon_copilot_access_record.py} +0 -0
  1156. /office365/directory/security/{dragon_copilot_admin_record.py → audit/dragon_copilot_admin_record.py} +0 -0
  1157. /office365/directory/security/{dragon_copilot_clinical_data_record.py → audit/dragon_copilot_clinical_data_record.py} +0 -0
  1158. /office365/directory/security/{dragon_copilot_session_record.py → audit/dragon_copilot_session_record.py} +0 -0
  1159. /office365/directory/security/{dynamics365_business_central_audit_record.py → audit/dynamics365_business_central_audit_record.py} +0 -0
  1160. /office365/directory/security/{ehr_connector_audit_base_record.py → audit/ehr_connector_audit_base_record.py} +0 -0
  1161. /office365/directory/security/{eop_submission_feed_entity_audit_record.py → audit/eop_submission_feed_entity_audit_record.py} +0 -0
  1162. /office365/directory/security/{exchange_admin_audit_record.py → audit/exchange_admin_audit_record.py} +0 -0
  1163. /office365/directory/security/{exchange_aggregated_mailbox_audit_record.py → audit/exchange_aggregated_mailbox_audit_record.py} +0 -0
  1164. /office365/directory/security/{exchange_aggregated_operation_record.py → audit/exchange_aggregated_operation_record.py} +0 -0
  1165. /office365/directory/security/{exchange_mailbox_audit_group_record.py → audit/exchange_mailbox_audit_group_record.py} +0 -0
  1166. /office365/directory/security/{exchange_mailbox_audit_record.py → audit/exchange_mailbox_audit_record.py} +0 -0
  1167. /office365/directory/security/{hosted_rpa_audit_record.py → audit/hosted_rpa_audit_record.py} +0 -0
  1168. /office365/directory/security/{hr_signal_audit_record.py → audit/hr_signal_audit_record.py} +0 -0
  1169. /office365/directory/security/{hygiene_event_record.py → audit/hygiene_event_record.py} +0 -0
  1170. /office365/directory/security/{information_barrier_policy_application_audit_record.py → audit/information_barrier_policy_application_audit_record.py} +0 -0
  1171. /office365/directory/security/{information_worker_protection_audit_record.py → audit/information_worker_protection_audit_record.py} +0 -0
  1172. /office365/directory/security/{insider_risk_scoped_user_insights_record.py → audit/insider_risk_scoped_user_insights_record.py} +0 -0
  1173. /office365/directory/security/{insider_risk_scoped_users_record.py → audit/insider_risk_scoped_users_record.py} +0 -0
  1174. /office365/directory/security/{microsoft_stream_audit_record.py → audit/microsoft_stream_audit_record.py} +0 -0
  1175. /office365/directory/security/{microsoft_teams_admin_audit_record.py → audit/microsoft_teams_admin_audit_record.py} +0 -0
  1176. /office365/directory/security/{microsoft_teams_analytics_audit_record.py → audit/microsoft_teams_analytics_audit_record.py} +0 -0
  1177. /office365/directory/security/{microsoft_teams_audit_record.py → audit/microsoft_teams_audit_record.py} +0 -0
  1178. /office365/directory/security/{microsoft_teams_device_audit_record.py → audit/microsoft_teams_device_audit_record.py} +0 -0
  1179. /office365/directory/security/{microsoft_teams_retention_label_action_audit_record.py → audit/microsoft_teams_retention_label_action_audit_record.py} +0 -0
  1180. /office365/directory/security/{microsoft_teams_sensitivity_label_action_audit_record.py → audit/microsoft_teams_sensitivity_label_action_audit_record.py} +0 -0
  1181. /office365/directory/security/{microsoft_teams_shifts_audit_record.py → audit/microsoft_teams_shifts_audit_record.py} +0 -0
  1182. /office365/directory/security/{microsoft_teams_user_concern_audit_record.py → audit/microsoft_teams_user_concern_audit_record.py} +0 -0
  1183. /office365/directory/security/{whois_history_record.py → audit/whois_history_record.py} +0 -0
  1184. /office365/directory/security/{case.py → cases/case.py} +0 -0
  1185. /office365/{sharepoint/migration/assessment → directory/security/collaboration}/__init__.py +0 -0
  1186. /office365/directory/security/{analyzed_email.py → collaboration/analyzed_email.py} +0 -0
  1187. /office365/directory/security/{analyzed_email_authentication_detail.py → collaboration/analyzed_email_authentication_detail.py} +0 -0
  1188. /office365/directory/security/{analyzed_email_delivery_detail.py → collaboration/analyzed_email_delivery_detail.py} +0 -0
  1189. /office365/directory/security/{analyzed_email_dlp_rule_info.py → collaboration/analyzed_email_dlp_rule_info.py} +0 -0
  1190. /office365/directory/security/{analyzed_email_exchange_transport_rule_info.py → collaboration/analyzed_email_exchange_transport_rule_info.py} +0 -0
  1191. /office365/directory/security/{analyzed_email_recipient_detail.py → collaboration/analyzed_email_recipient_detail.py} +0 -0
  1192. /office365/directory/security/{analyzed_email_sender_detail.py → collaboration/analyzed_email_sender_detail.py} +0 -0
  1193. /office365/directory/security/{analyzed_email_url.py → collaboration/analyzed_email_url.py} +0 -0
  1194. /office365/{sharepoint/migration/assessment/scanners → directory/security/datasecurity}/__init__.py +0 -0
  1195. /office365/directory/security/{data_security → datasecurity}/sensitivity_label.py +0 -0
  1196. /office365/directory/security/{host_logon_session_evidence.py → threatintelligence/host_logon_session_evidence.py} +0 -0
  1197. /office365/directory/security/{host_reputation.py → threatintelligence/host_reputation.py} +0 -0
  1198. /office365/directory/security/{hostname.py → threatintelligence/hostname.py} +0 -0
  1199. {office365_rest_python_client-3.0.0.dist-info → office365_rest_python_client-3.1.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,96 @@
1
+ """Generic parallel execution — run a worker across tasks on a thread pool.
2
+
3
+ Centralizes the thread-pool + per-worker context + shared rate-limiting +
4
+ result/error contract so callers don't re-implement it (parallel batch
5
+ execution, the migration uploader, ...). Each worker thread lazily creates one
6
+ context via ``context_factory`` (e.g. a ``ClientContext.clone``) and, when a
7
+ shared :class:`RateLimiter` is given, binds it so the whole fleet paces as a
8
+ group on ``Retry-After`` / ``X-SharePointHealthScore``.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import threading
14
+ from concurrent.futures import ThreadPoolExecutor, as_completed
15
+ from typing import TYPE_CHECKING, Any, Callable, Iterable, List, Optional
16
+
17
+ from office365.runtime.http.throttling import RateLimiter
18
+
19
+ if TYPE_CHECKING:
20
+ from office365.runtime.client_runtime_context import ClientRuntimeContext
21
+
22
+
23
+ def run_parallel(
24
+ worker: Callable[[Optional["ClientRuntimeContext"], Any], Any],
25
+ tasks: Iterable[Any],
26
+ *,
27
+ concurrency: int = 4,
28
+ context_factory: Optional[Callable[[], Optional["ClientRuntimeContext"]]] = None,
29
+ limiter: Optional[RateLimiter] = None,
30
+ progress: Optional[Callable[[Any], None]] = None,
31
+ on_error: Optional[Callable[[Any, Exception], Any]] = None,
32
+ ) -> List[Any]:
33
+ """Run ``worker(context, task)`` for each task on a thread pool.
34
+
35
+ Args:
36
+ worker: Callable invoked once per task with the worker's context (a
37
+ lazily-created per-thread context from ``context_factory``, or None)
38
+ and the task payload.
39
+ tasks: Iterable of task payloads (results are returned in this order).
40
+ concurrency: Maximum number of concurrent worker threads.
41
+ context_factory: Optional zero-arg callable returning a context for each
42
+ worker thread (created once per thread and reused). When a limiter is
43
+ given it is bound to every produced context.
44
+ limiter: Optional shared :class:`RateLimiter` for fleet pacing; when
45
+ ``context_factory`` is given one is created automatically.
46
+ progress: Optional hook fired per completed task with a ``Progress``
47
+ snapshot (``done``/``total``).
48
+ on_error: Optional ``(task, error) -> fallback`` handler; when absent a
49
+ task failure re-raises from the pool.
50
+
51
+ Returns:
52
+ Worker results in input order (a failed task yields its ``on_error``
53
+ fallback, or raises).
54
+ """
55
+ tasks = list(tasks)
56
+ if not tasks:
57
+ return []
58
+
59
+ if limiter is None and context_factory is not None:
60
+ limiter = RateLimiter()
61
+ results: List[Any] = [None] * len(tasks)
62
+ local = threading.local()
63
+ lock = threading.Lock()
64
+ done = {"count": 0}
65
+
66
+ def _context() -> Optional["ClientRuntimeContext"]:
67
+ ctx = getattr(local, "context", None)
68
+ if ctx is None and callable(context_factory):
69
+ ctx = context_factory()
70
+ if ctx is not None and limiter is not None:
71
+ limiter.bind(ctx)
72
+ local.context = ctx
73
+ return ctx
74
+
75
+ def _run(index: int, task: Any) -> None:
76
+ try:
77
+ results[index] = worker(_context(), task)
78
+ except Exception as e: # noqa: BLE001 — per-task errors handled by on_error
79
+ if callable(on_error):
80
+ results[index] = on_error(task, e)
81
+ else:
82
+ raise
83
+ finally:
84
+ with lock:
85
+ done["count"] += 1
86
+ n = done["count"]
87
+ if callable(progress):
88
+ from office365.runtime.operations import Progress
89
+
90
+ progress(Progress(done=n, total=len(tasks), stage="parallel"))
91
+
92
+ with ThreadPoolExecutor(max_workers=concurrency) as executor:
93
+ futures = [executor.submit(_run, index, task) for index, task in enumerate(tasks)]
94
+ for future in as_completed(futures):
95
+ future.result()
96
+ return results
@@ -13,11 +13,13 @@ if TYPE_CHECKING:
13
13
  class ODataPathBuilder:
14
14
  """A builder for constructing OData paths with proper encoding and URL handling."""
15
15
 
16
- # Characters that need special handling in OData URLs
16
+ # Characters that need special handling in OData URLs.
17
+ # NOTE: "/" is intentionally *not* encoded — slashes are valid inside OData
18
+ # string literals, and encoding them inflates path-based URLs (~3x) enough to
19
+ # hit SharePoint's URL length limit for deep folder structures.
17
20
  _SPECIAL_CHARS = {
18
21
  "%": "%25",
19
22
  "+": "%2B",
20
- "/": "%2F",
21
23
  "?": "%3F",
22
24
  "#": "%23",
23
25
  "&": "%26",
@@ -1,12 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import uuid
4
+ from typing import Any, Generic
4
5
 
5
6
  from typing_extensions import Self
6
7
 
7
8
  from office365.runtime.client_runtime_context import ClientRuntimeContext
8
9
  from office365.runtime.queries.client_query import ClientQuery, ReturnT
9
- from office365.runtime.queries.noop import NoOpQuery
10
+ from office365.runtime.queries.deferred import DeferredOperationQuery
10
11
  from office365.runtime.queries.read_entity import ReadEntityQuery
11
12
 
12
13
 
@@ -23,10 +24,10 @@ def create_boundary(prefix: str, compact: bool = False) -> str:
23
24
  return prefix + str(uuid.uuid4())
24
25
 
25
26
 
26
- class BatchQuery(ClientQuery[ReturnT]):
27
+ class BatchQuery(ClientQuery[Any], Generic[ReturnT]):
27
28
  """Client query collection for batch requests."""
28
29
 
29
- def __init__(self, context: ClientRuntimeContext, queries: list[ClientQuery] | None = None) -> None:
30
+ def __init__(self, context: ClientRuntimeContext, queries: list[ClientQuery[Any]] | None = None) -> None:
30
31
  """
31
32
  Initialize a batch query collection.
32
33
 
@@ -38,9 +39,9 @@ class BatchQuery(ClientQuery[ReturnT]):
38
39
  self._current_boundary = create_boundary("batch_")
39
40
  if queries is None:
40
41
  queries = []
41
- self._queries = queries
42
+ self._queries: list[ClientQuery[Any]] = queries
42
43
 
43
- def add(self, query: ClientQuery) -> Self:
44
+ def add(self, query: ClientQuery[Any]) -> Self:
44
45
  """Add a query to the batch.
45
46
 
46
47
  Args:
@@ -50,7 +51,7 @@ class BatchQuery(ClientQuery[ReturnT]):
50
51
  return self
51
52
 
52
53
  @property
53
- def ordered_queries(self) -> list[ClientQuery]:
54
+ def ordered_queries(self) -> list[ClientQuery[Any]]:
54
55
  """Returns all queries in execution order (change sets first, then GET queries)."""
55
56
  return self.change_sets + self.get_queries
56
57
 
@@ -60,19 +61,23 @@ class BatchQuery(ClientQuery[ReturnT]):
60
61
  return self._current_boundary
61
62
 
62
63
  @property
63
- def change_sets(self) -> list[ClientQuery]:
64
+ def change_sets(self) -> list[ClientQuery[Any]]:
64
65
  """Gets all queries that modify data (non-GET operations)."""
65
- return [qry for qry in self._queries if not isinstance(qry, (ReadEntityQuery, NoOpQuery))]
66
+ return [qry for qry in self._queries if not isinstance(qry, (ReadEntityQuery, DeferredOperationQuery))]
66
67
 
67
68
  @property
68
- def queries(self) -> list[ClientQuery]:
69
+ def queries(self) -> list[ClientQuery[Any]]:
69
70
  """Gets all queries in the batch."""
70
71
  return self._queries
71
72
 
72
73
  @property
73
- def get_queries(self) -> list[ClientQuery]:
74
- """Gets all read-only (GET) queries in the batch."""
75
- return [qry for qry in self._queries if isinstance(qry, (ReadEntityQuery, NoOpQuery))]
74
+ def get_queries(self) -> list[ClientQuery[Any]]:
75
+ """Gets all read-only (GET) queries in the batch.
76
+
77
+ DeferredOperationQuery placeholders are excluded: they carry no request
78
+ of their own and resolve as no-ops.
79
+ """
80
+ return [qry for qry in self._queries if isinstance(qry, ReadEntityQuery)]
76
81
 
77
82
  @property
78
83
  def has_change_sets(self) -> bool:
@@ -85,6 +90,10 @@ class BatchQuery(ClientQuery[ReturnT]):
85
90
  return f"{self.context.service_root_url}/$batch"
86
91
 
87
92
  @property
88
- def return_type(self) -> list[ReturnT]: # type:ignore
89
- """Gets the return types of all queries in the batch."""
93
+ def return_types(self) -> list[ReturnT]:
94
+ """Gets the return types of all queries in the batch.
95
+
96
+ Named ``return_types`` (not ``return_type``) because a batch's response
97
+ is a list, while ``ClientQuery.return_type`` describes a single result.
98
+ """
90
99
  return [q.return_type for q in self._queries if q.return_type]
@@ -10,6 +10,7 @@ from office365.runtime.paths.resource_path import ResourcePath
10
10
 
11
11
  if TYPE_CHECKING:
12
12
  from office365.runtime.client_object import ClientObject
13
+ from office365.runtime.client_request import ClientRequest
13
14
  from office365.runtime.client_result import ClientResult
14
15
  from office365.runtime.client_runtime_context import ClientRuntimeContext
15
16
  from office365.runtime.client_value import ClientValue
@@ -43,7 +44,7 @@ class ClientQuery(Generic[ReturnT]):
43
44
  self._binding_type = binding_type
44
45
  self._parameters_type = parameters_type
45
46
  self._parameters_name = parameters_name
46
- self._return_type = return_type
47
+ self._return_type: ReturnT | None = return_type
47
48
 
48
49
  def build_request(self) -> RequestOptions:
49
50
  """Builds a request"""
@@ -51,17 +52,14 @@ class ClientQuery(Generic[ReturnT]):
51
52
  self.context.pending_request().beforeExecute(request)
52
53
  return request
53
54
 
54
- def execute_query(self) -> ReturnT | None:
55
- """Executes the query and returns the result.
55
+ def execute_query(self, request: "ClientRequest") -> None:
56
+ """Run this query via the given request.
56
57
 
57
- Returns:
58
- The query result of type T
59
-
60
- Raises:
61
- ClientRequestException: If query execution fails
58
+ The base implementation delegates to the transport (sends the HTTP
59
+ request); subclasses may override how they execute — e.g.
60
+ ``DeferredOperationQuery`` resolves without sending a request.
62
61
  """
63
- self.context.execute_query()
64
- return self.return_type
62
+ request.execute_query(self)
65
63
 
66
64
  def before_execute(self, action: Callable[[RequestOptions], None], once: bool = True) -> Self:
67
65
  """
@@ -0,0 +1,72 @@
1
+ """A placeholder query that defers an operation until it resolves.
2
+
3
+ Implements a lightweight promise: the placeholder occupies a fixed slot in the
4
+ pending queue; when the prerequisite resolves, :meth:`defer` swaps the slot for
5
+ the real operation (e.g. a field create) or :meth:`resolve` drops it. When it
6
+ executes it runs the deferred operation (if any) or resolves as a no-op without
7
+ a request — so anything queued after the placeholder always runs after the
8
+ operation completes, with no queue reordering.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ from typing import TYPE_CHECKING, Any, Optional
14
+
15
+ import requests
16
+ from typing_extensions import Self
17
+
18
+ from office365.runtime.queries.client_query import ClientQuery
19
+
20
+ if TYPE_CHECKING:
21
+ from office365.runtime.client_object import ClientObject
22
+ from office365.runtime.client_request import ClientRequest
23
+
24
+ _OK_RESPONSE = requests.Response()
25
+ _OK_RESPONSE.status_code = 200
26
+
27
+
28
+ class DeferredOperationQuery(ClientQuery[Any]):
29
+ """A queue placeholder that resolves to a deferred operation (or a no-op)."""
30
+
31
+ def __init__(self, context, return_type: Optional["ClientObject"] = None):
32
+ super().__init__(context, return_type=return_type)
33
+ self._deferred: Optional[ClientQuery] = None
34
+
35
+ def defer(self, query: ClientQuery) -> Self:
36
+ """Swap this placeholder's queue slot for the actual operation.
37
+
38
+ The operation runs next (in this slot), before anything queued after
39
+ the placeholder.
40
+ """
41
+ self._deferred = query
42
+ queue = self.context._queries # type: ignore[attr-defined]
43
+ try:
44
+ queue[queue.index(self)] = query
45
+ except ValueError:
46
+ pass
47
+ return self
48
+
49
+ def resolve(self) -> None:
50
+ """Drop this placeholder from the queue (no operation is needed)."""
51
+ queue = self.context._queries # type: ignore[attr-defined]
52
+ try:
53
+ queue.remove(self)
54
+ except ValueError:
55
+ pass
56
+
57
+ def execute_query(self, request: "ClientRequest") -> None:
58
+ """Resolve this placeholder.
59
+
60
+ If an operation was deferred, run it (its response fires this
61
+ placeholder's ``after_execute`` handlers). Otherwise resolve as a
62
+ no-op — firing the handlers without sending any request.
63
+ """
64
+ if self._deferred is not None:
65
+ request.execute_query(self._deferred)
66
+ else:
67
+ request.afterExecute(_OK_RESPONSE)
68
+
69
+ @property
70
+ def deferred_query(self) -> Optional[ClientQuery]:
71
+ """The attached operation, or ``None`` when not deferred."""
72
+ return self._deferred
@@ -1,12 +1,12 @@
1
1
  from typing import TYPE_CHECKING
2
2
 
3
- from office365.runtime.queries.client_query import ClientQuery
3
+ from office365.runtime.queries.client_query import ClientQuery, ReturnT
4
4
 
5
5
  if TYPE_CHECKING:
6
6
  from office365.runtime.client_object import ClientObject
7
7
 
8
8
 
9
- class DeleteEntityQuery(ClientQuery):
9
+ class DeleteEntityQuery(ClientQuery[ReturnT]):
10
10
  """A query to delete an entity from the server."""
11
11
 
12
12
  def __init__(self, delete_type: "ClientObject") -> None:
@@ -1,10 +1,15 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from typing import TYPE_CHECKING, Optional
4
+
3
5
  from office365.runtime.client_object import ClientObject
4
6
  from office365.runtime.client_value import ClientValue
5
7
  from office365.runtime.paths.service_operation import ServiceOperationPath
6
8
  from office365.runtime.queries.client_query import ClientQuery, ReturnT
7
9
 
10
+ if TYPE_CHECKING:
11
+ from office365.runtime.odata.query_options import QueryOptions
12
+
8
13
 
9
14
  class FunctionQuery(ClientQuery[ReturnT]):
10
15
  """Represents a function call OData query."""
@@ -15,6 +20,7 @@ class FunctionQuery(ClientQuery[ReturnT]):
15
20
  method_name: str | None = None,
16
21
  method_params: list | dict | ClientValue | None = None,
17
22
  return_type: ReturnT | None = None,
23
+ return_raw_content: bool = False,
18
24
  ) -> None:
19
25
  """Initialize a function query.
20
26
 
@@ -23,11 +29,39 @@ class FunctionQuery(ClientQuery[ReturnT]):
23
29
  method_name: The name of the method to call
24
30
  method_params: Parameters for the method call
25
31
  return_type: The expected return type
32
+ return_raw_content: When True, the response body is treated as raw content
33
+ (e.g. file download) rather than parsed as OData JSON.
26
34
  """
27
35
  super().__init__(binding_type.context, binding_type, None, None, return_type)
28
36
  self._path = ServiceOperationPath(method_name or "", method_params, binding_type.resource_path)
37
+ self._return_raw_content = return_raw_content
38
+
39
+ @property
40
+ def return_raw_content(self) -> bool:
41
+ """Whether the response should be treated as raw content, not OData JSON."""
42
+ return self._return_raw_content
43
+
44
+ @property
45
+ def query_options(self) -> Optional["QueryOptions"]:
46
+ """Query options carried by the function's return collection (if any)."""
47
+ return self._return_type.query_options if isinstance(self._return_type, ClientObject) else None
48
+
49
+ @property
50
+ def url(self) -> str:
51
+ """The function URL with any fluent query options appended.
52
+
53
+ Function endpoints (e.g. ``getAllMessages``) accept standard OData query
54
+ options, so ``.filter()/.select()/.top()`` set on the returned
55
+ collection are forwarded to the request.
56
+ """
57
+ url = super().url
58
+ options = self.query_options
59
+ if options is not None and not options.is_empty:
60
+ delimiter = "&" if "?" in url else "?"
61
+ url = f"{url}{delimiter}{options}"
62
+ return url
29
63
 
30
- def __repr__(self) -> str:
64
+ def __repr__(self):
31
65
  return f"FunctionQuery(name={self.name})"
32
66
 
33
67
  @property
@@ -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,137 @@
1
+ """Generic retry with exponential backoff + jitter — reusable, first-class retry helper.
2
+
3
+ Follows the Microsoft Graph / SharePoint guidance: honor the server's
4
+ ``Retry-After`` header when present, otherwise back off exponentially with
5
+ jitter (so a fleet of clients doesn't retry in lock-step).
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import random
11
+ from time import sleep
12
+ from typing import Any, Callable, Optional, Tuple, Type
13
+
14
+ from office365.runtime.client_request_exception import ClientRequestException
15
+
16
+ TRANSIENT_STATUS_CODES = frozenset({408, 429, 500, 502, 503, 504})
17
+
18
+
19
+ def is_transient_error(ex: Exception) -> bool:
20
+ """Whether an exception reflects a transient failure worth retrying.
21
+
22
+ Non-HTTP errors (e.g. connection/timeout) are treated as transient.
23
+ """
24
+ status_code = getattr(getattr(ex, "response", None), "status_code", None)
25
+ if status_code is None:
26
+ return True
27
+ return status_code in TRANSIENT_STATUS_CODES
28
+
29
+
30
+ def retry_after_delay(ex: Exception) -> Optional[int]:
31
+ """Return the server-requested retry delay for throttling errors.
32
+
33
+ Reads the ``Retry-After`` header of a 429/503 response; returns ``None``
34
+ when it is unavailable or malformed so callers fall back to the backoff.
35
+
36
+ Args:
37
+ ex: The exception that was raised
38
+ """
39
+ response = getattr(ex, "response", None)
40
+ if response is None or getattr(response, "status_code", None) not in {429, 503}:
41
+ return None
42
+ return response_retry_after(response)
43
+
44
+
45
+ def response_retry_after(response: Any) -> Optional[int]:
46
+ """Parse the ``Retry-After`` header (seconds) from a response, if any.
47
+
48
+ Returns ``None`` when the header is absent or malformed.
49
+
50
+ Args:
51
+ response: A ``requests.Response`` (or object exposing ``.headers``)
52
+ """
53
+ if response is None:
54
+ return None
55
+ value = response.headers.get("Retry-After", None)
56
+ if value is None:
57
+ return None
58
+ try:
59
+ return int(value)
60
+ except (TypeError, ValueError):
61
+ return None
62
+
63
+
64
+ def backoff_delay(attempt: int, base: int, max_delay: Optional[int] = None, jitter: bool = True) -> float:
65
+ """Compute the delay before retry ``attempt``.
66
+
67
+ Exponential: ``base * 2 ** (attempt - 1)``, capped at ``max_delay``. With
68
+ ``jitter`` enabled (default) the delay is randomized in ``[0, delay]`` per
69
+ the "full jitter" strategy, avoiding synchronized retry storms.
70
+
71
+ Args:
72
+ attempt: 1-based retry attempt number.
73
+ base: Base delay in seconds (``timeout_secs``).
74
+ max_delay: Optional upper bound in seconds for the exponential growth.
75
+ jitter: Whether to randomize the delay (default True).
76
+
77
+ Returns:
78
+ Seconds to sleep before this attempt.
79
+ """
80
+ delay = base * (2 ** (attempt - 1))
81
+ if max_delay is not None:
82
+ delay = min(delay, max_delay)
83
+ if jitter:
84
+ delay = random.uniform(0, delay)
85
+ return delay
86
+
87
+
88
+ def retry(
89
+ func: Callable[[], Any],
90
+ max_retry: int = 5,
91
+ timeout_secs: int = 5,
92
+ max_delay: Optional[int] = None,
93
+ jitter: bool = True,
94
+ exceptions: Tuple[Type[Exception], ...] = (ClientRequestException,),
95
+ is_retriable: Callable[[Exception], bool] = is_transient_error,
96
+ on_failure: Optional[Callable[[int, Exception], Optional[int]]] = None,
97
+ on_success: Optional[Callable[[Any], None]] = None,
98
+ ) -> Any:
99
+ """Run ``func``, retrying transient failures with exponential backoff.
100
+
101
+ Permanent failures re-raise immediately; the last exception is re-raised
102
+ once retries are exhausted.
103
+
104
+ The delay between attempts is exponential with jitter (``backoff_delay``);
105
+ when ``on_failure`` returns a delay (e.g. the server's ``Retry-After`` via
106
+ :func:`retry_after_delay`) that value overrides the backoff.
107
+
108
+ Args:
109
+ func: Callable to execute
110
+ max_retry: Maximum number of retry attempts
111
+ timeout_secs: Base delay for exponential backoff (seconds)
112
+ max_delay: Optional cap on the exponential delay (seconds)
113
+ jitter: Whether to randomize the delay (default True)
114
+ exceptions: Exception types that are candidates for retry
115
+ is_retriable: Classifier deciding whether a caught exception is retried
116
+ on_failure: Called after each failed attempt with ``(attempt, ex)``;
117
+ may return a retry delay (seconds) to override the backoff
118
+ on_success: Called with ``func()`` result on success
119
+ """
120
+ last_ex: Exception | None = None
121
+ for attempt in range(1, max_retry + 1):
122
+ try:
123
+ result = func()
124
+ if callable(on_success):
125
+ on_success(result)
126
+ return result
127
+ except exceptions as e:
128
+ if not callable(is_retriable) or not is_retriable(e):
129
+ raise
130
+ last_ex = e
131
+ retry_after: Optional[int] = None
132
+ if callable(on_failure):
133
+ retry_after = on_failure(attempt, e)
134
+ delay = retry_after if retry_after is not None else backoff_delay(attempt, timeout_secs, max_delay, jitter)
135
+ sleep(delay)
136
+ assert last_ex is not None
137
+ raise last_ex
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from office365.runtime.client_value import ClientValue
6
+
7
+
8
+ @dataclass
9
+ class BinaryContent(ClientValue):
10
+ data: bytes | None = None
11
+
12
+ @property
13
+ def entity_type_name(self) -> str:
14
+ return "microsoft.graph.BinaryContent"
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from office365.runtime.client_value import ClientValue
6
+
7
+
8
+ @dataclass
9
+ class IPv4CidrRange(ClientValue):
10
+ cidrAddress: str | None = None
11
+
12
+ @property
13
+ def entity_type_name(self) -> str:
14
+ return "microsoft.graph.IPv4CidrRange"
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from office365.runtime.client_value import ClientValue
6
+
7
+
8
+ @dataclass
9
+ class IPv6CidrRange(ClientValue):
10
+ cidrAddress: str | None = None
11
+
12
+ @property
13
+ def entity_type_name(self) -> str:
14
+ return "microsoft.graph.IPv6CidrRange"
@@ -0,0 +1,10 @@
1
+ from __future__ import annotations
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from office365.runtime.client_value import ClientValue
6
+
7
+
8
+ @dataclass
9
+ class Json(ClientValue):
10
+ pass
@@ -7,7 +7,14 @@ _ODATA_MARKER = "__odata__"
7
7
 
8
8
  @dataclass
9
9
  class ODataPropertyMeta:
10
+ """Metadata for an ``@odata``-declared property.
11
+
12
+ ``name`` is the JSON/OData key; ``attr`` is the Python attribute name,
13
+ filled in by ``ClientObject.__init_subclass__`` at class creation.
14
+ """
15
+
10
16
  name: str
17
+ attr: str = ""
11
18
  persist: bool = False
12
19
  filterable: bool = False
13
20
  nullable: bool = True