Office365-REST-Python-Client 2.5.1__py3-none-any.whl → 2.5.3__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 (271) hide show
  1. {Office365_REST_Python_Client-2.5.1.dist-info → Office365_REST_Python_Client-2.5.3.dist-info}/METADATA +6 -6
  2. {Office365_REST_Python_Client-2.5.1.dist-info → Office365_REST_Python_Client-2.5.3.dist-info}/RECORD +265 -259
  3. office365/base_item.py +12 -20
  4. office365/communications/onlinemeetings/collection.py +1 -1
  5. office365/communications/onlinemeetings/online_meeting.py +20 -35
  6. office365/communications/presences/presence.py +18 -7
  7. office365/delta_collection.py +10 -1
  8. office365/delta_path.py +1 -1
  9. office365/directory/administrative_unit.py +6 -7
  10. office365/directory/applications/application.py +24 -18
  11. office365/directory/applications/roles/assignment.py +13 -1
  12. office365/directory/applications/roles/collection.py +13 -0
  13. office365/directory/applications/roles/role.py +6 -1
  14. office365/directory/audit/directory.py +8 -7
  15. office365/directory/audit/log_root.py +3 -0
  16. office365/directory/audit/signins/signin.py +19 -29
  17. office365/directory/authentication/authentication.py +1 -0
  18. office365/directory/authentication/methods/details.py +8 -6
  19. office365/directory/authentication/methods/phone.py +3 -1
  20. office365/directory/extensions/extension_property.py +7 -9
  21. office365/directory/groups/collection.py +10 -3
  22. office365/directory/groups/group.py +19 -19
  23. office365/directory/groups/lifecycle_policy.py +8 -7
  24. office365/directory/identities/provider.py +5 -6
  25. office365/directory/insights/usage_details.py +8 -3
  26. office365/directory/internal/paths/me.py +1 -1
  27. office365/directory/invitations/collection.py +1 -1
  28. office365/directory/invitations/invitation.py +6 -6
  29. office365/directory/object_collection.py +2 -3
  30. office365/directory/permissions/email_identity.py +7 -0
  31. office365/directory/permissions/grants/resource_specific.py +10 -9
  32. office365/directory/permissions/identity.py +3 -0
  33. office365/directory/permissions/identity_set.py +3 -0
  34. office365/directory/policies/base.py +4 -4
  35. office365/directory/policies/root.py +6 -4
  36. office365/directory/protection/information.py +3 -3
  37. office365/directory/rolemanagement/application.py +2 -0
  38. office365/directory/rolemanagement/role.py +11 -10
  39. office365/directory/rolemanagement/template.py +9 -8
  40. office365/directory/rolemanagement/unified_role_assignment.py +5 -4
  41. office365/directory/rolemanagement/unified_role_definition.py +6 -4
  42. office365/directory/security/security.py +3 -0
  43. office365/directory/serviceprincipals/collection.py +20 -4
  44. office365/directory/serviceprincipals/service_principal.py +79 -12
  45. office365/directory/users/activities/activity.py +5 -4
  46. office365/directory/users/user.py +29 -34
  47. office365/entity.py +2 -2
  48. office365/entity_collection.py +12 -5
  49. office365/graph_client.py +90 -8
  50. office365/intune/audit/event.py +4 -3
  51. office365/intune/devices/enrollment/configuration.py +6 -4
  52. office365/intune/devices/managed.py +9 -12
  53. office365/onedrive/analytics/item_activity_stat.py +4 -3
  54. office365/onedrive/columns/column_link.py +4 -4
  55. office365/onedrive/columns/definition.py +29 -32
  56. office365/onedrive/columns/definition_collection.py +1 -1
  57. office365/onedrive/contenttypes/content_type.py +16 -18
  58. office365/onedrive/documentsets/version.py +7 -3
  59. office365/onedrive/driveitems/driveItem.py +48 -49
  60. office365/onedrive/drives/drive.py +7 -2
  61. office365/onedrive/internal/paths/children.py +2 -2
  62. office365/onedrive/internal/paths/root.py +1 -1
  63. office365/onedrive/internal/paths/shared.py +1 -1
  64. office365/onedrive/internal/paths/site.py +3 -3
  65. office365/onedrive/internal/paths/url.py +2 -2
  66. office365/onedrive/listitems/list_item.py +2 -0
  67. office365/onedrive/lists/list.py +7 -4
  68. office365/onedrive/permissions/collection.py +28 -7
  69. office365/onedrive/permissions/permission.py +5 -7
  70. office365/onedrive/permissions/sharing_link.py +1 -1
  71. office365/onedrive/sharepoint.py +1 -0
  72. office365/onedrive/shares/collection.py +2 -5
  73. office365/onedrive/shares/drive_item.py +4 -0
  74. office365/onedrive/sites/site.py +6 -0
  75. office365/onedrive/termstore/groups/collection.py +3 -8
  76. office365/onedrive/termstore/groups/group.py +8 -0
  77. office365/onedrive/termstore/sets/collection.py +2 -6
  78. office365/onedrive/termstore/sets/name.py +5 -0
  79. office365/onedrive/termstore/sets/set.py +7 -0
  80. office365/onedrive/termstore/store.py +10 -13
  81. office365/onedrive/versions/drive_item.py +3 -1
  82. office365/onedrive/workbooks/ranges/range.py +9 -13
  83. office365/onedrive/workbooks/ranges/view.py +1 -0
  84. office365/onedrive/workbooks/tables/rows/row.py +3 -0
  85. office365/onedrive/workbooks/tables/table.py +7 -4
  86. office365/onedrive/workbooks/worksheets/worksheet.py +12 -4
  87. office365/onenote/entity_hierarchy_model.py +4 -0
  88. office365/onenote/internal/multipart_page_query.py +4 -5
  89. office365/onenote/notebooks/notebook.py +4 -0
  90. office365/onenote/pages/collection.py +3 -2
  91. office365/onenote/resources/resource.py +5 -4
  92. office365/onenote/sectiongroups/section_group.py +10 -7
  93. office365/onenote/sections/section.py +1 -1
  94. office365/outlook/calendar/attendees/base.py +2 -1
  95. office365/outlook/calendar/calendar.py +18 -10
  96. office365/outlook/calendar/events/collection.py +0 -2
  97. office365/outlook/calendar/group.py +7 -8
  98. office365/outlook/calendar/meetingtimes/suggestion.py +8 -4
  99. office365/outlook/calendar/meetingtimes/time_slot.py +3 -0
  100. office365/outlook/calendar/permissions/collection.py +1 -1
  101. office365/outlook/calendar/rooms/__init__.py +0 -0
  102. office365/outlook/calendar/rooms/list.py +27 -0
  103. office365/outlook/calendar/rooms/room.py +8 -0
  104. office365/outlook/calendar/schedule/information.py +0 -1
  105. office365/outlook/contacts/collection.py +0 -8
  106. office365/outlook/contacts/contact.py +14 -14
  107. office365/outlook/contacts/folder.py +3 -0
  108. office365/outlook/mail/attachments/attachment.py +31 -31
  109. office365/outlook/mail/attachments/collection.py +34 -6
  110. office365/outlook/mail/conversation.py +6 -4
  111. office365/outlook/mail/folders/collection.py +0 -7
  112. office365/outlook/mail/folders/folder.py +50 -18
  113. office365/outlook/mail/messages/collection.py +0 -1
  114. office365/outlook/mail/messages/message.py +58 -68
  115. office365/outlook/mail/physical_address.py +11 -5
  116. office365/outlook/mail/recipient.py +3 -1
  117. office365/outlook/mail/recurrence_range.py +14 -6
  118. office365/outlook/user.py +1 -0
  119. office365/planner/planner.py +9 -12
  120. office365/planner/plans/collection.py +17 -18
  121. office365/planner/plans/container.py +11 -0
  122. office365/planner/plans/plan.py +21 -10
  123. office365/runtime/auth/authentication_context.py +3 -3
  124. office365/runtime/auth/providers/acs_token_provider.py +7 -9
  125. office365/runtime/auth/providers/saml_token_provider.py +5 -2
  126. office365/runtime/client_object.py +6 -15
  127. office365/runtime/client_object_collection.py +36 -35
  128. office365/runtime/client_result.py +6 -7
  129. office365/runtime/client_runtime_context.py +10 -16
  130. office365/runtime/client_value_collection.py +3 -10
  131. office365/runtime/compat.py +2 -0
  132. office365/runtime/odata/query_options.py +1 -3
  133. office365/runtime/odata/reader.py +1 -1
  134. office365/runtime/odata/request.py +2 -4
  135. office365/runtime/odata/type.py +17 -0
  136. office365/runtime/odata/v4/upload_session_request.py +27 -30
  137. office365/runtime/paths/appid.py +1 -1
  138. office365/runtime/{odata/url_builder.py → paths/builder.py} +24 -9
  139. office365/runtime/paths/item.py +3 -1
  140. office365/runtime/paths/resource_path.py +12 -16
  141. office365/runtime/paths/service_operation.py +8 -7
  142. office365/runtime/paths/v3/__init__.py +0 -0
  143. office365/runtime/paths/{key.py → v3/entity.py} +5 -5
  144. office365/runtime/paths/v4/__init__.py +0 -0
  145. office365/runtime/paths/{entity.py → v4/entity.py} +13 -11
  146. office365/runtime/queries/function.py +1 -1
  147. office365/runtime/types/event_handler.py +1 -3
  148. office365/search/entity.py +15 -8
  149. office365/search/external/external.py +1 -0
  150. office365/search/sort_property.py +3 -0
  151. office365/sharepoint/attachments/attachment.py +3 -1
  152. office365/sharepoint/attachments/collection.py +3 -0
  153. office365/sharepoint/changes/change.py +12 -1
  154. office365/sharepoint/changes/collection.py +1 -1
  155. office365/sharepoint/changes/list.py +3 -0
  156. office365/sharepoint/changes/token.py +4 -0
  157. office365/sharepoint/changes/type.py +23 -23
  158. office365/sharepoint/changes/web.py +7 -3
  159. office365/sharepoint/client_context.py +21 -18
  160. office365/sharepoint/clientsidecomponent/hostedapps/manager.py +3 -3
  161. office365/sharepoint/contenttypes/content_type.py +47 -56
  162. office365/sharepoint/contenttypes/content_type_id.py +1 -1
  163. office365/sharepoint/documentmanagement/document_id.py +2 -2
  164. office365/sharepoint/documentmanagement/document_set.py +6 -7
  165. office365/sharepoint/entity_collection.py +9 -0
  166. office365/sharepoint/features/feature.py +6 -8
  167. office365/sharepoint/fields/collection.py +6 -5
  168. office365/sharepoint/fields/field.py +28 -46
  169. office365/sharepoint/fields/related_field_collection.py +1 -1
  170. office365/sharepoint/fields/user_value.py +3 -3
  171. office365/sharepoint/files/checked_out_file.py +4 -2
  172. office365/sharepoint/files/checked_out_file_collection.py +1 -1
  173. office365/sharepoint/files/collection.py +84 -14
  174. office365/sharepoint/files/file.py +118 -110
  175. office365/sharepoint/files/versions/collection.py +5 -3
  176. office365/sharepoint/files/versions/event.py +6 -3
  177. office365/sharepoint/files/versions/version.py +31 -18
  178. office365/sharepoint/folders/collection.py +5 -10
  179. office365/sharepoint/folders/folder.py +41 -24
  180. office365/sharepoint/forms/collection.py +1 -1
  181. office365/sharepoint/forms/form.py +4 -4
  182. office365/sharepoint/internal/paths/static_operation.py +9 -0
  183. office365/sharepoint/internal/paths/web.py +20 -0
  184. office365/sharepoint/listitems/collection.py +4 -0
  185. office365/sharepoint/listitems/listitem.py +37 -38
  186. office365/sharepoint/listitems/versions/collection.py +1 -1
  187. office365/sharepoint/listitems/versions/version.py +18 -11
  188. office365/sharepoint/lists/collection.py +1 -2
  189. office365/sharepoint/lists/list.py +106 -153
  190. office365/sharepoint/marketplace/app_metadata_collection.py +3 -1
  191. office365/sharepoint/navigation/node.py +16 -15
  192. office365/sharepoint/navigation/node_collection.py +9 -3
  193. office365/sharepoint/permissions/base_permissions.py +11 -6
  194. office365/sharepoint/permissions/roles/assignments/collection.py +8 -12
  195. office365/sharepoint/permissions/roles/definitions/definition.py +3 -1
  196. office365/sharepoint/permissions/securable_object.py +38 -31
  197. office365/sharepoint/portal/groups/service.py +12 -16
  198. office365/sharepoint/portal/groups/site_manager.py +0 -1
  199. office365/sharepoint/principal/groups/group.py +24 -30
  200. office365/sharepoint/principal/principal.py +21 -19
  201. office365/sharepoint/principal/users/collection.py +5 -0
  202. office365/sharepoint/principal/users/user.py +20 -26
  203. office365/sharepoint/publishing/pages/collection.py +1 -4
  204. office365/sharepoint/publishing/pages/metadata.py +38 -51
  205. office365/sharepoint/publishing/pages/metadata_collection.py +5 -2
  206. office365/sharepoint/publishing/pages/page.py +12 -21
  207. office365/sharepoint/publishing/pages/reposts/repost.py +5 -9
  208. office365/sharepoint/publishing/pages/service.py +36 -49
  209. office365/sharepoint/pushnotifications/collection.py +3 -1
  210. office365/sharepoint/recyclebin/item.py +11 -9
  211. office365/sharepoint/recyclebin/item_collection.py +1 -1
  212. office365/sharepoint/search/service.py +8 -6
  213. office365/sharepoint/sharing/links/info.py +5 -2
  214. office365/sharepoint/sharing/links/share_response.py +3 -0
  215. office365/sharepoint/sharing/links/share_settings.py +3 -0
  216. office365/sharepoint/sharing/object_sharing_information.py +25 -19
  217. office365/sharepoint/sharing/object_sharing_information_user.py +10 -19
  218. office365/sharepoint/sharing/result.py +18 -41
  219. office365/sharepoint/sharing/role.py +20 -0
  220. office365/sharepoint/sharing/role_type.py +1 -0
  221. office365/sharepoint/sharing/user_sharing_result.py +12 -0
  222. office365/sharepoint/sites/language.py +6 -0
  223. office365/sharepoint/sites/language_collection.py +3 -0
  224. office365/sharepoint/sites/site.py +65 -86
  225. office365/sharepoint/storagemetrics/storage_metrics.py +5 -6
  226. office365/sharepoint/taxonomy/item.py +11 -10
  227. office365/sharepoint/taxonomy/stores/store.py +8 -8
  228. office365/sharepoint/taxonomy/terms/label.py +3 -0
  229. office365/sharepoint/taxonomy/terms/term.py +31 -0
  230. office365/sharepoint/tenant/administration/collaboration/insights_overview.py +10 -0
  231. office365/sharepoint/tenant/administration/hubsites/collection.py +1 -2
  232. office365/sharepoint/tenant/administration/hubsites/hub_site.py +20 -24
  233. office365/sharepoint/tenant/administration/internal/permission_grant.py +7 -0
  234. office365/sharepoint/tenant/administration/sites/properties.py +55 -44
  235. office365/sharepoint/tenant/administration/tenant.py +69 -69
  236. office365/sharepoint/types/resource_path.py +2 -2
  237. office365/sharepoint/ui/applicationpages/peoplepicker/query_parameters.py +1 -1
  238. office365/sharepoint/usercustomactions/collection.py +1 -2
  239. office365/sharepoint/userprofiles/my_site_links.py +4 -4
  240. office365/sharepoint/userprofiles/people_manager.py +1 -3
  241. office365/sharepoint/userprofiles/user_profile.py +9 -11
  242. office365/sharepoint/utilities/principal_info.py +12 -0
  243. office365/sharepoint/viva/employee_engagement.py +1 -1
  244. office365/sharepoint/webparts/definition_collection.py +1 -1
  245. office365/sharepoint/webs/collection.py +8 -0
  246. office365/sharepoint/webs/template_collection.py +3 -5
  247. office365/sharepoint/webs/web.py +75 -95
  248. office365/subscriptions/collection.py +1 -1
  249. office365/subscriptions/subscription.py +13 -11
  250. office365/teams/apps/app.py +1 -0
  251. office365/teams/channels/channel.py +1 -3
  252. office365/teams/collection.py +12 -16
  253. office365/teams/info.py +7 -4
  254. office365/teams/members/conversation_collection.py +1 -3
  255. office365/teams/operations/async_operation.py +3 -5
  256. office365/teams/schedule/groups/group.py +3 -0
  257. office365/teams/team.py +18 -20
  258. office365/todo/attachments/base.py +7 -9
  259. office365/todo/linked_resource.py +6 -6
  260. office365/todo/tasks/list.py +1 -0
  261. office365/todo/tasks/task.py +3 -0
  262. office365/onedrive/internal/queries/resumable_file_upload.py +0 -36
  263. office365/outlook/internal/queries/attachment_upload.py +0 -53
  264. office365/runtime/odata/path_builder.py +0 -23
  265. office365/sharepoint/internal/key_value.py +0 -28
  266. office365/sharepoint/internal/queries/create_file.py +0 -20
  267. office365/sharepoint/internal/queries/upload_session.py +0 -103
  268. {Office365_REST_Python_Client-2.5.1.dist-info → Office365_REST_Python_Client-2.5.3.dist-info}/LICENSE +0 -0
  269. {Office365_REST_Python_Client-2.5.1.dist-info → Office365_REST_Python_Client-2.5.3.dist-info}/WHEEL +0 -0
  270. {Office365_REST_Python_Client-2.5.1.dist-info → Office365_REST_Python_Client-2.5.3.dist-info}/top_level.txt +0 -0
  271. /office365/planner/plans/{plan_details.py → details.py} +0 -0
