Office365-REST-Python-Client 2.5.14__py3-none-any.whl → 2.6.1__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 (214) hide show
  1. {Office365_REST_Python_Client-2.5.14.dist-info → Office365_REST_Python_Client-2.6.1.dist-info}/METADATA +21 -30
  2. {Office365_REST_Python_Client-2.5.14.dist-info → Office365_REST_Python_Client-2.6.1.dist-info}/RECORD +210 -112
  3. office365/admin/__init__.py +0 -0
  4. office365/admin/admin.py +69 -0
  5. office365/admin/microsoft365_apps.py +5 -0
  6. office365/admin/people_settings.py +5 -0
  7. office365/admin/report_settings.py +5 -0
  8. office365/{onedrive → admin}/sharepoint.py +1 -1
  9. office365/azure_env.py +60 -0
  10. office365/directory/applications/app_ids.py +6 -0
  11. office365/directory/authentication/authentication.py +16 -0
  12. office365/directory/authentication/method_target.py +2 -1
  13. office365/directory/authentication/methods/microsoft_authenticator.py +6 -0
  14. office365/directory/authentication/methods/root.py +11 -0
  15. office365/directory/authentication/methods/sms.py +9 -0
  16. office365/directory/certificates/self_signed.py +31 -2
  17. office365/directory/identities/conditional_access_root.py +14 -0
  18. office365/directory/identitygovernance/privilegedaccess/approval.py +8 -0
  19. office365/directory/identitygovernance/privilegedaccess/group.py +30 -0
  20. office365/directory/identitygovernance/privilegedaccess/group_assignment_schedule_instance.py +7 -0
  21. office365/directory/identitygovernance/privilegedaccess/unified_role_assignment_schedule_request.py +7 -0
  22. office365/directory/identitygovernance/userconsent/request_collection.py +10 -0
  23. office365/directory/identitygovernance/workflow/__init__.py +0 -0
  24. office365/directory/identitygovernance/workflow/base.py +5 -0
  25. office365/directory/policies/cross_tenant_access.py +13 -0
  26. office365/directory/policies/feature_rollout.py +16 -0
  27. office365/directory/policies/root.py +39 -23
  28. office365/directory/policies/template.py +5 -0
  29. office365/directory/protection/threatassessment/email_file_request.py +20 -0
  30. office365/directory/protection/threatassessment/request.py +25 -0
  31. office365/directory/rolemanagement/application.py +15 -0
  32. office365/directory/rolemanagement/resource_action.py +8 -4
  33. office365/directory/rolemanagement/role_permission.py +3 -3
  34. office365/directory/security/alerts/collection.py +49 -0
  35. office365/directory/security/scorecontrol/__init__.py +0 -0
  36. office365/directory/security/scorecontrol/profile.py +6 -0
  37. office365/directory/security/security.py +17 -4
  38. office365/directory/serviceprincipals/service_principal.py +36 -28
  39. office365/directory/tenantinformation/__init__.py +0 -0
  40. office365/directory/tenantinformation/multi_organization.py +11 -0
  41. office365/directory/tenantinformation/relationship.py +61 -0
  42. office365/directory/users/insights_settings.py +5 -0
  43. office365/graph_client.py +52 -132
  44. office365/graph_request.py +78 -19
  45. office365/intune/servicecommunications/health/health.py +1 -1
  46. office365/intune/servicecommunications/issues/issue.py +2 -2
  47. office365/onedrive/columns/definition.py +1 -1
  48. office365/onedrive/contenttypes/content_type.py +1 -1
  49. office365/onedrive/driveitems/driveItem.py +13 -1
  50. office365/onedrive/drives/drive.py +1 -1
  51. office365/onedrive/filestorage/__init__.py +0 -0
  52. office365/onedrive/filestorage/container.py +7 -0
  53. office365/onedrive/filestorage/file_storage.py +20 -0
  54. office365/onedrive/listitems/field_value_set.py +1 -1
  55. office365/onedrive/listitems/list_item.py +1 -1
  56. office365/onedrive/lists/list.py +1 -1
  57. office365/onedrive/recyclebin/__init__.py +0 -0
  58. office365/onedrive/recyclebin/item.py +6 -0
  59. office365/onedrive/recyclebin/recyclebin.py +29 -0
  60. office365/onedrive/recyclebin/settings.py +13 -0
  61. office365/onedrive/shares/drive_item.py +1 -1
  62. office365/onedrive/sitepages/base.py +1 -1
  63. office365/onedrive/sitepages/canvas_layout.py +2 -2
  64. office365/onedrive/sitepages/sections/__init__.py +0 -0
  65. office365/onedrive/sitepages/{horizontal_section.py → sections/horizontal.py} +1 -1
  66. office365/onedrive/sitepages/webparts/data.py +5 -0
  67. office365/onedrive/sitepages/webparts/position.py +5 -0
  68. office365/onedrive/sitepages/webparts/standard.py +9 -0
  69. office365/onedrive/sitepages/webparts/web_part.py +12 -0
  70. office365/onedrive/sites/site.py +1 -1
  71. office365/onedrive/storage/storage.py +10 -0
  72. office365/onedrive/workbooks/charts/axes.py +41 -1
  73. office365/onedrive/workbooks/charts/axis.py +5 -0
  74. office365/onedrive/workbooks/charts/chart.py +64 -5
  75. office365/onedrive/workbooks/charts/fill.py +5 -0
  76. office365/onedrive/workbooks/charts/font.py +5 -0
  77. office365/onedrive/workbooks/charts/legend/__init__.py +0 -0
  78. office365/onedrive/workbooks/charts/legend/format.py +5 -0
  79. office365/onedrive/workbooks/charts/legend/legend.py +26 -0
  80. office365/onedrive/workbooks/charts/point.py +5 -0
  81. office365/onedrive/workbooks/charts/series/__init__.py +0 -0
  82. office365/onedrive/workbooks/charts/series/format.py +5 -0
  83. office365/onedrive/workbooks/charts/series/series.py +31 -0
  84. office365/onedrive/workbooks/charts/title.py +5 -0
  85. office365/onedrive/workbooks/filter.py +10 -0
  86. office365/onedrive/workbooks/filter_criteria.py +3 -3
  87. office365/onedrive/workbooks/ranges/fill.py +11 -1
  88. office365/onedrive/workbooks/ranges/range.py +26 -0
  89. office365/onedrive/workbooks/ranges/view.py +14 -0
  90. office365/onedrive/workbooks/sort_field.py +8 -3
  91. office365/onedrive/workbooks/tables/sort.py +20 -0
  92. office365/onedrive/workbooks/worksheets/worksheet.py +11 -0
  93. office365/partners/billing/azure_usage.py +17 -0
  94. office365/partners/billing/billed_usage.py +21 -0
  95. office365/partners/billing/billing.py +17 -0
  96. office365/partners/billing/operation.py +5 -0
  97. office365/partners/partners.py +17 -0
  98. office365/reports/root.py +9 -0
  99. office365/reports/userregistration/feature_summary.py +5 -0
  100. office365/runtime/auth/auth_cookies.py +48 -0
  101. office365/runtime/auth/authentication_context.py +36 -19
  102. office365/runtime/auth/entra/__init__.py +0 -0
  103. office365/runtime/auth/entra/authentication_context.py +165 -0
  104. office365/runtime/auth/providers/acs_token_provider.py +12 -27
  105. office365/runtime/auth/providers/saml_token_provider.py +46 -67
  106. office365/runtime/auth/sts_profile.py +37 -22
  107. office365/runtime/auth/token_response.py +4 -0
  108. office365/sharepoint/administration/custom_fonts_resource.py +5 -0
  109. office365/sharepoint/administration/sitemove/__init__.py +0 -0
  110. office365/sharepoint/administration/sitemove/service.py +68 -0
  111. office365/sharepoint/administration/sitemove/service_info.py +11 -0
  112. office365/sharepoint/changes/item.py +15 -0
  113. office365/sharepoint/client_context.py +61 -37
  114. office365/sharepoint/directory/group.py +2 -0
  115. office365/sharepoint/directory/helper.py +2 -0
  116. office365/sharepoint/directory/provider/provider.py +6 -0
  117. office365/sharepoint/directory/user.py +20 -0
  118. office365/sharepoint/files/publish/__init__.py +0 -0
  119. office365/sharepoint/files/publish/status.py +9 -0
  120. office365/sharepoint/flows/connector_result.py +17 -0
  121. office365/sharepoint/flows/permissions.py +11 -7
  122. office365/sharepoint/fontpackages/__init__.py +0 -0
  123. office365/sharepoint/fontpackages/collection.py +26 -0
  124. office365/sharepoint/fontpackages/creation_parameters.py +5 -0
  125. office365/sharepoint/fontpackages/font_package.py +5 -0
  126. office365/sharepoint/fontpackages/oob_settings.py +5 -0
  127. office365/sharepoint/forms/customization.py +26 -0
  128. office365/sharepoint/ir/__init__.py +0 -0
  129. office365/sharepoint/ir/migration.py +5 -0
  130. office365/sharepoint/lists/list.py +30 -0
  131. office365/sharepoint/marketplace/app_metadata.py +12 -1
  132. office365/sharepoint/marketplace/app_metadata_collection.py +8 -0
  133. office365/sharepoint/marketplace/corporatecuratedgallery/addins/instance_info.py +22 -0
  134. office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_failed_info.py +5 -0
  135. office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_info.py +12 -0
  136. office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_response.py +15 -0
  137. office365/sharepoint/marketplace/corporatecuratedgallery/addins/principals_response.py +5 -0
  138. office365/sharepoint/marketplace/corporatecuratedgallery/app_request_information.py +9 -0
  139. office365/sharepoint/marketplace/corporatecuratedgallery/app_response_information.py +9 -0
  140. office365/sharepoint/marketplace/corporatecuratedgallery/available_addins_response.py +4 -0
  141. office365/sharepoint/marketplace/corporatecuratedgallery/card_design.py +9 -0
  142. office365/sharepoint/marketplace/corporatecuratedgallery/card_designs.py +9 -0
  143. office365/sharepoint/marketplace/corporatecuratedgallery/teams_package_download.py +14 -0
  144. office365/sharepoint/marketplace/tenant/appcatalog/accessor.py +62 -3
  145. office365/sharepoint/multigeo/services.py +14 -0
  146. office365/sharepoint/multigeo/storage_quota.py +9 -0
  147. office365/sharepoint/policy/license_utilities.py +27 -0
  148. office365/sharepoint/principal/principal.py +6 -0
  149. office365/sharepoint/request.py +95 -10
  150. office365/sharepoint/search/administration/document_crawl_log.py +16 -2
  151. office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +1 -1
  152. office365/sharepoint/search/reports/abandoned_queries.py +11 -1
  153. office365/sharepoint/search/reports/abandonedqueries/item.py +7 -1
  154. office365/sharepoint/sharing/domain_restriction_settings.py +5 -0
  155. office365/sharepoint/sharing/information.py +12 -0
  156. office365/sharepoint/sitehealth/result.py +4 -4
  157. office365/sharepoint/sitehealth/summary.py +5 -5
  158. office365/sharepoint/sites/copy_job_progress.py +5 -0
  159. office365/sharepoint/sites/copy_migration_iInfo.py +5 -0
  160. office365/sharepoint/sites/home/__init__.py +0 -0
  161. office365/sharepoint/sites/{sph_site.py → home/site.py} +1 -1
  162. office365/sharepoint/sites/site.py +26 -1
  163. office365/sharepoint/tenant/administration/app_service_principal_public.py +17 -0
  164. office365/sharepoint/tenant/administration/audit/data.py +12 -0
  165. office365/sharepoint/tenant/administration/audit/unified_record.py +18 -0
  166. office365/sharepoint/tenant/administration/coms/__init__.py +0 -0
  167. office365/sharepoint/tenant/administration/coms/messages_fields_data.py +5 -0
  168. office365/sharepoint/tenant/administration/coms/messages_service_proxy.py +16 -0
  169. office365/sharepoint/tenant/administration/copilot/__init__.py +0 -0
  170. office365/sharepoint/tenant/administration/copilot/adaptive_card_config.py +11 -0
  171. office365/sharepoint/tenant/administration/datagovernance/__init__.py +0 -0
  172. office365/sharepoint/tenant/administration/datagovernance/client_base.py +9 -0
  173. office365/sharepoint/tenant/administration/datagovernance/insight_client.py +82 -0
  174. office365/sharepoint/tenant/administration/datagovernance/insight_metadata.py +5 -0
  175. office365/sharepoint/tenant/administration/default_time_zone_id.py +11 -0
  176. office365/sharepoint/tenant/administration/endpoints.py +53 -2
  177. office365/sharepoint/tenant/administration/insights/onedrive_site_sharing.py +4 -0
  178. office365/sharepoint/tenant/administration/internal/appservice/permission_request.py +4 -0
  179. office365/sharepoint/tenant/administration/malware/__init__.py +0 -0
  180. office365/sharepoint/tenant/administration/malware/file.py +18 -0
  181. office365/sharepoint/tenant/administration/modified_property.py +5 -0
  182. office365/sharepoint/tenant/administration/policies/content_security_configuration.py +9 -0
  183. office365/sharepoint/tenant/administration/recent_action.py +9 -0
  184. office365/sharepoint/tenant/administration/reports/__init__.py +0 -0
  185. office365/sharepoint/tenant/administration/settings_service.py +38 -5
  186. office365/sharepoint/tenant/administration/sites/properties.py +78 -0
  187. office365/sharepoint/tenant/administration/sites/properties_collection.py +19 -0
  188. office365/sharepoint/tenant/administration/tenant.py +134 -7
  189. office365/sharepoint/tenant/administration/types.py +76 -1
  190. office365/sharepoint/tenant/insights/report_manager.py +29 -0
  191. office365/sharepoint/tenant/management/office365_tenant.py +7 -4
  192. office365/sharepoint/translation/job_status.py +22 -0
  193. office365/sharepoint/userprofiles/user_profile.py +6 -0
  194. office365/sharepoint/webparts/tile_data.py +21 -0
  195. office365/sharepoint/webs/dataleakage_prevention_status_info.py +5 -0
  196. office365/sharepoint/webs/web.py +80 -1
  197. office365/teams/chats/event_message_detail.py +8 -0
  198. office365/teams/deleted.py +24 -0
  199. office365/teams/work.py +35 -0
  200. office365/directory/tenant_relationship.py +0 -23
  201. office365/onedrive/admin.py +0 -32
  202. office365/onedrive/workbooks/charts/legend.py +0 -7
  203. office365/onedrive/workbooks/charts/series.py +0 -5
  204. {Office365_REST_Python_Client-2.5.14.dist-info → Office365_REST_Python_Client-2.6.1.dist-info}/LICENSE +0 -0
  205. {Office365_REST_Python_Client-2.5.14.dist-info → Office365_REST_Python_Client-2.6.1.dist-info}/WHEEL +0 -0
  206. {Office365_REST_Python_Client-2.5.14.dist-info → Office365_REST_Python_Client-2.6.1.dist-info}/top_level.txt +0 -0
  207. /office365/{onedrive → admin}/sharepoint_settings.py +0 -0
  208. /office365/directory/{tenant_information.py → tenantinformation/information.py} +0 -0
  209. /office365/{base_item.py → onedrive/base_item.py} +0 -0
  210. /office365/onedrive/sitepages/{horizontal_section_column.py → sections/horizontal_column.py} +0 -0
  211. /office365/onedrive/sitepages/{vertical_section.py → sections/vertical.py} +0 -0
  212. /office365/sharepoint/sites/{home_sites_details.py → home/details.py} +0 -0
  213. /office365/sharepoint/sites/{home_site_reference.py → home/reference.py} +0 -0
  214. /office365/sharepoint/tenant/administration/{app_billing_properties.py → policies/app_billing_properties.py} +0 -0
