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
office365/base_item.py
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
from datetime import datetime
|
|
1
2
|
from office365.directory.permissions.identity_set import IdentitySet
|
|
2
3
|
from office365.entity import Entity
|
|
3
4
|
from office365.onedrive.listitems.item_reference import ItemReference
|
|
5
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
4
6
|
|
|
5
7
|
|
|
6
8
|
class BaseItem(Entity):
|
|
7
|
-
"""The baseItem resource is an abstract resource that contains a
|
|
9
|
+
"""The baseItem resource is an abstract resource that contains a auth set of properties shared among several
|
|
8
10
|
other resources types """
|
|
9
11
|
|
|
10
12
|
@property
|
|
@@ -17,20 +19,38 @@ class BaseItem(Entity):
|
|
|
17
19
|
"""Identity of the user, device, or application which created the item."""
|
|
18
20
|
return self.properties.get('createdBy', IdentitySet())
|
|
19
21
|
|
|
22
|
+
@property
|
|
23
|
+
def created_by_user(self):
|
|
24
|
+
"""
|
|
25
|
+
Identity of the user who created the item
|
|
26
|
+
"""
|
|
27
|
+
from office365.directory.users.user import User
|
|
28
|
+
return self.properties.get('createdByUser',
|
|
29
|
+
User(self.context, ResourcePath("createdByUser", self.resource_path)))
|
|
30
|
+
|
|
20
31
|
@property
|
|
21
32
|
def last_modified_by(self):
|
|
22
33
|
"""Identity of the user, device, and application which last modified the item."""
|
|
23
34
|
return self.properties.get('lastModifiedBy', IdentitySet())
|
|
24
35
|
|
|
36
|
+
@property
|
|
37
|
+
def last_modified_by_user(self):
|
|
38
|
+
"""
|
|
39
|
+
Identity of the user who last modified the item.
|
|
40
|
+
"""
|
|
41
|
+
from office365.directory.users.user import User
|
|
42
|
+
return self.properties.get('lastModifiedByUser',
|
|
43
|
+
User(self.context, ResourcePath("lastModifiedByUser", self.resource_path)))
|
|
44
|
+
|
|
25
45
|
@property
|
|
26
46
|
def created_datetime(self):
|
|
27
47
|
"""Gets date and time of item creation."""
|
|
28
|
-
return self.properties.get('createdDateTime',
|
|
48
|
+
return self.properties.get('createdDateTime', datetime.min)
|
|
29
49
|
|
|
30
50
|
@property
|
|
31
51
|
def last_modified_datetime(self):
|
|
32
52
|
"""Gets date and time the item was last modified."""
|
|
33
|
-
return self.properties.get('lastModifiedDateTime',
|
|
53
|
+
return self.properties.get('lastModifiedDateTime', datetime.min)
|
|
34
54
|
|
|
35
55
|
@property
|
|
36
56
|
def name(self):
|
|
@@ -50,7 +70,6 @@ class BaseItem(Entity):
|
|
|
50
70
|
def description(self):
|
|
51
71
|
"""
|
|
52
72
|
Provides a user-visible description of the item.
|
|
53
|
-
|
|
54
73
|
:rtype: str or None
|
|
55
74
|
"""
|
|
56
75
|
return self.properties.get('description', None)
|
|
@@ -63,7 +82,6 @@ class BaseItem(Entity):
|
|
|
63
82
|
def web_url(self):
|
|
64
83
|
"""
|
|
65
84
|
URL that displays the resource in the browser.
|
|
66
|
-
|
|
67
85
|
:rtype: str or None
|
|
68
86
|
"""
|
|
69
87
|
return self.properties.get('webUrl', None)
|
|
@@ -81,7 +99,11 @@ class BaseItem(Entity):
|
|
|
81
99
|
if default_value is None:
|
|
82
100
|
property_mapping = {
|
|
83
101
|
"createdBy": self.created_by,
|
|
102
|
+
"createdByUser": self.created_by_user,
|
|
103
|
+
"createdDateTime": self.created_datetime,
|
|
104
|
+
"lastModifiedDateTime": self.last_modified_datetime,
|
|
84
105
|
"lastModifiedBy": self.last_modified_by,
|
|
106
|
+
"lastModifiedByUser": self.last_modified_by_user,
|
|
85
107
|
"parentReference": self.parent_reference
|
|
86
108
|
}
|
|
87
109
|
default_value = property_mapping.get(name, None)
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class BookingBusiness(Entity):
|
|
5
|
+
"""Represents a business in Microsoft Bookings. This is the top level object in the Microsoft Bookings API.
|
|
6
|
+
It contains business information and related business objects such as appointments, customers, services,
|
|
7
|
+
and staff members."""
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from office365.booking.business import BookingBusiness
|
|
2
|
+
from office365.booking.currency import BookingCurrency
|
|
3
|
+
from office365.entity import Entity
|
|
4
|
+
from office365.entity_collection import EntityCollection
|
|
5
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class SolutionsRoot(Entity):
|
|
9
|
+
""""""
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def booking_businesses(self):
|
|
13
|
+
""" Get a collection of bookingBusiness objects that has been created for the tenant."""
|
|
14
|
+
return self.properties.get('bookingBusinesses',
|
|
15
|
+
EntityCollection(self.context, BookingBusiness,
|
|
16
|
+
ResourcePath("bookingBusinesses", self.resource_path)))
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def booking_currencies(self):
|
|
20
|
+
"""Get a list of bookingCurrency objects available to a Microsoft Bookings business"""
|
|
21
|
+
return self.properties.get('bookingCurrencies',
|
|
22
|
+
EntityCollection(self.context, BookingCurrency,
|
|
23
|
+
ResourcePath("bookingCurrencies", self.resource_path)))
|
|
24
|
+
|
|
25
|
+
def get_property(self, name, default_value=None):
|
|
26
|
+
if default_value is None:
|
|
27
|
+
property_mapping = {
|
|
28
|
+
"bookingBusinesses": self.booking_businesses,
|
|
29
|
+
"bookingCurrencies": self.booking_currencies
|
|
30
|
+
}
|
|
31
|
+
default_value = property_mapping.get(name, None)
|
|
32
|
+
return super(SolutionsRoot, self).get_property(name, default_value)
|
|
@@ -1,6 +1,22 @@
|
|
|
1
|
+
from office365.directory.permissions.identity_set import IdentitySet
|
|
1
2
|
from office365.runtime.client_value import ClientValue
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class InvitationParticipantInfo(ClientValue):
|
|
5
6
|
"""This resource is used to represent the entity that is being invited to a group call."""
|
|
6
|
-
|
|
7
|
+
|
|
8
|
+
def __init__(self, hidden=None, identity=IdentitySet(), participant_id=None,
|
|
9
|
+
remove_from_default_audio_routing_group=None, replaces_call_id=None):
|
|
10
|
+
"""
|
|
11
|
+
:param bool hidden: Optional. Whether to hide the participant from the roster.
|
|
12
|
+
:param IdentitySet identity: The identitySet associated with this invitation.
|
|
13
|
+
:param str participant_id: Optional. The ID of the target participant.
|
|
14
|
+
:param bool remove_from_default_audio_routing_group: Optional. Whether to remove them from the main mixer.
|
|
15
|
+
:param str replaces_call_id: Optional. The call which the target identity is currently a part of.
|
|
16
|
+
For peer-to-peer case, the call will be dropped once the participant is added successfully.
|
|
17
|
+
"""
|
|
18
|
+
self.hidden = hidden
|
|
19
|
+
self.identity = identity
|
|
20
|
+
self.participantId = participant_id
|
|
21
|
+
self.removeFromDefaultAudioRoutingGroup = remove_from_default_audio_routing_group
|
|
22
|
+
self.replacesCallId = replaces_call_id
|
|
@@ -3,3 +3,12 @@ from office365.runtime.client_value import ClientValue
|
|
|
3
3
|
|
|
4
4
|
class CallOptions(ClientValue):
|
|
5
5
|
"""Represents an abstract base class that contains the optional features for a call."""
|
|
6
|
+
|
|
7
|
+
def __init__(self, hide_bot_after_escalation=None, is_content_sharing_notification_enabled=None):
|
|
8
|
+
"""
|
|
9
|
+
:param bool hide_bot_after_escalation: Indicates whether to hide the app after the call is escalated.
|
|
10
|
+
:param bool is_content_sharing_notification_enabled: Indicates whether content sharing notifications should be
|
|
11
|
+
enabled for the call.
|
|
12
|
+
"""
|
|
13
|
+
self.hideBotAfterEscalation = hide_bot_after_escalation
|
|
14
|
+
self.isContentSharingNotificationEnabled = is_content_sharing_notification_enabled
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
from office365.communications.presences.status_message import PresenceStatusMessage
|
|
1
2
|
from office365.entity import Entity
|
|
3
|
+
from office365.outlook.mail.item_body import ItemBody
|
|
2
4
|
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
3
5
|
|
|
4
6
|
|
|
@@ -46,6 +48,18 @@ class Presence(Entity):
|
|
|
46
48
|
self.context.add_query(qry)
|
|
47
49
|
return self
|
|
48
50
|
|
|
51
|
+
def set_status_message(self, message):
|
|
52
|
+
"""
|
|
53
|
+
Set a presence status message for a user. An optional expiration date and time can be supplied.
|
|
54
|
+
:param str message: Status message item.
|
|
55
|
+
"""
|
|
56
|
+
payload = {
|
|
57
|
+
"statusMessage": PresenceStatusMessage(ItemBody(message))
|
|
58
|
+
}
|
|
59
|
+
qry = ServiceOperationQuery(self, "setStatusMessage", None, payload)
|
|
60
|
+
self.context.add_query(qry)
|
|
61
|
+
return self
|
|
62
|
+
|
|
49
63
|
def set_user_preferred_presence(self, availability="Available", activity="Available", expiration_duration=None):
|
|
50
64
|
"""
|
|
51
65
|
Set the preferred availability and activity status for a user. If the preferred presence of a user is set,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from office365.outlook.mail.item_body import ItemBody
|
|
2
|
+
from office365.runtime.client_value import ClientValue
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class PresenceStatusMessage(ClientValue):
|
|
6
|
+
"""Represents a presence status message related to the presence of a user in Microsoft Teams."""
|
|
7
|
+
|
|
8
|
+
def __init__(self, message=ItemBody()):
|
|
9
|
+
"""
|
|
10
|
+
:param ItemBody message: Status message item.
|
|
11
|
+
"""
|
|
12
|
+
self.message = message
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
from office365.directory.extensions.extension import Extension
|
|
1
2
|
from office365.directory.object import DirectoryObject
|
|
3
|
+
from office365.entity_collection import EntityCollection
|
|
4
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
2
5
|
|
|
3
6
|
|
|
4
7
|
class AdministrativeUnit(DirectoryObject):
|
|
@@ -8,3 +11,22 @@ class AdministrativeUnit(DirectoryObject):
|
|
|
8
11
|
the users, groups, and devices contained within or scoped to an administrative unit to a regional or
|
|
9
12
|
departmental administrator. This resource is an open type that allows other properties to be passed in.
|
|
10
13
|
"""
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def members(self):
|
|
17
|
+
"""
|
|
18
|
+
Users and groups that are members of this administrative unit
|
|
19
|
+
"""
|
|
20
|
+
from office365.directory.object_collection import DirectoryObjectCollection
|
|
21
|
+
return self.properties.get('members',
|
|
22
|
+
DirectoryObjectCollection(self.context, ResourcePath("members", self.resource_path)))
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def extensions(self):
|
|
26
|
+
"""
|
|
27
|
+
The collection of open extensions defined for this administrative unit.
|
|
28
|
+
"""
|
|
29
|
+
return self.properties.get('extensions',
|
|
30
|
+
EntityCollection(self.context, Extension,
|
|
31
|
+
ResourcePath("extensions", self.resource_path)))
|
|
32
|
+
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from office365.delta_collection import DeltaCollection
|
|
2
2
|
from office365.directory.applications.application import Application
|
|
3
|
+
from office365.runtime.paths.appid import AppIdPath
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class ApplicationCollection(DeltaCollection):
|
|
@@ -14,4 +15,4 @@ class ApplicationCollection(DeltaCollection):
|
|
|
14
15
|
:param str app_id: Application client identifier
|
|
15
16
|
:rtype: Application
|
|
16
17
|
"""
|
|
17
|
-
return self.
|
|
18
|
+
return Application(self.context, AppIdPath(app_id, self.resource_path))
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
|
|
1
3
|
from office365.directory.object import DirectoryObject
|
|
2
|
-
from office365.entity_collection import EntityCollection
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class AppRoleAssignment(DirectoryObject):
|
|
@@ -9,10 +10,49 @@ class AppRoleAssignment(DirectoryObject):
|
|
|
9
10
|
An app role assignment is a relationship between the assigned principal (a user, a group, or a service principal),
|
|
10
11
|
a resource application (the app's service principal) and an app role defined on the resource application.
|
|
11
12
|
"""
|
|
12
|
-
pass
|
|
13
13
|
|
|
14
|
+
@property
|
|
15
|
+
def app_role_id(self):
|
|
16
|
+
"""
|
|
17
|
+
The identifier (id) for the app role which is assigned to the principal.
|
|
18
|
+
This app role must be exposed in the appRoles property on
|
|
19
|
+
the resource application's service principal (resourceId). If the resource application has not declared
|
|
20
|
+
any app roles, a default app role ID of 00000000-0000-0000-0000-000000000000 can be specified to signal
|
|
21
|
+
that the principal is assigned to the resource app without any specific app roles. Required on create.
|
|
22
|
+
:rtype: str
|
|
23
|
+
"""
|
|
24
|
+
return self.properties.get("appRoleId", None)
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def created_datetime(self):
|
|
28
|
+
"""The time when the app role assignment was created."""
|
|
29
|
+
return self.properties.get('createdDateTime', datetime.min)
|
|
30
|
+
|
|
31
|
+
@property
|
|
32
|
+
def principal_display_name(self):
|
|
33
|
+
"""The display name of the user, group, or service principal that was granted the app role assignment."""
|
|
34
|
+
return self.properties.get('principalDisplayName', None)
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def principal_id(self):
|
|
38
|
+
"""The unique identifier (id) for the user, security group, or service principal being granted the app role.
|
|
39
|
+
Security groups with dynamic memberships are supported. Required on create."""
|
|
40
|
+
return self.properties.get('principalId', None)
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def principal_type(self):
|
|
44
|
+
"""The type of the assigned principal. This can either be User, Group, or ServicePrincipal."""
|
|
45
|
+
return self.properties.get('principalType', None)
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def resource_display_name(self):
|
|
49
|
+
"""The display name of the resource app's service principal to which the assignment is made."""
|
|
50
|
+
return self.properties.get('resourceDisplayName', None)
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def resource_id(self):
|
|
54
|
+
"""The unique identifier (id) for the resource service principal for which the assignment is made.
|
|
55
|
+
Required on create. """
|
|
56
|
+
return self.properties.get('resourceId', None)
|
|
14
57
|
|
|
15
|
-
class AppRoleAssignmentCollection(EntityCollection):
|
|
16
58
|
|
|
17
|
-
def __init__(self, context, resource_path=None):
|
|
18
|
-
super(AppRoleAssignmentCollection, self).__init__(context, AppRoleAssignment, resource_path)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
from office365.directory.applications.roles.assignment import AppRoleAssignment
|
|
2
|
+
from office365.entity_collection import EntityCollection
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class AppRoleAssignmentCollection(EntityCollection):
|
|
6
|
+
|
|
7
|
+
def __init__(self, context, resource_path=None):
|
|
8
|
+
super(AppRoleAssignmentCollection, self).__init__(context, AppRoleAssignment, resource_path)
|
|
@@ -8,7 +8,7 @@ class AppRole(ClientValue):
|
|
|
8
8
|
or that can be used to assign an application to users or groups in a specified role.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
|
-
def __init__(self, allowed_member_types=None):
|
|
11
|
+
def __init__(self, allowed_member_types=None, description=None, display_name=None, is_enabled=None, origin=None):
|
|
12
12
|
"""
|
|
13
13
|
:param list[str] allowed_member_types: Specifies whether this app role can be assigned to users and groups
|
|
14
14
|
(by setting to ["User"]), to other application's (by setting to ["Application"], or both (by setting to
|
|
@@ -17,3 +17,8 @@ class AppRole(ClientValue):
|
|
|
17
17
|
on application entities.
|
|
18
18
|
"""
|
|
19
19
|
self.allowedMemberTypes = StringCollection(allowed_member_types)
|
|
20
|
+
self.description = description
|
|
21
|
+
self.displayName = display_name
|
|
22
|
+
self.isEnabled = is_enabled
|
|
23
|
+
self.origin = origin
|
|
24
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SignInActivity(ClientValue):
|
|
5
|
+
"""Provides the last interactive or non-interactive sign-in time for a specific user. Since signInActivity
|
|
6
|
+
describes a property of the user object, Azure AD stores sign in activity for your users for as long as the
|
|
7
|
+
user object exists."""
|
|
8
|
+
|
|
9
|
+
def __init__(self, last_non_interactive_sign_in_datetime=None, last_non_interactive_sign_in_request_id=None,
|
|
10
|
+
last_sign_in_datetime=None, last_sign_in_request_id=None):
|
|
11
|
+
"""
|
|
12
|
+
:param datetime.datetime last_non_interactive_sign_in_datetime: The last non-interactive sign-in date for a
|
|
13
|
+
specific user. You can use this field to calculate the last time a client attempted to sign into the
|
|
14
|
+
directory on behalf of a user. Because some users may use clients to access tenant resources rather
|
|
15
|
+
than signing into your tenant directly, you can use the non-interactive sign-in date to along with
|
|
16
|
+
lastSignInDateTime to identify inactive users.
|
|
17
|
+
:param str last_non_interactive_sign_in_request_id: Request identifier of the last non-interactive sign-in
|
|
18
|
+
performed by this user.
|
|
19
|
+
:param datetime.datetime last_sign_in_datetime: The last interactive sign-in date and time for a specific user.
|
|
20
|
+
You can use this field to calculate the last time a user attempted to sign into the directory with an
|
|
21
|
+
interactive authentication method. This field can be used to build reports, such as inactive users.
|
|
22
|
+
The timestamp represents date and time information using ISO 8601 format and is always in UTC time.
|
|
23
|
+
For example, midnight UTC on Jan 1, 2014 is: '2014-01-01T00:00:00Z'. Azure AD maintains interactive
|
|
24
|
+
sign-ins going back to April 2020. For more information about using the value of this property,
|
|
25
|
+
see Manage inactive user accounts in Azure AD.
|
|
26
|
+
:param str last_sign_in_request_id: Request identifier of the last interactive sign-in performed by this user.
|
|
27
|
+
"""
|
|
28
|
+
self.lastNonInteractiveSignInDateTime = last_non_interactive_sign_in_datetime
|
|
29
|
+
self.lastNonInteractiveSignInRequestId = last_non_interactive_sign_in_request_id
|
|
30
|
+
self.lastSignInDateTime = last_sign_in_datetime
|
|
31
|
+
self.lastSignInRequestId = last_sign_in_request_id
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
+
from office365.onedrive.driveitems.geo_coordinates import GeoCoordinates
|
|
1
2
|
from office365.runtime.client_value import ClientValue
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class SignInLocation(ClientValue):
|
|
5
6
|
"""Provides the city, state and country/region from where the sign-in happened."""
|
|
7
|
+
|
|
8
|
+
def __init__(self, city=None, country_or_region=None, geo_coordinates=GeoCoordinates(), state=None):
|
|
9
|
+
"""
|
|
10
|
+
:param str city: Provides the city where the sign-in originated. This is calculated using latitude/longitude
|
|
11
|
+
information from the sign-in activity.
|
|
12
|
+
:param str country_or_region: Provides the country code info (2 letter code) where the sign-in originated.
|
|
13
|
+
This is calculated using latitude/longitude information from the sign-in activity.
|
|
14
|
+
:param GeoCoordinates geo_coordinates: Provides the latitude, longitude and altitude where the sign-in
|
|
15
|
+
originated.
|
|
16
|
+
:param str state: Provides the State where the sign-in originated. This is calculated using latitude/longitude
|
|
17
|
+
information from the sign-in activity.
|
|
18
|
+
"""
|
|
19
|
+
self.city = city
|
|
20
|
+
self.countryOrRegion = country_or_region
|
|
21
|
+
self.geoCoordinates = geo_coordinates
|
|
22
|
+
self.state = state
|
|
@@ -9,6 +9,31 @@ class SignIn(Entity):
|
|
|
9
9
|
You must have an Azure AD Premium P1 or P2 license to download sign-in logs using the Microsoft Graph API.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
@property
|
|
13
|
+
def app_display_name(self):
|
|
14
|
+
"""
|
|
15
|
+
App name displayed in the Azure Portal.
|
|
16
|
+
:rtype: str
|
|
17
|
+
"""
|
|
18
|
+
return self.properties.get("appDisplayName", None)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def app_id(self):
|
|
22
|
+
"""
|
|
23
|
+
Unique GUID representing the app ID in the Azure Active Directory.
|
|
24
|
+
:rtype: str
|
|
25
|
+
"""
|
|
26
|
+
return self.properties.get("appId", None)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def client_app_used(self):
|
|
30
|
+
"""
|
|
31
|
+
Identifies the client used for the sign-in activity. Modern authentication clients include Browser, modern
|
|
32
|
+
clients. Legacy authentication clients include Exchange ActiveSync, IMAP, MAPI, SMTP, POP, and other clients.
|
|
33
|
+
:rtype: str
|
|
34
|
+
"""
|
|
35
|
+
return self.properties.get("clientAppUsed", None)
|
|
36
|
+
|
|
12
37
|
@property
|
|
13
38
|
def device_detail(self):
|
|
14
39
|
"""Device information from where the sign-in occurred; includes device ID, operating system, and browser.
|
|
@@ -47,3 +72,11 @@ class SignIn(Entity):
|
|
|
47
72
|
:rtype: str or None
|
|
48
73
|
"""
|
|
49
74
|
return self.properties.get("status", SignInStatus())
|
|
75
|
+
|
|
76
|
+
def get_property(self, name, default_value=None):
|
|
77
|
+
if default_value is None:
|
|
78
|
+
property_mapping = {
|
|
79
|
+
"deviceDetail": self.device_detail
|
|
80
|
+
}
|
|
81
|
+
default_value = property_mapping.get(name, None)
|
|
82
|
+
return super(SignIn, self).get_property(name, default_value)
|
|
@@ -10,6 +10,14 @@ class Authentication(Entity):
|
|
|
10
10
|
for users.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
+
@property
|
|
14
|
+
def email_methods(self):
|
|
15
|
+
"""The email address registered to a user for authentication."""
|
|
16
|
+
from office365.directory.authentication.methods.email import EmailAuthenticationMethod
|
|
17
|
+
return self.properties.get('emailMethods',
|
|
18
|
+
EntityCollection(self.context, EmailAuthenticationMethod,
|
|
19
|
+
ResourcePath("emailMethods", self.resource_path)))
|
|
20
|
+
|
|
13
21
|
@property
|
|
14
22
|
def fido2_methods(self):
|
|
15
23
|
"""Represents the FIDO2 security keys registered to a user for authentication."""
|
|
@@ -45,6 +53,7 @@ class Authentication(Entity):
|
|
|
45
53
|
def get_property(self, name, default_value=None):
|
|
46
54
|
if default_value is None:
|
|
47
55
|
property_mapping = {
|
|
56
|
+
"emailMethods": self.email_methods,
|
|
48
57
|
"fido2Methods": self.fido2_methods,
|
|
49
58
|
"passwordMethods": self.password_methods,
|
|
50
59
|
"phoneMethods": self.phone_methods
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from office365.entity import Entity
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class UserRegistrationDetails(Entity):
|
|
5
|
+
"""Represents the state of a user's authentication methods, including which methods are registered and which
|
|
6
|
+
features the user is registered and capable of (such as multi-factor authentication, self-service password reset,
|
|
7
|
+
and passwordless authentication)."""
|
|
8
|
+
|
|
9
|
+
@property
|
|
10
|
+
def is_admin(self):
|
|
11
|
+
"""
|
|
12
|
+
Indicates whether the user has an admin role in the tenant. This value can be used to check the authentication
|
|
13
|
+
methods that privileged accounts are registered for and capable of.
|
|
14
|
+
:rtype: bool
|
|
15
|
+
"""
|
|
16
|
+
return self.properties.get("isAdmin", None)
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def is_mfa_registered(self):
|
|
20
|
+
"""
|
|
21
|
+
Indicates whether the user has registered a strong authentication method for multi-factor authentication.
|
|
22
|
+
The method may not necessarily be allowed by the authentication methods policy.
|
|
23
|
+
:rtype: bool
|
|
24
|
+
"""
|
|
25
|
+
return self.properties.get("isMfaRegistered", None)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from office365.directory.authentication.methods.method import AuthenticationMethod
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class EmailAuthenticationMethod(AuthenticationMethod):
|
|
5
|
+
"""
|
|
6
|
+
Represents an email address registered to a user. Email as an authentication method is available only for
|
|
7
|
+
self-service password reset (SSPR). Users may only have one email authentication method.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
@property
|
|
11
|
+
def email_address(self):
|
|
12
|
+
"""
|
|
13
|
+
The email address registered to this user.
|
|
14
|
+
:rtype: str
|
|
15
|
+
"""
|
|
16
|
+
return self.properties.get("emailAddress", None)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from office365.directory.authentication.methods.details import UserRegistrationDetails
|
|
2
|
+
from office365.entity import Entity
|
|
3
|
+
from office365.entity_collection import EntityCollection
|
|
4
|
+
from office365.reports.userregistration.method_summary import UserRegistrationMethodSummary
|
|
5
|
+
from office365.runtime.client_result import ClientResult
|
|
6
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
7
|
+
from office365.runtime.queries.function import FunctionQuery
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AuthenticationMethodsRoot(Entity):
|
|
11
|
+
"""Container for navigation properties for Azure AD authentication methods resources."""
|
|
12
|
+
|
|
13
|
+
def users_registered_by_method(self):
|
|
14
|
+
"""Get the number of users registered for each authentication method."""
|
|
15
|
+
return_type = ClientResult(self.context, UserRegistrationMethodSummary())
|
|
16
|
+
qry = FunctionQuery(self, "usersRegisteredByMethod", None, return_type)
|
|
17
|
+
self.context.add_query(qry)
|
|
18
|
+
return return_type
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def user_registration_details(self):
|
|
22
|
+
"""Represents the state of a user's authentication methods, including which methods are registered and which
|
|
23
|
+
features the user is registered and capable of (such as multi-factor authentication, self-service password
|
|
24
|
+
reset, and passwordless authentication)."""
|
|
25
|
+
return self.properties.get('userRegistrationDetails',
|
|
26
|
+
EntityCollection(self.context, UserRegistrationDetails,
|
|
27
|
+
ResourcePath("userRegistrationDetails", self.resource_path)))
|
|
@@ -4,14 +4,19 @@ from office365.runtime.client_value import ClientValue
|
|
|
4
4
|
class CertificateAuthority(ClientValue):
|
|
5
5
|
"""Represents a certificate authority."""
|
|
6
6
|
|
|
7
|
-
def __init__(self, certificate=None, certificate_revocation_list_url=None, is_root_authority=None
|
|
7
|
+
def __init__(self, certificate=None, certificate_revocation_list_url=None, is_root_authority=None,
|
|
8
|
+
issuer=None, issuer_ski=None):
|
|
8
9
|
"""
|
|
9
10
|
:param str certificate: The base64 encoded string representing the public certificate.
|
|
10
11
|
:param str certificate_revocation_list_url: The URL of the certificate revocation list.
|
|
11
12
|
:param str is_root_authority: Required. true if the trusted certificate is a root authority, false if the
|
|
12
13
|
trusted certificate is an intermediate authority.
|
|
14
|
+
:param str issuer: The issuer of the certificate, calculated from the certificate value
|
|
15
|
+
:param str issuer_ski: The subject key identifier of the certificate, calculated from the certificate value.
|
|
13
16
|
"""
|
|
14
17
|
super(CertificateAuthority, self).__init__()
|
|
15
18
|
self.certificate = certificate
|
|
16
19
|
self.certificateRevocationListUrl = certificate_revocation_list_url
|
|
17
20
|
self.isRootAuthority = is_root_authority
|
|
21
|
+
self.issuer = issuer
|
|
22
|
+
self.issuerSki = issuer_ski
|
|
@@ -4,7 +4,14 @@ from office365.runtime.types.collections import StringCollection
|
|
|
4
4
|
|
|
5
5
|
class SingleValueLegacyExtendedProperty(Entity):
|
|
6
6
|
"""An extended property that contains a single value."""
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
@property
|
|
9
|
+
def value(self):
|
|
10
|
+
"""
|
|
11
|
+
A property value.
|
|
12
|
+
:rtype: str
|
|
13
|
+
"""
|
|
14
|
+
return self.properties.get("value", None)
|
|
8
15
|
|
|
9
16
|
|
|
10
17
|
class MultiValueLegacyExtendedProperty(Entity):
|
|
@@ -15,7 +15,6 @@ class ExtensionProperty(DirectoryObject):
|
|
|
15
15
|
def name(self):
|
|
16
16
|
"""
|
|
17
17
|
Name of the extension property.
|
|
18
|
-
|
|
19
18
|
:rtype: str
|
|
20
19
|
"""
|
|
21
20
|
return self.properties.get("name", None)
|
|
@@ -24,7 +23,6 @@ class ExtensionProperty(DirectoryObject):
|
|
|
24
23
|
def app_display_name(self):
|
|
25
24
|
"""
|
|
26
25
|
Display name of the application object on which this extension property is defined. Read-only.
|
|
27
|
-
|
|
28
26
|
:rtype: str
|
|
29
27
|
"""
|
|
30
28
|
return self.properties.get("appDisplayName", None)
|
|
@@ -39,7 +37,6 @@ class ExtensionProperty(DirectoryObject):
|
|
|
39
37
|
Integer - 32-bit value.
|
|
40
38
|
LargeInteger - 64-bit value.
|
|
41
39
|
String - 256 characters maximum
|
|
42
|
-
|
|
43
40
|
:rtype: str
|
|
44
41
|
"""
|
|
45
42
|
return self.properties.get("dataType", None)
|
|
@@ -7,3 +7,11 @@ class OpenTypeExtension(Extension):
|
|
|
7
7
|
an extensibility option that provides an easy way to directly add untyped properties to a resource
|
|
8
8
|
in Microsoft Graph.
|
|
9
9
|
"""
|
|
10
|
+
|
|
11
|
+
@property
|
|
12
|
+
def extension_name(self):
|
|
13
|
+
"""
|
|
14
|
+
A unique text identifier for an open type data extension. Optional.
|
|
15
|
+
:rtype: str
|
|
16
|
+
"""
|
|
17
|
+
return self.properties.get("extensionName", None)
|
|
@@ -31,9 +31,7 @@ class GroupCollection(DeltaCollection):
|
|
|
31
31
|
params.securityEnabled = False
|
|
32
32
|
params.mailEnabled = True
|
|
33
33
|
params.groupTypes = ["Unified"]
|
|
34
|
-
return_type = self.context.groups.add(params)
|
|
35
34
|
|
|
36
|
-
def _after_group_created():
|
|
35
|
+
def _after_group_created(return_type):
|
|
37
36
|
return_type.add_team()
|
|
38
|
-
self.context.
|
|
39
|
-
return return_type
|
|
37
|
+
return self.context.groups.add(params).after_execute(_after_group_created)
|