@@ -8,6 +8,7 @@ from office365.runtime.paths.service_operation import ServiceOperationPath
8
8
  from office365.runtime.queries.service_operation import ServiceOperationQuery
9
9
  from office365.sharepoint.audit.audit import Audit
10
10
  from office365.sharepoint.changes.collection import ChangeCollection
11
+ from office365.sharepoint.changes.query import ChangeQuery
11
12
  from office365.sharepoint.changes.token import ChangeToken
12
13
  from office365.sharepoint.compliance.store_proxy import SPPolicyStoreProxy
13
14
  from office365.sharepoint.compliance.tag import ComplianceTag
@@ -108,7 +109,7 @@ class Site(Entity):
108
109
  return ClientContext(url).site
109
110
 
110
111
  def get_available_tags(self):
111
- """"""
112
+ """ """
112
113
  return_type = ClientResult(self.context, ClientValueCollection(ComplianceTag))
113
114
 
114
115
  def _site_loaded():
@@ -129,9 +130,7 @@ class Site(Entity):
129
130
  return return_type
130
131
 
131
132
  def get_site_logo(self):
132
- """
133
- Downloads a site logo
134
- """
133
+ """Downloads a site logo"""
135
134
  return_type = ClientResult(self.context)
136
135
 
137
136
  def _site_loaded():