@@ -1,30 +1,89 @@
1
+ from typing import Callable, Optional
2
+
3
+ from office365.azure_env import AzureEnvironment
4
+ from office365.runtime.auth.entra.authentication_context import AuthenticationContext
5
+ from office365.runtime.http.request_options import RequestOptions
1
6
  from office365.runtime.odata.request import ODataRequest
2
7
  from office365.runtime.odata.v4.json_format import V4JsonFormat
3
8
 
4
- environments_endpoints = {
5
- "GCCH": {
6
- "graph_url": "https://graph.microsoft.com",
7
- "entra_url": "https://login.microsoftonline.com",
8
- },
9
- "GCC High": {
10
- "graph_url": "https://graph.microsoft.us",
11
- "entra_url": "https://login.microsoftonline.us",
12
- },
13
- "DoD": {
14
- "graph_url": "https://dod-graph.microsoft.us",
15
- "entra_url": "https://login.chinacloudapi.cn",
16
- },
17
- }
18
-
19
9
 
20
10
  class GraphRequest(ODataRequest):
21
- def __init__(self, version="v1.0", environment="GCCH"):
22
- # type: (str, str) -> None
11
+ def __init__(
12
+ self, version="v1.0", tenant=None, environment=AzureEnvironment.Global
13
+ ):
14
+ # type: (str, str, str) -> None
23
15
  super(GraphRequest, self).__init__(V4JsonFormat())
