Office365-REST-Python-Client 2.6.1__py3-none-any.whl → 2.6.2__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.
- {Office365_REST_Python_Client-2.6.1.dist-info → Office365_REST_Python_Client-2.6.2.dist-info}/METADATA +1 -1
- {Office365_REST_Python_Client-2.6.1.dist-info → Office365_REST_Python_Client-2.6.2.dist-info}/RECORD +232 -155
- office365/admin/people_settings.py +16 -0
- office365/admin/sharepoint_settings.py +50 -1
- office365/admin/sharing_capabilities.py +2 -0
- office365/communications/calls/participant.py +6 -0
- office365/communications/onlinemeetings/broadcast_settings.py +5 -0
- office365/communications/onlinemeetings/collection.py +29 -0
- office365/communications/onlinemeetings/online_meeting.py +1 -1
- office365/communications/onlinemeetings/recordings/call.py +5 -0
- office365/communications/onlinemeetings/restricted.py +5 -0
- office365/directory/applications/collection.py +11 -0
- office365/directory/audit/directory.py +31 -0
- office365/directory/audit/signins/signin.py +14 -0
- office365/directory/audit/target_resource.py +5 -0
- office365/directory/authentication/conditions/conditions.py +5 -1
- office365/directory/datapolicy/operation.py +39 -0
- office365/directory/directory.py +13 -0
- office365/directory/identitygovernance/accessreview/instance.py +29 -0
- office365/directory/identitygovernance/accessreview/stage.py +13 -0
- office365/directory/identitygovernance/accessreview/stages.py +11 -0
- office365/directory/identitygovernance/appconsent/request.py +9 -0
- office365/directory/identitygovernance/privilegedaccess/group.py +1 -1
- office365/directory/identitygovernance/privilegedaccess/schedule/__init__.py +0 -0
- office365/directory/identitygovernance/privilegedaccess/{group_assignment_schedule_instance.py → schedule/group_assignment_instance.py} +1 -1
- office365/directory/identitygovernance/privilegedaccess/schedule/schedule.py +6 -0
- office365/directory/insights/trending.py +25 -0
- office365/directory/licenses/assignment_state.py +5 -5
- office365/directory/licenses/details.py +6 -0
- office365/directory/permissions/scoped_role_membership.py +8 -0
- office365/directory/policies/applied_conditional_access.py +31 -0
- office365/directory/policies/feature_rollout.py +24 -0
- office365/directory/protection/information.py +73 -2
- office365/directory/protection/riskyusers/collection.py +1 -1
- office365/directory/protection/threatassessment/requests/__init__.py +0 -0
- office365/directory/protection/threatassessment/{email_file_request.py → requests/email_file.py} +9 -1
- office365/directory/protection/threatassessment/requests/file.py +10 -0
- office365/directory/protection/threatassessment/{mail_request.py → requests/mail.py} +1 -1
- office365/directory/protection/threatassessment/requests/url.py +9 -0
- office365/directory/rolemanagement/app_scope.py +14 -0
- office365/directory/rolemanagement/application.py +3 -2
- office365/directory/rolemanagement/role.py +15 -0
- office365/directory/rolemanagement/unifiedrole/__init__.py +0 -0
- office365/directory/rolemanagement/{unified_role_assignment.py → unifiedrole/assignment.py} +37 -1
- office365/directory/rolemanagement/{unified_role_definition.py → unifiedrole/definition.py} +6 -1
- office365/directory/security/alerts/file_security_state.py +5 -0
- office365/directory/security/attacksimulations/automation.py +8 -0
- office365/directory/security/attacksimulations/automation_run.py +8 -0
- office365/directory/security/attacksimulations/repeat_offender.py +7 -0
- office365/directory/security/attacksimulations/report.py +2 -2
- office365/directory/security/attacksimulations/user.py +5 -0
- office365/directory/security/incidents/incident.py +6 -1
- office365/directory/security/security.py +5 -0
- office365/directory/subscriptions/__init__.py +0 -0
- office365/directory/subscriptions/company.py +7 -0
- office365/directory/synchronization/progress.py +12 -0
- office365/directory/users/activities/activity.py +10 -1
- office365/directory/users/settings.py +51 -1
- office365/directory/users/storage.py +5 -0
- office365/directory/users/user.py +114 -3
- office365/entity_collection.py +21 -0
- office365/onedrive/contenttypes/collection.py +2 -0
- office365/onedrive/driveitems/driveItem.py +3 -2
- office365/onedrive/driveitems/publication_facet.py +6 -1
- office365/onedrive/filestorage/container.py +22 -0
- office365/onedrive/filestorage/container_collection.py +37 -0
- office365/onedrive/filestorage/file_storage.py +4 -4
- office365/onedrive/listitems/collection.py +38 -0
- office365/onedrive/lists/list.py +3 -5
- office365/onedrive/sitepages/base.py +8 -0
- office365/onedrive/sitepages/collection.py +8 -2
- office365/onedrive/sitepages/site_page.py +13 -2
- office365/onedrive/sites/site.py +1 -1
- office365/onedrive/workbooks/charts/title.py +12 -0
- office365/onedrive/workbooks/charts/title_format.py +5 -0
- office365/onedrive/workbooks/functions/functions.py +16 -0
- office365/onedrive/workbooks/ranges/border.py +30 -0
- office365/onedrive/workbooks/ranges/font.py +39 -0
- office365/onedrive/workbooks/ranges/range.py +6 -0
- office365/onedrive/workbooks/worksheets/protection_options.py +34 -5
- office365/outlook/calendar/events/event.py +57 -0
- office365/outlook/mail/automatic_replies_mailtips.py +20 -0
- office365/outlook/mail/folders/folder.py +3 -4
- office365/outlook/mail/messages/message.py +21 -4
- office365/outlook/mail/messages/rules/collection.py +26 -0
- office365/outlook/mail/tips/__init__.py +0 -0
- office365/outlook/mail/tips/error.py +5 -0
- office365/outlook/mail/tips/tips.py +41 -0
- office365/outlook/people/__init__.py +0 -0
- office365/outlook/people/profile_card_property.py +15 -0
- office365/outlook/person.py +7 -0
- office365/planner/category_descriptions.py +6 -0
- office365/planner/external_references.py +7 -0
- office365/planner/planner.py +4 -4
- office365/planner/plans/container.py +12 -0
- office365/planner/plans/details.py +31 -0
- office365/planner/tasks/collection.py +37 -0
- office365/planner/tasks/task.py +24 -0
- office365/planner/tasks/task_details.py +34 -1
- office365/planner/user_ids.py +8 -0
- office365/reports/internal/queries/create_report_query.py +12 -3
- office365/reports/root.py +61 -2
- office365/runtime/auth/authentication_context.py +10 -1
- office365/runtime/auth/sts_profile.py +3 -1
- office365/runtime/client_object.py +1 -1
- office365/runtime/client_object_collection.py +3 -5
- office365/runtime/client_result.py +3 -3
- office365/runtime/client_runtime_context.py +2 -2
- office365/runtime/odata/json_format.py +14 -3
- office365/runtime/odata/request.py +1 -3
- office365/runtime/odata/v3/json_light_format.py +18 -0
- office365/runtime/odata/v4/json_format.py +19 -0
- office365/runtime/queries/client_query.py +13 -8
- office365/runtime/queries/create_entity.py +7 -5
- office365/runtime/queries/delete_entity.py +6 -2
- office365/runtime/queries/function.py +3 -4
- office365/runtime/queries/read_entity.py +3 -5
- office365/runtime/queries/service_operation.py +2 -7
- office365/search/acronyms/__init__.py +0 -0
- office365/search/answer.py +35 -0
- office365/search/bookmarks/__init__.py +0 -0
- office365/search/bookmarks/bookmark.py +7 -0
- office365/search/entity.py +81 -2
- office365/search/entity_type.py +6 -1
- office365/search/external/item.py +5 -0
- office365/search/identity_set.py +11 -0
- office365/search/qnas/__init__.py +0 -0
- office365/search/qnas/qna.py +9 -0
- office365/sharepoint/activities/client_response.py +2 -2
- office365/sharepoint/apps/launcher.py +9 -0
- office365/sharepoint/brandcenter/brand_center.py +26 -0
- office365/sharepoint/client_context.py +19 -1
- office365/sharepoint/compliance/preserve_document_submitter.py +5 -0
- office365/sharepoint/compliance/store_proxy.py +75 -0
- office365/sharepoint/convergence/migration_complete_state_api.py +9 -0
- office365/sharepoint/copilot/file_metadata.py +5 -0
- office365/sharepoint/fields/builtin_field_id.py +8 -0
- office365/sharepoint/files/collection.py +10 -0
- office365/sharepoint/files/file.py +24 -3
- office365/sharepoint/listitems/listitem.py +61 -3
- office365/sharepoint/lists/exporter.py +1 -0
- office365/sharepoint/lists/list.py +37 -3
- office365/sharepoint/migrationcenter/common/results/batch_creation.py +24 -0
- office365/sharepoint/migrationcenter/common/task.py +8 -0
- office365/sharepoint/migrationcenter/common/task_definition.py +7 -1
- office365/sharepoint/migrationcenter/common/teams/__init__.py +0 -0
- office365/sharepoint/migrationcenter/common/teams/channel_resource.py +5 -0
- office365/sharepoint/migrationcenter/common/teams/team_resource.py +5 -0
- office365/sharepoint/migrationcenter/common/url_parser.py +39 -0
- office365/sharepoint/migrationcenter/service/services.py +13 -1
- office365/sharepoint/migrationcenter/service/teams.py +11 -0
- office365/sharepoint/navigation/node.py +7 -16
- office365/sharepoint/policy/license_utilities.py +1 -0
- office365/sharepoint/portal/groups/creation_context.py +11 -0
- office365/sharepoint/portal/groups/service.py +1 -1
- office365/sharepoint/portal/groups/site_manager.py +1 -1
- office365/sharepoint/publishing/pages/3d/__init__.py +0 -0
- office365/sharepoint/publishing/pages/3d/types.py +5 -0
- office365/sharepoint/publishing/pages/campaign/__init__.py +0 -0
- office365/sharepoint/publishing/pages/{campaign_publication.py → campaign/publication.py} +2 -0
- office365/sharepoint/publishing/pages/campaign/types.py +18 -0
- office365/sharepoint/publishing/pages/coauth_state.py +20 -0
- office365/sharepoint/publishing/pages/dependency_metadata.py +9 -0
- office365/sharepoint/publishing/pages/metadata.py +0 -10
- office365/sharepoint/publishing/pages/page.py +29 -0
- office365/sharepoint/publishing/pages/service.py +27 -6
- office365/sharepoint/publishing/pages/topics/collection.py +1 -1
- office365/sharepoint/request.py +5 -1
- office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +16 -0
- office365/sharepoint/sharing/access_request_settings.py +18 -0
- office365/sharepoint/sharing/address_bar_link_settings.py +5 -0
- office365/sharepoint/sharing/information.py +2 -0
- office365/sharepoint/sharing/links/partial_success_response.py +4 -0
- office365/sharepoint/sites/azure_container_Info.py +4 -1
- office365/sharepoint/sites/brand_center_configuration.py +5 -0
- office365/sharepoint/sites/manager/__init__.py +0 -0
- office365/sharepoint/sites/manager/service.py +34 -0
- office365/sharepoint/sites/manager/types.py +5 -0
- office365/sharepoint/sites/site.py +54 -0
- office365/sharepoint/sites/themes.py +5 -0
- office365/sharepoint/storagemetrics/storage_metrics.py +18 -0
- office365/sharepoint/tenant/administration/copilot/agentinsights/__init__.py +0 -0
- office365/sharepoint/tenant/administration/copilot/agentinsights/client.py +42 -0
- office365/sharepoint/tenant/administration/copilot/agentinsights/report_metadata.py +5 -0
- office365/sharepoint/tenant/administration/group.py +34 -0
- office365/sharepoint/tenant/administration/policies/file_version_types.py +17 -0
- office365/sharepoint/tenant/administration/policies/list_parameters.py +9 -0
- office365/sharepoint/tenant/administration/policies/resource_storage.py +9 -0
- office365/sharepoint/tenant/administration/sites/properties_enumerable_filter.py +6 -0
- office365/sharepoint/tenant/administration/tenant.py +182 -5
- office365/sharepoint/userprofiles/people_manager.py +3 -1
- office365/sharepoint/utilities/utility.py +16 -0
- office365/sharepoint/webparts/definition.py +26 -0
- office365/sharepoint/webparts/limited_manager.py +53 -0
- office365/sharepoint/webparts/webpart.py +47 -0
- office365/sharepoint/webs/regional_settings.py +27 -0
- office365/sharepoint/webs/web.py +20 -1
- office365/teams/apps/app.py +17 -0
- office365/teams/apps/authorization.py +16 -0
- office365/teams/apps/permission_set.py +14 -0
- office365/teams/apps/resource_specific_permission.py +5 -0
- office365/teams/chats/chat.py +60 -0
- office365/teams/chats/messages/message.py +17 -0
- office365/teams/chats/type.py +13 -0
- office365/teams/chats/viewpoint.py +5 -0
- office365/teams/fun_settings.py +14 -2
- office365/teams/info.py +1 -1
- office365/teams/schedule/entity.py +3 -0
- office365/teams/schedule/shifts/item.py +1 -0
- office365/teams/schedule/shifts/offer/request.py +41 -1
- office365/teams/teamwork/activity_topic.py +5 -0
- office365/teams/teamwork/online_meeting_info.py +21 -0
- office365/teams/teamwork/shiftmanagement/__init__.py +0 -0
- office365/teams/teamwork/shiftmanagement/user_solution_root.py +5 -0
- office365/teams/teamwork/user.py +48 -1
- office365/teams/teamwork/user_identity.py +5 -0
- office365/teams/viva/community.py +13 -0
- office365/teams/viva/employee_experience.py +27 -0
- office365/teams/viva/employee_experience_user.py +16 -0
- office365/teams/viva/learning/courses/self_initiated.py +5 -0
- office365/todo/attachments/task_file.py +3 -0
- office365/todo/checklist_item.py +11 -0
- office365/todo/tasks/list.py +11 -0
- office365/todo/tasks/task.py +31 -0
- office365/outlook/mail/tips.py +0 -17
- {Office365_REST_Python_Client-2.6.1.dist-info → Office365_REST_Python_Client-2.6.2.dist-info}/LICENSE +0 -0
- {Office365_REST_Python_Client-2.6.1.dist-info → Office365_REST_Python_Client-2.6.2.dist-info}/WHEEL +0 -0
- {Office365_REST_Python_Client-2.6.1.dist-info → Office365_REST_Python_Client-2.6.2.dist-info}/top_level.txt +0 -0
- /office365/directory/identitygovernance/privilegedaccess/{schedule_instance.py → schedule/instance.py} +0 -0
- /office365/directory/protection/threatassessment/{request.py → requests/request.py} +0 -0
- /office365/directory/rolemanagement/{unified_role_permission.py → unifiedrole/permission.py} +0 -0
- /office365/search/{acronym.py → acronyms/acronym.py} +0 -0
- /office365/sharepoint/publishing/pages/{page_3d.py → 3d/page.py} +0 -0
|
@@ -7,6 +7,12 @@ from office365.sharepoint.entity import Entity
|
|
|
7
7
|
class StorageMetrics(Entity):
|
|
8
8
|
"""Specifies the storage-related metrics for list folders in the site"""
|
|
9
9
|
|
|
10
|
+
@property
|
|
11
|
+
def additional_file_stream_size(self):
|
|
12
|
+
# type: () -> Optional[int]
|
|
13
|
+
""" """
|
|
14
|
+
return self.properties.get("AdditionalFileStreamSize", None)
|
|
15
|
+
|
|
10
16
|
@property
|
|
11
17
|
def last_modified(self):
|
|
12
18
|
# type: () -> Optional[datetime.datetime]
|
|
@@ -41,3 +47,15 @@ class StorageMetrics(Entity):
|
|
|
41
47
|
Total size for a file/folder includes stream, version, and metadata sizes.
|
|
42
48
|
"""
|
|
43
49
|
return self.properties.get("TotalSize", None)
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def version_count(self):
|
|
53
|
+
# type: () -> Optional[int]
|
|
54
|
+
""" """
|
|
55
|
+
return self.properties.get("VersionCount", None)
|
|
56
|
+
|
|
57
|
+
@property
|
|
58
|
+
def version_size(self):
|
|
59
|
+
# type: () -> Optional[int]
|
|
60
|
+
""" """
|
|
61
|
+
return self.properties.get("VersionSize", None)
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from office365.runtime.client_result import ClientResult
|
|
2
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
3
|
+
from office365.runtime.paths.service_operation import ServiceOperationPath
|
|
4
|
+
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
5
|
+
from office365.sharepoint.client_context import ClientContext
|
|
6
|
+
from office365.sharepoint.tenant.administration.copilot.agentinsights.report_metadata import (
|
|
7
|
+
SPOCopilotAgentInsightsReportMetadata,
|
|
8
|
+
)
|
|
9
|
+
from office365.sharepoint.tenant.administration.datagovernance.client_base import (
|
|
10
|
+
SPDataGovernanceRestApiClientBase,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class SPOCopilotAgentInsightsRestApiClient(SPDataGovernanceRestApiClientBase):
|
|
15
|
+
""""""
|
|
16
|
+
|
|
17
|
+
def __init__(self, context, authorization_header, url, user_agent):
|
|
18
|
+
# type: (ClientContext, str, str, str) -> None
|
|
19
|
+
static_path = ServiceOperationPath(
|
|
20
|
+
"Microsoft.Online.SharePoint.TenantAdministration.SPDataGovernanceInsightRestApiClient",
|
|
21
|
+
{
|
|
22
|
+
"authorizationHeader": authorization_header,
|
|
23
|
+
"url": url,
|
|
24
|
+
"userAgent": user_agent,
|
|
25
|
+
},
|
|
26
|
+
)
|
|
27
|
+
super(SPOCopilotAgentInsightsRestApiClient, self).__init__(context, static_path)
|
|
28
|
+
|
|
29
|
+
def get_all_copilot_agent_insights_reports_metadata(self):
|
|
30
|
+
return_type = ClientResult(
|
|
31
|
+
self.context, ClientValueCollection(SPOCopilotAgentInsightsReportMetadata)
|
|
32
|
+
)
|
|
33
|
+
qry = ServiceOperationQuery(
|
|
34
|
+
self,
|
|
35
|
+
"GetAllCopilotAgentInsightsReportsMetadata",
|
|
36
|
+
None,
|
|
37
|
+
None,
|
|
38
|
+
None,
|
|
39
|
+
return_type,
|
|
40
|
+
)
|
|
41
|
+
self.context.add_query(qry)
|
|
42
|
+
return return_type
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
from office365.runtime.client_result import ClientResult
|
|
2
|
+
from office365.runtime.client_value import ClientValue
|
|
1
3
|
from office365.runtime.paths.resource_path import ResourcePath
|
|
4
|
+
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
2
5
|
from office365.sharepoint.entity import Entity
|
|
3
6
|
|
|
4
7
|
|
|
8
|
+
class GroupInfo(ClientValue):
|
|
9
|
+
""""""
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def entity_type_name(self):
|
|
13
|
+
return "Microsoft.Online.SharePoint.TenantAdministration.GroupInfo"
|
|
14
|
+
|
|
15
|
+
|
|
5
16
|
class SPOGroup(Entity):
|
|
6
17
|
""" """
|
|
7
18
|
|
|
@@ -12,6 +23,29 @@ class SPOGroup(Entity):
|
|
|
12
23
|
)
|
|
13
24
|
super(SPOGroup, self).__init__(context, resource_path)
|
|
14
25
|
|
|
26
|
+
def add_as_group_owner_and_member(self, group_id, user_id, user_principal_name):
|
|
27
|
+
""" """
|
|
28
|
+
payload = {
|
|
29
|
+
"groupId": group_id,
|
|
30
|
+
"userId": user_id,
|
|
31
|
+
"userPrincipalName": user_principal_name,
|
|
32
|
+
}
|
|
33
|
+
qry = ServiceOperationQuery(
|
|
34
|
+
self, "AddAsGroupOwnerAndMember", None, payload, None
|
|
35
|
+
)
|
|
36
|
+
self.context.add_query(qry)
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def get_group_info(self, group_id):
|
|
40
|
+
""""""
|
|
41
|
+
return_type = ClientResult(self.context, GroupInfo())
|
|
42
|
+
payload = {"groupId": group_id}
|
|
43
|
+
qry = ServiceOperationQuery(
|
|
44
|
+
self, "GetGroupInfo", None, payload, None, return_type
|
|
45
|
+
)
|
|
46
|
+
self.context.add_query(qry)
|
|
47
|
+
return return_type
|
|
48
|
+
|
|
15
49
|
@property
|
|
16
50
|
def entity_type_name(self):
|
|
17
51
|
return "Microsoft.Online.SharePoint.TenantAdministration.SPOGroup"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SPOFileVersionPolicySettings(ClientValue):
|
|
5
|
+
""""""
|
|
6
|
+
|
|
7
|
+
@property
|
|
8
|
+
def entity_type_name(self):
|
|
9
|
+
return "Microsoft.Online.SharePoint.TenantAdministration.SPOFileVersionPolicySettings"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SPOFileVersionBatchDeleteJobProgress(ClientValue):
|
|
13
|
+
""""""
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def entity_type_name(self):
|
|
17
|
+
return "Microsoft.Online.SharePoint.TenantAdministration.SPOFileVersionBatchDeleteJobProgress"
|
|
@@ -10,6 +10,9 @@ class SitePropertiesEnumerableFilter(ClientValue):
|
|
|
10
10
|
include_personal_site=None,
|
|
11
11
|
group_id_defined=None,
|
|
12
12
|
template=None,
|
|
13
|
+
archived_by=None,
|
|
14
|
+
archived_time=None,
|
|
15
|
+
archive_status=None,
|
|
13
16
|
):
|
|
14
17
|
"""
|
|
15
18
|
:param str _filter:
|
|
@@ -20,12 +23,15 @@ class SitePropertiesEnumerableFilter(ClientValue):
|
|
|
20
23
|
:param str template:
|
|
21
24
|
"""
|
|
22
25
|
super(SitePropertiesEnumerableFilter, self).__init__()
|
|
26
|
+
self.ArchivedBy = archived_by
|
|
23
27
|
self.Filter = _filter
|
|
24
28
|
self.GroupIdDefined = group_id_defined
|
|
25
29
|
self.IncludeDetail = include_detail
|
|
26
30
|
self.IncludePersonalSite = include_personal_site
|
|
27
31
|
self.StartIndex = start_index
|
|
28
32
|
self.Template = template
|
|
33
|
+
self.ArchivedTime = archived_time
|
|
34
|
+
self.ArchiveStatus = archive_status
|
|
29
35
|
|
|
30
36
|
@property
|
|
31
37
|
def entity_type_name(self):
|
|
@@ -37,9 +37,16 @@ from office365.sharepoint.tenant.administration.insights.top_files_sharing impor
|
|
|
37
37
|
from office365.sharepoint.tenant.administration.policies.app_billing_properties import (
|
|
38
38
|
SPOAppBillingProperties,
|
|
39
39
|
)
|
|
40
|
+
from office365.sharepoint.tenant.administration.policies.content_security_configuration import (
|
|
41
|
+
SPOContentSecurityPolicyConfiguration,
|
|
42
|
+
)
|
|
40
43
|
from office365.sharepoint.tenant.administration.policies.definition import (
|
|
41
44
|
TenantAdminPolicyDefinition,
|
|
42
45
|
)
|
|
46
|
+
from office365.sharepoint.tenant.administration.policies.file_version_types import (
|
|
47
|
+
SPOFileVersionBatchDeleteJobProgress,
|
|
48
|
+
SPOFileVersionPolicySettings,
|
|
49
|
+
)
|
|
43
50
|
from office365.sharepoint.tenant.administration.powerapps.environment import (
|
|
44
51
|
PowerAppsEnvironment,
|
|
45
52
|
)
|
|
@@ -221,6 +228,15 @@ class Tenant(Entity):
|
|
|
221
228
|
self.context.add_query(qry)
|
|
222
229
|
return return_type
|
|
223
230
|
|
|
231
|
+
def get_content_security_policy(self):
|
|
232
|
+
""""""
|
|
233
|
+
return_type = SPOContentSecurityPolicyConfiguration(self.context)
|
|
234
|
+
qry = ServiceOperationQuery(
|
|
235
|
+
self, "GetContentSecurityPolicy", None, None, None, return_type
|
|
236
|
+
)
|
|
237
|
+
self.context.add_query(qry)
|
|
238
|
+
return return_type
|
|
239
|
+
|
|
224
240
|
def get_spo_app_billing_policies(self):
|
|
225
241
|
""" """
|
|
226
242
|
return_type = ClientResult(
|
|
@@ -310,6 +326,32 @@ class Tenant(Entity):
|
|
|
310
326
|
self.context.add_query(qry)
|
|
311
327
|
return return_type
|
|
312
328
|
|
|
329
|
+
def is_request_content_management_assessment_eligible(self):
|
|
330
|
+
return_type = ClientResult(self.context, bool())
|
|
331
|
+
qry = ServiceOperationQuery(
|
|
332
|
+
self,
|
|
333
|
+
"IsRequestContentManagementAssessmentEligible",
|
|
334
|
+
None,
|
|
335
|
+
None,
|
|
336
|
+
None,
|
|
337
|
+
return_type,
|
|
338
|
+
)
|
|
339
|
+
self.context.add_query(qry)
|
|
340
|
+
return return_type
|
|
341
|
+
|
|
342
|
+
def is_syntex_repository_terms_of_service_accepted(self):
|
|
343
|
+
return_type = ClientResult(self.context, bool())
|
|
344
|
+
qry = ServiceOperationQuery(
|
|
345
|
+
self,
|
|
346
|
+
"IsSyntexRepositoryTermsOfServiceAccepted",
|
|
347
|
+
None,
|
|
348
|
+
None,
|
|
349
|
+
None,
|
|
350
|
+
return_type,
|
|
351
|
+
)
|
|
352
|
+
self.context.add_query(qry)
|
|
353
|
+
return return_type
|
|
354
|
+
|
|
313
355
|
def export_to_csv(
|
|
314
356
|
self, view_xml=None, time_zone_id=None, columns_info=None, list_name=None
|
|
315
357
|
):
|
|
@@ -398,6 +440,20 @@ class Tenant(Entity):
|
|
|
398
440
|
self.context.add_query(qry)
|
|
399
441
|
return return_type
|
|
400
442
|
|
|
443
|
+
def get_root_site_url(self):
|
|
444
|
+
""" """
|
|
445
|
+
return_type = ClientResult(self.context, str())
|
|
446
|
+
qry = ServiceOperationQuery(
|
|
447
|
+
self,
|
|
448
|
+
"GetRootSiteUrl",
|
|
449
|
+
None,
|
|
450
|
+
None,
|
|
451
|
+
None,
|
|
452
|
+
return_type,
|
|
453
|
+
)
|
|
454
|
+
self.context.add_query(qry)
|
|
455
|
+
return return_type
|
|
456
|
+
|
|
401
457
|
def get_site_authorization_code_for_migration(self, endpoint_url):
|
|
402
458
|
return_type = ClientResult(self.context, str())
|
|
403
459
|
payload = {"endpointUrl": endpoint_url}
|
|
@@ -714,9 +770,53 @@ class Tenant(Entity):
|
|
|
714
770
|
self.context.add_query(qry)
|
|
715
771
|
return return_type
|
|
716
772
|
|
|
773
|
+
def restore_deleted_site_by_id(self, site_id):
|
|
774
|
+
"""Restores deleted site with the specified URL
|
|
775
|
+
:param str site_id: A string representing the site identifier.
|
|
776
|
+
"""
|
|
777
|
+
return_type = SpoOperation(self.context)
|
|
778
|
+
qry = ServiceOperationQuery(
|
|
779
|
+
self, "RestoreDeletedSiteById", [site_id], None, None, return_type
|
|
780
|
+
)
|
|
781
|
+
self.context.add_query(qry)
|
|
782
|
+
return return_type
|
|
783
|
+
|
|
784
|
+
def get_file_version_policy_for_library(self, site_url, list_params=None):
|
|
785
|
+
""" """
|
|
786
|
+
return_type = ClientResult(self.context, SPOFileVersionPolicySettings())
|
|
787
|
+
payload = {"siteUrl": site_url, "listParams": list_params}
|
|
788
|
+
qry = ServiceOperationQuery(
|
|
789
|
+
self,
|
|
790
|
+
"GetFileVersionPolicyForLibrary",
|
|
791
|
+
None,
|
|
792
|
+
payload,
|
|
793
|
+
None,
|
|
794
|
+
return_type,
|
|
795
|
+
)
|
|
796
|
+
self.context.add_query(qry)
|
|
797
|
+
return return_type
|
|
798
|
+
|
|
799
|
+
def get_file_version_batch_delete_job_progress_for_library(
|
|
800
|
+
self, site_url, list_params
|
|
801
|
+
):
|
|
802
|
+
"""Gets the progress of the file version batch delete job for the specified site and list parameters."""
|
|
803
|
+
return_type = ClientResult(self.context, SPOFileVersionBatchDeleteJobProgress())
|
|
804
|
+
payload = {"siteUrl": site_url, "listParams": list_params}
|
|
805
|
+
qry = ServiceOperationQuery(
|
|
806
|
+
self,
|
|
807
|
+
"GetFileVersionBatchDeleteJobProgressForLibrary",
|
|
808
|
+
None,
|
|
809
|
+
payload,
|
|
810
|
+
None,
|
|
811
|
+
return_type,
|
|
812
|
+
)
|
|
813
|
+
self.context.add_query(qry)
|
|
814
|
+
return return_type
|
|
815
|
+
|
|
717
816
|
def get_site_properties_by_site_id(self, site_id, include_detail=False):
|
|
718
817
|
# type: (str, bool) -> SiteProperties
|
|
719
|
-
"""
|
|
818
|
+
"""Gets the site properties for the specified site ID.
|
|
819
|
+
|
|
720
820
|
:param str site_id: A string that represents the site identifier.
|
|
721
821
|
:param bool include_detail: A Boolean value that indicates whether to include all of the SPSite properties.
|
|
722
822
|
"""
|
|
@@ -733,6 +833,8 @@ class Tenant(Entity):
|
|
|
733
833
|
def get_site_properties_by_url(self, url, include_detail=False):
|
|
734
834
|
# type: (str, bool) -> SiteProperties
|
|
735
835
|
"""
|
|
836
|
+
Gets the site properties for the specified URL.
|
|
837
|
+
|
|
736
838
|
:param str url: A string that represents the site URL.
|
|
737
839
|
:param bool include_detail: A Boolean value that indicates whether to include all of the SPSite properties.
|
|
738
840
|
"""
|
|
@@ -798,15 +900,84 @@ class Tenant(Entity):
|
|
|
798
900
|
self.context.add_query(qry)
|
|
799
901
|
return self
|
|
800
902
|
|
|
801
|
-
def
|
|
802
|
-
|
|
803
|
-
|
|
903
|
+
def export_unlicensed_one_drive_for_business_list_to_csv(self):
|
|
904
|
+
"""Exports a list of OneDrive for Business sites that are associated with unlicensed users into a CSV file"""
|
|
905
|
+
return_type = ClientResult(self.context, str())
|
|
906
|
+
qry = ServiceOperationQuery(
|
|
907
|
+
self, "ExportUnlicensedOneDriveForBusinessListToCSV"
|
|
908
|
+
)
|
|
909
|
+
self.context.add_query(qry)
|
|
910
|
+
return return_type
|
|
911
|
+
|
|
912
|
+
def send_email(self, site_url, activity_event_json):
|
|
913
|
+
# type: (str, str) -> ClientResult[bool]
|
|
914
|
+
"""Send Email"""
|
|
804
915
|
return_type = ClientResult(self.context, bool())
|
|
805
|
-
payload = {"siteUrl": site_url}
|
|
916
|
+
payload = {"siteUrl": site_url, "activityEventJson": activity_event_json}
|
|
806
917
|
qry = ServiceOperationQuery(self, "SendEmail", None, payload, None, return_type)
|
|
807
918
|
self.context.add_query(qry)
|
|
808
919
|
return return_type
|
|
809
920
|
|
|
921
|
+
def set_copilot_promo_optin_status(self, copilot_promo_optin_enabled):
|
|
922
|
+
# type: (bool) -> ClientResult[bool]
|
|
923
|
+
""" """
|
|
924
|
+
payload = {"copilotPromoOptInEnabled": copilot_promo_optin_enabled}
|
|
925
|
+
qry = ServiceOperationQuery(self, "SetCopilotPromoOptInStatus", None, payload)
|
|
926
|
+
self.context.add_query(qry)
|
|
927
|
+
return self
|
|
928
|
+
|
|
929
|
+
def set_default_view(self, view_id, list_name):
|
|
930
|
+
# type: (str, str) -> Self
|
|
931
|
+
""" """
|
|
932
|
+
payload = {"viewId": view_id, "listName": list_name}
|
|
933
|
+
qry = ServiceOperationQuery(self, "SetDefaultView", None, payload)
|
|
934
|
+
self.context.add_query(qry)
|
|
935
|
+
return self
|
|
936
|
+
|
|
937
|
+
def get_file_version_policy(self):
|
|
938
|
+
return_type = ClientResult(self.context, str())
|
|
939
|
+
|
|
940
|
+
def _get_file_version_policy():
|
|
941
|
+
return_type.set_property("__value", self.file_version_policy_xml)
|
|
942
|
+
|
|
943
|
+
self.ensure_property("FileVersionPolicyXml", _get_file_version_policy)
|
|
944
|
+
return return_type
|
|
945
|
+
|
|
946
|
+
def set_file_version_policy(
|
|
947
|
+
self, is_auto_trim_enabled, major_version_limit, expire_versions_after_days
|
|
948
|
+
):
|
|
949
|
+
"""
|
|
950
|
+
Automatically delete older versions of documents after a specified number of days.
|
|
951
|
+
Specify the maximum number of major versions to retain and the number of major versions
|
|
952
|
+
for which all minor versions will be kept.
|
|
953
|
+
|
|
954
|
+
:param bool is_auto_trim_enabled: If true, versions are trimmed automatically.
|
|
955
|
+
:param int major_version_limit: Retains only many major versions.
|
|
956
|
+
:param int expire_versions_after_days: Deletes versions older than this many days.
|
|
957
|
+
"""
|
|
958
|
+
payload = {
|
|
959
|
+
"isAutoTrimEnabled": is_auto_trim_enabled,
|
|
960
|
+
"majorVersionLimit": major_version_limit,
|
|
961
|
+
"expireVersionsAfterDays": expire_versions_after_days,
|
|
962
|
+
}
|
|
963
|
+
qry = ServiceOperationQuery(self, "SetFileVersionPolicy", None, payload)
|
|
964
|
+
self.context.add_query(qry)
|
|
965
|
+
return self
|
|
966
|
+
|
|
967
|
+
def clear_file_version_policy(self):
|
|
968
|
+
self.set_property("FileVersionPolicyXml", "")
|
|
969
|
+
self.update()
|
|
970
|
+
return self
|
|
971
|
+
|
|
972
|
+
@property
|
|
973
|
+
def app_service_principal(self):
|
|
974
|
+
""" """
|
|
975
|
+
from office365.sharepoint.tenant.administration.internal.appservice.principal import (
|
|
976
|
+
SPOWebAppServicePrincipal,
|
|
977
|
+
)
|
|
978
|
+
|
|
979
|
+
return SPOWebAppServicePrincipal(self.context)
|
|
980
|
+
|
|
810
981
|
@property
|
|
811
982
|
def admin_settings(self):
|
|
812
983
|
"""Manage various tenant-level settings related to SharePoint administration"""
|
|
@@ -897,6 +1068,12 @@ class Tenant(Entity):
|
|
|
897
1068
|
""""""
|
|
898
1069
|
return self.properties.get("DefaultContentCenterSite", SiteInfoForSitePicker())
|
|
899
1070
|
|
|
1071
|
+
@property
|
|
1072
|
+
def file_version_policy_xml(self):
|
|
1073
|
+
# type: () -> Optional[str]
|
|
1074
|
+
""" """
|
|
1075
|
+
return self.properties.get("FileVersionPolicyXml", None)
|
|
1076
|
+
|
|
900
1077
|
@property
|
|
901
1078
|
def information_barriers_suspension(self):
|
|
902
1079
|
# type: () -> Optional[bool]
|
|
@@ -148,14 +148,16 @@ class PeopleManager(Entity):
|
|
|
148
148
|
return self
|
|
149
149
|
|
|
150
150
|
def get_user_profile_properties(self, user_or_name):
|
|
151
|
+
# type: (str|User) -> ClientResult[dict]
|
|
151
152
|
"""
|
|
152
153
|
Gets the specified user profile properties for the specified user.
|
|
153
154
|
|
|
154
155
|
:param str or User user_or_name: User or Login name of the specified user.
|
|
155
156
|
"""
|
|
156
|
-
return_type = ClientResult(self.context)
|
|
157
|
+
return_type = ClientResult(self.context, {})
|
|
157
158
|
|
|
158
159
|
def _user_resolved(account_name):
|
|
160
|
+
# type: (str) -> None
|
|
159
161
|
params = {"accountName": account_name}
|
|
160
162
|
qry = ServiceOperationQuery(
|
|
161
163
|
self, "GetUserProfileProperties", params, None, None, return_type
|
|
@@ -144,6 +144,22 @@ class Utility(Entity):
|
|
|
144
144
|
context.add_query(qry)
|
|
145
145
|
return utility
|
|
146
146
|
|
|
147
|
+
@staticmethod
|
|
148
|
+
def unmark_discussion_as_featured(context, list_id, topic_ids):
|
|
149
|
+
"""
|
|
150
|
+
This method is a static method.
|
|
151
|
+
:type context: office365.sharepoint.client_context.ClientContext
|
|
152
|
+
:type list_id: str
|
|
153
|
+
:type topic_ids: str
|
|
154
|
+
"""
|
|
155
|
+
utility = Utility(context)
|
|
156
|
+
payload = {"listID": list_id, "topicIDs": topic_ids}
|
|
157
|
+
qry = ServiceOperationQuery(
|
|
158
|
+
utility, "UnmarkDiscussionAsFeatured", None, payload, None, None, True
|
|
159
|
+
)
|
|
160
|
+
context.add_query(qry)
|
|
161
|
+
return utility
|
|
162
|
+
|
|
147
163
|
@staticmethod
|
|
148
164
|
def expand_groups_to_principals(context, inputs, max_count=None, return_type=None):
|
|
149
165
|
"""
|
|
@@ -8,6 +8,17 @@ class WebPartDefinition(Entity):
|
|
|
8
8
|
"""Represents a Web Part on a Web Part Page. Provides operations for moving, deleting, and changing the state of
|
|
9
9
|
the Web Part."""
|
|
10
10
|
|
|
11
|
+
def close_web_part(self):
|
|
12
|
+
"""
|
|
13
|
+
Closes the Web Part. If the Web Part is already closed, this method does nothing.
|
|
14
|
+
|
|
15
|
+
If the current user does not have permissions to modify the Web Part,
|
|
16
|
+
the server MUST ignore the call to this method.
|
|
17
|
+
"""
|
|
18
|
+
qry = ServiceOperationQuery(self, "CloseWebPart")
|
|
19
|
+
self.context.add_query(qry)
|
|
20
|
+
return self
|
|
21
|
+
|
|
11
22
|
def delete_web_part(self):
|
|
12
23
|
"""
|
|
13
24
|
Deletes the Web Part from the page.
|
|
@@ -18,6 +29,21 @@ class WebPartDefinition(Entity):
|
|
|
18
29
|
self.context.add_query(qry)
|
|
19
30
|
return self
|
|
20
31
|
|
|
32
|
+
def save_web_part_changes(self):
|
|
33
|
+
"""
|
|
34
|
+
Saves changes to the Web Part made by using other properties and methods on the WebPartDefinition object (1).
|
|
35
|
+
|
|
36
|
+
If the current user does not have permissions to modify the Web Part,
|
|
37
|
+
the protocol server MUST ignore the call to this method.
|
|
38
|
+
"""
|
|
39
|
+
qry = ServiceOperationQuery(self, "SaveWebPartChanges")
|
|
40
|
+
self.context.add_query(qry)
|
|
41
|
+
return self
|
|
42
|
+
|
|
43
|
+
@property
|
|
44
|
+
def id(self):
|
|
45
|
+
return self.properties.get("Id", None)
|
|
46
|
+
|
|
21
47
|
@property
|
|
22
48
|
def web_part(self):
|
|
23
49
|
"""The WebPart object, as specified in section 3.2.5.148, associated with this WebPartDefinition.
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
from office365.runtime.client_result import ClientResult
|
|
1
2
|
from office365.runtime.paths.resource_path import ResourcePath
|
|
3
|
+
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
2
4
|
from office365.sharepoint.entity import Entity
|
|
5
|
+
from office365.sharepoint.webparts.definition import WebPartDefinition
|
|
3
6
|
from office365.sharepoint.webparts.definition_collection import (
|
|
4
7
|
WebPartDefinitionCollection,
|
|
5
8
|
)
|
|
@@ -9,6 +12,56 @@ class LimitedWebPartManager(Entity):
|
|
|
9
12
|
"""Provides operations to access and modify the existing Web Parts on a Web Part Page, and add new ones
|
|
10
13
|
to the Web Part Page."""
|
|
11
14
|
|
|
15
|
+
def export_web_part(self, web_part):
|
|
16
|
+
# type: (str or WebPartDefinition) -> ClientResult[str]
|
|
17
|
+
"""Exports the specified Web Part, given its ID.
|
|
18
|
+
:param str or WebPartDefinition web_part: The WebPartDefinition or Id of the Web Part to export.
|
|
19
|
+
"""
|
|
20
|
+
return_type = ClientResult(self.context, str())
|
|
21
|
+
self.web_parts.add_child(return_type)
|
|
22
|
+
|
|
23
|
+
def _export_web_part(web_part_id):
|
|
24
|
+
# type: (str) -> None
|
|
25
|
+
params = {"webPartId": web_part_id}
|
|
26
|
+
qry = ServiceOperationQuery(
|
|
27
|
+
self, "ExportWebPart", params, None, None, return_type
|
|
28
|
+
)
|
|
29
|
+
self.context.add_query(qry)
|
|
30
|
+
|
|
31
|
+
if isinstance(web_part, WebPartDefinition):
|
|
32
|
+
|
|
33
|
+
def _web_part_loaded():
|
|
34
|
+
_export_web_part(web_part.id)
|
|
35
|
+
|
|
36
|
+
web_part.ensure_property("Id", _web_part_loaded)
|
|
37
|
+
else:
|
|
38
|
+
_export_web_part(web_part)
|
|
39
|
+
|
|
40
|
+
return return_type
|
|
41
|
+
|
|
42
|
+
def import_web_part(self, web_part_xml):
|
|
43
|
+
"""
|
|
44
|
+
Imports a Web Part from a string in the .dwp format as specified in [MS-WPPS] section 2.2.4.2,
|
|
45
|
+
or the .webpart format as specified in [MS-WPPS] section 2.2.3.1.
|
|
46
|
+
After importing, the Web Part is not added to a Web Part Page. To add a Web Part to a Web Part Page,
|
|
47
|
+
use AddWebPart, supplying the object (1) returned by this method.
|
|
48
|
+
A reference to the added SP.WebParts.WebPartDefinition is returned.
|
|
49
|
+
|
|
50
|
+
When Scope is User, the current user MUST have permissions to add and delete personalized Web Parts.
|
|
51
|
+
When Scope is Shared, the current user MUST have permissions to customize pages.
|
|
52
|
+
|
|
53
|
+
:param str web_part_xml: The Web Part markup to import.
|
|
54
|
+
"""
|
|
55
|
+
return_type = WebPartDefinition(self.context)
|
|
56
|
+
self.web_parts.add_child(return_type)
|
|
57
|
+
payload = {"webPartXml": web_part_xml}
|
|
58
|
+
qry = ServiceOperationQuery(
|
|
59
|
+
self, "ImportWebPart", None, payload, None, return_type
|
|
60
|
+
)
|
|
61
|
+
self.context.add_query(qry)
|
|
62
|
+
return return_type
|
|
63
|
+
|
|
64
|
+
@property
|
|
12
65
|
def web_parts(self):
|
|
13
66
|
"""A collection of the Web Parts on the Web Part Page available to the current user based
|
|
14
67
|
on the current user’s permissions."""
|
|
@@ -9,6 +9,53 @@ class WebPart(Entity):
|
|
|
9
9
|
It has a standard property schema and displays that content in a cohesive unit on a webpage. See also Web Parts Page
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
def __str__(self):
|
|
13
|
+
return self.title or self.entity_type_name
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def export_mode(self):
|
|
17
|
+
# type: () -> Optional[int]
|
|
18
|
+
"""
|
|
19
|
+
Gets or sets the export mode of a Web Part.
|
|
20
|
+
"""
|
|
21
|
+
return self.properties.get("ExportMode", None)
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def hidden(self):
|
|
25
|
+
# type: () -> Optional[bool]
|
|
26
|
+
"""
|
|
27
|
+
Specifies whether a Web Part is displayed on a Web Part Page.
|
|
28
|
+
|
|
29
|
+
If "true", the Web Part MUST be hidden. Web Parts that are hidden MUST NOT be displayed on the page to
|
|
30
|
+
the end user, but SHOULD still participate normally in the rendering of the page. The default value is "false".
|
|
31
|
+
"""
|
|
32
|
+
return self.properties.get("Hidden", None)
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def title(self):
|
|
36
|
+
# type: () -> Optional[str]
|
|
37
|
+
"""
|
|
38
|
+
Specifies the title of a Web Part.
|
|
39
|
+
|
|
40
|
+
If this property is set to NULL, the title of the Web Part MUST instead be reset to its default value if one
|
|
41
|
+
is specified in the Web Part's definition.
|
|
42
|
+
"""
|
|
43
|
+
return self.properties.get("Title", None)
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def title_url(self):
|
|
47
|
+
# type: () -> Optional[str]
|
|
48
|
+
"""
|
|
49
|
+
Specifies a URL to the supplemental information about a Web Part.
|
|
50
|
+
|
|
51
|
+
If this property is set to NULL, the title URL of the Web Part MUST instead be reset to its default value
|
|
52
|
+
if one is specified in the Web Part's definition.
|
|
53
|
+
|
|
54
|
+
The value of this property SHOULD be a valid URL, but the protocol server MAY accept other strings
|
|
55
|
+
without validating them.
|
|
56
|
+
"""
|
|
57
|
+
return self.properties.get("TitleUrl", None)
|
|
58
|
+
|
|
12
59
|
@property
|
|
13
60
|
def zone_index(self):
|
|
14
61
|
# type: () -> Optional[int]
|