@@ -142,6 +141,18 @@ class Site(Entity):
142
141
  self.ensure_property("Url", _site_loaded)
143
142
  return return_type
144
143
 
144
+ def get_site_logo_ex(self):
145
+ """Gets site logo image"""
146
+ return_type = ClientResult(self.context)
147
+
148
+ def _site_loaded():
149
+ self.context.group_service.get_group_image(
150
+ group_id=self.group_id, return_type=return_type
151
+ )
152
+
153
+ self.ensure_property("GroupId", _site_loaded)
154
+ return return_type
155
+
145
156
  def set_site_logo(self, relative_logo_url):
146
157
  """Uploads a site logo
147
158
 
@@ -152,9 +163,7 @@ class Site(Entity):
152
163
  return self
153
164
 
154
165
  def is_comm_site(self):
155
- """
156
- Determines whether a site is communication site
157
- """
166
+ """Determines whether a site is communication site"""
158
167
  return_type = ClientResult(self.context) # type: ClientResult[bool]
159
168
 
160
169
  def _site_loaded():
@@ -164,9 +173,7 @@ class Site(Entity):
164
173
  return return_type
165
174
 
166
175
  def is_valid_home_site(self):
167
- """
168
- Determines whether a site is landing site for your intranet.
169
- """
176
+ """Determines whether a site is landing site for your intranet."""
170
177
  return_type = ClientResult(self.context) # type: ClientResult[bool]
171
178
 
172
179
  def _site_loaded():
@@ -176,9 +183,7 @@ class Site(Entity):
176
183
  return return_type
177
184
 
178
185
  def set_as_home_site(self):
179
- """
180
- Sets a site as a landing site for your intranet.
181
- """
186
+ """Sets a site as a landing site for your intranet."""
182
187
  return_type = ClientResult(self.context)
183
188
 
184
189
  def _site_loaded():
@@ -189,12 +194,14 @@ class Site(Entity):
189
194
  self.ensure_property("Url", _site_loaded)
190
195
  return return_type
191
196
 
192
- def get_changes(self, query):
197
+ def get_changes(self, query=None):
193
198
  """Returns the collection of all changes from the change log that have occurred within the scope of the site,
