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,6 +1,7 @@
1
1
  import json
2
+ from datetime import datetime
2
3
 
3
- from office365.directory.applications.roles.assignment import AppRoleAssignmentCollection
4
+ from office365.directory.applications.roles.assignment_collection import AppRoleAssignmentCollection
4
5
  from office365.directory.extensions.extension import Extension
5
6
  from office365.directory.licenses.assigned_license import AssignedLicense
6
7
  from office365.directory.object import DirectoryObject
@@ -39,8 +40,9 @@ class Group(DirectoryObject):
39
40
  return self
40
41
 
41
42
  def check_granted_permissions_for_app(self):
43
+ """"""
42
44
  return_type = EntityCollection(self.context, ResourceSpecificPermissionGrant)
43
- qry = ServiceOperationQuery(self, "checkGrantedPermissionsForApp", None, None, None, return_type)
45
+ qry = ServiceOperationQuery(self, "checkGrantedPermissionsForApp", return_type=return_type)
44
46
  self.context.add_query(qry)
45
47
  return return_type
46
48
 
@@ -87,8 +89,7 @@ class Group(DirectoryObject):
87
89
  request.set_header('Content-Type', "application/json")
88
90
  request.data = json.dumps(request.data)
89
91
 
90
- self.context.add_query(qry)
91
- self.context.before_query_execute(_construct_request)
92
+ self.context.add_query(qry).before_query_execute(_construct_request, once=False)
92
93
  return self.team
93
94
 
94
95
  def delete_object(self, permanent_delete=False):
@@ -103,6 +104,13 @@ class Group(DirectoryObject):
103
104
  deleted_item.delete_object()
104
105
  return self
105
106
 
107
+ @property
108
+ def display_name(self):
109
+ """
110
+ :rtype: str
111
+ """
112
+ return self.properties.get("displayName", None)
113
+
106
114
  @property
107
115
  def conversations(self):
108
116
  """The group's conversations."""
@@ -110,6 +118,11 @@ class Group(DirectoryObject):
110
118
  EntityCollection(self.context, Conversation,
111
119
  ResourcePath("conversations", self.resource_path)))
112
120
 
121
+ @property
122
+ def created_datetime(self):
123
+ """Timestamp of when the group was created."""
124
+ return self.properties.get('createdDateTime', datetime.min)
125
+
113
126
  @property
114
127
  def extensions(self):
115
128
  """
@@ -217,6 +230,7 @@ class Group(DirectoryObject):
217
230
  property_mapping = {
218
231
  "appRoleAssignments": self.app_role_assignments,
219
232
  "assignedLicenses": self.assigned_licenses,
233
+ "createdDateTime": self.created_datetime,
220
234
  "transitiveMembers": self.transitive_members,
221
235
  "transitiveMemberOf": self.transitive_member_of,
222
236
  }
@@ -11,3 +11,5 @@ class IdentityGovernance(Entity):
11
11
  - App consent
12
12
  - Terms of use
13
13
  """
14
+
15
+
@@ -6,10 +6,10 @@ class ObjectIdentity(ClientValue):
6
6
  Represents an identity used to sign in to a user account.
7
7
  """
8
8
 
9
- def __init__(self, signInType=None, issuer=None, issuer_assigned_id=None):
9
+ def __init__(self, sign_in_type=None, issuer=None, issuer_assigned_id=None):
10
10
  """
11
11
 
12
- :param str signInType: Specifies the user sign-in types in your directory, such as emailAddress, userName
12
+ :param str sign_in_type: Specifies the user sign-in types in your directory, such as emailAddress, userName
13
13
  or federated. Here, federated represents a unique identifier for a user from an issuer, that can be in
14
14
  any format chosen by the issuer. Additional validation is enforced on issuerAssignedId when the sign-in
15
15
  type is set to emailAddress or userName. This property can also be set to any custom string.
@@ -24,6 +24,6 @@ class ObjectIdentity(ClientValue):
24
24
  (also known as local accounts).
