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
@@ -1,30 +1,27 @@
1
1
  from office365.entity import Entity
2
- from office365.entity_collection import EntityCollection
3
- from office365.runtime.client_result import ClientResult
4
- from office365.runtime.queries.function import FunctionQuery
5
- from office365.runtime.types.collections import StringCollection
2
+ from office365.intune.audit.actor import AuditActor
3
+ from office365.intune.audit.resource import AuditResource
4
+ from office365.runtime.client_value_collection import ClientValueCollection
6
5
 
7
6
 
8
7
  class AuditEvent(Entity):
9
8
  """A class containing the properties for Audit Event."""
10
9
 
11
-
12
- class AuditEventCollection(EntityCollection):
13
-
14
- def __init__(self, context, resource_path=None):
15
- super(AuditEventCollection, self).__init__(context, AuditEvent, resource_path)
16
-
17
- def get_audit_categories(self):
18
- return_type = ClientResult(self.context, StringCollection())
19
- qry = FunctionQuery(self, "getAuditCategories", None, return_type)
20
- self.context.add_query(qry)
21
- return return_type
22
-
23
- def get_audit_activity_types(self, category):
24
- """"""
25
- return_type = ClientResult(self.context, StringCollection())
26
- params = {"category": category}
27
- qry = FunctionQuery(self, "getAuditActivityTypes", params, return_type)
28
- self.context.add_query(qry)
29
- return return_type
30
-
10
+ @property
11
+ def activity(self):
12
+ """Friendly name of the activity.
13
+ :rtype: str
14
+ """
15
+ return self.properties.get("activity", None)
16
+
17
+ @property
18
+ def actor(self):
19
+ """
20
+ AAD user and application that are associated with the audit event.
21
+ """
22
+ return self.properties.get("actor", AuditActor())
23
+
24
+ @property
25
+ def resources(self):
26
+ """Resources being modified"""
27
+ return self.properties.get("resources", ClientValueCollection(AuditResource))
@@ -0,0 +1,26 @@
1
+ from office365.entity_collection import EntityCollection
2
+ from office365.intune.audit.event import AuditEvent
3
+ from office365.runtime.client_result import ClientResult
4
+ from office365.runtime.queries.function import FunctionQuery
5
+ from office365.runtime.types.collections import StringCollection
6
+
7
+
8
+ class AuditEventCollection(EntityCollection):
9
+
10
+ def __init__(self, context, resource_path=None):
11
+ super(AuditEventCollection, self).__init__(context, AuditEvent, resource_path)
12
+
13
+ def get_audit_categories(self):
14
+ """Not yet documented"""
15
+ return_type = ClientResult(self.context, StringCollection())
16
+ qry = FunctionQuery(self, "getAuditCategories", None, return_type)
17
+ self.context.add_query(qry)
18
+ return return_type
19
+
20
+ def get_audit_activity_types(self, category):
21
+ """Not yet documented"""
22
+ return_type = ClientResult(self.context, StringCollection())
23
+ params = {"category": category}
24
+ qry = FunctionQuery(self, "getAuditActivityTypes", params, return_type)
25
+ self.context.add_query(qry)
26
+ return return_type
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class AuditProperty(ClientValue):
5
+ """A class containing the properties for Audit Property."""
@@ -0,0 +1,11 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class AuditResource(ClientValue):
5
+ """A class containing the properties for Audit Resource."""
6
+
7
+ def __init__(self, audit_resource_type=None):
8
+ """
9
+ :param str audit_resource_type: Audit resource's type.
10
+ """
11
+ self.auditResourceType = audit_resource_type
@@ -0,0 +1,6 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class IntuneBrand(ClientValue):
5
+ """intuneBrand contains data which is used in customizing the appearance of the Company Portal applications as
6
+ well as the end user web portal."""
File without changes
@@ -0,0 +1,6 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class DeviceCompliancePolicy(Entity):
5
+ """This is the base class for Compliance policy. Compliance policies are platform specific and individual
6
+ per-platform compliance policies inherit from here"""
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class DeviceCompliancePolicyState(Entity):
5
+ """Device Compliance Policy State for a given device"""
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class DeviceAndAppManagementData(ClientValue):
5
+ """Exported Data"""
@@ -4,3 +4,13 @@ from office365.runtime.client_value import ClientValue
4
4
  class DeviceDetail(ClientValue):
5
5
  """Indicates device details associated with a device used for signing in. This includes information
6
6
  like device browser and operating system, and whether the device is Azure AD managed."""
