Office365-REST-Python-Client 2.4.3__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 (255) hide show
  1. {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/METADATA +8 -7
  2. {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/RECORD +254 -162
  3. office365/base_item.py +26 -4
  4. office365/communications/calls/invitation_participant_info.py +17 -1
  5. office365/communications/calls/options.py +9 -0
  6. office365/communications/onlinemeetings/provider_type.py +3 -0
  7. office365/communications/presences/presence.py +14 -0
  8. office365/communications/presences/status_message.py +12 -0
  9. office365/directory/audit/signins/activity.py +31 -0
  10. office365/directory/audit/signins/location.py +17 -0
  11. office365/directory/audit/signins/signin.py +25 -0
  12. office365/directory/authentication/authentication.py +9 -0
  13. office365/directory/authentication/methods/details.py +18 -0
  14. office365/directory/authentication/methods/email.py +16 -0
  15. office365/directory/authentication/methods/root.py +10 -0
  16. office365/directory/certificates/authority.py +6 -1
  17. office365/directory/extensions/extended_property.py +8 -1
  18. office365/directory/extensions/extension_property.py +0 -3
  19. office365/directory/extensions/open_type.py +8 -0
  20. office365/directory/groups/group.py +2 -1
  21. office365/directory/identities/governance.py +2 -0
  22. office365/directory/insights/shared.py +15 -1
  23. office365/directory/insights/usage_details.py +16 -0
  24. office365/directory/insights/used.py +7 -0
  25. office365/directory/licenses/assigned_plan.py +14 -2
  26. office365/directory/licenses/service_plan_info.py +4 -0
  27. office365/directory/licenses/subscribed_sku.py +26 -0
  28. office365/directory/licenses/units_detail.py +11 -0
  29. office365/directory/permissions/email_identity.py +5 -0
  30. office365/directory/permissions/grants/condition_set.py +26 -0
  31. office365/directory/permissions/grants/resource_specific.py +21 -0
  32. office365/directory/policies/authentication_flows.py +9 -0
  33. office365/directory/policies/authentication_strength.py +10 -0
  34. office365/directory/policies/authorization.py +8 -0
  35. office365/directory/policies/cross_tenant_access.py +5 -0
  36. office365/directory/policies/root.py +35 -2
  37. office365/directory/rolemanagement/template.py +8 -0
  38. office365/directory/rolemanagement/unified_role_assignment.py +37 -0
  39. office365/directory/security/alerts/alert.py +21 -0
  40. office365/directory/security/alerts/history_state.py +5 -0
  41. office365/directory/security/attacksimulations/automation.py +21 -0
  42. office365/directory/security/attacksimulations/automation_run.py +5 -0
  43. office365/directory/security/attacksimulations/repeat_offender.py +6 -0
  44. office365/directory/security/attacksimulations/root.py +26 -0
  45. office365/directory/security/attacksimulations/simulation.py +17 -0
  46. office365/directory/security/cases/ediscovery.py +6 -0
  47. office365/directory/security/cases/root.py +22 -0
  48. office365/directory/security/incidents/incident.py +67 -0
  49. office365/directory/security/security.py +10 -1
  50. office365/directory/serviceprincipals/service_principal.py +88 -3
  51. office365/directory/synchronization/job.py +16 -0
  52. office365/directory/synchronization/progress.py +5 -0
  53. office365/directory/synchronization/status.py +13 -0
  54. office365/directory/synchronization/synchronization.py +24 -0
  55. office365/directory/tenant_information.py +12 -0
  56. office365/directory/users/password_profile.py +15 -3
  57. office365/directory/users/user.py +136 -8
  58. office365/graph_client.py +28 -1
  59. office365/intune/audit/actor.py +5 -0
  60. office365/intune/audit/event.py +21 -25
  61. office365/intune/audit/event_collection.py +26 -0
  62. office365/intune/audit/property.py +5 -0
  63. office365/intune/audit/resource.py +11 -0
  64. office365/intune/brand.py +6 -0
  65. office365/intune/devices/compliance/__init__.py +0 -0
  66. office365/intune/devices/compliance/policy.py +6 -0
  67. office365/intune/devices/compliance/policy_state.py +5 -0
  68. office365/intune/devices/enrollment/__init__.py +0 -0
  69. office365/intune/devices/enrollment/configuration.py +25 -0
  70. office365/intune/devices/enrollment/configuration_assignment.py +5 -0
  71. office365/intune/devices/enrollment/limit_configuration.py +5 -0
  72. office365/intune/devices/managed.py +28 -3
  73. office365/intune/devices/management/__init__.py +0 -0
  74. office365/intune/devices/management/management.py +69 -0
  75. office365/intune/devices/management/reports/__init__.py +0 -0
  76. office365/intune/devices/management/reports/reports.py +5 -0
  77. office365/intune/devices/management/settings.py +18 -0
  78. office365/intune/organizations/branding.py +15 -0
  79. office365/intune/organizations/organization.py +14 -0
  80. office365/intune/printing/base.py +11 -0
  81. office365/intune/printing/capabilities.py +5 -0
  82. office365/intune/printing/connectors/__init__.py +0 -0
  83. office365/intune/printing/connectors/connector.py +6 -0
  84. office365/intune/printing/operations/__init__.py +0 -0
  85. office365/intune/printing/print.py +24 -0
  86. office365/intune/printing/printer.py +6 -0
  87. office365/intune/printing/services/__init__.py +0 -0
  88. office365/intune/printing/services/endpoint.py +5 -0
  89. office365/intune/printing/services/service.py +17 -0
  90. office365/intune/printing/share.py +5 -0
  91. office365/intune/printing/shares/__init__.py +0 -0
  92. office365/intune/printing/taskdefinitions/__init__.py +0 -0
  93. office365/intune/provisioned_plan.py +5 -1
  94. office365/intune/servicecommunications/issues/issue.py +15 -0
  95. office365/intune/vpp_token.py +10 -0
  96. office365/onedrive/columns/content_approval_status.py +5 -0
  97. office365/onedrive/columns/datetime.py +15 -0
  98. office365/onedrive/columns/definition.py +49 -3
  99. office365/onedrive/columns/definition_collection.py +17 -6
  100. office365/onedrive/columns/types.py +13 -0
  101. office365/onedrive/driveitems/audio.py +12 -1
  102. office365/onedrive/driveitems/driveItem.py +66 -15
  103. office365/onedrive/driveitems/image.py +8 -1
  104. office365/onedrive/driveitems/remote_item.py +19 -4
  105. office365/onedrive/drives/recipient.py +4 -0
  106. office365/onedrive/files/system_info.py +8 -6
  107. office365/onedrive/lists/collection.py +11 -5
  108. office365/onedrive/lists/list.py +13 -5
  109. office365/onedrive/operations/pending.py +13 -0
  110. office365/onedrive/operations/pending_content_update.py +5 -0
  111. office365/onedrive/permissions/collection.py +1 -1
  112. office365/onedrive/sensitivitylabels/__init__.py +0 -0
  113. office365/onedrive/sensitivitylabels/assignment.py +17 -0
  114. office365/onedrive/sensitivitylabels/assignment_method.py +4 -0
  115. office365/onedrive/sensitivitylabels/extract_result.py +13 -0
  116. office365/onedrive/sharepoint_settings.py +25 -0
  117. office365/outlook/calendar/calendar.py +116 -5
  118. office365/outlook/calendar/dateTimeTimeZone.py +3 -0
  119. office365/outlook/calendar/email_address.py +7 -0
  120. office365/outlook/calendar/events/event.py +0 -4
  121. office365/outlook/calendar/events/reminder.py +22 -3
  122. office365/outlook/calendar/group.py +0 -2
  123. office365/outlook/calendar/location_constraint.py +16 -1
  124. office365/outlook/calendar/permissions/__init__.py +0 -0
  125. office365/outlook/calendar/permissions/collection.py +24 -0
  126. office365/outlook/calendar/{permission.py → permissions/permission.py} +35 -2
  127. office365/outlook/calendar/role_type.py +17 -0
  128. office365/outlook/calendar/sharing_message.py +2 -2
  129. office365/outlook/calendar/time_zone_base.py +3 -0
  130. office365/outlook/calendar/working_hours.py +17 -1
  131. office365/outlook/contacts/collection.py +39 -0
  132. office365/outlook/contacts/contact.py +21 -11
  133. office365/outlook/geo_coordinates.py +20 -0
  134. office365/outlook/item.py +5 -2
  135. office365/outlook/locale_info.py +3 -0
  136. office365/outlook/mail/folders/folder.py +51 -2
  137. office365/outlook/mail/folders/search.py +11 -0
  138. office365/outlook/mail/importance.py +1 -0
  139. office365/outlook/mail/item_body.py +3 -0
  140. office365/outlook/mail/location.py +27 -2
  141. office365/outlook/mail/location_constraint_item.py +5 -0
  142. office365/outlook/mail/messages/collection.py +7 -0
  143. office365/outlook/mail/messages/followup_flag.py +21 -0
  144. office365/outlook/mail/messages/internet_header.py +16 -0
  145. office365/outlook/mail/messages/message.py +183 -4
  146. office365/outlook/mail/messages/rules/actions.py +33 -0
  147. office365/outlook/mail/patterned_recurrence.py +14 -1
  148. office365/outlook/mail/physical_address.py +5 -1
  149. office365/outlook/mail/recipient.py +3 -0
  150. office365/outlook/mail/recurrence_pattern.py +18 -1
  151. office365/outlook/mail/recurrence_range.py +16 -2
  152. office365/reports/root.py +19 -1
  153. office365/reports/security/__init__.py +0 -0
  154. office365/reports/security/root.py +21 -0
  155. office365/reports/userregistration/__init__.py +0 -0
  156. office365/reports/userregistration/method_count.py +17 -0
  157. office365/reports/userregistration/method_summary.py +21 -0
  158. office365/sharepoint/activities/logger.py +25 -0
  159. office365/sharepoint/addtoonedrive/mount_point.py +25 -0
  160. office365/sharepoint/addtoonedrive/mounted_folder_info.py +5 -0
  161. office365/sharepoint/alerts/alert.py +31 -0
  162. office365/sharepoint/changes/item.py +14 -0
  163. office365/sharepoint/client_context.py +6 -0
  164. office365/sharepoint/clientsidecomponent/component_context_info.py +7 -0
  165. office365/sharepoint/clientsidecomponent/identifier.py +3 -0
  166. office365/sharepoint/compliance/tag_info.py +17 -0
  167. office365/sharepoint/contenttypes/content_type.py +42 -0
  168. office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -6
  169. office365/sharepoint/features/known_list.py +2 -0
  170. office365/sharepoint/fields/collection.py +60 -41
  171. office365/sharepoint/fields/creation_information.py +5 -4
  172. office365/sharepoint/fields/field.py +73 -15
  173. office365/sharepoint/fields/user.py +3 -3
  174. office365/sharepoint/files/file.py +9 -4
  175. office365/sharepoint/folders/coloring.py +39 -0
  176. office365/sharepoint/folders/coloring_information.py +15 -0
  177. office365/sharepoint/folders/folder.py +21 -10
  178. office365/sharepoint/forms/customization.py +8 -0
  179. office365/sharepoint/listitems/listitem.py +10 -3
  180. office365/sharepoint/lists/bloom_filter.py +0 -1
  181. office365/sharepoint/lists/creation_information.py +18 -4
  182. office365/sharepoint/lists/list.py +199 -24
  183. office365/sharepoint/lists/render_data_parameters.py +21 -1
  184. office365/sharepoint/navigation/configured_metadata_items.py +25 -1
  185. office365/sharepoint/navigation/metadata_settings.py +6 -4
  186. office365/sharepoint/permissions/irm/file_settings.py +43 -0
  187. office365/sharepoint/portal/userprofiles/documents_shared_with_group.py +3 -0
  188. office365/sharepoint/publishing/base_custom_property.py +8 -0
  189. office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +8 -0
  190. office365/sharepoint/publishing/pagecopywithassets/__init__.py +0 -0
  191. office365/sharepoint/publishing/pagecopywithassets/response.py +8 -0
  192. office365/sharepoint/publishing/pages/campaign_publication.py +7 -0
  193. office365/sharepoint/publishing/pages/page.py +4 -1
  194. office365/sharepoint/publishing/pages/reposts/metadata.py +8 -0
  195. office365/sharepoint/publishing/personmagazine/person_magazine.py +4 -1
  196. office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +8 -1
  197. office365/sharepoint/search/query/auto_completion_match.py +3 -0
  198. office365/sharepoint/search/query/property_value.py +18 -0
  199. office365/sharepoint/search/request.py +16 -2
  200. office365/sharepoint/sharing/abilities.py +22 -0
  201. office365/sharepoint/sharing/direct_abilities.py +27 -0
  202. office365/sharepoint/sharing/link_abilities.py +9 -1
  203. office365/sharepoint/sharing/links/data.py +26 -1
  204. office365/sharepoint/sharing/links/info.py +1 -1
  205. office365/sharepoint/sharing/links/partial_success_response.py +5 -0
  206. office365/sharepoint/sharing/links/share_settings.py +24 -1
  207. office365/sharepoint/sharing/object_sharing_information.py +65 -2
  208. office365/sharepoint/sharing/object_sharing_information_user.py +9 -0
  209. office365/sharepoint/sharing/object_sharing_settings.py +17 -4
  210. office365/sharepoint/sharing/principal.py +10 -0
  211. office365/sharepoint/sharing/securable_object_extensions.py +1 -17
  212. office365/sharepoint/sharing/site_sharing_report_helper.py +2 -1
  213. office365/sharepoint/sharing/user_sharing_result.py +18 -8
  214. office365/sharepoint/sitehealth/result.py +10 -0
  215. office365/sharepoint/sites/language.py +11 -1
  216. office365/sharepoint/sites/language_collection.py +1 -0
  217. office365/sharepoint/sites/site.py +34 -6
  218. office365/sharepoint/tenant/administration/audit/search_request_status.py +8 -0
  219. office365/sharepoint/tenant/administration/hubsites/permission.py +10 -0
  220. office365/sharepoint/tenant/administration/tenant.py +1 -0
  221. office365/sharepoint/tenant/apps/information.py +3 -1
  222. office365/sharepoint/tenant/management/office365_tenant.py +0 -1
  223. office365/sharepoint/types/resource_path.py +3 -1
  224. office365/sharepoint/userprofiles/people_manager.py +0 -2
  225. office365/sharepoint/userprofiles/sharedwithme/document.py +16 -0
  226. office365/sharepoint/userprofiles/sharedwithme/document_user.py +12 -0
  227. office365/sharepoint/userprofiles/sharedwithme/item_collection.py +41 -0
  228. office365/sharepoint/userprofiles/sharedwithme/items.py +18 -1
  229. office365/sharepoint/webs/web.py +2 -3
  230. office365/subscriptions/collection.py +12 -6
  231. office365/subscriptions/subscription.py +119 -1
  232. office365/teams/channels/iIdentity.py +5 -0
  233. office365/teams/chats/collection.py +1 -2
  234. office365/teams/chats/messages/info.py +9 -0
  235. office365/teams/chats/messages/message.py +17 -2
  236. office365/teams/members/aad_user_conversation.py +2 -2
  237. office365/teams/members/conversation_collection.py +3 -3
  238. office365/teams/schedule/change_tracked_entity.py +11 -2
  239. office365/teams/tabs/configuration.py +12 -1
  240. office365/teams/tabs/tab.py +0 -1
  241. office365/teams/team.py +23 -1
  242. office365/teams/teamwork/__init__.py +0 -0
  243. office365/teams/teamwork/activity_topic.py +5 -0
  244. office365/teams/teamwork/tags/__init__.py +0 -0
  245. office365/teams/teamwork/tags/member.py +5 -0
  246. office365/{directory/security/cases_root.py → teams/viva/employee_experience_user.py} +1 -1
  247. office365/intune/devices/management.py +0 -35
  248. {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/LICENSE +0 -0
  249. {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/WHEEL +0 -0
  250. {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/top_level.txt +0 -0
  251. /office365/{teams/messages → directory/security/cases}/__init__.py +0 -0
  252. /office365/{teams/tags → directory/synchronization}/__init__.py +0 -0
  253. /office365/teams/{tags → teamwork/tags}/identity.py +0 -0
  254. /office365/teams/{tags → teamwork/tags}/tag.py +0 -0
  255. /office365/teams/{user_teamwork.py → teamwork/user.py} +0 -0
@@ -1,3 +1,5 @@
1
+ from datetime import datetime
2
+
1
3
  from office365.runtime.client_result import ClientResult
2
4
  from office365.runtime.client_value_collection import ClientValueCollection
3
5
  from office365.runtime.queries.service_operation import ServiceOperationQuery
@@ -132,18 +134,25 @@ class Folder(BaseEntity):
132
134
  self.ensure_property("ServerRelativePath", _move_folder)
133
135
  return return_type
134
136
 
135
- def share_link(self, link_kind, expiration=None):
137
+ def share_link(self, link_kind, expiration=None, role=None, password=None):
136
138
  """Creates a tokenized sharing link for a folder based on the specified parameters and optionally
137
139
  sends an email to the people that are listed in the specified parameters.
138
140
 
139
141
  :param int link_kind: The kind of the tokenized sharing link to be created/updated or retrieved.
140
- :param datetime or None expiration: A date/time string for which the format conforms to the ISO 8601:2004(E)
142
+ :param datetime.datetime or None expiration: A date/time string for which the format conforms to the ISO 8601:2004(E)
141
143
  complete representation for calendar date and time of day and which represents the time and date of expiry
142
144
  for the tokenized sharing link. Both the minutes and hour value MUST be specified for the difference
143
145
  between the local and UTC time. Midnight is represented as 00:00:00. A null value indicates no expiry.
144
146
  This value is only applicable to tokenized sharing links that are anonymous access links.
147
+ :param int role: The role to be used for the tokenized sharing link. This is required for Flexible links
148
+ and ignored for all other kinds.
149
+ :param str password: Optional password value to apply to the tokenized sharing link,
150
+ if it can support password protection.
145
151
  """
146
- return self.list_item_all_fields.share_link(link_kind, expiration)
152
+ return self.list_item_all_fields.share_link(link_kind=link_kind,
153
+ expiration=expiration,
154
+ role=role,
155
+ password=password)
147
156
 
148
157
  def unshare_link(self, link_kind, share_id=None):
149
158
  """
@@ -446,23 +455,24 @@ class Folder(BaseEntity):
446
455
 
447
456
  @property
448
457
  def time_created(self):
449
- """Gets when the folder was created in UTC.
450
-
458
+ """
459
+ Gets when the folder was created in UTC.
451
460
  :rtype: datetime or None
452
461
  """
453
- return self.properties.get("TimeCreated", None)
462
+ return self.properties.get("TimeCreated", datetime.min)
454
463
 
455
464
  @property
456
465
  def serverRelativeUrl(self):
457
- """Gets the server-relative URL of the list folder.
458
-
466
+ """
467
+ Gets the server-relative URL of the list folder.
459
468
  :rtype: str or None
460
469
  """
461
470
  return self.properties.get("ServerRelativeUrl", None)
462
471
 
463
472
  @property
464
473
  def server_relative_path(self):
465
- """Gets the server-relative Path of the list folder.
474
+ """
475
+ Gets the server-relative Path of the list folder.
466
476
  :rtype: SPResPath or None
467
477
  """
468
478
  return self.properties.get("ServerRelativePath", SPResPath())
@@ -479,7 +489,8 @@ class Folder(BaseEntity):
479
489
  "ListItemAllFields": self.list_item_all_fields,
480
490
  "ParentFolder": self.parent_folder,
481
491
  "ServerRelativePath": self.server_relative_path,
482
- "StorageMetrics": self.storage_metrics
492
+ "StorageMetrics": self.storage_metrics,
493
+ "TimeCreated": self.time_created
483
494
  }
484
495
  default_value = property_mapping.get(name, None)
485
496
  return super(Folder, self).get_property(name, default_value)
@@ -0,0 +1,8 @@
1
+ from office365.sharepoint.base_entity import BaseEntity
2
+
3
+
4
+ class FormsCustomization(BaseEntity):
5
+
6
+ @property
7
+ def entity_type_name(self):
8
+ return "SP.Internal.FormsCustomization"
@@ -48,19 +48,26 @@ class ListItem(SecurableObject):
48
48
  if parent_list is not None:
49
49
  self.set_property("ParentList", parent_list, False)
50
50
 
51
- def share_link(self, link_kind, expiration=None):
51
+ def share_link(self, link_kind, expiration=None, role=None, password=None):
52
52
  """Creates a tokenized sharing link for a list item based on the specified parameters and optionally
53
53
  sends an email to the people that are listed in the specified parameters.
54
54
 
55
55
  :param int link_kind: The kind of the tokenized sharing link to be created/updated or retrieved.
56
- :param datetime or None expiration: A date/time string for which the format conforms to the ISO 8601:2004(E)
56
+ :param datetime.datetime or None expiration: A date/time string for which the format conforms to the ISO 8601:2004(E)
57
57
  complete representation for calendar date and time of day and which represents the time and date of expiry
58
58
  for the tokenized sharing link. Both the minutes and hour value MUST be specified for the difference
59
59
  between the local and UTC time. Midnight is represented as 00:00:00. A null value indicates no expiry.
60
60
  This value is only applicable to tokenized sharing links that are anonymous access links.
61
+ :param int role: The role to be used for the tokenized sharing link. This is required for Flexible links
62
+ and ignored for all other kinds.
63
+ :param str password: Optional password value to apply to the tokenized sharing link,
64
+ if it can support password protection.
61
65
  """
62
66
  return_type = ClientResult(self.context, ShareLinkResponse())
63
- request = ShareLinkRequest(settings=ShareLinkSettings(link_kind=link_kind, expiration=expiration))
67
+ request = ShareLinkRequest(settings=ShareLinkSettings(link_kind=link_kind,
68
+ expiration=expiration,
69
+ role=role,
70
+ password=password))
64
71
  payload = {"request": request}
65
72
  qry = ServiceOperationQuery(self, "ShareLink", None, payload, None, return_type)
66
73
  self.context.add_query(qry)
@@ -9,7 +9,6 @@ class ListBloomFilter(BaseEntity):
9
9
  def bloom_filter_size(self):
10
10
  """
11
11
  The length of the Bloom Filter
12
-
13
12
  :rtype: int or None
14
13
  """
15
14
  return self.properties.get("BloomFilterSize", None)
@@ -4,19 +4,33 @@ from office365.runtime.client_value import ClientValue
4
4
  class ListCreationInformation(ClientValue):
5
5
  """Represents metadata about list creation."""
6
6
 
7
- def __init__(self, title=None, description=None, base_template=None, allow_content_types=False):
7
+ def __init__(self, title=None, description=None, base_template=None, allow_content_types=False,
8
+ custom_schema_xml=None, document_template_type=None, quick_launch_option=None,
9
+ template_feature_id=None, template_type=None):
8
10
  """
9
-
10
- :type base_template: int or None
11
- :type allow_content_types: bool
11
+ :param int or None base_template:
12
+ :param bool allow_content_types:
12
13
  :poram str or None description: Specifies the description of the new list.
13
14
  :param str title: Specifies the display name of the new list.
15
+ :param str custom_schema_xml: Specifies the list schema of the new list.
16
+ :param str document_template_type: Specifies the identifier of the document template for the new list.
17
+ :param int quick_launch_option: Specifies whether the new list is displayed on the Quick Launch of the site
18
+ :param int template_feature_id: Specifies the feature identifier of the feature that contains the list schema
19
+ for the new list. It MUST be empty GUID if the list schema for the new list is not contained within
20
+ a feature.
21
+ :param int template_type: Specifies the list server template of the new list.
14
22
  """
15
23
  super(ListCreationInformation, self).__init__()
16
24
  self.Title = title
17
25
  self.Description = description
18
26
  self.BaseTemplate = base_template
19
27
  self.AllowContentTypes = allow_content_types
28
+ self.CustomSchemaXml = custom_schema_xml
29
+ self.DataSourceProperties = None
30
+ self.DocumentTemplateType = document_template_type
31
+ self.QuickLaunchOption = quick_launch_option
32
+ self.TemplateFeatureId = template_feature_id
33
+ self.TemplateType = template_type
20
34
 
21
35
  @property
22
36
  def entity_type_name(self):
@@ -1,3 +1,5 @@
1
+ from datetime import datetime
2
+
1
3
  from office365.runtime.client_result import ClientResult
2
4
  from office365.runtime.client_value_collection import ClientValueCollection
3
5
  from office365.runtime.queries.service_operation import ServiceOperationQuery
@@ -25,6 +27,7 @@ from office365.sharepoint.lists.bloom_filter import ListBloomFilter
25
27
  from office365.sharepoint.lists.creatables_info import CreatablesInfo
26
28
  from office365.sharepoint.lists.data_source import ListDataSource
27
29
  from office365.sharepoint.lists.rule import SPListRule
30
+ from office365.sharepoint.navigation.configured_metadata_items import ConfiguredMetadataNavigationItemCollection
28
31
  from office365.sharepoint.pages.wiki_page_creation_information import WikiPageCreationInformation
29
32
  from office365.sharepoint.permissions.securable_object import SecurableObject
30
33
  from office365.sharepoint.principal.users.user import User
@@ -92,6 +95,20 @@ class List(SecurableObject):
92
95
  self.context.add_query(qry)
93
96
  return return_type
94
97
 
98
+ def get_metadata_navigation_settings(self):
99
+ """
100
+ Retrieves the configured metadata navigation settings for the list.
101
+ """
102
+ from office365.sharepoint.navigation.metadata_settings import MetadataNavigationSettings
103
+ return_type = ClientResult(self.context, ConfiguredMetadataNavigationItemCollection())
104
+
105
+ def _loaded():
106
+ MetadataNavigationSettings.get_configured_settings(self.context, self.root_folder.serverRelativeUrl,
107
+ return_type)
108
+
109
+ self.root_folder.ensure_property("ServerRelativeUrl", _loaded)
110
+ return return_type
111
+
95
112
  def get_site_script(self, options=None):
96
113
  """Creates site script syntax
97
114
 
@@ -534,6 +551,14 @@ class List(SecurableObject):
534
551
  """
535
552
  return self.properties.get("Id", None)
536
553
 
554
+ @property
555
+ def additional_ux_properties(self):
556
+ """
557
+
558
+ :rtype: str
559
+ """
560
+ return self.properties.get("AdditionalUXProperties", None)
561
+
537
562
  @property
538
563
  def author(self):
539
564
  """Specifies the user who created the list."""
@@ -544,16 +569,22 @@ class List(SecurableObject):
544
569
  def allow_content_types(self):
545
570
  """
546
571
  Specifies whether the list supports content types.
547
-
548
572
  :rtype: bool or None
549
573
  """
550
574
  return self.properties.get("AllowContentTypes", None)
551
575
 
576
+ @property
577
+ def allow_deletion(self):
578
+ """
579
+ Specifies whether the list could be deleted.
580
+ :rtype: bool or None
581
+ """
582
+ return self.properties.get("AllowDeletion", None)
583
+
552
584
  @property
553
585
  def base_template(self):
554
586
  """
555
587
  Specifies the list server template of the list.
556
-
557
588
  :rtype: int or None
558
589
  """
559
590
  return self.properties.get("BaseTemplate", None)
@@ -563,16 +594,30 @@ class List(SecurableObject):
563
594
  """
564
595
  Specifies the base type of the list.
565
596
  It MUST be one of the following values: GenericList, DocumentLibrary, DiscussionBoard, Survey, or Issue.
566
-
567
597
  :rtype: int or None
568
598
  """
569
599
  return self.properties.get("BaseType", None)
570
600
 
601
+ @property
602
+ def browser_file_handling(self):
603
+ """
604
+ Specifies the override at the list level for the BrowserFileHandling property of the Web application.
605
+ If the BrowserFileHandling property of the Web application is BrowserFileHandling.Strict,
606
+ then this setting MUST be ignored. If the BrowserFileHandling property of the Web application is
607
+ BrowserFileHandling.Permissive, then this setting MUST be respected.
608
+ :rtype: int or None
609
+ """
610
+ return self.properties.get("BrowserFileHandling", None)
611
+
612
+ @property
613
+ def created(self):
614
+ """Specifies when the list was created."""
615
+ return self.properties.get("Created", datetime.min)
616
+
571
617
  @property
572
618
  def default_display_form_url(self):
573
619
  """
574
620
  Specifies the location of the default display form for the list.
575
-
576
621
  :rtype: str or None
577
622
  """
578
623
  return self.properties.get("DefaultDisplayFormUrl", None)
@@ -588,7 +633,6 @@ class List(SecurableObject):
588
633
  def default_view_url(self):
589
634
  """
590
635
  Specifies the server-relative URL of the default view for the list.
591
-
592
636
  :rtype: str or None
593
637
  """
594
638
  return self.properties.get("DefaultViewUrl", None)
@@ -598,7 +642,6 @@ class List(SecurableObject):
598
642
  """
599
643
  Specifies whether or not the crawler indexes the non-default views of the list.
600
644
  Specify a value of true if the crawler indexes the list's non-default views; specify false if otherwise.
601
-
602
645
  :rtype: bool or None
603
646
  """
604
647
  return self.properties.get("CrawlNonDefaultViews", None)
@@ -630,15 +673,6 @@ class List(SecurableObject):
630
673
  """
631
674
  return self.properties.get("DataSource", ListDataSource())
632
675
 
633
- @property
634
- def enable_folder_creation(self):
635
- """
636
- Specifies whether new list folders can be added to the list.
637
-
638
- :rtype: bool or None
639
- """
640
- return self.properties.get("EnableFolderCreation", None)
641
-
642
676
  @property
643
677
  def default_edit_form_url(self):
644
678
  """
@@ -655,10 +689,66 @@ class List(SecurableObject):
655
689
  """
656
690
  return self.properties.get("DefaultItemOpenInBrowser", None)
657
691
 
692
+ @property
693
+ def default_item_open_use_list_setting(self):
694
+ """
695
+ This property returns whether to use the List setting or the server wide setting for
696
+ DefaultItemOpen (BrowserEnabledDocuments setting) in the Web application. This property can only be set to
697
+ false, thereby using the server-wide setting. To set it to use List setting, set the value for DefaultItemOpen.
698
+ :rtype: bool or None
699
+ """
700
+ return self.properties.get("DefaultItemOpenUseListSetting", None)
701
+
702
+ @property
703
+ def disable_commenting(self):
704
+ """
705
+ :rtype: bool or None
706
+ """
707
+ return self.properties.get("DisableCommenting", None)
708
+
709
+ @property
710
+ def disable_grid_editing(self):
711
+ """
712
+ :rtype: bool or None
713
+ """
714
+ return self.properties.get("DisableGridEditing", None)
715
+
716
+ @property
717
+ def enable_folder_creation(self):
718
+ """
719
+ Specifies whether new list folders can be added to the list.
720
+ :rtype: bool or None
721
+ """
722
+ return self.properties.get("EnableFolderCreation", None)
723
+
658
724
  @enable_folder_creation.setter
659
725
  def enable_folder_creation(self, value):
660
726
  self.set_property("EnableFolderCreation", value, True)
661
727
 
728
+ @property
729
+ def enable_minor_versions(self):
730
+ """
731
+ Specifies whether minor versions are enabled for the list.
732
+ :rtype: bool or None
733
+ """
734
+ return self.properties.get("EnableMinorVersions", None)
735
+
736
+ @property
737
+ def enable_moderation(self):
738
+ """
739
+ Specifies whether content approval is enabled for the list.
740
+ :rtype: bool or None
741
+ """
742
+ return self.properties.get("EnableModeration", None)
743
+
744
+ @property
745
+ def enable_versioning(self):
746
+ """
747
+ Specifies whether content approval is enabled for the list.
748
+ :rtype: bool or None
749
+ """
750
+ return self.properties.get("EnableVersioning", None)
751
+
662
752
  @property
663
753
  def items(self):
664
754
  """Get list items"""
@@ -707,11 +797,37 @@ class List(SecurableObject):
707
797
  @property
708
798
  def content_types_enabled(self):
709
799
  """Specifies whether content types are enabled for the list.
710
-
711
800
  :rtype: bool or None
712
801
  """
713
802
  return self.properties.get('ContentTypesEnabled', None)
714
803
 
804
+ @property
805
+ def is_private(self):
806
+ """
807
+ Specifies whether the list is a private list with restricted permissions.
808
+ True if the list is a private list, otherwise False.
809
+ :rtype: bool or None
810
+ """
811
+ return self.properties.get('IsPrivate', None)
812
+
813
+ @property
814
+ def is_site_assets_library(self):
815
+ """
816
+ Specifies whether the list is designated as a default asset location for images or other files which the
817
+ users upload to their wiki pages.
818
+ :rtype: bool or None
819
+ """
820
+ return self.properties.get('IsSiteAssetsLibrary', None)
821
+
822
+ @property
823
+ def is_system_list(self):
824
+ """
825
+ Indicates whether the list is system list that does not contain end user data and created by system account.
826
+ A value of True means yes.
827
+ :rtype: bool or None
828
+ """
829
+ return self.properties.get('IsSystemList', None)
830
+
715
831
  @property
716
832
  def user_custom_actions(self):
717
833
  """Gets the User Custom Actions that are associated with the list."""
@@ -746,16 +862,65 @@ class List(SecurableObject):
746
862
 
747
863
  @property
748
864
  def item_count(self):
749
- """Gets a value that specifies the number of list items in the list.
750
-
865
+ """
866
+ Gets a value that specifies the number of list items in the list.
751
867
  :rtype: int or None
752
868
  """
753
869
  return self.properties.get('ItemCount', None)
754
870
 
755
871
  @property
756
- def title(self):
757
- """Gets the displayed title for the list.
872
+ def last_item_deleted_date(self):
873
+ """
874
+ Specifies the last time a list item was deleted from the list. It MUST return Created if no list item has
875
+ been deleted from the list yet.
876
+ """
877
+ return self.properties.get('LastItemDeletedDate', datetime.min)
878
+
879
+ @property
880
+ def last_item_modified_date(self):
881
+ """
882
+ Specifies the last time a list item, field, or property of the list was modified.
883
+ It MUST return Created if the list has not been modified.
884
+ """
885
+ return self.properties.get('LastItemModifiedDate', datetime.min)
886
+
887
+ @property
888
+ def list_form_customized(self):
889
+ """
890
+ :rtype: bool or None
891
+ """
892
+ return self.properties.get('ListFormCustomized', None)
893
+
894
+ @property
895
+ def list_item_entity_type_full_name(self):
896
+ """
897
+ Specifies the full type name of the list item.
898
+ :rtype: str or None
899
+ """
900
+ return self.properties.get('ListItemEntityTypeFullName', None)
901
+
902
+ @property
903
+ def major_version_limit(self):
904
+ """
905
+ Gets the maximum number of major versions allowed for an item in a document library that uses version
906
+ control with major versions only.
907
+ :rtype: int or None
908
+ """
909
+ return self.properties.get('MajorVersionLimit', None)
910
+
911
+ @property
912
+ def major_with_minor_versions_limit(self):
913
+ """
914
+ Gets the maximum number of major versions that are allowed for an item in a document library that uses
915
+ version control with both major and minor versions.
916
+ :rtype: int or None
917
+ """
918
+ return self.properties.get('MajorWithMinorVersionsLimit', None)
758
919
 
920
+ @property
921
+ def title(self):
922
+ """
923
+ Gets the displayed title for the list.
759
924
  :rtype: str or None
760
925
  """
761
926
  return self.properties.get('Title', None)
@@ -765,6 +930,16 @@ class List(SecurableObject):
765
930
  """Sets the displayed title for the list."""
766
931
  self.set_property('Title', val)
767
932
 
933
+
934
+ @property
935
+ def default_content_approval_workflow_id(self):
936
+ """
937
+ Specifies the default workflow identifier for content approval on the list. It MUST be an empty GUID
938
+ if there is no default content approval workflow.
939
+ :rtype: str
940
+ """
941
+ return self.properties.get("DefaultContentApprovalWorkflowId", None)
942
+
768
943
  @property
769
944
  def description(self):
770
945
  """Gets the description for the list.
@@ -790,8 +965,8 @@ class List(SecurableObject):
790
965
 
791
966
  @property
792
967
  def schema_xml(self):
793
- """Specifies the list schema of the list.
794
-
968
+ """
969
+ Specifies the list schema of the list.
795
970
  :rtype: str or None
796
971
  """
797
972
  return self.properties.get("SchemaXml", None)
@@ -801,7 +976,6 @@ class List(SecurableObject):
801
976
  """
802
977
  Specifies the feature identifier of the feature that contains the list schema for the list.
803
978
  It MUST be an empty GUID if the list schema for the list is not contained within a feature.
804
-
805
979
  :rtype: str or None
806
980
  """
807
981
  return self.properties.get("TemplateFeatureId", None)
@@ -816,7 +990,6 @@ class List(SecurableObject):
816
990
  def validation_formula(self):
817
991
  """
818
992
  Specifies the data validation criteria for a list item.
819
-
820
993
  :rtype: str or None
821
994
  """
822
995
  return self.properties.get("ValidationFormula", None)
@@ -840,6 +1013,8 @@ class List(SecurableObject):
840
1013
  "DefaultView": self.default_view,
841
1014
  "DefaultViewPath": self.default_view_path,
842
1015
  "EventReceivers": self.event_receivers,
1016
+ "LastItemDeletedDate": self.last_item_deleted_date,
1017
+ "LastItemModifiedDate": self.last_item_modified_date,
843
1018
  "ParentWeb": self.parent_web,
844
1019
  "ParentWebPath": self.parent_web_path,
845
1020
  "RootFolder": self.root_folder,
@@ -4,13 +4,33 @@ from office365.runtime.client_value import ClientValue
4
4
  class RenderListDataParameters(ClientValue):
5
5
  """Specifies the parameters to be used to render list data as a JSON string"""
6
6
 
7
- def __init__(self, add_all_fields=None, add_required_fields=None):
7
+ def __init__(self, add_all_fields=None, add_all_view_fields=None, add_regional_settings=None,
8
+ add_required_fields=None, allow_multiple_value_filter_for_taxonomy_fields=None,
9
+ audience_target=None, dates_in_utc=None, expand_groups=None, expand_user_field=None,
10
+ filter_out_channel_folders_in_default_doc_lib=None):
8
11
  """
9
12
  :param bool add_all_fields:
13
+ :param bool add_all_view_fields:
14
+ :param bool add_regional_settings:
10
15
  :param bool add_required_fields: This parameter indicates if we return required fields.
16
+ :param bool allow_multiple_value_filter_for_taxonomy_fields: This parameter indicates whether multi value
17
+ filtering is allowed for taxonomy fields.
18
+ :param bool audience_target:
19
+ :param bool dates_in_utc: Specifies if the DateTime field is returned in UTC or local time.
20
+ :param bool expand_groups: Specifies whether to expand the grouping or not.
21
+ :param bool expand_user_field:
22
+ :param bool filter_out_channel_folders_in_default_doc_lib:
11
23
  """
12
24
  self.AddAllFields = add_all_fields
25
+ self.AddAllViewFields = add_all_view_fields
26
+ self.AddRegionalSettings = add_regional_settings
13
27
  self.AddRequiredFields = add_required_fields
28
+ self.AllowMultipleValueFilterForTaxonomyFields = allow_multiple_value_filter_for_taxonomy_fields
29
+ self.AudienceTarget = audience_target
30
+ self.DatesInUtc = dates_in_utc
31
+ self.ExpandGroups = expand_groups
32
+ self.ExpandUserField = expand_user_field
33
+ self.FilterOutChannelFoldersInDefaultDocLib = filter_out_channel_folders_in_default_doc_lib
14
34
 
15
35
  @property
16
36
  def entity_type_name(self):
@@ -1,6 +1,30 @@
1
1
  from office365.runtime.client_value import ClientValue
2
+ from office365.runtime.client_value_collection import ClientValueCollection
3
+
4
+
5
+ class ConfiguredMetadataNavigationItem(ClientValue):
6
+ """Represents a configured metadata navigation item."""
7
+
8
+ def __init__(self, field_display_name=None, field_title=None, field_type_as_string=None,
9
+ is_content_type_field=None, is_folder_hierarchy=None, is_hierarchy=None):
10
+ """
11
+ :param str field_display_name: The display name of the field that this item refers to.
12
+ :param str field_title: The internal name of the field that this item refers to.
13
+ :param str field_type_as_string: The type of the field that this item refers to.
14
+ :param bool is_content_type_field: Indicates whether the type of this field is a content type.
15
+ :param bool is_folder_hierarchy: Indicates whether this item is a folder hierarchy.
16
+ :param bool is_hierarchy: Indicates whether this item is hierarchical.
17
+ """
18
+ self.FieldDisplayName = field_display_name
19
+ self.FieldTitle = field_title
20
+ self.FieldTypeAsString = field_type_as_string
21
+ self.IsContentTypeField = is_content_type_field
22
+ self.IsFolderHierarchy = is_folder_hierarchy
23
+ self.IsHierarchy = is_hierarchy
2
24
 
3
25
 
4
26
  class ConfiguredMetadataNavigationItemCollection(ClientValue):
5
27
  """A collection of configured metadata navigation items."""
6
- pass
28
+
29
+ def __init__(self, items=None):
30
+ self.Items = ClientValueCollection(ConfiguredMetadataNavigationItem, items)
@@ -5,23 +5,25 @@ from office365.sharepoint.navigation.configured_metadata_items import Configured
5
5
 
6
6
 
7
7
  class MetadataNavigationSettings(BaseEntity):
8
-
8
+ """Described and allows changes to the meta-data navigation and filtering settings on an SPList."""
9
9
 
10
10
  @staticmethod
11
- def get_configured_settings(context, url):
11
+ def get_configured_settings(context, url, return_type=None):
12
12
  """
13
13
  Retrieves the configured metadata navigation settings for the list with the specified url.
14
14
 
15
15
 
16
16
  :param office365.sharepoint.client_context.ClientContext context: SharePoint context
17
17
  :param str url: Specifies list url
18
+ :param ClientResult return_type: Return type
18
19
  """
19
20
 
20
- return_type = ClientResult(context, ConfiguredMetadataNavigationItemCollection())
21
+ if return_type is None:
22
+ return_type = ClientResult(context, ConfiguredMetadataNavigationItemCollection())
21
23
  payload = {
22
24
  "DecodedUrl": url
23
25
  }
24
- qry = ServiceOperationQuery(MetadataNavigationSettings(context), "GetConfiguredSettings", None, payload,
26
+ qry = ServiceOperationQuery(MetadataNavigationSettings(context), "GetConfiguredSettings", payload, None,
25
27
  None, return_type, True)
26
28
  context.add_query(qry)
27
29
  return return_type
@@ -10,3 +10,46 @@ class InformationRightsManagementFileSettings(BaseEntity):
10
10
  qry = ServiceOperationQuery(self, "Reset")
11
11
  self.context.add_query(qry)
12
12
  return self
13
+
14
+ @property
15
+ def allow_print(self):
16
+ """
17
+ Gets a value indicating whether or not the user can print the downloaded document.
18
+ True if print is allowed; otherwise, it is false. The default value is false.
19
+ :rtype: bool
20
+ """
21
+ return self.properties.get("AllowPrint", None)
22
+
23
+ @allow_print.setter
24
+ def allow_print(self, value):
25
+ """
26
+ Sets a value indicating whether or not the user can print the downloaded document.
27
+ :param bool value:
28
+ """
29
+ self.set_property("AllowPrint", value)
30
+
31
+ @property
32
+ def allow_script(self):
33
+ """
34
+ Gets a value indicating whether or not the user can run a script on the downloaded document.
35
+ True if the script is allowed to run; otherwise, it is false. The default value is false.
36
+ :rtype: bool
37
+ """
38
+ return self.properties.get("AllowScript", None)
39
+
40
+ @allow_script.setter
41
+ def allow_script(self, value):
42
+ """
43
+ Sets a value indicating whether or not the user can run a script on the downloaded document.
44
+ :param bool value:
45
+ """
46
+ self.set_property("AllowPrint", value)
47
+
48
+ @property
49
+ def allow_write_copy(self):
50
+ """
51
+ Getsa value indicating whether or not the user can write on a copy of the downloaded document.
52
+ True if write on a copy is allowed; otherwise, it is false. The default value is false.
53
+ :rtype: bool
54
+ """
55
+ return self.properties.get("AllowWriteCopy", None)