25
25
  """
26
26
  super(ObjectIdentity, self).__init__()
27
- self.signInType = signInType
27
+ self.signInType = sign_in_type
28
28
  self.issuer = issuer
29
29
  self.issuerAssignedId = issuer_assigned_id
@@ -0,0 +1,15 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class ResourceReference(ClientValue):
5
+ """Complex type containing properties of officeGraphInsights."""
6
+
7
+ def __init__(self, _id=None, _type=None, web_url=None):
8
+ """
9
+ :param str _id: The item's unique identifier.
10
+ :param str _type:A string value that can be used to classify the item, such as "microsoft.graph.driveItem"
11
+ :param str web_url: A URL leading to the referenced item.
12
+ """
13
+ self.id = _id
14
+ self.type = _type
15
+ self.webUrl = web_url
@@ -1,4 +1,8 @@
1
+ from office365.directory.insights.resource_reference import ResourceReference
2
+ from office365.directory.insights.sharing_detail import SharingDetail
1
3
  from office365.entity import Entity
4
+ from office365.runtime.client_value_collection import ClientValueCollection
5
+ from office365.runtime.paths.resource_path import ResourcePath
2
6
 
3
7
 
4
8
  class SharedInsight(Entity):
@@ -9,3 +13,35 @@ class SharedInsight(Entity):
9
13
  OneDrive for Business and SharePoint modern attachments - files stored in OneDrive for Business and SharePoint
10
14
  that users share as a links in an email.
11
15
  """
16
+
17
+ @property
18
+ def last_shared(self):
19
+ """Details about the shared item. Read-only"""
20
+ return self.properties.get("lastShared", SharingDetail())
21
+
22
+ @property
23
+ def resource_reference(self):
24
+ """Reference properties of the used document, such as the url and type of the document. Read-only"""
25
+ return self.properties.get("resourceReference", ResourceReference())
26
+
27
+ @property
28
+ def resource(self):
29
+ """Used for navigating to the item that was shared. For file attachments, the type is fileAttachment.
30
+ For linked attachments, the type is driveItem."""
31
+ return self.properties.get('resource',
32
+ Entity(self.context, ResourcePath("resource", self.resource_path)))
33
+
34
+ @property
35
+ def sharing_history(self):
36
+ """Details about the sharing history. Read-only"""
37
+ return self.properties.get("sharingHistory", ClientValueCollection(SharingDetail))
38
+
39
+ def get_property(self, name, default_value=None):
40
+ if default_value is None:
41
+ property_mapping = {
42
+ "lastShared": self.last_shared,
43
+ "resourceReference": self.resource_reference,
44
+ "sharingHistory": self.sharing_history
45
+ }
46
+ default_value = property_mapping.get(name, None)
47
+ return super(SharedInsight, self).get_property(name, default_value)
@@ -0,0 +1,11 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class SharingDetail(ClientValue):
5
+ """Complex type containing properties of sharedInsight items."""
6
+
7
+ def __init__(self, shared_datetime=None):
8
+ """
9
+ :param datetime.datetime shared_datetime: The date and time the file was last shared.
10
+ """
11
+ self.sharedDateTime = shared_datetime
@@ -1,4 +1,5 @@
1
1
  from office365.entity import Entity
2
+ from office365.runtime.paths.resource_path import ResourcePath
2
3
 
3
4
 
4
5
  class Trending(Entity):
@@ -6,3 +7,10 @@ class Trending(Entity):
6
7
  Rich relationship connecting a user to documents that are trending around the user (are relevant to the user).
7
8
  OneDrive files, and files stored on SharePoint team sites can trend around the user.