7
+
8
+ def __init__(self, browser=None, device_id=None, display_name=None):
9
+ """
10
+ :param str browser: Indicates the browser information of the used for signing in.
11
+ :param str device_id: Refers to the UniqueID of the device used for signing in.
12
+ :param str display_name: Refers to the name of the device used for signing in.
13
+ """
14
+ self.browser = browser
15
+ self.deviceId = device_id
16
+ self.displayName = display_name
File without changes
@@ -0,0 +1,25 @@
1
+ import datetime
2
+
3
+ from office365.entity import Entity
4
+
5
+
6
+ class DeviceEnrollmentConfiguration(Entity):
7
+ """The Base Class of Device Enrollment Configuration"""
8
+
9
+ @property
10
+ def created_datetime(self):
11
+ """
12
+ Created date time in UTC of the device enrollment configuration
13
+ """
14
+ return self.properties.get("createdDateTime", datetime.datetime.min)
15
+
16
+ @property
17
+ def display_name(self):
18
+ """
19
+ The display name of the device enrollment configuration
20
+ :rtype: str
21
+ """
22
+ return self.properties.get("displayName", None)
23
+
24
+ def get_property(self, name, default_value=None):
25
+ return super(DeviceEnrollmentConfiguration, self).get_property(name, default_value)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class EnrollmentConfigurationAssignment(Entity):
5
+ """Enrollment Configuration Assignment"""
@@ -0,0 +1,5 @@
1
+ from office365.intune.devices.enrollment.configuration import DeviceEnrollmentConfiguration
2
+
3
+
4
+ class DeviceEnrollmentLimitConfiguration(DeviceEnrollmentConfiguration):
5
+ """Device Enrollment Configuration that restricts the number of devices a user can enroll"""
@@ -1,5 +1,7 @@
1
1
  from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
2
3
  from office365.intune.devices.category import DeviceCategory
4
+ from office365.intune.devices.compliance.policy_state import DeviceCompliancePolicyState
3
5
  from office365.runtime.paths.resource_path import ResourcePath
4
6
  from office365.runtime.queries.service_operation import ServiceOperationQuery
5
7
 
@@ -13,11 +15,49 @@ class ManagedDevice(Entity):
13
15
  self.context.add_query(qry)
14
16
  return self
15
17
 
18
+ @property
19
+ def activation_lock_bypass_code(self):
20
+ """
21
+ The code that allows the Activation Lock on managed device to be bypassed. Default,
22
+ is Null (Non-Default property) for this property when returned as part of managedDevice entity in LIST call.
23
+ To retrieve actual values GET call needs to be made, with device id and included in select parameter.
24
+ Supports: $select. $Search is not supported. Read-only. This property is read-only.
25
+ :rtype: str
26
+ """
27
+ return self.properties.get("activationLockBypassCode", None)
28
+
16
29
  @property
17
30
  def device_category(self):
18
31
  """ Device category"""
19
- return self.properties.get('deviceCategory', DeviceCategory(self.context,
20
- ResourcePath("deviceCategory", self.resource_path)))
32
+ return self.properties.get('deviceCategory',
33
+ DeviceCategory(self.context,
34
+ ResourcePath("deviceCategory", self.resource_path)))
35
+
36
+ @property
37
+ def manufacturer(self):
38
+ """
39
+ Manufacturer of the device.
40
+ :rtype: str
41
+ """
42
+ return self.properties.get("manufacturer", None)
43
+
44
+ @property
45
+ def operating_system(self):
46
+ """
47
+ Manufacturer of the device.
48
+ :rtype: str
49
+ """
50
+ return self.properties.get("operatingSystem", None)
51
+
52
+ @property
53
+ def device_compliance_policy_states(self):
54
+ """
55
+ Device compliance policy states for this device
56
+ """
57
+ return self.properties.get('deviceCompliancePolicyStates',
58
+ EntityCollection(self.context, DeviceCompliancePolicyState,
59
+ ResourcePath("deviceCompliancePolicyStates",
60
+ self.resource_path)))
21
61
 
22
62
  @property
23
63
  def users(self):
@@ -28,7 +68,8 @@ class ManagedDevice(Entity):
28
68
  def get_property(self, name, default_value=None):
29
69
  if default_value is None:
30
70
  property_mapping = {
31
- "deviceCategory": self.device_category
71
+ "deviceCategory": self.device_category,
72
+ "deviceCompliancePolicyStates": self.device_compliance_policy_states
32
73
  }
33
74
  default_value = property_mapping.get(name, None)
34
75
  return super(ManagedDevice, self).get_property(name, default_value)