24
16
  self._version = version
25
- self._environment_endpoints = environments_endpoints.get(environment, None)
17
+ self._environment = environment
18
+ self._auth_context = AuthenticationContext(
19
+ environment=environment, tenant=tenant
20
+ )
21
+ self.beforeExecute += self.authenticate_request
22
+
23
+ def with_access_token(self, token_callback):
24
+ # type: (Callable[[], dict]) -> "GraphRequest"
25
+ """
26
+ Initializes the confidential client with token callback.
27
+ """
28
+ self._auth_context.with_access_token(token_callback)
29
+ return self
30
+
31
+ def with_certificate(self, client_id, thumbprint, private_key):
32
+ # type: (str, str, str) -> "GraphRequest"
33
+ """
34
+ Initializes the confidential client with client certificate
35
+
36
+ :param str client_id: The OAuth client id of the calling application.
37
+ :param str thumbprint: Thumbprint
38
+ :param str private_key: Private key
39
+ """
40
+ self._auth_context.with_certificate(client_id, thumbprint, private_key)
41
+ return self
42
+
43
+ def with_client_secret(self, client_id, client_secret):
44
+ # type: (str, str) -> "GraphRequest"
45
+ """
46
+ Initializes the confidential client with client secret
47
+
48
+ :param str client_id: The OAuth client id of the calling application.
49
+ :param str client_secret: Client secret
50
+ """
51
+ self._auth_context.with_client_secret(client_id, client_secret)
52
+ return self
53
+
54
+ def with_token_interactive(self, client_id, username=None):
55
+ # type: (str, Optional[str]) -> "GraphRequest"
56
+ """
57
+ Initializes the client via user credentials
58
+ Note: only works if your app is registered with redirect_uri as http://localhost
59
+
60
+
61
+ :param str client_id: The OAuth client id of the calling application.
62
+ :param str username: Typically a UPN in the form of an email address.
63
+ """
64
+ self._auth_context.with_token_interactive(client_id, username)
65
+ return self
66
+
67
+ def with_username_and_password(self, client_id, username, password):
68
+ # type: (str, str, str) -> "GraphRequest"
69
+ """
70
+ Initializes the client via user credentials
71
+ :param str client_id: The OAuth client id of the calling application.
72
+ :param str username: Typically a UPN in the form of an email address.
73
+ :param str password: The password.
74
+ """
75
+ self._auth_context.with_username_and_password(client_id, username, password)
76
+ return self
77
+
78
+ def authenticate_request(self, request):
79
+ # type: (RequestOptions) -> None
80
+ """Authenticate request"""
81
+ token = self._auth_context.acquire_token()
82
+ request.ensure_header("Authorization", "Bearer {0}".format(token.accessToken))
26
83
 