8
9
  """
10
+
11
+ @property
12
+ def resource(self):
13
+ """Used for navigating to the trending document."""
14
+ return self.properties.get('resource',
15
+ Entity(self.context, ResourcePath("resource", self.resource_path)))
16
+
@@ -0,0 +1,16 @@
1
+ from datetime import datetime
2
+
3
+ from office365.runtime.client_value import ClientValue
4
+
5
+
6
+ class UsageDetails(ClientValue):
7
+ """Complex type containing properties of Used items. Information on when the resource was last accessed (viewed)
8
+ or modified (edited) by the user."""
9
+
10
+ def __init__(self, last_accessed_datetime=None, last_modified_datetime=None):
11
+ """
12
+ :param datetime.datetime last_accessed_datetime: The date and time the resource was last accessed by the user.
13
+ :param datetime.datetime last_modified_datetime: The date and time the resource was last modified by the user.
14
+ """
15
+ self.lastAccessedDateTime = last_accessed_datetime
16
+ self.lastModifiedDateTime = last_modified_datetime
@@ -1,4 +1,7 @@
1
+ from office365.directory.insights.resource_reference import ResourceReference
2
+ from office365.directory.insights.usage_details import UsageDetails
1
3
  from office365.entity import Entity
4
+ from office365.runtime.paths.resource_path import ResourcePath
2
5
 
3
6
 
4
7
  class UsedInsight(Entity):
@@ -8,3 +11,30 @@ class UsedInsight(Entity):
8
11
  OneDrive for Business
9
12
  SharePoint
10
13
  """
14
+
15
+ @property
16
+ def last_used(self):
17
+ """Information about when the item was last viewed or modified by the user."""
18
+ return self.properties.get("lastUsed", UsageDetails())
19
+
20
+ @property
21
+ def resource_reference(self):
22
+ """Reference properties of the used document, such as the url and type of the document. Read-only"""
23
+ return self.properties.get("resourceReference", ResourceReference())
24
+
25
+ @property
26
+ def resource(self):
27
+ """Used for navigating to the item that was used. For file attachments, the type is fileAttachment.
28
+ For linked attachments, the type is driveItem."""
29
+ return self.properties.get('resource',
30
+ Entity(self.context, ResourcePath("resource", self.resource_path)))
31
+
32
+ def get_property(self, name, default_value=None):
33
+ if default_value is None:
34
+ property_mapping = {
35
+ "lastUsed": self.last_used,
36
+ "resourceReference": self.resource_reference
37
+ }
38
+ default_value = property_mapping.get(name, None)
39
+ return super(UsedInsight, self).get_property(name, default_value)
40
+
@@ -5,7 +5,39 @@ from office365.runtime.paths.resource_path import ResourcePath
5
5
 
6
6
 
7
7
  class Invitation(Entity):
8
- """Represents an invitation that is used to add external users to an organization."""
8
+ """Represents an invitation that is used to add external users to an organization.
9
+
10
+ The invitation process uses the following flow:
11
+
12
+ - An invitation is created
13
+ - An invitation is sent to the invited user (containing an invitation link)
14
+ - The invited user clicks on the invitation link, signs in and redeems the invitation and creation of the
15
+ user entity representing the invited user completes
16
+ - The user is redirected to a specific page after redemption completes
17
+
18
+ Creating an invitation will return a redemption URL in the response (inviteRedeemUrl).
19
+ The create invitation API can automatically send an email containing the redemption URL to the invited user,
20
+ by setting the sendInvitationMessage to true. You can also customize the message that will be sent to
21
+ the invited user. Instead, if you wish to send the redemption URL through some other means, you can set the
22
+ sendInvitationMessage to false and use the redeem URL from the response to craft your own communication.
23
+ Currently, there is no API to perform the redemption process. The invited user has to click on the inviteRedeemUrl
24
+ link sent in the communication in the step above, and go through the interactive redemption process in a browser.
25
+ Once completed, the invited user becomes an external user in the organization.
26
+ """
27
+
28
+ @property
29
+ def invited_user_display_name(self):
30
+ """The display name of the user being invited.
31
+ :rtype: str
32
+ """
33
+ return self.properties.get("invitedUserDisplayName", None)
34
+
35
+ @property
36
+ def invited_user_email_address(self):
37
+ """The email address of the user being invited.
38
+ :rtype: str
39
+ """
40
+ return self.properties.get("invitedUserEmailAddress", None)
9
41
 
