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
@@ -4,10 +4,12 @@ from office365.runtime.client_value import ClientValue
4
4
  class TenantAppInformation(ClientValue):
5
5
  """Specifies the information for the tenant-scoped app."""
6
6
 
7
- def __init__(self, app_principal_id=None, app_web_full_url=None):
7
+ def __init__(self, app_principal_id=None, app_web_full_url=None, creation_time=None):
8
8
  """
9
9
  :param str app_principal_id: Specifies the OAuth Id for the tenant-scoped app.
10
10
  :param str app_web_full_url: Specifies the web full URL for the tenant-scoped app.
11
+ :param datetime.datetime creation_time: Specifies the creation time for the tenant-scoped app.
11
12
  """
12
13
  self.AppPrincipalId = app_principal_id
13
14
  self.AppWebFullUrl = app_web_full_url
15
+ self.CreationTime = creation_time
@@ -151,24 +151,28 @@ class Office365Tenant(BaseEntity):
151
151
  self.context.add_query(qry)
152
152
  return self
153
153
 
154
- def revoke_all_user_sessions(self, user_or_username):
154
+ def revoke_all_user_sessions(self, user):
155
155
  """
156
156
  Provides IT administrators the ability to invalidate a particular users' O365 sessions across all their devices.
157
157
 
158
- :param str or User user_or_username: Specifies a user name
158
+ :param str or User user: Specifies a user name or user object
159
159
  (for example, user1@contoso.com) or User object
160
160
  """
161
161
  return_type = SPOUserSessionRevocationResult(self.context)
162
- if isinstance(user_or_username, User):
163
- def _user_loaded():
164
- next_qry = ServiceOperationQuery(self, "RevokeAllUserSessions", [user_or_username.login_name], None,
165
- None, return_type)
166
- self.context.add_query(next_qry)
167
162
 
168
- user_or_username.ensure_property("LoginName", _user_loaded)
169
- else:
170
- qry = ServiceOperationQuery(self, "RevokeAllUserSessions", [user_or_username], None, None, return_type)
163
+ def _revoke_all_user_sessions(login_name):
164
+ """
165
+ :type login_name: str
166
+ """
167
+ qry = ServiceOperationQuery(self, "RevokeAllUserSessions", [login_name], None, None, return_type)
171
168
  self.context.add_query(qry)
169
+
170
+ if isinstance(user, User):
171
+ def _user_loaded():
172
+ _revoke_all_user_sessions(user.login_name)
173
+ user.ensure_property("LoginName", _user_loaded)
174
+ else:
175
+ _revoke_all_user_sessions(user)
172
176
  return return_type
173
177
 
174
178
  def get_external_users(self, position=0, page_size=50, _filter=None, sort_order=0):
@@ -238,7 +242,6 @@ class Office365Tenant(BaseEntity):
238
242
  def delete_tenant_theme(self, name):
239
243
  """
240
244
  Removes a theme from tenant
241
-
242
245
  :type name: str
243
246
  """