27
84
  @property
28
85
  def service_root_url(self):
29
86
  # type: () -> str
30
- return "https://graph.microsoft.com/{0}".format(self._version)
87
+ return "{0}/{1}".format(
88
+ AzureEnvironment.get_graph_authority(self._environment), self._version
89
+ )
@@ -2,4 +2,4 @@ from office365.entity import Entity
2
2
 
3
3
 
4
4
  class ServiceHealth(Entity):
5
- """Represents the health information of a service subscribed by a tenant."""
5
+ """Represents the sitehealth information of a service subscribed by a tenant."""
@@ -7,9 +7,9 @@ from office365.runtime.queries.function import FunctionQuery
7
7
 
8
8
  class ServiceHealthIssue(ServiceAnnouncementBase):
9
9
  """
10
- Represents a service health issue in a service.
10
+ Represents a service sitehealth issue in a service.
11
11
 
12
- The service health issue can be a service incident or service advisory. For example:
12
+ The service sitehealth issue can be a service incident or service advisory. For example:
13
13
 
14
14
  - Service incident: "Exchange mailbox service is down".
15
15
  - Service advisory: "Users may experience delays in emails reception".
@@ -1,6 +1,6 @@
1
1
  from typing import Optional
2
2
 
3
- from office365.base_item import BaseItem
3
+ from office365.onedrive.base_item import BaseItem
4
4
  from office365.onedrive.columns.boolean import BooleanColumn
5
5
  from office365.onedrive.columns.calculated import CalculatedColumn
6
6
  from office365.onedrive.columns.choice import ChoiceColumn
@@ -1,7 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
- from office365.base_item import BaseItem
4
3
  from office365.entity_collection import EntityCollection
4
+ from office365.onedrive.base_item import BaseItem
5
5
  from office365.onedrive.columns.column_link import ColumnLink
6
6
  from office365.onedrive.columns.definition import ColumnDefinition
7
7
  from office365.onedrive.contenttypes.order import ContentTypeOrder
@@ -9,11 +9,11 @@ from typing import IO, AnyStr, Callable, Optional, TypeVar
9
9
  import requests
10
10
  from typing_extensions import Self
11
11
 
12
- from office365.base_item import BaseItem
13
12
  from office365.delta_path import DeltaPath
14
13
  from office365.entity_collection import EntityCollection
15
14
  from office365.onedrive.analytics.item_activity_stat import ItemActivityStat
16
15
  from office365.onedrive.analytics.item_analytics import ItemAnalytics
16
+ from office365.onedrive.base_item import BaseItem
17
17
  from office365.onedrive.driveitems.audio import Audio
18
18
  from office365.onedrive.driveitems.conflict_behavior import ConflictBehavior
19
19
  from office365.onedrive.driveitems.geo_coordinates import GeoCoordinates
@@ -66,6 +66,7 @@ class DriveItem(BaseItem):
66
66
  OneDrive and SharePoint are returned as driveItem resources"""