File without changes
@@ -0,0 +1,69 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.intune.audit.event_collection import AuditEventCollection
4
+ from office365.intune.brand import IntuneBrand
5
+ from office365.intune.devices.category import DeviceCategory
6
+ from office365.intune.devices.enrollment.configuration import DeviceEnrollmentConfiguration
7
+ from office365.intune.devices.managed import ManagedDevice
8
+ from office365.intune.devices.management.reports.reports import DeviceManagementReports
9
+ from office365.runtime.paths.resource_path import ResourcePath
10
+
11
+
12
+ class DeviceManagement(Entity):
13
+ """
14
+ The deviceManagement resource represents a tenant's collection device identities that have been pre-staged in
15
+ Intune, and the enrollment profiles that may be assigned to device identities that support pre-enrollment
16
+ configuration.
17
+ """
18
+
19
+ @property
20
+ def audit_events(self):
21
+ """"""
22
+ return self.properties.get("auditEvents", AuditEventCollection(self.context,
23
+ ResourcePath("auditEvents",
24
+ self.resource_path)))
25
+
26
+ @property
27
+ def device_categories(self):
28
+ """"""
29
+ return self.properties.get("deviceCategories",
30
+ EntityCollection(self.context, DeviceCategory, ResourcePath("deviceCategories",
31
+ self.resource_path)))
32
+
33
+ @property
34
+ def device_enrollment_configurations(self):
35
+ """"""
36
+ return self.properties.get('deviceEnrollmentConfigurations',
37
+ EntityCollection(self.context, DeviceEnrollmentConfiguration,
38
+ ResourcePath("deviceEnrollmentConfigurations",
39
+ self.resource_path)))
40
+
41
+ @property
42
+ def intune_brand(self):
43
+ return self.properties.get("intuneBrand", IntuneBrand())
44
+
45
+ @property
46
+ def managed_devices(self):
47
+ """"""
48
+ return self.properties.get('managedDevices',
49
+ EntityCollection(self.context, ManagedDevice,
50
+ ResourcePath("managedDevices", self.resource_path)))
51
+
52
+ @property
53
+ def reports(self):
54
+ """"""
55
+ return self.properties.get("reports",
56
+ DeviceManagementReports(self.context,
57
+ ResourcePath("reports", self.resource_path)))
58
+
59
+ def get_property(self, name, default_value=None):
60
+ if default_value is None:
61
+ property_mapping = {
62
+ "auditEvents": self.audit_events,
63
+ "deviceCategories": self.device_categories,
64
+ "deviceEnrollmentConfigurations": self.device_enrollment_configurations,
65
+ "intuneBrand": self.intune_brand,
66
+ "managedDevices": self.managed_devices
67
+ }
68
+ default_value = property_mapping.get(name, None)
69
+ return super(DeviceManagement, self).get_property(name, default_value)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class DeviceManagementReports(Entity):
5
+ """Device management reports entity"""
@@ -0,0 +1,18 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class DeviceManagementSettings(ClientValue):
5
+ """"""
6
+
7
+ def __init__(self, device_compliance_checkin_threshold_days=None, is_scheduled_action_enabled=None,
8
+ secure_by_default=None):
9
+ """
10
+ :param int device_compliance_checkin_threshold_days: The number of days a device is allowed to go without
11
+ checking in to remain compliant.
12
+ :param bool is_scheduled_action_enabled: Is feature enabled or not for scheduled action for rule.
13
+ :param bool secure_by_default: Device should be noncompliant when there is no compliance policy targeted when
14
+ this is true
15
+ """
16
+ self.deviceComplianceCheckinThresholdDays = device_compliance_checkin_threshold_days
17
+ self.isScheduledActionEnabled = is_scheduled_action_enabled
18
+ self.secureByDefault = secure_by_default
@@ -0,0 +1,15 @@
1
+ from office365.intune.organizations.branding_properties import OrganizationalBrandingProperties
2
+
3
+
4
+ class OrganizationalBranding(OrganizationalBrandingProperties):
5
+ """
6
+ Contains details about the organization's default branding. Inherits from organizationalBrandingProperties.
7
+
8
+ Organizations can customize their Azure Active Directory (Azure AD) sign-in pages which appear when users sign
9
+ in to their organization's tenant-specific apps, or when Azure AD identifies the user's tenant from their username.
10
+ A developer can also read the company's branding information and customize their app experience to tailor
11
+ it specifically for the signed-in user using their company's branding.
12
+
13
+ You can't change your original configuration's language. However, companies can add different branding based on
14
+ locale. For language-specific branding, see the organizationalBrandingLocalization object.
15
+ """
@@ -1,8 +1,10 @@
1
1
  from office365.directory.certificates.auth_configuration import CertificateBasedAuthConfiguration
