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
office365/admin/admin.py
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
from office365.admin.microsoft365_apps import AdminMicrosoft365Apps
|
|
2
|
+
from office365.admin.people_settings import PeopleAdminSettings
|
|
3
|
+
from office365.admin.report_settings import AdminReportSettings
|
|
4
|
+
from office365.admin.sharepoint import Sharepoint
|
|
5
|
+
from office365.entity import Entity
|
|
6
|
+
from office365.intune.servicecommunications.announcement import ServiceAnnouncement
|
|
7
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Admin(Entity):
|
|
11
|
+
"""Entity that acts as a container for administrator functionality."""
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def microsoft365_apps(self):
|
|
15
|
+
"""A container for the Microsoft 365 apps admin functionality."""
|
|
16
|
+
return self.properties.get(
|
|
17
|
+
"microsoft365Apps",
|
|
18
|
+
AdminMicrosoft365Apps(
|
|
19
|
+
self.context, ResourcePath("microsoft365Apps", self.resource_path)
|
|
20
|
+
),
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
@property
|
|
24
|
+
def sharepoint(self):
|
|
25
|
+
"""A container for administrative resources to manage tenant-level settings for SharePoint and OneDrive."""
|
|
26
|
+
return self.properties.get(
|
|
27
|
+
"sharepoint",
|
|
28
|
+
Sharepoint(self.context, ResourcePath("sharepoint", self.resource_path)),
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def service_announcement(self):
|
|
33
|
+
"""A container for service communications resources. Read-only."""
|
|
34
|
+
return self.properties.get(
|
|
35
|
+
"serviceAnnouncement",
|
|
36
|
+
ServiceAnnouncement(
|
|
37
|
+
self.context, ResourcePath("serviceAnnouncement", self.resource_path)
|
|
38
|
+
),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def report_settings(self):
|
|
43
|
+
"""A container for administrative resources to manage reports."""
|
|
44
|
+
return self.properties.get(
|
|
45
|
+
"reportSettings",
|
|
46
|
+
AdminReportSettings(
|
|
47
|
+
self.context, ResourcePath("reportSettings", self.resource_path)
|
|
48
|
+
),
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def people(self):
|
|
53
|
+
"""Represents a setting to control people-related admin settings in the tenant."""
|
|
54
|
+
return self.properties.get(
|
|
55
|
+
"people",
|
|
56
|
+
PeopleAdminSettings(
|
|
57
|
+
self.context, ResourcePath("people", self.resource_path)
|
|
58
|
+
),
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
def get_property(self, name, default_value=None):
|
|
62
|
+
if default_value is None:
|
|
63
|
+
property_mapping = {
|
|
64
|
+
"microsoft365Apps": self.microsoft365_apps,
|
|
65
|
+
"serviceAnnouncement": self.service_announcement,
|
|
66
|
+
"reportSettings": self.report_settings,
|
|
67
|
+
}
|
|
68
|
+
default_value = property_mapping.get(name, None)
|
|
69
|
+
return super(Admin, self).get_property(name, default_value)
|
office365/azure_env.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
class AzureEnvironment(object):
|
|
2
|
+
|
|
3
|
+
Global = "Global"
|
|
4
|
+
"""Referred to as Azure or Azure Global."""
|
|
5
|
+
|
|
6
|
+
USGovernment = "GCC"
|
|
7
|
+
"""Government Community Cloud"""
|
|
8
|
+
|
|
9
|
+
USGovernmentHigh = "GCC High"
|
|
10
|
+
"""Government Community Cloud High."""
|
|
11
|
+
|
|
12
|
+
China = "CN"
|
|
13
|
+
"""Operated by 21Vianet under Chinese regulations."""
|
|
14
|
+
|
|
15
|
+
Germany = "Azure DE"
|
|
16
|
+
"""Legacy; for data sovereignty in Germany."""
|
|
17
|
+
|
|
18
|
+
USGovernmentDoD = "DoD"
|
|
19
|
+
"""Azure for U.S. Department of Defense (DoD)"""
|
|
20
|
+
|
|
21
|
+
_authority_endpoints = {
|
|
22
|
+
Global: {
|
|
23
|
+
"graph": "https://graph.microsoft.com",
|
|
24
|
+
"login": "https://login.microsoftonline.com",
|
|
25
|
+
},
|
|
26
|
+
USGovernment: {
|
|
27
|
+
"graph": "https://graph.microsoft.com",
|
|
28
|
+
"login": "https://login.microsoftonline.com",
|
|
29
|
+
},
|
|
30
|
+
USGovernmentHigh: {
|
|
31
|
+
"graph": "https://graph.microsoft.us",
|
|
32
|
+
"login": "https://login.microsoftonline.us",
|
|
33
|
+
},
|
|
34
|
+
USGovernmentDoD: {
|
|
35
|
+
"graph": "https://dod-graph.microsoft.us",
|
|
36
|
+
"login": "https://login.microsoftonline.us",
|
|
37
|
+
},
|
|
38
|
+
Germany: {
|
|
39
|
+
"graph": "https://graph.microsoft.de",
|
|
40
|
+
"login": "https://login.microsoftonline.de",
|
|
41
|
+
},
|
|
42
|
+
China: {
|
|
43
|
+
"graph": "https://microsoftgraph.chinacloudapi.cn",
|
|
44
|
+
"login": "https://login.chinacloudapi.cn",
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def get_graph_authority(cls, env):
|
|
50
|
+
# type: (str) -> str
|
|
51
|
+
return cls._authority_endpoints.get(env, cls._authority_endpoints["Global"])[
|
|
52
|
+
"graph"
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
@classmethod
|
|
56
|
+
def get_login_authority(cls, env):
|
|
57
|
+
# type: (str) -> str
|
|
58
|
+
return cls._authority_endpoints.get(env, cls._authority_endpoints["Global"])[
|
|
59
|
+
"login"
|
|
60
|
+
]
|
|
@@ -46,6 +46,19 @@ class BookingBusiness(Entity):
|
|
|
46
46
|
self.context.add_query(qry)
|
|
47
47
|
return return_type
|
|
48
48
|
|
|
49
|
+
def publish(self):
|
|
50
|
+
"""
|
|
51
|
+
Make the scheduling page of a business available to external customers.
|
|
52
|
+
|
|
53
|
+
Set the isPublished property to true, and the publicUrl property to the URL of the scheduling page.
|
|
54
|
+
"""
|
|
55
|
+
qry = ServiceOperationQuery(
|
|
56
|
+
self,
|
|
57
|
+
"publish",
|
|
58
|
+
)
|
|
59
|
+
self.context.add_query(qry)
|
|
60
|
+
return self
|
|
61
|
+
|
|
49
62
|
@property
|
|
50
63
|
def address(self):
|
|
51
64
|
"""
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
1
3
|
from office365.booking.business.business import BookingBusiness
|
|
2
4
|
from office365.entity_collection import EntityCollection
|
|
5
|
+
from office365.outlook.mail.physical_address import PhysicalAddress
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
class BookingBusinessCollection(EntityCollection[BookingBusiness]):
|
|
@@ -10,12 +13,13 @@ class BookingBusinessCollection(EntityCollection[BookingBusiness]):
|
|
|
10
13
|
context, BookingBusiness, resource_path
|
|
11
14
|
)
|
|
12
15
|
|
|
13
|
-
def add(self, display_name):
|
|
16
|
+
def add(self, display_name, address=None, email=None):
|
|
17
|
+
# type: (str, Optional[PhysicalAddress], Optional[str]) -> BookingBusiness
|
|
14
18
|
"""
|
|
15
19
|
Create a new Microsoft Bookings business in a tenant.
|
|
16
20
|
:param str display_name: The business display name.
|
|
21
|
+
:param PhysicalAddress address: The business display name.
|
|
22
|
+
:param str email: The email address for the business.
|
|
17
23
|
"""
|
|
18
|
-
props = {
|
|
19
|
-
"displayName": display_name,
|
|
20
|
-
}
|
|
24
|
+
props = {"displayName": display_name, "address": address, "email": email}
|
|
21
25
|
return super(BookingBusinessCollection, self).add(**props)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from datetime import datetime, timedelta
|
|
2
|
+
|
|
3
|
+
from office365.communications.callrecords.call_record import CallRecord
|
|
4
|
+
from office365.communications.callrecords.direct_routing_log_row import (
|
|
5
|
+
DirectRoutingLogRow,
|
|
6
|
+
)
|
|
7
|
+
from office365.entity_collection import EntityCollection
|
|
8
|
+
from office365.runtime.client_result import ClientResult
|
|
9
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
10
|
+
from office365.runtime.queries.function import FunctionQuery
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CallRecordCollection(EntityCollection[CallRecord]):
|
|
14
|
+
def __init__(self, context, resource_path=None):
|
|
15
|
+
super(CallRecordCollection, self).__init__(context, CallRecord, resource_path)
|
|
16
|
+
|
|
17
|
+
def get_direct_routing_calls(self, from_datetime=None, to_datetime=None):
|
|
18
|
+
"""
|
|
19
|
+
Get a log of direct routing calls as a collection of directRoutingLogRow entries.
|
|
20
|
+
:param datetime from_datetime: Start of time range to query.
|
|
21
|
+
:param datetime to_datetime: End of time range to query
|
|
22
|
+
"""
|
|
23
|
+
if to_datetime is None:
|
|
24
|
+
to_datetime = datetime.now()
|
|
25
|
+
|
|
26
|
+
if from_datetime is None:
|
|
27
|
+
from_datetime = to_datetime - timedelta(days=30)
|
|
28
|
+
|
|
29
|
+
return_type = ClientResult(
|
|
30
|
+
self.context, ClientValueCollection(DirectRoutingLogRow)
|
|
31
|
+
)
|
|
32
|
+
payload = {
|
|
33
|
+
"fromDateTime": from_datetime.strftime("%Y-%m-%d"),
|
|
34
|
+
"toDateTime": to_datetime.strftime("%Y-%m-%d"),
|
|
35
|
+
}
|
|
36
|
+
qry = FunctionQuery(self, "getDirectRoutingCalls", payload, return_type)
|
|
37
|
+
|
|
38
|
+
def _patch_request(request):
|
|
39
|
+
request.url = request.url.replace("'", "")
|
|
40
|
+
|
|
41
|
+
self.context.add_query(qry).before_query_execute(_patch_request)
|
|
42
|
+
return return_type
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from office365.communications.callrecords.
|
|
1
|
+
from office365.communications.callrecords.collection import CallRecordCollection
|
|
2
2
|
from office365.communications.calls.collection import CallCollection
|
|
3
3
|
from office365.communications.onlinemeetings.collection import OnlineMeetingCollection
|
|
4
4
|
from office365.communications.presences.presence import Presence
|
|
@@ -37,9 +37,8 @@ class CloudCommunications(Entity):
|
|
|
37
37
|
""" " """
|
|
38
38
|
return self.properties.get(
|
|
39
39
|
"callRecords",
|
|
40
|
-
|
|
40
|
+
CallRecordCollection(
|
|
41
41
|
self.context,
|
|
42
|
-
CallRecord,
|
|
43
42
|
ResourcePath("callRecords", self.resource_path),
|
|
44
43
|
),
|
|
45
44
|
)
|
|
@@ -5,6 +5,9 @@ from typing import Optional
|
|
|
5
5
|
from office365.directory.applications.api import ApiApplication
|
|
6
6
|
from office365.directory.applications.optional_claims import OptionalClaims
|
|
7
7
|
from office365.directory.applications.public_client import PublicClientApplication
|
|
8
|
+
from office365.directory.applications.required_resource_access import (
|
|
9
|
+
RequiredResourceAccess,
|
|
10
|
+
)
|
|
8
11
|
from office365.directory.applications.roles.role import AppRole
|
|
9
12
|
from office365.directory.applications.spa import SpaApplication
|
|
10
13
|
from office365.directory.certificates.certification import Certification
|
|
@@ -53,7 +56,7 @@ class Application(DirectoryObject):
|
|
|
53
56
|
:param datetime.datetime end_datetime: The date and time at which the credential expires. Default: now + 180days
|
|
54
57
|
"""
|
|
55
58
|
if start_datetime is None:
|
|
56
|
-
start_datetime = datetime.datetime.
|
|
59
|
+
start_datetime = datetime.datetime.now()
|
|
57
60
|
if end_datetime is None:
|
|
58
61
|
end_datetime = start_datetime + datetime.timedelta(days=180)
|
|
59
62
|
|
|
@@ -228,7 +231,7 @@ class Application(DirectoryObject):
|
|
|
228
231
|
@property
|
|
229
232
|
def key_credentials(self):
|
|
230
233
|
"""The collection of key credentials associated with the application. Not nullable."""
|
|
231
|
-
self.
|
|
234
|
+
self._properties_to_persist.append("keyCredentials")
|
|
232
235
|
return self.properties.setdefault(
|
|
233
236
|
"keyCredentials", ClientValueCollection(KeyCredential)
|
|
234
237
|
)
|
|
@@ -315,6 +318,16 @@ class Application(DirectoryObject):
|
|
|
315
318
|
),
|
|
316
319
|
)
|
|
317
320
|
|
|
321
|
+
@property
|
|
322
|
+
def required_resource_access(self):
|
|
323
|
+
"""Specifies the resources that the application needs to access. This property also specifies the set
|
|
324
|
+
of delegated permissions and application roles that it needs for each of those resources.
|
|
325
|
+
This configuration of access to the required resources drives the consent experience.
|
|
326
|
+
"""
|
|
327
|
+
return self.properties.get(
|
|
328
|
+
"requiredResourceAccess", ClientValueCollection(RequiredResourceAccess)
|
|
329
|
+
)
|
|
330
|
+
|
|
318
331
|
@property
|
|
319
332
|
def token_issuance_policies(self):
|
|
320
333
|
# type: () -> EntityCollection[TokenIssuancePolicy]
|
|
@@ -339,6 +352,7 @@ class Application(DirectoryObject):
|
|
|
339
352
|
"optionalClaims": self.optional_claims,
|
|
340
353
|
"passwordCredentials": self.password_credentials,
|
|
341
354
|
"publicClient": self.public_client,
|
|
355
|
+
"requiredResourceAccess": self.required_resource_access,
|
|
342
356
|
"tokenIssuancePolicies": self.token_issuance_policies,
|
|
343
357
|
}
|
|
344
358
|
default_value = property_mapping.get(name, None)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from office365.directory.applications.resource_access import ResourceAccess
|
|
2
|
+
from office365.runtime.client_value import ClientValue
|
|
3
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class RequiredResourceAccess(ClientValue):
|
|
7
|
+
"""Specifies the set of OAuth 2.0 permission scopes and app roles under the specified resource that an
|
|
8
|
+
application requires access to. The application may request the specified OAuth 2.0 permission scopes or app
|
|
9
|
+
roles through the requiredResourceAccess property, which is a collection of requiredResourceAccess objects.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
def __init__(self, resource_access=None, resource_app_id=None):
|
|
13
|
+
"""
|
|
14
|
+
:param list[ResourceAccess] resource_access: The list of OAuth2.0 permission scopes and app roles that
|
|
15
|
+
the application requires from the specified resource.
|
|
16
|
+
:param str resource_app_id: The unique identifier for the resource that the application requires access to.
|
|
17
|
+
This should be equal to the appId declared on the target resource application.
|
|
18
|
+
"""
|
|
19
|
+
self.resourceAccess = ClientValueCollection(ResourceAccess, resource_access)
|
|
20
|
+
self.resourceAppId = resource_app_id
|
|
21
|
+
|
|
22
|
+
def __repr__(self):
|
|
23
|
+
return self.resourceAppId or self.entity_type_name
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ResourceAccess(ClientValue):
|
|
5
|
+
"""Object used to specify an OAuth 2.0 permission scope or an app role that an application requires,
|
|
6
|
+
through the resourceAccess property of the requiredResourceAccess resource type."""
|
|
7
|
+
|
|
8
|
+
def __init__(self, id_=None, type_=None):
|
|
9
|
+
"""
|
|
10
|
+
:param str id_: The unique identifier of an app role or delegated permission exposed by the resource
|
|
11
|
+
application. For delegated permissions, this should match the id property of one of the delegated
|
|
12
|
+
permissions in the oauth2PermissionScopes collection of the resource application's service principal.
|
|
13
|
+
For app roles (application permissions), this should match the id property of an app role in the appRoles
|
|
14
|
+
collection of the resource application's service principal.
|
|
15
|
+
:param str type_: Specifies whether the id property references a delegated permission or an app role
|
|
16
|
+
(application permission). The possible values are: Scope (for delegated permissions) or Role (for app roles).
|
|
17
|
+
"""
|
|
18
|
+
self.id = id_
|
|
19
|
+
self.type = type_
|
|
20
|
+
|
|
21
|
+
def __repr__(self):
|
|
22
|
+
return "ResourceAccess(id={!r}, type={!r})".format(self.id, self.type)
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def type_name(self):
|
|
26
|
+
return "Delegated" if self.type == "Scope" else "Application"
|
|
@@ -42,6 +42,21 @@ class Authentication(Entity):
|
|
|
42
42
|
),
|
|
43
43
|
)
|
|
44
44
|
|
|
45
|
+
@property
|
|
46
|
+
def microsoft_authenticator_methods(self):
|
|
47
|
+
from office365.directory.authentication.methods.microsoft_authenticator import (
|
|
48
|
+
MicrosoftAuthenticatorAuthenticationMethod,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
return self.properties.get(
|
|
52
|
+
"microsoftAuthenticatorMethods",
|
|
53
|
+
EntityCollection(
|
|
54
|
+
self.context,
|
|
55
|
+
MicrosoftAuthenticatorAuthenticationMethod,
|
|
56
|
+
ResourcePath("microsoftAuthenticatorMethods", self.resource_path),
|
|
57
|
+
),
|
|
58
|
+
)
|
|
59
|
+
|
|
45
60
|
@property
|
|
46
61
|
def phone_methods(self):
|
|
47
62
|
"""The phone numbers registered to a user for authentication."""
|
|
@@ -94,6 +109,7 @@ class Authentication(Entity):
|
|
|
94
109
|
property_mapping = {
|
|
95
110
|
"emailMethods": self.email_methods,
|
|
96
111
|
"fido2Methods": self.fido2_methods,
|
|
112
|
+
"microsoftAuthenticatorMethods": self.microsoft_authenticator_methods,
|
|
97
113
|
"passwordMethods": self.password_methods,
|
|
98
114
|
"phoneMethods": self.phone_methods,
|
|
99
115
|
}
|
|
@@ -54,6 +54,32 @@ class UserRegistrationDetails(Entity):
|
|
|
54
54
|
"""
|
|
55
55
|
return self.properties.get("isSsprEnabled", None)
|
|
56
56
|
|
|
57
|
+
@property
|
|
58
|
+
def user_display_name(self):
|
|
59
|
+
# type: () -> Optional[str]
|
|
60
|
+
"""
|
|
61
|
+
The user display name, such as Adele Vance. Supports $filter (eq, startsWith) and $orderby.
|
|
62
|
+
"""
|
|
63
|
+
return self.properties.get("userDisplayName", None)
|
|
64
|
+
|
|
65
|
+
@property
|
|
66
|
+
def user_preferred_method_for_secondary_authentication(self):
|
|
67
|
+
# type: () -> Optional[str]
|
|
68
|
+
"""
|
|
69
|
+
The method the user selected as the default second-factor for performing multifactor authentication.
|
|
70
|
+
"""
|
|
71
|
+
return self.properties.get(
|
|
72
|
+
"userPreferredMethodForSecondaryAuthentication", None
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
@property
|
|
76
|
+
def user_principal_name(self):
|
|
77
|
+
# type: () -> Optional[str]
|
|
78
|
+
"""
|
|
79
|
+
The user principal name, such as AdeleV@contoso.com. Supports $filter (eq, startsWith) and $orderby.
|
|
80
|
+
"""
|
|
81
|
+
return self.properties.get("userPrincipalName", None)
|
|
82
|
+
|
|
57
83
|
@property
|
|
58
84
|
def user_type(self):
|
|
59
85
|
# type: () -> Optional[str]
|
|
@@ -62,3 +88,6 @@ class UserRegistrationDetails(Entity):
|
|
|
62
88
|
The possible values are: member, guest, unknownFutureValue.
|
|
63
89
|
"""
|
|
64
90
|
return self.properties.get("userType", None)
|
|
91
|
+
|
|
92
|
+
def __repr__(self):
|
|
93
|
+
return self.user_principal_name or self.id or self.entity_type_name
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
from office365.directory.authentication.methods.method import AuthenticationMethod
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class MicrosoftAuthenticatorAuthenticationMethod(AuthenticationMethod):
|
|
5
|
+
"""A representation of the Microsoft Authenticator app registered to a user. Microsoft Authenticator
|
|
6
|
+
is an authentication method."""
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
from office365.directory.authentication.methods.details import UserRegistrationDetails
|
|
2
2
|
from office365.entity import Entity
|
|
3
3
|
from office365.entity_collection import EntityCollection
|
|
4
|
+
from office365.reports.userregistration.feature_summary import (
|
|
5
|
+
UserRegistrationFeatureSummary,
|
|
6
|
+
)
|
|
4
7
|
from office365.reports.userregistration.method_summary import (
|
|
5
8
|
UserRegistrationMethodSummary,
|
|
6
9
|
)
|
|
@@ -12,6 +15,14 @@ from office365.runtime.queries.function import FunctionQuery
|
|
|
12
15
|
class AuthenticationMethodsRoot(Entity):
|
|
13
16
|
"""Container for navigation properties for Azure AD authentication methods resources."""
|
|
14
17
|
|
|
18
|
+
def users_registered_by_feature(self):
|
|
19
|
+
"""Get the number of users capable of multi-factor authentication, self-service password reset,
|
|
20
|
+
and passwordless authentication."""
|
|
21
|
+
return_type = ClientResult(self.context, UserRegistrationFeatureSummary())
|
|
22
|
+
qry = FunctionQuery(self, "usersRegisteredByFeature", None, return_type)
|
|
23
|
+
self.context.add_query(qry)
|
|
24
|
+
return return_type
|
|
25
|
+
|
|
15
26
|
def users_registered_by_method(self):
|
|
16
27
|
"""Get the number of users registered for each authentication method."""
|
|
17
28
|
return_type = ClientResult(self.context, UserRegistrationMethodSummary())
|
|
@@ -32,3 +43,11 @@ class AuthenticationMethodsRoot(Entity):
|
|
|
32
43
|
ResourcePath("userRegistrationDetails", self.resource_path),
|
|
33
44
|
),
|
|
34
45
|
)
|
|
46
|
+
|
|
47
|
+
def get_property(self, name, default_value=None):
|
|
48
|
+
if default_value is None:
|
|
49
|
+
property_mapping = {
|
|
50
|
+
"userRegistrationDetails": self.user_registration_details
|
|
51
|
+
}
|
|
52
|
+
default_value = property_mapping.get(name, None)
|
|
53
|
+
return super(AuthenticationMethodsRoot, self).get_property(name, default_value)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from office365.directory.authentication.method_configuration import (
|
|
2
|
+
AuthenticationMethodConfiguration,
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SmsAuthenticationMethodConfiguration(AuthenticationMethodConfiguration):
|
|
7
|
+
"""Represents a text message authentication methods policy. Authentication methods policies define
|
|
8
|
+
configuration settings and users or groups that are enabled to use the authentication method.
|
|
9
|
+
"""
|
|
@@ -4,8 +4,37 @@ from office365.runtime.client_value import ClientValue
|
|
|
4
4
|
class SelfSignedCertificate(ClientValue):
|
|
5
5
|
"""Contains the public part of a signing certificate."""
|
|
6
6
|
|
|
7
|
-
def __init__(
|
|
7
|
+
def __init__(
|
|
8
|
+
self,
|
|
9
|
+
custom_key_identifier=None,
|
|
10
|
+
display_name=None,
|
|
11
|
+
end_datetime=None,
|
|
12
|
+
key=None,
|
|
13
|
+
key_id=None,
|
|
14
|
+
start_datetime=None,
|
|
15
|
+
thumbprint=None,
|
|
16
|
+
type_=None,
|
|
17
|
+
usage=None,
|
|
18
|
+
):
|
|
8
19
|
"""
|
|
9
|
-
:param
|
|
20
|
+
:param custom_key_identifier: Custom key identifier.
|
|
21
|
+
:param str display_name: The friendly name for the key.
|
|
22
|
+
:param end_datetime: The date and time at which the credential expires. The timestamp type represents date
|
|
23
|
+
and time information using ISO 8601 format and is always in UTC time
|
|
24
|
+
:param key: The value for the key credential. Should be a Base-64 encoded value.
|
|
25
|
+
:param key_id: The unique identifier (GUID) for the key.
|
|
26
|
+
:param start_datetime: The date and time at which the credential becomes valid. The timestamp type represents
|
|
27
|
+
date and time information using ISO 8601 format and is always in UTC time
|
|
28
|
+
:param thumbprint: The thumbprint value for the key.
|
|
29
|
+
:param type_: The type of key credential. AsymmetricX509Cert.
|
|
30
|
+
:param usage: A string that describes the purpose for which the key can be used. The possible value is Verify.
|
|
10
31
|
"""
|
|
32
|
+
self.customKeyIdentifier = custom_key_identifier
|
|
11
33
|
self.displayName = display_name
|
|
34
|
+
self.endDateTime = end_datetime
|
|
35
|
+
self.key = key
|
|
36
|
+
self.keyId = key_id
|
|
37
|
+
self.startDateTime = start_datetime
|
|
38
|
+
self.thumbprint = thumbprint
|
|
39
|
+
self.type = type_
|
|
40
|
+
self.usage = usage
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
from office365.directory.policies.conditional_access import ConditionalAccessPolicy
|
|
1
2
|
from office365.entity import Entity
|
|
3
|
+
from office365.entity_collection import EntityCollection
|
|
2
4
|
from office365.runtime.paths.resource_path import ResourcePath
|
|
3
5
|
|
|
4
6
|
|
|
@@ -15,3 +17,15 @@ class ConditionalAccessRoot(Entity):
|
|
|
15
17
|
self.context, ResourcePath("authenticationStrength", self.resource_path)
|
|
16
18
|
),
|
|
17
19
|
)
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def policies(self):
|
|
23
|
+
"""Returns a collection of the specified Conditional Access (CA) policies."""
|
|
24
|
+
return self.properties.get(
|
|
25
|
+
"policies",
|
|
26
|
+
EntityCollection(
|
|
27
|
+
self.context,
|
|
28
|
+
ConditionalAccessPolicy,
|
|
29
|
+
ResourcePath("policies", self.resource_path),
|
|
30
|
+
),
|
|
31
|
+
)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class Approval(Entity):
|
|
5
|
+
"""Represents the approval object for decisions associated with a request.
|
|
6
|
+
|
|
7
|
+
In PIM for groups, the approval object for decisions to approve or deny requests to activate
|
|
8
|
+
group membership or ownership."""
|
|
@@ -1,5 +1,35 @@
|
|
|
1
|
+
from office365.directory.identitygovernance.privilegedaccess.approval import Approval
|
|
2
|
+
from office365.directory.identitygovernance.privilegedaccess.group_assignment_schedule_instance import (
|
|
3
|
+
PrivilegedAccessGroupAssignmentScheduleInstance,
|
|
4
|
+
)
|
|
1
5
|
from office365.entity import Entity
|
|
6
|
+
from office365.entity_collection import EntityCollection
|
|
7
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
2
8
|
|
|
3
9
|
|
|
4
10
|
class PrivilegedAccessGroup(Entity):
|
|
5
11
|
"""The entry point for all resources related to Privileged Identity Management (PIM) for groups."""
|
|
12
|
+
|
|
13
|
+
@property
|
|
14
|
+
def assignment_approvals(self):
|
|
15
|
+
""" """
|
|
16
|
+
return self.properties.get(
|
|
17
|
+
"assignmentApprovals",
|
|
18
|
+
EntityCollection(
|
|
19
|
+
self.context,
|
|
20
|
+
Approval,
|
|
21
|
+
ResourcePath("assignmentApprovals", self.resource_path),
|
|
22
|
+
),
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def assignment_schedule_instances(self):
|
|
27
|
+
"""The instances of assignment schedules to activate a just-in-time access."""
|
|
28
|
+
return self.properties.get(
|
|
29
|
+
"assignmentScheduleInstances",
|
|
30
|
+
EntityCollection(
|
|
31
|
+
self.context,
|
|
32
|
+
PrivilegedAccessGroupAssignmentScheduleInstance,
|
|
33
|
+
ResourcePath("assignmentScheduleInstances", self.resource_path),
|
|
34
|
+
),
|
|
35
|
+
)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from office365.directory.identitygovernance.privilegedaccess.schedule_instance import (
|
|
2
|
+
PrivilegedAccessScheduleInstance,
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class PrivilegedAccessGroupAssignmentScheduleInstance(PrivilegedAccessScheduleInstance):
|
|
7
|
+
"""Represents an instance of a provisioned membership or ownership assignment in PIM for groups."""
|
office365/directory/identitygovernance/privilegedaccess/unified_role_assignment_schedule_request.py
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class UnifiedRoleAssignmentScheduleRequest(Entity):
|
|
5
|
+
"""In PIM, represents a request for an active role assignment to a principal. The role assignment can be
|
|
6
|
+
permanently active with or without an expiry date, or temporarily active after activation of an eligible
|
|
7
|
+
assignment. Inherits from request."""
|