194
199
  based on the specified query.
195
200
 
196
201
  :param office365.sharepoint.changes.query.ChangeQuery query: Specifies which changes to return
197
202
  """
203
+ if query is None:
204
+ query = ChangeQuery(site=True, fetch_limit=100)
198
205
  return_type = ChangeCollection(self.context)
199
206
  payload = {"query": query}
200
207
  qry = ServiceOperationQuery(
@@ -237,7 +244,7 @@ class Site(Entity):
237
244
  def get_web_templates(self, lcid=1033, override_compat_level=0):
238
245
  """
239
246
  Returns the collection of site definitions that are available for creating
240
- Web sites within the site collection.<99>
247
+ Web sites within the site collection.
241
248
 
242
249
  :param int lcid: A 32-bit unsigned integer that specifies the language of the site definitions that are
243
250
  returned from the site collection.
@@ -435,9 +442,7 @@ class Site(Entity):
435
442
  return return_type
436
443
 
437
444
  def unregister_hub_site(self):
438
- """
439
- Disables the hub site feature on a site.
440
- """
445
+ """Disables the hub site feature on a site."""
441
446
  qry = ServiceOperationQuery(self, "UnRegisterHubSite")
442
447
  self.context.add_query(qry)
443
448
  return self
@@ -461,93 +466,80 @@ class Site(Entity):
461
466
 