67
67
 
68
68
  def get_files(self, recursive=False, page_size=None):
69
+ # type: (bool, Optional[int]) -> EntityCollection["DriveItem"]
69
70
  """Retrieves files
70
71
  :param bool recursive: Determines whether to enumerate folders recursively
71
72
  :param int page_size: Page size
@@ -94,6 +95,7 @@ class DriveItem(BaseItem):
94
95
  return return_type
95
96
 
96
97
  def get_folders(self, recursive=False, page_size=None):
98
+ # type: (bool, Optional[int]) -> EntityCollection["DriveItem"]
97
99
  """Retrieves folders
98
100
  :param bool recursive: Determines whether to enumerate folders recursively
99
101
  :param int page_size: Page size
@@ -177,6 +179,16 @@ class DriveItem(BaseItem):
177
179
  self.context.add_query(qry)
178
180
  return return_type
179
181
 
182
+ def discard_checkout(self):
183
+ """Discard the check out of a driveItem. This action releases a driveItem resource that was previously
184
+ checked out. Any changes made to the item while it was checked out are discarded.
185
+
186
+ The same user that performed the checkout must discard it. Another alternative is to use application permissions
187
+ """
188
+ qry = ServiceOperationQuery(self, "discardCheckout")
189
+ self.context.add_query(qry)
190
+ return self
191
+
180
192
  def extract_sensitivity_labels(self):
181
193
  # type: () -> ClientResult[ExtractSensitivityLabelsResult]