244
247
  payload = {
@@ -17,6 +17,7 @@ class ResourcePath(ClientValue):
17
17
  @staticmethod
18
18
  def create_absolute(site_url, path):
19
19
  """
20
+ Creates absolute path
20
21
  :param str site_url: Site url
21
22
  :param str path: Resource path
22
23
  """
@@ -29,11 +30,12 @@ class ResourcePath(ClientValue):
29
30
  @staticmethod
30
31
  def create_relative(site_url, path):
31
32
  """
33
+ Creates server relative path
32
34
  :param str site_url: Site url
33
35
  :param str path: Resource path
34
36
  """
35
37
  site_path = urlparse(site_url).path
36
- if not path.startswith(site_path):
38
+ if not path.lower().startswith(site_path.lower()):
37
39
  return ResourcePath("/".join([site_path, path]))
38
40
  else:
39
41
  return ResourcePath(path)
@@ -265,8 +265,6 @@ class PeopleManager(BaseEntity):
265
265
  def set_multi_valued_profile_property(self, account_name, property_name, property_values):
266
266
  """
267
267
  Sets the value of a multivalued user profile property.
268
-
269
-
270
268
  :param str account_name: Specifies the user by account name.
271
269
  :param str property_name: The name of the property to set.
272
270
  :param list[str] property_values: The values being set on the property.
@@ -1,3 +1,5 @@
1
+ from datetime import datetime
2
+
1
3
  from office365.runtime.client_value_collection import ClientValueCollection
2
4
  from office365.sharepoint.base_entity import BaseEntity
3
5
  from office365.sharepoint.userprofiles.sharedwithme.document_user import SharedWithMeDocumentUser
@@ -15,12 +17,16 @@ class SharedWithMeDocument(BaseEntity):
15
17
 
16
18
  @property
17
19
  def caller_stack(self):
20
+ """
21
+ :rtype: str
22
+ """
18
23
  return self.properties.get('CallerStack', None)
19
24
 
20
25
  @property
21
26
  def content_type_id(self):
22
27
  """
23
28
  Specifies the identifier of the content type of the document.
29
+ :rtype: str
24
30
  """
25
31
  return self.properties.get('ContentTypeId', None)
26
32
 
@@ -28,6 +34,7 @@ class SharedWithMeDocument(BaseEntity):
28
34
  def doc_id(self):
29
35
  """
30
36
  Specifies the document identifier.
37
+ :rtype: str
31
38
  """
32
39
  return self.properties.get('DocId', None)
33
40
 
@@ -37,3 +44,12 @@ class SharedWithMeDocument(BaseEntity):
37
44
  Specifies a list of users that can edit the document.
38
45
  """
39
46
  return self.properties.get('Editors', ClientValueCollection(SharedWithMeDocumentUser))
47
+
48
+ @property
49
+ def modified(self):
50
+ """Specifies the date and time when the document was last modified."""
51
+ return self.properties.get("Modified", datetime.min)
52
+
53
+ @property
54
+ def entity_type_name(self):
55
+ return "Microsoft.SharePoint.Portal.UserProfiles.SharedWithMeDocument"
@@ -4,6 +4,18 @@ from office365.runtime.client_value import ClientValue
4
4
  class SharedWithMeDocumentUser(ClientValue):
5
5
  """Represents a user of a document that is shared with the current user."""
6
6
 
7
+ def __init__(self, _id=None, login_name=None, sip_address=None, title=None):
8
+ """
9
+ :param str _id: Identifier
10
+ :param str login_name: Specifies the login name of the user.
11
+ :param str sip_address: Specifies the sip address of the user.
12
+ :param str title: Specifies the title of the user.
13
+ """
14
+ self.Id = _id
15
+ self.LoginName = login_name
16
+ self.SipAddress = sip_address
17
+ self.Title = title
18
+
7
19
  @property
8
20
  def entity_type_name(self):
9
21
  return "Microsoft.SharePoint.Portal.UserProfiles.SharedWithMeDocumentUser"
@@ -0,0 +1,41 @@
1
+ from office365.runtime.client_result import ClientResult
2
+ from office365.runtime.queries.service_operation import ServiceOperationQuery
3
+ from office365.sharepoint.base_entity import BaseEntity
4
+
5
+
6
+ class SharedWithMeItemCollection(BaseEntity):
7
+ """"""
8
+
9
+ @staticmethod
10
+ def get_shared_with_me_external_items(context, top):
11
+ """
12
+ :param office365.sharepoint.client_context.ClientContext context: Client context
13
+ :param int top:
14
+ """
15
+ binding_type = SharedWithMeItemCollection(context)
16
+ return_type = ClientResult(context, str())
17
+ params = {"top": top}
18
+ qry = ServiceOperationQuery(binding_type, "GetSharedWithMeExternalItems", params,
19
+ return_type=return_type, is_static=True)
20
+ context.add_query(qry)
21
+ return return_type
22
+
23
+ @staticmethod
24
+ def get_shared_with_me_items(context, top, skip_token=None, include_sharing_history=None):
25
+ """
26
+ :param office365.sharepoint.client_context.ClientContext context: Client context
27
+ :param int top:
28
+ :param str skip_token:
29
+ :param bool include_sharing_history:
30
+ """
31
+ binding_type = SharedWithMeItemCollection(context)
32
+ return_type = ClientResult(context, str())
33
+ params = {
34
+ "top": top,
35
+ "skiptoken": skip_token,
36
+ "includeSharingHistory": include_sharing_history
37
+ }
38
+ qry = ServiceOperationQuery(binding_type, "GetSharedWithMeItems", None, params,
39
+ return_type=return_type, is_static=True)
40
+ context.add_query(qry)
41
+ return return_type
@@ -1,5 +1,22 @@
1
+ from office365.runtime.queries.service_operation import ServiceOperationQuery
1
2
  from office365.sharepoint.base_entity import BaseEntity
3
+ from office365.sharepoint.base_entity_collection import BaseEntityCollection
4
+ from office365.sharepoint.userprofiles.sharedwithme.document import SharedWithMeDocument
2
5
 
3
6
 
4
7
  class SharedWithMeItems(BaseEntity):
5
- pass
8
+
9
+ @staticmethod
10
+ def shared_with_me(context):
11
+ """
12
+ :param office365.sharepoint.client_context.ClientContext context: Client context
13
+ """
14
+ binding_type = SharedWithMeItems(context)
15
+ return_type = BaseEntityCollection(context, SharedWithMeDocument)
16
+ qry = ServiceOperationQuery(binding_type, "SharedWithMe", return_type=return_type, is_static=True)
17
+ context.add_query(qry)
18
+ return return_type
19
+
20
+ @property
21
+ def entity_type_name(self):
22
+ return "Microsoft.SharePoint.Portal.UserProfiles.SharedWithMeItems"
@@ -0,0 +1,14 @@
1
+ from office365.runtime.paths.resource_path import ResourcePath
2
+ from office365.sharepoint.base_entity import BaseEntity
3
+
4
+
5
+ class VivaSiteManager(BaseEntity):
6
+ """"""
7
+ def __init__(self, content, resource_path=None):
8
+ if resource_path is None:
9
+ resource_path = ResourcePath("Microsoft.SharePoint.Portal.VivaSiteManager")
10
+ super().__init__(content, resource_path)
11
+
12
+ @property
13
+ def entity_type_name(self):
14
+ return "Microsoft.SharePoint.Portal.VivaSiteManager"
@@ -22,20 +22,19 @@ class SubscriptionCollection(BaseEntityCollection):
22
22
  return_type = Subscription(self.context)
23
23
  self.add_child(return_type)
24
24
 
25
- def _create_query(information):
25
+ def _create_and_add_query(information):
26
26
  """
27
27
  :type information: SubscriptionInformation
28
28
  """
29
29
  payload = {"parameters": information}
30
- return ServiceOperationQuery(self, "Add", None, payload, None, return_type)
30
+ qry = ServiceOperationQuery(self, "Add", None, payload, None, return_type)
31
+ self.context.add_query(qry)
31
32
 
32
33
  if isinstance(parameters, SubscriptionInformation):
33
- qry = _create_query(parameters)
34
- self.context.add_query(qry)
34
+ _create_and_add_query(parameters)
35
35
  else:
36
36
  def _parent_loaded():
37
- next_qry = _create_query(SubscriptionInformation(parameters, self._parent.properties["Id"]))
38
- self.context.add_query(next_qry)
37
+ _create_and_add_query(SubscriptionInformation(parameters, self._parent.properties["Id"]))
39
38
  self._parent.ensure_property("Id", _parent_loaded)
40
39
  return return_type
41
40
 
@@ -20,7 +20,7 @@ class WebPartDefinition(BaseEntity):
20
20
 
21
21
  @property
22
22
  def web_part(self):
23
- """The WebPart object (1), as specified in section 3.2.5.148, associated with this WebPartDefinition.
23
+ """The WebPart object, as specified in section 3.2.5.148, associated with this WebPartDefinition.
24
24
  The WebPart object (1) contains additional properties relating to the Web Part represented by this
25
25
  WebPartDefinition object"""
26
26
  return self.properties.get('WebPart',
@@ -2,7 +2,21 @@ from office365.sharepoint.base_entity import BaseEntity
2
2
 
3
3
 
4
4
  class WebPart(BaseEntity):
5
- """The WebPart object, as specified in section 3.2.5.148, associated with this WebPartDefinition.
6
- The WebPart object (1) contains additional properties relating to the Web Part represented by this
7
- WebPartDefinition object."""
8
- pass
5
+ """
6
+ A reusable component that contains or generates web-based content such as XML, HTML, and scripting code.
7
+ It has a standard property schema and displays that content in a cohesive unit on a webpage. See also Web Parts Page
8
+ """
9
+
10
+ @property
11
+ def zone_index(self):
12
+ """
13
+ An integer that specifies the relative position of a Web Part in a Web Part zone.
14
+ Web Parts are positioned from the smallest to the largest zone index. If two or more Web Parts have the
15
+ same zone index they are positioned adjacent to each other in an undefined order
16
+ :rtype: int or None
17
+ """
18
+ return self.properties.get("ZoneIndex", None)
19
+
20
+ @property
21
+ def entity_type_name(self):
22
+ return "SP.WebParts.WebPart"
@@ -9,7 +9,8 @@ class ContextWebInformation(ClientValue):
9
9
 
10
10
  def __init__(self, form_digest_value=None, form_digest_timeout_secs=None):
11
11
  """
12
- :param str form_digest_value: Specifies a valid form digest for the site
12
+ :param str form_digest_value: An object that is inserted into a page and is used by a protocol server
13
+ to validate client requests. The validation is specific to a user, site, and time period.
13
14
  :param int form_digest_timeout_secs: Specifies the amount of time in seconds before security validation expires.
14
15
  """
15
16
  super(ContextWebInformation, self).__init__()
@@ -21,9 +22,6 @@ class ContextWebInformation(ClientValue):
21
22
  self.WebFullUrl = None
22
23
  self._valid_from = time.time()
23
24
 
24
- def reset(self):
25
- pass
26
-
27
25
  @property
28
26
  def is_valid(self):
29
27
  """
@@ -26,11 +26,13 @@ from office365.sharepoint.flows.synchronization_result import FlowSynchronizatio
26
26
  from office365.sharepoint.folders.folder import Folder
27
27
  from office365.sharepoint.folders.collection import FolderCollection
28
28
  from office365.sharepoint.listitems.listitem import ListItem
29
+ from office365.sharepoint.lists.creation_information import ListCreationInformation
29
30
  from office365.sharepoint.lists.document_library_information import DocumentLibraryInformation
30
31
  from office365.sharepoint.lists.get_parameters import GetListsParameters
31
32
  from office365.sharepoint.lists.list import List
32
33
  from office365.sharepoint.lists.collection import ListCollection
33
34
  from office365.sharepoint.lists.template_collection import ListTemplateCollection
35
+ from office365.sharepoint.lists.template_type import ListTemplateType
34
36
  from office365.sharepoint.marketplace.corporatecuratedgallery.available_addins_response import SPAvailableAddinsResponse
35
37
  from office365.sharepoint.navigation.navigation import Navigation
36
38
  from office365.sharepoint.permissions.base_permissions import BasePermissions
@@ -74,8 +76,13 @@ from office365.sharepoint.webs.theme_info import ThemeInfo
74
76
 
75
77
 
76
78
  class Web(SecurableObject):
77
- """Represents a SharePoint site. A site is a type of SP.SecurableObject.
78
- Refer this link https://msdn.microsoft.com/en-us/library/office/dn499819.aspx for a details"""
79
+ """
80
+ Represents a SharePoint site. A site is a type of SecurableObject.
81
+
82
+ A group of related webpages that is hosted by a server on the World Wide Web or an intranet.
83
+ Each website has its own entry points, metadata, administration settings, and workflows.
84
+ Also referred to as web site.
85
+ """
79
86
 
80
87
  def __init__(self, context, resource_path=None):
81
88
  """
@@ -89,6 +96,16 @@ class Web(SecurableObject):
89
96
  super(Web, self).__init__(context, resource_path)
90
97
  self._web_url = None
91
98
 
99
+ def add_list(self, title, template_type=ListTemplateType.GenericList):
100
+ """
101
+ Creates a new list and adds it to the web.
102
+
103
+ :param str title: Specifies the display name of the new list.
104
+ :param int template_type: Specifies the list server template of the new list.
105
+ """
106
+ info = ListCreationInformation(title, None, template_type)
107
+ return self.lists.add(info)
108
+
92
109
  def available_addins(self, server_relative_urls=None):
93
110
  """
94
111
  :param list[str] server_relative_urls:
@@ -131,6 +148,7 @@ class Web(SecurableObject):
131
148
  return result
132
149
 
133
150
  def consent_to_power_platform(self):
151
+ """"""
134
152
  return_type = FlowSynchronizationResult(self.context)
135
153
  qry = ServiceOperationQuery(self, "ConsentToPowerPlatform", None, None, None, return_type)
136
154
  self.context.add_query(qry)
@@ -185,19 +203,21 @@ class Web(SecurableObject):
185
203
  """
186
204
  return_type = PushNotificationSubscriberCollection(self.context)
187
205
 
188
- def _create_query(login_name):
189
- return ServiceOperationQuery(self, "GetPushNotificationSubscribersByUser",
190
- [login_name], None, None, return_type)
206
+ def _create_and_add_query(login_name):
207
+ """
208
+ :type login_name: str
209
+ """
210
+ qry = ServiceOperationQuery(self, "GetPushNotificationSubscribersByUser",
211
+ [login_name], None, None, return_type)
212
+ self.context.add_query(qry)
191
213
 
192
214
  if isinstance(user, User):
193
215
  def _user_loaded():
194
- next_qry = _create_query(user.login_name)
195
- self.context.add_query(next_qry)
216
+ _create_and_add_query(user.login_name)
196
217
 
197
218
  user.ensure_property("LoginName", _user_loaded)
198
219
  else:
199
- qry = _create_query(user)
200
- self.context.add_query(qry)
220
+ _create_and_add_query(user)
201
221
  return return_type
202
222
 
203
223
  @staticmethod
@@ -369,7 +389,6 @@ class Web(SecurableObject):
369
389
  def add_supported_ui_language(self, lcid):
370
390
  """
371
391
  Adds a supported UI language by its language identifier.
372
-
373
392
  :param int lcid: Specifies the language identifier to be added.
374
393
  """
375
394
  qry = ServiceOperationQuery(self, "AddSupportedUILanguage", {"lcid": lcid})
@@ -1396,8 +1415,8 @@ class Web(SecurableObject):
1396
1415
 
1397
1416
  @property
1398
1417
  def allow_rss_feeds(self):
1399
- """Gets a Boolean value that specifies whether the site collection allows RSS feeds.
1400
-
1418
+ """
1419
+ Gets a Boolean value that specifies whether the site collection allows RSS feeds.
1401
1420
  :rtype: str
1402
1421
  """
1403
1422
  return self.properties.get("AllowRssFeeds", None)
@@ -6,7 +6,6 @@ from office365.sharepoint.base_entity import BaseEntity
6
6
  class WorkflowServicesManager(BaseEntity):
7
7
  """Describes the workflow host configuration states and provides service objects that interact with the workflow."""
8
8
 
9
-
10
9
  def get_workflow_instance_service(self):
11
10
  """Returns the WorkflowInstanceService (manages and reads workflow instances from the workflow host),
12
11
  which manages workflow instances."""
@@ -16,7 +15,6 @@ class WorkflowServicesManager(BaseEntity):
16
15
  self.context.add_query(qry)
17
16
  return return_type
18
17
 
19
-
20
18
  @staticmethod
21
19
  def current(context):
22
20
  """
@@ -0,0 +1,42 @@
1
+ from office365.entity_collection import EntityCollection
2
+ from office365.runtime.queries.create_entity import CreateEntityQuery
3
+ from office365.subscriptions.subscription import Subscription
4
+
5
+
6
+ class SubscriptionCollection(EntityCollection):
7
+
8
+ def __init__(self, context, resource_path=None):
9
+ super(SubscriptionCollection, self).__init__(context, Subscription, resource_path)
10
+
11
+ def add(self, change_type, notification_url, resource_path, expiration, client_state=None,
12
+ latest_supported_tls_version=None):
13
+ """
14
+ Subscribes a listener application to receive change notifications when the requested type of changes occur
15
+ to the specified resource in Microsoft Graph.
16
+
17
+ :param str change_type: Indicates the type of change in the subscribed resource that will raise a change
18
+ notification
19
+ :param str notification_url: The URL of the endpoint that will receive the change notifications.
20
+ This URL must make use of the HTTPS protocol. Any query string parameter included in the notificationUrl
21
+ property will be included in the HTTP POST request when Microsoft Graph sends the change notifications.
22
+ :param office365.runtime.paths.resource_path.ResourcePath or str resource_path:
23
+ :param datetime.datetime expiration: Specifies the date and time when the webhook subscription expires.
24
+ :param str client_state: Specifies the value of the clientState property sent by the service in each change
25
+ notification
26
+ :param str latest_supported_tls_version: Specifies the latest version of Transport Layer Security (TLS) that
27
+ the notification endpoint, specified by notificationUrl, supports.
28
+ The possible values are: v1_0, v1_1, v1_2, v1_3.
29
+ """
30
+ return_type = Subscription(self.context)
31
+ self.add_child(return_type)
32
+ payload = {
33
+ "changeType": change_type,
34
+ "notificationUrl": notification_url,
35
+ "resource": str(resource_path),
36
+ "expirationDateTime": expiration.isoformat() + "Z",
37
+ "clientState": client_state,
38
+ "latestSupportedTlsVersion": latest_supported_tls_version
39
+ }
40
+ qry = CreateEntityQuery(self, payload, return_type)
41
+ self.context.add_query(qry)
42
+ return return_type
@@ -1,3 +1,5 @@
1
+ import datetime
2
+
1
3
  from office365.entity import Entity
2
4
  from office365.runtime.queries.service_operation import ServiceOperationQuery
3
5
 
@@ -6,7 +8,7 @@ class Subscription(Entity):
6
8
  """A subscription allows a client app to receive change notifications about changes to data in Microsoft Graph"""
7
9
 
8
10
  def reauthorize(self):
9
- """"""
11
+ """Reauthorize a subscription when you receive a reauthorizationRequired challenge."""
10
12
  qry = ServiceOperationQuery(self, "reauthorize")
11
13
  self.context.add_query(qry)
12
14
  return self
@@ -15,11 +17,119 @@ class Subscription(Entity):
15
17
  def application_id(self):
16
18
  """
17
19
  Identifier of the application used to create the subscription.
18
-
19
20
  :rtype: str or None
20
21
  """
21
22
  return self.properties.get("applicationId", None)
22
23
 
24
+ @property
25
+ def change_type(self):
26
+ """
27
+ Required. Indicates the type of change in the subscribed resource that will raise a change notification.
28
+ The supported values are: created, updated, deleted.
29
+ Multiple values can be combined using a comma-separated list.
30
+
31
+ Note:
32
+ Drive root item and list change notifications support only the updated changeType.
33
+ User and group change notifications support updated and deleted changeType. Use updated to receive
34
+ notifications when user or group is created, updated or soft deleted. Use deleted to receive notifications
35
+ when user or group is permanently deleted.
36
+ :rtype: str or None
37
+ """
38
+ return self.properties.get("changeType", None)
39
+
40
+ @property
41
+ def client_state(self):
42
+ """
43
+ Required. Specifies the value of the clientState property sent by the service in each change notification.
44
+ The maximum length is 128 characters. The client can check that the change notification came from the service
45
+ by comparing the value of the clientState property sent with the subscription with the value of the clientState
46
+ property received with each change notification.
47
+ :rtype: str or None
48
+ """
49
+ return self.properties.get("clientState", None)
50
+
51
+ @property
52
+ def creator_id(self):
53
+ """
54
+ Optional. Identifier of the user or service principal that created the subscription. If the app used
55
+ delegated permissions to create the subscription, this field contains the id of the signed-in user the app
56
+ called on behalf of. If the app used application permissions, this field contains the id of the service
57
+ principal corresponding to the app. Read-only.
58
+ :rtype: str or None
59
+ """
60
+ return self.properties.get("creatorId", None)
61
+
62
+ @property
63
+ def encryption_certificate(self):
64
+ """
65
+ Optional. A base64-encoded representation of a certificate with a public key used to encrypt resource data in
66
+ change notifications. Optional but required when includeResourceData is true.
67
+ :rtype: str or None
68
+ """
69
+ return self.properties.get("encryptionCertificate", None)
70
+
71
+ @property
72
+ def encryption_certificate_id(self):
73
+ """
74
+ Optional. A custom app-provided identifier to help identify the certificate needed to decrypt resource data.
75
+ :rtype: str or None
76
+ """
77
+ return self.properties.get("encryptionCertificateId", None)
78
+
79
+ @property
80
+ def expiration_datetime(self):
81
+ """
82
+ Required. Specifies the date and time when the webhook subscription expires. The time is in UTC, and can be
83
+ an amount of time from subscription creation that varies for the resource subscribed to
84
+ """
85
+ return self.properties.get("expirationDateTime", datetime.datetime)
86
+
87
+ @property
88
+ def include_resource_data(self):
89
+ """
90
+ Optional. When set to true, change notifications include resource data (such as content of a chat message).
91
+ :rtype: bool
92
+ """
93
+ return self.properties.get("includeResourceData", None)
94
+
95
+ @property
96
+ def latest_supported_tls_version(self):
97
+ """
98
+ Optional. Specifies the latest version of Transport Layer Security (TLS) that the notification endpoint,
99
+ specified by notificationUrl, supports. The possible values are: v1_0, v1_1, v1_2, v1_3.
100
+
101
+ For subscribers whose notification endpoint supports a version lower than the currently recommended
102
+ version (TLS 1.2), specifying this property by a set timeline allows them to temporarily use their deprecated
103
+ version of TLS before completing their upgrade to TLS 1.2. For these subscribers, not setting this property
104
+ per the timeline would result in subscription operations failing.
105
+
106
+ For subscribers whose notification endpoint already supports TLS 1.2, setting this property is optional.
107
+ In such cases, Microsoft Graph defaults the property to v1_2.
108
+ :rtype: str
109
+ """
110
+ return self.properties.get("latestSupportedTlsVersion", None)
111
+
112
+ @property
113
+ def lifecycle_notification_url(self):
114
+ """
115
+ Required for Teams resources if the expirationDateTime value is more than 1 hour from now; optional otherwise.
116
+ The URL of the endpoint that receives lifecycle notifications, including subscriptionRemoved,
117
+ reauthorizationRequired, and missed notifications. This URL must make use of the HTTPS protocol.
118
+ For more information, see Reduce missing subscriptions and change notifications.
119
+ :rtype: str or None
120
+ """
121
+ return self.properties.get("lifecycleNotificationUrl", None)
122
+
123
+ @property
124
+ def notification_url(self):
125
+ """
126
+ Required. The URL of the endpoint that will receive the change notifications. This URL must make use of
127
+ the HTTPS protocol. Any query string parameter included in the notificationUrl property will be included
128
+ in the HTTP POST request when Microsoft Graph sends the change notifications.
129
+ :rtype: str or None
130
+ """
131
+ return self.properties.get("notificationUrl", None)
132
+
23
133
  @property
24
134
  def resource(self):
25
135
  """
@@ -30,3 +140,11 @@ class Subscription(Entity):
30
140
  :rtype: str or None
31
141
  """
32
142
  return self.properties.get("resource", None)
143
+
144
+ def get_property(self, name, default_value=None):
145
+ if default_value is None:
146
+ property_mapping = {
147
+ "expirationDateTime": self.expiration_datetime,
148
+ }
149
+ default_value = property_mapping.get(name, None)
150
+ return super(Subscription, self).get_property(name, default_value)
@@ -0,0 +1,23 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.runtime.paths.resource_path import ResourcePath
4
+ from office365.teams.apps.app import TeamsApp
5
+
6
+
7
+ class AppCatalogs(Entity):
8
+ """A container for apps from the Microsoft Teams app catalog"""
9
+
10
+ @property
11
+ def teams_apps(self):
12
+ """List apps from the Microsoft Teams app catalog."""
13
+ return self.properties.get('teamsApps',
14
+ EntityCollection(self.context, TeamsApp,
15
+ ResourcePath("teamsApps", self.resource_path)))
16
+
17
+ def get_property(self, name, default_value=None):
18
+ if default_value is None:
19
+ property_mapping = {
20
+ "teamsApps": self.teams_apps
21
+ }
22
+ default_value = property_mapping.get(name, None)
23
+ return super(AppCatalogs, self).get_property(name, default_value)