Office365-REST-Python-Client 2.4.2__py3-none-any.whl → 2.4.4__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 (411) hide show
  1. {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/METADATA +65 -31
  2. {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/RECORD +401 -259
  3. office365/base_item.py +27 -5
  4. office365/booking/business.py +7 -0
  5. office365/booking/currency.py +5 -0
  6. office365/booking/solutions_root.py +32 -0
  7. office365/communications/calls/invitation_participant_info.py +17 -1
  8. office365/communications/calls/options.py +9 -0
  9. office365/communications/onlinemeetings/provider_type.py +3 -0
  10. office365/communications/presences/presence.py +14 -0
  11. office365/communications/presences/status_message.py +12 -0
  12. office365/directory/administrative_unit.py +22 -0
  13. office365/directory/applications/collection.py +2 -1
  14. office365/directory/applications/roles/assignment.py +45 -5
  15. office365/directory/applications/roles/assignment_collection.py +8 -0
  16. office365/directory/applications/roles/role.py +6 -1
  17. office365/directory/audit/signins/activity.py +31 -0
  18. office365/directory/audit/signins/location.py +17 -0
  19. office365/directory/audit/signins/signin.py +33 -0
  20. office365/directory/authentication/authentication.py +9 -0
  21. office365/directory/authentication/methods/details.py +25 -0
  22. office365/directory/authentication/methods/email.py +16 -0
  23. office365/directory/authentication/methods/root.py +27 -0
  24. office365/directory/certificates/authority.py +6 -1
  25. office365/directory/extensions/extended_property.py +8 -1
  26. office365/directory/extensions/extension.py +1 -1
  27. office365/directory/extensions/extension_property.py +0 -3
  28. office365/directory/extensions/open_type.py +8 -0
  29. office365/directory/groups/collection.py +2 -4
  30. office365/directory/groups/group.py +18 -4
  31. office365/directory/identities/governance.py +2 -0
  32. office365/directory/identities/object_identity.py +3 -3
  33. office365/directory/insights/resource_reference.py +15 -0
  34. office365/directory/insights/shared.py +36 -0
  35. office365/directory/insights/sharing_detail.py +11 -0
  36. office365/directory/insights/trending.py +8 -0
  37. office365/directory/insights/usage_details.py +16 -0
  38. office365/directory/insights/used.py +30 -0
  39. office365/directory/invitations/invitation.py +33 -1
  40. office365/directory/licenses/assigned_plan.py +19 -1
  41. office365/directory/licenses/assignment_state.py +5 -0
  42. office365/directory/licenses/service_plan_info.py +4 -0
  43. office365/directory/licenses/subscribed_sku.py +41 -0
  44. office365/directory/licenses/units_detail.py +11 -0
  45. office365/directory/object.py +3 -1
  46. office365/directory/object_collection.py +3 -4
  47. office365/directory/password_credential.py +5 -1
  48. office365/directory/permissions/email_identity.py +5 -0
  49. office365/directory/permissions/grants/condition_set.py +26 -0
  50. office365/directory/permissions/grants/resource_specific.py +21 -0
  51. office365/directory/policies/authentication_flows.py +9 -0
  52. office365/directory/policies/authentication_strength.py +10 -0
  53. office365/directory/policies/authorization.py +8 -0
  54. office365/directory/policies/cross_tenant_access.py +5 -0
  55. office365/directory/policies/root.py +35 -2
  56. office365/directory/protection/information.py +5 -0
  57. office365/directory/protection/risk_detection.py +11 -0
  58. office365/directory/protection/riskyusers/activity.py +5 -0
  59. office365/directory/protection/riskyusers/collection.py +32 -0
  60. office365/directory/protection/riskyusers/history_item.py +20 -0
  61. office365/directory/protection/riskyusers/risky_user.py +26 -0
  62. office365/directory/protection/root.py +31 -0
  63. office365/directory/rolemanagement/application.py +35 -0
  64. office365/directory/{roles → rolemanagement}/management.py +8 -1
  65. office365/directory/{roles → rolemanagement}/role.py +14 -0
  66. office365/directory/{roles → rolemanagement}/template.py +8 -0
  67. office365/directory/rolemanagement/unified_role_assignment.py +45 -0
  68. office365/directory/rolemanagement/unified_role_definition.py +6 -0
  69. office365/directory/security/alerts/alert.py +21 -0
  70. office365/directory/security/alerts/history_state.py +5 -0
  71. office365/directory/security/attacksimulations/automation.py +21 -0
  72. office365/directory/security/attacksimulations/automation_run.py +5 -0
  73. office365/directory/security/attacksimulations/repeat_offender.py +6 -0
  74. office365/directory/security/attacksimulations/root.py +26 -0
  75. office365/directory/security/attacksimulations/simulation.py +17 -0
  76. office365/directory/security/cases/__init__.py +0 -0
  77. office365/directory/security/cases/ediscovery.py +6 -0
  78. office365/directory/security/cases/root.py +22 -0
  79. office365/directory/security/incidents/incident.py +67 -0
  80. office365/directory/security/security.py +10 -1
  81. office365/directory/serviceprincipals/service_principal.py +89 -4
  82. office365/directory/synchronization/__init__.py +0 -0
  83. office365/directory/synchronization/job.py +16 -0
  84. office365/directory/synchronization/progress.py +5 -0
  85. office365/directory/synchronization/status.py +13 -0
  86. office365/directory/synchronization/synchronization.py +24 -0
  87. office365/directory/tenant_information.py +17 -0
  88. office365/directory/tenant_relationship.py +21 -0
  89. office365/directory/users/activities/activity.py +45 -1
  90. office365/directory/users/collection.py +8 -0
  91. office365/directory/users/password_profile.py +18 -2
  92. office365/directory/users/user.py +254 -29
  93. office365/entity.py +3 -3
  94. office365/graph_client.py +64 -12
  95. office365/intune/audit/actor.py +5 -0
  96. office365/intune/audit/event.py +21 -24
  97. office365/intune/audit/event_collection.py +26 -0
  98. office365/intune/audit/property.py +5 -0
  99. office365/intune/audit/resource.py +11 -0
  100. office365/intune/brand.py +6 -0
  101. office365/intune/devices/compliance/__init__.py +0 -0
  102. office365/intune/devices/compliance/policy.py +6 -0
  103. office365/intune/devices/compliance/policy_state.py +5 -0
  104. office365/intune/devices/data.py +5 -0
  105. office365/intune/devices/detail.py +10 -0
  106. office365/intune/devices/enrollment/__init__.py +0 -0
  107. office365/intune/devices/enrollment/configuration.py +25 -0
  108. office365/intune/devices/enrollment/configuration_assignment.py +5 -0
  109. office365/intune/devices/enrollment/limit_configuration.py +5 -0
  110. office365/intune/devices/managed.py +44 -3
  111. office365/intune/devices/management/__init__.py +0 -0
  112. office365/intune/devices/management/management.py +69 -0
  113. office365/intune/devices/management/reports/__init__.py +0 -0
  114. office365/intune/devices/management/reports/reports.py +5 -0
  115. office365/intune/devices/management/settings.py +18 -0
  116. office365/intune/organizations/branding.py +15 -0
  117. office365/intune/organizations/organization.py +14 -0
  118. office365/intune/printing/__init__.py +0 -0
  119. office365/intune/printing/base.py +11 -0
  120. office365/intune/printing/capabilities.py +5 -0
  121. office365/intune/printing/connectors/__init__.py +0 -0
  122. office365/intune/printing/connectors/connector.py +6 -0
  123. office365/intune/printing/operations/__init__.py +0 -0
  124. office365/intune/printing/print.py +24 -0
  125. office365/intune/printing/printer.py +6 -0
  126. office365/intune/printing/services/__init__.py +0 -0
  127. office365/intune/printing/services/endpoint.py +5 -0
  128. office365/intune/printing/services/service.py +17 -0
  129. office365/intune/printing/share.py +5 -0
  130. office365/intune/printing/shares/__init__.py +0 -0
  131. office365/intune/printing/taskdefinitions/__init__.py +0 -0
  132. office365/intune/provisioned_plan.py +5 -1
  133. office365/intune/servicecommunications/__init__.py +0 -0
  134. office365/intune/servicecommunications/announcement.py +39 -0
  135. office365/intune/servicecommunications/announcement_base.py +5 -0
  136. office365/intune/servicecommunications/health/__init__.py +0 -0
  137. office365/intune/servicecommunications/health/health.py +7 -0
  138. office365/intune/servicecommunications/issues/__init__.py +0 -0
  139. office365/intune/servicecommunications/issues/issue.py +29 -0
  140. office365/intune/servicecommunications/messages/__init__.py +0 -0
  141. office365/intune/servicecommunications/messages/update.py +10 -0
  142. office365/intune/termsandconditions/__init__.py +0 -0
  143. office365/intune/vpp_token.py +10 -0
  144. office365/onedrive/admin.py +16 -0
  145. office365/onedrive/columns/content_approval_status.py +5 -0
  146. office365/onedrive/columns/datetime.py +15 -0
  147. office365/onedrive/columns/default_value.py +4 -0
  148. office365/onedrive/columns/definition.py +49 -3
  149. office365/onedrive/columns/definition_collection.py +17 -6
  150. office365/onedrive/columns/lookup.py +5 -1
  151. office365/onedrive/columns/types.py +13 -0
  152. office365/onedrive/contenttypes/content_type.py +8 -0
  153. office365/onedrive/driveitems/audio.py +12 -1
  154. office365/onedrive/driveitems/driveItem.py +147 -69
  155. office365/onedrive/driveitems/image.py +8 -1
  156. office365/onedrive/driveitems/item_preview_info.py +20 -2
  157. office365/onedrive/driveitems/remote_item.py +19 -4
  158. office365/onedrive/drives/drive.py +7 -1
  159. office365/onedrive/drives/quota.py +18 -0
  160. office365/onedrive/drives/recipient.py +4 -0
  161. office365/onedrive/files/system_info.py +8 -6
  162. office365/onedrive/folders/folder.py +3 -3
  163. office365/onedrive/internal/paths/children.py +1 -4
  164. office365/onedrive/internal/paths/shared.py +7 -2
  165. office365/onedrive/lists/collection.py +12 -6
  166. office365/onedrive/lists/list.py +13 -5
  167. office365/onedrive/operations/long_running.py +7 -0
  168. office365/onedrive/operations/pending.py +13 -0
  169. office365/onedrive/operations/pending_content_update.py +5 -0
  170. office365/onedrive/permissions/collection.py +5 -6
  171. office365/onedrive/permissions/sharing_link.py +16 -1
  172. office365/onedrive/sensitivitylabels/__init__.py +0 -0
  173. office365/onedrive/sensitivitylabels/assignment.py +17 -0
  174. office365/onedrive/sensitivitylabels/assignment_method.py +4 -0
  175. office365/onedrive/sensitivitylabels/extract_result.py +13 -0
  176. office365/onedrive/sharepoint_settings.py +25 -0
  177. office365/onedrive/sites/sites_with_root.py +11 -1
  178. office365/onedrive/termstore/groups/collection.py +1 -1
  179. office365/onedrive/termstore/groups/group.py +1 -0
  180. office365/onedrive/termstore/sets/collection.py +1 -1
  181. office365/onenote/operations/operation.py +10 -1
  182. office365/onenote/resources/resource.py +1 -0
  183. office365/outlook/calendar/calendar.py +116 -6
  184. office365/outlook/calendar/dateTimeTimeZone.py +4 -0
  185. office365/outlook/calendar/email_address.py +7 -0
  186. office365/outlook/calendar/events/event.py +0 -4
  187. office365/outlook/calendar/events/reminder.py +22 -3
  188. office365/outlook/calendar/group.py +0 -2
  189. office365/outlook/calendar/location_constraint.py +16 -1
  190. office365/outlook/calendar/meetingtimes/activity_domain.py +10 -0
  191. office365/outlook/calendar/meetingtimes/suggestion.py +1 -1
  192. office365/outlook/calendar/meetingtimes/time_constraint.py +18 -0
  193. office365/outlook/calendar/permissions/__init__.py +0 -0
  194. office365/outlook/calendar/permissions/collection.py +24 -0
  195. office365/outlook/calendar/{permission.py → permissions/permission.py} +35 -2
  196. office365/outlook/calendar/place.py +7 -0
  197. office365/outlook/calendar/role_type.py +17 -0
  198. office365/outlook/calendar/schedule/information.py +5 -4
  199. office365/outlook/calendar/schedule/item.py +20 -1
  200. office365/outlook/calendar/sharing_message.py +2 -2
  201. office365/outlook/calendar/time_zone_base.py +3 -0
  202. office365/outlook/calendar/working_hours.py +17 -1
  203. office365/outlook/contacts/collection.py +39 -0
  204. office365/outlook/contacts/contact.py +21 -11
  205. office365/outlook/geo_coordinates.py +20 -0
  206. office365/outlook/item.py +5 -4
  207. office365/outlook/locale_info.py +3 -0
  208. office365/outlook/mail/automatic_replies_setting.py +14 -0
  209. office365/outlook/mail/folders/folder.py +52 -3
  210. office365/outlook/mail/folders/search.py +11 -0
  211. office365/outlook/mail/importance.py +1 -0
  212. office365/outlook/mail/item_body.py +3 -0
  213. office365/outlook/mail/location.py +27 -2
  214. office365/outlook/mail/location_constraint_item.py +5 -0
  215. office365/outlook/mail/mailbox_settings.py +13 -1
  216. office365/outlook/mail/messages/collection.py +7 -0
  217. office365/outlook/mail/messages/followup_flag.py +21 -0
  218. office365/outlook/mail/messages/internet_header.py +16 -0
  219. office365/outlook/mail/messages/message.py +184 -6
  220. office365/outlook/mail/messages/rules/__init__.py +0 -0
  221. office365/outlook/mail/messages/rules/actions.py +38 -0
  222. office365/outlook/mail/messages/rules/predicates.py +5 -0
  223. office365/outlook/mail/messages/rules/rule.py +32 -0
  224. office365/outlook/mail/patterned_recurrence.py +14 -1
  225. office365/outlook/mail/physical_address.py +5 -1
  226. office365/outlook/mail/recipient.py +3 -0
  227. office365/outlook/mail/recurrence_pattern.py +18 -1
  228. office365/outlook/mail/recurrence_range.py +16 -2
  229. office365/outlook/timezone_information.py +3 -0
  230. office365/reports/root.py +28 -1
  231. office365/reports/security/__init__.py +0 -0
  232. office365/reports/security/root.py +21 -0
  233. office365/reports/userregistration/__init__.py +0 -0
  234. office365/reports/userregistration/method_count.py +17 -0
  235. office365/reports/userregistration/method_summary.py +21 -0
  236. office365/runtime/auth/authentication_context.py +123 -25
  237. office365/runtime/auth/client_credential.py +2 -2
  238. office365/runtime/auth/providers/acs_token_provider.py +6 -3
  239. office365/runtime/auth/providers/saml_token_provider.py +10 -7
  240. office365/runtime/auth/token_response.py +3 -3
  241. office365/runtime/client_object_collection.py +12 -7
  242. office365/runtime/client_result.py +9 -0
  243. office365/runtime/client_runtime_context.py +10 -8
  244. office365/runtime/http/request_options.py +2 -1
  245. office365/runtime/odata/request.py +4 -4
  246. office365/runtime/paths/appid.py +2 -1
  247. office365/runtime/paths/entity.py +2 -2
  248. office365/{sharepoint/internal/paths/entity.py → runtime/paths/key.py} +5 -3
  249. office365/runtime/paths/resource_path.py +3 -0
  250. office365/runtime/types/event_handler.py +6 -0
  251. office365/search/external/__init__.py +0 -0
  252. office365/search/external/configuration.py +8 -0
  253. office365/search/external/connection.py +27 -0
  254. office365/{external → search/external}/external.py +1 -1
  255. office365/search/external/search_settings.py +5 -0
  256. office365/search/query.py +3 -1
  257. office365/search/request.py +3 -1
  258. office365/search/sharepoint_onedrive_options.py +3 -0
  259. office365/search/sort_property.py +9 -0
  260. office365/sharepoint/activities/client_request.py +4 -1
  261. office365/sharepoint/activities/logger.py +25 -0
  262. office365/sharepoint/activities/revision_info.py +9 -0
  263. office365/sharepoint/addtoonedrive/mount_point.py +25 -0
  264. office365/sharepoint/addtoonedrive/mounted_folder_info.py +5 -0
  265. office365/sharepoint/alerts/alert.py +31 -0
  266. office365/sharepoint/apps/license_collection.py +1 -2
  267. office365/sharepoint/changes/item.py +14 -0
  268. office365/sharepoint/client_context.py +91 -30
  269. office365/sharepoint/clientsidecomponent/component_context_info.py +7 -0
  270. office365/sharepoint/clientsidecomponent/identifier.py +3 -0
  271. office365/sharepoint/compliance/tag_info.py +17 -0
  272. office365/sharepoint/contenttypes/collection.py +6 -7
  273. office365/sharepoint/contenttypes/content_type.py +49 -1
  274. office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -6
  275. office365/sharepoint/features/known_list.py +2 -0
  276. office365/sharepoint/fields/collection.py +70 -39
  277. office365/sharepoint/fields/computed.py +5 -2
  278. office365/sharepoint/fields/creation_information.py +5 -4
  279. office365/sharepoint/fields/field.py +73 -15
  280. office365/sharepoint/fields/user.py +3 -3
  281. office365/sharepoint/files/checked_out_file.py +3 -2
  282. office365/sharepoint/files/file.py +9 -4
  283. office365/sharepoint/files/versions/version.py +7 -9
  284. office365/sharepoint/folders/collection.py +2 -2
  285. office365/sharepoint/folders/coloring.py +39 -0
  286. office365/sharepoint/folders/coloring_information.py +15 -0
  287. office365/sharepoint/folders/folder.py +21 -10
  288. office365/sharepoint/forms/customization.py +8 -0
  289. office365/sharepoint/listitems/listitem.py +29 -10
  290. office365/sharepoint/lists/bloom_filter.py +0 -1
  291. office365/sharepoint/lists/creation_information.py +18 -4
  292. office365/sharepoint/lists/list.py +203 -27
  293. office365/sharepoint/lists/render_data_parameters.py +21 -1
  294. office365/sharepoint/lists/template_type.py +10 -0
  295. office365/sharepoint/navigation/configured_metadata_items.py +25 -1
  296. office365/sharepoint/navigation/metadata_settings.py +6 -4
  297. office365/sharepoint/permissions/irm/file_settings.py +43 -0
  298. office365/sharepoint/permissions/securable_object.py +5 -6
  299. office365/sharepoint/portal/sites/manager.py +5 -6
  300. office365/sharepoint/portal/userprofiles/documents_shared_with_group.py +3 -0
  301. office365/sharepoint/publishing/base_custom_property.py +8 -0
  302. office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +8 -0
  303. office365/sharepoint/publishing/pagecopywithassets/__init__.py +0 -0
  304. office365/sharepoint/publishing/pagecopywithassets/response.py +8 -0
  305. office365/sharepoint/publishing/pages/campaign_publication.py +7 -0
  306. office365/sharepoint/publishing/pages/collection.py +1 -1
  307. office365/sharepoint/publishing/pages/page.py +4 -1
  308. office365/sharepoint/publishing/pages/reposts/metadata.py +8 -0
  309. office365/sharepoint/publishing/personmagazine/person_magazine.py +4 -1
  310. office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +8 -1
  311. office365/sharepoint/search/query/auto_completion_match.py +3 -0
  312. office365/sharepoint/search/query/property_value.py +18 -0
  313. office365/sharepoint/search/request.py +16 -2
  314. office365/sharepoint/sharing/abilities.py +22 -0
  315. office365/sharepoint/sharing/direct_abilities.py +27 -0
  316. office365/sharepoint/sharing/link_abilities.py +9 -1
  317. office365/sharepoint/sharing/links/data.py +26 -1
  318. office365/sharepoint/sharing/links/info.py +1 -1
  319. office365/sharepoint/sharing/links/partial_success_response.py +5 -0
  320. office365/sharepoint/sharing/links/share_settings.py +24 -1
  321. office365/sharepoint/sharing/object_sharing_information.py +65 -2
  322. office365/sharepoint/sharing/object_sharing_information_user.py +9 -0
  323. office365/sharepoint/sharing/object_sharing_settings.py +17 -4
  324. office365/sharepoint/sharing/principal.py +10 -0
  325. office365/sharepoint/sharing/securable_object_extensions.py +1 -17
  326. office365/sharepoint/sharing/site_sharing_report_helper.py +2 -1
  327. office365/sharepoint/sharing/user_sharing_result.py +18 -8
  328. office365/sharepoint/sitehealth/result.py +10 -0
  329. office365/sharepoint/sites/language.py +11 -1
  330. office365/sharepoint/sites/language_collection.py +1 -0
  331. office365/sharepoint/sites/site.py +42 -7
  332. office365/sharepoint/taxonomy/create_xml_parameters.py +22 -15
  333. office365/sharepoint/taxonomy/field.py +10 -8
  334. office365/sharepoint/taxonomy/groups/collection.py +8 -1
  335. office365/sharepoint/taxonomy/groups/group.py +26 -0
  336. office365/sharepoint/taxonomy/sets/collection.py +15 -0
  337. office365/sharepoint/taxonomy/sets/name.py +23 -0
  338. office365/sharepoint/taxonomy/sets/set.py +16 -1
  339. office365/sharepoint/taxonomy/stores/store.py +0 -8
  340. office365/sharepoint/tenant/administration/audit/search_request_status.py +8 -0
  341. office365/sharepoint/tenant/administration/deny_add_and_customize_pages_status.py +3 -0
  342. office365/sharepoint/tenant/administration/hubsites/permission.py +10 -0
  343. office365/sharepoint/tenant/administration/sites/properties.py +12 -10
  344. office365/sharepoint/tenant/administration/tenant.py +2 -1
  345. office365/sharepoint/tenant/apps/information.py +3 -1
  346. office365/sharepoint/tenant/management/office365_tenant.py +14 -11
  347. office365/sharepoint/types/resource_path.py +3 -1
  348. office365/sharepoint/userprofiles/people_manager.py +0 -2
  349. office365/sharepoint/userprofiles/sharedwithme/document.py +16 -0
  350. office365/sharepoint/userprofiles/sharedwithme/document_user.py +12 -0
  351. office365/sharepoint/userprofiles/sharedwithme/item_collection.py +41 -0
  352. office365/sharepoint/userprofiles/sharedwithme/items.py +18 -1
  353. office365/sharepoint/viva/site_manager.py +14 -0
  354. office365/sharepoint/webhooks/subscription_collection.py +5 -6
  355. office365/sharepoint/webparts/definition.py +1 -1
  356. office365/sharepoint/webparts/webpart.py +18 -4
  357. office365/sharepoint/webs/context_web_information.py +2 -4
  358. office365/sharepoint/webs/web.py +31 -12
  359. office365/sharepoint/workflowservices/manager.py +0 -2
  360. office365/subscriptions/collection.py +42 -0
  361. office365/subscriptions/subscription.py +120 -2
  362. office365/teams/apps/catalog.py +23 -0
  363. office365/teams/associated_info.py +12 -0
  364. office365/teams/channels/channel.py +2 -3
  365. office365/teams/channels/collection.py +1 -1
  366. office365/teams/channels/iIdentity.py +5 -0
  367. office365/teams/chats/chat.py +12 -2
  368. office365/teams/chats/collection.py +1 -2
  369. office365/teams/chats/messages/__init__.py +0 -0
  370. office365/teams/chats/messages/info.py +14 -0
  371. office365/teams/chats/{message.py → messages/message.py} +18 -3
  372. office365/teams/info.py +20 -0
  373. office365/teams/members/aad_user_conversation.py +2 -2
  374. office365/teams/members/conversation_collection.py +3 -3
  375. office365/teams/schedule/change_request.py +4 -2
  376. office365/teams/schedule/change_tracked_entity.py +11 -2
  377. office365/teams/summary.py +15 -0
  378. office365/teams/tabs/configuration.py +12 -1
  379. office365/teams/tabs/tab.py +0 -1
  380. office365/teams/team.py +34 -1
  381. office365/teams/teamwork/__init__.py +0 -0
  382. office365/teams/teamwork/activity_topic.py +5 -0
  383. office365/teams/teamwork/tags/__init__.py +0 -0
  384. office365/teams/teamwork/tags/identity.py +6 -0
  385. office365/teams/teamwork/tags/member.py +5 -0
  386. office365/teams/teamwork/tags/tag.py +15 -0
  387. office365/{directory/security/cases_root.py → teams/viva/employee_experience_user.py} +1 -1
  388. office365/todo/attachments/session.py +34 -0
  389. office365/todo/linked_resource.py +10 -1
  390. office365/todo/tasks/task.py +4 -0
  391. office365/directory/identities/protection_root.py +0 -5
  392. office365/directory/rbac/application.py +0 -18
  393. office365/directory/rbac/unified_role_assignment.py +0 -8
  394. office365/external/connection.py +0 -5
  395. office365/intune/devices/management.py +0 -35
  396. office365/onedrive/internal/queries/download_content.py +0 -26
  397. office365/onedrive/internal/queries/upload_content.py +0 -23
  398. office365/outlook/mail/messages/message_rule.py +0 -15
  399. office365/runtime/auth/providers/oauth_token_provider.py +0 -25
  400. office365/teams/team_info.py +0 -6
  401. {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/LICENSE +0 -0
  402. {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/WHEEL +0 -0
  403. {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/top_level.txt +0 -0
  404. /office365/{directory/rbac → booking}/__init__.py +0 -0
  405. /office365/directory/{roles → protection}/__init__.py +0 -0
  406. /office365/{external → directory/protection/riskyusers}/__init__.py +0 -0
  407. /office365/{teams/messages → directory/rolemanagement}/__init__.py +0 -0
  408. /office365/outlook/calendar/{time_slot.py → meetingtimes/time_slot.py} +0 -0
  409. /office365/teams/chats/{message_attachment.py → messages/attachment.py} +0 -0
  410. /office365/teams/{member_settings.py → members/settings.py} +0 -0
  411. /office365/teams/{user_teamwork.py → teamwork/user.py} +0 -0
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class RiskUserActivity(ClientValue):
5
+ """Represents the risk activites of an Azure AD user as determined by Azure AD Identity Protection."""
@@ -0,0 +1,32 @@
1
+ from office365.directory.protection.riskyusers.risky_user import RiskyUser
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.runtime.queries.service_operation import ServiceOperationQuery
4
+ from office365.runtime.types.collections import StringCollection
5
+
6
+
7
+ class RiskyUserCollection(EntityCollection):
8
+ """RiskyUser's collection"""
9
+
10
+ def __init__(self, context, resource_path=None):
11
+ super(RiskyUserCollection, self).__init__(context, RiskyUser, resource_path)
12
+
13
+ def confirm_compromised(self, user_ids=None):
14
+ """Confirm one or more riskyUser objects as compromised. This action sets the targeted user's risk level
15
+ to high.
16
+
17
+ :param list[str] user_ids: Specify the risky user IDs to dismiss in the request body.
18
+ """
19
+ payload = {"userIds": StringCollection(user_ids)}
20
+ qry = ServiceOperationQuery(self, "confirmCompromised", None, payload)
21
+ self.context.add_query(qry)
22
+ return self
23
+
24
+ def dismiss(self, user_ids=None):
25
+ """Dismiss the risk of one or more riskyUser objects. This action sets the targeted user's risk level to none.
26
+
27
+ :param list[str] user_ids: Specify the risky user IDs to dismiss in the request body.
28
+ """
29
+ payload = {"userIds": StringCollection(user_ids)}
30
+ qry = ServiceOperationQuery(self, "dismiss", None, payload)
31
+ self.context.add_query(qry)
32
+ return self
@@ -0,0 +1,20 @@
1
+ from office365.directory.protection.riskyusers.activity import RiskUserActivity
2
+ from office365.directory.protection.riskyusers.risky_user import RiskyUser
3
+
4
+
5
+ class RiskyUserHistoryItem(RiskyUser):
6
+ """Represents the risk history of an Azure Active Directory (Azure AD) user as determined
7
+ by Azure AD Identity Protection."""
8
+
9
+ @property
10
+ def activity(self):
11
+ """The activity related to user risk level change.
12
+ """
13
+ return self.properties.get("activity", RiskUserActivity())
14
+
15
+ @property
16
+ def initiated_by(self):
17
+ """The ID of actor that does the operation.
18
+ :rtype: str
19
+ """
20
+ return self.properties.get("initiatedBy", None)
@@ -0,0 +1,26 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.runtime.paths.resource_path import ResourcePath
4
+
5
+
6
+ class RiskyUser(Entity):
7
+ """
8
+ Represents Azure AD users who are at risk. Azure AD continually evaluates user risk based on various
9
+ signals and machine learning. This API provides programmatic access to all at-risk users in your Azure AD.
10
+ """
11
+
12
+ @property
13
+ def history(self):
14
+ """The activity related to user risk level change"""
15
+ from office365.directory.protection.riskyusers.history_item import RiskyUserHistoryItem
16
+ return self.properties.get('history',
17
+ EntityCollection(self.context, RiskyUserHistoryItem,
18
+ ResourcePath("history", self.resource_path)))
19
+
20
+ @property
21
+ def user_principal_name(self):
22
+ """
23
+ Risky user principal name.
24
+ :rtype: str or None
25
+ """
26
+ return self.properties.get('userPrincipalName', None)
@@ -0,0 +1,31 @@
1
+ from office365.directory.protection.risk_detection import RiskDetection
2
+ from office365.directory.protection.riskyusers.collection import RiskyUserCollection
3
+ from office365.entity import Entity
4
+ from office365.entity_collection import EntityCollection
5
+ from office365.runtime.paths.resource_path import ResourcePath
6
+
7
+
8
+ class IdentityProtectionRoot(Entity):
9
+ """Container for the navigation properties for Microsoft Graph identity protection resources."""
10
+
11
+ @property
12
+ def risk_detections(self):
13
+ """Risk detection in Azure AD Identity Protection and the associated information about the detection."""
14
+ return self.properties.get('riskDetections',
15
+ EntityCollection(self.context, RiskDetection,
16
+ ResourcePath("riskDetections", self.resource_path)))
17
+
18
+ @property
19
+ def risky_users(self):
20
+ """Get the teams in Microsoft Teams that the user is a direct member of."""
21
+ return self.properties.get('riskyUsers',
22
+ RiskyUserCollection(self.context, ResourcePath("riskyUsers", self.resource_path)))
23
+
24
+ def get_property(self, name, default_value=None):
25
+ if default_value is None:
26
+ property_mapping = {
27
+ "riskDetections": self.risk_detections,
28
+ "riskyUsers": self.risky_users
29
+ }
30
+ default_value = property_mapping.get(name, None)
31
+ return super(IdentityProtectionRoot, self).get_property(name, default_value)
@@ -0,0 +1,35 @@
1
+ from office365.directory.rolemanagement.unified_role_assignment import UnifiedRoleAssignment
2
+ from office365.directory.rolemanagement.unified_role_definition import UnifiedRoleDefinition
3
+ from office365.entity import Entity
4
+ from office365.entity_collection import EntityCollection
5
+ from office365.runtime.paths.resource_path import ResourcePath
6
+
7
+
8
+ class RbacApplication(Entity):
9
+ """Role management container for unified role definitions and role assignments for Microsoft 365 role-based
10
+ access control (RBAC) providers. The role assignments support only a single principal and a single scope.
11
+ Currently directory and entitlementManagement are the two RBAC providers supported."""
12
+
13
+ @property
14
+ def role_assignments(self):
15
+ """Resource to grant access to users or groups."""
16
+ return self.properties.get('roleAssignments',
17
+ EntityCollection(self.context, UnifiedRoleAssignment,
18
+ ResourcePath("roleAssignments", self.resource_path)))
19
+
20
+ def role_definitions(self):
21
+ """Resource representing the roles allowed by RBAC providers and the permissions assigned to the roles."""
22
+ return self.properties.get('roleDefinitions',
23
+ EntityCollection(self.context, UnifiedRoleDefinition,
24
+ ResourcePath("roleDefinitions", self.resource_path)))
25
+
26
+ def get_property(self, name, default_value=None):
27
+ if default_value is None:
28
+ property_mapping = {
29
+ "roleAssignments": self.role_assignments,
30
+ "roleDefinitions": self.role_definitions
31
+ }
32
+ default_value = property_mapping.get(name, None)
33
+ return super(RbacApplication, self).get_property(name, default_value)
34
+
35
+
@@ -1,4 +1,4 @@
1
- from office365.directory.rbac.application import RbacApplication
1
+ from office365.directory.rolemanagement.application import RbacApplication
2
2
  from office365.entity import Entity
3
3
  from office365.runtime.paths.resource_path import ResourcePath
4
4
 
@@ -15,3 +15,10 @@ class RoleManagement(Entity):
15
15
  def directory(self):
16
16
  return self.properties.get('directory',
17
17
  RbacApplication(self.context, ResourcePath("directory", self.resource_path)))
18
+
19
+ @property
20
+ def entitlement_management(self):
21
+ """Container for roles and assignments for entitlement management resources."""
22
+ return self.properties.get('entitlementManagement',
23
+ RbacApplication(self.context,
24
+ ResourcePath("entitlementManagement", self.resource_path)))
@@ -5,6 +5,20 @@ from office365.runtime.paths.resource_path import ResourcePath
5
5
  class DirectoryRole(DirectoryObject):
6
6
  """Represents an Azure AD directory role. Azure AD directory roles are also known as administrator roles """
7
7
 
8
+ @property
9
+ def description(self):
10
+ """The description for the directory role.
11
+ :rtype: str or None
12
+ """
13
+ return self.properties.get("Description", None)
14
+
15
+ @property
16
+ def display_name(self):
17
+ """The display name for the directory role.
18
+ :rtype: str or None
19
+ """
20
+ return self.properties.get("displayName", None)
21
+
8
22
  @property
9
23
  def members(self):
10
24
  """
@@ -4,3 +4,11 @@ from office365.directory.object import DirectoryObject
4
4
  class DirectoryRoleTemplate(DirectoryObject):
5
5
  """Represents a directory role template. A directory role template specifies the property values of a directory
6
6
  role (directoryRole). """
7
+
8
+ @property
9
+ def display_name(self):
10
+ """
11
+ The display name to set for the directory role
12
+ :rtype: str
13
+ """
14
+ return self.properties.get("displayName", None)
@@ -0,0 +1,45 @@
1
+ from office365.directory.rolemanagement.unified_role_definition import UnifiedRoleDefinition
2
+ from office365.entity import Entity
3
+ from office365.runtime.paths.resource_path import ResourcePath
4
+
5
+
6
+ class UnifiedRoleAssignment(Entity):
7
+ """
8
+ A role assignment is used to grant access to resources. It represents a role definition assigned to a principal
9
+ (for example, a user or a role-assignable group) at a particular scope.
10
+ """
11
+
12
+ @property
13
+ def app_scope_id(self):
14
+ """
15
+ Identifier of the app-specific scope when the assignment scope is app-specific. Either this property or
16
+ directoryScopeId is required. App scopes are scopes that are defined and understood by this application only.
17
+ Use / for tenant-wide app scopes. Use directoryScopeId to limit the scope to particular directory objects,
18
+ for example, administrative units. Supports $filter (eq, in).
19
+ :rtype: str
20
+ """
21
+ return self.properties.get("appScopeId", None)
22
+
23
+ @property
24
+ def condition(self):
25
+ """
26
+ :rtype: str
27
+ """
28
+ return self.properties.get("condition", None)
29
+
30
+ @property
31
+ def role_definition(self):
32
+ """
33
+ The roleDefinition the assignment is for. Supports $expand. roleDefinition.Id will be auto expanded.
34
+ """
35
+ return self.properties.get('roleDefinition',
36
+ UnifiedRoleDefinition(self.context,
37
+ ResourcePath("roleDefinition", self.resource_path)))
38
+
39
+ def get_property(self, name, default_value=None):
40
+ if default_value is None:
41
+ property_mapping = {
42
+ "roleDefinition": self.role_definition,
43
+ }
44
+ default_value = property_mapping.get(name, None)
45
+ return super(UnifiedRoleAssignment, self).get_property(name, default_value)
@@ -0,0 +1,6 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class UnifiedRoleDefinition(Entity):
5
+ """A role definition is a collection of permissions in Azure Active Directory (Azure AD) listing the operations
6
+ that can be performed and the resources against which they can performed."""
@@ -1,4 +1,5 @@
1
1
  from office365.directory.security.alerts.evidence import AlertEvidence
2
+ from office365.directory.security.alerts.history_state import AlertHistoryState
2
3
  from office365.entity import Entity
3
4
  from office365.runtime.client_value_collection import ClientValueCollection
4
5
 
@@ -8,7 +9,27 @@ class Alert(Entity):
8
9
  representing potential security issues within a customer's tenant that Microsoft 365 Defender,
9
10
  or a security provider integrated with Microsoft 365 Defender, has identified."""
10
11
 
12
+ @property
13
+ def actor_display_name(self):
14
+ """
15
+ The adversary or activity group that is associated with this alert.
16
+ :rtype: str
17
+ """
18
+ return self.properties.get("actorDisplayName", None)
19
+
20
+ @property
21
+ def alert_policy_id(self):
22
+ """
23
+ :rtype: str
24
+ """
25
+ return self.properties.get("alertPolicyId", None)
26
+
11
27
  @property
12
28
  def evidence(self):
13
29
  """Collection of evidence related to the alert."""
14
30
  return self.properties.get("evidence", ClientValueCollection(AlertEvidence))
31
+
32
+ @property
33
+ def history_states(self):
34
+ """Collection of changes for the alert."""
35
+ return self.properties.get("historyStates", ClientValueCollection(AlertHistoryState))
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class AlertHistoryState(ClientValue):
5
+ """Stores changes made to alerts."""
@@ -0,0 +1,21 @@
1
+ from office365.directory.permissions.email_identity import EmailIdentity
2
+ from office365.directory.security.attacksimulations.automation_run import SimulationAutomationRun
3
+ from office365.entity import Entity
4
+ from office365.entity_collection import EntityCollection
5
+ from office365.runtime.paths.resource_path import ResourcePath
6
+
7
+
8
+ class SimulationAutomation(Entity):
9
+ """Represents simulation automation created to run on a tenant."""
10
+
11
+ @property
12
+ def created_by(self):
13
+ """Identity of the user who created the attack simulation automation."""
14
+ return self.properties.get('createdBy', EmailIdentity())
15
+
16
+ @property
17
+ def runs(self):
18
+ """A collection of simulation automation runs."""
19
+ return self.properties.get('runs',
20
+ EntityCollection(self.context, SimulationAutomationRun,
21
+ ResourcePath("runs", self.resource_path)))
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class SimulationAutomationRun(Entity):
5
+ """Represents a run of an attack simulation automation on a tenant."""
@@ -0,0 +1,6 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class AttackSimulationRepeatOffender(ClientValue):
5
+ """Represents a user in a tenant who has given way to attacks more than once across various attack simulation
6
+ and training campaigns."""
@@ -1,6 +1,32 @@
1
+ from office365.directory.security.attacksimulations.automation import SimulationAutomation
2
+ from office365.directory.security.attacksimulations.simulation import Simulation
1
3
  from office365.entity import Entity
4
+ from office365.entity_collection import EntityCollection
5
+ from office365.runtime.paths.resource_path import ResourcePath
2
6
 
3
7
 
4
8
  class AttackSimulationRoot(Entity):
5
9
  """Represents an abstract type that provides the ability to launch a realistic phishing attack that organizations
6
10
  can learn from."""
11
+
12
+ @property
13
+ def simulations(self):
14
+ """Represents an attack simulation training campaign in a tenant."""
15
+ return self.properties.get('simulations',
16
+ EntityCollection(self.context, Simulation,
17
+ ResourcePath("simulations", self.resource_path)))
18
+
19
+ @property
20
+ def simulation_automations(self):
21
+ """Represents simulation automation created to run on a tenant."""
22
+ return self.properties.get('simulationAutomations',
23
+ EntityCollection(self.context, SimulationAutomation,
24
+ ResourcePath("simulationAutomations", self.resource_path)))
25
+
26
+ def get_property(self, name, default_value=None):
27
+ if default_value is None:
28
+ property_mapping = {
29
+ "simulationAutomations": self.simulation_automations,
30
+ }
31
+ default_value = property_mapping.get(name, None)
32
+ return super(AttackSimulationRoot, self).get_property(name, default_value)
@@ -0,0 +1,17 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class Simulation(Entity):
5
+ """
6
+ Represents an attack simulation training campaign in a tenant.
7
+
8
+ Attack simulation and training is a service available as part of Microsoft Defender for Office 365.
9
+ This service lets tenant users experience a realistic benign phishing attack and learn from it.
10
+ The service enables tenant administrators to simulate, assign trainings, and read derived insights into online
11
+ behaviors of users in the phishing simulations. The service provides attack simulation reports that help tenants
12
+ identify security knowledge gaps, so that they can further train their users to decrease their susceptibility
13
+ to attacks.
14
+
15
+ The attack simulation and training API enables tenant administrators to list launched simulation exercises
16
+ and trainings, and get reports on derived insights into online behaviors of users in the phishing simulations.
17
+ """
File without changes
@@ -0,0 +1,6 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class EdiscoveryCase(Entity):
5
+ """In the context of eDiscovery, contains custodians, searches, review sets. For details, see Overview of
6
+ Microsoft Purview eDiscovery (Premium)."""
@@ -0,0 +1,22 @@
1
+ from office365.directory.security.cases.ediscovery import EdiscoveryCase
2
+ from office365.entity import Entity
3
+ from office365.entity_collection import EntityCollection
4
+ from office365.runtime.paths.resource_path import ResourcePath
5
+
6
+
7
+ class CasesRoot(Entity):
8
+ """"""
9
+
10
+ @property
11
+ def ediscovery_cases(self):
12
+ return self.properties.get('ediscoveryCases',
13
+ EntityCollection(self.context, EdiscoveryCase,
14
+ ResourcePath("ediscoveryCases", self.resource_path)))
15
+
16
+ def get_property(self, name, default_value=None):
17
+ if default_value is None:
18
+ property_mapping = {
19
+ "ediscoveryCases": self.ediscovery_cases
20
+ }
21
+ default_value = property_mapping.get(name, None)
22
+ return super(CasesRoot, self).get_property(name, default_value)
@@ -0,0 +1,67 @@
1
+ from datetime import datetime
2
+
3
+ from office365.directory.security.alerts.alert import Alert
4
+ from office365.directory.security.alerts.comment import AlertComment
5
+ from office365.entity import Entity
6
+ from office365.entity_collection import EntityCollection
7
+ from office365.runtime.client_value_collection import ClientValueCollection
8
+ from office365.runtime.paths.resource_path import ResourcePath
9
+
10
+
11
+ class Incident(Entity):
12
+ """
13
+ An incident in Microsoft 365 Defender is a collection of correlated alert instances and associated metadata
14
+ that reflects the story of an attack in a tenant.
15
+
16
+ Microsoft 365 services and apps create alerts when they detect a suspicious or malicious event or activity.
17
+ Individual alerts provide valuable clues about a completed or ongoing attack. However, attacks typically employ
18
+ various techniques against different types of entities, such as devices, users, and mailboxes. The result is
19
+ multiple alerts for multiple entities in your tenant. Because piecing the individual alerts together to gain
20
+ insight into an attack can be challenging and time-consuming, Microsoft 365 Defender automatically aggregates the
21
+ alerts and their associated information into an incident.
22
+ """
23
+
24
+ @property
25
+ def assigned_to(self):
26
+ """
27
+ Owner of the incident, or null if no owner is assigned. Free editable text.
28
+ :rtype: str or None
29
+ """
30
+ return self.properties.get("assignedTo", None)
31
+
32
+ @property
33
+ def classification(self):
34
+ """
35
+ The specification for the incident.
36
+ Possible values are: unknown, falsePositive, truePositive, informationalExpectedActivity, unknownFutureValue.
37
+ :rtype: str or None
38
+ """
39
+ return self.properties.get("classification", None)
40
+
41
+ @property
42
+ def comments(self):
43
+ """
44
+ Array of comments created by the Security Operations (SecOps) team when the incident is managed.
45
+ """
46
+ return self.properties.get("comments", ClientValueCollection(AlertComment))
47
+
48
+ @property
49
+ def created_datetime(self):
50
+ """
51
+ Time when the incident was first created.
52
+ """
53
+ return self.properties("createdDateTime", datetime.min)
54
+
55
+ @property
56
+ def alerts(self):
57
+ """The list of related alerts. Supports $expand."""
58
+ return self.properties.get('alerts',
59
+ EntityCollection(self.context, Alert, ResourcePath("alerts", self.resource_path)))
60
+
61
+ def get_property(self, name, default_value=None):
62
+ if default_value is None:
63
+ property_mapping = {
64
+ "createdDateTime": self.created_datetime
65
+ }
66
+ default_value = property_mapping.get(name, None)
67
+ return super(Incident, self).get_property(name, default_value)
@@ -1,6 +1,7 @@
1
1
  from office365.directory.security.alerts.alert import Alert
2
2
  from office365.directory.security.attacksimulations.root import AttackSimulationRoot
3
- from office365.directory.security.cases_root import CasesRoot
3
+ from office365.directory.security.cases.root import CasesRoot
4
+ from office365.directory.security.incidents.incident import Incident
4
5
  from office365.directory.security.triggers.root import TriggersRoot
5
6
  from office365.entity import Entity
6
7
  from office365.entity_collection import EntityCollection
@@ -37,6 +38,14 @@ class Security(Entity):
37
38
  AttackSimulationRoot(self.context,
38
39
  ResourcePath("attackSimulation", self.resource_path)))
39
40
 
41
+ @property
42
+ def incidents(self):
43
+ """A collection of correlated alert instances and associated metadata that reflects the story of
44
+ an attack in a tenant"""
45
+ return self.properties.get('incidents',
46
+ EntityCollection(self.context, Incident,
47
+ ResourcePath("incidents", self.resource_path)))
48
+
40
49
  @property
41
50
  def triggers(self):
42
51
  return self.properties.get('triggers',