462
467
  @property
463
468
  def allow_create_declarative_workflow(self):
464
- """
465
- Specifies whether a designer can be used to create declarative workflows on this site collection
466
- :rtype: bool or None
467
- """
469
+ # type: () -> Optional[bool]
470
+ """Specifies whether a designer can be used to create declarative workflows on this site collection"""
468
471
  return self.properties.get("AllowCreateDeclarativeWorkflow", None)
469
472
 
470
473
  @property
471
474
  def allow_designer(self):
475
+ # type: () -> Optional[bool]
472
476
  """
473
477
  Specifies whether a designer can be used on this site collection.
474
478
  See Microsoft.SharePoint.Client.Web.AllowDesignerForCurrentUser, which is the scalar property used
475
479
  to determine the behavior for the current user. The default, if not disabled on the Web application, is "true".
476
- :rtype: bool or None
477
480
  """
478
481
  return self.properties.get("AllowDesigner", None)
479
482
 
480
483
  @property
481
484
  def allowed_external_domains(self):
482
- """
483
- :rtype: bool or None
484
- """
485
+ # type: () -> Optional[bool]
485
486
  return self.properties.get("AllowedExternalDomains", None)
486
487
 
487
488
  @property
488
489
  def allow_master_page_editing(self):
490
+ # type: () -> Optional[bool]
489
491
  """
490
492
  Specifies whether master page editing is allowed on this site collection.
491
493
  See Web.AllowMasterPageEditingForCurrentUser, which is the scalar property used to
492
494
  determine the behavior for the current user. The default, if not disabled on the Web application, is "false".
493
- :rtype: bool or None
494
495
  """
495
496
  return self.properties.get("AllowMasterPageEditing", None)
496
497
 
497
498
  @property
498
499
  def allow_revert_from_template(self):
500
+ # type: () -> Optional[bool]
499
501
  """
500
502
  Specifies whether this site collection can be reverted to its base template.
501
503
  See Web.AllowRevertFromTemplateForCurrentUser, which is the scalar property used to determine the behavior
502
504
  for the current user. The default, if not disabled on the Web application, is "false".
503
- :rtype: bool or None
504
505
  """
505
506
  return self.properties.get("AllowRevertFromTemplate", None)
506
507
 
507
508
  @property
508
509
  def audit(self):
509
- """
510
- Enables auditing of how site collection is accessed, changed, and used.
511
- """
510
+ """Enables auditing of how site collection is accessed, changed, and used."""
512
511
  return self.properties.get(
513
512
  "Audit", Audit(self.context, ResourcePath("Audit", self.resource_path))
514
513
  )
515
514
 
516
515
  @property
517
516
  def can_upgrade(self):
517
+ # type: () -> Optional[bool]
518
518
  """
519
519
  Specifies whether this site collection is in an implementation-specific valid state for site collection upgrade,
520
520
  "true" if it is; otherwise, "false".
521
-
522
- :rtype: bool
523
521
  """
524
522
  return self.properties.get("CanUpgrade", None)
525
523
 
526
524
  @property
527
525
  def classification(self):
528
- """
529
- Gets the classification of this site.
530
-
531
- :rtype: str or None
532
- """
526
+ # type: () -> Optional[str]
527
+ """Gets the classification of this site."""
533
528
  return self.properties.get("Classification", None)
534
529
 
535
530
  @property
536
531
  def compatibility_level(self):
532
+ # type: () -> Optional[str]
537
533
  """
538
534
  Specifies the compatibility level of the site collection for the purpose of major version level compatibility
539
535
  checks
540
-
541
- :rtype: str
542
536
  """
543
537
  return self.properties.get("CompatibilityLevel", None)
544
538
 
545
539
  @property
546
540
  def comments_on_site_pages_disabled(self):
547
- """
548
- Indicates whether comments on site pages are disabled or not.
549
- :rtype: bool
550
- """
541
+ # type: () -> Optional[bool]
542
+ """Indicates whether comments on site pages are disabled or not."""
551
543
  return self.properties.get("CommentsOnSitePagesDisabled", None)