182
194
  """
@@ -1,8 +1,8 @@
1
1
  from typing import Optional
2
2
 
3
- from office365.base_item import BaseItem
4
3
  from office365.directory.permissions.identity_set import IdentitySet
5
4
  from office365.entity_collection import EntityCollection
5
+ from office365.onedrive.base_item import BaseItem
6
6
  from office365.onedrive.driveitems.conflict_behavior import ConflictBehavior
7
7
  from office365.onedrive.driveitems.driveItem import DriveItem
8
8
  from office365.onedrive.driveitems.system_facet import SystemFacet
File without changes
@@ -0,0 +1,7 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class FileStorageContainer(Entity):
5
+ """Represents a location where multiple users or a group of users can store files and access them
6
+ via an application. All file system objects in a fileStorageContainer are returned as driveItem resources.
7
+ """
@@ -0,0 +1,20 @@
1
+ from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
3
+ from office365.onedrive.filestorage.container import FileStorageContainer
4
+ from office365.runtime.paths.resource_path import ResourcePath
5
+
6
+
7
+ class FileStorage(Entity):
8
+ """Represents the structure of active and deleted fileStorageContainer objects."""
9
+
10
+ @property
11
+ def containers(self):
12
+ """The collection of active fileStorageContainers"""
13
+ return self.properties.get(
14
+ "containers",
15
+ EntityCollection(
16
+ self.context,
17
+ FileStorageContainer,
18
+ ResourcePath("containers", self.resource_path),
19
+ ),
20
+ )
@@ -1,4 +1,4 @@
1
- from office365.base_item import BaseItem
1
+ from office365.onedrive.base_item import BaseItem
2
2
 
3
3
 
4
4
  class FieldValueSet(BaseItem):
@@ -1,6 +1,6 @@
1
- from office365.base_item import BaseItem
2
1
  from office365.entity_collection import EntityCollection
3
2
  from office365.onedrive.analytics.item_analytics import ItemAnalytics
3
+ from office365.onedrive.base_item import BaseItem
4
4
  from office365.onedrive.contenttypes.info import ContentTypeInfo
5
5
  from office365.onedrive.documentsets.version import DocumentSetVersion
6
6
  from office365.onedrive.internal.queries.get_activities_by_interval import (
@@ -1,7 +1,7 @@
1
1
  from typing import Optional
2
2
 
3
- from office365.base_item import BaseItem
4
3
  from office365.entity_collection import EntityCollection
4
+ from office365.onedrive.base_item import BaseItem
5
5
  from office365.onedrive.columns.definition_collection import ColumnDefinitionCollection
6
6
  from office365.onedrive.contenttypes.collection import ContentTypeCollection
7
7
  from office365.onedrive.listitems.list_item import ListItem
File without changes
@@ -0,0 +1,6 @@
1
+ from office365.onedrive.base_item import BaseItem
2
+
3
+
4
+ class RecycleBinItem(BaseItem):
5
+ """Represents information about a deleted item in a recycleBin of a SharePoint site or a SharePoint
6
+ Embedded fileStorageContainer."""
@@ -0,0 +1,29 @@
1
+ from office365.entity_collection import EntityCollection
2
+ from office365.onedrive.base_item import BaseItem
3
+ from office365.onedrive.recyclebin.item import RecycleBinItem
4
+ from office365.onedrive.recyclebin.settings import RecycleBinSettings
5
+ from office365.runtime.paths.resource_path import ResourcePath
6
+
7
+
8
+ class RecycleBin(BaseItem):
9
+ """Represents a container for a collection of recycleBinItem resources in a SharePoint site or a
10
+ SharePoint Embedded fileStorageContainer."""
11
+
12
+ @property
13
+ def items(self):
14
+ # type: () -> EntityCollection[RecycleBinItem]
15
+ """List of the recycleBinItems deleted by a user."""
16
+ return self.properties.setdefault(
17
+ "items",
18
+ EntityCollection(
19
+ self.context,
20
+ RecycleBinItem,
21
+ ResourcePath("items", self.resource_path),
22
+ self,
23
+ ),
24
+ )
25
+
26
+ @property
27
+ def settings(self):
28
+ """Settings for the recycleBin"""
29
+ return self.properties.get("settings", RecycleBinSettings())
@@ -0,0 +1,13 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class RecycleBinSettings(ClientValue):
5
+ """Represents settings for the recycleBin resource type."""
6
+
7
+ def __init__(self, retention_period_override_days=None):
8
+ """
9
+ :param int retention_period_override_days: Recycle bin retention period override in days for deleted content.
10
+ The default value is 93; the value range is 7 to 180. The setting applies to newly deleted content only.
11
+ Setting this property to null reverts to its default value.
12
+ """
13
+ self.retentionPeriodOverrideDays = retention_period_override_days
@@ -1,6 +1,6 @@
1
- from office365.base_item import BaseItem
2
1
  from office365.directory.permissions.identity_set import IdentitySet
3
2
  from office365.entity_collection import EntityCollection
3
+ from office365.onedrive.base_item import BaseItem
4
4
  from office365.onedrive.driveitems.driveItem import DriveItem
5
5
  from office365.onedrive.internal.paths.root import RootPath
6
6
  from office365.onedrive.listitems.list_item import ListItem
@@ -1,6 +1,6 @@
1
1
  from typing import Optional
2
2
 
3
- from office365.base_item import BaseItem
3
+ from office365.onedrive.base_item import BaseItem
4
4
  from office365.onedrive.driveitems.publication_facet import PublicationFacet
5
5
 
6
6
 
@@ -1,7 +1,7 @@
1
1
  from office365.entity import Entity
2
2
  from office365.entity_collection import EntityCollection
3
- from office365.onedrive.sitepages.horizontal_section import HorizontalSection
4
- from office365.onedrive.sitepages.vertical_section import VerticalSection
3
+ from office365.onedrive.sitepages.sections.horizontal import HorizontalSection
4
+ from office365.onedrive.sitepages.sections.vertical import VerticalSection
5
5
  from office365.runtime.paths.resource_path import ResourcePath
6
6
 
7
7
 
File without changes
@@ -1,6 +1,6 @@
1
1
  from office365.entity import Entity
2
2
  from office365.entity_collection import EntityCollection
3
- from office365.onedrive.sitepages.horizontal_section_column import (
3
+ from office365.onedrive.sitepages.sections.horizontal_column import (
4
4
  HorizontalSectionColumn,
5
5
  )
6
6
  from office365.runtime.paths.resource_path import ResourcePath
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class WebPartData(ClientValue):
5
+ """"""
@@ -0,0 +1,5 @@
1
+ from office365.runtime.client_value import ClientValue
2
+
3
+
4
+ class WebPartPosition(ClientValue):
5
+ """Represents the position information of the given web part to the current page"""
@@ -1,5 +1,14 @@
1
+ from typing import Optional
2
+
3
+ from office365.onedrive.sitepages.webparts.data import WebPartData
1
4
  from office365.onedrive.sitepages.webparts.web_part import WebPart
2
5
 
3
6
 
4
7
  class StandardWebPart(WebPart):
5
8
  """Represents a standard web part instance on a SharePoint page."""
9
+
10
+ @property
11
+ def data(self):
12
+ # type: () -> Optional[WebPartData]
13
+ """Data of the webPart."""
14
+ return self.properties.get("data", WebPartData())
@@ -1,5 +1,17 @@
1
1
  from office365.entity import Entity
2
+ from office365.onedrive.sitepages.webparts.position import WebPartPosition
3
+ from office365.runtime.client_result import ClientResult
4
+ from office365.runtime.queries.service_operation import ServiceOperationQuery
2
5
 
3
6
 
4
7
  class WebPart(Entity):
5
8
  """Represents a specific web part instance on a SharePoint page."""
9
+
10
+ def get_position_of_web_part(self):
11
+ """Returns the position of the specified web part in the page."""
12
+ return_type = ClientResult(self.context, WebPartPosition())
13
+ qry = ServiceOperationQuery(
14
+ self, "getPositionOfWebPart", return_type=return_type
15
+ )
16
+ self.context.add_query(qry)
17
+ return self
@@ -1,10 +1,10 @@
1
1
  from datetime import datetime
2
2
  from typing import Optional
3
3
 
4
- from office365.base_item import BaseItem
5
4
  from office365.entity_collection import EntityCollection
6
5
  from office365.onedrive.analytics.item_activity_stat import ItemActivityStat
7
6
  from office365.onedrive.analytics.item_analytics import ItemAnalytics
7
+ from office365.onedrive.base_item import BaseItem
8
8
  from office365.onedrive.columns.definition_collection import ColumnDefinitionCollection
9
9
  from office365.onedrive.contenttypes.collection import ContentTypeCollection
10
10
  from office365.onedrive.drives.drive import Drive
@@ -1,5 +1,15 @@
1
1
  from office365.entity import Entity
2
+ from office365.onedrive.filestorage.file_storage import FileStorage
3
+ from office365.runtime.paths.resource_path import ResourcePath
2
4
 
3
5
 
4
6
  class Storage(Entity):
5
7
  """Facilitates the structures of fileStorageContainers."""
8
+
9
+ @property
10
+ def file_storage(self):
11
+ """FileStorageContainer"""
12
+ return self.properties.get(
13
+ "fileStorage",
14
+ FileStorage(self.context, ResourcePath("fileStorage", self.resource_path)),
15
+ )
@@ -1,7 +1,47 @@
1
1
  from office365.entity import Entity
2
+ from office365.onedrive.workbooks.charts.axis import WorkbookChartAxis
3
+ from office365.runtime.paths.resource_path import ResourcePath
2
4
 
3
5
 
4
6
  class WorkbookChartAxes(Entity):
5
7
  """Represents the chart axes."""
6
8
 
7
- pass
9
+ @property
10
+ def category_axis(self):
11
+ """Represents the category axis in a chart."""
12
+ return self.properties.get(
13
+ "categoryAxis",
14
+ WorkbookChartAxis(
15
+ self.context, ResourcePath("categoryAxis", self.resource_path)
16
+ ),
17
+ )
18
+
19
+ @property
20
+ def series_axis(self):
21
+ """Represents the series axis of a 3-dimensional chart."""
22
+ return self.properties.get(
23
+ "seriesAxis",
24
+ WorkbookChartAxis(
25
+ self.context, ResourcePath("seriesAxis", self.resource_path)
26
+ ),
27
+ )
28
+
29
+ @property
30
+ def value_axis(self):
31
+ """Represents the value axis in an axis."""
32
+ return self.properties.get(
33
+ "valueAxis",
34
+ WorkbookChartAxis(
35
+ self.context, ResourcePath("valueAxis", self.resource_path)
36
+ ),
37
+ )
38
+
39
+ def get_property(self, name, default_value=None):
40
+ if default_value is None:
41
+ property_mapping = {
42
+ "categoryAxis": self.category_axis,
43
+ "seriesAxis": self.series_axis,
44
+ "valueAxis": self.value_axis,
45
+ }
46
+ default_value = property_mapping.get(name, None)
47
+ return super(WorkbookChartAxes, self).get_property(name, default_value)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class WorkbookChartAxis(Entity):
5
+ """Represents a single axis in a chart."""
@@ -1,21 +1,50 @@
1
1
  from office365.entity import Entity
2
+ from office365.entity_collection import EntityCollection
2
3
  from office365.onedrive.workbooks.charts.axes import WorkbookChartAxes
3
4
  from office365.onedrive.workbooks.charts.data_labels import WorkbookChartDataLabels
5
+ from office365.onedrive.workbooks.charts.legend.legend import WorkbookChartLegend
6
+ from office365.onedrive.workbooks.charts.series.series import WorkbookChartSeries
7
+ from office365.onedrive.workbooks.charts.title import WorkbookChartTitle
8
+ from office365.runtime.client_result import ClientResult
4
9
  from office365.runtime.paths.resource_path import ResourcePath
10
+ from office365.runtime.queries.function import FunctionQuery
5
11
  from office365.runtime.queries.service_operation import ServiceOperationQuery
6
12
 
7
13
 
8
14
  class WorkbookChart(Entity):
9
15
  """Represents a chart object in a workbook."""
10
16
 
11
- def set_position(self, startCell, endCell):
17
+ def image(self, width=None, height=None):
18
+ """Renders the chart as a base64-encoded image by scaling the chart to fit the specified dimensions.
19
+
20
+ :param int width: Specifies the width of the rendered image in pixels.
21
+ :param int height: Specifies the height of the rendered image in pixels.
22
+ """
23
+ return_type = ClientResult(self.context)
24
+ params = {"width": width, "height": height}
25
+ qry = FunctionQuery(self, "image", params, return_type)
26
+ self.context.add_query(qry)
27
+ return return_type
28
+
29
+ def set_data(self, source_data, series_by):
30
+ """
31
+ Updates the data source of a chart
32
+ :param dict source_data:
33
+ :param str series_by:
34
+ """
35
+ payload = {"sourceData": source_data, "seriesBy": series_by}
36
+ qry = ServiceOperationQuery(self, "setData", None, payload)
37
+ self.context.add_query(qry)
38
+ return self
39
+
40
+ def set_position(self, start_cell, end_cell):
12
41
  """Positions the chart relative to cells on the worksheet.