10
42
  @property
11
43
  def invited_user_message_info(self):
@@ -5,4 +5,22 @@ class AssignedPlan(ClientValue):
5
5
  """
6
6
  The assignedPlans property of both the user entity and the organization entity is a collection of assignedPlan.
7
7
  """
8
- pass
8
+
9
+ def __init__(self, assigned_datetime=None, capability_status=None, service=None, service_plan_id=None):
10
+ """
11
+ :param datetime.datetime assigned_datetime: The date and time at which the plan was assigned.
12
+ :param str capability_status: Condition of the capability assignment.
13
+ The possible values are Enabled, Warning, Suspended, Deleted, LockedOut.
14
+ See a detailed description of each value.
15
+ :param str service: The name of the service; for example, exchange.
16
+ :param str service_plan_id: A GUID that identifies the service plan. For a complete list of GUIDs and their
17
+ equivalent friendly service names, see Product names and service plan identifiers for licensing.
18
+ """
19
+ self.assignedDateTime = assigned_datetime
20
+ self.capabilityStatus = capability_status
21
+ self.service = service
22
+ self.servicePlanId = service_plan_id
23
+
24
+ def __repr__(self):
25
+ return self.service
26
+
@@ -11,3 +11,8 @@ class LicenseAssignmentState(ClientValue):
11
11
  - The current state of the assignment
12
12
  - Error details if the assignment state is Error
13
13
  """
14
+ def __init__(self, assigned_by_group=None):
15
+ """
16
+ :param str assigned_by_group:
17
+ """
18
+ self.assignedByGroup = assigned_by_group
@@ -27,3 +27,7 @@ class ServicePlanInfo(ClientValue):
27
27
  self.servicePlanName = name
28
28
  self.provisioningStatus = provisioning_status
29
29
  self.appliesTo = applies_to
30
+
31
+ def __repr__(self):
32
+ return self.servicePlanName
33
+
@@ -1,4 +1,5 @@
1
1
  from office365.directory.licenses.service_plan_info import ServicePlanInfo
2
+ from office365.directory.licenses.units_detail import LicenseUnitsDetail
2
3
  from office365.entity import Entity
3
4
  from office365.runtime.client_value_collection import ClientValueCollection
4
5
 
@@ -6,6 +7,45 @@ from office365.runtime.client_value_collection import ClientValueCollection
6
7
  class SubscribedSku(Entity):
7
8
  """Contains information about a service SKU that a company is subscribed to."""
8
9
 
10
+ @property
11
+ def account_id(self):
12
+ """
13
+ The unique ID of the account this SKU belongs to.
14
+ :rtype: str
15
+ """
16
+ return self.properties.get("accountId", None)
17
+
18
+ @property
19
+ def applies_to(self):
20
+ """
21
+ The target class for this SKU. Only SKUs with target class User are assignable.
22
+ Possible values are: "User", "Company".
23
+ :rtype: str
24
+ """
25
+ return self.properties.get("appliesTo", None)
26
+
27
+ @property
28
+ def sku_id(self):
29
+ """
30
+ The unique identifier (GUID) for the service SKU.
31
+ :rtype: str
32
+ """
33
+ return self.properties.get("skuId", None)
34
+
35
+ @property
36
+ def sku_part_number(self):
37
+ """
38
+ The SKU part number; for example: "AAD_PREMIUM" or "RMSBASIC".
39
+ To get a list of commercial subscriptions that an organization has acquired, see List subscribedSkus.
40
+ :rtype: str
41
+ """
42
+ return self.properties.get("skuPartNumber", None)
43
+
44
+ @property
45
+ def prepaid_units(self):
46
+ """Information about the number and status of prepaid licenses."""
47
+ return self.properties.get("prepaidUnits", LicenseUnitsDetail())
48
+
9
49
  @property
10
50
  def service_plans(self):
11
51
  """Information about the service plans that are available with the SKU. Not nullable"""
@@ -14,6 +54,7 @@ class SubscribedSku(Entity):
14
54
  def get_property(self, name, default_value=None):
15
55
  if default_value is None:
16
56
  property_mapping = {
57
+ "prepaidUnits": self.prepaid_units,
17
58
  "servicePlans": self.service_plans
18
59
  }
19
60
  default_value = property_mapping.get(name, None)
@@ -0,0 +1,11 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class LicenseUnitsDetail(ClientValue):
5
+ """"""
6
+
7
+ def __init__(self, enabled=None):
8
+ """
9
+ :param int enabled: The number of units that are enabled for the active subscription of the service SKU.
10
+ """
11
+ self.enabled = enabled
@@ -1,3 +1,5 @@
1
+ from datetime import datetime
2
+
1
3
  from office365.entity import Entity
2
4
  from office365.runtime.client_result import ClientResult
3
5
  from office365.runtime.queries.service_operation import ServiceOperationQuery
@@ -85,4 +87,4 @@ class DirectoryObject(Entity):
85
87
  @property
86
88
  def deleted_datetime(self):
87
89
  """Date and time when this object was deleted. Always null when the object hasn't been deleted."""