2
2
  from office365.directory.domains.verified import VerifiedDomain
3
+ from office365.directory.licenses.assigned_plan import AssignedPlan
3
4
  from office365.directory.object import DirectoryObject
4
5
  from office365.directory.extensions.extension import Extension
5
6
  from office365.entity_collection import EntityCollection
7
+ from office365.intune.organizations.branding import OrganizationalBranding
6
8
  from office365.intune.provisioned_plan import ProvisionedPlan
7
9
  from office365.runtime.client_value_collection import ClientValueCollection
8
10
  from office365.runtime.paths.resource_path import ResourcePath
@@ -15,6 +17,17 @@ class Organization(DirectoryObject):
15
17
  which operate and are provisioned at the tenant-level.
16
18
  """
17
19
 
20
+ @property
21
+ def assigned_plans(self):
22
+ """The plans that are assigned to the organization."""
23
+ return self.properties.get('assignedPlans', ClientValueCollection(AssignedPlan))
24
+
25
+ @property
26
+ def branding(self):
27
+ return self.properties.get('branding',
28
+ OrganizationalBranding(self.context,
29
+ ResourcePath("branding", self.resource_path)))
30
+
18
31
  @property
19
32
  def business_phones(self):
20
33
  """
@@ -51,6 +64,7 @@ class Organization(DirectoryObject):
51
64
  def get_property(self, name, default_value=None):
52
65
  if default_value is None:
