Office365-REST-Python-Client 2.4.2__py3-none-any.whl → 2.4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/METADATA +65 -31
- {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/RECORD +401 -259
- office365/base_item.py +27 -5
- office365/booking/business.py +7 -0
- office365/booking/currency.py +5 -0
- office365/booking/solutions_root.py +32 -0
- office365/communications/calls/invitation_participant_info.py +17 -1
- office365/communications/calls/options.py +9 -0
- office365/communications/onlinemeetings/provider_type.py +3 -0
- office365/communications/presences/presence.py +14 -0
- office365/communications/presences/status_message.py +12 -0
- office365/directory/administrative_unit.py +22 -0
- office365/directory/applications/collection.py +2 -1
- office365/directory/applications/roles/assignment.py +45 -5
- office365/directory/applications/roles/assignment_collection.py +8 -0
- office365/directory/applications/roles/role.py +6 -1
- office365/directory/audit/signins/activity.py +31 -0
- office365/directory/audit/signins/location.py +17 -0
- office365/directory/audit/signins/signin.py +33 -0
- office365/directory/authentication/authentication.py +9 -0
- office365/directory/authentication/methods/details.py +25 -0
- office365/directory/authentication/methods/email.py +16 -0
- office365/directory/authentication/methods/root.py +27 -0
- office365/directory/certificates/authority.py +6 -1
- office365/directory/extensions/extended_property.py +8 -1
- office365/directory/extensions/extension.py +1 -1
- office365/directory/extensions/extension_property.py +0 -3
- office365/directory/extensions/open_type.py +8 -0
- office365/directory/groups/collection.py +2 -4
- office365/directory/groups/group.py +18 -4
- office365/directory/identities/governance.py +2 -0
- office365/directory/identities/object_identity.py +3 -3
- office365/directory/insights/resource_reference.py +15 -0
- office365/directory/insights/shared.py +36 -0
- office365/directory/insights/sharing_detail.py +11 -0
- office365/directory/insights/trending.py +8 -0
- office365/directory/insights/usage_details.py +16 -0
- office365/directory/insights/used.py +30 -0
- office365/directory/invitations/invitation.py +33 -1
- office365/directory/licenses/assigned_plan.py +19 -1
- office365/directory/licenses/assignment_state.py +5 -0
- office365/directory/licenses/service_plan_info.py +4 -0
- office365/directory/licenses/subscribed_sku.py +41 -0
- office365/directory/licenses/units_detail.py +11 -0
- office365/directory/object.py +3 -1
- office365/directory/object_collection.py +3 -4
- office365/directory/password_credential.py +5 -1
- office365/directory/permissions/email_identity.py +5 -0
- office365/directory/permissions/grants/condition_set.py +26 -0
- office365/directory/permissions/grants/resource_specific.py +21 -0
- office365/directory/policies/authentication_flows.py +9 -0
- office365/directory/policies/authentication_strength.py +10 -0
- office365/directory/policies/authorization.py +8 -0
- office365/directory/policies/cross_tenant_access.py +5 -0
- office365/directory/policies/root.py +35 -2
- office365/directory/protection/information.py +5 -0
- office365/directory/protection/risk_detection.py +11 -0
- office365/directory/protection/riskyusers/activity.py +5 -0
- office365/directory/protection/riskyusers/collection.py +32 -0
- office365/directory/protection/riskyusers/history_item.py +20 -0
- office365/directory/protection/riskyusers/risky_user.py +26 -0
- office365/directory/protection/root.py +31 -0
- office365/directory/rolemanagement/application.py +35 -0
- office365/directory/{roles → rolemanagement}/management.py +8 -1
- office365/directory/{roles → rolemanagement}/role.py +14 -0
- office365/directory/{roles → rolemanagement}/template.py +8 -0
- office365/directory/rolemanagement/unified_role_assignment.py +45 -0
- office365/directory/rolemanagement/unified_role_definition.py +6 -0
- office365/directory/security/alerts/alert.py +21 -0
- office365/directory/security/alerts/history_state.py +5 -0
- office365/directory/security/attacksimulations/automation.py +21 -0
- office365/directory/security/attacksimulations/automation_run.py +5 -0
- office365/directory/security/attacksimulations/repeat_offender.py +6 -0
- office365/directory/security/attacksimulations/root.py +26 -0
- office365/directory/security/attacksimulations/simulation.py +17 -0
- office365/directory/security/cases/__init__.py +0 -0
- office365/directory/security/cases/ediscovery.py +6 -0
- office365/directory/security/cases/root.py +22 -0
- office365/directory/security/incidents/incident.py +67 -0
- office365/directory/security/security.py +10 -1
- office365/directory/serviceprincipals/service_principal.py +89 -4
- office365/directory/synchronization/__init__.py +0 -0
- office365/directory/synchronization/job.py +16 -0
- office365/directory/synchronization/progress.py +5 -0
- office365/directory/synchronization/status.py +13 -0
- office365/directory/synchronization/synchronization.py +24 -0
- office365/directory/tenant_information.py +17 -0
- office365/directory/tenant_relationship.py +21 -0
- office365/directory/users/activities/activity.py +45 -1
- office365/directory/users/collection.py +8 -0
- office365/directory/users/password_profile.py +18 -2
- office365/directory/users/user.py +254 -29
- office365/entity.py +3 -3
- office365/graph_client.py +64 -12
- office365/intune/audit/actor.py +5 -0
- office365/intune/audit/event.py +21 -24
- office365/intune/audit/event_collection.py +26 -0
- office365/intune/audit/property.py +5 -0
- office365/intune/audit/resource.py +11 -0
- office365/intune/brand.py +6 -0
- office365/intune/devices/compliance/__init__.py +0 -0
- office365/intune/devices/compliance/policy.py +6 -0
- office365/intune/devices/compliance/policy_state.py +5 -0
- office365/intune/devices/data.py +5 -0
- office365/intune/devices/detail.py +10 -0
- office365/intune/devices/enrollment/__init__.py +0 -0
- office365/intune/devices/enrollment/configuration.py +25 -0
- office365/intune/devices/enrollment/configuration_assignment.py +5 -0
- office365/intune/devices/enrollment/limit_configuration.py +5 -0
- office365/intune/devices/managed.py +44 -3
- office365/intune/devices/management/__init__.py +0 -0
- office365/intune/devices/management/management.py +69 -0
- office365/intune/devices/management/reports/__init__.py +0 -0
- office365/intune/devices/management/reports/reports.py +5 -0
- office365/intune/devices/management/settings.py +18 -0
- office365/intune/organizations/branding.py +15 -0
- office365/intune/organizations/organization.py +14 -0
- office365/intune/printing/__init__.py +0 -0
- office365/intune/printing/base.py +11 -0
- office365/intune/printing/capabilities.py +5 -0
- office365/intune/printing/connectors/__init__.py +0 -0
- office365/intune/printing/connectors/connector.py +6 -0
- office365/intune/printing/operations/__init__.py +0 -0
- office365/intune/printing/print.py +24 -0
- office365/intune/printing/printer.py +6 -0
- office365/intune/printing/services/__init__.py +0 -0
- office365/intune/printing/services/endpoint.py +5 -0
- office365/intune/printing/services/service.py +17 -0
- office365/intune/printing/share.py +5 -0
- office365/intune/printing/shares/__init__.py +0 -0
- office365/intune/printing/taskdefinitions/__init__.py +0 -0
- office365/intune/provisioned_plan.py +5 -1
- office365/intune/servicecommunications/__init__.py +0 -0
- office365/intune/servicecommunications/announcement.py +39 -0
- office365/intune/servicecommunications/announcement_base.py +5 -0
- office365/intune/servicecommunications/health/__init__.py +0 -0
- office365/intune/servicecommunications/health/health.py +7 -0
- office365/intune/servicecommunications/issues/__init__.py +0 -0
- office365/intune/servicecommunications/issues/issue.py +29 -0
- office365/intune/servicecommunications/messages/__init__.py +0 -0
- office365/intune/servicecommunications/messages/update.py +10 -0
- office365/intune/termsandconditions/__init__.py +0 -0
- office365/intune/vpp_token.py +10 -0
- office365/onedrive/admin.py +16 -0
- office365/onedrive/columns/content_approval_status.py +5 -0
- office365/onedrive/columns/datetime.py +15 -0
- office365/onedrive/columns/default_value.py +4 -0
- office365/onedrive/columns/definition.py +49 -3
- office365/onedrive/columns/definition_collection.py +17 -6
- office365/onedrive/columns/lookup.py +5 -1
- office365/onedrive/columns/types.py +13 -0
- office365/onedrive/contenttypes/content_type.py +8 -0
- office365/onedrive/driveitems/audio.py +12 -1
- office365/onedrive/driveitems/driveItem.py +147 -69
- office365/onedrive/driveitems/image.py +8 -1
- office365/onedrive/driveitems/item_preview_info.py +20 -2
- office365/onedrive/driveitems/remote_item.py +19 -4
- office365/onedrive/drives/drive.py +7 -1
- office365/onedrive/drives/quota.py +18 -0
- office365/onedrive/drives/recipient.py +4 -0
- office365/onedrive/files/system_info.py +8 -6
- office365/onedrive/folders/folder.py +3 -3
- office365/onedrive/internal/paths/children.py +1 -4
- office365/onedrive/internal/paths/shared.py +7 -2
- office365/onedrive/lists/collection.py +12 -6
- office365/onedrive/lists/list.py +13 -5
- office365/onedrive/operations/long_running.py +7 -0
- office365/onedrive/operations/pending.py +13 -0
- office365/onedrive/operations/pending_content_update.py +5 -0
- office365/onedrive/permissions/collection.py +5 -6
- office365/onedrive/permissions/sharing_link.py +16 -1
- office365/onedrive/sensitivitylabels/__init__.py +0 -0
- office365/onedrive/sensitivitylabels/assignment.py +17 -0
- office365/onedrive/sensitivitylabels/assignment_method.py +4 -0
- office365/onedrive/sensitivitylabels/extract_result.py +13 -0
- office365/onedrive/sharepoint_settings.py +25 -0
- office365/onedrive/sites/sites_with_root.py +11 -1
- office365/onedrive/termstore/groups/collection.py +1 -1
- office365/onedrive/termstore/groups/group.py +1 -0
- office365/onedrive/termstore/sets/collection.py +1 -1
- office365/onenote/operations/operation.py +10 -1
- office365/onenote/resources/resource.py +1 -0
- office365/outlook/calendar/calendar.py +116 -6
- office365/outlook/calendar/dateTimeTimeZone.py +4 -0
- office365/outlook/calendar/email_address.py +7 -0
- office365/outlook/calendar/events/event.py +0 -4
- office365/outlook/calendar/events/reminder.py +22 -3
- office365/outlook/calendar/group.py +0 -2
- office365/outlook/calendar/location_constraint.py +16 -1
- office365/outlook/calendar/meetingtimes/activity_domain.py +10 -0
- office365/outlook/calendar/meetingtimes/suggestion.py +1 -1
- office365/outlook/calendar/meetingtimes/time_constraint.py +18 -0
- office365/outlook/calendar/permissions/__init__.py +0 -0
- office365/outlook/calendar/permissions/collection.py +24 -0
- office365/outlook/calendar/{permission.py → permissions/permission.py} +35 -2
- office365/outlook/calendar/place.py +7 -0
- office365/outlook/calendar/role_type.py +17 -0
- office365/outlook/calendar/schedule/information.py +5 -4
- office365/outlook/calendar/schedule/item.py +20 -1
- office365/outlook/calendar/sharing_message.py +2 -2
- office365/outlook/calendar/time_zone_base.py +3 -0
- office365/outlook/calendar/working_hours.py +17 -1
- office365/outlook/contacts/collection.py +39 -0
- office365/outlook/contacts/contact.py +21 -11
- office365/outlook/geo_coordinates.py +20 -0
- office365/outlook/item.py +5 -4
- office365/outlook/locale_info.py +3 -0
- office365/outlook/mail/automatic_replies_setting.py +14 -0
- office365/outlook/mail/folders/folder.py +52 -3
- office365/outlook/mail/folders/search.py +11 -0
- office365/outlook/mail/importance.py +1 -0
- office365/outlook/mail/item_body.py +3 -0
- office365/outlook/mail/location.py +27 -2
- office365/outlook/mail/location_constraint_item.py +5 -0
- office365/outlook/mail/mailbox_settings.py +13 -1
- office365/outlook/mail/messages/collection.py +7 -0
- office365/outlook/mail/messages/followup_flag.py +21 -0
- office365/outlook/mail/messages/internet_header.py +16 -0
- office365/outlook/mail/messages/message.py +184 -6
- office365/outlook/mail/messages/rules/__init__.py +0 -0
- office365/outlook/mail/messages/rules/actions.py +38 -0
- office365/outlook/mail/messages/rules/predicates.py +5 -0
- office365/outlook/mail/messages/rules/rule.py +32 -0
- office365/outlook/mail/patterned_recurrence.py +14 -1
- office365/outlook/mail/physical_address.py +5 -1
- office365/outlook/mail/recipient.py +3 -0
- office365/outlook/mail/recurrence_pattern.py +18 -1
- office365/outlook/mail/recurrence_range.py +16 -2
- office365/outlook/timezone_information.py +3 -0
- office365/reports/root.py +28 -1
- office365/reports/security/__init__.py +0 -0
- office365/reports/security/root.py +21 -0
- office365/reports/userregistration/__init__.py +0 -0
- office365/reports/userregistration/method_count.py +17 -0
- office365/reports/userregistration/method_summary.py +21 -0
- office365/runtime/auth/authentication_context.py +123 -25
- office365/runtime/auth/client_credential.py +2 -2
- office365/runtime/auth/providers/acs_token_provider.py +6 -3
- office365/runtime/auth/providers/saml_token_provider.py +10 -7
- office365/runtime/auth/token_response.py +3 -3
- office365/runtime/client_object_collection.py +12 -7
- office365/runtime/client_result.py +9 -0
- office365/runtime/client_runtime_context.py +10 -8
- office365/runtime/http/request_options.py +2 -1
- office365/runtime/odata/request.py +4 -4
- office365/runtime/paths/appid.py +2 -1
- office365/runtime/paths/entity.py +2 -2
- office365/{sharepoint/internal/paths/entity.py → runtime/paths/key.py} +5 -3
- office365/runtime/paths/resource_path.py +3 -0
- office365/runtime/types/event_handler.py +6 -0
- office365/search/external/__init__.py +0 -0
- office365/search/external/configuration.py +8 -0
- office365/search/external/connection.py +27 -0
- office365/{external → search/external}/external.py +1 -1
- office365/search/external/search_settings.py +5 -0
- office365/search/query.py +3 -1
- office365/search/request.py +3 -1
- office365/search/sharepoint_onedrive_options.py +3 -0
- office365/search/sort_property.py +9 -0
- office365/sharepoint/activities/client_request.py +4 -1
- office365/sharepoint/activities/logger.py +25 -0
- office365/sharepoint/activities/revision_info.py +9 -0
- office365/sharepoint/addtoonedrive/mount_point.py +25 -0
- office365/sharepoint/addtoonedrive/mounted_folder_info.py +5 -0
- office365/sharepoint/alerts/alert.py +31 -0
- office365/sharepoint/apps/license_collection.py +1 -2
- office365/sharepoint/changes/item.py +14 -0
- office365/sharepoint/client_context.py +91 -30
- office365/sharepoint/clientsidecomponent/component_context_info.py +7 -0
- office365/sharepoint/clientsidecomponent/identifier.py +3 -0
- office365/sharepoint/compliance/tag_info.py +17 -0
- office365/sharepoint/contenttypes/collection.py +6 -7
- office365/sharepoint/contenttypes/content_type.py +49 -1
- office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -6
- office365/sharepoint/features/known_list.py +2 -0
- office365/sharepoint/fields/collection.py +70 -39
- office365/sharepoint/fields/computed.py +5 -2
- office365/sharepoint/fields/creation_information.py +5 -4
- office365/sharepoint/fields/field.py +73 -15
- office365/sharepoint/fields/user.py +3 -3
- office365/sharepoint/files/checked_out_file.py +3 -2
- office365/sharepoint/files/file.py +9 -4
- office365/sharepoint/files/versions/version.py +7 -9
- office365/sharepoint/folders/collection.py +2 -2
- office365/sharepoint/folders/coloring.py +39 -0
- office365/sharepoint/folders/coloring_information.py +15 -0
- office365/sharepoint/folders/folder.py +21 -10
- office365/sharepoint/forms/customization.py +8 -0
- office365/sharepoint/listitems/listitem.py +29 -10
- office365/sharepoint/lists/bloom_filter.py +0 -1
- office365/sharepoint/lists/creation_information.py +18 -4
- office365/sharepoint/lists/list.py +203 -27
- office365/sharepoint/lists/render_data_parameters.py +21 -1
- office365/sharepoint/lists/template_type.py +10 -0
- office365/sharepoint/navigation/configured_metadata_items.py +25 -1
- office365/sharepoint/navigation/metadata_settings.py +6 -4
- office365/sharepoint/permissions/irm/file_settings.py +43 -0
- office365/sharepoint/permissions/securable_object.py +5 -6
- office365/sharepoint/portal/sites/manager.py +5 -6
- office365/sharepoint/portal/userprofiles/documents_shared_with_group.py +3 -0
- office365/sharepoint/publishing/base_custom_property.py +8 -0
- office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +8 -0
- office365/sharepoint/publishing/pagecopywithassets/__init__.py +0 -0
- office365/sharepoint/publishing/pagecopywithassets/response.py +8 -0
- office365/sharepoint/publishing/pages/campaign_publication.py +7 -0
- office365/sharepoint/publishing/pages/collection.py +1 -1
- office365/sharepoint/publishing/pages/page.py +4 -1
- office365/sharepoint/publishing/pages/reposts/metadata.py +8 -0
- office365/sharepoint/publishing/personmagazine/person_magazine.py +4 -1
- office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +8 -1
- office365/sharepoint/search/query/auto_completion_match.py +3 -0
- office365/sharepoint/search/query/property_value.py +18 -0
- office365/sharepoint/search/request.py +16 -2
- office365/sharepoint/sharing/abilities.py +22 -0
- office365/sharepoint/sharing/direct_abilities.py +27 -0
- office365/sharepoint/sharing/link_abilities.py +9 -1
- office365/sharepoint/sharing/links/data.py +26 -1
- office365/sharepoint/sharing/links/info.py +1 -1
- office365/sharepoint/sharing/links/partial_success_response.py +5 -0
- office365/sharepoint/sharing/links/share_settings.py +24 -1
- office365/sharepoint/sharing/object_sharing_information.py +65 -2
- office365/sharepoint/sharing/object_sharing_information_user.py +9 -0
- office365/sharepoint/sharing/object_sharing_settings.py +17 -4
- office365/sharepoint/sharing/principal.py +10 -0
- office365/sharepoint/sharing/securable_object_extensions.py +1 -17
- office365/sharepoint/sharing/site_sharing_report_helper.py +2 -1
- office365/sharepoint/sharing/user_sharing_result.py +18 -8
- office365/sharepoint/sitehealth/result.py +10 -0
- office365/sharepoint/sites/language.py +11 -1
- office365/sharepoint/sites/language_collection.py +1 -0
- office365/sharepoint/sites/site.py +42 -7
- office365/sharepoint/taxonomy/create_xml_parameters.py +22 -15
- office365/sharepoint/taxonomy/field.py +10 -8
- office365/sharepoint/taxonomy/groups/collection.py +8 -1
- office365/sharepoint/taxonomy/groups/group.py +26 -0
- office365/sharepoint/taxonomy/sets/collection.py +15 -0
- office365/sharepoint/taxonomy/sets/name.py +23 -0
- office365/sharepoint/taxonomy/sets/set.py +16 -1
- office365/sharepoint/taxonomy/stores/store.py +0 -8
- office365/sharepoint/tenant/administration/audit/search_request_status.py +8 -0
- office365/sharepoint/tenant/administration/deny_add_and_customize_pages_status.py +3 -0
- office365/sharepoint/tenant/administration/hubsites/permission.py +10 -0
- office365/sharepoint/tenant/administration/sites/properties.py +12 -10
- office365/sharepoint/tenant/administration/tenant.py +2 -1
- office365/sharepoint/tenant/apps/information.py +3 -1
- office365/sharepoint/tenant/management/office365_tenant.py +14 -11
- office365/sharepoint/types/resource_path.py +3 -1
- office365/sharepoint/userprofiles/people_manager.py +0 -2
- office365/sharepoint/userprofiles/sharedwithme/document.py +16 -0
- office365/sharepoint/userprofiles/sharedwithme/document_user.py +12 -0
- office365/sharepoint/userprofiles/sharedwithme/item_collection.py +41 -0
- office365/sharepoint/userprofiles/sharedwithme/items.py +18 -1
- office365/sharepoint/viva/site_manager.py +14 -0
- office365/sharepoint/webhooks/subscription_collection.py +5 -6
- office365/sharepoint/webparts/definition.py +1 -1
- office365/sharepoint/webparts/webpart.py +18 -4
- office365/sharepoint/webs/context_web_information.py +2 -4
- office365/sharepoint/webs/web.py +31 -12
- office365/sharepoint/workflowservices/manager.py +0 -2
- office365/subscriptions/collection.py +42 -0
- office365/subscriptions/subscription.py +120 -2
- office365/teams/apps/catalog.py +23 -0
- office365/teams/associated_info.py +12 -0
- office365/teams/channels/channel.py +2 -3
- office365/teams/channels/collection.py +1 -1
- office365/teams/channels/iIdentity.py +5 -0
- office365/teams/chats/chat.py +12 -2
- office365/teams/chats/collection.py +1 -2
- office365/teams/chats/messages/__init__.py +0 -0
- office365/teams/chats/messages/info.py +14 -0
- office365/teams/chats/{message.py → messages/message.py} +18 -3
- office365/teams/info.py +20 -0
- office365/teams/members/aad_user_conversation.py +2 -2
- office365/teams/members/conversation_collection.py +3 -3
- office365/teams/schedule/change_request.py +4 -2
- office365/teams/schedule/change_tracked_entity.py +11 -2
- office365/teams/summary.py +15 -0
- office365/teams/tabs/configuration.py +12 -1
- office365/teams/tabs/tab.py +0 -1
- office365/teams/team.py +34 -1
- office365/teams/teamwork/__init__.py +0 -0
- office365/teams/teamwork/activity_topic.py +5 -0
- office365/teams/teamwork/tags/__init__.py +0 -0
- office365/teams/teamwork/tags/identity.py +6 -0
- office365/teams/teamwork/tags/member.py +5 -0
- office365/teams/teamwork/tags/tag.py +15 -0
- office365/{directory/security/cases_root.py → teams/viva/employee_experience_user.py} +1 -1
- office365/todo/attachments/session.py +34 -0
- office365/todo/linked_resource.py +10 -1
- office365/todo/tasks/task.py +4 -0
- office365/directory/identities/protection_root.py +0 -5
- office365/directory/rbac/application.py +0 -18
- office365/directory/rbac/unified_role_assignment.py +0 -8
- office365/external/connection.py +0 -5
- office365/intune/devices/management.py +0 -35
- office365/onedrive/internal/queries/download_content.py +0 -26
- office365/onedrive/internal/queries/upload_content.py +0 -23
- office365/outlook/mail/messages/message_rule.py +0 -15
- office365/runtime/auth/providers/oauth_token_provider.py +0 -25
- office365/teams/team_info.py +0 -6
- {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/LICENSE +0 -0
- {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/WHEEL +0 -0
- {Office365_REST_Python_Client-2.4.2.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/top_level.txt +0 -0
- /office365/{directory/rbac → booking}/__init__.py +0 -0
- /office365/directory/{roles → protection}/__init__.py +0 -0
- /office365/{external → directory/protection/riskyusers}/__init__.py +0 -0
- /office365/{teams/messages → directory/rolemanagement}/__init__.py +0 -0
- /office365/outlook/calendar/{time_slot.py → meetingtimes/time_slot.py} +0 -0
- /office365/teams/chats/{message_attachment.py → messages/attachment.py} +0 -0
- /office365/teams/{member_settings.py → members/settings.py} +0 -0
- /office365/teams/{user_teamwork.py → teamwork/user.py} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
|
+
from datetime import datetime
|
|
2
3
|
|
|
3
|
-
from office365.directory.applications.roles.
|
|
4
|
+
from office365.directory.applications.roles.assignment_collection import AppRoleAssignmentCollection
|
|
4
5
|
from office365.directory.extensions.extension import Extension
|
|
5
6
|
from office365.directory.licenses.assigned_license import AssignedLicense
|
|
6
7
|
from office365.directory.object import DirectoryObject
|
|
@@ -39,8 +40,9 @@ class Group(DirectoryObject):
|
|
|
39
40
|
return self
|
|
40
41
|
|
|
41
42
|
def check_granted_permissions_for_app(self):
|
|
43
|
+
""""""
|
|
42
44
|
return_type = EntityCollection(self.context, ResourceSpecificPermissionGrant)
|
|
43
|
-
qry = ServiceOperationQuery(self, "checkGrantedPermissionsForApp",
|
|
45
|
+
qry = ServiceOperationQuery(self, "checkGrantedPermissionsForApp", return_type=return_type)
|
|
44
46
|
self.context.add_query(qry)
|
|
45
47
|
return return_type
|
|
46
48
|
|
|
@@ -87,8 +89,7 @@ class Group(DirectoryObject):
|
|
|
87
89
|
request.set_header('Content-Type', "application/json")
|
|
88
90
|
request.data = json.dumps(request.data)
|
|
89
91
|
|
|
90
|
-
self.context.add_query(qry)
|
|
91
|
-
self.context.before_query_execute(_construct_request)
|
|
92
|
+
self.context.add_query(qry).before_query_execute(_construct_request, once=False)
|
|
92
93
|
return self.team
|
|
93
94
|
|
|
94
95
|
def delete_object(self, permanent_delete=False):
|
|
@@ -103,6 +104,13 @@ class Group(DirectoryObject):
|
|
|
103
104
|
deleted_item.delete_object()
|
|
104
105
|
return self
|
|
105
106
|
|
|
107
|
+
@property
|
|
108
|
+
def display_name(self):
|
|
109
|
+
"""
|
|
110
|
+
:rtype: str
|
|
111
|
+
"""
|
|
112
|
+
return self.properties.get("displayName", None)
|
|
113
|
+
|
|
106
114
|
@property
|
|
107
115
|
def conversations(self):
|
|
108
116
|
"""The group's conversations."""
|
|
@@ -110,6 +118,11 @@ class Group(DirectoryObject):
|
|
|
110
118
|
EntityCollection(self.context, Conversation,
|
|
111
119
|
ResourcePath("conversations", self.resource_path)))
|
|
112
120
|
|
|
121
|
+
@property
|
|
122
|
+
def created_datetime(self):
|
|
123
|
+
"""Timestamp of when the group was created."""
|
|
124
|
+
return self.properties.get('createdDateTime', datetime.min)
|
|
125
|
+
|
|
113
126
|
@property
|
|
114
127
|
def extensions(self):
|
|
115
128
|
"""
|
|
@@ -217,6 +230,7 @@ class Group(DirectoryObject):
|
|
|
217
230
|
property_mapping = {
|
|
218
231
|
"appRoleAssignments": self.app_role_assignments,
|
|
219
232
|
"assignedLicenses": self.assigned_licenses,
|
|
233
|
+
"createdDateTime": self.created_datetime,
|
|
220
234
|
"transitiveMembers": self.transitive_members,
|
|
221
235
|
"transitiveMemberOf": self.transitive_member_of,
|
|
222
236
|
}
|
|
@@ -6,10 +6,10 @@ class ObjectIdentity(ClientValue):
|
|
|
6
6
|
Represents an identity used to sign in to a user account.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
-
def __init__(self,
|
|
9
|
+
def __init__(self, sign_in_type=None, issuer=None, issuer_assigned_id=None):
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
:param str
|
|
12
|
+
:param str sign_in_type: Specifies the user sign-in types in your directory, such as emailAddress, userName
|
|
13
13
|
or federated. Here, federated represents a unique identifier for a user from an issuer, that can be in
|
|
14
14
|
any format chosen by the issuer. Additional validation is enforced on issuerAssignedId when the sign-in
|
|
15
15
|
type is set to emailAddress or userName. This property can also be set to any custom string.
|
|
@@ -24,6 +24,6 @@ class ObjectIdentity(ClientValue):
|
|
|
24
24
|
(also known as local accounts).
|
|
25
25
|
"""
|
|
26
26
|
super(ObjectIdentity, self).__init__()
|
|
27
|
-
self.signInType =
|
|
27
|
+
self.signInType = sign_in_type
|
|
28
28
|
self.issuer = issuer
|
|
29
29
|
self.issuerAssignedId = issuer_assigned_id
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ResourceReference(ClientValue):
|
|
5
|
+
"""Complex type containing properties of officeGraphInsights."""
|
|
6
|
+
|
|
7
|
+
def __init__(self, _id=None, _type=None, web_url=None):
|
|
8
|
+
"""
|
|
9
|
+
:param str _id: The item's unique identifier.
|
|
10
|
+
:param str _type:A string value that can be used to classify the item, such as "microsoft.graph.driveItem"
|
|
11
|
+
:param str web_url: A URL leading to the referenced item.
|
|
12
|
+
"""
|
|
13
|
+
self.id = _id
|
|
14
|
+
self.type = _type
|
|
15
|
+
self.webUrl = web_url
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
from office365.directory.insights.resource_reference import ResourceReference
|
|
2
|
+
from office365.directory.insights.sharing_detail import SharingDetail
|
|
1
3
|
from office365.entity import Entity
|
|
4
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
5
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
2
6
|
|
|
3
7
|
|
|
4
8
|
class SharedInsight(Entity):
|
|
@@ -9,3 +13,35 @@ class SharedInsight(Entity):
|
|
|
9
13
|
OneDrive for Business and SharePoint modern attachments - files stored in OneDrive for Business and SharePoint
|
|
10
14
|
that users share as a links in an email.
|
|
11
15
|
"""
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def last_shared(self):
|
|
19
|
+
"""Details about the shared item. Read-only"""
|
|
20
|
+
return self.properties.get("lastShared", SharingDetail())
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
def resource_reference(self):
|
|
24
|
+
"""Reference properties of the used document, such as the url and type of the document. Read-only"""
|
|
25
|
+
return self.properties.get("resourceReference", ResourceReference())
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def resource(self):
|
|
29
|
+
"""Used for navigating to the item that was shared. For file attachments, the type is fileAttachment.
|
|
30
|
+
For linked attachments, the type is driveItem."""
|
|
31
|
+
return self.properties.get('resource',
|
|
32
|
+
Entity(self.context, ResourcePath("resource", self.resource_path)))
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def sharing_history(self):
|
|
36
|
+
"""Details about the sharing history. Read-only"""
|
|
37
|
+
return self.properties.get("sharingHistory", ClientValueCollection(SharingDetail))
|
|
38
|
+
|
|
39
|
+
def get_property(self, name, default_value=None):
|
|
40
|
+
if default_value is None:
|
|
41
|
+
property_mapping = {
|
|
42
|
+
"lastShared": self.last_shared,
|
|
43
|
+
"resourceReference": self.resource_reference,
|
|
44
|
+
"sharingHistory": self.sharing_history
|
|
45
|
+
}
|
|
46
|
+
default_value = property_mapping.get(name, None)
|
|
47
|
+
return super(SharedInsight, self).get_property(name, default_value)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SharingDetail(ClientValue):
|
|
5
|
+
"""Complex type containing properties of sharedInsight items."""
|
|
6
|
+
|
|
7
|
+
def __init__(self, shared_datetime=None):
|
|
8
|
+
"""
|
|
9
|
+
:param datetime.datetime shared_datetime: The date and time the file was last shared.
|
|
10
|
+
"""
|
|
11
|
+
self.sharedDateTime = shared_datetime
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from office365.entity import Entity
|
|
2
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class Trending(Entity):
|
|
@@ -6,3 +7,10 @@ class Trending(Entity):
|
|
|
6
7
|
Rich relationship connecting a user to documents that are trending around the user (are relevant to the user).
|
|
7
8
|
OneDrive files, and files stored on SharePoint team sites can trend around the user.
|
|
8
9
|
"""
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def resource(self):
|
|
13
|
+
"""Used for navigating to the trending document."""
|
|
14
|
+
return self.properties.get('resource',
|
|
15
|
+
Entity(self.context, ResourcePath("resource", self.resource_path)))
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
|
|
3
|
+
from office365.runtime.client_value import ClientValue
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class UsageDetails(ClientValue):
|
|
7
|
+
"""Complex type containing properties of Used items. Information on when the resource was last accessed (viewed)
|
|
8
|
+
or modified (edited) by the user."""
|
|
9
|
+
|
|
10
|
+
def __init__(self, last_accessed_datetime=None, last_modified_datetime=None):
|
|
11
|
+
"""
|
|
12
|
+
:param datetime.datetime last_accessed_datetime: The date and time the resource was last accessed by the user.
|
|
13
|
+
:param datetime.datetime last_modified_datetime: The date and time the resource was last modified by the user.
|
|
14
|
+
"""
|
|
15
|
+
self.lastAccessedDateTime = last_accessed_datetime
|
|
16
|
+
self.lastModifiedDateTime = last_modified_datetime
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
from office365.directory.insights.resource_reference import ResourceReference
|
|
2
|
+
from office365.directory.insights.usage_details import UsageDetails
|
|
1
3
|
from office365.entity import Entity
|
|
4
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
2
5
|
|
|
3
6
|
|
|
4
7
|
class UsedInsight(Entity):
|
|
@@ -8,3 +11,30 @@ class UsedInsight(Entity):
|
|
|
8
11
|
OneDrive for Business
|
|
9
12
|
SharePoint
|
|
10
13
|
"""
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def last_used(self):
|
|
17
|
+
"""Information about when the item was last viewed or modified by the user."""
|
|
18
|
+
return self.properties.get("lastUsed", UsageDetails())
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def resource_reference(self):
|
|
22
|
+
"""Reference properties of the used document, such as the url and type of the document. Read-only"""
|
|
23
|
+
return self.properties.get("resourceReference", ResourceReference())
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def resource(self):
|
|
27
|
+
"""Used for navigating to the item that was used. For file attachments, the type is fileAttachment.
|
|
28
|
+
For linked attachments, the type is driveItem."""
|
|
29
|
+
return self.properties.get('resource',
|
|
30
|
+
Entity(self.context, ResourcePath("resource", self.resource_path)))
|
|
31
|
+
|
|
32
|
+
def get_property(self, name, default_value=None):
|
|
33
|
+
if default_value is None:
|
|
34
|
+
property_mapping = {
|
|
35
|
+
"lastUsed": self.last_used,
|
|
36
|
+
"resourceReference": self.resource_reference
|
|
37
|
+
}
|
|
38
|
+
default_value = property_mapping.get(name, None)
|
|
39
|
+
return super(UsedInsight, self).get_property(name, default_value)
|
|
40
|
+
|
|
@@ -5,7 +5,39 @@ from office365.runtime.paths.resource_path import ResourcePath
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class Invitation(Entity):
|
|
8
|
-
"""Represents an invitation that is used to add external users to an organization.
|
|
8
|
+
"""Represents an invitation that is used to add external users to an organization.
|
|
9
|
+
|
|
10
|
+
The invitation process uses the following flow:
|
|
11
|
+
|
|
12
|
+
- An invitation is created
|
|
13
|
+
- An invitation is sent to the invited user (containing an invitation link)
|
|
14
|
+
- The invited user clicks on the invitation link, signs in and redeems the invitation and creation of the
|
|
15
|
+
user entity representing the invited user completes
|
|
16
|
+
- The user is redirected to a specific page after redemption completes
|
|
17
|
+
|
|
18
|
+
Creating an invitation will return a redemption URL in the response (inviteRedeemUrl).
|
|
19
|
+
The create invitation API can automatically send an email containing the redemption URL to the invited user,
|
|
20
|
+
by setting the sendInvitationMessage to true. You can also customize the message that will be sent to
|
|
21
|
+
the invited user. Instead, if you wish to send the redemption URL through some other means, you can set the
|
|
22
|
+
sendInvitationMessage to false and use the redeem URL from the response to craft your own communication.
|
|
23
|
+
Currently, there is no API to perform the redemption process. The invited user has to click on the inviteRedeemUrl
|
|
24
|
+
link sent in the communication in the step above, and go through the interactive redemption process in a browser.
|
|
25
|
+
Once completed, the invited user becomes an external user in the organization.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def invited_user_display_name(self):
|
|
30
|
+
"""The display name of the user being invited.
|
|
31
|
+
:rtype: str
|
|
32
|
+
"""
|
|
33
|
+
return self.properties.get("invitedUserDisplayName", None)
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def invited_user_email_address(self):
|
|
37
|
+
"""The email address of the user being invited.
|
|
38
|
+
:rtype: str
|
|
39
|
+
"""
|
|
40
|
+
return self.properties.get("invitedUserEmailAddress", None)
|
|
9
41
|
|
|
10
42
|
@property
|
|
11
43
|
def invited_user_message_info(self):
|
|
@@ -5,4 +5,22 @@ class AssignedPlan(ClientValue):
|
|
|
5
5
|
"""
|
|
6
6
|
The assignedPlans property of both the user entity and the organization entity is a collection of assignedPlan.
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
def __init__(self, assigned_datetime=None, capability_status=None, service=None, service_plan_id=None):
|
|
10
|
+
"""
|
|
11
|
+
:param datetime.datetime assigned_datetime: The date and time at which the plan was assigned.
|
|
12
|
+
:param str capability_status: Condition of the capability assignment.
|
|
13
|
+
The possible values are Enabled, Warning, Suspended, Deleted, LockedOut.
|
|
14
|
+
See a detailed description of each value.
|
|
15
|
+
:param str service: The name of the service; for example, exchange.
|
|
16
|
+
:param str service_plan_id: A GUID that identifies the service plan. For a complete list of GUIDs and their
|
|
17
|
+
equivalent friendly service names, see Product names and service plan identifiers for licensing.
|
|
18
|
+
"""
|
|
19
|
+
self.assignedDateTime = assigned_datetime
|
|
20
|
+
self.capabilityStatus = capability_status
|
|
21
|
+
self.service = service
|
|
22
|
+
self.servicePlanId = service_plan_id
|
|
23
|
+
|
|
24
|
+
def __repr__(self):
|
|
25
|
+
return self.service
|
|
26
|
+
|
|
@@ -11,3 +11,8 @@ class LicenseAssignmentState(ClientValue):
|
|
|
11
11
|
- The current state of the assignment
|
|
12
12
|
- Error details if the assignment state is Error
|
|
13
13
|
"""
|
|
14
|
+
def __init__(self, assigned_by_group=None):
|
|
15
|
+
"""
|
|
16
|
+
:param str assigned_by_group:
|
|
17
|
+
"""
|
|
18
|
+
self.assignedByGroup = assigned_by_group
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from office365.directory.licenses.service_plan_info import ServicePlanInfo
|
|
2
|
+
from office365.directory.licenses.units_detail import LicenseUnitsDetail
|
|
2
3
|
from office365.entity import Entity
|
|
3
4
|
from office365.runtime.client_value_collection import ClientValueCollection
|
|
4
5
|
|
|
@@ -6,6 +7,45 @@ from office365.runtime.client_value_collection import ClientValueCollection
|
|
|
6
7
|
class SubscribedSku(Entity):
|
|
7
8
|
"""Contains information about a service SKU that a company is subscribed to."""
|
|
8
9
|
|
|
10
|
+
@property
|
|
11
|
+
def account_id(self):
|
|
12
|
+
"""
|
|
13
|
+
The unique ID of the account this SKU belongs to.
|
|
14
|
+
:rtype: str
|
|
15
|
+
"""
|
|
16
|
+
return self.properties.get("accountId", None)
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def applies_to(self):
|
|
20
|
+
"""
|
|
21
|
+
The target class for this SKU. Only SKUs with target class User are assignable.
|
|
22
|
+
Possible values are: "User", "Company".
|
|
23
|
+
:rtype: str
|
|
24
|
+
"""
|
|
25
|
+
return self.properties.get("appliesTo", None)
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def sku_id(self):
|
|
29
|
+
"""
|
|
30
|
+
The unique identifier (GUID) for the service SKU.
|
|
31
|
+
:rtype: str
|
|
32
|
+
"""
|
|
33
|
+
return self.properties.get("skuId", None)
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
def sku_part_number(self):
|
|
37
|
+
"""
|
|
38
|
+
The SKU part number; for example: "AAD_PREMIUM" or "RMSBASIC".
|
|
39
|
+
To get a list of commercial subscriptions that an organization has acquired, see List subscribedSkus.
|
|
40
|
+
:rtype: str
|
|
41
|
+
"""
|
|
42
|
+
return self.properties.get("skuPartNumber", None)
|
|
43
|
+
|
|
44
|
+
@property
|
|
45
|
+
def prepaid_units(self):
|
|
46
|
+
"""Information about the number and status of prepaid licenses."""
|
|
47
|
+
return self.properties.get("prepaidUnits", LicenseUnitsDetail())
|
|
48
|
+
|
|
9
49
|
@property
|
|
10
50
|
def service_plans(self):
|
|
11
51
|
"""Information about the service plans that are available with the SKU. Not nullable"""
|
|
@@ -14,6 +54,7 @@ class SubscribedSku(Entity):
|
|
|
14
54
|
def get_property(self, name, default_value=None):
|
|
15
55
|
if default_value is None:
|
|
16
56
|
property_mapping = {
|
|
57
|
+
"prepaidUnits": self.prepaid_units,
|
|
17
58
|
"servicePlans": self.service_plans
|
|
18
59
|
}
|
|
19
60
|
default_value = property_mapping.get(name, None)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class LicenseUnitsDetail(ClientValue):
|
|
5
|
+
""""""
|
|
6
|
+
|
|
7
|
+
def __init__(self, enabled=None):
|
|
8
|
+
"""
|
|
9
|
+
:param int enabled: The number of units that are enabled for the active subscription of the service SKU.
|
|
10
|
+
"""
|
|
11
|
+
self.enabled = enabled
|
office365/directory/object.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
|
|
1
3
|
from office365.entity import Entity
|
|
2
4
|
from office365.runtime.client_result import ClientResult
|
|
3
5
|
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
@@ -85,4 +87,4 @@ class DirectoryObject(Entity):
|
|
|
85
87
|
@property
|
|
86
88
|
def deleted_datetime(self):
|
|
87
89
|
"""Date and time when this object was deleted. Always null when the object hasn't been deleted."""
|
|
88
|
-
return self.properties.get('deletedDateTime',
|
|
90
|
+
return self.properties.get('deletedDateTime', datetime.min)
|
|
@@ -57,18 +57,17 @@ class DirectoryObjectCollection(DeltaCollection):
|
|
|
57
57
|
def remove(self, user_id):
|
|
58
58
|
"""Remove a user from the group.
|
|
59
59
|
|
|
60
|
-
:
|
|
60
|
+
:param str user_id: User identifier
|
|
61
61
|
"""
|
|
62
62
|
|
|
63
63
|
qry = ServiceOperationQuery(self, "{0}/$ref".format(user_id))
|
|
64
|
-
self.context.add_query(qry)
|
|
65
64
|
|
|
66
|
-
def
|
|
65
|
+
def _construct_request(request):
|
|
67
66
|
"""
|
|
68
67
|
:type request: RequestOptions
|
|
69
68
|
"""
|
|
70
69
|
request.method = HttpMethod.Delete
|
|
71
|
-
self.context.
|
|
70
|
+
self.context.add_query(qry).before_query_execute(_construct_request)
|
|
72
71
|
return self
|
|
73
72
|
|
|
74
73
|
def validate_properties(self, entity_type=None, display_name=None, mail_nickname=None, on_behalf_of_userid=None):
|
|
@@ -5,15 +5,19 @@ class PasswordCredential(ClientValue):
|
|
|
5
5
|
"""Represents a password credential associated with an application or a service principal.
|
|
6
6
|
The passwordCredentials property of the application entity is a collection of passwordCredential objects."""
|
|
7
7
|
|
|
8
|
-
def __init__(self, display_name=None, secret_text=None, key_id=None):
|
|
8
|
+
def __init__(self, display_name=None, secret_text=None, key_id=None, start_datetime=None):
|
|
9
9
|
"""
|
|
10
10
|
:param str display_name: Friendly name for the password. Optional.
|
|
11
11
|
:param str secret_text: Read-only; Contains the strong passwords generated by Azure AD that are 16-64
|
|
12
12
|
characters in length. The generated password value is only returned during the initial POST request to
|
|
13
13
|
addPassword. There is no way to retrieve this password in the future.
|
|
14
14
|
:param str key_id: The unique identifier for the password.
|
|
15
|
+
:param str start_datetime: The date and time at which the password becomes valid. The Timestamp type represents
|
|
16
|
+
date and time information using ISO 8601 format and is always in UTC time.
|
|
17
|
+
For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.
|
|
15
18
|
"""
|
|
16
19
|
super(PasswordCredential, self).__init__()
|
|
17
20
|
self.displayName = display_name
|
|
18
21
|
self.secretText = secret_text
|
|
19
22
|
self.keyId = key_id
|
|
23
|
+
self.startDateTime = start_datetime
|
|
@@ -19,6 +19,23 @@ class PermissionGrantConditionSet(Entity):
|
|
|
19
19
|
"""
|
|
20
20
|
return self.properties.get("clientApplicationIds", StringCollection())
|
|
21
21
|
|
|
22
|
+
@property
|
|
23
|
+
def client_application_publisher_ids(self):
|
|
24
|
+
"""
|
|
25
|
+
A list of Microsoft Partner Network (MPN) IDs for verified publishers of the client application, or a list
|
|
26
|
+
with the single value all to match with client apps from any publisher. Default is the single value all.
|
|
27
|
+
"""
|
|
28
|
+
return self.properties.get("clientApplicationPublisherIds", StringCollection())
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def client_applications_from_verified_publisher_only(self):
|
|
32
|
+
"""
|
|
33
|
+
Set to true to only match on client applications with a verified publisher. Set to false to match on any client
|
|
34
|
+
app, even if it does not have a verified publisher. Default is false.
|
|
35
|
+
:rtype: bool
|
|
36
|
+
"""
|
|
37
|
+
return self.properties.get("clientApplicationsFromVerifiedPublisherOnly", None)
|
|
38
|
+
|
|
22
39
|
@property
|
|
23
40
|
def permissions(self):
|
|
24
41
|
"""
|
|
@@ -30,3 +47,12 @@ class PermissionGrantConditionSet(Entity):
|
|
|
30
47
|
Default is the single value all.
|
|
31
48
|
"""
|
|
32
49
|
return self.properties.get("permissions", StringCollection())
|
|
50
|
+
|
|
51
|
+
@property
|
|
52
|
+
def resource_application(self):
|
|
53
|
+
"""
|
|
54
|
+
The appId of the resource application (e.g. the API) for which a permission is being granted, or any to match
|
|
55
|
+
with any resource application or API. Default is any.
|
|
56
|
+
:rtype: str
|
|
57
|
+
"""
|
|
58
|
+
return self.properties.get("resourceApplication", None)
|
|
@@ -17,3 +17,24 @@ class ResourceSpecificPermissionGrant(DirectoryObject):
|
|
|
17
17
|
"""ID of the service principal of the Azure AD app that has been granted access."""
|
|
18
18
|
return self.properties.get("clientAppId", None)
|
|
19
19
|
|
|
20
|
+
@property
|
|
21
|
+
def permission(self):
|
|
22
|
+
"""The name of the resource-specific permission.
|
|
23
|
+
:rtype: str
|
|
24
|
+
"""
|
|
25
|
+
return self.properties.get("permission", None)
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def permission_type(self):
|
|
29
|
+
"""The type of permission. Possible values are: Application, Delegated. Read-only.
|
|
30
|
+
:rtype: str
|
|
31
|
+
"""
|
|
32
|
+
return self.properties.get("permissionType", None)
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
def resource_app_id(self):
|
|
36
|
+
"""ID of the Azure AD app that is hosting the resource. Read-only.
|
|
37
|
+
:rtype: str
|
|
38
|
+
"""
|
|
39
|
+
return self.properties.get("resourceAppId", None)
|
|
40
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AuthenticationFlowsPolicy(Entity):
|
|
5
|
+
"""
|
|
6
|
+
Represents the policy configuration of self-service sign-up experience at a tenant level that lets external
|
|
7
|
+
users request to sign up for approval. It contains information, such as the identifier, display name, and
|
|
8
|
+
description, and indicates whether self-service sign-up is enabled for the policy.
|
|
9
|
+
"""
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AuthenticationStrengthPolicy(Entity):
|
|
5
|
+
"""
|
|
6
|
+
A collection of settings that define specific combinations of authentication methods and metadata.
|
|
7
|
+
The authentication strength policy, when applied to a given scenario using Azure AD Conditional Access,
|
|
8
|
+
defines which authentication methods must be used to authenticate in that scenario. An authentication strength
|
|
9
|
+
may be built-in or custom (defined by the tenant) and may or may not fulfill the requirements to grant an MFA claim.
|
|
10
|
+
"""
|
|
@@ -4,3 +4,11 @@ from office365.directory.policies.base import PolicyBase
|
|
|
4
4
|
class AuthorizationPolicy(PolicyBase):
|
|
5
5
|
"""Represents a policy that can control Azure Active Directory authorization settings.
|
|
6
6
|
It's a singleton that inherits from base policy type, and always exists for the tenant."""
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def allowed_to_sign_up_email_based_subscriptions(self):
|
|
10
|
+
"""
|
|
11
|
+
Indicates whether a user can join the tenant by email validation.
|
|
12
|
+
:rtype: bool
|
|
13
|
+
"""
|
|
14
|
+
return self.properties.get("allowedToSignUpEmailBasedSubscriptions", None)
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
from office365.directory.policies.app_management import AppManagementPolicy
|
|
2
|
+
from office365.directory.policies.authentication_flows import AuthenticationFlowsPolicy
|
|
1
3
|
from office365.directory.policies.authentication_methods import AuthenticationMethodsPolicy
|
|
4
|
+
from office365.directory.policies.authentication_strength import AuthenticationStrengthPolicy
|
|
5
|
+
from office365.directory.policies.cross_tenant_access import CrossTenantAccessPolicy
|
|
2
6
|
from office365.directory.policies.permission_grant import PermissionGrantPolicy
|
|
3
7
|
from office365.directory.policies.authorization import AuthorizationPolicy
|
|
4
8
|
from office365.directory.policies.conditional_access import ConditionalAccessPolicy
|
|
@@ -21,6 +25,22 @@ class PolicyRoot(Entity):
|
|
|
21
25
|
ResourcePath("authenticationMethodsPolicy",
|
|
22
26
|
self.resource_path)))
|
|
23
27
|
|
|
28
|
+
def authentication_strength_policies(self):
|
|
29
|
+
"""
|
|
30
|
+
The authentication method combinations that are to be used in scenarios defined by Azure AD Conditional Access.
|
|
31
|
+
"""
|
|
32
|
+
return self.properties.get('authenticationStrengthPolicies',
|
|
33
|
+
EntityCollection(self.context, AuthenticationStrengthPolicy,
|
|
34
|
+
ResourcePath("authenticationStrengthPolicies", self.resource_path)))
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def authentication_flows_policy(self):
|
|
38
|
+
""" The policy configuration of the self-service sign-up experience of external users."""
|
|
39
|
+
return self.properties.get('authenticationFlowsPolicy',
|
|
40
|
+
AuthenticationFlowsPolicy(self.context,
|
|
41
|
+
ResourcePath("authenticationFlowsPolicy",
|
|
42
|
+
self.resource_path)))
|
|
43
|
+
|
|
24
44
|
@property
|
|
25
45
|
def authorization_policy(self):
|
|
26
46
|
"""The policy that controls Azure AD authorization settings."""
|
|
@@ -33,8 +53,18 @@ class PolicyRoot(Entity):
|
|
|
33
53
|
"""The policies that enforce app management restrictions for specific applications and service principals,
|
|
34
54
|
overriding the defaultAppManagementPolicy."""
|
|
35
55
|
return self.properties.get('appManagementPolicies',
|
|
36
|
-
|
|
37
|
-
|
|
56
|
+
EntityCollection(self.context, AppManagementPolicy,
|
|
57
|
+
ResourcePath("appManagementPolicies", self.resource_path)))
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def cross_tenant_access_policy(self):
|
|
61
|
+
"""
|
|
62
|
+
The custom rules that define an access scenario when interacting with external Azure AD tenants.
|
|
63
|
+
"""
|
|
64
|
+
return self.properties.get('crossTenantAccessPolicy',
|
|
65
|
+
CrossTenantAccessPolicy(self.context,
|
|
66
|
+
ResourcePath("crossTenantAccessPolicy",
|
|
67
|
+
self.resource_path)))
|
|
38
68
|
|
|
39
69
|
@property
|
|
40
70
|
def permission_grant_policies(self):
|
|
@@ -57,10 +87,13 @@ class PolicyRoot(Entity):
|
|
|
57
87
|
def get_property(self, name, default_value=None):
|
|
58
88
|
if default_value is None:
|
|
59
89
|
property_mapping = {
|
|
90
|
+
"authenticationStrengthPolicies": self.authentication_strength_policies,
|
|
91
|
+
"authenticationFlowsPolicy": self.authentication_flows_policy,
|
|
60
92
|
"appManagementPolicies": self.app_management_policies,
|
|
61
93
|
"authenticationMethodsPolicy": self.authentication_methods_policy,
|
|
62
94
|
"authorizationPolicy": self.authorization_policy,
|
|
63
95
|
"conditional_access_policies": self.conditional_access_policies,
|
|
96
|
+
"crossTenantAccessPolicy": self.cross_tenant_access_policy,
|
|
64
97
|
"permissionGrantPolicies": self.permission_grant_policies,
|
|
65
98
|
}
|
|
66
99
|
default_value = property_mapping.get(name, None)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class RiskDetection(Entity):
|
|
5
|
+
"""
|
|
6
|
+
Represents information about a detected risk in an Azure AD tenant.
|
|
7
|
+
|
|
8
|
+
Azure AD continually evaluates user risks and app or user sign-in risks based on various signals
|
|
9
|
+
and machine learning.
|
|
10
|
+
This API provides programmatic access to all risk detections in your Azure AD environment.
|
|
11
|
+
"""
|