88
- return self.properties.get('deletedDateTime', None)
90
+ return self.properties.get('deletedDateTime', datetime.min)
@@ -57,18 +57,17 @@ class DirectoryObjectCollection(DeltaCollection):
57
57
  def remove(self, user_id):
58
58
  """Remove a user from the group.
59
59
 
60
- :type user_id: str
60
+ :param str user_id: User identifier
61
61
  """
62
62
 
63
63
  qry = ServiceOperationQuery(self, "{0}/$ref".format(user_id))
64
- self.context.add_query(qry)
65
64
 
66
- def _construct_remove_user_request(request):
65
+ def _construct_request(request):
67
66
  """
68
67
  :type request: RequestOptions
69
68
  """
70
69
  request.method = HttpMethod.Delete
71
- self.context.before_execute(_construct_remove_user_request)
70
+ self.context.add_query(qry).before_query_execute(_construct_request)
72
71
  return self
73
72
 
74
73
  def validate_properties(self, entity_type=None, display_name=None, mail_nickname=None, on_behalf_of_userid=None):
@@ -5,15 +5,19 @@ class PasswordCredential(ClientValue):
5
5
  """Represents a password credential associated with an application or a service principal.
6
6
  The passwordCredentials property of the application entity is a collection of passwordCredential objects."""
7
7
 
8
- def __init__(self, display_name=None, secret_text=None, key_id=None):
8
+ def __init__(self, display_name=None, secret_text=None, key_id=None, start_datetime=None):
9
9
  """
10
10
  :param str display_name: Friendly name for the password. Optional.
11
11
  :param str secret_text: Read-only; Contains the strong passwords generated by Azure AD that are 16-64
12
12
  characters in length. The generated password value is only returned during the initial POST request to
13
13
  addPassword. There is no way to retrieve this password in the future.
14
14
  :param str key_id: The unique identifier for the password.
15
+ :param str start_datetime: The date and time at which the password becomes valid. The Timestamp type represents
16
+ date and time information using ISO 8601 format and is always in UTC time.
17
+ For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
15
18
  """
16
19
  super(PasswordCredential, self).__init__()
17
20
  self.displayName = display_name
18
21
  self.secretText = secret_text
19
22
  self.keyId = key_id