552
544
 
553
545
  @property
@@ -557,17 +549,14 @@ class Site(Entity):
557
549
 
558
550
  @property
559
551
  def group_id(self):
560
- """
561
- :rtype: str or None
562
- """
552
+ # type: () -> Optional[str]
553
+ """Group identifier"""
563
554
  return self.properties.get("GroupId", None)
564
555
 
565
556
  @property
566
557
  def lock_issue(self):
567
- """
568
- Specifies the comment that is used when a site collection is locked
569
- :rtype: str or None
570
- """
558
+ # type: () -> Optional[str]
559
+ """Specifies the comment that is used when a site collection is locked"""
571
560
  return self.properties.get("LockIssue", None)
572
561
 
573
562
  @property
@@ -580,6 +569,7 @@ class Site(Entity):
580
569
 
581
570
  @property
582
571
  def owner(self):
572
+ # type: () -> User
583
573
  """Gets or sets the owner of the site collection. (Read-only in sandboxed solutions.)"""
584
574
  return self.properties.get(
585
575
  "Owner", User(self.context, ResourcePath("Owner", self.resource_path))
@@ -587,54 +577,46 @@ class Site(Entity):
587
577
 
588
578
  @property
589
579
  def read_only(self):
580
+ # type: () -> Optional[bool]
590
581
  """
591
582
  Gets a Boolean value that specifies whether the site collection is read-only,
592
583
  locked, and unavailable for write access.
593
-
594
- :rtype: bool
595
584
  """
596
585
  return self.properties.get("ReadOnly", None)
597
586
 
598
587
  @property
599
588
  def required_designer_version(self):
589
+ # type: () -> Optional[str]
600
590
  """
601
591
  Specifies the required minimum version of the designer that can be used on this site collection.
602
592
  The default, if not disabled on the Web application, is "15.0.0.0".
603
-
604
- :rtype: str
605
593
  """
606
594
  return self.properties.get("RequiredDesignerVersion", None)
607
595
 
608
596
  @property
609
597
  def url(self):
610
598
  # type: () -> Optional[str]
611
- """
612
- Specifies the full URL of the site (2), including host name, port number and path
613
- """
599
+ """Specifies the full URL of the site (2), including host name, port number and path"""
614
600
  return self.properties.get("Url", None)
615
601
 
616
602
  @property
617
603
  def server_relative_url(self):
618
- """
619
- Specifies the server-relative URL of the top-level site in the site collection.
620
- :rtype: str
621
- """
604
+ # type: () -> Optional[str]
605
+ """Specifies the server-relative URL of the top-level site in the site collection."""
622
606
  return self.properties.get("ServerRelativeUrl", None)
623
607
 
624
608
  @property
625
609
  def share_by_email_enabled(self):
610
+ # type: () -> Optional[bool]
626
611
  """
627
612
  When true, users will be able to grant permissions to guests for resources within the site collection.
628
- :rtype: bool or none
629
613
  """
630
614
  return self.properties.get("ShareByEmailEnabled", None)
631
615
 
632
616
  @property
633
617
  def status_bar_text(self):
634
- """
635
- Gets or sets the status bar message text for this site.
636
- :rtype: str or none
637
- """
618
+ # type: () -> Optional[str]
619
+ """Gets or sets the status bar message text for this site."""
638
620
  return self.properties.get("StatusBarText", None)
639
621
 
640
622
  @property
@@ -654,40 +636,37 @@ class Site(Entity):
654
636
 
655
637
  @property
656
638
  def id(self):
639
+ # type: () -> Optional[str]
657
640
  """
658
641
  Specifies the GUID that identifies the site collection.
659
- :rtype: str
660
642
  """
661
643
  return self.properties.get("Id", None)
662
644
 
663
645
  @property
664
646
  def hub_site_id(self):
665
- """
666
- :rtype: str
667
- """
647
+ # type: () -> Optional[str]
648
+ """ """
668
649
  return self.properties.get("HubSiteId", None)
669
650
 
670
651
  @property
671
652
  def is_hub_site(self):
653
+ # type: () -> Optional[bool]
672
654
  """
673
655
  Returns whether the specified site is a hub site
674
- :rtype: bool
675
656
  """
676
657
  return self.properties.get("IsHubSite", None)
677
658
 
678
659
  @property
679
660
  def server_relative_path(self):
680
- """Gets the server-relative Path of the Site.
681
- :rtype: SPResPath or None
682
- """
661
+ # type: () -> Optional[SPResPath]
662
+ """Gets the server-relative Path of the Site."""
683
663
  return self.properties.get("ServerRelativePath", SPResPath())
684
664
 
685
665
  @property
686
666
  def status_bar_link(self):
667
+ # type: () -> Optional[str]
687
668
  """
688
669
  Gets the status bar message link target for this site.
689
-
690
- :rtype: str or None
691
670
  """
692
671
  return self.properties.get("StatusBarLink", None)
693
672
 
@@ -711,6 +690,7 @@ class Site(Entity):
711
690
 
712
691
  @property
713
692
  def features(self):
693
+ # type: () -> FeatureCollection
714
694
  """Get features"""
715
695
  return self.properties.get(
716
696
  "Features",
@@ -721,19 +701,17 @@ class Site(Entity):
721
701
 
722
702
  @property
723
703
  def max_items_per_throttled_operation(self):
704
+ # type: () -> Optional[int]
724
705
  """
725
706
  Specifies the maximum number of list items allowed to be returned for each retrieve request before throttling
726
707
  occurs. If throttling occurs, list items MUST NOT be returned.
727
- :rtype: int or None
728
708
  """
729
709
  return self.properties.get("MaxItemsPerThrottledOperation", None)
730
710
 
731
711
  @property
732
712
  def needs_b2b_upgrade(self):
733
- """
734
- Specifies whether the site needs a Build-to-Build upgrade.
735
- :rtype: bool or None
736
- """
713
+ # type: () -> Optional[bool]
714
+ """Specifies whether the site needs a Build-to-Build upgrade."""
737
715
  return self.properties.get("NeedsB2BUpgrade", None)
738
716
 
739
717
  @property
@@ -750,19 +728,19 @@ class Site(Entity):
750
728
 
751
729
  @property
752
730
  def show_url_structure(self):
731
+ # type: () -> Optional[bool]
753
732
  """
754
733
  Specifies whether the URL structure of this site collection is viewable.
755
734
  See Web.ShowURLStructureForCurrentUser, which is the scalar property used to determine the behavior for the
756
735
  current user. The default, if not disabled on the Web application, is "false".
757
- :rtype: bool or None
758
736
  """
759
737
  return self.properties.get("ShowUrlStructure", None)
760
738
 
761
739
  @property
762
740
  def ui_version_configuration_enabled(self):
741
+ # type: () -> Optional[bool]
763
742
  """
764
743
  Specifies whether the visual upgrade UI for this site collection is displayed.
765
- :rtype: bool or None
766
744
  """
767
745
  return self.properties.get("UIVersionConfigurationEnabled", None)
768
746
 
@@ -785,15 +763,16 @@ class Site(Entity):
785
763
 
786
764
  @property
787
765
  def upgrade_scheduled(self):
766
+ # type: () -> Optional[bool]
788
767
  """
789
768
  Specifies whether the upgrade has been scheduled. It can only be set to false by a farm administrator.
790
769
  To set it to true, set the UpgradeScheduledDate to a future time.
791
- :rtype: bool or None
792
770
  """
793
771
  return self.properties.get("UpgradeScheduled", None)
794
772
 
795
773
  @property
796
774
  def upgrade_scheduled_date(self):
775
+ # type: () -> Optional[datetime.datetime]
797
776
  """
798
777
  Specifies the upgrade scheduled date in UTC (Coordinated Universal Time). Only the Date part is used.
799
778
  If UpgradeScheduled is false, returns SqlDateTime.MinValue.
@@ -802,9 +781,9 @@ class Site(Entity):
802
781
 
803
782
  @property
804
783
  def upgrading(self):
784
+ # type: () -> Optional[bool]
805
785
  """
806
786
  Specifies whether the user will be able to share links to the documents that can be accessed without signing in.
807
- :rtype: bool or None
808
787
  """
809
788
  return self.properties.get("Upgrading", None)
810
789
 
@@ -1,4 +1,5 @@
1
1
  import datetime
2
+ from typing import Optional
2
3
 
3
4
  from office365.sharepoint.entity import Entity
4
5
 
@@ -8,37 +9,35 @@ class StorageMetrics(Entity):
8
9
 
9
10
  @property
10
11
  def last_modified(self):
12
+ # type: () -> Optional[datetime.datetime]
11
13
  """
12
14
  Last modified date for all the items under the corresponding folder.
13
- :rtype: int or None
14
15
  """
15
16
  return self.properties.get("LastModified", datetime.datetime.min)
16
17
 
17
18
  @property
18
19
  def total_file_count(self):
20
+ # type: () -> Optional[int]
19
21
  """
20
22
  Aggregate number of files within the corresponding folder and its sub-folders.
21
23
  Excludes versions, list item attachments, and non-customized documents.
22
- :rtype: int or None
23
24
  """
24
25
  return self.properties.get("TotalFileCount", None)
25
26
 
26
27
  @property
27
28
  def total_file_stream_size(self):
29
+ # type: () -> Optional[int]
28
30
  """
29
31
  Aggregate stream size in bytes for all files under the corresponding folder and its sub-folders.
30
32
  Excludes version, metadata, list item attachment, and non-customized document sizes.
31
-
32
- :rtype: int or None
33
33
  """
34
34
  return self.properties.get("TotalFileStreamSize", None)
35
35
 
36
36
  @property
37
37
  def total_size(self):
38
+ # type: () -> Optional[int]
38
39
  """
39
40
  Aggregate of total sizes in bytes for all items under the corresponding folder and its sub-folders.
40
41
  Total size for a file/folder includes stream, version, and metadata sizes.
41
-
42
- :rtype: int or None
43
42
  """
44
43
  return self.properties.get("TotalSize", None)
@@ -1,3 +1,5 @@
1
+ from typing import Optional
2
+
1
3
  from office365.runtime.client_object import ClientObject
2
4
  from office365.runtime.paths.resource_path import ResourcePath
3
5
 
@@ -9,29 +11,28 @@ class TaxonomyItem(ClientObject):
9
11
 
10
12
  @property
11
13
  def id(self):
12
- """Gets the Id of the current TaxonomyItem
13
-
14
- :rtype: str
15
- """
14
+ # type: () -> Optional[str]
15
+ """Gets the Id of the current TaxonomyItem"""
16
16
  return self.properties.get("id", None)
17
17
 
18
18
  @property
19
19
  def name(self):
20
- """Gets the name of the current TaxonomyItem object
21
-
22
- :rtype: str
23
- """
20
+ # type: () -> Optional[str]
21
+ """Gets the name of the current TaxonomyItem object"""
24
22
  return self.properties.get("name", None)
25
23
 
26
24
  @property
27
25
  def property_ref_name(self):
26
+ # type: () -> str
28
27
  return "id"
29
28
 
30
29
  def set_property(self, name, value, persist_changes=True):
31
30
  super(TaxonomyItem, self).set_property(name, value, persist_changes)
32
- if self._resource_path is None:
33
- if name == self.property_ref_name:
31
+ if name == self.property_ref_name:
32
+ if self._resource_path is None:
34
33
  self._resource_path = ResourcePath(
35
34
  value, self.parent_collection.resource_path
36
35
  )
36
+ else:
37
+ self._resource_path.patch(value)
37
38
  return self
@@ -1,3 +1,5 @@
1
+ from typing import Optional
2
+
1
3
  from office365.runtime.paths.resource_path import ResourcePath
2
4
  from office365.runtime.queries.function import FunctionQuery
3
5
  from office365.runtime.types.collections import StringCollection
@@ -39,7 +41,9 @@ class TermStore(TaxonomyItem):
39
41
  :param str or None parent_term_id:
40
42
  :param str or None language_tag:
41
43
  """
42
- return_type = TaxonomyItemCollection(self.context, Term, self.resource_path)
44
+ return_type = TaxonomyItemCollection[Term](
45
+ self.context, Term, self.resource_path
46
+ )
43
47
  params = {
44
48
  "label": label,
45
49
  "setId": set_id,
@@ -52,17 +56,13 @@ class TermStore(TaxonomyItem):
52
56
 
53
57
  @property
54
58
  def default_language_tag(self):
55
- """
56
- Gets or sets the LCID of the default working language.
57
- :rtype: str
58
- """
59
+ # type: () -> Optional[str]
60
+ """Gets or sets the LCID of the default working language."""
59
61
  return self.properties.get("defaultLanguageTag", None)
60
62
 
61
63
  @property
62
64
  def language_tags(self):
63
- """
64
- Gets an integer collection of LCIDs.
65
- """
65
+ """Gets an integer collection of LCIDs."""
66
66
  return self.properties.get("languageTags", StringCollection())
67
67
 
68
68
  @property
@@ -16,3 +16,6 @@ class Label(ClientValue):
16
16
 
17
17
  def __str__(self):
18
18
  return self.name
19
+
20
+ def __repr__(self):
21
+ return "{0}:{1}".format(self.languageTag, self.name)
@@ -1,4 +1,7 @@
1
+ import datetime
2
+
1
3
  from office365.runtime.client_value_collection import ClientValueCollection
4
+ from office365.runtime.paths.resource_path import ResourcePath
2
5
  from office365.sharepoint.taxonomy.item import TaxonomyItem
3
6
  from office365.sharepoint.taxonomy.terms.label import Label
4
7
 
@@ -6,7 +9,35 @@ from office365.sharepoint.taxonomy.terms.label import Label
6
9
  class Term(TaxonomyItem):
7
10
  """Represents a Term or a Keyword in a managed metadata hierarchy."""
8
11
 
12
+ def __repr__(self):
13
+ return "{0}".format(self.id)
14
+
15
+ @property
16
+ def is_deprecated(self):
17
+ # type: () -> bool
18
+ """"""
19
+ return self.properties.get("isDeprecated", None)
20
+
21
+ @property
22
+ def children_count(self):
23
+ # type: () -> int
24
+ """"""
25
+ return self.properties.get("childrenCount", None)
26
+
27
+ @property
28
+ def created_datetime(self):
29
+ # type: () -> datetime.datetime
30
+ """"""
31
+ return self.properties.get("createdDateTime", None)
32
+
9
33
  @property
10
34
  def labels(self):
11
35
  """Gets a collection of Label objects for the current Term object."""
12
36
  return self.properties.get("labels", ClientValueCollection(Label))
37
+
38
+ @property
39
+ def parent(self):
40
+ return self.properties.get(
41
+ "parent",
42
+ Term(self.context, ResourcePath("parent", self.resource_path)),
43
+ )
@@ -0,0 +1,10 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class CollaborationInsightsOverview(ClientValue):
5
+ """"""
6
+
7
+ @property
8
+ def entity_type_name(self):
9
+ # type: () -> str
10
+ return "Microsoft.SharePoint.Administration.TenantAdmin.CollaborationInsightsOverview"
@@ -5,7 +5,7 @@ from office365.sharepoint.entity_collection import EntityCollection
5
5
  from office365.sharepoint.tenant.administration.hubsites.hub_site import HubSite
6
6
 
7
7
 
8
- class HubSiteCollection(EntityCollection):
8
+ class HubSiteCollection(EntityCollection[HubSite]):
9
9
  """Represents a collection of HubSite resources."""
10
10
 
11
11
  def __init__(self, context, resource_path=None):
@@ -13,7 +13,6 @@ class HubSiteCollection(EntityCollection):
13
13
 
14
14
  def get_by_id(self, _id):
15
15
  """Retrieve Hub site by id
16
-
17
16
  :type _id: str
18
17
  """
19
18
  return HubSite(