13
- :param str startCell: The start cell. It is where the chart is moved to. The start cell is the top-left or
42
+ :param str start_cell: The start cell. It is where the chart is moved to. The start cell is the top-left or
14
43
  top-right cell, depending on the user's right-to-left display settings.
15
- :param str endCell: The end cell. If specified, the chart's width and height is set to fully cover up
44
+ :param str end_cell: The end cell. If specified, the chart's width and height is set to fully cover up
16
45
  this cell/range.
17
46
  """
18
- payload = {"startCell": startCell, "endCell": endCell}
47
+ payload = {"startCell": start_cell, "endCell": end_cell}
19
48
  qry = ServiceOperationQuery(self, "setPosition", None, payload)
20
49
  self.context.add_query(qry)
21
50
  return self
@@ -30,7 +59,7 @@ class WorkbookChart(Entity):
30
59
 
31
60
  @property
32
61
  def data_labels(self):
33
- """Represents the datalabels on the chart."""
62
+ """Represents the data labels on the chart."""
34
63
  return self.properties.get(
35
64
  "dataLabels",
36
65
  WorkbookChartDataLabels(
@@ -38,6 +67,36 @@ class WorkbookChart(Entity):
38
67
  ),
39
68
  )
40
69
 
70
+ @property
71
+ def legend(self):
72
+ """Represents the legend on the chart."""
73
+ return self.properties.get(
74
+ "legend",
75
+ WorkbookChartLegend(
76
+ self.context, ResourcePath("legend", self.resource_path)
77
+ ),
78
+ )
79
+
80
+ @property
81
+ def series(self):
82
+ """Represents chart series."""
83
+ return self.properties.get(
84
+ "series",
85
+ EntityCollection(
86
+ self.context,
87
+ WorkbookChartSeries,
88
+ ResourcePath("series", self.resource_path),
89
+ ),
90
+ )
91
+
92
+ @property
93
+ def title(self):
94
+ """Represents the title on the chart."""
95
+ return self.properties.get(
96
+ "title",
97
+ WorkbookChartTitle(self.context, ResourcePath("title", self.resource_path)),
98
+ )
99
+
41
100
  @property
42
101
  def worksheet(self):
43
102
  """The worksheet containing the current chart."""
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class WorkbookChartFill(Entity):
5
+ """Represents the fill formatting for a chart element."""
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class WorkbookChartFont(Entity):
5
+ """This object represents the font attributes (font name, font size, color, etc.) for a chart object."""
File without changes
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class WorkbookChartLegendFormat(Entity):
5
+ """Encapsulates the format properties of a chart legend."""
@@ -0,0 +1,26 @@
1
+ from typing import Optional
2
+
3
+ from office365.entity import Entity
4
+
5
+
6
+ class WorkbookChartLegend(Entity):
7
+ """Represents the legend in a chart."""
8
+
9
+ @property
10
+ def overlay(self):
11
+ # type: () -> Optional[bool]
12
+ """Indicates whether the chart legend should overlap with the main body of the chart."""
13
+ return self.properties.get("overlay", None)
14
+
15
+ @property
16
+ def position(self):
17
+ # type: () -> Optional[str]
18
+ """Represents the position of the legend on the chart.
19
+ The possible values are: Top, Bottom, Left, Right, Corner, Custom."""
20
+ return self.properties.get("position", None)
21
+
22
+ @property
23
+ def visible(self):
24
+ # type: () -> Optional[bool]
25
+ """Indicates whether the chart legend is visible."""
26
+ return self.properties.get("visible", None)
@@ -0,0 +1,5 @@
1
+ from office365.entity import Entity
2
+
3
+
4
+ class WorkbookChartPoint(Entity):
5
+ """Represents a point of a series in a chart."""
File without changes