53
66
  property_mapping = {
67
+ "assignedPlans": self.assigned_plans,
54
68
  "certificateBasedAuthConfiguration": self.certificate_based_auth_configuration,
55
69
  "businessPhones": self.business_phones,
56
70
  "provisionedPlans": self.provisioned_plans,
File without changes
@@ -0,0 +1,11 @@
1
+ from office365.entity import Entity
2
+ from office365.intune.printing.capabilities import PrinterCapabilities
3
+
4
+
5
+ class PrinterBase(Entity):
6
+ """Represents a base type for printer and printerShare entity types."""
7
+
8
+ @property
9
+ def capabilities(self):
10
+ """The capabilities of the printer/printerShare."""
11
+ return self.properties.get("", PrinterCapabilities())
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class PrinterCapabilities(ClientValue):
5
+ """Represents the capabilities reported by a printer/printerShare."""
File without changes
@@ -0,0 +1,6 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class PrintConnector(Entity):
5
+ """Represents a print connector that has been registered by using a Universal Print subscription.
6
+ The printConnector resource can be used to view connector status and update properties."""
File without changes
@@ -0,0 +1,24 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.intune.printing.connectors.connector import PrintConnector
4
+ from office365.intune.printing.share import PrinterShare
5
+ from office365.runtime.paths.resource_path import ResourcePath
6
+
7
+
8
+ class Print(Entity):
9
+ """When accompanied by a Universal Print subscription, the Print feature enables management of printers and
10
+ discovery of printServiceEndpoints that can be used to manage printers and print jobs within Universal Print."""
11
+
12
+ @property
13
+ def connectors(self):
14
+ """The list of available print connectors."""
15
+ return self.properties.get('connectors',
16
+ EntityCollection(self.context, PrintConnector,
17
+ ResourcePath("connectors", self.resource_path)))
18
+
19
+ @property
20
+ def shares(self):
21
+ """The list of printer shares registered in the tenant."""
22
+ return self.properties.get('shares',
23
+ EntityCollection(self.context, PrinterShare,
24
+ ResourcePath("shares", self.resource_path)))
@@ -0,0 +1,6 @@
1
+ from office365.intune.printing.base import PrinterBase
2
+
3
+
4
+ class Printer(PrinterBase):
5
+ """Represents a printer device that has been registered with the Universal Print service.
6
+ Printer resources can be used to manage print jobs, printer settings, printer metadata and registration status."""
File without changes
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class PrintServiceEndpoint(Entity):
5
+ """Represents URI and identifying information for a print service instance."""
@@ -0,0 +1,17 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.intune.printing.services.endpoint import PrintServiceEndpoint
4
+ from office365.runtime.paths.resource_path import ResourcePath
5
+
6
+
7
+ class PrintService(Entity):
8
+ """Represents an Azure AD tenant-specific description of a print service instance.
9
+ Services exist for each component of the printing infrastructure (discovery, notifications, registration, and IPP)
10
+ and have one or more endpoints."""
11
+
12
+ def endpoints(self):
13
+ """Endpoints that can be used to access the service."""
14
+ return self.properties.get('endpoints',
15
+ EntityCollection(self.context, PrintServiceEndpoint,
16
+ ResourcePath("endpoints", self.resource_path)))
17
+
@@ -0,0 +1,5 @@
1
+ from office365.intune.printing.base import PrinterBase
2
+
3
+
4
+ class PrinterShare(PrinterBase):
5
+ """Represents a printer that is intended to be discoverable by users and printing applications."""
File without changes
File without changes
@@ -6,11 +6,15 @@ class ProvisionedPlan(ClientValue):
6
6
  The provisionedPlans property of the user entity and the organization entity is a collection of provisionedPlan.
7
7
  """
8
8
 
9
- def __init__(self, service=None):
9
+ def __init__(self, service=None, provisioning_status=None, capability_status=None):
10
10
  """
11
11
  :param str service:
12
+ :param str provisioning_status:
13
+ :param str capability_status:
12
14
  """
13
15
  self.service = service
16
+ self.provisioningStatus = provisioning_status
17
+ self.capabilityStatus = capability_status
14
18
 
15
19
  def __repr__(self):
16
20
  return self.service
File without changes
@@ -0,0 +1,39 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.intune.servicecommunications.health.health import ServiceHealth
4
+ from office365.intune.servicecommunications.issues.issue import ServiceHealthIssue
5
+ from office365.intune.servicecommunications.messages.update import ServiceUpdateMessage
6
+ from office365.runtime.paths.resource_path import ResourcePath
7
+
8
+
9
+ class ServiceAnnouncement(Entity):
10
+ """A top-level container for service communications resources."""
11
+
12
+ @property
13
+ def health_overviews(self):
14
+ """Get the serviceHealth resources from the healthOverviews navigation property."""
15
+ return self.properties.get('healthOverviews',
16
+ EntityCollection(self.context, ServiceHealth,
17
+ ResourcePath("healthOverviews", self.resource_path)))
18
+
19
+ @property
20
+ def issues(self):
21
+ """Get the serviceHealthIssue resources from the issues navigation property."""
22
+ return self.properties.get('issues',
23
+ EntityCollection(self.context, ServiceHealthIssue,
24
+ ResourcePath("issues", self.resource_path)))
25
+
26
+ @property
27
+ def messages(self):
28
+ """Get the serviceUpdateMessage resources from the messages navigation property."""
29
+ return self.properties.get('messages',
30
+ EntityCollection(self.context, ServiceUpdateMessage,
31
+ ResourcePath("messages", self.resource_path)))
32
+
33
+ def get_property(self, name, default_value=None):
34
+ if default_value is None:
35
+ property_mapping = {
36
+ "healthOverviews": self.health_overviews
37
+ }
38
+ default_value = property_mapping.get(name, None)
39
+ return super(ServiceAnnouncement, self).get_property(name, default_value)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class ServiceAnnouncementBase(Entity):
5
+ """This is an abstract base type for serviceHealthIssue and serviceUpdateMessage."""
@@ -0,0 +1,7 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class ServiceHealth(Entity):
5
+ """Represents the health information of a service subscribed by a tenant."""
6
+
7
+
@@ -0,0 +1,29 @@
1
+ from office365.intune.servicecommunications.announcement_base import ServiceAnnouncementBase
2
+ from office365.runtime.client_result import ClientResult
3
+ from office365.runtime.queries.function import FunctionQuery
4
+
5
+
6
+ class ServiceHealthIssue(ServiceAnnouncementBase):
7
+ """
8
+ Represents a service health issue in a service.
9
+
10
+ The service health issue can be a service incident or service advisory. For example:
11
+
12
+ - Service incident: "Exchange mailbox service is down".
13
+ - Service advisory: "Users may experience delays in emails reception".
14
+ """
15
+
16
+ def incident_report(self):
17
+ """
18
+ Provide the Post-Incident Review (PIR) document of a specified service issue for tenant.
19
+
20
+ An issue only with status of PostIncidentReviewPublished indicates that the PIR document exists for the issue.
21
+ The operation returns an error if the specified issue doesn't exist for the tenant or if PIR document
22
+ does not exist for the issue.
23
+ """
24
+ return_type = ClientResult(self.context, bytes())
25
+ qry = FunctionQuery(self, "incidentReport", None, return_type)
26
+ self.context.add_query(qry)
27
+ return return_type
28
+
29
+