23
+ self.startDateTime = start_datetime
@@ -0,0 +1,5 @@
1
+ from office365.directory.permissions.identity import Identity
2
+
3
+
4
+ class EmailIdentity(Identity):
5
+ """Represents the email identity of a user."""
@@ -19,6 +19,23 @@ class PermissionGrantConditionSet(Entity):
19
19
  """
20
20
  return self.properties.get("clientApplicationIds", StringCollection())
21
21
 
22
+ @property
23
+ def client_application_publisher_ids(self):
24
+ """
25
+ A list of Microsoft Partner Network (MPN) IDs for verified publishers of the client application, or a list
26
+ with the single value all to match with client apps from any publisher. Default is the single value all.
27
+ """
28
+ return self.properties.get("clientApplicationPublisherIds", StringCollection())
29
+
30
+ @property
31
+ def client_applications_from_verified_publisher_only(self):
32
+ """
33
+ Set to true to only match on client applications with a verified publisher. Set to false to match on any client
34
+ app, even if it does not have a verified publisher. Default is false.
35
+ :rtype: bool
36
+ """
37
+ return self.properties.get("clientApplicationsFromVerifiedPublisherOnly", None)
38
+
22
39
  @property
23
40
  def permissions(self):
24
41
  """
@@ -30,3 +47,12 @@ class PermissionGrantConditionSet(Entity):
30
47
  Default is the single value all.
31
48
  """
32
49
  return self.properties.get("permissions", StringCollection())
50
+
51
+ @property
52
+ def resource_application(self):
53
+ """
54
+ The appId of the resource application (e.g. the API) for which a permission is being granted, or any to match
55
+ with any resource application or API. Default is any.
56
+ :rtype: str
57
+ """
58
+ return self.properties.get("resourceApplication", None)
@@ -17,3 +17,24 @@ class ResourceSpecificPermissionGrant(DirectoryObject):
17
17
  """ID of the service principal of the Azure AD app that has been granted access."""
18
18
  return self.properties.get("clientAppId", None)
19
19
 
20
+ @property
21
+ def permission(self):
22
+ """The name of the resource-specific permission.
23
+ :rtype: str
24
+ """
25
+ return self.properties.get("permission", None)
26
+
27
+ @property
28
+ def permission_type(self):
29
+ """The type of permission. Possible values are: Application, Delegated. Read-only.
30
+ :rtype: str
31
+ """
32
+ return self.properties.get("permissionType", None)
33
+
34
+ @property
35
+ def resource_app_id(self):
36
+ """ID of the Azure AD app that is hosting the resource. Read-only.
37
+ :rtype: str
38
+ """
39
+ return self.properties.get("resourceAppId", None)
40
+
@@ -0,0 +1,9 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class AuthenticationFlowsPolicy(Entity):
5
+ """
6
+ Represents the policy configuration of self-service sign-up experience at a tenant level that lets external
7
+ users request to sign up for approval. It contains information, such as the identifier, display name, and
8
+ description, and indicates whether self-service sign-up is enabled for the policy.
9
+ """
@@ -0,0 +1,10 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class AuthenticationStrengthPolicy(Entity):
5
+ """
6
+ A collection of settings that define specific combinations of authentication methods and metadata.
7
+ The authentication strength policy, when applied to a given scenario using Azure AD Conditional Access,
8
+ defines which authentication methods must be used to authenticate in that scenario. An authentication strength
9
+ may be built-in or custom (defined by the tenant) and may or may not fulfill the requirements to grant an MFA claim.
10
+ """
@@ -4,3 +4,11 @@ from office365.directory.policies.base import PolicyBase
4
4
  class AuthorizationPolicy(PolicyBase):
5
5
  """Represents a policy that can control Azure Active Directory authorization settings.
6
6
  It's a singleton that inherits from base policy type, and always exists for the tenant."""
7
+
8
+ @property
9
+ def allowed_to_sign_up_email_based_subscriptions(self):
10
+ """
11
+ Indicates whether a user can join the tenant by email validation.
12
+ :rtype: bool
13
+ """
14
+ return self.properties.get("allowedToSignUpEmailBasedSubscriptions", None)
@@ -0,0 +1,5 @@
1
+ from office365.directory.policies.base import PolicyBase
2
+
3
+
4
+ class CrossTenantAccessPolicy(PolicyBase):
5
+ """Represents the base policy in the directory for cross-tenant access settings."""
@@ -1,4 +1,8 @@
1
+ from office365.directory.policies.app_management import AppManagementPolicy
2
+ from office365.directory.policies.authentication_flows import AuthenticationFlowsPolicy
1
3
  from office365.directory.policies.authentication_methods import AuthenticationMethodsPolicy
