Office365-REST-Python-Client 2.5.13__py3-none-any.whl → 2.6.0__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.5.13.dist-info → Office365_REST_Python_Client-2.6.0.dist-info}/METADATA +2 -2
- {Office365_REST_Python_Client-2.5.13.dist-info → Office365_REST_Python_Client-2.6.0.dist-info}/RECORD +324 -169
- office365/admin/admin.py +69 -0
- office365/admin/microsoft365_apps.py +5 -0
- office365/admin/people_settings.py +5 -0
- office365/admin/report_settings.py +5 -0
- office365/{onedrive → admin}/sharepoint.py +1 -1
- office365/azure_env.py +60 -0
- office365/booking/business/business.py +13 -0
- office365/booking/business/collection.py +8 -4
- office365/communications/callrecords/collection.py +42 -0
- office365/communications/callrecords/direct_routing_log_row.py +5 -0
- office365/communications/cloud_communications.py +2 -3
- office365/directory/applications/app_ids.py +6 -0
- office365/directory/applications/application.py +16 -2
- office365/directory/applications/required_resource_access.py +23 -0
- office365/directory/applications/resource_access.py +26 -0
- office365/directory/authentication/authentication.py +16 -0
- office365/directory/authentication/method_target.py +2 -1
- office365/directory/authentication/methods/details.py +29 -0
- office365/directory/authentication/methods/microsoft_authenticator.py +6 -0
- office365/directory/authentication/methods/root.py +19 -0
- office365/directory/authentication/methods/sms.py +9 -0
- office365/directory/certificates/self_signed.py +31 -2
- office365/directory/identities/conditional_access_root.py +14 -0
- office365/directory/identitygovernance/privilegedaccess/approval.py +8 -0
- office365/directory/identitygovernance/privilegedaccess/group.py +30 -0
- office365/directory/identitygovernance/privilegedaccess/group_assignment_schedule_instance.py +7 -0
- office365/directory/identitygovernance/privilegedaccess/unified_role_assignment_schedule_request.py +7 -0
- office365/directory/identitygovernance/userconsent/request_collection.py +10 -0
- office365/directory/identitygovernance/workflow/__init__.py +0 -0
- office365/directory/identitygovernance/workflow/base.py +5 -0
- office365/directory/permissions/scope.py +15 -3
- office365/directory/policies/authentication_strength.py +21 -0
- office365/directory/policies/cross_tenant_access.py +13 -0
- office365/directory/policies/feature_rollout.py +16 -0
- office365/directory/policies/root.py +39 -23
- office365/directory/policies/template.py +5 -0
- office365/directory/policies/update_allowed_combinations_result.py +5 -0
- office365/directory/protection/threatassessment/email_file_request.py +20 -0
- office365/directory/protection/threatassessment/request.py +25 -0
- office365/directory/rolemanagement/application.py +15 -0
- office365/directory/rolemanagement/resource_action.py +8 -4
- office365/directory/rolemanagement/role_permission.py +3 -3
- office365/directory/security/alerts/collection.py +49 -0
- office365/directory/security/alerts/evidence.py +2 -1
- office365/directory/security/alerts/malware_evidence.py +5 -0
- office365/directory/security/alerts/process_evidence.py +5 -0
- office365/directory/security/attacksimulations/user.py +5 -0
- office365/directory/security/attacksimulations/user_coverage.py +3 -0
- office365/directory/security/attacksimulations/users/details.py +6 -1
- office365/directory/security/scorecontrol/__init__.py +0 -0
- office365/directory/security/scorecontrol/profile.py +6 -0
- office365/directory/security/security.py +17 -4
- office365/directory/serviceprincipals/service_principal.py +112 -55
- office365/directory/tenantinformation/__init__.py +0 -0
- office365/directory/tenantinformation/multi_organization.py +11 -0
- office365/directory/tenantinformation/relationship.py +61 -0
- office365/directory/users/insights_settings.py +5 -0
- office365/graph_client.py +52 -132
- office365/graph_request.py +78 -19
- office365/intune/servicecommunications/health/health.py +1 -1
- office365/intune/servicecommunications/issues/issue.py +2 -2
- office365/onedrive/columns/definition.py +1 -1
- office365/onedrive/contenttypes/content_type.py +1 -1
- office365/onedrive/driveitems/driveItem.py +14 -2
- office365/onedrive/driveitems/retention_label.py +33 -0
- office365/onedrive/driveitems/retention_label_settings.py +7 -0
- office365/onedrive/drives/drive.py +1 -1
- office365/onedrive/filestorage/__init__.py +0 -0
- office365/onedrive/filestorage/container.py +7 -0
- office365/onedrive/filestorage/file_storage.py +20 -0
- office365/onedrive/listitems/field_value_set.py +1 -1
- office365/onedrive/listitems/list_item.py +1 -1
- office365/onedrive/lists/list.py +1 -1
- office365/onedrive/recyclebin/__init__.py +0 -0
- office365/onedrive/recyclebin/item.py +6 -0
- office365/onedrive/recyclebin/recyclebin.py +29 -0
- office365/onedrive/recyclebin/settings.py +13 -0
- office365/onedrive/shares/drive_item.py +1 -1
- office365/onedrive/sitepages/base.py +4 -1
- office365/onedrive/sitepages/canvas_layout.py +2 -2
- office365/onedrive/sitepages/collection.py +12 -0
- office365/onedrive/sitepages/sections/__init__.py +0 -0
- office365/onedrive/sitepages/{horizontal_section.py → sections/horizontal.py} +1 -1
- office365/onedrive/sitepages/site_page.py +9 -9
- office365/onedrive/sitepages/webparts/data.py +5 -0
- office365/onedrive/sitepages/webparts/position.py +5 -0
- office365/onedrive/sitepages/webparts/standard.py +9 -0
- office365/onedrive/sitepages/webparts/web_part.py +12 -0
- office365/onedrive/sites/archival_details.py +5 -0
- office365/onedrive/sites/site.py +1 -1
- office365/onedrive/sites/site_collection.py +10 -1
- office365/onedrive/storage/storage.py +10 -0
- office365/onedrive/workbooks/charts/axes.py +41 -1
- office365/onedrive/workbooks/charts/axis.py +5 -0
- office365/onedrive/workbooks/charts/chart.py +64 -5
- office365/onedrive/workbooks/charts/fill.py +5 -0
- office365/onedrive/workbooks/charts/font.py +5 -0
- office365/onedrive/workbooks/charts/legend/__init__.py +0 -0
- office365/onedrive/workbooks/charts/legend/format.py +5 -0
- office365/onedrive/workbooks/charts/legend/legend.py +26 -0
- office365/onedrive/workbooks/charts/point.py +5 -0
- office365/onedrive/workbooks/charts/series/__init__.py +0 -0
- office365/onedrive/workbooks/charts/series/format.py +5 -0
- office365/onedrive/workbooks/charts/series/series.py +31 -0
- office365/onedrive/workbooks/charts/title.py +5 -0
- office365/onedrive/workbooks/filter.py +10 -0
- office365/onedrive/workbooks/filter_criteria.py +3 -3
- office365/onedrive/workbooks/functions/functions.py +23 -0
- office365/onedrive/workbooks/ranges/fill.py +11 -1
- office365/onedrive/workbooks/ranges/range.py +26 -0
- office365/onedrive/workbooks/ranges/view.py +14 -0
- office365/onedrive/workbooks/sort_field.py +8 -3
- office365/onedrive/workbooks/tables/sort.py +20 -0
- office365/onedrive/workbooks/worksheets/worksheet.py +11 -0
- office365/partners/__init__.py +0 -0
- office365/partners/billing/__init__.py +0 -0
- office365/partners/billing/azure_usage.py +17 -0
- office365/partners/billing/billed_usage.py +21 -0
- office365/partners/billing/billing.py +17 -0
- office365/partners/billing/operation.py +5 -0
- office365/partners/partners.py +17 -0
- office365/planner/tasks/check_list_item.py +5 -1
- office365/reports/root.py +9 -0
- office365/reports/userregistration/feature_summary.py +5 -0
- office365/runtime/auth/auth_cookies.py +48 -0
- office365/runtime/auth/authentication_context.py +36 -19
- office365/runtime/auth/entra/__init__.py +0 -0
- office365/runtime/auth/entra/authentication_context.py +165 -0
- office365/runtime/auth/providers/acs_token_provider.py +12 -27
- office365/runtime/auth/providers/saml_token_provider.py +41 -54
- office365/runtime/auth/sts_profile.py +8 -8
- office365/runtime/auth/token_response.py +4 -0
- office365/runtime/client_object.py +15 -7
- office365/runtime/client_object_collection.py +2 -2
- office365/runtime/client_result.py +2 -0
- office365/runtime/client_value.py +1 -1
- office365/runtime/csom/request.py +11 -0
- office365/runtime/types/exceptions.py +18 -0
- office365/search/acronym.py +10 -0
- office365/search/aggregation_option.py +6 -0
- office365/search/answer.py +9 -0
- office365/search/entity.py +67 -14
- office365/search/entity_type.py +28 -0
- office365/search/request.py +32 -3
- office365/sharepoint/administration/custom_fonts_resource.py +5 -0
- office365/sharepoint/administration/sitemove/__init__.py +0 -0
- office365/sharepoint/administration/sitemove/service.py +68 -0
- office365/sharepoint/administration/sitemove/service_info.py +11 -0
- office365/sharepoint/apps/access_requests.py +5 -0
- office365/sharepoint/apps/management/__init__.py +0 -0
- office365/sharepoint/apps/management/principal_info.py +9 -0
- office365/sharepoint/authpolicy/events/collection.py +28 -0
- office365/sharepoint/authpolicy/events/role_assignment_resource_payload.py +4 -0
- office365/sharepoint/changes/item.py +15 -0
- office365/sharepoint/client_context.py +61 -37
- office365/sharepoint/directory/group.py +2 -0
- office365/sharepoint/directory/helper.py +2 -0
- office365/sharepoint/directory/provider/provider.py +6 -0
- office365/sharepoint/directory/user.py +20 -0
- office365/sharepoint/documentmanagement/document_id.py +28 -3
- office365/sharepoint/files/file.py +11 -4
- office365/sharepoint/files/publish/__init__.py +0 -0
- office365/sharepoint/files/publish/status.py +9 -0
- office365/sharepoint/files/versions/event.py +9 -0
- office365/sharepoint/flows/connector_result.py +17 -0
- office365/sharepoint/flows/permissions.py +34 -0
- office365/sharepoint/fontpackages/__init__.py +0 -0
- office365/sharepoint/fontpackages/collection.py +26 -0
- office365/sharepoint/fontpackages/creation_parameters.py +5 -0
- office365/sharepoint/fontpackages/font_package.py +5 -0
- office365/sharepoint/fontpackages/oob_settings.py +5 -0
- office365/sharepoint/forms/customization.py +26 -0
- office365/sharepoint/ir/__init__.py +0 -0
- office365/sharepoint/ir/migration.py +5 -0
- office365/sharepoint/listhome/favorite_item.py +9 -0
- office365/sharepoint/listitems/listitem.py +79 -4
- office365/sharepoint/listitems/update_parameters.py +4 -1
- office365/sharepoint/lists/data_parameters.py +5 -0
- office365/sharepoint/lists/exporter.py +73 -0
- office365/sharepoint/lists/list.py +177 -60
- office365/sharepoint/lists/render_data_parameters.py +31 -0
- office365/sharepoint/lists/version_policy_manager.py +5 -0
- office365/sharepoint/marketplace/app_metadata.py +12 -1
- office365/sharepoint/marketplace/app_metadata_collection.py +8 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/instance_info.py +22 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_failed_info.py +5 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_info.py +12 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_response.py +15 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/principals_response.py +5 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/app_request_information.py +9 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/app_response_information.py +9 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/available_addins_response.py +4 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/card_design.py +9 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/card_designs.py +9 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/teams_package_download.py +14 -0
- office365/sharepoint/marketplace/tenant/appcatalog/accessor.py +62 -3
- office365/sharepoint/migration/copy_migration_options.py +5 -0
- office365/sharepoint/multigeo/services.py +14 -0
- office365/sharepoint/multigeo/storage_quota.py +9 -0
- office365/sharepoint/policy/license_utilities.py +27 -0
- office365/sharepoint/portal/groups/site_manager.py +32 -0
- office365/sharepoint/portal/project/__init__.py +9 -0
- office365/sharepoint/portal/userprofiles/documentsshared/__init__.py +0 -0
- office365/sharepoint/portal/userprofiles/documentsshared/with_group.py +38 -0
- office365/sharepoint/portal/userprofiles/documentsshared/with_person.py +9 -0
- office365/sharepoint/portal/userprofiles/sharedwithme/__init__.py +0 -0
- office365/sharepoint/{userprofiles → portal/userprofiles}/sharedwithme/document.py +1 -1
- office365/sharepoint/{userprofiles → portal/userprofiles}/sharedwithme/items.py +3 -1
- office365/sharepoint/principal/principal.py +6 -0
- office365/sharepoint/publishing/pages/coauth_state.py +8 -0
- office365/sharepoint/publishing/pages/page.py +11 -0
- office365/sharepoint/publishing/pages/stream_content.py +9 -0
- office365/sharepoint/publishing/pages/stream_data.py +8 -0
- office365/sharepoint/quotamanagement/consumer/non_quota_backfill_api.py +8 -0
- office365/sharepoint/request.py +98 -10
- office365/sharepoint/search/administration/document_crawl_log.py +16 -2
- office365/sharepoint/search/administration/site_content_processing_info_provider.py +11 -0
- office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +1 -1
- office365/sharepoint/search/ranking_labeling.py +1 -0
- office365/sharepoint/search/reports/abandoned_queries.py +11 -1
- office365/sharepoint/search/reports/abandonedqueries/__init__.py +0 -0
- office365/sharepoint/search/reports/abandonedqueries/data.py +0 -0
- office365/sharepoint/search/reports/abandonedqueries/item.py +11 -0
- office365/sharepoint/search/reports/noresult/__init__.py +0 -0
- office365/sharepoint/search/reports/numberofqueries/__init__.py +0 -0
- office365/sharepoint/search/reports/top_queries.py +7 -0
- office365/sharepoint/search/reports/topqueries/__init__.py +0 -0
- office365/sharepoint/search/reports/topqueries/data.py +9 -0
- office365/sharepoint/search/reports/topqueries/item.py +15 -0
- office365/sharepoint/search/scs_endpoint.py +9 -0
- office365/sharepoint/securestore/target_application.py +8 -0
- office365/sharepoint/sharing/document_manager.py +3 -3
- office365/sharepoint/sharing/domain_restriction_settings.py +5 -0
- office365/sharepoint/sharing/information.py +12 -0
- office365/sharepoint/sharing/result.py +21 -0
- office365/sharepoint/sitehealth/result.py +4 -4
- office365/sharepoint/sitehealth/summary.py +5 -5
- office365/sharepoint/sites/copy_job_progress.py +5 -0
- office365/sharepoint/sites/copy_migration_iInfo.py +5 -0
- office365/sharepoint/sites/home/__init__.py +0 -0
- office365/sharepoint/sites/{sph_site.py → home/site.py} +1 -1
- office365/sharepoint/sites/html_field_security_setting.py +5 -0
- office365/sharepoint/sites/site.py +56 -2
- office365/sharepoint/sites/version_policy_manager.py +25 -0
- office365/sharepoint/sitescripts/metadata.py +28 -3
- office365/sharepoint/sitescripts/utility.py +17 -0
- office365/sharepoint/smartcache/__init__.py +0 -0
- office365/sharepoint/smartcache/item.py +9 -0
- office365/sharepoint/tenant/administration/app_service_principal_public.py +17 -0
- office365/sharepoint/tenant/administration/audit/data.py +12 -0
- office365/sharepoint/tenant/administration/audit/unified_record.py +18 -0
- office365/sharepoint/tenant/administration/coms/__init__.py +0 -0
- office365/sharepoint/tenant/administration/coms/messages_fields_data.py +5 -0
- office365/sharepoint/tenant/administration/coms/messages_service_proxy.py +16 -0
- office365/sharepoint/tenant/administration/copilot/__init__.py +0 -0
- office365/sharepoint/tenant/administration/copilot/adaptive_card_config.py +11 -0
- office365/sharepoint/tenant/administration/datagovernance/__init__.py +0 -0
- office365/sharepoint/tenant/administration/{internal/permission_grant.py → datagovernance/client_base.py} +4 -2
- office365/sharepoint/tenant/administration/datagovernance/insight_client.py +82 -0
- office365/sharepoint/tenant/administration/datagovernance/insight_metadata.py +5 -0
- office365/sharepoint/tenant/administration/default_time_zone_id.py +11 -0
- office365/sharepoint/tenant/administration/endpoints.py +53 -2
- office365/sharepoint/tenant/administration/insights/onedrive_site_sharing.py +4 -0
- office365/sharepoint/tenant/administration/insights/summary_response.py +8 -0
- office365/sharepoint/tenant/administration/internal/aad/__init__.py +0 -0
- office365/sharepoint/tenant/administration/internal/aad/permission_grant.py +32 -0
- office365/sharepoint/tenant/administration/internal/appservice/__init__.py +0 -0
- office365/sharepoint/tenant/administration/internal/appservice/permission_grant.py +5 -0
- office365/sharepoint/tenant/administration/internal/appservice/permission_request.py +13 -0
- office365/sharepoint/tenant/administration/internal/appservice/principal.py +104 -0
- office365/sharepoint/tenant/administration/malware/__init__.py +0 -0
- office365/sharepoint/tenant/administration/malware/file.py +18 -0
- office365/sharepoint/tenant/administration/modified_property.py +5 -0
- office365/sharepoint/tenant/administration/policies/app_billing_properties.py +21 -0
- office365/sharepoint/tenant/administration/policies/content_security_configuration.py +9 -0
- office365/sharepoint/tenant/administration/recent_action.py +9 -0
- office365/sharepoint/tenant/administration/reports/__init__.py +0 -0
- office365/sharepoint/tenant/administration/settings_service.py +42 -6
- office365/sharepoint/tenant/administration/sites/creation_source.py +8 -8
- office365/sharepoint/tenant/administration/sites/properties.py +78 -0
- office365/sharepoint/tenant/administration/sites/properties_collection.py +19 -0
- office365/sharepoint/tenant/administration/tenant.py +241 -8
- office365/sharepoint/tenant/administration/types.py +89 -2
- office365/sharepoint/tenant/cdn_api.py +3 -1
- office365/sharepoint/tenant/insights/report_manager.py +29 -0
- office365/sharepoint/tenant/management/office365_tenant.py +9 -4
- office365/sharepoint/tenant/settings.py +10 -0
- office365/sharepoint/translation/job_status.py +22 -0
- office365/sharepoint/userprofiles/user_profile.py +6 -0
- office365/sharepoint/utilities/utility.py +6 -0
- office365/sharepoint/viva/connections_page.py +8 -0
- office365/sharepoint/viva/dashboard_configuration.py +8 -0
- office365/sharepoint/viva/employee_engagement.py +39 -1
- office365/sharepoint/viva/resource_get_endpoint.py +8 -0
- office365/sharepoint/viva/resource_link.py +8 -0
- office365/sharepoint/webparts/tile_data.py +21 -0
- office365/sharepoint/webs/dataleakage_prevention_status_info.py +5 -0
- office365/sharepoint/webs/information.py +66 -1
- office365/sharepoint/webs/regional_settings.py +32 -0
- office365/sharepoint/webs/templates/__init__.py +0 -0
- office365/sharepoint/webs/time_zone.py +1 -1
- office365/sharepoint/webs/web.py +137 -0
- office365/sharepoint/workflow/task.py +5 -0
- office365/subscriptions/collection.py +16 -0
- office365/teams/chats/event_message_detail.py +8 -0
- office365/teams/deleted.py +24 -0
- office365/teams/work.py +35 -0
- office365/directory/tenant_relationship.py +0 -23
- office365/onedrive/admin.py +0 -32
- office365/onedrive/workbooks/charts/legend.py +0 -7
- office365/onedrive/workbooks/charts/series.py +0 -5
- office365/sharepoint/portal/userprofiles/documents_shared_with_group.py +0 -11
- office365/sharepoint/tenant/administration/internal/web_appservice_principal.py +0 -23
- {Office365_REST_Python_Client-2.5.13.dist-info → Office365_REST_Python_Client-2.6.0.dist-info}/LICENSE +0 -0
- {Office365_REST_Python_Client-2.5.13.dist-info → Office365_REST_Python_Client-2.6.0.dist-info}/WHEEL +0 -0
- {Office365_REST_Python_Client-2.5.13.dist-info → Office365_REST_Python_Client-2.6.0.dist-info}/top_level.txt +0 -0
- /office365/{sharepoint/userprofiles/sharedwithme → admin}/__init__.py +0 -0
- /office365/{onedrive → admin}/sharepoint_settings.py +0 -0
- /office365/directory/{tenant_information.py → tenantinformation/information.py} +0 -0
- /office365/{base_item.py → onedrive/base_item.py} +0 -0
- /office365/onedrive/sitepages/{horizontal_section_column.py → sections/horizontal_column.py} +0 -0
- /office365/onedrive/sitepages/{vertical_section.py → sections/vertical.py} +0 -0
- /office365/sharepoint/portal/userprofiles/{documents_shared_with_me.py → documentsshared/with_me.py} +0 -0
- /office365/sharepoint/{userprofiles → portal/userprofiles}/sharedwithme/document_user.py +0 -0
- /office365/sharepoint/{userprofiles → portal/userprofiles}/sharedwithme/item_collection.py +0 -0
- /office365/sharepoint/{userprofiles → portal/userprofiles}/sharedwithme/view_item_removal_result.py +0 -0
- /office365/sharepoint/sites/{home_sites_details.py → home/details.py} +0 -0
- /office365/sharepoint/sites/{home_site_reference.py → home/reference.py} +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from typing import IO, AnyStr, Callable
|
|
3
|
+
|
|
4
|
+
from typing_extensions import Self
|
|
5
|
+
|
|
6
|
+
from office365.runtime.client_result import ClientResult
|
|
7
|
+
from office365.sharepoint.files.system_object_type import FileSystemObjectType
|
|
8
|
+
from office365.sharepoint.listitems.collection import ListItemCollection
|
|
9
|
+
from office365.sharepoint.listitems.listitem import ListItem
|
|
10
|
+
from office365.sharepoint.lists.list import List
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ListExporter(object):
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
def export(
|
|
17
|
+
source_list, destination_file, include_content=False, item_exported=None
|
|
18
|
+
):
|
|
19
|
+
# type: (List, IO, bool, Callable[[ListItem], None]) -> Self
|
|
20
|
+
"""Exports SharePoint List"""
|
|
21
|
+
import zipfile
|
|
22
|
+
|
|
23
|
+
def _append_file(name, data):
|
|
24
|
+
with zipfile.ZipFile(
|
|
25
|
+
destination_file.name, "a", zipfile.ZIP_DEFLATED
|
|
26
|
+
) as zf:
|
|
27
|
+
zf.writestr(name, data)
|
|
28
|
+
|
|
29
|
+
def _download_content(list_item):
|
|
30
|
+
# type: (ListItem) -> None
|
|
31
|
+
def _after_downloaded(result):
|
|
32
|
+
# type: (ClientResult[AnyStr]) -> None
|
|
33
|
+
item_path = list_item.properties["FileRef"].replace(
|
|
34
|
+
source_list.root_folder.serverRelativeUrl, ""
|
|
35
|
+
)
|
|
36
|
+
_append_file(item_path, result.value)
|
|
37
|
+
|
|
38
|
+
list_item.file.get_content().after_execute(_after_downloaded)
|
|
39
|
+
|
|
40
|
+
def _export_items(items):
|
|
41
|
+
# type: (ListItemCollection) -> None
|
|
42
|
+
|
|
43
|
+
for item in items:
|
|
44
|
+
item_path = str(item.id) + ".json"
|
|
45
|
+
|
|
46
|
+
if item.file_system_object_type == FileSystemObjectType.File:
|
|
47
|
+
_append_file(item_path, json.dumps(item.to_json()))
|
|
48
|
+
|
|
49
|
+
if include_content:
|
|
50
|
+
_download_content(item)
|
|
51
|
+
|
|
52
|
+
if callable(item_exported):
|
|
53
|
+
item_exported(item)
|
|
54
|
+
|
|
55
|
+
def _get_items():
|
|
56
|
+
(
|
|
57
|
+
source_list.items.select(
|
|
58
|
+
[
|
|
59
|
+
"*",
|
|
60
|
+
"Id",
|
|
61
|
+
"FileRef",
|
|
62
|
+
"FileDirRef",
|
|
63
|
+
"FileLeafRef",
|
|
64
|
+
"FileSystemObjectType",
|
|
65
|
+
]
|
|
66
|
+
)
|
|
67
|
+
.get()
|
|
68
|
+
.paged(page_loaded=_export_items)
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
source_list.ensure_properties(["SchemaXml", "RootFolder"], _get_items)
|
|
72
|
+
|
|
73
|
+
return source_list
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import json
|
|
2
1
|
import os
|
|
3
2
|
from datetime import datetime
|
|
4
3
|
from typing import IO, TYPE_CHECKING, AnyStr, Callable, Dict, Optional
|
|
@@ -22,12 +21,12 @@ from office365.sharepoint.eventreceivers.definition_collection import (
|
|
|
22
21
|
EventReceiverDefinitionCollection,
|
|
23
22
|
)
|
|
24
23
|
from office365.sharepoint.fields.collection import FieldCollection
|
|
24
|
+
from office365.sharepoint.fields.field import Field
|
|
25
25
|
from office365.sharepoint.fields.related_field_collection import RelatedFieldCollection
|
|
26
26
|
from office365.sharepoint.files.checked_out_file_collection import (
|
|
27
27
|
CheckedOutFileCollection,
|
|
28
28
|
)
|
|
29
29
|
from office365.sharepoint.files.file import File
|
|
30
|
-
from office365.sharepoint.files.system_object_type import FileSystemObjectType
|
|
31
30
|
from office365.sharepoint.flows.synchronization_result import FlowSynchronizationResult
|
|
32
31
|
from office365.sharepoint.folders.folder import Folder
|
|
33
32
|
from office365.sharepoint.forms.collection import FormCollection
|
|
@@ -44,7 +43,9 @@ from office365.sharepoint.listitems.listitem import ListItem
|
|
|
44
43
|
from office365.sharepoint.lists.bloom_filter import ListBloomFilter
|
|
45
44
|
from office365.sharepoint.lists.creatables_info import CreatablesInfo
|
|
46
45
|
from office365.sharepoint.lists.data_source import ListDataSource
|
|
46
|
+
from office365.sharepoint.lists.render_data_parameters import RenderListDataParameters
|
|
47
47
|
from office365.sharepoint.lists.rule import SPListRule
|
|
48
|
+
from office365.sharepoint.lists.version_policy_manager import VersionPolicyManager
|
|
48
49
|
from office365.sharepoint.navigation.configured_metadata_items import (
|
|
49
50
|
ConfiguredMetadataNavigationItemCollection,
|
|
50
51
|
)
|
|
@@ -84,60 +85,24 @@ class List(SecurableObject):
|
|
|
84
85
|
def export(self, local_file, include_content=False, item_exported=None):
|
|
85
86
|
# type: (IO, bool, Callable[[ListItem|File|Folder], None]) -> Self
|
|
86
87
|
"""Exports SharePoint List"""
|
|
87
|
-
import
|
|
88
|
-
|
|
89
|
-
def _append_file(name, data):
|
|
90
|
-
with zipfile.ZipFile(local_file.name, "a", zipfile.ZIP_DEFLATED) as zf:
|
|
91
|
-
zf.writestr(name, data)
|
|
92
|
-
|
|
93
|
-
def _download_content(list_item):
|
|
94
|
-
# type: (ListItem) -> None
|
|
95
|
-
def _after_downloaded(result):
|
|
96
|
-
# type: (ClientResult[AnyStr]) -> None
|
|
97
|
-
item_path = list_item.properties["FileRef"].replace(
|
|
98
|
-
self.root_folder.serverRelativeUrl, ""
|
|
99
|
-
)
|
|
100
|
-
_append_file(item_path, result.value)
|
|
101
|
-
|
|
102
|
-
list_item.file.get_content().after_execute(_after_downloaded)
|
|
103
|
-
|
|
104
|
-
def _export_items(items):
|
|
105
|
-
# type: (ListItemCollection) -> None
|
|
106
|
-
|
|
107
|
-
for item in items:
|
|
108
|
-
# item_path = item.properties["FileRef"].replace(self.root_folder.serverRelativeUrl, "")
|
|
109
|
-
item_path = str(item.id) + ".json"
|
|
110
|
-
|
|
111
|
-
if item.file_system_object_type == FileSystemObjectType.Folder:
|
|
112
|
-
pass
|
|
113
|
-
else:
|
|
114
|
-
_append_file(item_path, json.dumps(item.to_json()))
|
|
115
|
-
|
|
116
|
-
if include_content:
|
|
117
|
-
_download_content(item)
|
|
118
|
-
|
|
119
|
-
if callable(item_exported):
|
|
120
|
-
item_exported(item)
|
|
121
|
-
|
|
122
|
-
def _save_schema():
|
|
123
|
-
(
|
|
124
|
-
self.items.select(
|
|
125
|
-
[
|
|
126
|
-
"*",
|
|
127
|
-
"Id",
|
|
128
|
-
"FileRef",
|
|
129
|
-
"FileDirRef",
|
|
130
|
-
"FileLeafRef",
|
|
131
|
-
"FileSystemObjectType",
|
|
132
|
-
]
|
|
133
|
-
)
|
|
134
|
-
# .expand(["File", "Folder"])
|
|
135
|
-
.get().paged(page_loaded=_export_items)
|
|
136
|
-
)
|
|
88
|
+
from office365.sharepoint.lists.exporter import ListExporter
|
|
137
89
|
|
|
138
|
-
|
|
90
|
+
return ListExporter.export(self, local_file, include_content, item_exported)
|
|
139
91
|
|
|
140
|
-
|
|
92
|
+
def can_customize_forms(self):
|
|
93
|
+
""""""
|
|
94
|
+
from office365.sharepoint.flows.connector_result import ConnectorResult
|
|
95
|
+
from office365.sharepoint.forms.customization import FormsCustomization
|
|
96
|
+
|
|
97
|
+
return_type = ConnectorResult(self.context)
|
|
98
|
+
|
|
99
|
+
def _can_customize_forms():
|
|
100
|
+
FormsCustomization.can_customize_forms(
|
|
101
|
+
self.context, self.title, return_type
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
self.ensure_property("Title", _can_customize_forms)
|
|
105
|
+
return return_type
|
|
141
106
|
|
|
142
107
|
def clear(self):
|
|
143
108
|
"""Clears the list."""
|
|
@@ -227,6 +192,21 @@ class List(SecurableObject):
|
|
|
227
192
|
self.root_folder.ensure_property("ServerRelativeUrl", _loaded)
|
|
228
193
|
return return_type
|
|
229
194
|
|
|
195
|
+
def get_flow_permission_level(self):
|
|
196
|
+
""""""
|
|
197
|
+
from office365.sharepoint.flows.connector_result import ConnectorResult
|
|
198
|
+
from office365.sharepoint.flows.permissions import FlowPermissions
|
|
199
|
+
|
|
200
|
+
return_type = ConnectorResult(self.context)
|
|
201
|
+
|
|
202
|
+
def _loaded():
|
|
203
|
+
FlowPermissions.get_flow_permission_level_on_list(
|
|
204
|
+
self.context, self.title, return_type
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
self.ensure_property("Title", _loaded)
|
|
208
|
+
return return_type
|
|
209
|
+
|
|
230
210
|
def get_sharing_settings(self):
|
|
231
211
|
"""Retrieves a sharing settings for a List"""
|
|
232
212
|
return_type = ObjectSharingSettings(self.context)
|
|
@@ -263,6 +243,16 @@ class List(SecurableObject):
|
|
|
263
243
|
self.ensure_property("RootFolder", _list_loaded)
|
|
264
244
|
return return_type
|
|
265
245
|
|
|
246
|
+
def ensure_signoff_status_field(self):
|
|
247
|
+
""""""
|
|
248
|
+
return_type = Field(self.context)
|
|
249
|
+
self.fields.add_child(return_type)
|
|
250
|
+
qry = ServiceOperationQuery(
|
|
251
|
+
self, "EnsureSignoffStatusField", None, None, None, return_type
|
|
252
|
+
)
|
|
253
|
+
self.context.add_query(qry)
|
|
254
|
+
return return_type
|
|
255
|
+
|
|
266
256
|
def get_all_rules(self):
|
|
267
257
|
"""Retrieves rules of a List"""
|
|
268
258
|
return_type = ClientResult(self.context, ClientValueCollection(SPListRule))
|
|
@@ -392,25 +382,72 @@ class List(SecurableObject):
|
|
|
392
382
|
return return_type
|
|
393
383
|
|
|
394
384
|
@staticmethod
|
|
395
|
-
def get_list_data_as_stream(
|
|
385
|
+
def get_list_data_as_stream(
|
|
386
|
+
context,
|
|
387
|
+
list_full_url,
|
|
388
|
+
parameters=None,
|
|
389
|
+
casc_del_warn_message=None,
|
|
390
|
+
custom_action=None,
|
|
391
|
+
drill_down=None,
|
|
392
|
+
field=None,
|
|
393
|
+
field_internal_name=None,
|
|
394
|
+
return_type=None,
|
|
395
|
+
):
|
|
396
396
|
"""
|
|
397
397
|
Returns list data from the specified list url and for the specified query parameters.
|
|
398
398
|
|
|
399
399
|
:param office365.sharepoint.client_context.ClientContext context: Client context
|
|
400
400
|
:param str list_full_url: The absolute URL of the list.
|
|
401
401
|
:param RenderListDataParameters parameters: The parameters to be used.
|
|
402
|
-
|
|
403
|
-
|
|
402
|
+
:param str casc_del_warn_message:
|
|
403
|
+
:param str custom_action:
|
|
404
|
+
:param str drill_down:
|
|
405
|
+
:param str field:
|
|
406
|
+
:param str field_internal_name:
|
|
407
|
+
:param ClientResult[dict] return_type: The return type.
|
|
408
|
+
"""
|
|
409
|
+
if return_type is None:
|
|
410
|
+
return_type = ClientResult(context, dict())
|
|
404
411
|
payload = {
|
|
405
412
|
"listFullUrl": list_full_url,
|
|
406
413
|
"parameters": parameters,
|
|
414
|
+
"CascDelWarnMessage": casc_del_warn_message,
|
|
415
|
+
"CustomAction": custom_action,
|
|
416
|
+
"DrillDown": drill_down,
|
|
417
|
+
"Field": field,
|
|
418
|
+
"FieldInternalName": field_internal_name,
|
|
419
|
+
}
|
|
420
|
+
qry = ServiceOperationQuery(
|
|
421
|
+
List(context), "GetListDataAsStream", None, payload, None, return_type, True
|
|
422
|
+
)
|
|
423
|
+
context.add_query(qry)
|
|
424
|
+
return return_type
|
|
425
|
+
|
|
426
|
+
@staticmethod
|
|
427
|
+
def get_onedrive_list_data_as_stream(context, parameters=None, return_type=None):
|
|
428
|
+
"""
|
|
429
|
+
Returns list data from the specified list url and for the specified query parameters.
|
|
430
|
+
|
|
431
|
+
:param office365.sharepoint.client_context.ClientContext context: Client context
|
|
432
|
+
:param RenderListDataParameters parameters: The parameters to be used.
|
|
433
|
+
:param ClientResult[dict] return_type: The return type.
|
|
434
|
+
"""
|
|
435
|
+
if return_type is None:
|
|
436
|
+
return_type = ClientResult(context, dict())
|
|
437
|
+
payload = {
|
|
438
|
+
"parameters": parameters,
|
|
407
439
|
}
|
|
408
|
-
target_list = context.web.get_list(list_full_url)
|
|
409
440
|
qry = ServiceOperationQuery(
|
|
410
|
-
|
|
441
|
+
List(context),
|
|
442
|
+
"GetOneDriveListDataAsStream",
|
|
443
|
+
None,
|
|
444
|
+
payload,
|
|
445
|
+
None,
|
|
446
|
+
return_type,
|
|
447
|
+
True,
|
|
411
448
|
)
|
|
412
449
|
context.add_query(qry)
|
|
413
|
-
return
|
|
450
|
+
return return_type
|
|
414
451
|
|
|
415
452
|
def bulk_validate_update_list_items(
|
|
416
453
|
self,
|
|
@@ -450,6 +487,7 @@ class List(SecurableObject):
|
|
|
450
487
|
|
|
451
488
|
def get_lookup_field_choices(self, target_field_name, paging_info=None):
|
|
452
489
|
"""
|
|
490
|
+
Retrieves the possible choices or values for a lookup field in a SharePoint list
|
|
453
491
|
:param str target_field_name:
|
|
454
492
|
:param str paging_info:
|
|
455
493
|
"""
|
|
@@ -711,6 +749,31 @@ class List(SecurableObject):
|
|
|
711
749
|
self.context.add_query(qry)
|
|
712
750
|
return return_type
|
|
713
751
|
|
|
752
|
+
def render_list_data_as_stream(
|
|
753
|
+
self, view_xml=None, render_options=None, expand_groups=None
|
|
754
|
+
):
|
|
755
|
+
"""Returns the data for the specified query view.
|
|
756
|
+
|
|
757
|
+
:param str view_xml: Specifies the CAML view XML.
|
|
758
|
+
:param int render_options: Specifies the type of output to return.
|
|
759
|
+
:param bool expand_groups: Specifies whether to expand the grouping or not.
|
|
760
|
+
"""
|
|
761
|
+
return_type = ClientResult(self.context, dict())
|
|
762
|
+
if view_xml is None:
|
|
763
|
+
view_xml = "<View/>"
|
|
764
|
+
payload = {
|
|
765
|
+
"parameters": RenderListDataParameters(
|
|
766
|
+
view_xml=view_xml,
|
|
767
|
+
render_options=render_options,
|
|
768
|
+
expand_groups=expand_groups,
|
|
769
|
+
),
|
|
770
|
+
}
|
|
771
|
+
qry = ServiceOperationQuery(
|
|
772
|
+
self, "RenderListDataAsStream", None, payload, None, return_type
|
|
773
|
+
)
|
|
774
|
+
self.context.add_query(qry)
|
|
775
|
+
return return_type
|
|
776
|
+
|
|
714
777
|
def reserve_list_item_id(self):
|
|
715
778
|
# type: () -> ClientResult[int]
|
|
716
779
|
"""Reserves the returned list item identifier for the idempotent creation of a list item."""
|
|
@@ -751,6 +814,17 @@ class List(SecurableObject):
|
|
|
751
814
|
self.context.add_query(qry)
|
|
752
815
|
return return_type
|
|
753
816
|
|
|
817
|
+
def reset_doc_id(self):
|
|
818
|
+
""""""
|
|
819
|
+
from office365.sharepoint.documentmanagement.document_id import DocumentId
|
|
820
|
+
|
|
821
|
+
def _loaded():
|
|
822
|
+
doc_mng = DocumentId(self.context)
|
|
823
|
+
doc_mng.reset_doc_ids_in_library(self.root_folder.serverRelativeUrl)
|
|
824
|
+
|
|
825
|
+
self.ensure_property("RootFolder", _loaded)
|
|
826
|
+
return self
|
|
827
|
+
|
|
754
828
|
@property
|
|
755
829
|
def id(self):
|
|
756
830
|
# type: () -> Optional[str]
|
|
@@ -1016,6 +1090,34 @@ class List(SecurableObject):
|
|
|
1016
1090
|
""" """
|
|
1017
1091
|
return self.properties.get("HasContentAssemblyTemplates", None)
|
|
1018
1092
|
|
|
1093
|
+
@property
|
|
1094
|
+
def has_external_data_source(self):
|
|
1095
|
+
# type: () -> Optional[bool]
|
|
1096
|
+
"""
|
|
1097
|
+
Specifies whether the list is an external list.
|
|
1098
|
+
"""
|
|
1099
|
+
return self.properties.get("HasExternalDataSource", None)
|
|
1100
|
+
|
|
1101
|
+
@property
|
|
1102
|
+
def has_folder_coloring_fields(self):
|
|
1103
|
+
# type: () -> Optional[bool]
|
|
1104
|
+
""" """
|
|
1105
|
+
return self.properties.get("HasFolderColoringFields", None)
|
|
1106
|
+
|
|
1107
|
+
@property
|
|
1108
|
+
def irm_enabled(self):
|
|
1109
|
+
# type: () -> Optional[bool]
|
|
1110
|
+
"""Gets a Boolean value that specifies whether Information Rights Management (IRM) is enabled for the list."""
|
|
1111
|
+
return self.properties.get("IrmEnabled", None)
|
|
1112
|
+
|
|
1113
|
+
@property
|
|
1114
|
+
def irm_expire(self):
|
|
1115
|
+
# type: () -> Optional[bool]
|
|
1116
|
+
"""Gets a Boolean value that specifies whether Information Rights Management (IRM) expiration is enabled
|
|
1117
|
+
for the list
|
|
1118
|
+
"""
|
|
1119
|
+
return self.properties.get("IrmExpire", None)
|
|
1120
|
+
|
|
1019
1121
|
@property
|
|
1020
1122
|
def items(self):
|
|
1021
1123
|
# type: () -> ListItemCollection
|
|
@@ -1128,6 +1230,16 @@ class List(SecurableObject):
|
|
|
1128
1230
|
),
|
|
1129
1231
|
)
|
|
1130
1232
|
|
|
1233
|
+
@property
|
|
1234
|
+
def version_policies(self):
|
|
1235
|
+
""" """
|
|
1236
|
+
return self.properties.get(
|
|
1237
|
+
"VersionPolicies",
|
|
1238
|
+
VersionPolicyManager(
|
|
1239
|
+
self.context, ResourcePath("VersionPolicies", self.resource_path)
|
|
1240
|
+
),
|
|
1241
|
+
)
|
|
1242
|
+
|
|
1131
1243
|
@property
|
|
1132
1244
|
def custom_action_elements(self):
|
|
1133
1245
|
return self.properties.get(
|
|
@@ -1408,6 +1520,7 @@ class List(SecurableObject):
|
|
|
1408
1520
|
"RootFolder": self.root_folder,
|
|
1409
1521
|
"TitleResource": self.title_resource,
|
|
1410
1522
|
"UserCustomActions": self.user_custom_actions,
|
|
1523
|
+
"VersionPolicies": self.version_policies,
|
|
1411
1524
|
}
|
|
1412
1525
|
default_value = property_mapping.get(name, None)
|
|
1413
1526
|
return super(List, self).get_property(name, default_value)
|
|
@@ -1420,4 +1533,8 @@ class List(SecurableObject):
|
|
|
1420
1533
|
self._resource_path = self.parent_collection.get_by_id(
|
|
1421
1534
|
value
|
|
1422
1535
|
).resource_path
|
|
1536
|
+
elif name == "Url":
|
|
1537
|
+
self._resource_path = ServiceOperationPath(
|
|
1538
|
+
"getList", [value], self.context.web.resource_path
|
|
1539
|
+
)
|
|
1423
1540
|
return self
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
from office365.runtime.client_value import ClientValue
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
class RenderListDataOptions:
|
|
5
|
+
"""The type of data to return when rendering a list view as JSON."""
|
|
6
|
+
|
|
7
|
+
"""Default render type."""
|
|
8
|
+
None_ = 0
|
|
9
|
+
|
|
10
|
+
""" Returns the list data context information. """
|
|
11
|
+
ContextInfo = 1
|
|
12
|
+
|
|
13
|
+
""" Returns the list data. """
|
|
14
|
+
ListData = 2
|
|
15
|
+
|
|
16
|
+
""" Returns the list schema. """
|
|
17
|
+
ListSchema = 4
|
|
18
|
+
|
|
19
|
+
""" Returns the menu view of the list. """
|
|
20
|
+
MenuView = 8
|
|
21
|
+
|
|
22
|
+
|
|
4
23
|
class RenderListDataParameters(ClientValue):
|
|
5
24
|
"""Specifies the parameters to be used to render list data as a JSON string"""
|
|
6
25
|
|
|
@@ -16,6 +35,10 @@ class RenderListDataParameters(ClientValue):
|
|
|
16
35
|
expand_groups=None,
|
|
17
36
|
expand_user_field=None,
|
|
18
37
|
filter_out_channel_folders_in_default_doc_lib=None,
|
|
38
|
+
render_options=None,
|
|
39
|
+
require_folder_coloring_fields=None,
|
|
40
|
+
show_stub_file=None,
|
|
41
|
+
view_xml=None,
|
|
19
42
|
):
|
|
20
43
|
"""
|
|
21
44
|
:param bool add_all_fields:
|
|
@@ -29,6 +52,10 @@ class RenderListDataParameters(ClientValue):
|
|
|
29
52
|
:param bool expand_groups: Specifies whether to expand the grouping or not.
|
|
30
53
|
:param bool expand_user_field:
|
|
31
54
|
:param bool filter_out_channel_folders_in_default_doc_lib:
|
|
55
|
+
:param int render_options: Specifies the type of output to return.
|
|
56
|
+
:param bool require_folder_coloring_fields:
|
|
57
|
+
:param bool show_stub_file:
|
|
58
|
+
:param str view_xml: Specifies the CAML view XML.
|
|
32
59
|
"""
|
|
33
60
|
self.AddAllFields = add_all_fields
|
|
34
61
|
self.AddAllViewFields = add_all_view_fields
|
|
@@ -44,6 +71,10 @@ class RenderListDataParameters(ClientValue):
|
|
|
44
71
|
self.FilterOutChannelFoldersInDefaultDocLib = (
|
|
45
72
|
filter_out_channel_folders_in_default_doc_lib
|
|
46
73
|
)
|
|
74
|
+
self.RenderOptions = render_options
|
|
75
|
+
self.RequireFolderColoringFields = require_folder_coloring_fields
|
|
76
|
+
self.ShowStubFile = show_stub_file
|
|
77
|
+
self.ViewXml = view_xml
|
|
47
78
|
|
|
48
79
|
@property
|
|
49
80
|
def entity_type_name(self):
|
|
@@ -7,6 +7,9 @@ from office365.sharepoint.entity import Entity
|
|
|
7
7
|
class CorporateCatalogAppMetadata(Entity):
|
|
8
8
|
"""App metadata for apps stored in the corporate catalog."""
|
|
9
9
|
|
|
10
|
+
def __str__(self):
|
|
11
|
+
return self.title or self.entity_type_name
|
|
12
|
+
|
|
10
13
|
def deploy(self, skip_feature_deployment):
|
|
11
14
|
"""This method deploys an app on the app catalog. It MUST be called in the context of the tenant app
|
|
12
15
|
catalog web or it will fail.
|
|
@@ -18,6 +21,13 @@ class CorporateCatalogAppMetadata(Entity):
|
|
|
18
21
|
self.context.add_query(qry)
|
|
19
22
|
return self
|
|
20
23
|
|
|
24
|
+
def remove(self):
|
|
25
|
+
"""This is the inverse of the add step above. One removed from the app catalog,
|
|
26
|
+
the solution can't be deployed."""
|
|
27
|
+
qry = ServiceOperationQuery(self, "Remove")
|
|
28
|
+
self.context.add_query(qry)
|
|
29
|
+
return self
|
|
30
|
+
|
|
21
31
|
def install(self):
|
|
22
32
|
"""This method allows an app which is already deployed to be installed on a web."""
|
|
23
33
|
qry = ServiceOperationQuery(self, "Install")
|
|
@@ -68,7 +78,8 @@ class CorporateCatalogAppMetadata(Entity):
|
|
|
68
78
|
|
|
69
79
|
@property
|
|
70
80
|
def property_ref_name(self):
|
|
71
|
-
return "AadAppId"
|
|
81
|
+
# return "AadAppId"
|
|
82
|
+
return "ID"
|
|
72
83
|
|
|
73
84
|
@property
|
|
74
85
|
def entity_type_name(self):
|
|
@@ -22,3 +22,11 @@ class CorporateCatalogAppMetadataCollection(
|
|
|
22
22
|
return CorporateCatalogAppMetadata(
|
|
23
23
|
self.context, ServiceOperationPath("GetById", [app_id], self.resource_path)
|
|
24
24
|
)
|
|
25
|
+
|
|
26
|
+
def get_by_title(self, title):
|
|
27
|
+
"""
|
|
28
|
+
Get app metadata by title.
|
|
29
|
+
|
|
30
|
+
:param str title: The title of the app to retrieve.
|
|
31
|
+
"""
|
|
32
|
+
return self.first("title eq '{0}'".format(title))
|
|
@@ -2,6 +2,28 @@ from office365.runtime.client_value import ClientValue
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class SPAddinInstanceInfo(ClientValue):
|
|
5
|
+
|
|
6
|
+
def __init__(
|
|
7
|
+
self,
|
|
8
|
+
app_identifier=None,
|
|
9
|
+
app_instance_id=None,
|
|
10
|
+
tenant_app_data=None,
|
|
11
|
+
tenant_app_data_update_time=None,
|
|
12
|
+
title=None,
|
|
13
|
+
):
|
|
14
|
+
"""
|
|
15
|
+
:param str app_identifier:
|
|
16
|
+
:param str app_instance_id:
|
|
17
|
+
:param str tenant_app_data:
|
|
18
|
+
:param datetime.datetime tenant_app_data_update_time:
|
|
19
|
+
:param str title:
|
|
20
|
+
"""
|
|
21
|
+
self.appIdentifier = app_identifier
|
|
22
|
+
self.appInstanceId = app_instance_id
|
|
23
|
+
self.tenantAppData = tenant_app_data
|
|
24
|
+
self.tenantAppDataUpdateTime = tenant_app_data_update_time
|
|
25
|
+
self.title = title
|
|
26
|
+
|
|
5
27
|
@property
|
|
6
28
|
def entity_type_name(self):
|
|
7
29
|
return "Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPAddinInstanceInfo"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SPAddinPermissionInfo(ClientValue):
|
|
5
|
+
""""""
|
|
6
|
+
|
|
7
|
+
def __init__(self, absolute_url=None):
|
|
8
|
+
self.absoluteUrl = absolute_url
|
|
9
|
+
|
|
10
|
+
@property
|
|
11
|
+
def entity_type_name(self):
|
|
12
|
+
return "Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPAddinPermissionInfo"
|
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
from office365.runtime.client_value import ClientValue
|
|
2
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
3
|
+
from office365.sharepoint.marketplace.corporatecuratedgallery.addins.permission_failed_info import (
|
|
4
|
+
SPAddinPermissionFailedInfo,
|
|
5
|
+
)
|
|
6
|
+
from office365.sharepoint.marketplace.corporatecuratedgallery.addins.permission_info import (
|
|
7
|
+
SPAddinPermissionInfo,
|
|
8
|
+
)
|
|
2
9
|
|
|
3
10
|
|
|
4
11
|
class SPAddinPermissionResponse(ClientValue):
|
|
5
12
|
""""""
|
|
6
13
|
|
|
14
|
+
def __init__(self, addin_permissions=None, failed_addins=None):
|
|
15
|
+
self.addinPermissions = ClientValueCollection(
|
|
16
|
+
SPAddinPermissionInfo, addin_permissions
|
|
17
|
+
)
|
|
18
|
+
self.failedAddins = ClientValueCollection(
|
|
19
|
+
SPAddinPermissionFailedInfo, failed_addins
|
|
20
|
+
)
|
|
21
|
+
|
|
7
22
|
@property
|
|
8
23
|
def entity_type_name(self):
|
|
9
24
|
return "Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPAddinPermissionResponse"
|
|
@@ -8,3 +8,7 @@ from office365.sharepoint.marketplace.corporatecuratedgallery.addins.instance_in
|
|
|
8
8
|
class SPAvailableAddinsResponse(ClientValue):
|
|
9
9
|
def __init__(self, addins=None):
|
|
10
10
|
self.addins = ClientValueCollection(SPAddinInstanceInfo, addins)
|
|
11
|
+
|
|
12
|
+
@property
|
|
13
|
+
def entity_type_name(self):
|
|
14
|
+
return "Microsoft.SharePoint.Marketplace.CorporateCuratedGallery.SPAvailableAddinsResponse"
|