4
+ from office365.directory.policies.authentication_strength import AuthenticationStrengthPolicy
5
+ from office365.directory.policies.cross_tenant_access import CrossTenantAccessPolicy
2
6
  from office365.directory.policies.permission_grant import PermissionGrantPolicy
3
7
  from office365.directory.policies.authorization import AuthorizationPolicy
4
8
  from office365.directory.policies.conditional_access import ConditionalAccessPolicy
@@ -21,6 +25,22 @@ class PolicyRoot(Entity):
21
25
  ResourcePath("authenticationMethodsPolicy",
22
26
  self.resource_path)))
23
27
 
28
+ def authentication_strength_policies(self):
29
+ """
30
+ The authentication method combinations that are to be used in scenarios defined by Azure AD Conditional Access.
31
+ """
32
+ return self.properties.get('authenticationStrengthPolicies',
33
+ EntityCollection(self.context, AuthenticationStrengthPolicy,
34
+ ResourcePath("authenticationStrengthPolicies", self.resource_path)))
35
+
36
+ @property
37
+ def authentication_flows_policy(self):
38
+ """ The policy configuration of the self-service sign-up experience of external users."""
39
+ return self.properties.get('authenticationFlowsPolicy',
40
+ AuthenticationFlowsPolicy(self.context,
41
+ ResourcePath("authenticationFlowsPolicy",
42
+ self.resource_path)))
43
+
24
44
  @property
25
45
  def authorization_policy(self):
26
46
  """The policy that controls Azure AD authorization settings."""
@@ -33,8 +53,18 @@ class PolicyRoot(Entity):
33
53
  """The policies that enforce app management restrictions for specific applications and service principals,
34
54
  overriding the defaultAppManagementPolicy."""
35
55
  return self.properties.get('appManagementPolicies',
36
- AuthorizationPolicy(self.context,
37
- ResourcePath("appManagementPolicies", self.resource_path)))
56
+ EntityCollection(self.context, AppManagementPolicy,
57
+ ResourcePath("appManagementPolicies", self.resource_path)))
58
+
59
+ @property
60
+ def cross_tenant_access_policy(self):
61
+ """
62
+ The custom rules that define an access scenario when interacting with external Azure AD tenants.
63
+ """
64
+ return self.properties.get('crossTenantAccessPolicy',
65
+ CrossTenantAccessPolicy(self.context,
66
+ ResourcePath("crossTenantAccessPolicy",
67
+ self.resource_path)))
38
68
 
39
69
  @property
40
70
  def permission_grant_policies(self):
@@ -57,10 +87,13 @@ class PolicyRoot(Entity):
57
87
  def get_property(self, name, default_value=None):
58
88
  if default_value is None:
59
89
  property_mapping = {
90
+ "authenticationStrengthPolicies": self.authentication_strength_policies,
91
+ "authenticationFlowsPolicy": self.authentication_flows_policy,
60
92
  "appManagementPolicies": self.app_management_policies,
61
93
  "authenticationMethodsPolicy": self.authentication_methods_policy,
62
94
  "authorizationPolicy": self.authorization_policy,
63
95
  "conditional_access_policies": self.conditional_access_policies,
96
+ "crossTenantAccessPolicy": self.cross_tenant_access_policy,
64
97
  "permissionGrantPolicies": self.permission_grant_policies,
65
98
  }
66
99
  default_value = property_mapping.get(name, None)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class InformationProtection(Entity):
5
+ """Exposes methods that you can use to get Microsoft Purview Information Protection labels and label policies."""
@@ -0,0 +1,11 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class RiskDetection(Entity):
5
+ """
6
+ Represents information about a detected risk in an Azure AD tenant.
7
+
8
+ Azure AD continually evaluates user risks and app or user sign-in risks based on various signals
9
+ and machine learning.
10
+ This API provides programmatic access to all risk detections in your Azure AD environment.
11
+ """