Office365-REST-Python-Client 3.3.0__py3-none-any.whl → 3.3.1__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/admin/admin.py +9 -3
- office365/admin/baseline_parameter.py +0 -3
- office365/admin/baseline_resource.py +1 -2
- office365/admin/browser_shared_cookie.py +18 -25
- office365/admin/browser_site.py +20 -29
- office365/admin/browser_site_list.py +13 -8
- office365/admin/configuration_management.py +6 -0
- office365/admin/edge/edge.py +2 -0
- office365/admin/exchange/admin.py +3 -0
- office365/admin/exchange/exchange_message_trace.py +12 -10
- office365/admin/exchange/exchange_message_trace_detail.py +7 -0
- office365/admin/internet_explorer_mode.py +2 -0
- office365/admin/message_tracing_root.py +2 -0
- office365/admin/microsoft365/apps.py +2 -0
- office365/admin/microsoft365/m365_apps_installation_options.py +11 -23
- office365/admin/people/insights_settings.py +3 -0
- office365/admin/people/profile_property_setting.py +4 -0
- office365/admin/people/profile_source.py +8 -10
- office365/admin/people/pronouns_settings.py +2 -0
- office365/admin/people/settings.py +5 -1
- office365/admin/report_settings.py +2 -0
- office365/admin/sharepoint/idle_session_signout.py +0 -3
- office365/admin/sharepoint/settings.py +25 -6
- office365/admin/sharepoint/sharepoint.py +2 -0
- office365/backuprestore/artifact_query.py +0 -3
- office365/backuprestore/backup_count_statistics.py +22 -0
- office365/backuprestore/backup_policy_report.py +16 -0
- office365/backuprestore/backup_report.py +9 -0
- office365/backuprestore/browse_session_base.py +15 -10
- office365/backuprestore/email_notifications_setting.py +7 -15
- office365/backuprestore/onedrive_for_business_browse_session.py +2 -0
- office365/backuprestore/onedrive_for_business_restore_session.py +4 -0
- office365/backuprestore/protection_unit_base.py +24 -17
- office365/backuprestore/restorepoints/collection.py +5 -0
- office365/backuprestore/restorepoints/search_response.py +1 -2
- office365/backuprestore/restorepoints/search_result.py +0 -2
- office365/backuprestore/restoresessions/artifact_count.py +0 -3
- office365/backuprestore/restoresessions/browse_query_response_item.py +0 -3
- office365/backuprestore/restoresessions/browser_shared_cookie_history.py +1 -2
- office365/backuprestore/root.py +34 -2
- office365/backuprestore/serviceapps/service_app.py +20 -12
- office365/backuprestore/sharepoint_browse_session.py +2 -0
- office365/backuprestore/sharepoint_protection_policy.py +4 -0
- office365/backuprestore/sharepoint_restore_session.py +4 -0
- office365/backuprestore/time_period.py +1 -2
- office365/booking/appointment.py +40 -25
- office365/booking/assigned_place_mode.py +0 -3
- office365/booking/availability.py +1 -2
- office365/booking/availabilityitem.py +1 -2
- office365/booking/availabilitywindow.py +0 -2
- office365/{common → booking}/building.py +8 -8
- office365/{common → booking}/building_map.py +4 -0
- office365/booking/business/business.py +32 -12
- office365/booking/business/import_building_map_setting.py +0 -3
- office365/booking/chedulingpolicy.py +1 -2
- office365/booking/currency.py +2 -0
- office365/booking/custom_question.py +8 -6
- office365/booking/customer.py +10 -9
- office365/booking/customers/information.py +1 -2
- office365/booking/customers/informationbase.py +0 -3
- office365/booking/drop_in_place_mode.py +0 -3
- office365/booking/mailbox_details.py +0 -3
- office365/booking/pagesettings.py +0 -3
- office365/booking/phone.py +0 -3
- office365/booking/place_mode.py +0 -3
- office365/booking/place_service_plan_info.py +0 -3
- office365/booking/questionanswer.py +0 -3
- office365/booking/questionassignment.py +0 -3
- office365/booking/reminder.py +0 -2
- office365/booking/reservable_place_mode.py +0 -3
- office365/booking/service.py +32 -19
- office365/booking/solutions/root.py +25 -4
- office365/booking/staff/availability_item.py +1 -2
- office365/booking/staff/member.py +16 -12
- office365/booking/unavailable_place_mode.py +0 -3
- office365/booking/work_hours.py +1 -2
- office365/booking/work_time_slot.py +0 -3
- office365/capabilities.py +144 -0
- office365/common/agent_identity.py +5 -0
- office365/common/agent_identity_blueprint.py +3 -0
- office365/common/agent_identity_blueprint_principal.py +3 -0
- office365/common/akamai_web_application_firewall_provider.py +5 -0
- office365/common/anonymous_guest_conversation_member.py +2 -0
- office365/common/apple_managed_identity_provider.py +5 -0
- office365/common/arkose_fraud_protection_provider.py +5 -0
- office365/common/attribute_set.py +3 -0
- office365/common/azure_communication_services_user_conversation_member.py +2 -0
- office365/common/{b2_b_registration_metrics_base.py → b2b_registration_metrics_base.py} +4 -0
- office365/common/{b2_b_sign_in_activity_metrics_base.py → b2b_sign_in_activity_metrics_base.py} +6 -0
- office365/common/complex_extension_value.py +0 -3
- office365/common/configuration_baseline.py +8 -9
- office365/common/configuration_drift.py +13 -16
- office365/common/configuration_monitor.py +18 -18
- office365/common/configuration_monitoring_result.py +11 -9
- office365/common/configuration_snapshot_job.py +14 -9
- office365/common/contract.py +5 -0
- office365/common/cross_tenant_access_policy_configuration_default.py +30 -68
- office365/common/cross_tenant_access_policy_configuration_partner.py +31 -61
- office365/common/cross_tenant_identity_sync_policy_partner.py +7 -10
- office365/common/custom_authentication_extension.py +5 -11
- office365/common/custom_data_provided_resource.py +5 -11
- office365/common/data_source_configuration.py +1 -2
- office365/common/delta_participants.py +3 -0
- office365/common/desk.py +11 -15
- office365/common/dictionaries.py +0 -3
- office365/common/directory_object_partner_reference.py +5 -0
- office365/common/distribution_list.py +64 -0
- office365/common/distribution_list_member.py +43 -0
- office365/common/domain_dns_mx_record.py +3 -0
- office365/common/domain_dns_srv_record.py +7 -0
- office365/common/domain_dns_txt_record.py +2 -0
- office365/common/domain_dns_unavailable_record.py +2 -0
- office365/common/drive_protection_unit.py +4 -0
- office365/common/drive_protection_units_bulk_addition_job.py +3 -0
- office365/common/drive_restore_artifact.py +4 -0
- office365/common/drive_restore_artifacts_bulk_addition_request.py +3 -0
- office365/common/edition_upgrade_configuration.py +8 -17
- office365/common/email_authentication_method_configuration.py +4 -7
- office365/common/emergency_call_event.py +6 -6
- office365/common/end_user_settings.py +7 -10
- office365/common/endpoint.py +6 -0
- office365/common/engagement_async_operation.py +5 -10
- office365/common/engagement_conversation_question_message.py +2 -0
- office365/common/engagement_role.py +3 -0
- office365/common/engagement_role_member.py +4 -0
- office365/common/enrollment_troubleshooting_event.py +12 -13
- office365/common/enterprise_code_signing_certificate.py +11 -6
- office365/common/error_detail.py +0 -3
- office365/common/event_message_request.py +11 -14
- office365/common/event_message_response.py +5 -10
- office365/common/exchange_protection_policy.py +4 -0
- office365/common/exchange_restore_session.py +4 -0
- office365/common/exchange_settings.py +2 -0
- office365/common/external_authentication_method.py +3 -0
- office365/common/external_authentication_method_configuration.py +6 -7
- office365/common/external_users_self_service_sign_up_events_flow.py +15 -46
- office365/common/fido2_authentication_method_configuration.py +8 -7
- office365/common/fido2_combination_configuration.py +2 -0
- office365/common/fixture_map.py +2 -0
- office365/common/floor.py +2 -0
- office365/common/granular_drive_restore_artifact.py +2 -0
- office365/common/granular_mailbox_restore_artifact.py +3 -0
- office365/common/granular_restore_artifact_base.py +12 -6
- office365/common/granular_site_restore_artifact.py +2 -0
- office365/common/human_security_fraud_protection_provider.py +3 -0
- office365/common/image_info.py +0 -3
- office365/common/imported_windows_autopilot_device_identity_upload.py +7 -7
- office365/common/intune_brand.py +1 -2
- office365/common/ip_named_location.py +5 -6
- office365/common/ipv4_range.py +0 -3
- office365/common/ipv6_range.py +0 -3
- office365/common/key_value.py +0 -3
- office365/common/learning_assignment.py +10 -12
- office365/common/level_map.py +5 -0
- office365/common/mail_folder_operation.py +27 -0
- office365/common/mail_folder_operation_status.py +15 -0
- office365/common/mailbox.py +2 -0
- office365/common/mailbox_folder.py +11 -0
- office365/common/mailbox_item.py +5 -0
- office365/common/mailbox_protection_rule.py +2 -0
- office365/common/mailbox_protection_unit.py +4 -0
- office365/common/mailbox_protection_units_bulk_addition_job.py +3 -0
- office365/common/mailbox_restore_artifact.py +4 -0
- office365/common/mailbox_restore_artifacts_bulk_addition_request.py +3 -0
- office365/common/managed_android_lob_app.py +7 -10
- office365/common/managed_android_store_app.py +6 -10
- office365/common/managed_app_status_raw.py +3 -7
- office365/common/managed_ios_lob_app.py +10 -15
- office365/common/managed_ios_store_app.py +8 -15
- office365/common/managed_mobile_lob_app.py +5 -0
- office365/common/meeting_engagement.py +16 -0
- office365/common/meeting_engagement_type.py +15 -0
- office365/common/member.py +15 -0
- office365/common/mention.py +63 -0
- office365/common/mentions_preview.py +11 -0
- office365/common/microsoft_account_user_conversation_member.py +2 -0
- office365/common/microsoft_authenticator_authentication_method_configuration.py +7 -7
- office365/common/microsoft_authenticator_authentication_method_target.py +5 -11
- office365/common/microsoft_store_for_business_app.py +8 -10
- office365/common/mime_content.py +0 -3
- office365/common/oidc_identity_provider.py +12 -24
- office365/common/on_attribute_collection_listener.py +3 -11
- office365/common/on_attribute_collection_start_listener.py +3 -11
- office365/common/on_attribute_collection_submit_listener.py +3 -11
- office365/common/on_authentication_method_load_start_listener.py +5 -11
- office365/common/on_email_otp_send_listener.py +3 -7
- office365/common/on_fraud_protection_load_start_listener.py +5 -11
- office365/common/on_interactive_auth_flow_start_listener.py +3 -11
- office365/common/on_password_submit_listener.py +3 -11
- office365/common/on_token_issuance_start_listener.py +3 -11
- office365/common/on_user_create_start_listener.py +3 -11
- office365/common/on_verified_id_claim_validation_listener.py +3 -11
- office365/common/operation.py +6 -8
- office365/common/os_version_count.py +0 -2
- office365/common/participant_joining_notification.py +2 -0
- office365/common/participant_left_notification.py +3 -0
- office365/common/passkey_authentication_method_target.py +2 -0
- office365/common/passkey_profile.py +9 -20
- office365/common/phone_user_conversation_member.py +2 -0
- office365/common/privacy.py +2 -0
- office365/common/prompt.py +0 -3
- office365/common/protection_units_bulk_job_base.py +12 -18
- office365/common/provision_response.py +0 -3
- office365/common/proxied_domain.py +0 -3
- office365/common/qr_code.py +8 -10
- office365/common/qr_code_pin_authentication_method.py +4 -0
- office365/common/qr_code_pin_authentication_method_configuration.py +4 -0
- office365/common/qr_pin.py +5 -0
- office365/common/reading_assignment_submission.py +24 -6
- office365/common/reading_coach_passage.py +12 -6
- office365/common/record_operation.py +3 -0
- office365/common/reflect_check_in_response.py +14 -9
- office365/common/related_tenants_refresh_request.py +2 -0
- office365/common/reports_root.py +5 -0
- office365/common/request.py +9 -6
- office365/common/reseller_delegated_admin_relationship.py +3 -0
- office365/common/restore_artifact_base.py +10 -9
- office365/common/restore_artifacts_bulk_request_base.py +22 -33
- office365/common/restore_point.py +6 -3
- office365/common/restore_session_base.py +27 -24
- office365/common/role_assignment.py +5 -0
- office365/common/role_definition.py +7 -3
- office365/common/saml_or_ws_fed_external_domain_federation.py +2 -0
- office365/common/section_map.py +2 -0
- office365/common/send_dtmf_tones_operation.py +3 -11
- office365/common/service_announcement_attachment.py +6 -0
- office365/common/setting_source.py +0 -3
- office365/common/shared_pc_configuration.py +16 -17
- office365/common/sharepoint_embedded_configuration.py +0 -3
- office365/common/single_value_extended_property.py +18 -0
- office365/common/site_protection_rule.py +2 -0
- office365/common/site_protection_unit.py +4 -0
- office365/common/site_protection_units_bulk_addition_job.py +3 -0
- office365/common/site_restore_artifact.py +4 -0
- office365/common/site_restore_artifacts_bulk_addition_request.py +3 -0
- office365/common/skype_for_business_user_conversation_member.py +3 -0
- office365/common/skype_user_conversation_member.py +2 -0
- office365/common/software_oath_authentication_method.py +2 -0
- office365/common/software_oath_authentication_method_configuration.py +2 -0
- office365/common/speaker_assignment_submission.py +20 -0
- office365/common/storage_quota_breakdown.py +4 -0
- office365/common/string_dictionary.py +7 -0
- office365/common/structured_data_entry.py +15 -0
- office365/common/structured_data_entry_typed_value.py +16 -0
- office365/common/structured_data_entry_value_type.py +21 -0
- office365/common/teamwork_hosted_content.py +3 -0
- office365/common/telecom_provider_settings.py +16 -0
- office365/common/temporary_access_pass_authentication_method_configuration.py +7 -0
- office365/common/unit_map.py +2 -0
- office365/common/user_configuration.py +33 -0
- office365/common/verifiable_credential_authentication_method_target.py +2 -0
- office365/common/verifiable_credentials_authentication_method_configuration.py +2 -0
- office365/common/voice_authentication_method_configuration.py +10 -0
- office365/common/web_app.py +3 -0
- office365/common/what_if_analysis_result.py +5 -10
- office365/communications/aad_user_conversation_member_result.py +0 -3
- office365/communications/aad_user_notification_recipient.py +0 -3
- office365/communications/accept_join_response.py +0 -3
- office365/communications/adhoc_call.py +3 -0
- office365/communications/app_hosted_media_config.py +0 -3
- office365/communications/application_identity.py +0 -3
- office365/communications/application_instance_identity.py +0 -3
- office365/communications/attendance_interval.py +0 -2
- office365/communications/audio_conferencing.py +1 -2
- office365/communications/azure_communication_services_user_identity.py +0 -3
- office365/communications/broadcast_meeting_caption_settings.py +1 -2
- office365/communications/call_participant_info.py +1 -2
- office365/communications/callrecords/administrative_unit_info.py +0 -3
- office365/communications/callrecords/call_record.py +21 -25
- office365/communications/callrecords/client_user_agent.py +0 -3
- office365/communications/callrecords/collection.py +6 -0
- office365/communications/callrecords/device_info.py +0 -3
- office365/communications/callrecords/direct_routing_log_row.py +0 -2
- office365/communications/callrecords/endpoint.py +1 -2
- office365/communications/callrecords/failure_info.py +0 -3
- office365/communications/callrecords/feedback_token_set.py +0 -3
- office365/communications/callrecords/media.py +1 -2
- office365/communications/callrecords/media_stream.py +0 -2
- office365/communications/callrecords/network_info.py +1 -2
- office365/communications/callrecords/participant_base.py +5 -18
- office365/communications/callrecords/participant_endpoint.py +1 -2
- office365/communications/callrecords/pstn_call_log_row.py +0 -2
- office365/communications/callrecords/segment.py +10 -9
- office365/communications/callrecords/service_endpoint.py +0 -3
- office365/communications/callrecords/service_user_agent.py +0 -3
- office365/communications/callrecords/session.py +8 -6
- office365/communications/callrecords/trace_route_hop.py +0 -2
- office365/communications/callrecords/user_agent.py +0 -3
- office365/communications/callrecords/user_feedback.py +1 -2
- office365/communications/callrecords/user_identity.py +0 -3
- office365/communications/calls/ai_insight.py +12 -16
- office365/communications/calls/ai_insight_view_point.py +1 -2
- office365/communications/calls/audio_routing_group.py +5 -7
- office365/communications/calls/call.py +37 -17
- office365/communications/calls/collection.py +2 -0
- office365/communications/calls/ended_event_message_detail.py +1 -2
- office365/communications/calls/event.py +5 -3
- office365/communications/calls/incoming_context.py +1 -2
- office365/communications/calls/invitation_participant_info.py +1 -2
- office365/communications/calls/media_state.py +0 -3
- office365/communications/calls/options.py +0 -3
- office365/communications/calls/participant.py +19 -13
- office365/communications/calls/participant_info.py +1 -2
- office365/communications/calls/recording_event_message_detail.py +1 -2
- office365/communications/calls/route.py +1 -2
- office365/communications/calls/started_event_message_detail.py +1 -2
- office365/communications/calls/transcript.py +10 -0
- office365/communications/calls/transcript_event_message_detail.py +1 -2
- office365/communications/calls/transcription_info.py +0 -2
- office365/communications/chat_members_notification_recipient.py +0 -3
- office365/communications/chat_renamed_event_message_detail.py +1 -2
- office365/communications/chat_restrictions.py +0 -3
- office365/communications/cloud_communications.py +55 -5
- office365/communications/comms_notification.py +0 -3
- office365/communications/comms_notifications.py +1 -2
- office365/communications/conversation_member_role_updated_event_message_detail.py +1 -2
- office365/communications/emergency_caller_info.py +1 -2
- office365/communications/encrypted_identity.py +0 -3
- office365/communications/engagement_identity_set.py +1 -2
- office365/communications/guest_identity.py +0 -3
- office365/communications/incoming_call_options.py +0 -3
- office365/communications/invite_new_bot_response.py +0 -3
- office365/communications/join_meeting_id_settings.py +0 -3
- office365/communications/media_config.py +0 -3
- office365/communications/media_info.py +0 -3
- office365/communications/media_prompt.py +1 -2
- office365/communications/meetings/join_meeting_id_info.py +0 -3
- office365/communications/onlinemeetings/attendance_record.py +21 -16
- office365/communications/onlinemeetings/attendee_notification_info.py +0 -3
- office365/communications/onlinemeetings/base.py +41 -25
- office365/communications/onlinemeetings/broadcast_settings.py +1 -2
- office365/communications/onlinemeetings/collection.py +34 -3
- office365/communications/onlinemeetings/engagement_conversation.py +8 -8
- office365/communications/onlinemeetings/lobby_bypass_settings.py +0 -3
- office365/communications/onlinemeetings/meeting_attendance_report.py +7 -7
- office365/communications/onlinemeetings/online_meeting.py +20 -9
- office365/communications/onlinemeetings/online_meeting_info.py +1 -2
- office365/communications/onlinemeetings/participant_info.py +1 -2
- office365/communications/onlinemeetings/participants.py +1 -2
- office365/communications/onlinemeetings/recordings/call.py +10 -1
- office365/communications/onlinemeetings/restricted.py +0 -3
- office365/communications/onlinemeetings/sensitivity_label_assignment.py +0 -3
- office365/communications/onlinemeetings/watermark_protection_values.py +0 -3
- office365/communications/operations/comms.py +8 -10
- office365/communications/operations/invite_participants.py +3 -1
- office365/communications/organizer_meeting_info.py +1 -2
- office365/communications/out_of_office_settings.py +0 -3
- office365/communications/outgoing_call_options.py +0 -3
- office365/communications/participant_joining_response.py +0 -3
- office365/communications/phone_identity.py +0 -3
- office365/communications/presences/presence.py +16 -9
- office365/communications/presences/status_message.py +1 -2
- office365/communications/quotas.py +136 -6
- office365/communications/recording_info.py +1 -2
- office365/communications/reject_join_response.py +0 -3
- office365/communications/removed_state.py +0 -3
- office365/communications/result_info.py +0 -3
- office365/communications/service_hosted_media_config.py +1 -2
- office365/communications/teleconference_device_audio_quality.py +0 -3
- office365/communications/teleconference_device_media_quality.py +0 -2
- office365/communications/teleconference_device_screen_sharing_quality.py +0 -3
- office365/communications/teleconference_device_video_quality.py +0 -3
- office365/communications/teleconferencedevicequality.py +1 -2
- office365/communications/token_meeting_info.py +0 -3
- office365/communications/tone_info.py +0 -3
- office365/communications/user_identity.py +0 -3
- office365/communications/user_work_location.py +0 -3
- office365/communications/virtualevents/communications_identity_set.py +1 -2
- office365/communications/virtualevents/external_information.py +0 -3
- office365/communications/virtualevents/external_registration_information.py +0 -3
- office365/communications/virtualevents/presenter.py +7 -13
- office365/communications/virtualevents/presenter_details.py +1 -2
- office365/communications/virtualevents/presenter_info.py +1 -2
- office365/communications/virtualevents/registration.py +18 -21
- office365/communications/virtualevents/registration_configuration.py +6 -0
- office365/communications/virtualevents/registration_custom_question.py +6 -11
- office365/communications/virtualevents/registration_predefined_question.py +5 -11
- office365/communications/virtualevents/registration_question_answer.py +1 -2
- office365/communications/virtualevents/registration_question_base.py +3 -0
- office365/communications/virtualevents/root.py +4 -0
- office365/communications/virtualevents/session.py +7 -8
- office365/communications/virtualevents/settings.py +0 -3
- office365/communications/virtualevents/townhall.py +11 -9
- office365/communications/virtualevents/virtual_event.py +20 -30
- office365/communications/virtualevents/webinar.py +7 -6
- office365/copilot/action_item.py +0 -3
- office365/copilot/action_result_part.py +1 -2
- office365/copilot/admin_catalog.py +2 -0
- office365/copilot/admin_limited_mode.py +3 -0
- office365/copilot/admin_setting.py +2 -0
- office365/copilot/ai_agent_info.py +0 -3
- office365/{common → copilot}/ai_interaction.py +23 -24
- office365/copilot/ai_interaction_attachment.py +0 -3
- office365/copilot/ai_interaction_context.py +0 -3
- office365/copilot/ai_interaction_entity.py +0 -3
- office365/copilot/ai_interaction_link.py +0 -3
- office365/copilot/ai_interaction_mention.py +1 -2
- office365/copilot/ai_interaction_mentioned_identity_set.py +1 -2
- office365/copilot/ai_interaction_plugin.py +0 -3
- office365/copilot/ai_online_meeting.py +2 -0
- office365/copilot/ai_user.py +3 -0
- office365/copilot/package.py +30 -26
- office365/copilot/package_access_entity.py +0 -3
- office365/copilot/package_detail.py +23 -13
- office365/copilot/package_element.py +1 -2
- office365/copilot/package_element_detail.py +1 -2
- office365/copilot/package_request_info.py +24 -0
- office365/copilot/package_request_metadata.py +17 -0
- office365/copilot/package_request_principal.py +13 -0
- office365/copilot/package_request_principal_type.py +15 -0
- office365/copilot/root.py +3 -0
- office365/count_collection.py +2 -2
- office365/directory/administrative_unit.py +12 -1
- office365/directory/allowed_value.py +2 -0
- office365/directory/application_resource_permission.py +0 -3
- office365/directory/applications/all_allowed_scopes.py +0 -3
- office365/directory/applications/api.py +1 -2
- office365/directory/applications/app_identity.py +0 -3
- office365/directory/applications/application.py +45 -6
- office365/directory/applications/application_risk_factors.py +1 -2
- office365/directory/applications/application_risk_score.py +0 -3
- office365/directory/applications/applications_required_resource_access.py +1 -2
- office365/directory/applications/collection.py +5 -0
- office365/directory/applications/custom_security_attribute_exemption.py +0 -3
- office365/directory/applications/custom_security_attribute_string_value_exemption.py +0 -3
- office365/directory/applications/enumerated_scopes.py +1 -2
- office365/directory/applications/identifier_uri_restriction.py +1 -2
- office365/directory/applications/inheritable_scopes.py +0 -3
- office365/directory/applications/instance_resource_access.py +1 -2
- office365/directory/applications/key_credential_configuration.py +1 -2
- office365/directory/applications/location.py +0 -3
- office365/directory/applications/no_scopes.py +0 -3
- office365/directory/applications/optional_claims.py +4 -2
- office365/directory/applications/parentalcontrolsettings.py +0 -3
- office365/directory/applications/password_credential_configuration.py +1 -2
- office365/directory/applications/public_client.py +1 -2
- office365/directory/applications/requestsignatureverification.py +0 -3
- office365/directory/applications/required_resource_access.py +1 -2
- office365/directory/applications/resource_access.py +0 -3
- office365/directory/applications/resource_permission.py +0 -3
- office365/directory/applications/riskfactors/certificate_info.py +0 -3
- office365/directory/applications/riskfactors/general_info.py +1 -2
- office365/directory/applications/riskfactors/legal_info.py +1 -2
- office365/directory/applications/riskfactors/legal_info_gdpr.py +0 -3
- office365/directory/applications/riskfactors/security_info.py +1 -2
- office365/directory/applications/roles/assignment.py +9 -0
- office365/directory/applications/roles/collection.py +3 -1
- office365/directory/applications/roles/role.py +1 -2
- office365/directory/applications/security_compliance.py +0 -3
- office365/directory/applications/spa.py +1 -2
- office365/directory/applications/template.py +18 -0
- office365/directory/applications/verifiedpublisher.py +0 -2
- office365/directory/applications/web.py +1 -2
- office365/directory/approval_settings.py +1 -2
- office365/directory/attribute_rule_members.py +0 -3
- office365/directory/audit/activity_initiator.py +1 -2
- office365/directory/audit/directory.py +9 -0
- office365/directory/audit/initiator.py +0 -3
- office365/directory/audit/log_root.py +4 -1
- office365/directory/audit/logs/recordtype.py +36 -0
- office365/directory/audit/provisioning/errorinfo.py +0 -3
- office365/directory/audit/provisioning/object_summary.py +18 -7
- office365/directory/audit/provisioning/provisionedidentity.py +1 -2
- office365/directory/audit/provisioning/statusinfo.py +1 -2
- office365/directory/audit/provisioning/step.py +1 -2
- office365/directory/audit/provisioning/system.py +1 -2
- office365/directory/audit/signins/activity.py +0 -2
- office365/directory/audit/signins/authentication_app_device_details.py +0 -3
- office365/directory/audit/signins/governance_insight.py +2 -0
- office365/directory/audit/signins/location.py +1 -2
- office365/directory/audit/signins/membership_outlier_insight.py +8 -0
- office365/directory/audit/signins/signin.py +29 -2
- office365/directory/audit/signins/status.py +0 -3
- office365/directory/audit/signins/user_sign_in_insight.py +2 -0
- office365/directory/audit/target_resource.py +1 -2
- office365/directory/authentication/attributecollection/external_users_self_service_sign_up.py +1 -2
- office365/directory/authentication/attributecollection/handler.py +0 -3
- office365/directory/authentication/attributecollection/input_configuration.py +1 -2
- office365/directory/authentication/attributecollection/method_load_start_handler.py +0 -3
- office365/directory/authentication/attributecollection/option_configuration.py +0 -3
- office365/directory/authentication/attributecollection/page.py +1 -2
- office365/directory/authentication/attributecollection/page_view_configuration.py +1 -2
- office365/directory/authentication/attributecollection/start_custom_extension_handler.py +1 -2
- office365/directory/authentication/attributecollection/start_handler.py +0 -3
- office365/directory/authentication/attributecollection/submit_custom_extension_handler.py +1 -2
- office365/directory/authentication/attributecollection/submit_handler.py +0 -3
- office365/directory/authentication/authentication.py +32 -5
- office365/directory/authentication/azure_ad_token_authentication.py +0 -3
- office365/directory/authentication/behaviors.py +0 -3
- office365/directory/authentication/client_certificate.py +1 -2
- office365/directory/authentication/conditions/application.py +3 -0
- office365/directory/authentication/conditions/conditions.py +1 -2
- office365/directory/authentication/conditions/event_listener.py +6 -10
- office365/directory/authentication/configuration/base.py +1 -2
- office365/directory/authentication/configuration/validation.py +1 -2
- office365/directory/authentication/fido2keyrestrictions.py +0 -3
- office365/directory/authentication/fraud_protection_configuration.py +0 -3
- office365/directory/authentication/fraud_protection_provider.py +2 -0
- office365/directory/authentication/fraud_protection_provider_configuration.py +0 -2
- office365/directory/authentication/include_target.py +0 -3
- office365/directory/authentication/methods/configuration.py +3 -0
- office365/directory/authentication/methods/details.py +16 -0
- office365/directory/authentication/methods/email.py +2 -0
- office365/directory/authentication/methods/excludetarget.py +0 -3
- office365/directory/authentication/methods/featureconfiguration.py +1 -2
- office365/directory/authentication/methods/featuretarget.py +0 -3
- office365/directory/authentication/methods/fido.py +13 -20
- office365/directory/authentication/methods/method.py +6 -0
- office365/directory/authentication/methods/microsoft_authenticator.py +5 -0
- office365/directory/authentication/methods/microsoftauthenticatorfeaturesettings.py +1 -2
- office365/directory/authentication/methods/mode_detail.py +3 -0
- office365/directory/authentication/methods/password.py +1 -0
- office365/directory/authentication/methods/phone.py +15 -14
- office365/directory/authentication/methods/registrationcampaign.py +1 -2
- office365/directory/authentication/methods/registrationcampaignincludetarget.py +0 -3
- office365/directory/authentication/methods/registrationenforcement.py +1 -2
- office365/directory/authentication/methods/resource_account_key_authentication_method.py +30 -0
- office365/directory/authentication/methods/root.py +10 -1
- office365/directory/authentication/methods/sms.py +17 -0
- office365/directory/authentication/methods/target.py +3 -0
- office365/directory/authentication/oidc_address_inbound_claims.py +0 -3
- office365/directory/authentication/oidc_client_authentication.py +0 -3
- office365/directory/authentication/oidc_client_secret_authentication.py +0 -3
- office365/directory/authentication/oidc_inbound_claim_mapping_override.py +1 -2
- office365/directory/authentication/oidc_private_jwt_key_client_authentication.py +0 -3
- office365/directory/authentication/open_id_connect_setting.py +0 -3
- office365/directory/authentication/password_reset_response.py +0 -3
- office365/directory/authentication/platform_credential_authentication_method.py +7 -14
- office365/directory/authentication/qr_code_image_details.py +0 -3
- office365/directory/authentication/signing_certificate_update_status.py +1 -2
- office365/directory/authentication/strength/root.py +4 -0
- office365/directory/authentication/strength/usage.py +1 -2
- office365/directory/authentication/temporary_access_pass_authentication_method.py +7 -0
- office365/directory/authentication/webauthn_authentication_extensions_client_inputs.py +0 -3
- office365/directory/authentication/webauthn_authentication_extensions_client_outputs.py +0 -3
- office365/directory/authentication/webauthn_authenticator_attestation_response.py +0 -3
- office365/directory/authentication/webauthn_authenticator_selection_criteria.py +0 -3
- office365/directory/authentication/webauthn_credential_creation_options.py +1 -2
- office365/directory/authentication/webauthn_public_key_credential.py +1 -2
- office365/directory/authentication/webauthn_public_key_credential_creation_options.py +1 -2
- office365/directory/authentication/webauthn_public_key_credential_descriptor.py +1 -2
- office365/directory/authentication/webauthn_public_key_credential_parameters.py +0 -3
- office365/directory/authentication/webauthn_public_key_credential_rp_entity.py +0 -3
- office365/directory/authentication/webauthn_public_key_credential_user_entity.py +0 -3
- office365/directory/authentication/windows_hello_for_business_authentication_method.py +5 -7
- office365/directory/b2b_registration_metrics.py +3 -0
- office365/directory/b2b_registration_metrics_initial.py +2 -0
- office365/directory/b2b_registration_metrics_recent.py +2 -0
- office365/directory/b2b_sign_in_activity_metrics.py +3 -0
- office365/directory/b2b_sign_in_activity_metrics_initial.py +2 -0
- office365/directory/b2b_sign_in_activity_metrics_recent.py +2 -0
- office365/directory/certificates/auth_configuration.py +2 -0
- office365/directory/certificates/auth_pki.py +6 -0
- office365/directory/certificates/authority.py +0 -3
- office365/directory/certificates/authority_detail.py +14 -8
- office365/directory/certificates/certification.py +0 -2
- office365/directory/certificates/pkcs12_certificate.py +0 -3
- office365/directory/certificates/pkcs12_information.py +0 -3
- office365/directory/certificates/public_key_infrastructure_root.py +2 -0
- office365/directory/certificates/self_signed.py +0 -2
- office365/directory/certificates/x509/authentication_method_configuration.py +14 -35
- office365/directory/certificates/x509/authenticationmodeconfiguration.py +1 -2
- office365/directory/certificates/x509/authority_scope.py +1 -2
- office365/directory/certificates/x509/combination_configuration.py +3 -0
- office365/directory/certificates/x509/crlvalidationconfiguration.py +0 -3
- office365/directory/certificates/x509/issuer_hints_configuration.py +0 -3
- office365/directory/certificates/x509/rule.py +0 -3
- office365/directory/certificates/x509/userbinding.py +0 -3
- office365/directory/claim_binding.py +0 -3
- office365/directory/claim_validation.py +0 -3
- office365/directory/connected_organization_members.py +0 -3
- office365/directory/connection_info.py +0 -3
- office365/directory/credential.py +0 -1
- office365/directory/cross_cloud_azure_active_directory_tenant.py +0 -3
- office365/directory/cross_tenant_migration_cancel_response.py +12 -0
- office365/directory/cross_tenant_migration_job.py +121 -0
- office365/directory/cross_tenant_migration_job_status.py +29 -0
- office365/directory/cross_tenant_migration_job_type.py +13 -0
- office365/directory/cross_tenant_migration_service_status.py +24 -0
- office365/directory/cross_tenant_migration_service_status_details.py +19 -0
- office365/directory/cross_tenant_migration_task.py +36 -0
- office365/directory/custom_security_attribute_definition.py +10 -0
- office365/directory/datapolicy/operation.py +7 -0
- office365/directory/delegated_administration_role_assignment.py +1 -2
- office365/directory/delegated_administration_role_assignment_snapshot.py +1 -2
- office365/directory/delegatedadmin/access_assignment.py +10 -24
- office365/directory/delegatedadmin/access_container.py +0 -3
- office365/directory/delegatedadmin/access_details.py +1 -2
- office365/directory/delegatedadmin/customer.py +4 -0
- office365/directory/delegatedadmin/relationship.py +20 -22
- office365/directory/delegatedadmin/relationship_customer_participant.py +0 -3
- office365/directory/delegatedadmin/relationship_operation.py +9 -17
- office365/directory/delegatedadmin/relationship_request.py +8 -17
- office365/directory/delegatedadmin/service_management_detail.py +3 -0
- office365/directory/delegatedadmin/service_provider_constraints.py +4 -0
- office365/directory/device_local_credential_info.py +9 -8
- office365/directory/directory.py +11 -4
- office365/directory/domains/dns_cname_record.py +2 -0
- office365/directory/domains/dns_record.py +6 -0
- office365/directory/domains/domain.py +29 -4
- office365/directory/domains/internal_domain_federation.py +15 -23
- office365/directory/drifted_property.py +1 -2
- office365/directory/entity_type_and_ids.py +1 -2
- office365/directory/exchange_online_cross_tenant_migration_settings.py +12 -0
- office365/directory/extensions/custom/callbackconfiguration.py +0 -2
- office365/directory/extensions/custom/calloutrequest.py +1 -2
- office365/directory/extensions/custom/calloutresponse.py +1 -2
- office365/directory/extensions/custom/clientconfiguration.py +0 -3
- office365/directory/extensions/custom/http_request_endpoint.py +0 -3
- office365/directory/extensions/extended_property.py +3 -0
- office365/directory/extensions/extension_property.py +7 -0
- office365/directory/extensions/open_type.py +2 -0
- office365/directory/extensions/schema.py +5 -0
- office365/directory/extensions/schema_property.py +0 -3
- office365/directory/external_domain_federation.py +0 -3
- office365/directory/external_sponsors.py +0 -3
- office365/directory/external_token_based_sap_iag_connection_info.py +0 -3
- office365/directory/governance_invitation.py +7 -0
- office365/directory/governance_relationship.py +13 -14
- office365/directory/governance_request.py +12 -6
- office365/directory/groups/assigned_label.py +0 -3
- office365/directory/groups/collection.py +1 -1
- office365/directory/groups/group.py +78 -19
- office365/directory/groups/group_members.py +0 -3
- office365/directory/groups/lifecycle_policy.py +7 -0
- office365/directory/groups/on_premises_sync_behavior.py +2 -0
- office365/directory/groups/profile.py +1 -2
- office365/directory/groups/setting.py +6 -6
- office365/directory/groups/setting_template.py +6 -8
- office365/directory/groups/setting_template_value.py +0 -3
- office365/directory/identities/api_connector.py +6 -0
- office365/directory/identities/application_context.py +1 -2
- office365/directory/identities/application_enforced_restrictions_session_control.py +0 -3
- office365/directory/identities/assignment_order.py +1 -2
- office365/directory/identities/auth_context.py +0 -3
- office365/directory/identities/authentication_events_flow.py +6 -10
- office365/directory/identities/authentication_flow.py +0 -3
- office365/directory/identities/b2x_identity_user_flow.py +9 -7
- office365/directory/identities/conditional_access_root.py +7 -0
- office365/directory/identities/conditional_access_session_control.py +0 -3
- office365/directory/identities/conditional_access_template.py +8 -17
- office365/directory/identities/container.py +16 -6
- office365/directory/identities/country_named_location.py +4 -0
- office365/directory/identities/ip_range.py +0 -3
- office365/directory/identities/named_location.py +5 -0
- office365/directory/identities/object_identity.py +0 -3
- office365/directory/identities/on_fraud_protection_load_start_external_users_auth_handler.py +1 -2
- office365/directory/identities/on_interactive_auth_flow_start_external_users_self_service_sign_up.py +0 -3
- office365/directory/identities/on_interactive_auth_flow_start_handler.py +0 -3
- office365/directory/identities/on_otp_send_custom_extension_handler.py +1 -2
- office365/directory/identities/on_otp_send_handler.py +0 -3
- office365/directory/identities/on_password_migration_custom_extension_handler.py +1 -2
- office365/directory/identities/on_password_submit_handler.py +0 -3
- office365/directory/identities/on_token_issuance_start_custom_extension.py +3 -11
- office365/directory/identities/on_token_issuance_start_custom_extension_handler.py +1 -2
- office365/directory/identities/on_token_issuance_start_handler.py +0 -3
- office365/directory/identities/on_token_issuance_start_return_claim.py +0 -3
- office365/directory/identities/on_user_create_start_external_users_self_service_sign_up.py +0 -3
- office365/directory/identities/on_user_create_start_handler.py +0 -3
- office365/directory/identities/on_verified_id_claim_validation_custom_extension_handler.py +1 -2
- office365/directory/identities/on_verified_id_claim_validation_handler.py +0 -3
- office365/directory/identities/provider.py +5 -0
- office365/directory/identities/provider_collection.py +2 -0
- office365/directory/identities/providers/base.py +2 -0
- office365/directory/identities/providers/base_collection.py +2 -0
- office365/directory/identities/providers/builtin_identity.py +2 -0
- office365/directory/identities/providers/on_authentication_method_load_start_external_users_self_service_sign_up.py +0 -3
- office365/directory/identities/providers/on_fraud_protection_load_start_handler.py +0 -3
- office365/directory/identities/providers/saml_or_wsfed.py +8 -6
- office365/directory/identities/providers/social_identity.py +4 -0
- office365/directory/identities/riskPrevention/akamai_attack_group_action_model.py +0 -3
- office365/directory/identities/riskPrevention/akamai_custom_rule_model.py +0 -3
- office365/directory/identities/riskPrevention/akamai_rapid_rules_model.py +0 -3
- office365/directory/identities/riskPrevention/akamai_verified_details_model.py +1 -2
- office365/directory/identities/riskPrevention/container.py +4 -0
- office365/directory/identities/riskPrevention/web_application_firewall_dns_configuration.py +0 -3
- office365/directory/identities/riskPrevention/web_application_firewall_verification_result.py +1 -2
- office365/directory/identities/riskPrevention/web_application_firewall_verified_details.py +1 -2
- office365/directory/identities/sign_in_context.py +0 -3
- office365/directory/identities/userflows/attribute.py +8 -17
- office365/directory/identities/userflows/b2x/user_flow.py +3 -2
- office365/directory/identities/userflows/language_configuration.py +4 -2
- office365/directory/identities/userflows/user_attribute_assignment.py +9 -14
- office365/directory/identities/userflows/user_attribute_values_item.py +0 -3
- office365/directory/identities/userflows/user_flow.py +5 -6
- office365/directory/identities/userflows/user_flow_api_connector_configuration.py +0 -3
- office365/directory/identities/verified_id_root.py +2 -0
- office365/directory/identities/web_application_firewall_provider.py +2 -0
- office365/directory/identities/web_application_firewall_verification_model.py +15 -21
- office365/directory/identity_set.py +1 -2
- office365/directory/identitygovernance/access_package_suggestion.py +6 -7
- office365/directory/identitygovernance/accessreview/context_data.py +0 -3
- office365/directory/identitygovernance/accessreview/context_data_base.py +0 -3
- office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_session_request.py +1 -2
- office365/directory/identitygovernance/accessreview/custom_data_provided_resource_upload_stats.py +0 -3
- office365/directory/identitygovernance/accessreview/disable_and_delete_user_apply_action.py +0 -3
- office365/directory/identitygovernance/accessreview/error.py +0 -3
- office365/directory/identitygovernance/accessreview/history/definition.py +16 -11
- office365/directory/identitygovernance/accessreview/history_instance.py +8 -0
- office365/directory/identitygovernance/accessreview/history_schedule_settings.py +1 -2
- office365/directory/identitygovernance/accessreview/inactive_users_query_scope.py +0 -2
- office365/directory/identitygovernance/accessreview/instance.py +14 -21
- office365/directory/identitygovernance/accessreview/instance_decision_item.py +23 -14
- office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_assignment_policy_resource.py +0 -3
- office365/directory/identitygovernance/accessreview/instance_decision_item_access_package_resource.py +0 -3
- office365/directory/identitygovernance/accessreview/instance_decision_item_azure_role_resource.py +1 -2
- office365/directory/identitygovernance/accessreview/instance_decision_item_custom_data_provided_resource.py +0 -3
- office365/directory/identitygovernance/accessreview/instance_decision_item_permission.py +0 -3
- office365/directory/identitygovernance/accessreview/instance_decision_item_resource.py +0 -3
- office365/directory/identitygovernance/accessreview/instance_decision_item_service_principal_resource.py +0 -3
- office365/directory/identitygovernance/accessreview/notification_recipient_item.py +1 -2
- office365/directory/identitygovernance/accessreview/notification_recipient_query_scope.py +0 -3
- office365/directory/identitygovernance/accessreview/principal_resource_memberships_scope.py +1 -2
- office365/directory/identitygovernance/accessreview/principal_scope.py +0 -3
- office365/directory/identitygovernance/accessreview/query_scope.py +0 -3
- office365/directory/identitygovernance/accessreview/recommendation_insight_setting.py +0 -3
- office365/directory/identitygovernance/accessreview/remove_access_apply_action.py +0 -3
- office365/directory/identitygovernance/accessreview/resource_scope.py +0 -3
- office365/directory/identitygovernance/accessreview/reviewer.py +4 -0
- office365/directory/identitygovernance/accessreview/reviewer_scope.py +0 -3
- office365/directory/identitygovernance/accessreview/schedule_definition.py +22 -28
- office365/directory/identitygovernance/accessreview/set.py +3 -1
- office365/directory/identitygovernance/accessreview/stage.py +9 -14
- office365/directory/identitygovernance/accessreview/stage_settings.py +1 -2
- office365/directory/identitygovernance/accessreview/target_owners.py +1 -2
- office365/directory/identitygovernance/activate_group_scope.py +0 -3
- office365/directory/identitygovernance/activate_processing_result_scope.py +0 -3
- office365/directory/identitygovernance/activate_run_scope.py +0 -3
- office365/directory/identitygovernance/activate_user_scope.py +0 -3
- office365/directory/identitygovernance/activities_container.py +2 -0
- office365/directory/identitygovernance/appconsent/approval_route.py +2 -0
- office365/directory/identitygovernance/appconsent/approval_stage.py +8 -0
- office365/directory/identitygovernance/appconsent/request.py +3 -1
- office365/directory/identitygovernance/appconsent/request_collection.py +2 -0
- office365/directory/identitygovernance/apply_decision_context_data.py +0 -3
- office365/directory/identitygovernance/attribute_set_entry.py +0 -3
- office365/directory/identitygovernance/awaited_workflow_processing_result.py +1 -2
- office365/directory/identitygovernance/cancel_runs_scope.py +0 -3
- office365/directory/identitygovernance/cancel_scope.py +0 -3
- office365/directory/identitygovernance/content_activity.py +6 -10
- office365/directory/identitygovernance/content_base.py +0 -3
- office365/directory/identitygovernance/count_based_quarantine_condition.py +0 -3
- office365/directory/identitygovernance/custom_extension_resource_type.py +2 -0
- office365/directory/identitygovernance/custom_task_extension.py +8 -10
- office365/directory/identitygovernance/custom_task_extension_callout_data.py +1 -2
- office365/directory/identitygovernance/custom_task_extension_response_data.py +1 -2
- office365/directory/identitygovernance/data.py +0 -3
- office365/directory/identitygovernance/data_security_and_governance.py +2 -0
- office365/directory/identitygovernance/deleted_item_container.py +2 -0
- office365/directory/identitygovernance/directory_object_workflow_subject.py +0 -3
- office365/directory/identitygovernance/emailsettings.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_choice.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/answer_string.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/approval_stage.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment.py +14 -17
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_approval_settings.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_policy.py +35 -42
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_policy_scope.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request.py +23 -31
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_callback_data.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_parameters.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_requirements.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_request_workflow_extension.py +6 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_requestor_settings.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_review_settings.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/assignment_workflow_extension.py +6 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/automatic_request_settings.py +0 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/catalog.py +13 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_file.py +4 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_data_provided_resource_upload_session.py +15 -17
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/custom_extension_callout_instance.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/dynamic_approval_stage.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/expiration_pattern.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/localized_text.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/multiple_choice_question.py +7 -10
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/notification_settings.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/package.py +50 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/question.py +10 -10
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/request_approval_stage_callback_configuration.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource.py +16 -7
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_destination.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_question.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_attribute_source.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_environment.py +11 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_request.py +6 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_role.py +8 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_role_scope.py +4 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/resource_scope.py +7 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/subject.py +12 -7
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_reason.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_related_people_based.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/suggestion_self_assignment_history_based.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/text_input_question.py +3 -0
- office365/directory/identitygovernance/entitlementmanagement/accesspackage/user_directory_attribute_store.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/assignment_request_approval_stage_callback_data.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/available_access_package.py +4 -0
- office365/directory/identitygovernance/entitlementmanagement/azure_active_directory_tenant.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/connected_organization.py +11 -10
- office365/directory/identitygovernance/entitlementmanagement/control_configuration.py +6 -0
- office365/directory/identitygovernance/entitlementmanagement/custom_extension_behavior_on_error.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/custom_extension_overwrite_configuration.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/domain_identity_source.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/entitlement_management.py +18 -0
- office365/directory/identitygovernance/entitlementmanagement/external_origin_resource_connector.py +12 -7
- office365/directory/identitygovernance/entitlementmanagement/fallback_to_microsoft_provider_on_error.py +0 -3
- office365/directory/identitygovernance/entitlementmanagement/identity_source.py +5 -4
- office365/directory/identitygovernance/entitlementmanagement/management_settings.py +3 -0
- office365/directory/identitygovernance/entitlementmanagement/schedule.py +1 -2
- office365/directory/identitygovernance/entitlementmanagement/social_identity_source.py +0 -3
- office365/directory/identitygovernance/governance.py +8 -0
- office365/directory/identitygovernance/guest_sponsor_trigger.py +0 -3
- office365/directory/identitygovernance/lifecycle_management_settings.py +6 -10
- office365/directory/identitygovernance/lifecycle_workflows_container.py +8 -0
- office365/directory/identitygovernance/parameter.py +1 -2
- office365/directory/identitygovernance/percentage_based_quarantine_condition.py +0 -3
- office365/directory/identitygovernance/preview_failed_task.py +0 -3
- office365/directory/identitygovernance/privilegedaccess/approval.py +2 -0
- office365/directory/identitygovernance/privilegedaccess/group.py +9 -0
- office365/directory/identitygovernance/privilegedaccess/group_assignment_schedule.py +9 -0
- office365/directory/identitygovernance/privilegedaccess/group_assignment_schedule_request.py +9 -0
- office365/directory/identitygovernance/privilegedaccess/group_eligibility_schedule.py +7 -0
- office365/directory/identitygovernance/privilegedaccess/group_eligibility_schedule_instance.py +8 -0
- office365/directory/identitygovernance/privilegedaccess/group_eligibility_schedule_request.py +8 -0
- office365/directory/identitygovernance/privilegedaccess/role_management_custom_callout_extension.py +13 -17
- office365/directory/identitygovernance/privilegedaccess/root.py +3 -0
- office365/directory/identitygovernance/privilegedaccess/schedule/group_assignment_instance.py +10 -0
- office365/directory/identitygovernance/privilegedaccess/schedule/instance.py +3 -0
- office365/directory/identitygovernance/privilegedaccess/schedule/schedule.py +8 -6
- office365/directory/identitygovernance/privilegedaccess/schedule_request.py +9 -9
- office365/directory/identitygovernance/process_content_metadata_base.py +6 -2
- office365/directory/identitygovernance/provisioning_attribute_mapping.py +0 -3
- office365/directory/identitygovernance/provisioning_object_workflow_subject.py +1 -2
- office365/directory/identitygovernance/quarantine_condition.py +0 -3
- office365/directory/identitygovernance/quarantine_configuration.py +1 -2
- office365/directory/identitygovernance/quarantine_details.py +1 -2
- office365/directory/identitygovernance/resource_access_detail.py +0 -3
- office365/directory/identitygovernance/rulebasedsubjectset.py +0 -3
- office365/directory/identitygovernance/run.py +18 -0
- office365/directory/identitygovernance/runsummary.py +0 -3
- office365/directory/identitygovernance/subject_processing_result.py +18 -22
- office365/directory/identitygovernance/subject_summary.py +0 -3
- office365/directory/identitygovernance/task.py +10 -0
- office365/directory/identitygovernance/task_definition.py +7 -0
- office365/directory/identitygovernance/task_processing_result.py +12 -8
- office365/directory/identitygovernance/task_report.py +13 -0
- office365/directory/identitygovernance/taskreportsummary.py +0 -3
- office365/directory/identitygovernance/termsofuse/agreement.py +11 -10
- office365/directory/identitygovernance/termsofuse/agreement_acceptance.py +14 -0
- office365/directory/identitygovernance/termsofuse/agreement_file.py +2 -0
- office365/directory/identitygovernance/termsofuse/agreement_file_data.py +0 -3
- office365/directory/identitygovernance/termsofuse/agreement_file_localization.py +2 -0
- office365/directory/identitygovernance/termsofuse/agreement_file_properties.py +10 -10
- office365/directory/identitygovernance/termsofuse/container.py +3 -0
- office365/directory/identitygovernance/termsofuse/terms_expiration.py +1 -2
- office365/directory/identitygovernance/text_content.py +0 -3
- office365/directory/identitygovernance/timebasedattributetrigger.py +0 -3
- office365/directory/identitygovernance/toptasksinsightssummary.py +0 -3
- office365/directory/identitygovernance/topworkflowsinsightssummary.py +0 -3
- office365/directory/identitygovernance/triggerandscopebasedconditions.py +4 -2
- office365/directory/identitygovernance/user_data_security_and_governance.py +3 -0
- office365/directory/identitygovernance/user_inactivity_trigger.py +0 -3
- office365/directory/identitygovernance/user_processing_result.py +13 -0
- office365/directory/identitygovernance/userconsent/request.py +3 -0
- office365/directory/identitygovernance/userconsent/request_collection.py +2 -0
- office365/directory/identitygovernance/usersprocessingsummary.py +0 -3
- office365/directory/identitygovernance/usersummary.py +0 -3
- office365/directory/identitygovernance/workflow/attributechangetrigger.py +1 -2
- office365/directory/identitygovernance/workflow/base.py +16 -6
- office365/directory/identitygovernance/workflow/custom_callout_extension.py +6 -0
- office365/directory/identitygovernance/workflow/custom_extension_stage_setting.py +3 -0
- office365/directory/identitygovernance/workflow/customtaskextensioncallbackdata.py +0 -3
- office365/directory/identitygovernance/workflow/insightsbycategory.py +0 -3
- office365/directory/identitygovernance/workflow/insightssummary.py +0 -3
- office365/directory/identitygovernance/workflow/membershipchangetrigger.py +0 -3
- office365/directory/identitygovernance/workflow/setting.py +1 -2
- office365/directory/identitygovernance/workflow/subject.py +0 -3
- office365/directory/identitygovernance/workflow/template.py +6 -0
- office365/directory/identitygovernance/workflow/triggerattribute.py +0 -3
- office365/directory/identitygovernance/workflow/version.py +6 -8
- office365/directory/identitygovernance/workflow/workflow.py +14 -0
- office365/directory/inheritable_permission.py +6 -8
- office365/directory/insights/identity.py +0 -3
- office365/directory/insights/office_graph.py +4 -0
- office365/directory/insights/resource_reference.py +0 -3
- office365/directory/insights/shared.py +5 -8
- office365/directory/insights/sharing_detail.py +1 -2
- office365/directory/insights/trending.py +6 -7
- office365/directory/insights/usage_details.py +0 -2
- office365/directory/insights/used.py +4 -8
- office365/directory/internal/sponsors.py +0 -3
- office365/directory/invitations/collection.py +5 -0
- office365/directory/invitations/invitation.py +13 -1
- office365/directory/invitations/message_info.py +1 -2
- office365/directory/key_credential.py +0 -3
- office365/directory/licenses/assigned_license.py +1 -2
- office365/directory/licenses/assigned_plan.py +0 -2
- office365/directory/licenses/assignment_state.py +1 -2
- office365/directory/licenses/details.py +2 -0
- office365/directory/licenses/processing_state.py +0 -3
- office365/directory/licenses/service_plan_info.py +0 -3
- office365/directory/licenses/subscribed_sku.py +4 -0
- office365/directory/licenses/units_detail.py +0 -3
- office365/directory/migrations_root.py +30 -0
- office365/directory/modified_property.py +0 -3
- office365/directory/multi_tenant_application_metrics.py +3 -0
- office365/directory/multi_tenant_application_metrics_base.py +4 -0
- office365/directory/multi_tenant_application_metrics_initial.py +2 -0
- office365/directory/multi_tenant_application_metrics_recent.py +2 -0
- office365/directory/multi_tenant_applications_to_provision.py +1 -2
- office365/directory/multi_tenant_applications_to_provision_snapshot.py +1 -2
- office365/directory/multi_tenant_organization_identity_sync_policy_template.py +5 -18
- office365/directory/multi_tenant_organization_join_request_record.py +11 -24
- office365/directory/multi_tenant_organization_member.py +15 -24
- office365/directory/multi_tenant_organization_partner_configuration_template.py +12 -44
- office365/directory/o_auth_consent_app_detail.py +0 -3
- office365/directory/objects/addin.py +1 -2
- office365/directory/objects/collection.py +39 -0
- office365/directory/objects/informationalurl.py +0 -3
- office365/directory/objects/object.py +27 -0
- office365/directory/objects/onpremisesprovisioningerror.py +0 -2
- office365/directory/objects/service_provisioning_xml_error.py +0 -3
- office365/directory/objects/serviceprovisioningerror.py +0 -2
- office365/directory/on_premises_directory_synchronization.py +9 -18
- office365/directory/password_credential.py +0 -3
- office365/directory/permissions/checker.py +23 -13
- office365/directory/permissions/comment_action.py +1 -2
- office365/directory/permissions/create_action.py +0 -3
- office365/directory/permissions/delete_action.py +0 -3
- office365/directory/permissions/grants/condition_set.py +11 -6
- office365/directory/permissions/grants/oauth2.py +6 -0
- office365/directory/permissions/grants/resource_specific.py +6 -0
- office365/directory/permissions/grants/resourcespecificpermission.py +0 -2
- office365/directory/permissions/guard.py +36 -13
- office365/directory/permissions/identity.py +0 -3
- office365/directory/permissions/scope.py +0 -3
- office365/directory/permissions/scoped_role_membership.py +4 -0
- office365/directory/policies/admin_consent_request.py +9 -10
- office365/directory/policies/all_devices_assignment_target.py +0 -3
- office365/directory/policies/all_domains.py +0 -3
- office365/directory/policies/all_licensed_users_assignment_target.py +0 -3
- office365/directory/policies/app_management.py +5 -11
- office365/directory/policies/app_management_application_configuration.py +1 -2
- office365/directory/policies/app_management_configuration.py +1 -2
- office365/directory/policies/app_management_policy_actor_exemptions.py +1 -2
- office365/directory/policies/app_management_service_principal_configuration.py +0 -3
- office365/directory/policies/applied_conditional_access.py +1 -2
- office365/directory/policies/authentication_combination_configuration.py +2 -0
- office365/directory/policies/authentication_context_class_reference.py +4 -0
- office365/directory/policies/authentication_flows.py +8 -10
- office365/directory/policies/authentication_methods.py +9 -0
- office365/directory/policies/authentication_strength.py +14 -0
- office365/directory/policies/authorization.py +9 -0
- office365/directory/policies/azure_ad_registration_policy.py +1 -2
- office365/directory/policies/base.py +3 -0
- office365/directory/policies/ca_policies_deletable_root.py +3 -0
- office365/directory/policies/cloud_app_security_session_control.py +0 -3
- office365/directory/policies/conditionalaccess/all_external_tenants.py +0 -3
- office365/directory/policies/conditionalaccess/applications.py +1 -2
- office365/directory/policies/conditionalaccess/authentication_flows.py +0 -3
- office365/directory/policies/conditionalaccess/client_applications.py +1 -2
- office365/directory/policies/conditionalaccess/condition_set.py +1 -2
- office365/directory/policies/conditionalaccess/conditional_access.py +17 -21
- office365/directory/policies/conditionalaccess/device_and_app_management_assignment_target.py +0 -3
- office365/directory/policies/conditionalaccess/device_info.py +1 -2
- office365/directory/policies/conditionalaccess/devices.py +1 -2
- office365/directory/policies/conditionalaccess/enumerated_external_tenants.py +1 -2
- office365/directory/policies/conditionalaccess/external_tenants.py +0 -3
- office365/directory/policies/conditionalaccess/filter.py +0 -3
- office365/directory/policies/conditionalaccess/grant_controls.py +1 -2
- office365/directory/policies/conditionalaccess/guests_or_external_users.py +1 -2
- office365/directory/policies/conditionalaccess/locations.py +1 -2
- office365/directory/policies/conditionalaccess/persistent_browser_session_control.py +0 -3
- office365/directory/policies/conditionalaccess/platforms.py +1 -2
- office365/directory/policies/conditionalaccess/policy_deletable_item.py +2 -0
- office365/directory/policies/conditionalaccess/policy_detail.py +1 -2
- office365/directory/policies/conditionalaccess/secure_sign_in_session_control.py +0 -3
- office365/directory/policies/conditionalaccess/service_principal_sign_in.py +0 -3
- office365/directory/policies/conditionalaccess/session_controls.py +1 -2
- office365/directory/policies/conditionalaccess/sign_in_conditions.py +1 -2
- office365/directory/policies/conditionalaccess/sign_in_frequency_session_control.py +0 -3
- office365/directory/policies/conditionalaccess/sign_in_identity.py +0 -3
- office365/directory/policies/conditionalaccess/user_action_context.py +0 -3
- office365/directory/policies/conditionalaccess/user_sign_in.py +0 -3
- office365/directory/policies/conditionalaccess/users.py +1 -2
- office365/directory/policies/crosstenant/access.py +4 -0
- office365/directory/policies/crosstenant/app_service_connect_setting.py +1 -2
- office365/directory/policies/crosstenant/b2_b_setting.py +1 -2
- office365/directory/policies/crosstenant/inbound_trust.py +0 -3
- office365/directory/policies/crosstenant/m365_collaboration_inbound_setting.py +1 -2
- office365/directory/policies/crosstenant/m365_collaboration_outbound_setting.py +1 -2
- office365/directory/policies/crosstenant/target.py +0 -3
- office365/directory/policies/crosstenant/target_configuration.py +1 -2
- office365/directory/policies/crosstenant/tenant_restrictions.py +1 -2
- office365/directory/policies/crosstenant/user_sync_inbound.py +0 -3
- office365/directory/policies/custom_app_management_application_configuration.py +1 -2
- office365/directory/policies/custom_app_management_configuration.py +1 -2
- office365/directory/policies/default_invitation_redemption_identity_provider_configuration.py +0 -3
- office365/directory/policies/device_registration.py +13 -27
- office365/directory/policies/devices_filter.py +0 -3
- office365/directory/policies/enumerated_domains.py +1 -2
- office365/directory/policies/face_check_configuration.py +0 -3
- office365/directory/policies/feature_rollout.py +8 -7
- office365/directory/policies/federated_token_validation_policy.py +3 -7
- office365/directory/policies/group_scope.py +0 -3
- office365/directory/policies/identifier_uri_configuration.py +1 -2
- office365/directory/policies/inbound_outbound_policy_configuration.py +0 -3
- office365/directory/policies/invitation_redemption_identity_provider_configuration.py +1 -2
- office365/directory/policies/ownerless_group_policy.py +11 -13
- office365/directory/policies/permission_grant.py +3 -0
- office365/directory/policies/protected_application_metadata.py +1 -2
- office365/directory/policies/protection_policy_artifact_count.py +0 -3
- office365/directory/policies/restrict_access_action.py +0 -3
- office365/directory/policies/restrict_access_action_base.py +0 -3
- office365/directory/policies/retention_setting.py +0 -2
- office365/directory/policies/root.py +22 -5
- office365/directory/policies/scope_base.py +0 -3
- office365/directory/policies/security_defaults.py +2 -0
- office365/directory/policies/self_service_sign_up_authentication_flow_configuration.py +0 -3
- office365/directory/policies/sts.py +3 -1
- office365/directory/policies/template.py +3 -0
- office365/directory/policies/tenant_app_management.py +9 -17
- office365/directory/policies/tenant_scope.py +0 -3
- office365/directory/policies/unifiedrolemanagement/policy.py +11 -3
- office365/directory/policies/unifiedrolemanagement/unified_role_assignment_schedule_request.py +22 -13
- office365/directory/policies/update_allowed_combinations_result.py +1 -2
- office365/directory/policies/user_scope.py +0 -3
- office365/directory/policies/validating_domains.py +0 -3
- office365/directory/policies/verified_id_profile_configuration.py +1 -2
- office365/directory/policies/verified_id_usage_configuration.py +0 -3
- office365/directory/profile_card_annotation.py +1 -2
- office365/directory/profile_photo.py +3 -0
- office365/directory/profile_source_localization.py +0 -3
- office365/directory/protection/bitlocker.py +2 -0
- office365/directory/protection/bitlocker_recovery_key.py +7 -6
- office365/directory/protection/information.py +8 -0
- office365/directory/protection/policy/base.py +19 -16
- office365/directory/protection/policy/one_drive_for_business.py +4 -0
- office365/directory/protection/risk_detection.py +20 -0
- office365/directory/protection/riskyusers/activity.py +1 -2
- office365/directory/protection/riskyusers/collection.py +3 -0
- office365/directory/protection/riskyusers/history_item.py +2 -0
- office365/directory/protection/riskyusers/risk_service_principal_activity.py +1 -2
- office365/directory/protection/riskyusers/risky_service_principal.py +11 -0
- office365/directory/protection/riskyusers/risky_service_principal_history_item.py +5 -10
- office365/directory/protection/riskyusers/risky_user.py +6 -0
- office365/directory/protection/riskyusers/service_principal_risk_detection.py +21 -0
- office365/directory/protection/root.py +4 -2
- office365/directory/protection/rules/base.py +19 -14
- office365/directory/protection/rules/drive.py +2 -0
- office365/directory/protection/threatassessment/requests/email_file.py +8 -10
- office365/directory/protection/threatassessment/requests/file.py +1 -0
- office365/directory/protection/threatassessment/requests/mail.py +8 -10
- office365/directory/protection/threatassessment/requests/request.py +7 -14
- office365/directory/protection/threatassessment/requests/threat_assessment_result.py +6 -10
- office365/directory/protection/threatassessment/requests/url.py +2 -0
- office365/directory/quotas.py +39 -2
- office365/directory/recovery/change_object_base.py +6 -6
- office365/directory/recovery/job.py +4 -0
- office365/directory/recovery/job_base.py +11 -13
- office365/directory/recovery/job_entity_name_and_ids_filter.py +1 -2
- office365/directory/recovery/job_entity_names_filter.py +1 -2
- office365/directory/recovery/job_filtering_criteria_base.py +0 -3
- office365/directory/recovery/recovery.py +3 -0
- office365/directory/related_tenant.py +8 -0
- office365/directory/related_tenants_refresh_status.py +0 -2
- office365/directory/relationship_policy.py +1 -2
- office365/directory/remote_tenant_group.py +6 -0
- office365/directory/request_schedule.py +1 -2
- office365/directory/requestor_manager.py +0 -3
- office365/directory/resource_visualization.py +0 -3
- office365/directory/role_template.py +0 -3
- office365/directory/rolemanagement/app_scope.py +3 -0
- office365/directory/rolemanagement/application.py +25 -3
- office365/directory/rolemanagement/management.py +2 -1
- office365/directory/rolemanagement/resource_action.py +1 -2
- office365/directory/rolemanagement/roles/collection.py +8 -1
- office365/directory/rolemanagement/roles/management_deleted_item_container.py +30 -0
- office365/directory/rolemanagement/roles/permission.py +1 -2
- office365/directory/rolemanagement/roles/role.py +16 -1
- office365/directory/rolemanagement/templates/template.py +3 -0
- office365/directory/rolemanagement/unifiedrole/assignment.py +10 -2
- office365/directory/rolemanagement/unifiedrole/definition.py +8 -1
- office365/directory/rolemanagement/unifiedrole/notification_recipients.py +1 -2
- office365/directory/rolemanagement/unifiedrole/permission.py +1 -2
- office365/directory/serviceprincipals/approved_client_app.py +2 -0
- office365/directory/serviceprincipals/delegated_permission_classification.py +4 -0
- office365/directory/serviceprincipals/federated_identity_credential.py +6 -0
- office365/directory/serviceprincipals/identity.py +0 -3
- office365/directory/serviceprincipals/lockconfiguration.py +0 -3
- office365/directory/serviceprincipals/remote_desktop_security_configuration.py +4 -0
- office365/directory/serviceprincipals/samlsinglesignonsettings.py +0 -3
- office365/directory/serviceprincipals/service_principal.py +187 -93
- office365/directory/serviceprincipals/target_device_group.py +2 -0
- office365/directory/single_service_principal.py +0 -3
- office365/directory/single_user.py +0 -3
- office365/directory/snapshot.py +5 -0
- office365/directory/subscriptions/company.py +15 -6
- office365/directory/synchronization/attribute_mapping.py +1 -2
- office365/directory/synchronization/attribute_mapping_function_schema.py +2 -0
- office365/directory/synchronization/directory_definition.py +7 -0
- office365/directory/synchronization/filter_operator_schema.py +4 -0
- office365/directory/synchronization/job.py +13 -7
- office365/directory/synchronization/job_application_parameters.py +1 -2
- office365/directory/synchronization/job_subject.py +0 -2
- office365/directory/synchronization/linked_objects.py +0 -2
- office365/directory/synchronization/metadata_entry.py +0 -3
- office365/directory/synchronization/on_premises_accidental_deletion_prevention.py +0 -3
- office365/directory/synchronization/on_premises_directory_synchronization_configuration.py +1 -2
- office365/directory/synchronization/on_premises_directory_synchronization_feature.py +0 -3
- office365/directory/synchronization/progress.py +0 -3
- office365/directory/synchronization/quarantine.py +1 -2
- office365/directory/synchronization/rule.py +1 -2
- office365/directory/synchronization/schedule.py +1 -2
- office365/directory/synchronization/schema.py +8 -6
- office365/directory/synchronization/secret_key_string_value_pair.py +0 -3
- office365/directory/synchronization/status.py +1 -2
- office365/directory/synchronization/synchronization.py +5 -11
- office365/directory/synchronization/template.py +10 -10
- office365/directory/target_agent_identity_sponsors_or_owners.py +0 -3
- office365/directory/target_application_owners.py +0 -3
- office365/directory/target_manager.py +0 -3
- office365/directory/target_user_sponsors.py +0 -3
- office365/directory/tenant_governance.py +7 -0
- office365/directory/tenant_governance_policy_template.py +12 -17
- office365/directory/tenant_governance_setting.py +3 -0
- office365/directory/tenantinformation/information.py +0 -3
- office365/directory/tenantinformation/multi_organization.py +8 -7
- office365/directory/tenantinformation/relationship.py +12 -1
- office365/directory/ticket_info.py +0 -3
- office365/directory/unified_approval_stage.py +1 -2
- office365/directory/unified_rbac_resource_action.py +7 -0
- office365/directory/unified_rbac_resource_namespace.py +3 -0
- office365/directory/unified_role.py +0 -3
- office365/directory/unified_role_assignment_schedule.py +6 -3
- office365/directory/unified_role_assignment_schedule_instance.py +8 -0
- office365/directory/unified_role_eligibility_schedule.py +5 -6
- office365/directory/unified_role_eligibility_schedule_instance.py +5 -0
- office365/directory/unified_role_eligibility_schedule_request.py +21 -13
- office365/directory/unified_role_management_policy_approval_rule.py +3 -7
- office365/directory/unified_role_management_policy_assignment.py +6 -0
- office365/directory/unified_role_management_policy_authentication_context_rule.py +3 -0
- office365/directory/unified_role_management_policy_custom_extension_rule.py +5 -0
- office365/directory/unified_role_management_policy_enablement_rule.py +2 -0
- office365/directory/unified_role_management_policy_expiration_rule.py +5 -4
- office365/directory/unified_role_management_policy_notification_rule.py +6 -0
- office365/directory/unified_role_management_policy_rule.py +3 -11
- office365/directory/unified_role_management_policy_rule_target.py +1 -2
- office365/directory/unified_role_schedule_base.py +13 -0
- office365/directory/unified_role_schedule_instance_base.py +9 -0
- office365/directory/unified_root.py +4 -0
- office365/directory/unified_storage_quota.py +8 -0
- office365/directory/users/activities/activity.py +17 -10
- office365/directory/users/activities/collection.py +2 -0
- office365/directory/users/activities/history_item.py +13 -7
- office365/directory/users/authorizationinfo.py +1 -2
- office365/directory/users/collection.py +1 -1
- office365/directory/users/employeeorgdata.py +0 -3
- office365/directory/users/identity.py +0 -3
- office365/directory/users/inference_classification.py +2 -0
- office365/directory/users/inference_classification_override.py +5 -14
- office365/directory/users/insights_settings.py +2 -0
- office365/directory/users/note.py +11 -3
- office365/directory/users/onpremisesextensionattributes.py +0 -3
- office365/directory/users/password_profile.py +0 -3
- office365/directory/users/profile.py +1 -2
- office365/directory/users/provisioned_plan.py +0 -3
- office365/directory/users/settings.py +8 -2
- office365/directory/users/storage.py +2 -0
- office365/directory/users/user.py +175 -8
- office365/directory/users/windows_setting.py +6 -3
- office365/directory/users/windows_setting_instance.py +5 -0
- office365/directory/users/work_hours_and_locations_setting.py +5 -7
- office365/directory/users/work_plan_occurrence.py +11 -16
- office365/directory/users/work_plan_recurrence.py +10 -16
- office365/directory/verified_id_profile.py +15 -31
- office365/directory/visual_info.py +1 -2
- office365/education/challenging_word.py +0 -3
- office365/education/related_contact.py +0 -3
- office365/education/root.py +4 -0
- office365/education/rubric_criterion.py +0 -3
- office365/education/rubric_level.py +0 -3
- office365/education/rubric_quality.py +1 -2
- office365/education/rubric_quality_feedback_model.py +0 -3
- office365/education/rubric_quality_selected_column_model.py +0 -3
- office365/entity.py +7 -1
- office365/exchange/README.md +170 -0
- office365/exchange/__init__.py +6 -0
- office365/exchange/client.py +163 -0
- office365/exchange/cmdlets.py +68 -0
- office365/exchange/environments.py +30 -0
- office365/exchange/query.py +49 -0
- office365/exchange/request.py +134 -0
- office365/externalconnectors/acl.py +0 -3
- office365/externalconnectors/activity_settings.py +1 -2
- office365/externalconnectors/connection_operation.py +4 -7
- office365/externalconnectors/display_template.py +1 -2
- office365/externalconnectors/external_activity.py +4 -0
- office365/externalconnectors/external_activity_result.py +3 -7
- office365/externalconnectors/external_group.py +4 -0
- office365/externalconnectors/external_item_content.py +0 -3
- office365/externalconnectors/external_item_information_protection_label.py +0 -3
- office365/externalconnectors/identity.py +4 -4
- office365/externalconnectors/item_id_resolver.py +1 -2
- office365/externalconnectors/principal.py +0 -3
- office365/externalconnectors/properties.py +0 -3
- office365/externalconnectors/property.py +1 -2
- office365/externalconnectors/property_rule.py +1 -2
- office365/externalconnectors/schema.py +2 -0
- office365/externalconnectors/url_match_info.py +1 -2
- office365/externalconnectors/url_to_item_resolver_base.py +0 -3
- office365/graph_client.py +91 -50
- office365/intune/audit/actor.py +1 -2
- office365/intune/audit/event.py +14 -2
- office365/intune/audit/event_collection.py +25 -0
- office365/intune/audit/property.py +0 -3
- office365/intune/audit/resource.py +1 -2
- office365/intune/browser/browser_site_history.py +1 -2
- office365/intune/devices/alternative_security_id.py +0 -3
- office365/intune/devices/and_app_management_role_assignment.py +2 -0
- office365/intune/devices/category.py +3 -0
- office365/intune/devices/cloud_pc.py +15 -0
- office365/intune/devices/cloud_pc_launch_detail.py +0 -3
- office365/intune/devices/cloud_pc_windows_setting.py +0 -3
- office365/intune/devices/collection.py +6 -0
- office365/intune/devices/compliance/android_compliance_policy.py +25 -17
- office365/intune/devices/compliance/android_work_profile_compliance_policy.py +25 -17
- office365/intune/devices/compliance/information.py +1 -2
- office365/intune/devices/compliance/ios_compliance_policy.py +18 -17
- office365/intune/devices/compliance/mac_os_compliance_policy.py +21 -17
- office365/intune/devices/compliance/management_partner.py +13 -25
- office365/intune/devices/compliance/management_partner_assignment.py +1 -2
- office365/intune/devices/compliance/policy.py +25 -0
- office365/intune/devices/compliance/policy_state.py +11 -20
- office365/intune/devices/compliance/setting_state_device_summary.py +10 -0
- office365/intune/devices/compliance/windows10_compliance_policy.py +22 -10
- office365/intune/devices/compliance/windows10_mobile_compliance_policy.py +19 -10
- office365/intune/devices/compliance/windows81_compliance_policy.py +14 -10
- office365/intune/devices/compliance/windows_phone81_compliance_policy.py +14 -10
- office365/intune/devices/compliance_action_item.py +7 -10
- office365/intune/devices/compliance_device_overview.py +8 -0
- office365/intune/devices/compliance_device_status.py +10 -6
- office365/intune/devices/compliance_policy_assignment.py +5 -11
- office365/intune/devices/compliance_policy_device_state_summary.py +10 -0
- office365/intune/devices/compliance_policy_setting_state_summary.py +13 -7
- office365/intune/devices/compliance_scheduled_action_for_rule.py +3 -0
- office365/intune/devices/compliance_setting_state.py +14 -6
- office365/intune/devices/compliance_user_overview.py +8 -0
- office365/intune/devices/compliance_user_status.py +8 -6
- office365/intune/devices/configuration_assignment.py +5 -11
- office365/intune/devices/configuration_device_overview.py +8 -0
- office365/intune/devices/configuration_device_state_summary.py +8 -0
- office365/intune/devices/configuration_device_status.py +10 -6
- office365/intune/devices/configuration_state.py +11 -20
- office365/intune/devices/configuration_user_overview.py +8 -0
- office365/intune/devices/configuration_user_status.py +8 -6
- office365/intune/devices/configurations/android/android_lob_app.py +7 -10
- office365/intune/devices/configurations/android/android_store_app.py +6 -10
- office365/intune/devices/configurations/android/custom_configuration.py +3 -7
- office365/intune/devices/configurations/android/general_device_configuration.py +54 -31
- office365/intune/devices/configurations/android/minimum_operating_system.py +0 -3
- office365/intune/devices/configurations/android/mobile_app_identifier.py +0 -3
- office365/intune/devices/configurations/android/work_profile_custom_configuration.py +3 -7
- office365/intune/devices/configurations/android/work_profile_general_device_configuration.py +45 -28
- office365/intune/devices/configurations/configuration.py +12 -0
- office365/intune/devices/configurations/edge_search_engine.py +0 -3
- office365/intune/devices/configurations/edge_search_engine_base.py +0 -3
- office365/intune/devices/configurations/edge_search_engine_custom.py +0 -3
- office365/intune/devices/configurations/ios/custom_configuration.py +4 -0
- office365/intune/devices/configurations/ios/features_configuration.py +10 -24
- office365/intune/devices/configurations/ios/general/device_configuration.py +148 -94
- office365/intune/devices/configurations/ios/home_screen_app.py +0 -3
- office365/intune/devices/configurations/ios/home_screen_folder.py +1 -2
- office365/intune/devices/configurations/ios/home_screen_folder_page.py +1 -2
- office365/intune/devices/configurations/ios/home_screen_item.py +0 -3
- office365/intune/devices/configurations/ios/home_screen_page.py +1 -2
- office365/intune/devices/configurations/ios/minimum_operating_system.py +0 -3
- office365/intune/devices/configurations/ios/network_usage_rule.py +1 -2
- office365/intune/devices/configurations/ios/notification_settings.py +0 -3
- office365/intune/devices/configurations/ios/update_configuration.py +7 -6
- office365/intune/devices/configurations/macos/mac_os_custom_configuration.py +4 -0
- office365/intune/devices/configurations/macos/mac_os_general_device_configuration.py +17 -16
- office365/intune/devices/configurations/macos/mac_os_minimum_operating_system.py +0 -3
- office365/intune/devices/configurations/media_content_rating_australia.py +0 -3
- office365/intune/devices/configurations/media_content_rating_canada.py +0 -3
- office365/intune/devices/configurations/media_content_rating_france.py +0 -3
- office365/intune/devices/configurations/media_content_rating_germany.py +0 -3
- office365/intune/devices/configurations/media_content_rating_ireland.py +0 -3
- office365/intune/devices/configurations/media_content_rating_japan.py +0 -3
- office365/intune/devices/configurations/media_content_rating_new_zealand.py +0 -3
- office365/intune/devices/configurations/media_content_rating_united_kingdom.py +0 -3
- office365/intune/devices/configurations/media_content_rating_united_states.py +0 -3
- office365/intune/devices/configurations/oma_setting.py +0 -3
- office365/intune/devices/configurations/oma_setting_base64.py +0 -3
- office365/intune/devices/configurations/oma_setting_boolean.py +0 -3
- office365/intune/devices/configurations/oma_setting_date_time.py +0 -2
- office365/intune/devices/configurations/oma_setting_floating_point.py +0 -3
- office365/intune/devices/configurations/oma_setting_integer.py +0 -3
- office365/intune/devices/configurations/oma_setting_string.py +0 -3
- office365/intune/devices/configurations/oma_setting_string_xml.py +0 -3
- office365/intune/devices/configurations/rgb_color.py +0 -3
- office365/intune/devices/configurations/windows/bit_locker_removable_drive_policy.py +0 -3
- office365/intune/devices/configurations/windows/defender_advanced_threat_protection_configuration.py +3 -0
- office365/intune/devices/configurations/windows/firewall_network_profile.py +0 -3
- office365/intune/devices/configurations/windows/minimum_operating_system.py +0 -3
- office365/intune/devices/configurations/windows/out_of_box_experience_setting.py +0 -3
- office365/intune/devices/configurations/windows/phone81_custom_configuration.py +3 -7
- office365/intune/devices/configurations/windows/phone81_general_configuration.py +34 -16
- office365/intune/devices/configurations/windows/shared_pc_account_manager_policy.py +0 -3
- office365/intune/devices/configurations/windows/update_active_hours_install.py +0 -2
- office365/intune/devices/configurations/windows/update_for_business_configuration.py +53 -60
- office365/intune/devices/configurations/windows/update_install_schedule_type.py +0 -3
- office365/intune/devices/configurations/windows/update_scheduled_install.py +0 -2
- office365/intune/devices/configurations/windows/windows10_custom_configuration.py +3 -7
- office365/intune/devices/configurations/windows/windows10_endpoint_protection_configuration.py +60 -55
- office365/intune/devices/configurations/windows/windows10_enrollment_completion_page_configuration.py +2 -0
- office365/intune/devices/configurations/windows/windows10_enterprise_modern_app_management_configuration.py +2 -0
- office365/intune/devices/configurations/windows/windows10_general_configuration.py +232 -158
- office365/intune/devices/configurations/windows/windows10_network_proxy_server.py +1 -2
- office365/intune/devices/configurations/windows/windows10_secure_assessment_configuration.py +6 -0
- office365/intune/devices/configurations/windows/windows10_team_general_configuration.py +26 -17
- office365/intune/devices/configurations/windows/windows81_general_configuration.py +39 -35
- office365/intune/devices/data.py +0 -3
- office365/intune/devices/detail.py +0 -3
- office365/intune/devices/device.py +32 -4
- office365/intune/devices/device_metadata.py +1 -2
- office365/intune/devices/enrollment/configuration.py +8 -0
- office365/intune/devices/enrollment/configuration_assignment.py +5 -11
- office365/intune/devices/enrollment/limit_configuration.py +2 -0
- office365/intune/devices/enrollment_platform_restrictions_configuration.py +7 -27
- office365/intune/devices/enrollment_windows_hello_for_business_configuration.py +16 -23
- office365/intune/devices/enumerated_device_registration_membership.py +1 -2
- office365/intune/devices/install_state.py +11 -10
- office365/intune/devices/local_credential.py +0 -2
- office365/intune/devices/log_collection_response.py +11 -8
- office365/intune/devices/management/action_result.py +0 -2
- office365/intune/devices/management/all_device_registration_membership.py +0 -3
- office365/intune/devices/management/app_management.py +19 -1
- office365/intune/devices/management/apple_push_notification_certificate.py +9 -0
- office365/intune/devices/management/compliance_policy_setting_state.py +1 -2
- office365/intune/devices/management/configuration_manager_client_enabled_features.py +0 -3
- office365/intune/devices/management/configuration_manager_collection_assignment_target.py +0 -3
- office365/intune/devices/management/configuration_setting_state.py +1 -2
- office365/intune/devices/management/defender_detected_malware_actions.py +0 -3
- office365/intune/devices/management/delete_user_from_shared_apple_device_action_result.py +0 -3
- office365/intune/devices/management/detected_app.py +9 -7
- office365/intune/devices/management/device_protection_overview.py +0 -3
- office365/intune/devices/management/enrollment_platform_restriction.py +0 -3
- office365/intune/devices/management/exchange_access_state_summary.py +0 -3
- office365/intune/devices/management/geo_location.py +0 -2
- office365/intune/devices/management/group_peer_outlier_recommendation_insight_settings.py +0 -3
- office365/intune/devices/management/health_attestation_state.py +0 -2
- office365/intune/devices/management/imported_windows_autopilot_device_identity.py +12 -10
- office365/intune/devices/management/imported_windows_autopilot_device_identity_state.py +0 -3
- office365/intune/devices/management/insight_value_double.py +0 -3
- office365/intune/devices/management/insight_value_int.py +0 -3
- office365/intune/devices/management/integer_range.py +0 -3
- office365/intune/devices/management/ios_update_device_status.py +15 -13
- office365/intune/devices/management/localized_notification_message.py +6 -0
- office365/intune/devices/management/locate_device_action_result.py +1 -2
- office365/intune/devices/management/m365_capability_base.py +7 -6
- office365/intune/devices/management/m365_capability_inbound_access.py +1 -2
- office365/intune/devices/management/m365_capability_resource_scope.py +0 -3
- office365/intune/devices/management/m365_capability_resource_scopes.py +1 -2
- office365/intune/devices/management/managed/app/app.py +3 -0
- office365/intune/devices/management/managed/app/configuration.py +2 -0
- office365/intune/devices/management/managed/app/diagnostic_status.py +0 -3
- office365/intune/devices/management/managed/app/operation.py +5 -0
- office365/intune/devices/management/managed/app/protections/android.py +11 -0
- office365/intune/devices/management/managed/app/protections/default.py +13 -0
- office365/intune/devices/management/managed/app/protections/ios.py +8 -0
- office365/intune/devices/management/managed/app/protections/protection.py +28 -0
- office365/intune/devices/management/managed/app/protections/targeted.py +3 -0
- office365/intune/devices/management/managed/app/protections/targeted_managed_app_policy_assignment.py +5 -11
- office365/intune/devices/management/managed/app/protections/windows.py +42 -66
- office365/intune/devices/management/managed/app/registration.py +17 -3
- office365/intune/devices/management/managed/app/status.py +3 -0
- office365/intune/devices/management/managed/app_policy_deployment_summary.py +10 -10
- office365/intune/devices/management/managed/device_mobile_app_configuration.py +12 -0
- office365/intune/devices/management/managed/device_mobile_app_configuration_assignment.py +5 -11
- office365/intune/devices/management/managed/device_mobile_app_configuration_device_status.py +10 -6
- office365/intune/devices/management/managed/device_mobile_app_configuration_device_summary.py +8 -0
- office365/intune/devices/management/managed/device_mobile_app_configuration_user_status.py +8 -6
- office365/intune/devices/management/managed/device_mobile_app_configuration_user_summary.py +8 -0
- office365/intune/devices/management/managed/device_overview.py +9 -17
- office365/intune/devices/management/managed/ebook/e_book_assignment.py +7 -14
- office365/intune/devices/management/managed/ebook/ebook.py +15 -3
- office365/intune/devices/management/managed/ebook/install_summary.py +7 -0
- office365/intune/devices/management/managed/ebook/user_install_state_summary.py +6 -0
- office365/intune/devices/management/managed/managed.py +102 -25
- office365/intune/devices/management/managed/mobile_app.py +5 -6
- office365/intune/devices/management/management.py +73 -39
- office365/intune/devices/management/mobile_threat_defense_connector.py +18 -10
- office365/intune/devices/management/mobileapps/app_configuration_setting_item.py +0 -3
- office365/intune/devices/management/mobileapps/app_list_item.py +0 -3
- office365/intune/devices/management/mobileapps/app_log_collection_download_details.py +0 -3
- office365/intune/devices/management/mobileapps/app_log_collection_request.py +7 -8
- office365/intune/devices/management/mobileapps/apps_installation_options_for_mac.py +0 -3
- office365/intune/devices/management/mobileapps/apps_installation_options_for_windows.py +0 -3
- office365/intune/devices/management/mobileapps/assignment.py +8 -18
- office365/intune/devices/management/mobileapps/category.py +3 -0
- office365/intune/devices/management/mobileapps/content.py +3 -0
- office365/intune/devices/management/mobileapps/content_file.py +11 -0
- office365/intune/devices/management/mobileapps/file_encryption_info.py +0 -3
- office365/intune/devices/management/mobileapps/ios/ios_device_type.py +0 -3
- office365/intune/devices/management/mobileapps/ios/ios_mobile_app_configuration.py +5 -10
- office365/intune/devices/management/mobileapps/ios/iosi_pad_os_web_clip.py +3 -0
- office365/intune/devices/management/mobileapps/ios/lob_app.py +10 -17
- office365/intune/devices/management/mobileapps/ios/lob_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/ios/lob_app_provisioning_configuration_assignment.py +5 -11
- office365/intune/devices/management/mobileapps/ios/mobile_app_identifier.py +0 -3
- office365/intune/devices/management/mobileapps/ios/store_app.py +8 -17
- office365/intune/devices/management/mobileapps/ios/store_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/ios/vpp_app.py +15 -20
- office365/intune/devices/management/mobileapps/ios/vpp_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/ios/vpp_e_book.py +9 -0
- office365/intune/devices/management/mobileapps/macos/mac_os_dmg_app.py +9 -13
- office365/intune/devices/management/mobileapps/macos/mac_os_included_app.py +0 -3
- office365/intune/devices/management/mobileapps/macos/mac_os_lob_app.py +13 -13
- office365/intune/devices/management/mobileapps/macos/mac_os_lob_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/macos/mac_os_lob_child_app.py +0 -3
- office365/intune/devices/management/mobileapps/macos/mac_os_microsoft_edge_app.py +3 -11
- office365/intune/devices/management/mobileapps/managed/app_policy_deployment_summary_per_app.py +1 -2
- office365/intune/devices/management/mobileapps/microsoft_store_for_business_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/mobile_app.py +17 -3
- office365/intune/devices/management/mobileapps/mobile_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/mobile_app_identifier.py +0 -3
- office365/intune/devices/management/mobileapps/mobile_app_install_time_settings.py +0 -2
- office365/intune/devices/management/mobileapps/mobile_app_troubleshooting_event.py +2 -0
- office365/intune/devices/management/mobileapps/mobile_lob_app.py +5 -0
- office365/intune/devices/management/mobileapps/relationship.py +9 -0
- office365/intune/devices/management/mobileapps/vpp_licensing_type.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app.py +21 -34
- office365/intune/devices/management/mobileapps/win32/lob_app_assignment_settings.py +1 -2
- office365/intune/devices/management/mobileapps/win32/lob_app_auto_update_settings.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_file_system_rule.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_install_experience.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_msi_information.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_power_shell_script_rule.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_product_code_rule.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_registry_rule.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_restart_settings.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_return_code.py +0 -3
- office365/intune/devices/management/mobileapps/win32/lob_app_rule.py +0 -3
- office365/intune/devices/management/mobileapps/windows/app_x.py +11 -17
- office365/intune/devices/management/mobileapps/windows/app_x_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/windows/microsoft_edge_app.py +5 -10
- office365/intune/devices/management/mobileapps/windows/mobile_msi.py +5 -0
- office365/intune/devices/management/mobileapps/windows/universal_app_x.py +13 -21
- office365/intune/devices/management/mobileapps/windows/universal_app_x_app_assignment_settings.py +0 -3
- office365/intune/devices/management/mobileapps/windows/universal_app_x_contained_app.py +2 -0
- office365/intune/devices/management/mobileapps/windows/web_app.py +2 -0
- office365/intune/devices/management/notification_message_template.py +8 -7
- office365/intune/devices/management/on_premises_conditional_access_settings.py +5 -0
- office365/intune/devices/management/operating_system_summary.py +0 -3
- office365/intune/devices/management/partner_assignment.py +1 -2
- office365/intune/devices/management/remote_lock_action_result.py +0 -3
- office365/intune/devices/management/remoteassistance/partner.py +7 -10
- office365/intune/devices/management/reports/reports.py +2 -0
- office365/intune/devices/management/reset_passcode_action_result.py +0 -3
- office365/intune/devices/management/resource_operation.py +4 -0
- office365/intune/devices/management/rotate_bit_locker_keys_device_action_result.py +0 -3
- office365/intune/devices/management/settings.py +0 -3
- office365/intune/devices/management/software_update_status_summary.py +16 -0
- office365/intune/devices/management/targeted_managed_app_configuration.py +6 -0
- office365/intune/devices/management/terms_and_conditions.py +11 -0
- office365/intune/devices/management/terms_and_conditions_acceptance_status.py +6 -0
- office365/intune/devices/management/terms_and_conditions_assignment.py +5 -11
- office365/intune/devices/management/update_windows_device_account_action_parameter.py +1 -2
- office365/intune/devices/management/user_experience_analytics_settings.py +0 -3
- office365/intune/devices/management/user_last_sign_in_recommendation_insight_setting.py +0 -2
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_app_version_details.py +9 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_app_version_device_id.py +9 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_app_performance_by_os_version.py +10 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_application_performance.py +10 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_model_performance.py +9 -10
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_performance.py +14 -10
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_device_performance_details.py +8 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_app_health_os_version_performance.py +6 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_autopilot_devices_summary.py +0 -3
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_baseline.py +11 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_category.py +6 -7
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_cloud_identity_devices_summary.py +0 -3
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_cloud_management_devices_summary.py +0 -3
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_performance.py +24 -17
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_scores.py +12 -10
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_history.py +21 -10
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_process.py +6 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_device_startup_process_performance.py +7 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_insight.py +1 -2
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_insight_value.py +0 -3
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_metric.py +3 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_metric_history.py +4 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_model_scores.py +12 -10
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_overview.py +5 -11
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_score_history.py +2 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_windows10_devices_summary.py +0 -3
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_device.py +40 -17
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_devices_summary.py +1 -2
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_hardware_readiness_metric.py +12 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_metric.py +2 -0
- office365/intune/devices/management/userexperienceanalytics/user_experience_analytics_work_from_anywhere_model_performance.py +12 -10
- office365/intune/devices/management/virtualendpoint/cloudpcs/auditactor.py +1 -2
- office365/intune/devices/management/virtualendpoint/cloudpcs/auditproperty.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/auditresource.py +1 -2
- office365/intune/devices/management/virtualendpoint/cloudpcs/domainjoinconfiguration.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/exclusion_group_assignment_target.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/group_assignment_target.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/managementgroupassignmenttarget.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/onpremisesconnectionhealthcheck.py +0 -2
- office365/intune/devices/management/virtualendpoint/cloudpcs/onpremisesconnectionstatusdetail.py +1 -2
- office365/intune/devices/management/virtualendpoint/cloudpcs/provisioningpolicyautopatch.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/restorepointsetting.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/sourcedeviceimage.py +0 -3
- office365/intune/devices/management/virtualendpoint/cloudpcs/userrolescopetaginfo.py +0 -3
- office365/intune/devices/management/virtualendpoint/provisioningpolicies/microsoft_managed_desktop.py +0 -3
- office365/intune/devices/management/virtualendpoint/virtual_endpoint.py +10 -0
- office365/intune/devices/management/vpptokens/vpp_token.py +12 -0
- office365/intune/devices/management/windows_autopilot_deployment_profile.py +16 -12
- office365/intune/devices/management/windows_autopilot_device_identity.py +19 -6
- office365/intune/devices/management/windows_defender_scan_action_result.py +0 -3
- office365/intune/devices/management/windows_device_account.py +0 -3
- office365/intune/devices/management/windows_device_ad_account.py +0 -3
- office365/intune/devices/management/windows_device_azure_ad_account.py +0 -3
- office365/intune/devices/management/windows_information_protection_app.py +0 -3
- office365/intune/devices/management/windows_information_protection_app_learning_summary.py +6 -10
- office365/intune/devices/management/windows_information_protection_app_locker_file.py +5 -0
- office365/intune/devices/management/windows_information_protection_data_recovery_certificate.py +0 -2
- office365/intune/devices/management/windows_information_protection_desktop_app.py +0 -3
- office365/intune/devices/management/windows_information_protection_ip_range_collection.py +1 -2
- office365/intune/devices/management/windows_information_protection_network_learning_summary.py +3 -0
- office365/intune/devices/management/windows_information_protection_policy.py +17 -6
- office365/intune/devices/management/windows_information_protection_proxied_domain_collection.py +1 -2
- office365/intune/devices/management/windows_information_protection_resource_collection.py +1 -2
- office365/intune/devices/management/windows_information_protection_store_app.py +0 -3
- office365/intune/devices/management/windows_malware_overview.py +1 -2
- office365/intune/devices/management/windows_protection_state.py +25 -14
- office365/intune/devices/management/windowsmalware/malware_state_for_windows_device.py +10 -17
- office365/intune/devices/management/windowsmalware/windows_device_malware_state.py +17 -38
- office365/intune/devices/management/windowsmalware/windows_malware_category_count.py +0 -2
- office365/intune/devices/management/windowsmalware/windows_malware_execution_state_count.py +0 -2
- office365/intune/devices/management/windowsmalware/windows_malware_information.py +9 -14
- office365/intune/devices/management/windowsmalware/windows_malware_name_count.py +0 -2
- office365/intune/devices/management/windowsmalware/windows_malware_severity_count.py +0 -2
- office365/intune/devices/management/windowsmalware/windows_malware_state_count.py +0 -2
- office365/intune/devices/management_exchange_connector.py +13 -17
- office365/intune/devices/management_export_job.py +14 -24
- office365/intune/devices/management_partner.py +14 -24
- office365/intune/devices/management_troubleshooting_event.py +3 -0
- office365/intune/devices/no_device_registration_membership.py +0 -3
- office365/intune/devices/operating_system_specifications.py +0 -3
- office365/intune/devices/registration_membership.py +0 -3
- office365/intune/organizations/branding.py +2 -0
- office365/intune/organizations/branding_properties.py +36 -24
- office365/intune/organizations/contact.py +24 -27
- office365/intune/organizations/content_customization.py +1 -2
- office365/intune/organizations/login_page_layout_configuration.py +0 -3
- office365/intune/organizations/login_page_text_visibility_settings.py +0 -3
- office365/intune/organizations/organization.py +27 -17
- office365/intune/organizations/physical_office_address.py +0 -3
- office365/intune/organizations/privacy_profile.py +0 -3
- office365/intune/policies/azure_ad_join_policy.py +1 -2
- office365/intune/policies/local_admin_password_settings.py +0 -3
- office365/intune/policies/local_admin_settings.py +1 -2
- office365/intune/policies/managed_app.py +6 -0
- office365/intune/print/air_print_settings.py +0 -3
- office365/intune/print/archived_print_job.py +1 -2
- office365/intune/print/certificate_signing_request.py +0 -3
- office365/intune/print/connectors/connector.py +9 -6
- office365/intune/print/document.py +6 -0
- office365/intune/print/document_upload_properties.py +0 -3
- office365/intune/print/job.py +15 -9
- office365/intune/print/job_configuration.py +1 -2
- office365/intune/print/job_status.py +1 -2
- office365/intune/print/margin.py +0 -3
- office365/intune/print/operation.py +5 -6
- office365/intune/print/operation_status.py +0 -3
- office365/intune/print/print.py +9 -3
- office365/intune/print/printers/base.py +15 -11
- office365/intune/print/printers/capabilities.py +1 -2
- office365/intune/print/printers/create_operation.py +3 -0
- office365/intune/print/printers/defaults.py +1 -2
- office365/intune/print/printers/discovery_settings.py +1 -2
- office365/intune/print/printers/location.py +1 -2
- office365/intune/print/printers/printer.py +8 -0
- office365/intune/print/printers/share_viewpoint.py +0 -2
- office365/intune/print/printers/status.py +1 -2
- office365/intune/print/services/endpoint.py +3 -0
- office365/intune/print/settings.py +1 -2
- office365/intune/print/shares/share.py +8 -3
- office365/intune/print/task.py +6 -3
- office365/intune/print/task_definition.py +5 -3
- office365/intune/print/task_status.py +0 -3
- office365/intune/print/task_trigger.py +4 -3
- office365/intune/print/user_print.py +0 -2
- office365/intune/servicecommunications/announcement.py +3 -1
- office365/intune/servicecommunications/announcement_base.py +8 -6
- office365/intune/servicecommunications/health/health.py +5 -5
- office365/intune/servicecommunications/issues/issue.py +19 -16
- office365/intune/servicecommunications/messages/update.py +16 -24
- office365/intune/servicecommunications/service_health_issue_post.py +1 -2
- office365/intune/servicecommunications/service_update_message_viewpoint.py +0 -3
- office365/limits.py +24 -4
- office365/migration/__init__.py +35 -2
- office365/migration/adapters/__init__.py +26 -0
- office365/migration/adapters/bundle.py +308 -0
- office365/migration/adapters/filesystem.py +5 -14
- office365/migration/assessment/report.py +0 -1
- office365/migration/base.py +34 -3
- office365/migration/clients.py +87 -0
- office365/migration/fidelity.py +63 -2
- office365/migration/identity.py +320 -0
- office365/migration/job.py +40 -6
- office365/migration/offline.py +26 -0
- office365/migration/outlook/__init__.py +74 -3
- office365/migration/outlook/adapters.py +380 -0
- office365/migration/outlook/assessor.py +22 -6
- office365/migration/outlook/calendar_adapters.py +347 -0
- office365/migration/outlook/calendar_codec.py +207 -0
- office365/migration/outlook/calendar_models.py +241 -0
- office365/migration/outlook/calendar_profile.py +109 -0
- office365/migration/outlook/contacts_adapters.py +331 -0
- office365/migration/outlook/contacts_models.py +277 -0
- office365/migration/outlook/eml_import.py +219 -0
- office365/migration/outlook/fidelity.py +175 -0
- office365/migration/outlook/models.py +219 -0
- office365/migration/outlook/records.py +298 -0
- office365/migration/outlook/restore.py +29 -0
- office365/migration/package/builder.py +23 -2
- office365/migration/package/staging.py +49 -0
- office365/migration/report.py +33 -5
- office365/migration/runner.py +29 -1
- office365/migration/server_job.py +191 -25
- office365/migration/settings.py +13 -3
- office365/migration/sharepoint/__init__.py +4 -6
- office365/migration/sharepoint/adapters.py +598 -827
- office365/migration/sharepoint/assessor.py +25 -15
- office365/migration/sharepoint/branding.py +9 -8
- office365/migration/sharepoint/handoff.py +5 -4
- office365/migration/sharepoint/navigation.py +30 -62
- office365/migration/sharepoint/package_target.py +191 -19
- office365/migration/sharepoint/pages.py +130 -230
- office365/migration/sharepoint/resolvers.py +97 -42
- office365/migration/sharepoint/scanners/browser_file_handling.py +7 -5
- office365/migration/sharepoint/scanners/checked_out_files.py +5 -3
- office365/migration/sharepoint/scanners/fields.py +2 -2
- office365/migration/sharepoint/scanners/file_versions.py +3 -3
- office365/migration/sharepoint/scanners/files.py +4 -2
- office365/migration/sharepoint/scanners/large_excel_files.py +4 -3
- office365/migration/sharepoint/scanners/long_onedrive_urls.py +1 -1
- office365/migration/sharepoint/scanners/lookup.py +2 -4
- office365/migration/sharepoint/scanners/paths.py +2 -2
- office365/migration/sharepoint/scanners/permissions.py +1 -1
- office365/migration/sharepoint/scanners/smat.py +1 -1
- office365/migration/sharepoint/scanners/thicket_folders.py +3 -3
- office365/migration/sharepoint/security.py +14 -12
- office365/migration/sharepoint/site_settings.py +9 -9
- office365/migration/sharepoint/site_verify.py +1 -6
- office365/migration/sharepoint/structure.py +148 -93
- office365/migration/teams/__init__.py +1 -14
- office365/migration/teams/adapters.py +70 -24
- office365/onedrive/analytics/item_action_stat.py +0 -3
- office365/onedrive/analytics/item_activity.py +4 -1
- office365/onedrive/analytics/item_activity_stat.py +8 -0
- office365/onedrive/analytics/item_analytics.py +3 -3
- office365/onedrive/base_item.py +12 -1
- office365/onedrive/columns/boolean.py +0 -3
- office365/onedrive/columns/calculated.py +0 -3
- office365/onedrive/columns/choice.py +1 -2
- office365/onedrive/columns/column_link.py +2 -0
- office365/onedrive/columns/content_approval_status.py +0 -3
- office365/onedrive/columns/currency.py +0 -3
- office365/onedrive/columns/datetime.py +0 -3
- office365/onedrive/columns/default_value.py +0 -3
- office365/onedrive/columns/definition.py +26 -2
- office365/onedrive/columns/definition_collection.py +1 -1
- office365/onedrive/columns/display_name_localization.py +0 -3
- office365/onedrive/columns/geolocation.py +0 -3
- office365/onedrive/columns/hyperlink_or_picture.py +0 -3
- office365/onedrive/columns/lookup.py +0 -3
- office365/onedrive/columns/number.py +0 -3
- office365/onedrive/columns/person_or_group.py +0 -3
- office365/onedrive/columns/term.py +0 -3
- office365/onedrive/columns/text.py +0 -3
- office365/onedrive/columns/thumbnail.py +0 -3
- office365/onedrive/columns/validation.py +1 -2
- office365/onedrive/contenttypes/collection.py +1 -1
- office365/onedrive/contenttypes/content_type.py +16 -4
- office365/onedrive/contenttypes/info.py +0 -3
- office365/onedrive/contenttypes/order.py +0 -3
- office365/onedrive/deleted.py +0 -3
- office365/onedrive/documentsets/content.py +0 -3
- office365/onedrive/documentsets/document_set.py +1 -2
- office365/onedrive/documentsets/version.py +4 -0
- office365/onedrive/documentsets/version_item.py +0 -3
- office365/onedrive/driveitems/album.py +0 -3
- office365/onedrive/driveitems/audio.py +0 -3
- office365/onedrive/driveitems/bundle.py +0 -3
- office365/onedrive/driveitems/copy_result.py +6 -0
- office365/onedrive/driveitems/driveItem.py +118 -30
- office365/onedrive/driveitems/geo_coordinates.py +0 -3
- office365/onedrive/driveitems/image.py +0 -3
- office365/onedrive/driveitems/item_preview_info.py +0 -3
- office365/onedrive/driveitems/malware.py +0 -3
- office365/onedrive/driveitems/package.py +0 -3
- office365/onedrive/driveitems/photo.py +1 -2
- office365/onedrive/driveitems/publication_facet.py +1 -2
- office365/onedrive/driveitems/remote_item.py +1 -2
- office365/onedrive/driveitems/retention_label.py +3 -0
- office365/onedrive/driveitems/retention_label_settings.py +0 -3
- office365/onedrive/driveitems/source.py +0 -3
- office365/onedrive/driveitems/special_folder.py +0 -3
- office365/onedrive/driveitems/system_facet.py +0 -3
- office365/onedrive/driveitems/thumbnail.py +0 -3
- office365/onedrive/driveitems/thumbnail_set.py +5 -0
- office365/onedrive/driveitems/uploadable_properties.py +7 -12
- office365/onedrive/driveitems/video.py +0 -3
- office365/onedrive/drives/collection.py +1 -1
- office365/onedrive/drives/drive.py +49 -1
- office365/onedrive/drives/quota.py +1 -2
- office365/onedrive/drives/recipient.py +0 -3
- office365/onedrive/edit_action.py +0 -3
- office365/onedrive/files/file.py +1 -2
- office365/onedrive/files/hashes.py +0 -3
- office365/onedrive/files/system_info.py +0 -3
- office365/onedrive/filestorage/access_action.py +0 -3
- office365/onedrive/filestorage/containers/collection.py +13 -4
- office365/onedrive/filestorage/containers/container.py +29 -35
- office365/onedrive/filestorage/containers/custom_property_dictionary.py +0 -3
- office365/onedrive/filestorage/containers/custom_property_value.py +0 -3
- office365/onedrive/filestorage/containers/settings.py +0 -3
- office365/onedrive/filestorage/containers/viewpoint.py +0 -3
- office365/onedrive/filestorage/containertypes/app_permission_grant.py +5 -0
- office365/onedrive/filestorage/containertypes/collection.py +1 -1
- office365/onedrive/filestorage/containertypes/registration.py +10 -0
- office365/onedrive/filestorage/containertypes/registration_settings.py +0 -3
- office365/onedrive/filestorage/containertypes/settings.py +0 -2
- office365/onedrive/filestorage/containertypes/type.py +13 -4
- office365/onedrive/filestorage/file_storage.py +5 -0
- office365/onedrive/folders/folder.py +0 -3
- office365/onedrive/folders/view.py +0 -3
- office365/onedrive/incomplete_data.py +0 -2
- office365/onedrive/listitems/collection.py +1 -1
- office365/onedrive/listitems/item_reference.py +1 -2
- office365/onedrive/listitems/list_item.py +7 -3
- office365/onedrive/lists/collection.py +1 -1
- office365/onedrive/lists/info.py +0 -3
- office365/onedrive/lists/list.py +12 -4
- office365/onedrive/media_source.py +0 -3
- office365/onedrive/mention_action.py +1 -2
- office365/onedrive/meta_data_key_string_pair.py +0 -3
- office365/onedrive/meta_data_key_value_pair.py +0 -3
- office365/onedrive/move_action.py +0 -3
- office365/onedrive/operations/long_running.py +8 -10
- office365/onedrive/operations/pending.py +1 -2
- office365/onedrive/operations/pending_content_update.py +0 -3
- office365/onedrive/operations/public_error_detail.py +0 -3
- office365/onedrive/operations/rich_long_running.py +7 -6
- office365/onedrive/permissions/collection.py +5 -0
- office365/onedrive/permissions/permission.py +14 -0
- office365/onedrive/permissions/sharepoint_identity.py +0 -2
- office365/onedrive/permissions/sharepoint_identity_set.py +1 -2
- office365/onedrive/permissions/sharing_invitation.py +1 -2
- office365/onedrive/permissions/sharing_link.py +1 -2
- office365/onedrive/quotas.py +116 -0
- office365/onedrive/reactions_facet.py +0 -3
- office365/onedrive/recyclebin/item.py +3 -0
- office365/onedrive/recyclebin/recyclebin.py +3 -0
- office365/onedrive/recyclebin/settings.py +0 -3
- office365/onedrive/rename_action.py +0 -3
- office365/onedrive/restore_action.py +0 -3
- office365/onedrive/root.py +0 -3
- office365/onedrive/sensitivitylabels/assignment.py +0 -3
- office365/onedrive/sensitivitylabels/extract_result.py +1 -2
- office365/onedrive/server_processed_content.py +1 -2
- office365/onedrive/share_action.py +1 -2
- office365/onedrive/sharepoint/group.py +5 -0
- office365/onedrive/sharepoint/group_identity.py +0 -3
- office365/onedrive/sharepoint/group_member.py +2 -0
- office365/onedrive/sharepoint/ids.py +0 -3
- office365/onedrive/sharepoint/migration/container_info.py +0 -3
- office365/onedrive/sharepoint/migration/event.py +4 -0
- office365/onedrive/sharepoint/migration/finish_manifest_file_upload_event.py +2 -0
- office365/onedrive/sharepoint/migration/jobs/cancelled_event.py +3 -0
- office365/onedrive/sharepoint/migration/jobs/error_event.py +11 -20
- office365/onedrive/sharepoint/migration/jobs/postponed_event.py +5 -0
- office365/onedrive/sharepoint/migration/jobs/progress_event.py +18 -0
- office365/onedrive/sharepoint/migration/jobs/start_event.py +3 -0
- office365/onedrive/sharepoint/migration/migration_job.py +3 -0
- office365/onedrive/shares/drive_item.py +9 -2
- office365/onedrive/shares/shared.py +1 -2
- office365/onedrive/sitepages/base.py +2 -0
- office365/onedrive/sitepages/canvas_layout.py +2 -2
- office365/onedrive/sitepages/sections/horizontal.py +4 -0
- office365/onedrive/sitepages/sections/horizontal_column.py +3 -1
- office365/onedrive/sitepages/sections/vertical.py +3 -1
- office365/onedrive/sitepages/site_page.py +16 -4
- office365/onedrive/sitepages/title_area.py +1 -2
- office365/onedrive/sitepages/webparts/data.py +1 -2
- office365/onedrive/sitepages/webparts/position.py +0 -3
- office365/onedrive/sitepages/webparts/standard.py +4 -0
- office365/onedrive/sitepages/webparts/text.py +2 -0
- office365/onedrive/sitepages/webparts/web_part.py +4 -0
- office365/onedrive/sites/archival_details.py +0 -3
- office365/onedrive/sites/collection.py +1 -2
- office365/onedrive/sites/site.py +39 -7
- office365/onedrive/sites/sites_with_root.py +13 -0
- office365/onedrive/sites/website.py +0 -3
- office365/onedrive/storage/settings.py +2 -0
- office365/onedrive/storage/storage.py +3 -0
- office365/onedrive/storage_plan_information.py +0 -3
- office365/onedrive/termstore/groups/collection.py +1 -1
- office365/onedrive/termstore/groups/group.py +9 -6
- office365/onedrive/termstore/relation.py +6 -5
- office365/onedrive/termstore/sets/collection.py +1 -1
- office365/onedrive/termstore/sets/name.py +5 -6
- office365/onedrive/termstore/sets/set.py +6 -1
- office365/onedrive/termstore/store.py +3 -0
- office365/onedrive/termstore/terms/collection.py +1 -1
- office365/onedrive/termstore/terms/description.py +0 -3
- office365/onedrive/termstore/terms/label.py +4 -7
- office365/onedrive/termstore/terms/term.py +10 -2
- office365/onedrive/version_action.py +0 -3
- office365/onedrive/versions/base_item.py +1 -0
- office365/onedrive/versions/drive_item.py +4 -1
- office365/onedrive/versions/list_item.py +7 -0
- office365/onedrive/workbooks/applications/application.py +4 -0
- office365/onedrive/workbooks/charts/area_format.py +3 -0
- office365/onedrive/workbooks/charts/axes.py +3 -3
- office365/onedrive/workbooks/charts/axis.py +10 -9
- office365/onedrive/workbooks/charts/axis_format.py +3 -0
- office365/onedrive/workbooks/charts/axis_title.py +4 -0
- office365/onedrive/workbooks/charts/axis_title_format.py +2 -0
- office365/onedrive/workbooks/charts/chart.py +17 -2
- office365/onedrive/workbooks/charts/data_label_format.py +3 -0
- office365/onedrive/workbooks/charts/data_labels.py +10 -0
- office365/onedrive/workbooks/charts/font.py +7 -0
- office365/onedrive/workbooks/charts/gridlines.py +3 -0
- office365/onedrive/workbooks/charts/gridlines_format.py +2 -0
- office365/onedrive/workbooks/charts/legend/format.py +3 -0
- office365/onedrive/workbooks/charts/legend/legend.py +5 -0
- office365/onedrive/workbooks/charts/line_format.py +2 -0
- office365/onedrive/workbooks/charts/point.py +4 -3
- office365/onedrive/workbooks/charts/point_format.py +2 -0
- office365/onedrive/workbooks/charts/series/format.py +3 -0
- office365/onedrive/workbooks/charts/series/series.py +4 -0
- office365/onedrive/workbooks/charts/title.py +5 -0
- office365/onedrive/workbooks/charts/title_format.py +3 -0
- office365/onedrive/workbooks/comments/comment.py +4 -0
- office365/onedrive/workbooks/comments/reply.py +3 -0
- office365/onedrive/workbooks/filter.py +5 -0
- office365/onedrive/workbooks/filter_criteria.py +1 -2
- office365/onedrive/workbooks/filter_datetime.py +0 -3
- office365/onedrive/workbooks/functions/functions.py +6 -0
- office365/onedrive/workbooks/functions/result.py +5 -1
- office365/onedrive/workbooks/icon.py +0 -3
- office365/onedrive/workbooks/names/collection.py +2 -0
- office365/onedrive/workbooks/names/named_item.py +12 -6
- office365/onedrive/workbooks/operations/error.py +0 -3
- office365/onedrive/workbooks/operations/workbook.py +5 -1
- office365/onedrive/workbooks/quotas.py +35 -0
- office365/onedrive/workbooks/ranges/border.py +5 -0
- office365/onedrive/workbooks/ranges/fill.py +2 -0
- office365/onedrive/workbooks/ranges/font.py +7 -0
- office365/onedrive/workbooks/ranges/format.py +10 -0
- office365/onedrive/workbooks/ranges/format_protection.py +3 -0
- office365/onedrive/workbooks/ranges/range.py +30 -14
- office365/onedrive/workbooks/ranges/reference.py +0 -3
- office365/onedrive/workbooks/ranges/view.py +15 -18
- office365/onedrive/workbooks/session_info.py +0 -3
- office365/onedrive/workbooks/sort_field.py +1 -2
- office365/onedrive/workbooks/tables/collection.py +2 -0
- office365/onedrive/workbooks/tables/columns/collection.py +2 -0
- office365/onedrive/workbooks/tables/columns/column.py +10 -1
- office365/onedrive/workbooks/tables/pivot_table.py +7 -1
- office365/onedrive/workbooks/tables/pivot_table_collection.py +2 -0
- office365/onedrive/workbooks/tables/rows/collection.py +3 -0
- office365/onedrive/workbooks/tables/rows/row.py +3 -0
- office365/onedrive/workbooks/tables/sort.py +6 -0
- office365/onedrive/workbooks/tables/table.py +21 -0
- office365/onedrive/workbooks/workbook.py +16 -12
- office365/onedrive/workbooks/worksheets/collection.py +2 -2
- office365/onedrive/workbooks/worksheets/protection.py +6 -0
- office365/onedrive/workbooks/worksheets/protection_options.py +0 -3
- office365/onedrive/workbooks/worksheets/worksheet.py +12 -5
- office365/onenote/diagnostic.py +0 -3
- office365/onenote/entity_base_model.py +5 -0
- office365/onenote/entity_hierarchy_model.py +1 -0
- office365/onenote/notebook_links.py +1 -2
- office365/onenote/notebooks/collection.py +1 -1
- office365/onenote/notebooks/notebook.py +11 -10
- office365/onenote/notebooks/recent.py +1 -2
- office365/onenote/notebooks/recent_links.py +1 -2
- office365/onenote/onenote.py +6 -1
- office365/onenote/onenote_page_preview.py +1 -2
- office365/onenote/onenote_patch_content_command.py +0 -3
- office365/onenote/operations/onenote.py +5 -0
- office365/onenote/operations/onenote_operation_error.py +0 -3
- office365/onenote/pages/collection.py +1 -1
- office365/onenote/pages/external_link.py +0 -3
- office365/onenote/pages/links.py +1 -2
- office365/onenote/pages/page.py +11 -3
- office365/onenote/pages/preview_links.py +1 -2
- office365/onenote/quotas.py +71 -0
- office365/onenote/resources/resource.py +4 -1
- office365/onenote/sectiongroups/section_group.py +6 -2
- office365/onenote/sections/links.py +1 -2
- office365/onenote/sections/section.py +7 -3
- office365/outlook/calendar/attendees/attendee.py +8 -4
- office365/outlook/calendar/attendees/availability.py +1 -2
- office365/outlook/calendar/attendees/base.py +4 -3
- office365/outlook/calendar/calendar.py +42 -6
- office365/outlook/calendar/check_in_claim.py +7 -6
- office365/outlook/calendar/dateTimeTimeZone.py +69 -12
- office365/outlook/calendar/email_address.py +6 -4
- office365/outlook/calendar/events/collection.py +1 -1
- office365/outlook/calendar/events/event.py +65 -19
- office365/outlook/calendar/events/mention_event.py +1 -2
- office365/outlook/calendar/events/reminder.py +1 -2
- office365/outlook/calendar/group.py +5 -0
- office365/outlook/calendar/location_constraint.py +1 -2
- office365/outlook/calendar/meetingtimes/suggestion.py +1 -2
- office365/outlook/calendar/meetingtimes/suggestions_result.py +1 -2
- office365/outlook/calendar/meetingtimes/time_constraint.py +1 -2
- office365/outlook/calendar/meetingtimes/time_slot.py +1 -2
- office365/outlook/calendar/permissions/collection.py +1 -1
- office365/outlook/calendar/permissions/permission.py +3 -0
- office365/outlook/calendar/place.py +27 -4
- office365/outlook/calendar/response_status.py +1 -2
- office365/outlook/calendar/rooms/list.py +4 -0
- office365/outlook/calendar/rooms/room.py +15 -9
- office365/outlook/calendar/rooms/workspace.py +8 -6
- office365/outlook/calendar/schedule/free_busy_error.py +0 -3
- office365/outlook/calendar/schedule/information.py +1 -2
- office365/outlook/calendar/schedule/item.py +1 -2
- office365/outlook/calendar/schedule/open_shift_item.py +0 -3
- office365/outlook/calendar/sharing/message_action.py +0 -3
- office365/outlook/calendar/sharing_message.py +3 -0
- office365/outlook/calendar/timezones/base.py +0 -3
- office365/outlook/calendar/timezones/custom.py +1 -2
- office365/outlook/calendar/timezones/daylight_time_zone_offset.py +0 -3
- office365/outlook/calendar/working_hours.py +1 -2
- office365/outlook/categories/category.py +3 -0
- office365/outlook/contacts/collection.py +1 -1
- office365/outlook/contacts/contact.py +40 -10
- office365/outlook/contacts/folders/folder.py +11 -6
- office365/outlook/convert_id_result.py +1 -2
- office365/outlook/geo_coordinates.py +0 -3
- office365/outlook/item.py +11 -4
- office365/outlook/locale_info.py +0 -3
- office365/outlook/mail/attachments/attachment.py +5 -1
- office365/outlook/mail/attachments/attachment_item.py +0 -2
- office365/outlook/mail/attachments/collection.py +14 -5
- office365/outlook/mail/attachments/file.py +10 -5
- office365/outlook/mail/attachments/item.py +2 -0
- office365/outlook/mail/automaticreplies/mailtips.py +1 -2
- office365/outlook/mail/automaticreplies/setting.py +1 -2
- office365/outlook/mail/conversation.py +5 -0
- office365/outlook/mail/conversation_thread.py +6 -1
- office365/outlook/mail/email_details.py +0 -3
- office365/outlook/mail/export_item_response.py +1 -2
- office365/outlook/mail/folders/collection.py +1 -1
- office365/outlook/mail/folders/folder.py +49 -5
- office365/outlook/mail/folders/search.py +5 -0
- office365/outlook/mail/item_body.py +5 -4
- office365/outlook/mail/location.py +17 -9
- office365/outlook/mail/mailbox_item_import_session.py +1 -2
- office365/outlook/mail/mailbox_settings.py +1 -2
- office365/outlook/mail/messages/collection.py +43 -2
- office365/outlook/mail/messages/event_message.py +16 -17
- office365/outlook/mail/messages/followup_flag.py +1 -2
- office365/outlook/mail/messages/internet_header.py +0 -3
- office365/outlook/mail/messages/message.py +77 -12
- office365/outlook/mail/messages/pinned_event_message_detail.py +1 -2
- office365/outlook/mail/messages/rules/actions.py +1 -2
- office365/outlook/mail/messages/rules/collection.py +1 -1
- office365/outlook/mail/messages/rules/predicates.py +1 -2
- office365/outlook/mail/messages/rules/rule.py +1 -0
- office365/outlook/mail/messages/rules/size_range.py +0 -3
- office365/outlook/mail/messages/unpinned_event_message_detail.py +1 -2
- office365/outlook/mail/patterned_recurrence.py +1 -2
- office365/outlook/mail/physical_address.py +0 -3
- office365/outlook/mail/post.py +16 -10
- office365/outlook/mail/recipient.py +5 -3
- office365/outlook/mail/recurrence_pattern.py +1 -2
- office365/outlook/mail/recurrence_range.py +0 -2
- office365/outlook/mail/tips/error.py +0 -3
- office365/outlook/mail/tips/tips.py +1 -2
- office365/outlook/people/person_type.py +0 -3
- office365/outlook/people/profile_card_property.py +6 -6
- office365/outlook/person.py +24 -12
- office365/outlook/quotas.py +83 -0
- office365/outlook/resource_link.py +0 -3
- office365/outlook/scored_email_address.py +0 -3
- office365/outlook/timezones/information.py +0 -3
- office365/outlook/timezones/standard_time_zone_offset.py +0 -2
- office365/outlook/user.py +7 -1
- office365/partners/billing/azure_aggregated_usage.py +26 -0
- office365/partners/billing/azure_usage.py +3 -0
- office365/partners/billing/billed_aggregated_usage.py +9 -0
- office365/partners/billing/billing.py +20 -0
- office365/partners/billing/blob.py +0 -3
- office365/partners/billing/export_success_operation.py +2 -0
- office365/partners/billing/failed_operation.py +3 -7
- office365/partners/billing/manifest.py +13 -6
- office365/partners/billing/metrics.py +3 -0
- office365/partners/billing/metrics_base.py +9 -0
- office365/partners/billing/metrics_initial.py +2 -0
- office365/partners/billing/metrics_recent.py +2 -0
- office365/partners/billing/operation.py +6 -10
- office365/partners/billing/reconciliation.py +3 -0
- office365/partners/partners.py +2 -0
- office365/permissions/__init__.py +63 -0
- office365/permissions/catalog.py +96 -0
- office365/permissions/declaration.py +286 -0
- office365/permissions/index.py +209 -0
- office365/permissions/requirement.py +205 -0
- office365/permissions/resource.py +39 -0
- office365/permissions/roles.py +45 -0
- office365/permissions/snapshots/__init__.py +6 -0
- office365/permissions/snapshots/graph.py +1824 -0
- office365/permissions/snapshots/sharepoint.py +85 -0
- office365/permissions/token.py +103 -0
- office365/planner/applied_categories.py +0 -3
- office365/planner/assigned_to_task_board_task_format.py +5 -10
- office365/planner/assignment.py +7 -17
- office365/planner/assignments.py +8 -8
- office365/planner/bucket_task_board_task_format.py +2 -0
- office365/planner/buckets/bucket.py +5 -0
- office365/planner/buckets/collection.py +5 -0
- office365/planner/category_descriptions.py +0 -3
- office365/planner/external_reference.py +1 -2
- office365/planner/group.py +2 -0
- office365/planner/order_hints_by_assignee.py +0 -3
- office365/planner/planner.py +4 -0
- office365/planner/plans/collection.py +6 -0
- office365/planner/plans/container.py +0 -3
- office365/planner/plans/plan.py +8 -1
- office365/planner/progress_task_board_task_format.py +2 -0
- office365/planner/tasks/check_list_item.py +9 -17
- office365/planner/tasks/check_list_items.py +8 -8
- office365/planner/tasks/collection.py +5 -0
- office365/planner/tasks/task.py +24 -8
- office365/planner/tasks/task_details.py +3 -0
- office365/planner/user.py +3 -0
- office365/reports/internal/queries/create_report_query.py +5 -0
- office365/reports/print_usage.py +12 -0
- office365/reports/print_usage_by_printer.py +3 -0
- office365/reports/print_usage_by_user.py +2 -0
- office365/reports/quotas.py +58 -0
- office365/reports/relying_party_detailed_summary.py +12 -0
- office365/reports/report.py +0 -3
- office365/reports/report_result.py +6 -0
- office365/reports/root.py +19 -2
- office365/reports/security/root.py +1 -1
- office365/reports/userregistration/feature_count.py +0 -3
- office365/reports/userregistration/feature_summary.py +1 -2
- office365/reports/userregistration/method_count.py +0 -3
- office365/reports/userregistration/method_summary.py +1 -2
- office365/runtime/auth/authentication_context.py +17 -0
- office365/runtime/auth/entra/authentication_context.py +18 -0
- office365/runtime/client_object.py +153 -55
- office365/runtime/client_object_collection.py +15 -11
- office365/runtime/client_request.py +8 -8
- office365/runtime/client_result.py +18 -3
- office365/runtime/client_runtime_context.py +38 -33
- office365/runtime/client_value.py +93 -30
- office365/runtime/client_value_collection.py +50 -32
- office365/runtime/compare_check.py +81 -0
- office365/runtime/converters/coercion.py +131 -0
- office365/runtime/converters/csv_reader.py +58 -4
- office365/runtime/converters/csv_writer.py +5 -5
- office365/runtime/converters/keyvalue.py +4 -0
- office365/runtime/converters/records.py +34 -2
- office365/runtime/converters/scalars.py +260 -33
- office365/runtime/converters/value.py +147 -36
- office365/runtime/csom/request.py +1 -1
- office365/runtime/display.py +14 -8
- office365/runtime/http/prefer.py +28 -0
- office365/runtime/limits.py +166 -45
- office365/runtime/lro.py +181 -446
- office365/runtime/odata/batch_util.py +27 -10
- office365/runtime/odata/comparable.py +149 -0
- office365/runtime/odata/dialect.py +134 -0
- office365/runtime/odata/edm.py +120 -0
- office365/runtime/odata/json_format.py +259 -43
- office365/runtime/odata/query_options.py +22 -8
- office365/runtime/odata/request.py +32 -104
- office365/runtime/odata/v3/batch_request.py +2 -2
- office365/runtime/odata/v3/json_light_format.py +10 -51
- office365/runtime/odata/v4/batch_request.py +3 -3
- office365/runtime/odata/v4/json_format.py +9 -43
- office365/runtime/odata/v4/upload_session.py +1 -2
- office365/runtime/odata/v4/upload_session_request.py +1 -1
- office365/runtime/operation.py +727 -0
- office365/runtime/operations.py +3 -2
- office365/runtime/paths/builder.py +7 -2
- office365/runtime/paths/resource_path.py +5 -0
- office365/runtime/pollable.py +225 -73
- office365/runtime/queries/client_query.py +23 -5
- office365/runtime/queries/create_entity.py +7 -2
- office365/runtime/queries/read_entity.py +48 -4
- office365/runtime/record_collection.py +55 -21
- office365/runtime/respond_async.py +31 -25
- office365/runtime/retry.py +49 -20
- office365/runtime/schema.py +395 -0
- office365/runtime/serialization.py +55 -0
- office365/runtime/transfer.py +51 -0
- office365/runtime/transport/base.py +18 -3
- office365/runtime/transport/httpx_transport.py +15 -6
- office365/runtime/transport/requests_transport.py +8 -5
- office365/runtime/types/binary_content.py +0 -3
- office365/runtime/types/collections.py +0 -3
- office365/runtime/types/duration.py +21 -9
- office365/runtime/types/error.py +12 -0
- office365/runtime/types/ipv4_cidr_range.py +0 -3
- office365/runtime/types/ipv6_cidr_range.py +0 -3
- office365/runtime/types/json.py +0 -3
- office365/runtime/types/key_value_pair.py +0 -3
- office365/runtime/types/odata_property.py +307 -15
- office365/runtime/types/public_error.py +1 -2
- office365/runtime/types/public_inner_error.py +1 -2
- office365/runtime/types/setting_value.py +0 -3
- office365/search/acronyms/acronym.py +5 -6
- office365/search/aggregation.py +1 -2
- office365/search/aggregation_option.py +0 -2
- office365/search/alteration_options.py +0 -3
- office365/search/alteration_response.py +1 -2
- office365/search/altered_query_token.py +0 -3
- office365/search/answers/answer.py +15 -0
- office365/search/answers/keyword.py +1 -2
- office365/search/answers/variant.py +0 -3
- office365/search/bookmarks/bookmark.py +15 -9
- office365/search/bucket.py +0 -3
- office365/search/bucket_aggregation_definition.py +1 -2
- office365/search/bucket_aggregation_range.py +0 -3
- office365/search/collapse_property.py +1 -2
- office365/search/connection_item.py +0 -3
- office365/search/entity.py +10 -6
- office365/search/external/configuration.py +1 -2
- office365/search/external/connection.py +18 -7
- office365/search/external/external.py +2 -0
- office365/search/external/item.py +11 -10
- office365/search/external/item_configuration.py +1 -2
- office365/search/external/search_settings.py +1 -2
- office365/search/hits/container.py +1 -2
- office365/search/hits/hit.py +0 -3
- office365/search/identity.py +0 -3
- office365/search/identity_set.py +1 -2
- office365/search/qnas/qna.py +13 -9
- office365/search/query.py +0 -3
- office365/search/recommended_action.py +0 -3
- office365/search/request.py +4 -5
- office365/search/response.py +1 -2
- office365/search/result_template.py +1 -2
- office365/search/result_template_dictionary.py +0 -3
- office365/search/result_template_option.py +0 -3
- office365/search/retrieval_extract.py +0 -3
- office365/search/retrieval_hit.py +1 -2
- office365/search/retrieval_response.py +1 -2
- office365/search/search_alteration.py +1 -2
- office365/search/search_alteration_options.py +0 -3
- office365/search/search_resource_metadata_dictionary.py +0 -3
- office365/search/search_result.py +0 -3
- office365/search/sharepoint_onedrive_options.py +0 -3
- office365/search/sort_property.py +0 -3
- office365/security/a365_ai_guardrail.py +7 -0
- office365/security/a365_ai_inference_call.py +0 -3
- office365/security/a365_ai_invoke_agent.py +0 -3
- office365/security/a365_ai_run_summary.py +0 -3
- office365/security/a365_span_outputs.py +0 -3
- office365/security/account.py +1 -2
- office365/security/account_entity_mapping.py +17 -0
- office365/security/account_object_id_action.py +11 -0
- office365/security/account_sid_action.py +11 -0
- office365/security/account_target_content.py +0 -3
- office365/security/activity_metadata.py +0 -3
- office365/security/address_book_account_target_content.py +1 -2
- office365/security/aed_audit_record.py +0 -3
- office365/security/agent_admin_activity_record.py +0 -3
- office365/security/agent_setting_admin_activity.py +0 -3
- office365/security/ai_agent_evidence.py +0 -3
- office365/security/ai_guardrail.py +7 -0
- office365/security/aip_discover.py +0 -3
- office365/security/aip_file_deleted.py +0 -3
- office365/security/aip_heart_beat.py +0 -3
- office365/security/aip_protection_action_log_request.py +0 -3
- office365/security/aip_scanner_discover_event.py +0 -3
- office365/security/aip_sensitivity_label_action_log_request.py +0 -3
- office365/security/air_admin_action_investigation_data.py +0 -3
- office365/security/air_investigation_data.py +0 -3
- office365/security/alerts/active_directory_domain_evidence.py +1 -2
- office365/security/alerts/alert.py +81 -89
- office365/security/alerts/azure_resource_evidence.py +0 -3
- office365/security/alerts/blob_container_evidence.py +1 -2
- office365/security/alerts/blob_evidence.py +1 -2
- office365/security/alerts/comment.py +1 -2
- office365/security/alerts/custom_details.py +7 -0
- office365/security/alerts/detection.py +0 -3
- office365/security/alerts/evidence.py +1 -2
- office365/security/alerts/file_security_state.py +1 -2
- office365/security/alerts/history_state.py +0 -2
- office365/security/alerts/sas_token_evidence.py +1 -2
- office365/security/alerts/template.py +24 -0
- office365/security/alerts/trigger.py +0 -3
- office365/security/amazon_resource_entity_mapping.py +11 -0
- office365/security/amazon_resource_evidence.py +0 -3
- office365/security/analyzed_message_evidence.py +1 -2
- office365/security/article.py +12 -8
- office365/security/assigned_training_info.py +0 -3
- office365/security/attacksimulations/automation.py +11 -10
- office365/security/attacksimulations/automation_run.py +7 -10
- office365/security/attacksimulations/event.py +1 -2
- office365/security/attacksimulations/landing_page.py +15 -19
- office365/security/attacksimulations/landing_page_detail.py +4 -0
- office365/security/attacksimulations/login_page.py +15 -22
- office365/security/attacksimulations/operations/operation.py +6 -10
- office365/security/attacksimulations/payload.py +35 -70
- office365/security/attacksimulations/repeat_offender.py +1 -2
- office365/security/attacksimulations/reports/overview.py +1 -2
- office365/security/attacksimulations/reports/report.py +1 -2
- office365/security/attacksimulations/root.py +8 -2
- office365/security/attacksimulations/simulation.py +35 -56
- office365/security/attacksimulations/training_user_coverage.py +1 -2
- office365/security/attacksimulations/user.py +0 -3
- office365/security/attacksimulations/user_coverage.py +1 -2
- office365/security/attacksimulations/users/details.py +1 -2
- office365/security/attribute_definition.py +1 -2
- office365/security/attribute_definition_metadata_entry.py +0 -3
- office365/security/attribute_mapping_parameter_schema.py +0 -3
- office365/security/attribute_mapping_source.py +0 -2
- office365/security/audit/a365_ai_execute_tool.py +0 -3
- office365/security/audit/aad_risk_detection_audit_record.py +0 -3
- office365/security/audit/ai_app_interaction_audit_record.py +0 -3
- office365/security/audit/ai_execute_tool_audit_record.py +0 -3
- office365/security/audit/ai_interactions_change_notification_audit_record.py +0 -3
- office365/security/audit/ai_interactions_export_audit_record.py +0 -3
- office365/security/audit/ai_interactions_subscription_audit_record.py +0 -3
- office365/security/audit/ai_invoke_agent_audit_record.py +0 -3
- office365/security/audit/ai_span_outputs_audit_record.py +0 -3
- office365/security/audit/air_manual_investigation_data.py +0 -3
- office365/security/audit/alert_submission_audit_record.py +0 -3
- office365/security/audit/alert_submission_result_detail_audit_record.py +0 -3
- office365/security/audit/attack_sim_admin_audit_record.py +0 -3
- office365/security/audit/attack_sim_audit_record.py +0 -3
- office365/security/audit/audit_config_audit_record.py +0 -3
- office365/security/audit/audit_data.py +1 -2
- office365/security/audit/audit_record_type_dictionary.py +0 -3
- office365/security/audit/audit_search_audit_record.py +0 -3
- office365/security/audit/azfw_application_rule_aggregation_event_record.py +0 -3
- office365/security/audit/azfw_dns_query_event_record.py +0 -3
- office365/security/audit/azfw_network_rule_event_record.py +0 -3
- office365/security/audit/azure_active_directory_account_logon_audit_record.py +0 -3
- office365/security/audit/azure_active_directory_audit_record.py +0 -3
- office365/security/audit/azure_active_directory_sts_logon_audit_record.py +0 -3
- office365/security/audit/azure_ai_search_audit_record.py +0 -3
- office365/security/audit/campaign_audit_record.py +0 -3
- office365/security/audit/ccrai_policy_violation_record.py +0 -3
- office365/security/audit/cdp_classifier_health_record.py +0 -3
- office365/security/audit/cdp_cold_crawl_status_record.py +0 -3
- office365/security/audit/cdp_consumption_resource_record.py +0 -3
- office365/security/audit/cdp_content_explorer_aggregate_record.py +0 -3
- office365/security/audit/cdp_dlp_sensitive_endpoint_audit_record.py +0 -3
- office365/security/audit/cdp_log_record.py +0 -3
- office365/security/audit/cdp_ocr_billing_record.py +0 -3
- office365/security/audit/cdp_resource_scope_change_event_record.py +0 -3
- office365/security/audit/cdpdlmai_interaction_insights_record.py +0 -3
- office365/security/audit/cloud_update_device_config_audit_record.py +0 -3
- office365/security/audit/cloud_update_profile_config_audit_record.py +0 -3
- office365/security/audit/cloud_update_tenant_config_audit_record.py +0 -3
- office365/security/audit/compliance_connector_audit_record.py +0 -3
- office365/security/audit/compliance_dlm_exchange_audit_record.py +0 -3
- office365/security/audit/compliance_dlm_share_point_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_applications_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_applications_classification_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_endpoint_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_endpoint_discovery_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_enforcement_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_exchange_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_exchange_classification_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_exchange_classification_cdp_record.py +0 -3
- office365/security/audit/compliance_dlp_exchange_discovery_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_share_point_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_share_point_classification_audit_record.py +0 -3
- office365/security/audit/compliance_dlp_share_point_classification_cdp_record.py +0 -3
- office365/security/audit/compliance_dlp_share_point_classification_extended_audit_record.py +0 -3
- office365/security/audit/compliance_exchange_ocr_audit_record.py +0 -3
- office365/security/audit/compliance_manager_action_record.py +0 -3
- office365/security/audit/compliance_policy_grading_share_point_audit_record.py +0 -3
- office365/security/audit/compliance_settings_change_audit_record.py +0 -3
- office365/security/audit/compliance_sit_grading_share_point_audit_record.py +0 -3
- office365/security/audit/compliance_supervision_exchange_audit_record.py +0 -3
- office365/security/audit/connected_ai_app_interaction_audit_record.py +0 -3
- office365/security/audit/consumption_resource_audit_record.py +0 -3
- office365/security/audit/content_store_metadata_record.py +0 -3
- office365/security/audit/copilot_agent_management_audit_record.py +0 -3
- office365/security/audit/copilot_for_security_logging_audit_record.py +0 -3
- office365/security/audit/copilot_for_security_trigger_audit_record.py +0 -3
- office365/security/audit/copilot_interaction_audit_record.py +0 -3
- office365/security/audit/copilot_plugin_setting_audit_record.py +0 -3
- office365/security/audit/copilot_prompt_book_setting_audit_record.py +0 -3
- office365/security/audit/copilot_session_sharing_audit_record.py +0 -3
- office365/security/audit/copilot_setting_audit_record.py +0 -3
- office365/security/audit/copilot_workspace_setting_audit_record.py +0 -3
- office365/security/audit/core_reporting_settings_audit_record.py +0 -3
- office365/security/audit/core_root.py +5 -0
- office365/security/audit/critical_asset_management_classification_record.py +0 -3
- office365/security/audit/crm_entity_operation_audit_record.py +0 -3
- office365/security/audit/cross_tenant_access_policy_audit_record.py +0 -3
- office365/security/audit/device_discovery_settings_authenticated_scans_record.py +0 -3
- office365/security/audit/device_discovery_settings_exclusion_record.py +0 -3
- office365/security/audit/device_discovery_settings_record.py +0 -3
- office365/security/audit/discovery_audit_record.py +0 -3
- office365/security/audit/dlp_endpoint_audit_record.py +0 -3
- office365/security/audit/dlp_import_result_audit_record.py +0 -3
- office365/security/audit/dragon_copilot_access_record.py +0 -3
- office365/security/audit/dragon_copilot_admin_record.py +0 -3
- office365/security/audit/dragon_copilot_clinical_data_record.py +0 -3
- office365/security/audit/dragon_copilot_session_record.py +0 -3
- office365/security/audit/dynamics365_business_central_audit_record.py +0 -3
- office365/security/audit/ehr_connector_audit_base_record.py +0 -3
- office365/security/audit/eop_submission_feed_entity_audit_record.py +0 -3
- office365/security/audit/exchange_admin_audit_record.py +0 -3
- office365/security/audit/exchange_aggregated_mailbox_audit_record.py +0 -3
- office365/security/audit/exchange_aggregated_operation_record.py +0 -3
- office365/security/audit/exchange_mailbox_audit_group_record.py +0 -3
- office365/security/audit/exchange_mailbox_audit_record.py +0 -3
- office365/security/audit/hosted_rpa_audit_record.py +0 -3
- office365/security/audit/hr_signal_audit_record.py +0 -3
- office365/security/audit/hygiene_event_record.py +0 -3
- office365/security/audit/information_barrier_policy_application_audit_record.py +0 -3
- office365/security/audit/information_worker_protection_audit_record.py +0 -3
- office365/security/audit/insider_risk_scoped_user_insights_record.py +0 -3
- office365/security/audit/insider_risk_scoped_users_record.py +0 -3
- office365/security/audit/log_query.py +22 -10
- office365/security/audit/log_record.py +17 -12
- office365/security/audit/microsoft_stream_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_admin_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_analytics_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_device_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_retention_label_action_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_sensitivity_label_action_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_shifts_audit_record.py +0 -3
- office365/security/audit/microsoft_teams_user_concern_audit_record.py +0 -3
- office365/security/audit/multi_tenant_organization_join_request_transition_details.py +0 -3
- office365/security/audit/multi_tenant_organization_member_transition_details.py +0 -3
- office365/security/audit/whois_record.py +2 -0
- office365/security/auto_auditing_configuration.py +2 -0
- office365/security/automated_action.py +7 -0
- office365/security/automated_action_set.py +64 -0
- office365/security/autonomous_system.py +0 -3
- office365/security/average_comparative_score.py +0 -3
- office365/security/azure_resource_entity_mapping.py +11 -0
- office365/security/base_end_user_notification.py +0 -2
- office365/security/cases/case.py +3 -0
- office365/security/cases/ediscovery.py +11 -2
- office365/security/cases/operation.py +13 -17
- office365/security/cases/root.py +4 -1
- office365/security/category_template.py +2 -0
- office365/security/certification_control.py +0 -3
- office365/security/citation_template.py +3 -0
- office365/security/cloud_app_security_state.py +0 -3
- office365/security/cloud_application_entity_mapping.py +12 -0
- office365/security/cloud_application_evidence.py +1 -2
- office365/security/cloud_clipboard_item.py +7 -10
- office365/security/cloud_clipboard_item_payload.py +0 -3
- office365/security/cloud_clipboard_root.py +2 -0
- office365/security/cloud_flare_rule_model.py +0 -3
- office365/security/cloud_flare_ruleset_model.py +0 -3
- office365/security/cloud_flare_verified_details_model.py +1 -2
- office365/security/cloud_flare_web_application_firewall_provider.py +3 -0
- office365/security/cloud_logon_request_evidence.py +0 -3
- office365/security/cloud_logon_session_evidence.py +1 -2
- office365/security/cloud_pc_audit_event.py +20 -38
- office365/security/cloud_pc_device_image.py +17 -24
- office365/security/cloud_pc_gallery_image.py +13 -10
- office365/security/cloud_pc_on_premises_connection.py +30 -24
- office365/security/cloud_pc_provisioning_policy.py +32 -40
- office365/security/cloud_pc_provisioning_policy_assignment.py +6 -7
- office365/security/cloud_pc_service_plan.py +5 -0
- office365/security/cloud_pc_user_setting.py +9 -7
- office365/security/cloud_pc_user_setting_assignment.py +7 -10
- office365/security/cloud_security_connector.py +7 -0
- office365/security/cloud_security_enablement.py +7 -0
- office365/security/cloud_security_management.py +7 -0
- office365/security/cloud_video_interop_info.py +0 -3
- office365/security/coachmark_location.py +0 -3
- office365/security/collaboration/analyzed_email.py +53 -83
- office365/security/collaboration/analyzed_email_attachment.py +1 -2
- office365/security/collaboration/analyzed_email_authentication_detail.py +0 -3
- office365/security/collaboration/analyzed_email_delivery_detail.py +0 -3
- office365/security/collaboration/analyzed_email_dlp_rule_info.py +0 -3
- office365/security/collaboration/analyzed_email_exchange_transport_rule_info.py +0 -3
- office365/security/collaboration/analyzed_email_recipient_detail.py +1 -2
- office365/security/collaboration/analyzed_email_sender_detail.py +1 -2
- office365/security/collaboration/analyzed_email_url.py +1 -2
- office365/security/collaboration/collaboration_root.py +2 -0
- office365/security/compliance_endpoint_evaluation_incomplete.py +7 -0
- office365/security/compliance_evaluation_incomplete.py +7 -0
- office365/security/compromise_indicator.py +0 -3
- office365/security/container_evidence.py +1 -2
- office365/security/container_filter.py +1 -2
- office365/security/container_image_evidence.py +1 -2
- office365/security/container_registry_evidence.py +0 -3
- office365/security/control_score.py +0 -3
- office365/security/cortana_briefing_audit_record.py +0 -3
- office365/security/csc_content_metadata.py +7 -0
- office365/security/custom_training_setting.py +1 -2
- office365/security/customer_key_service_encryption_audit_record.py +0 -3
- office365/security/cvss_summary.py +0 -3
- office365/security/data_center_security_cmdlet_audit_record.py +0 -3
- office365/security/data_governance_audit_record.py +0 -3
- office365/security/data_insights_rest_api_audit_record.py +0 -3
- office365/security/data_lake_export_operation_audit_record.py +0 -3
- office365/security/data_set.py +5 -0
- office365/security/data_share_operation_audit_record.py +0 -3
- office365/security/data_source_container.py +7 -0
- office365/security/datasecurity/application_mode.py +14 -0
- office365/security/datasecurity/classifcation_error_base.py +1 -2
- office365/security/datasecurity/classification_error.py +1 -2
- office365/security/datasecurity/classification_inner_error.py +1 -2
- office365/security/datasecurity/compute_rights_and_inheritance_result.py +0 -2
- office365/security/datasecurity/current_label.py +13 -0
- office365/security/datasecurity/custom_metadata_dictionary.py +0 -3
- office365/security/datasecurity/dlp_action_info.py +0 -3
- office365/security/datasecurity/governance.py +2 -1
- office365/security/datasecurity/integrated_application_metadata.py +0 -3
- office365/security/datasecurity/investigation_audit_record.py +0 -3
- office365/security/datasecurity/label_content_right.py +6 -3
- office365/security/datasecurity/policy_binding.py +1 -2
- office365/security/datasecurity/policy_location.py +0 -3
- office365/security/datasecurity/policy_location_application.py +0 -3
- office365/security/datasecurity/policy_location_domain.py +0 -3
- office365/security/datasecurity/policy_location_url.py +0 -3
- office365/security/datasecurity/policy_scope_base.py +1 -2
- office365/security/datasecurity/policy_tenant_scope.py +1 -2
- office365/security/datasecurity/policy_tip_action.py +0 -3
- office365/security/datasecurity/policy_user_scope.py +0 -3
- office365/security/datasecurity/process_content_batch_request.py +1 -2
- office365/security/datasecurity/process_content_request.py +1 -2
- office365/security/datasecurity/process_content_response.py +1 -2
- office365/security/datasecurity/process_content_responses.py +1 -2
- office365/security/datasecurity/process_conversation_metadata.py +1 -2
- office365/security/datasecurity/process_file_metadata.py +1 -2
- office365/security/datasecurity/protected_content.py +0 -3
- office365/security/datasecurity/sensitivity_label.py +23 -5
- office365/security/datasecurity/usage_rights_included.py +6 -6
- office365/security/default_audit_data.py +0 -3
- office365/security/defender_automation_rule.py +7 -0
- office365/security/defender_case_management_audit_record.py +0 -3
- office365/security/defender_generated_playbook.py +7 -0
- office365/security/defender_integration.py +7 -0
- office365/security/defender_preview_features_record.py +0 -3
- office365/security/defender_security_for_ai_configuration_audit_record.py +0 -3
- office365/security/deploy_feature_activity_record.py +0 -3
- office365/security/deployment_access_key_type.py +0 -3
- office365/security/detection_action.py +18 -0
- office365/security/detection_rule.py +77 -0
- office365/security/detection_rule_status.py +14 -0
- office365/security/detonation_behaviour_details.py +1 -2
- office365/security/detonation_chain.py +1 -2
- office365/security/detonation_details.py +1 -2
- office365/security/detonation_observables.py +1 -2
- office365/security/device_action.py +11 -0
- office365/security/device_evidence.py +1 -2
- office365/security/dictionary.py +0 -3
- office365/security/dlp_sensitive_information_type_rule_package_cmdlet_record.py +0 -3
- office365/security/dns_entity_mapping.py +13 -0
- office365/security/dns_evidence.py +1 -2
- office365/security/dspm_admin_activity.py +7 -0
- office365/security/dynamic_column_value.py +0 -3
- office365/security/ecs_content_metadata.py +7 -0
- office365/security/ediscovery/case_member.py +6 -6
- office365/security/ediscovery/custodian.py +7 -0
- office365/security/ediscovery/ediscovery_case_settings.py +9 -21
- office365/security/ediscovery/ediscovery_estimate_operation.py +12 -6
- office365/security/ediscovery/ediscovery_export_operation.py +10 -6
- office365/security/ediscovery/ediscovery_review_tag.py +4 -0
- office365/security/ediscovery/noncustodial_data_source.py +3 -0
- office365/security/ediscovery/operations/add_to_review_set.py +9 -3
- office365/security/ediscovery/operations/hold_policy_sync.py +3 -7
- office365/security/ediscovery/operations/purge_data.py +3 -7
- office365/security/ediscovery/operations/search_export.py +13 -3
- office365/security/ediscovery/review_set.py +2 -0
- office365/security/ediscovery/search.py +7 -0
- office365/security/email_action.py +12 -0
- office365/security/email_payload_detail.py +0 -3
- office365/security/email_sender.py +0 -3
- office365/security/end_user_notification.py +16 -26
- office365/security/end_user_notification_detail.py +9 -6
- office365/security/end_user_notification_setting.py +1 -2
- office365/security/entity_mapping.py +7 -0
- office365/security/entity_mapping_configuration.py +77 -0
- office365/security/event_propagation_result.py +0 -3
- office365/security/event_query.py +0 -3
- office365/security/export_file_metadata.py +0 -3
- office365/security/expression_input_object.py +1 -2
- office365/security/fabric_audit_record.py +0 -3
- office365/security/fabric_policy_record.py +0 -3
- office365/security/file_action.py +16 -0
- office365/security/file_details.py +0 -3
- office365/security/file_entity_mapping.py +13 -0
- office365/security/file_evidence.py +1 -2
- office365/security/file_hash.py +0 -3
- office365/security/file_hash_evidence.py +0 -3
- office365/security/file_plan_applied_category.py +1 -2
- office365/security/file_plan_authority.py +0 -3
- office365/security/file_plan_citation.py +0 -3
- office365/security/file_plan_department.py +0 -3
- office365/security/file_plan_descriptor_base.py +0 -3
- office365/security/file_plan_descriptor_template.py +4 -0
- office365/security/file_plan_reference.py +0 -3
- office365/security/file_plan_subcategory.py +0 -3
- office365/security/filter.py +1 -2
- office365/security/filter_clause.py +1 -2
- office365/security/filter_group.py +1 -2
- office365/security/filter_operand.py +1 -2
- office365/security/filtering_teams_message_file_info.py +7 -0
- office365/security/formatted_content.py +0 -3
- office365/security/geo_location.py +0 -3
- office365/security/git_hub_organization_evidence.py +0 -3
- office365/security/git_hub_repo_evidence.py +0 -3
- office365/security/git_hub_user_evidence.py +0 -3
- office365/security/google_cloud_resource_entity_mapping.py +11 -0
- office365/security/google_cloud_resource_evidence.py +0 -3
- office365/security/group_entity_mapping.py +13 -0
- office365/security/group_filter.py +1 -2
- office365/security/health_issue.py +14 -0
- office365/security/healthcare_signal_record.py +0 -3
- office365/security/host_entity_mapping.py +15 -0
- office365/security/host_security_state.py +0 -3
- office365/security/host_ssl_certificate_port.py +0 -2
- office365/security/hunting_query_results.py +1 -2
- office365/security/hyperlink.py +0 -3
- office365/security/identity_accounts.py +9 -6
- office365/security/incidents/incident.py +24 -13
- office365/security/include_all_account_target_content.py +0 -3
- office365/security/indicator.py +4 -7
- office365/security/integrated_apps_app_admin_activity_audit_record.py +0 -3
- office365/security/integrated_apps_app_settings_admin_activity_audit_record.py +0 -3
- office365/security/intelligence_profile_country_or_region_of_origin.py +0 -3
- office365/security/intelligence_profile_indicator.py +3 -0
- office365/security/investigation_security_state.py +0 -3
- office365/security/invoke_action_result.py +0 -2
- office365/security/io_t_device_evidence.py +1 -2
- office365/security/ip_address.py +7 -6
- office365/security/ip_entity_mapping.py +12 -0
- office365/security/ip_evidence.py +1 -2
- office365/security/irm_activity_audit_trail_record.py +0 -3
- office365/security/irm_user_defined_detection_record.py +0 -3
- office365/security/isolate_device_action.py +12 -0
- office365/security/isolation_type.py +13 -0
- office365/security/kaizala_audit_record.py +0 -3
- office365/security/kubernetes_cluster_evidence.py +1 -2
- office365/security/kubernetes_controller_evidence.py +1 -2
- office365/security/kubernetes_namespace_evidence.py +1 -2
- office365/security/kubernetes_pod_evidence.py +1 -2
- office365/security/kubernetes_secret_evidence.py +1 -2
- office365/security/kubernetes_service_account_evidence.py +1 -2
- office365/security/kubernetes_service_evidence.py +1 -2
- office365/security/kubernetes_service_port.py +0 -3
- office365/security/labels/analytics_aggregate_audit_record.py +0 -3
- office365/security/labels/content_explorer_audit_record.py +0 -3
- office365/security/labels/retention/collection.py +13 -0
- office365/security/labels/retention/disposition_review_stage.py +5 -0
- office365/security/labels/retention/duration_in_days.py +0 -3
- office365/security/labels/retention/fileplan_descriptor.py +16 -23
- office365/security/labels/retention/label.py +7 -2
- office365/security/labels/root.py +6 -2
- office365/security/large_content_metadata_audit_record.py +0 -3
- office365/security/logged_on_user.py +0 -3
- office365/security/m365_compliance_connector_audit_record.py +0 -3
- office365/security/m365_search_sections_record.py +0 -3
- office365/security/m365daad_audit_record.py +0 -3
- office365/security/m365odsp_asset_metadata_record.py +0 -3
- office365/security/mail_cluster_entity_mapping.py +12 -0
- office365/security/mail_cluster_evidence.py +1 -2
- office365/security/mail_message_entity_mapping.py +14 -0
- office365/security/mail_submission_data.py +0 -3
- office365/security/mailbox_configuration_evidence.py +0 -2
- office365/security/mailbox_entity_mapping.py +11 -0
- office365/security/mailbox_evidence.py +1 -2
- office365/security/malware_state.py +0 -3
- office365/security/managed_services_audit_record.py +0 -3
- office365/security/managed_tenants_audit_record.py +0 -3
- office365/security/mapg_alerts_audit_record.py +0 -3
- office365/security/mapg_onboard_audit_record.py +0 -3
- office365/security/mapg_policy_audit_record.py +0 -3
- office365/security/mapg_remediation_audit_record.py +0 -3
- office365/security/mcas_alerts_audit_record.py +0 -3
- office365/security/mcs_raw_email_content_metadata.py +7 -0
- office365/security/mda_audit_record.py +0 -3
- office365/security/mda_data_security_signal_record.py +0 -3
- office365/security/mdash_audit_record.py +0 -3
- office365/security/mdatp_audit_record.py +0 -3
- office365/security/mdc_events_record.py +0 -3
- office365/security/mdi_audit_record.py +0 -3
- office365/security/merge_response.py +0 -3
- office365/security/mes_raw_email_content_metadata.py +7 -0
- office365/security/mesh_worlds_audit_record.py +0 -3
- office365/security/message_security_state.py +0 -2
- office365/security/microsoft365_backup_backup_item_audit_record.py +0 -3
- office365/security/microsoft365_backup_backup_policy_audit_record.py +0 -3
- office365/security/microsoft365_backup_granular_browse_task_audit_record.py +0 -3
- office365/security/microsoft365_backup_restore_item_audit_record.py +0 -3
- office365/security/microsoft365_backup_restore_task_audit_record.py +0 -3
- office365/security/microsoft365_copilot_scheduled_prompt_audit_record.py +0 -3
- office365/security/microsoft_custom_training_setting.py +1 -2
- office365/security/microsoft_defender_experts_xdr_audit_record.py +0 -3
- office365/security/microsoft_flow_audit_record.py +0 -3
- office365/security/microsoft_forms_audit_record.py +0 -3
- office365/security/microsoft_graph_data_connect_consent.py +0 -3
- office365/security/microsoft_graph_data_connect_operation.py +0 -3
- office365/security/microsoft_managed_training_setting.py +0 -2
- office365/security/microsoft_purview_data_catalog_operation_record.py +0 -3
- office365/security/microsoft_purview_data_map_operation_record.py +0 -3
- office365/security/microsoft_purview_metadata_policy_operation_record.py +0 -3
- office365/security/microsoft_purview_policy_operation_record.py +0 -3
- office365/security/microsoft_purview_privacy_audit_event.py +0 -3
- office365/security/microsoft_purview_unified_catalog_operation_record.py +0 -3
- office365/security/microsoft_security_for_ai_configuration.py +7 -0
- office365/security/microsoft_security_for_ai_real_time_protection.py +7 -0
- office365/security/microsoft_teams_move_messages.py +7 -0
- office365/security/microsoft_training_assignment_mapping.py +1 -2
- office365/security/mip_auto_label_exchange_item_audit_record.py +0 -3
- office365/security/mip_auto_label_progress_feedback_audit_record.py +0 -3
- office365/security/mip_auto_label_share_point_item_audit_record.py +0 -3
- office365/security/mip_auto_label_share_point_policy_location_audit_record.py +0 -3
- office365/security/mip_auto_label_simulation_share_point_completion_record.py +0 -3
- office365/security/mip_auto_label_simulation_share_point_progress_record.py +0 -3
- office365/security/mip_auto_label_simulation_statistics_record.py +0 -3
- office365/security/mip_exact_data_match_audit_record.py +0 -3
- office365/security/mip_label_analytics_audit_record.py +0 -3
- office365/security/mip_label_audit_record.py +0 -3
- office365/security/mitre_tactic.py +18 -0
- office365/security/mitre_technique.py +15 -0
- office365/security/mos_agent_info_record.py +0 -3
- office365/security/mos_agent_info_record_v2.py +0 -3
- office365/security/ms365d_custom_detection_audit_record.py +0 -3
- office365/security/ms365d_incident_audit_record.py +0 -3
- office365/security/ms365d_suppression_rule_audit_record.py +0 -3
- office365/security/msde_custom_collection_audit_record.py +0 -3
- office365/security/msde_general_settings_audit_record.py +0 -3
- office365/security/msde_indicators_settings_audit_record.py +0 -3
- office365/security/msde_response_actions_audit_record.py +0 -3
- office365/security/msde_roles_settings_audit_record.py +0 -3
- office365/security/msp_vector_search_content_metadata_audit_record.py +0 -3
- office365/security/mstic_nation_state_notification_record.py +0 -3
- office365/security/mtp_content_metadata.py +7 -0
- office365/security/multi_stage_disposition_audit_record.py +0 -3
- office365/security/my_analytics_settings_audit_record.py +0 -3
- office365/security/network_adapter.py +3 -0
- office365/security/network_connection.py +0 -2
- office365/security/network_connection_evidence.py +1 -2
- office365/security/nic_evidence.py +1 -2
- office365/security/no_training_notification_setting.py +1 -2
- office365/security/no_training_setting.py +0 -3
- office365/security/noisy_alert_policy_audit_record.py +0 -3
- office365/security/o_auth_application_entity_mapping.py +11 -0
- office365/security/oauth_application_evidence.py +0 -3
- office365/security/object_definition.py +1 -2
- office365/security/object_definition_metadata_entry.py +0 -3
- office365/security/object_mapping.py +1 -2
- office365/security/object_mapping_metadata_entry.py +0 -3
- office365/security/ocr_settings.py +0 -2
- office365/security/office_native_audit_record.py +0 -3
- office365/security/ome_portal_audit_record.py +0 -3
- office365/security/on_demand_exchange_classification.py +7 -0
- office365/security/on_demand_share_point_classification_audit_record.py +0 -3
- office365/security/on_premises_file_share_scanner_dlp_audit_record.py +0 -3
- office365/security/on_premises_share_point_scanner_dlp_audit_record.py +0 -3
- office365/security/one_drive_audit_record.py +0 -3
- office365/security/organizational_data_in_m365_audit_record.py +0 -3
- office365/security/organizational_scope.py +14 -0
- office365/security/outlook_copilot_automation_audit_record.py +0 -3
- office365/security/owa_get_access_token_for_resource_audit_record.py +0 -3
- office365/security/p4_ai_risk_score_record.py +0 -3
- office365/security/p4ai_assessment_category_record.py +0 -3
- office365/security/p4ai_assessment_fabric_scanner_record.py +0 -3
- office365/security/p4ai_assessment_location_result_record.py +0 -3
- office365/security/p4ai_assessment_record.py +0 -3
- office365/security/p4ai_dag_site_permissions_record.py +7 -0
- office365/security/parse_expression_response.py +1 -2
- office365/security/passive_dns_record.py +7 -0
- office365/security/payload_coachmark.py +1 -2
- office365/security/payload_detail.py +1 -2
- office365/security/people_admin_settings_audit_record.py +0 -3
- office365/security/people_skills_admin.py +7 -0
- office365/security/people_skills_user.py +7 -0
- office365/security/physical_badging_signal_audit_record.py +0 -3
- office365/security/places_directory_audit_record.py +0 -3
- office365/security/planner_chat_message_audit_record.py +0 -3
- office365/security/planner_chat_message_list_audit_record.py +0 -3
- office365/security/planner_copy_plan_audit_record.py +0 -3
- office365/security/planner_custom_field_definition.py +7 -0
- office365/security/planner_custom_field_definition_list.py +7 -0
- office365/security/planner_dependency.py +7 -0
- office365/security/planner_dependency_list.py +7 -0
- office365/security/planner_goal_audit_record.py +0 -3
- office365/security/planner_goal_list_audit_record.py +0 -3
- office365/security/planner_plan_audit_record.py +0 -3
- office365/security/planner_plan_list_audit_record.py +0 -3
- office365/security/planner_plan_sensitivity_label_audit_record.py +0 -3
- office365/security/planner_roster_audit_record.py +0 -3
- office365/security/planner_roster_sensitivity_label_audit_record.py +0 -3
- office365/security/planner_task_audit_record.py +0 -3
- office365/security/planner_task_list_audit_record.py +0 -3
- office365/security/planner_tenant_settings_audit_record.py +0 -3
- office365/security/policy_config_change_audit_record.py +0 -3
- office365/security/positive_reinforcement_notification.py +0 -3
- office365/security/power_apps_audit_app_record.py +0 -3
- office365/security/power_apps_audit_plan_record.py +0 -3
- office365/security/power_apps_audit_resource_record.py +0 -3
- office365/security/power_bi_audit_record.py +0 -3
- office365/security/power_bi_dlp_audit_record.py +0 -3
- office365/security/power_pages_site_audit_record.py +0 -3
- office365/security/power_platform_admin_dlp_audit_record.py +0 -3
- office365/security/power_platform_admin_environment_audit_record.py +0 -3
- office365/security/power_platform_administrator_activity_record.py +0 -3
- office365/security/power_platform_lockbox_resource_access_request_audit_record.py +0 -3
- office365/security/power_platform_lockbox_resource_command_audit_record.py +0 -3
- office365/security/power_platform_service_activity_audit_record.py +0 -3
- office365/security/power_platform_tenant_isolation_record.py +0 -3
- office365/security/priva_privacy_assessment_operation_record.py +0 -3
- office365/security/priva_privacy_consent_operation_record.py +0 -3
- office365/security/privacy_data_match_audit_record.py +0 -3
- office365/security/privacy_data_minimization_record.py +0 -3
- office365/security/privacy_digest_email_record.py +0 -3
- office365/security/privacy_open_access_audit_record.py +0 -3
- office365/security/privacy_portal_audit_record.py +0 -3
- office365/security/privacy_remediation_action_record.py +0 -3
- office365/security/privacy_remediation_record.py +0 -3
- office365/security/process.py +1 -2
- office365/security/process_entity_mapping.py +12 -0
- office365/security/processing_error.py +0 -3
- office365/security/project_audit_record.py +0 -3
- office365/security/project_for_the_web_assigned_to_me_settings_audit_record.py +0 -3
- office365/security/project_for_the_web_project_audit_record.py +0 -3
- office365/security/project_for_the_web_project_settings_audit_record.py +0 -3
- office365/security/project_for_the_web_roadmap_audit_record.py +0 -3
- office365/security/project_for_the_web_roadmap_item_audit_record.py +0 -3
- office365/security/project_for_the_web_roadmap_settings_audit_record.py +0 -3
- office365/security/project_for_the_web_task_audit_record.py +0 -3
- office365/security/public_error_response.py +1 -2
- office365/security/public_folder_audit_record.py +0 -3
- office365/security/purview_insider_risk_alerts_record.py +0 -3
- office365/security/purview_insider_risk_cases_record.py +0 -3
- office365/security/purview_mc_recommendation_record.py +0 -3
- office365/security/purview_posture_agent_audit_record.py +0 -3
- office365/security/quarantine_audit_record.py +0 -3
- office365/security/query_condition.py +11 -0
- office365/security/quotas.py +141 -0
- office365/security/recipient_type.py +2 -0
- office365/security/records_management_audit_record.py +0 -3
- office365/security/redundancy_detection_settings.py +0 -3
- office365/security/referenced_object.py +0 -3
- office365/security/registry_key_evidence.py +0 -3
- office365/security/registry_key_state.py +0 -3
- office365/security/registry_value_entity_mapping.py +12 -0
- office365/security/registry_value_evidence.py +0 -3
- office365/security/report_file_metadata.py +0 -3
- office365/security/report_submission.py +0 -3
- office365/security/report_submission_result_detail.py +0 -3
- office365/security/resource_access_event.py +1 -2
- office365/security/restricted_mode_audit_record.py +0 -3
- office365/security/retention_duration_forever.py +0 -3
- office365/security/retention_event.py +17 -18
- office365/security/retention_event_status.py +1 -2
- office365/security/retention_policy_audit_record.py +0 -3
- office365/security/rti_operations_agent_audit_record.py +0 -3
- office365/security/rule_schedule.py +16 -0
- office365/security/rules_root.py +30 -0
- office365/security/sbp_configuration_event_record.py +0 -3
- office365/security/sbp_usage_event_record.py +0 -3
- office365/security/score_evidence.py +0 -3
- office365/security/score_platform_generic_audit_record.py +0 -3
- office365/security/scorecontrol/profile.py +24 -20
- office365/security/script_run_audit_record.py +0 -3
- office365/security/search/audit_record.py +0 -3
- office365/security/search/data_source.py +5 -0
- office365/security/search.py +8 -0
- office365/security/securescores/control_state_update.py +0 -2
- office365/security/securescores/secure_score.py +15 -20
- office365/security/security.py +34 -8
- office365/security/security_compliance_alert_record.py +0 -3
- office365/security/security_compliance_center_eop_cmdlet_audit_record.py +0 -3
- office365/security/security_compliance_insights_audit_record.py +0 -3
- office365/security/security_compliance_rbac_audit_record.py +0 -3
- office365/security/security_compliance_user_change_audit_record.py +0 -3
- office365/security/security_copilot_identity_management_audit_record.py +0 -3
- office365/security/security_development_lifecycle_ai_log_audit_record.py +0 -3
- office365/security/security_group_evidence.py +0 -2
- office365/security/security_resource.py +0 -3
- office365/security/security_vendor_information.py +0 -3
- office365/security/sensitive_info_remediation_agent_data_record.py +0 -3
- office365/security/sensitivity_label_action_audit_record.py +0 -3
- office365/security/sensitivity_label_info.py +0 -3
- office365/security/sensitivity_label_policy_match_audit_record.py +0 -3
- office365/security/sensitivity_labeled_file_action_audit_record.py +0 -3
- office365/security/sensor.py +14 -6
- office365/security/sensor_candidate.py +5 -0
- office365/security/sensor_candidate_activation_configuration.py +3 -11
- office365/security/sensor_deployment_package.py +0 -3
- office365/security/sensor_settings.py +1 -2
- office365/security/sentinel_ai_tool_audit_record.py +0 -3
- office365/security/sentinel_graph_audit_record.py +0 -3
- office365/security/sentinel_job_audit_record.py +0 -3
- office365/security/sentinel_kql_on_lake_audit_record.py +0 -3
- office365/security/sentinel_lake_data_onboarding_audit_record.py +0 -3
- office365/security/sentinel_lake_encryption_audit_record.py +0 -3
- office365/security/sentinel_lake_onboarding_audit_record.py +0 -3
- office365/security/sentinel_notebook_on_lake_audit_record.py +0 -3
- office365/security/sentinel_package_audit_record.py +0 -3
- office365/security/service_principal_evidence.py +0 -3
- office365/security/settings_container.py +2 -0
- office365/security/share_point_app_permission_operation_audit_record.py +0 -3
- office365/security/share_point_audit_record.py +0 -3
- office365/security/share_point_comment_operation_audit_record.py +0 -3
- office365/security/share_point_content_security_policy_audit_record.py +0 -3
- office365/security/share_point_content_type_operation_audit_record.py +0 -3
- office365/security/share_point_e_signature_audit_record.py +0 -3
- office365/security/share_point_field_operation_audit_record.py +0 -3
- office365/security/share_point_file_operation_audit_record.py +0 -3
- office365/security/share_point_list_item_operation_audit_record.py +0 -3
- office365/security/share_point_list_operation_audit_record.py +0 -3
- office365/security/share_point_sharing_operation_audit_record.py +0 -3
- office365/security/sharepoint_file_archive_policy.py +7 -0
- office365/security/simulation_event.py +0 -3
- office365/security/simulation_events_content.py +1 -2
- office365/security/simulation_notification.py +0 -3
- office365/security/single_property_schema.py +0 -3
- office365/security/site_source.py +2 -0
- office365/security/skype_for_business_cmdlets_audit_record.py +0 -3
- office365/security/skype_for_business_pstn_usage_audit_record.py +0 -3
- office365/security/skype_for_business_users_blocked_audit_record.py +0 -3
- office365/security/sonar_detonation_content_metadata.py +0 -3
- office365/security/sonar_detonation_entity_audit_record.py +0 -3
- office365/security/sonar_file_detonation_entity_audit_record.py +0 -3
- office365/security/sonar_submission_entity_audit_record.py +0 -3
- office365/security/sonar_url_detonation_entity_audit_record.py +0 -3
- office365/security/spark_core_custom_live_pool_record.py +0 -3
- office365/security/ssl_certificate.py +12 -9
- office365/security/ssl_certificate_entity.py +1 -2
- office365/security/stop_and_quarantine_file_action.py +12 -0
- office365/security/stream.py +0 -3
- office365/security/string_key_attribute_mapping_source_value_pair.py +0 -2
- office365/security/string_key_long_value_pair.py +0 -3
- office365/security/string_key_object_value_pair.py +0 -3
- office365/security/string_key_string_value_pair.py +0 -3
- office365/security/string_value_dictionary.py +0 -3
- office365/security/subdomain.py +3 -0
- office365/security/subjectrightsrequests/all_mailbox_location.py +0 -3
- office365/security/subjectrightsrequests/all_site_location.py +0 -3
- office365/security/subjectrightsrequests/authored_note.py +7 -9
- office365/security/subjectrightsrequests/data_subject.py +0 -3
- office365/security/subjectrightsrequests/detail.py +1 -2
- office365/security/subjectrightsrequests/enumerated_mailbox_location.py +1 -2
- office365/security/subjectrightsrequests/enumerated_site_location.py +1 -2
- office365/security/subjectrightsrequests/history.py +1 -2
- office365/security/subjectrightsrequests/mailbox_location.py +0 -3
- office365/security/subjectrightsrequests/request.py +40 -67
- office365/security/subjectrightsrequests/site_location.py +0 -3
- office365/security/subjectrightsrequests/stage_detail.py +1 -2
- office365/security/submission_entity_audit_record.py +0 -3
- office365/security/submission_mail_evidence.py +1 -2
- office365/security/supervisory_review_day_x_insights_audit_record.py +0 -3
- office365/security/synthetic_media_detection_event.py +7 -0
- office365/security/synthetic_probe_audit_record.py +0 -3
- office365/security/tag.py +5 -0
- office365/security/team_copilot_interaction_audit_record.py +0 -3
- office365/security/teams_easy_approvals_audit_record.py +0 -3
- office365/security/teams_eval_data_hub_admin_operation_audit_record.py +0 -3
- office365/security/teams_eval_data_hub_data_access_audit_record.py +0 -3
- office365/security/teams_eval_data_hub_permission_change_audit_record.py +0 -3
- office365/security/teams_healthcare_audit_record.py +0 -3
- office365/security/teams_message_evidence.py +1 -2
- office365/security/teams_updates_audit_record.py +0 -3
- office365/security/tenant_allow_block_list_audit_record.py +0 -3
- office365/security/threat_detection_detail.py +0 -3
- office365/security/threat_finder_audit_record.py +0 -3
- office365/security/threatintelligence/articles/__init__.py +0 -0
- office365/security/threatintelligence/articles/collection.py +24 -0
- office365/security/threatintelligence/atp_content_data.py +0 -3
- office365/security/threatintelligence/export_audit_record.py +0 -3
- office365/security/threatintelligence/host.py +16 -0
- office365/security/threatintelligence/host_component.py +7 -0
- office365/security/threatintelligence/host_cookie.py +6 -0
- office365/security/threatintelligence/host_logon_session_evidence.py +1 -2
- office365/security/threatintelligence/host_pair.py +6 -0
- office365/security/threatintelligence/host_port.py +15 -29
- office365/security/threatintelligence/host_port_banner.py +1 -2
- office365/security/threatintelligence/host_port_component.py +1 -2
- office365/security/threatintelligence/host_reputation.py +7 -17
- office365/security/threatintelligence/host_reputation_rule.py +0 -3
- office365/security/threatintelligence/host_ssl_certificate.py +4 -8
- office365/security/threatintelligence/host_tracker.py +6 -0
- office365/security/threatintelligence/hostname.py +3 -0
- office365/security/threatintelligence/mail_data.py +0 -3
- office365/security/threatintelligence/object_audit_record.py +0 -3
- office365/security/threatintelligence/profile.py +17 -24
- office365/security/threatintelligence/threat_intelligence.py +21 -3
- office365/security/threatintelligence/url_click_data.py +0 -3
- office365/security/timeline_event.py +1 -2
- office365/security/todo_audit_record.py +0 -3
- office365/security/topic_modeling_settings.py +0 -3
- office365/security/trainable_classifier_audit_record.py +0 -3
- office365/security/training.py +19 -24
- office365/security/training_language_detail.py +12 -8
- office365/security/training_notification_setting.py +1 -2
- office365/security/training_reminder_notification.py +0 -3
- office365/security/training_setting.py +0 -3
- office365/security/triggers/root.py +2 -0
- office365/security/triggertypes/collection.py +8 -0
- office365/security/triggertypes/event_type.py +7 -0
- office365/security/triggertypes/root.py +2 -0
- office365/security/uam_operation_audit_record.py +0 -3
- office365/security/unclassified_artifact.py +3 -0
- office365/security/unified_group_audit_record.py +0 -3
- office365/security/unified_group_source.py +3 -0
- office365/security/unified_simulation_matched_item_audit_record.py +0 -3
- office365/security/unified_simulation_summary_audit_record.py +0 -3
- office365/security/universal_print_management_audit_record.py +0 -3
- office365/security/universal_print_print_job_audit_record.py +0 -3
- office365/security/universal_print_secure_scan.py +7 -0
- office365/security/urbac_assignment_audit_record.py +0 -3
- office365/security/urbac_enable_state_audit_record.py +0 -3
- office365/security/urbac_role_audit_record.py +0 -3
- office365/security/uri_click_security_state.py +0 -2
- office365/security/url_entity_mapping.py +11 -0
- office365/security/url_evidence.py +0 -3
- office365/security/user.py +3 -0
- office365/security/user_account.py +1 -2
- office365/security/user_evidence.py +1 -2
- office365/security/user_security_state.py +0 -2
- office365/security/user_simulation_event_info.py +0 -2
- office365/security/user_source.py +4 -0
- office365/security/user_training_audit_record.py +0 -3
- office365/security/user_training_content_event_info.py +0 -2
- office365/security/user_training_event_info.py +1 -2
- office365/security/user_training_status_info.py +0 -2
- office365/security/usx_workspace_onboarding_audit_record.py +0 -3
- office365/security/vfam_create_policy_audit_record.py +0 -3
- office365/security/vfam_delete_policy_audit_record.py +0 -3
- office365/security/vfam_update_policy_audit_record.py +0 -3
- office365/security/viva_amplify_audit_record.py +0 -3
- office365/security/viva_engage_events_audit_record.py +0 -3
- office365/security/viva_engage_network_association_audit_record.py +0 -3
- office365/security/viva_engage_segment_audit_record.py +0 -3
- office365/security/viva_glint_advanced_configuration_audit_record.py +0 -3
- office365/security/viva_glint_agentic_campaign_audit_record.py +0 -3
- office365/security/viva_glint_client_configuration.py +7 -0
- office365/security/viva_glint_data_retention.py +7 -0
- office365/security/viva_glint_feedback_program_audit_record.py +0 -3
- office365/security/viva_glint_organizational_data_audit_record.py +0 -3
- office365/security/viva_glint_pulse_program_audit_record.py +0 -3
- office365/security/viva_glint_pulse_program_respondent_rate_audit_record.py +0 -3
- office365/security/viva_glint_question_audit_record.py +0 -3
- office365/security/viva_glint_role_audit_record.py +0 -3
- office365/security/viva_glint_rubicon_audit_record.py +0 -3
- office365/security/viva_glint_support_access_audit_record.py +0 -3
- office365/security/viva_glint_system_audit_record.py +0 -3
- office365/security/viva_glint_user_audit_record.py +0 -3
- office365/security/viva_glint_user_group_audit_record.py +0 -3
- office365/security/viva_glint_viva_insights_integration.py +7 -0
- office365/security/viva_goals_audit_record.py +0 -3
- office365/security/viva_learning_admin_audit_record.py +0 -3
- office365/security/viva_learning_audit_record.py +0 -3
- office365/security/viva_pulse_admin_audit_record.py +0 -3
- office365/security/viva_pulse_organizer_audit_record.py +0 -3
- office365/security/viva_pulse_report_audit_record.py +0 -3
- office365/security/viva_pulse_response_audit_record.py +0 -3
- office365/security/vm_metadata.py +0 -3
- office365/security/vulnerability.py +23 -25
- office365/security/vulnerability_component.py +2 -0
- office365/security/vulnerability_state.py +0 -3
- office365/security/wdatp_alerts_audit_record.py +0 -3
- office365/security/web_content_filtering_audit_record.py +0 -3
- office365/security/whois_base_record.py +22 -23
- office365/security/whois_contact.py +1 -2
- office365/security/whois_nameserver.py +0 -2
- office365/security/windows365_customer_lockbox_audit_record.py +0 -3
- office365/security/work_iq_admin_activity.py +7 -0
- office365/security/workplace_analytics_audit_record.py +0 -3
- office365/security/yammer_audit_record.py +0 -3
- office365/security/yammer_user_hiding_audit_record.py +0 -3
- office365/sharepoint/activities/action_facet.py +1 -2
- office365/sharepoint/activities/capabilities.py +0 -2
- office365/sharepoint/activities/client_request.py +1 -2
- office365/sharepoint/activities/client_response.py +0 -2
- office365/sharepoint/activities/clientidentity.py +0 -2
- office365/sharepoint/activities/entity.py +14 -6
- office365/sharepoint/activities/facets/activity_time.py +0 -2
- office365/sharepoint/activities/facets/add_to_onedrive.py +0 -3
- office365/sharepoint/activities/facets/checkin.py +0 -3
- office365/sharepoint/activities/facets/checkout.py +0 -3
- office365/sharepoint/activities/facets/coalesced.py +0 -3
- office365/sharepoint/activities/facets/comment.py +1 -2
- office365/sharepoint/activities/facets/create.py +0 -3
- office365/sharepoint/activities/facets/delete.py +0 -2
- office365/sharepoint/activities/facets/discard_checkout.py +0 -3
- office365/sharepoint/activities/facets/edit.py +0 -3
- office365/sharepoint/activities/facets/get_comment.py +1 -2
- office365/sharepoint/activities/facets/get_mention.py +1 -2
- office365/sharepoint/activities/facets/in_doc.py +0 -3
- office365/sharepoint/activities/facets/mention.py +1 -2
- office365/sharepoint/activities/facets/move.py +1 -2
- office365/sharepoint/activities/facets/point_in_time_restore.py +0 -2
- office365/sharepoint/activities/facets/rename.py +0 -2
- office365/sharepoint/activities/facets/resource.py +1 -2
- office365/sharepoint/activities/facets/revision_set.py +1 -2
- office365/sharepoint/activities/facets/sharing.py +1 -2
- office365/sharepoint/activities/facets/task_completed.py +1 -2
- office365/sharepoint/activities/facets/taskcreated.py +1 -2
- office365/sharepoint/activities/facets/taskreopened.py +1 -2
- office365/sharepoint/activities/facets/version.py +0 -2
- office365/sharepoint/activities/identity.py +1 -2
- office365/sharepoint/activities/identity_item.py +0 -3
- office365/sharepoint/activities/logger.py +5 -0
- office365/sharepoint/activities/officefileuservalueresponse.py +0 -2
- office365/sharepoint/activities/revision_info.py +0 -2
- office365/sharepoint/activities/taskreassignedfacet.py +1 -2
- office365/sharepoint/activities/tracked_item_service.py +2 -0
- office365/sharepoint/activities/tracked_item_updates_request.py +0 -2
- office365/sharepoint/administration/analytics/usage_service.py +3 -0
- office365/sharepoint/administration/archiving/file_size_metric.py +6 -0
- office365/sharepoint/administration/custom_fonts_resource.py +0 -2
- office365/sharepoint/administration/filerequestbrandingassetconfig.py +1 -2
- office365/sharepoint/administration/filerequestbrandingcdninfo.py +0 -2
- office365/sharepoint/administration/filerequestbrandingprofile.py +0 -2
- office365/sharepoint/administration/orgassets/library.py +1 -2
- office365/sharepoint/administration/orgassets/library_collection.py +1 -2
- office365/sharepoint/administration/orgassets/org_assets.py +1 -2
- office365/sharepoint/administration/sitemove/service.py +187 -0
- office365/sharepoint/administration/sitemove/systemsitelockexpres.py +1 -2
- office365/sharepoint/administration/unlicensedodblicenseenforcementwarningcontext.py +0 -2
- office365/sharepoint/administration/unlicensedodbtenantmetrics.py +0 -2
- office365/sharepoint/administration/usageentry.py +0 -2
- office365/sharepoint/administration/web_application.py +3 -0
- office365/sharepoint/administration/web_service.py +3 -0
- office365/sharepoint/agreements/approveitemapprovalrequestpayload.py +0 -2
- office365/sharepoint/agreements/attestationpolicyresourcestorage.py +0 -3
- office365/sharepoint/agreements/attributedto.py +1 -2
- office365/sharepoint/agreements/attributerequestdto.py +0 -2
- office365/sharepoint/agreements/cancelitemapprovalrequestpayload.py +0 -2
- office365/sharepoint/agreements/countryresponse.py +0 -3
- office365/sharepoint/agreements/createitemapprovalrequestpayload.py +0 -2
- office365/sharepoint/agreements/datapair.py +0 -3
- office365/sharepoint/agreements/document.py +1 -2
- office365/sharepoint/agreements/documentsinfo.py +1 -2
- office365/sharepoint/agreements/esignstatusupdatedpayload.py +0 -2
- office365/sharepoint/agreements/fieldcreationparameters.py +0 -2
- office365/sharepoint/agreements/importdata.py +0 -3
- office365/sharepoint/agreements/location.py +0 -2
- office365/sharepoint/agreements/locationdata.py +0 -3
- office365/sharepoint/agreements/metadata.py +1 -2
- office365/sharepoint/agreements/permissionsdata.py +0 -3
- office365/sharepoint/agreements/rejectitemapprovalrequestpayload.py +0 -2
- office365/sharepoint/agreements/reportbasedata.py +1 -2
- office365/sharepoint/agreements/reportfilter.py +0 -3
- office365/sharepoint/agreements/searchparameters.py +0 -3
- office365/sharepoint/agreements/site.py +1 -2
- office365/sharepoint/agreements/ssolutionenabledsitesresponse.py +1 -2
- office365/sharepoint/agreements/summarydata.py +1 -2
- office365/sharepoint/agreements/templatecreationparameters.py +0 -2
- office365/sharepoint/agreements/updateesignconfigpayload.py +1 -2
- office365/sharepoint/agreements/updatemetadatapayload.py +0 -3
- office365/sharepoint/agreements/updatestatepayload.py +0 -3
- office365/sharepoint/alerts/alert.py +24 -0
- office365/sharepoint/alerts/collection.py +4 -0
- office365/sharepoint/alerts/creation_information.py +0 -2
- office365/sharepoint/analytics/usage_entry.py +3 -0
- office365/sharepoint/appprincipal/credential.py +3 -0
- office365/sharepoint/appprincipal/identity_provider.py +2 -0
- office365/sharepoint/approvals/accessrequestresponse.py +0 -2
- office365/sharepoint/approvals/additionalaccessstatusresponse.py +0 -3
- office365/sharepoint/approvals/agreementworkflowresponse.py +0 -3
- office365/sharepoint/approvals/approvals.py +11 -0
- office365/sharepoint/approvals/createrequestparameters.py +0 -2
- office365/sharepoint/approvals/createtemplateresponse.py +0 -2
- office365/sharepoint/approvals/mediaserviceupdateparameters.py +1 -2
- office365/sharepoint/approvals/properties.py +0 -2
- office365/sharepoint/approvals/reviewconfigurationpayload.py +1 -2
- office365/sharepoint/approvals/reviewconfigurationresponse.py +1 -2
- office365/sharepoint/approvals/reviewdeletionconfigurationresponse.py +0 -2
- office365/sharepoint/approvals/reviewworkflowresponsedto.py +0 -2
- office365/sharepoint/approvals/spagreementresults.py +1 -2
- office365/sharepoint/approvals/updatereviewrequestdto.py +0 -2
- office365/sharepoint/approvals/updateuploadedagreementmetadatapayload.py +0 -3
- office365/sharepoint/approvals/user.py +0 -2
- office365/sharepoint/apps/access_requests.py +3 -0
- office365/sharepoint/apps/app.py +4 -0
- office365/sharepoint/apps/app_collection.py +3 -0
- office365/sharepoint/apps/appinstanceerrordetails.py +8 -0
- office365/sharepoint/apps/appsitecontextutility.py +2 -0
- office365/sharepoint/apps/apptileproperties.py +2 -0
- office365/sharepoint/apps/catalog.py +3 -0
- office365/sharepoint/apps/context_site.py +3 -0
- office365/sharepoint/apps/instance.py +26 -0
- office365/sharepoint/apps/launcher.py +2 -0
- office365/sharepoint/apps/license.py +0 -2
- office365/sharepoint/apps/license_collection.py +1 -2
- office365/sharepoint/apps/license_manager.py +2 -0
- office365/sharepoint/apps/properties.py +0 -2
- office365/sharepoint/attachments/attachment.py +11 -1
- office365/sharepoint/attachments/collection.py +3 -0
- office365/sharepoint/attachments/creation_information.py +0 -2
- office365/sharepoint/audit/audit.py +2 -0
- office365/sharepoint/authentication/acs_service_principal_info.py +0 -2
- office365/sharepoint/authentication/auth_file_detonation_request_response.py +12 -0
- office365/sharepoint/authpolicy/events/collection.py +3 -0
- office365/sharepoint/authpolicy/events/event.py +4 -0
- office365/sharepoint/authpolicy/events/role_assignment_resource_payload.py +0 -2
- office365/sharepoint/authpolicy/spjitdlppolicydata.py +0 -2
- office365/sharepoint/authpolicy/tenant/compliancereport.py +10 -0
- office365/sharepoint/authpolicy/tenant/compliancereportentitydata.py +4 -0
- office365/sharepoint/automations/automations.py +25 -0
- office365/sharepoint/brandcenter/brand_center.py +28 -0
- office365/sharepoint/brandcenter/configuration.py +1 -2
- office365/sharepoint/brandcenter/orgassetslibraryconfigparam.py +0 -2
- office365/sharepoint/brandcenter/tenantthemes.py +1 -2
- office365/sharepoint/brandcenter/theme_data.py +0 -2
- office365/sharepoint/businessdata/app_bdc_catalog.py +8 -0
- office365/sharepoint/businessdata/entityfield.py +5 -0
- office365/sharepoint/businessdata/entityfieldvaluedictionary.py +6 -0
- office365/sharepoint/businessdata/entityidentifier.py +7 -0
- office365/sharepoint/businessdata/entityidentity.py +2 -0
- office365/sharepoint/businessdata/entityinstance.py +5 -0
- office365/sharepoint/businessdata/entityview.py +7 -0
- office365/sharepoint/businessdata/externalsubscriptionstore.py +2 -0
- office365/sharepoint/businessdata/filter.py +7 -0
- office365/sharepoint/businessdata/lobsysteminstance.py +2 -0
- office365/sharepoint/businessdata/methodexecutionresult.py +2 -0
- office365/sharepoint/businessdata/notificationcallback.py +4 -0
- office365/sharepoint/businessdata/runtime/subscription.py +2 -0
- office365/sharepoint/businessdata/typedescriptor.py +12 -0
- office365/sharepoint/campaigns/campaigns.py +2 -0
- office365/sharepoint/campaigns/communicationentity.py +1 -2
- office365/sharepoint/campaigns/entity.py +1 -2
- office365/sharepoint/campaigns/summary.py +1 -2
- office365/sharepoint/campaigns/userinfo.py +1 -2
- office365/sharepoint/changes/alert.py +3 -0
- office365/sharepoint/changes/app_consent_principal.py +2 -0
- office365/sharepoint/changes/change.py +3 -0
- office365/sharepoint/changes/collection.py +2 -2
- office365/sharepoint/changes/content_type.py +3 -0
- office365/sharepoint/changes/field.py +3 -0
- office365/sharepoint/changes/file.py +3 -0
- office365/sharepoint/changes/folder.py +4 -0
- office365/sharepoint/changes/group.py +2 -0
- office365/sharepoint/changes/item.py +26 -7
- office365/sharepoint/changes/list.py +10 -0
- office365/sharepoint/changes/log_item_query.py +0 -2
- office365/sharepoint/changes/query.py +0 -2
- office365/sharepoint/changes/token.py +0 -2
- office365/sharepoint/changes/user.py +3 -0
- office365/sharepoint/changes/view.py +4 -0
- office365/sharepoint/changes/web.py +2 -0
- office365/sharepoint/client_context.py +14 -8
- office365/sharepoint/clientsidecomponent/actionshowcard.py +1 -2
- office365/sharepoint/clientsidecomponent/actionsubmit.py +0 -3
- office365/sharepoint/clientsidecomponent/adaptivecard.py +1 -2
- office365/sharepoint/clientsidecomponent/adaptivecardcolumn.py +0 -3
- office365/sharepoint/clientsidecomponent/agreementssolutionfilecontext.py +1 -2
- office365/sharepoint/clientsidecomponent/card_element.py +0 -2
- office365/sharepoint/clientsidecomponent/columnset.py +1 -2
- office365/sharepoint/clientsidecomponent/component_context_info.py +2 -0
- office365/sharepoint/clientsidecomponent/elementupdate.py +1 -2
- office365/sharepoint/clientsidecomponent/hostedapps/add_response.py +4 -0
- office365/sharepoint/clientsidecomponent/hostedapps/app.py +3 -0
- office365/sharepoint/clientsidecomponent/hostedapps/manager.py +2 -0
- office365/sharepoint/clientsidecomponent/identifier.py +0 -3
- office365/sharepoint/clientsidecomponent/padding.py +0 -3
- office365/sharepoint/clientsidecomponent/query_result.py +1 -2
- office365/sharepoint/clientsidecomponent/spfx3rdpartycustomprincipalinfo.py +4 -0
- office365/sharepoint/clientsidecomponent/spteamsappcomponent.py +0 -3
- office365/sharepoint/clientsidecomponent/storage_entity.py +5 -1
- office365/sharepoint/clientsidecomponent/updatecard.py +1 -2
- office365/sharepoint/clientsidecomponent/updatecardelement.py +0 -3
- office365/sharepoint/comments/client/identity.py +0 -2
- office365/sharepoint/comments/collection.py +2 -0
- office365/sharepoint/comments/comment.py +21 -1
- office365/sharepoint/comments/contentanchor.py +0 -2
- office365/sharepoint/comments/information.py +1 -2
- office365/sharepoint/compliance/classification/publishconfig.py +1 -2
- office365/sharepoint/compliance/classification/result.py +1 -2
- office365/sharepoint/compliance/dlp_classification_result.py +0 -2
- office365/sharepoint/compliance/pending_review_items_statistics.py +0 -2
- office365/sharepoint/compliance/preservedcloudattachment.py +0 -2
- office365/sharepoint/compliance/retentionlabelconfig.py +0 -2
- office365/sharepoint/compliance/sensitivitylabels/collection.py +2 -0
- office365/sharepoint/compliance/sensitivitylabels/config.py +0 -2
- office365/sharepoint/compliance/sensitivitylabels/info.py +0 -3
- office365/sharepoint/compliance/store_proxy.py +29 -0
- office365/sharepoint/compliance/tags/info.py +0 -2
- office365/sharepoint/compliance/tags/tag.py +0 -2
- office365/sharepoint/containers/active/collection.py +1 -2
- office365/sharepoint/containers/active/properties.py +2 -2
- office365/sharepoint/content_solution.py +2 -0
- office365/sharepoint/contentcenter/cdsmetadata.py +4 -0
- office365/sharepoint/contentcenter/defaultcontentcentersiteinfo.py +5 -0
- office365/sharepoint/contentcenter/machinelearning/dependentmodel.py +0 -2
- office365/sharepoint/contentcenter/machinelearning/enabled.py +9 -0
- office365/sharepoint/contentcenter/machinelearning/extractorpublishconfig.py +0 -2
- office365/sharepoint/contentcenter/machinelearning/hub.py +27 -1
- office365/sharepoint/contentcenter/machinelearning/modeldependencies.py +1 -2
- office365/sharepoint/contentcenter/machinelearning/modelpublishconfig.py +1 -2
- office365/sharepoint/contentcenter/machinelearning/models/columndef.py +0 -2
- office365/sharepoint/contentcenter/machinelearning/models/entity_data.py +26 -14
- office365/sharepoint/contentcenter/machinelearning/models/model.py +43 -0
- office365/sharepoint/contentcenter/machinelearning/publicationentitydata.py +0 -2
- office365/sharepoint/contentcenter/machinelearning/publicationresult.py +1 -2
- office365/sharepoint/contentcenter/machinelearning/publications/publication.py +35 -0
- office365/sharepoint/contentcenter/machinelearning/publicationsentitydata.py +8 -0
- office365/sharepoint/contentcenter/machinelearning/samples/entity_data.py +3 -0
- office365/sharepoint/contentcenter/machinelearning/samples/meta.py +0 -2
- office365/sharepoint/contentcenter/machinelearning/samples/sample.py +25 -0
- office365/sharepoint/contentcenter/machinelearning/workitementitydata.py +13 -0
- office365/sharepoint/contentcenter/machinelearning/workitems/item.py +16 -0
- office365/sharepoint/contentcenter/sp_machine_learning_column_autofill_prompt_suggestion_data.py +1 -2
- office365/sharepoint/contentcenter/sp_machine_learning_column_autofill_prompt_suggestion_result.py +1 -2
- office365/sharepoint/contentcenter/sp_machine_learning_list_autofill_single_data.py +14 -0
- office365/sharepoint/contentcenter/sp_machine_learning_list_autofill_single_result.py +12 -0
- office365/sharepoint/contentcenter/sp_machine_learning_publications_result.py +6 -10
- office365/sharepoint/contentcenter/syntex_models_landing_info.py +5 -0
- office365/sharepoint/contentcenter/template_api.py +10 -0
- office365/sharepoint/contentsolution/create_template_using_stream_request.py +4 -0
- office365/sharepoint/contentsolution/template_api.py +10 -0
- office365/sharepoint/contenttypes/builtin_content_type_id.py +23 -0
- office365/sharepoint/contenttypes/collection.py +4 -0
- office365/sharepoint/contenttypes/content_type.py +44 -31
- office365/sharepoint/contenttypes/content_type_id.py +0 -2
- office365/sharepoint/contenttypes/creation_information.py +0 -2
- office365/sharepoint/contenttypes/entity_data.py +0 -2
- office365/sharepoint/contenttypes/fieldlinks/collection.py +3 -0
- office365/sharepoint/contenttypes/fieldlinks/field_link.py +9 -0
- office365/sharepoint/convergence/addnoliveblobsinodcservicestateapi.py +2 -0
- office365/sharepoint/convergence/consumer_permissions.py +3 -0
- office365/sharepoint/convergence/migration_complete_state_api.py +4 -0
- office365/sharepoint/convergence/odcmetadatacleanedupapi.py +2 -0
- office365/sharepoint/copilot/files/collection.py +2 -0
- office365/sharepoint/copilot/files/collection_query_result.py +1 -2
- office365/sharepoint/copilot/files/metadata.py +1 -2
- office365/sharepoint/copilot/files/user_relationship.py +0 -2
- office365/sharepoint/copilot/transitivesharing/statusinformation.py +1 -2
- office365/sharepoint/copilot/transitivesharing/statusitem.py +0 -2
- office365/sharepoint/copilot/useridentity.py +0 -2
- office365/sharepoint/customactions/element.py +1 -2
- office365/sharepoint/customactions/element_collection.py +1 -2
- office365/sharepoint/deployment/shortcutinformation.py +0 -2
- office365/sharepoint/directory/conditional_access_policy.py +9 -0
- office365/sharepoint/directory/extendedattributedata.py +0 -3
- office365/sharepoint/directory/group_and_user_status.py +3 -0
- office365/sharepoint/directory/groups/group.py +24 -68
- office365/sharepoint/directory/groups/namevalidationresult.py +1 -2
- office365/sharepoint/directory/groups/namevalidationresulterrorparams.py +0 -2
- office365/sharepoint/directory/helper.py +9 -0
- office365/sharepoint/directory/link.py +4 -0
- office365/sharepoint/directory/linktarget.py +0 -3
- office365/sharepoint/directory/members_info.py +3 -0
- office365/sharepoint/directory/membership_result.py +3 -1
- office365/sharepoint/directory/multi_conditional_access_policy.py +7 -0
- office365/sharepoint/directory/my_groups_result.py +3 -0
- office365/sharepoint/directory/named_location_policy.py +14 -0
- office365/sharepoint/directory/propertycollectiondata.py +0 -3
- office365/sharepoint/directory/propertydata.py +0 -3
- office365/sharepoint/directory/provider/alternate_id_data.py +0 -2
- office365/sharepoint/directory/provider/link_change.py +1 -2
- office365/sharepoint/directory/provider/notification.py +3 -0
- office365/sharepoint/directory/provider/object_changes.py +1 -2
- office365/sharepoint/directory/provider/object_data.py +1 -2
- office365/sharepoint/directory/provider/property_change.py +1 -2
- office365/sharepoint/directory/provider/provider.py +11 -0
- office365/sharepoint/directory/provider/session_data.py +0 -2
- office365/sharepoint/directory/relationdata.py +0 -3
- office365/sharepoint/directory/relationsetdata.py +0 -3
- office365/sharepoint/directory/resourcedata.py +0 -3
- office365/sharepoint/directory/schemadata.py +0 -3
- office365/sharepoint/directory/session.py +7 -0
- office365/sharepoint/directory/statedata.py +0 -3
- office365/sharepoint/directory/tenant.py +6 -10
- office365/sharepoint/directory/users/creationinformation.py +0 -3
- office365/sharepoint/directory/users/information.py +0 -2
- office365/sharepoint/directory/users/user.py +66 -0
- office365/sharepoint/document_location.py +0 -2
- office365/sharepoint/documentmanagement/document_id.py +5 -0
- office365/sharepoint/documentmanagement/document_set.py +2 -0
- office365/sharepoint/documents/caaefieldelement.py +0 -3
- office365/sharepoint/documents/caaesnippetelement.py +0 -3
- office365/sharepoint/documents/cafieldvalue.py +0 -3
- office365/sharepoint/documents/coauthconfiguration.py +1 -2
- office365/sharepoint/documents/columntypeinfo.py +0 -3
- office365/sharepoint/documents/contentassemblyfileinfo.py +0 -3
- office365/sharepoint/documents/contentassemblyformanswer.py +0 -3
- office365/sharepoint/documents/contentassemblymoderntemplatecolumnsmappinginfo.py +1 -2
- office365/sharepoint/documents/contentcontrolinfo.py +1 -2
- office365/sharepoint/documents/countbydate.py +0 -2
- office365/sharepoint/documents/createagreementfolderinfo.py +0 -3
- office365/sharepoint/documents/createhvcsitemapprovalrequestparameters.py +0 -3
- office365/sharepoint/documents/createreviewrequestdto.py +0 -2
- office365/sharepoint/documents/customizedformspage.py +0 -2
- office365/sharepoint/documents/customizedformspagecollection.py +1 -2
- office365/sharepoint/documents/destinationlibraryinfo.py +0 -2
- office365/sharepoint/documents/documentgenerationinfo.py +1 -2
- office365/sharepoint/documents/effectivebasepermissions.py +0 -2
- office365/sharepoint/documents/encryptionoption.py +0 -3
- office365/sharepoint/documents/fieldvalueswithurl.py +1 -2
- office365/sharepoint/documents/fontoption.py +0 -3
- office365/sharepoint/documents/getnextagreementworkflowrequest.py +0 -3
- office365/sharepoint/documents/getreviewconfigrequestdto.py +0 -2
- office365/sharepoint/documents/gridinitinfotype.py +0 -3
- office365/sharepoint/documents/ingestiontaskkey.py +0 -3
- office365/sharepoint/documents/itemorderupdatevalue.py +0 -3
- office365/sharepoint/documents/librarydetails.py +0 -2
- office365/sharepoint/documents/location.py +0 -2
- office365/sharepoint/documents/lockfiledata.py +1 -2
- office365/sharepoint/documents/placeholder.py +0 -3
- office365/sharepoint/documents/placeholderv2.py +0 -2
- office365/sharepoint/documents/publishmoderntemplatepayload.py +2 -2
- office365/sharepoint/documents/publishsnippetpayload.py +1 -2
- office365/sharepoint/documents/publishtemplatev2payload.py +1 -2
- office365/sharepoint/documents/smarttemplatecontenttype.py +0 -3
- office365/sharepoint/documents/snippet.py +1 -2
- office365/sharepoint/documents/templatemetadata.py +1 -2
- office365/sharepoint/documents/updatetemplateinfo.py +1 -2
- office365/sharepoint/documents/updatetemplateinfov2.py +1 -2
- office365/sharepoint/documents/uploaddocumentinfo.py +0 -3
- office365/sharepoint/dynamiccontent/updateservice.py +12 -0
- office365/sharepoint/engage_distribution_info.py +0 -2
- office365/sharepoint/entity.py +13 -1
- office365/sharepoint/esign/digitallegacy.py +17 -0
- office365/sharepoint/esign/models/addaudittrailentry.py +0 -2
- office365/sharepoint/esign/models/cancelagreement.py +0 -2
- office365/sharepoint/esign/models/completeagreement.py +0 -2
- office365/sharepoint/esign/models/completeagreementv4.py +0 -2
- office365/sharepoint/esign/models/createagreement.py +0 -2
- office365/sharepoint/esign/models/createagreementv2.py +0 -2
- office365/sharepoint/esign/models/declineagreement.py +0 -2
- office365/sharepoint/esign/models/initializeagreement.py +0 -2
- office365/sharepoint/esign/models/initializewriteback.py +0 -2
- office365/sharepoint/esign/models/signagreement.py +0 -2
- office365/sharepoint/esign/models/updateaudittrailentry.py +0 -2
- office365/sharepoint/esign/models/updatewritebackfile.py +0 -2
- office365/sharepoint/esign/models/writebacklocation.py +0 -2
- office365/sharepoint/eventreceivers/creation_information.py +0 -2
- office365/sharepoint/eventreceivers/definition.py +9 -0
- office365/sharepoint/eventreceivers/definition_collection.py +2 -0
- office365/sharepoint/exceptions.py +10 -0
- office365/sharepoint/features/collection.py +13 -6
- office365/sharepoint/features/definitions/collection.py +2 -0
- office365/sharepoint/features/feature.py +3 -0
- office365/sharepoint/fields/calculated.py +7 -0
- office365/sharepoint/fields/choice.py +2 -0
- office365/sharepoint/fields/collection.py +5 -0
- office365/sharepoint/fields/computed.py +2 -0
- office365/sharepoint/fields/creation_information.py +0 -2
- office365/sharepoint/fields/currency.py +2 -0
- office365/sharepoint/fields/date_time.py +6 -0
- office365/sharepoint/fields/field.py +249 -39
- office365/sharepoint/fields/fieldcalculatederrorvalue.py +0 -3
- office365/sharepoint/fields/fieldratingscalequestionanswer.py +0 -3
- office365/sharepoint/fields/geolocation_value.py +0 -3
- office365/sharepoint/fields/image_value.py +1 -2
- office365/sharepoint/fields/lookup.py +11 -0
- office365/sharepoint/fields/lookup_value.py +0 -2
- office365/sharepoint/fields/multi_choice.py +5 -0
- office365/sharepoint/fields/multi_choice_value.py +0 -3
- office365/sharepoint/fields/multi_line_text.py +9 -0
- office365/sharepoint/fields/multi_lookup_value.py +0 -3
- office365/sharepoint/fields/multi_user_value.py +0 -3
- office365/sharepoint/fields/number.py +9 -0
- office365/sharepoint/fields/rating_scale.py +8 -0
- office365/sharepoint/fields/related_field.py +5 -1
- office365/sharepoint/fields/schema.py +141 -0
- office365/sharepoint/fields/text.py +2 -0
- office365/sharepoint/fields/type.py +14 -0
- office365/sharepoint/fields/url.py +2 -0
- office365/sharepoint/fields/url_value.py +0 -3
- office365/sharepoint/fields/user.py +6 -0
- office365/sharepoint/fields/user_value.py +0 -2
- office365/sharepoint/fields/xmlSchemaFieldCreationInformation.py +0 -3
- office365/sharepoint/files/checked_out_file.py +6 -1
- office365/sharepoint/files/checked_out_file_collection.py +2 -0
- office365/sharepoint/files/collection.py +6 -0
- office365/sharepoint/files/collectionaddparameters.py +0 -3
- office365/sharepoint/files/creation_information.py +1 -4
- office365/sharepoint/files/deleteparameters.py +0 -3
- office365/sharepoint/files/download_operation.py +9 -0
- office365/sharepoint/files/file.py +124 -18
- office365/sharepoint/files/file_url_virus_status_update.py +6 -0
- office365/sharepoint/files/publish/status.py +8 -0
- office365/sharepoint/files/recent_file_collection.py +4 -0
- office365/sharepoint/files/systemitem.py +9 -0
- office365/sharepoint/files/versionbatchdeleteparameters.py +1 -2
- office365/sharepoint/files/versions/collection.py +7 -0
- office365/sharepoint/files/versions/event.py +4 -0
- office365/sharepoint/files/versions/policyselectionparameters.py +1 -2
- office365/sharepoint/files/versions/version.py +40 -4
- office365/sharepoint/flows/connector_result.py +3 -0
- office365/sharepoint/flows/permissions.py +2 -0
- office365/sharepoint/flows/synchronization_result.py +3 -0
- office365/sharepoint/folders/collection.py +3 -0
- office365/sharepoint/folders/coloring.py +4 -0
- office365/sharepoint/folders/coloring_information.py +0 -3
- office365/sharepoint/folders/delete_parameters.py +0 -3
- office365/sharepoint/folders/folder.py +48 -10
- office365/sharepoint/folders/foldercollectionaddparameters.py +0 -3
- office365/sharepoint/folders/temporaryfolderfileinfo.py +0 -3
- office365/sharepoint/fontpackages/creation_parameters.py +0 -2
- office365/sharepoint/fontpackages/font_package.py +12 -0
- office365/sharepoint/fontpackages/oob_settings.py +3 -0
- office365/sharepoint/forms/apprenderinfo.py +0 -2
- office365/sharepoint/forms/customization.py +2 -0
- office365/sharepoint/forms/form.py +5 -0
- office365/sharepoint/glutamate_controller.py +2 -0
- office365/sharepoint/gtp/asyncexecuteresponse.py +1 -2
- office365/sharepoint/gtp/asyncsubmitresponse.py +0 -2
- office365/sharepoint/gtp/base_request_options.py +0 -2
- office365/sharepoint/gtp/base_response.py +0 -2
- office365/sharepoint/gtp/chat/response.py +1 -2
- office365/sharepoint/gtp/chat/responsechoice.py +1 -2
- office365/sharepoint/gtp/embeddings/requestoptions.py +0 -2
- office365/sharepoint/gtp/embeddings/response.py +1 -2
- office365/sharepoint/gtp/embeddings/responsedata.py +1 -2
- office365/sharepoint/gtp/message_entry.py +1 -2
- office365/sharepoint/gtp/requestoptions.py +0 -2
- office365/sharepoint/gtp/response.py +1 -2
- office365/sharepoint/gtp/responsechoice.py +0 -2
- office365/sharepoint/gtp/responseusage.py +1 -2
- office365/sharepoint/htmlpages/html_page.py +3 -0
- office365/sharepoint/htmlpages/html_page_service.py +2 -0
- office365/sharepoint/identity/defaultdocumentlibrary.py +0 -2
- office365/sharepoint/identity/rubysite.py +1 -2
- office365/sharepoint/ir/migration.py +2 -0
- office365/sharepoint/item_reference.py +0 -2
- office365/sharepoint/largeoperation/operation.py +5 -0
- office365/sharepoint/likes/liked_by_information.py +2 -1
- office365/sharepoint/likes/user_entity.py +7 -0
- office365/sharepoint/list_creation_information.py +0 -2
- office365/sharepoint/listhome/favorite_lists.py +6 -0
- office365/sharepoint/listhome/favoritelistssubstrate.py +5 -0
- office365/sharepoint/listhome/item.py +0 -2
- office365/sharepoint/listhome/item2.py +22 -0
- office365/sharepoint/listhome/itemcollection.py +6 -0
- office365/sharepoint/listhome/nucleus.py +2 -0
- office365/sharepoint/listhome/pinneditems.py +6 -0
- office365/sharepoint/listitems/caml/query.py +2 -4
- office365/sharepoint/listitems/collection.py +1 -11
- office365/sharepoint/listitems/collection_position.py +0 -3
- office365/sharepoint/listitems/compliance_info.py +0 -3
- office365/sharepoint/listitems/creation_information.py +0 -3
- office365/sharepoint/listitems/creation_information_using_path.py +0 -2
- office365/sharepoint/listitems/delete_parameters.py +0 -3
- office365/sharepoint/listitems/favoriteitemcollection.py +2 -0
- office365/sharepoint/listitems/form_update_value.py +2 -4
- office365/sharepoint/listitems/listdata_validation_exception_value.py +1 -2
- office365/sharepoint/listitems/listitem.py +590 -63
- office365/sharepoint/listitems/moderation_status.py +15 -0
- office365/sharepoint/listitems/relateditem.py +0 -3
- office365/sharepoint/listitems/relateditemmanager.py +7 -0
- office365/sharepoint/listitems/update_parameters.py +0 -3
- office365/sharepoint/listitems/updateresults.py +1 -2
- office365/sharepoint/listitems/upsert.py +2 -0
- office365/sharepoint/listitems/user_info_item.py +115 -4
- office365/sharepoint/listitems/versions/change.py +0 -3
- office365/sharepoint/listitems/versions/collection.py +2 -0
- office365/sharepoint/listitems/versions/collection_position.py +0 -3
- office365/sharepoint/listitems/versions/get_parameters.py +1 -2
- office365/sharepoint/listitems/versions/version.py +10 -2
- office365/sharepoint/lists/apihubconnector.py +2 -0
- office365/sharepoint/lists/base_type.py +13 -0
- office365/sharepoint/lists/batch_convert_asset_result.py +0 -3
- office365/sharepoint/lists/batch_convert_classic_wiki_page_input.py +0 -3
- office365/sharepoint/lists/batch_convert_item_result.py +1 -2
- office365/sharepoint/lists/bloom_filter.py +10 -1
- office365/sharepoint/lists/collection.py +6 -0
- office365/sharepoint/lists/collection_position.py +0 -2
- office365/sharepoint/lists/creatable_item_info.py +0 -2
- office365/sharepoint/lists/creatable_item_info_col.py +1 -2
- office365/sharepoint/lists/creatables_info.py +3 -0
- office365/sharepoint/lists/creation_information.py +0 -2
- office365/sharepoint/lists/currency.py +2 -0
- office365/sharepoint/lists/currency_information.py +0 -2
- office365/sharepoint/lists/currency_information_collection.py +1 -2
- office365/sharepoint/lists/data_parameters.py +0 -2
- office365/sharepoint/lists/data_source.py +0 -2
- office365/sharepoint/lists/data_validation_failure.py +0 -2
- office365/sharepoint/lists/document_library_information.py +0 -2
- office365/sharepoint/lists/extended_share_point_permission_settings.py +3 -0
- office365/sharepoint/lists/get_parameters.py +1 -2
- office365/sharepoint/lists/list.py +249 -32
- office365/sharepoint/lists/list_forms_api.py +5 -0
- office365/sharepoint/lists/listform.py +0 -2
- office365/sharepoint/lists/playlist.py +3 -0
- office365/sharepoint/lists/recentlist.py +22 -0
- office365/sharepoint/lists/recentlistcollection.py +4 -0
- office365/sharepoint/lists/recentlistproxy.py +2 -0
- office365/sharepoint/lists/recommendationcollection.py +4 -0
- office365/sharepoint/lists/render_data_parameters.py +0 -2
- office365/sharepoint/lists/render_override_parameters.py +0 -2
- office365/sharepoint/lists/renderlistcontextmenudataparameters.py +0 -3
- office365/sharepoint/lists/rules/action.py +1 -2
- office365/sharepoint/lists/rules/definition.py +1 -2
- office365/sharepoint/lists/rules/definitiongroup.py +1 -2
- office365/sharepoint/lists/rules/properties.py +0 -2
- office365/sharepoint/lists/rules/reviewinfo.py +0 -2
- office365/sharepoint/lists/rules/rule.py +1 -2
- office365/sharepoint/lists/rules/userinfo.py +0 -3
- office365/sharepoint/lists/rules/validationentryresponse.py +1 -2
- office365/sharepoint/lists/smart_wiki_library_utility.py +7 -0
- office365/sharepoint/lists/smart_wiki_metadata_update_parameters.py +1 -2
- office365/sharepoint/lists/templates/template.py +15 -0
- office365/sharepoint/lists/templates/type.py +3 -0
- office365/sharepoint/lists/templatization_metadata.py +1 -2
- office365/sharepoint/lists/version_policy_manager.py +3 -0
- office365/sharepoint/logger/activityextraproperties.py +0 -2
- office365/sharepoint/logger/activityrequest.py +0 -2
- office365/sharepoint/logger/alternateurl.py +3 -0
- office365/sharepoint/logger/export.py +5 -0
- office365/sharepoint/logger/fileinfo.py +7 -0
- office365/sharepoint/marketplace/app_metadata.py +32 -0
- office365/sharepoint/marketplace/appstatequeryjobdefinition.py +3 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/instance_info.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_failed_info.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_info.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_request.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/permission_response.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/addins/principals_response.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/app_request_information.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/app_response_information.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/app_upgrade_availability.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/available_addins_response.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/carddesigns/card_design.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/carddesigns/card_designs.py +3 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/carddesigns/features.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spaddinprincipalinfo.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spappaddanddeployresponseinfomation.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/sperrorwithserverrelativeurl.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spfailtotriggeruninstalladdinjobresponse.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spsitecollectionscopedpermissioninfo.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spstoreappcreatebyidinformation.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/sptriggereduninstalladdinjobresponse.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spuninstalladdinerrordetail.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spuninstalladdinjobdetail.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spuninstalladdinrequest.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/spuninstalladdinresponse.py +1 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/storeappcreationinformation.py +0 -2
- office365/sharepoint/marketplace/corporatecuratedgallery/teams_package_download.py +3 -0
- office365/sharepoint/marketplace/corporatecuratedgallery/tenantscopedpermissioninfo.py +0 -2
- office365/sharepoint/marketplace/sitecollection/appcatalog/accessor.py +1 -1
- office365/sharepoint/marketplace/sitecollection/appcatalog/allowed_item.py +4 -0
- office365/sharepoint/marketplace/tenant/appcatalog/accessor.py +17 -3
- office365/sharepoint/microfeed/attachment_store.py +6 -0
- office365/sharepoint/microfeed/data.py +11 -0
- office365/sharepoint/microfeed/datalink.py +0 -2
- office365/sharepoint/microfeed/datalinkcollection.py +1 -2
- office365/sharepoint/microfeed/dataquery.py +1 -2
- office365/sharepoint/microfeed/entity.py +0 -2
- office365/sharepoint/microfeed/link.py +1 -2
- office365/sharepoint/microfeed/linkaction.py +0 -2
- office365/sharepoint/microfeed/manager.py +23 -0
- office365/sharepoint/microfeed/microblogentitycollection.py +1 -2
- office365/sharepoint/microfeed/microfeedstore.py +7 -0
- office365/sharepoint/microfeed/posts/collection.py +1 -2
- office365/sharepoint/microfeed/posts/definition.py +0 -2
- office365/sharepoint/microfeed/posts/definitionnamecollection.py +1 -2
- office365/sharepoint/microfeed/posts/definitionnames.py +0 -3
- office365/sharepoint/microfeed/posts/options.py +1 -2
- office365/sharepoint/microfeed/posts/post.py +1 -2
- office365/sharepoint/microfeed/retrievaloptions.py +1 -2
- office365/sharepoint/microfeed/userpostcollection.py +1 -2
- office365/sharepoint/microservice/manager.py +6 -0
- office365/sharepoint/microservice/pacinfo.py +0 -2
- office365/sharepoint/microservice/workitemproperties.py +0 -2
- office365/sharepoint/migrationcenter/agentgroup.py +6 -0
- office365/sharepoint/migrationcenter/agentgroupentity.py +4 -0
- office365/sharepoint/migrationcenter/batchdeletionresult.py +1 -2
- office365/sharepoint/migrationcenter/batchupdatepayload.py +1 -2
- office365/sharepoint/migrationcenter/batchupdateresult.py +1 -2
- office365/sharepoint/migrationcenter/common/results/batch_creation.py +0 -3
- office365/sharepoint/migrationcenter/common/task.py +39 -0
- office365/sharepoint/migrationcenter/common/task_definition.py +0 -2
- office365/sharepoint/migrationcenter/common/task_entity_data.py +46 -0
- office365/sharepoint/migrationcenter/common/teams/channel_resource.py +8 -0
- office365/sharepoint/migrationcenter/common/teams/team_resource.py +6 -0
- office365/sharepoint/migrationcenter/common/url_parser.py +8 -0
- office365/sharepoint/migrationcenter/credentialentitydata.py +6 -0
- office365/sharepoint/migrationcenter/deploy_status.py +3 -0
- office365/sharepoint/migrationcenter/device.py +21 -0
- office365/sharepoint/migrationcenter/deviceentitydata.py +15 -0
- office365/sharepoint/migrationcenter/folderinformation.py +0 -2
- office365/sharepoint/migrationcenter/listinformation.py +1 -2
- office365/sharepoint/migrationcenter/mmtasksettings.py +0 -2
- office365/sharepoint/migrationcenter/perfrecommendation.py +3 -0
- office365/sharepoint/migrationcenter/service/credential.py +4 -0
- office365/sharepoint/migrationcenter/service/performance/dashboard_data.py +1 -2
- office365/sharepoint/migrationcenter/service/performance/data.py +4 -0
- office365/sharepoint/migrationcenter/service/performance/entity_data.py +15 -0
- office365/sharepoint/migrationcenter/service/performance/throughput_data.py +0 -2
- office365/sharepoint/migrationcenter/service/properties.py +5 -0
- office365/sharepoint/migrationcenter/service/property.py +0 -2
- office365/sharepoint/migrationcenter/service/services.py +9 -0
- office365/sharepoint/migrationcenter/service/storage.py +17 -0
- office365/sharepoint/migrationcenter/spflight.py +3 -0
- office365/sharepoint/migrationcenter/storagesettings.py +0 -2
- office365/sharepoint/migrationcenter/taskschedulerinformation.py +0 -2
- office365/sharepoint/migrationcenter/tasksettings.py +0 -2
- office365/sharepoint/migrationcenter/taskupdateresult.py +0 -2
- office365/sharepoint/migrationcenter/urlparseresult.py +26 -0
- office365/sharepoint/mount/appviewcreationinfo.py +0 -2
- office365/sharepoint/mount/folder_info.py +7 -0
- office365/sharepoint/mount/getsourceitemmetadataforodcmountpointrequest.py +1 -2
- office365/sharepoint/mount/mountpointinfo.py +3 -0
- office365/sharepoint/mount/notifychangetomountpointsrequest.py +1 -2
- office365/sharepoint/mount/onedriveitemcollection.py +2 -0
- office365/sharepoint/mount/placesentity.py +3 -0
- office365/sharepoint/mount/placesinformation.py +9 -0
- office365/sharepoint/mount/placesuserentity.py +0 -2
- office365/sharepoint/mount/point.py +2 -0
- office365/sharepoint/mount/requests/get_remote_item_Info.py +1 -2
- office365/sharepoint/mount/service.py +2 -0
- office365/sharepoint/multigeo/service/administratorentitydata.py +0 -2
- office365/sharepoint/multigeo/service/alloweddatalocationentitydata.py +5 -0
- office365/sharepoint/multigeo/service/compatibledb.py +4 -0
- office365/sharepoint/multigeo/service/contentdbschemaversion.py +2 -0
- office365/sharepoint/multigeo/service/copyparameters.py +0 -2
- office365/sharepoint/multigeo/service/crossfarmgroupmovejob.py +5 -0
- office365/sharepoint/multigeo/service/crossfarmsitemovejob.py +5 -0
- office365/sharepoint/multigeo/service/crossfarmsitemovejobentitydata.py +3 -0
- office365/sharepoint/multigeo/service/crossfarmusermovejob.py +5 -0
- office365/sharepoint/multigeo/service/crossfarmusermovejobentitydata.py +3 -0
- office365/sharepoint/multigeo/service/crossgeosyncuserproperty.py +0 -2
- office365/sharepoint/multigeo/service/crossgeotenantbyok.py +2 -0
- office365/sharepoint/multigeo/service/crossgeotenantcompatibility.py +7 -0
- office365/sharepoint/multigeo/service/crossgeotenantproperty.py +2 -0
- office365/sharepoint/multigeo/service/crossgeotenantpropertyentitydata.py +5 -0
- office365/sharepoint/multigeo/service/crossgeouserplacementjobentitydata.py +5 -0
- office365/sharepoint/multigeo/service/dblevelworkitem.py +2 -0
- office365/sharepoint/multigeo/service/dblevelworkitementitydata.py +8 -0
- office365/sharepoint/multigeo/service/dbschemacompatibilitycheck.py +2 -0
- office365/sharepoint/multigeo/service/df_deprecation_job.py +3 -0
- office365/sharepoint/multigeo/service/dfdeprecationjob.py +3 -0
- office365/sharepoint/multigeo/service/dfdeprecationsiteentitydata.py +4 -0
- office365/sharepoint/multigeo/service/geoadministrator.py +6 -0
- office365/sharepoint/multigeo/service/geoexperience.py +7 -0
- office365/sharepoint/multigeo/service/geolocationdata.py +5 -0
- office365/sharepoint/multigeo/service/geomovetenantcompatibilitycheck.py +5 -0
- office365/sharepoint/multigeo/service/geomovetenantpropertycompatibilitycheck.py +0 -2
- office365/sharepoint/multigeo/service/geotenantinstanceinformationentitydata.py +12 -0
- office365/sharepoint/multigeo/service/globaladmincheck.py +2 -0
- office365/sharepoint/multigeo/service/groupmovejob.py +8 -0
- office365/sharepoint/multigeo/service/groupmovejobentitydata.py +2 -0
- office365/sharepoint/multigeo/service/hasmnalicense.py +2 -0
- office365/sharepoint/multigeo/service/job_entity_data.py +3 -0
- office365/sharepoint/multigeo/service/microfeedpostdefinitionmanager.py +6 -0
- office365/sharepoint/multigeo/service/microfeedpostoptioncollection.py +2 -0
- office365/sharepoint/multigeo/service/mnagroupmovevalidationresult.py +2 -0
- office365/sharepoint/multigeo/service/move_job_entity_data.py +22 -0
- office365/sharepoint/multigeo/service/move_job_report.py +3 -0
- office365/sharepoint/multigeo/service/move_site_ro_state.py +3 -0
- office365/sharepoint/multigeo/service/movejob.py +5 -0
- office365/sharepoint/multigeo/service/movesiterostate.py +3 -0
- office365/sharepoint/multigeo/service/movesiterostateentity.py +3 -0
- office365/sharepoint/multigeo/service/multigeoservicesbeta.py +29 -0
- office365/sharepoint/multigeo/service/orgrelationgroupmanagedpath.py +2 -0
- office365/sharepoint/multigeo/service/orgrelationnotification.py +2 -0
- office365/sharepoint/multigeo/service/orgrelationverification.py +3 -0
- office365/sharepoint/multigeo/service/partner_company_id_lookup.py +3 -0
- office365/sharepoint/multigeo/service/resolveuserupnbyuserobjectid.py +2 -0
- office365/sharepoint/multigeo/service/restoreworkflowcount.py +2 -0
- office365/sharepoint/multigeo/service/sbsitemovejob.py +14 -0
- office365/sharepoint/multigeo/service/services.py +5 -2
- office365/sharepoint/multigeo/service/site_move_job_entity_data.py +15 -0
- office365/sharepoint/multigeo/service/siteattargetentitydata.py +4 -0
- office365/sharepoint/multigeo/service/sitemovejob.py +8 -0
- office365/sharepoint/multigeo/service/spmultigeoproxy.py +3 -0
- office365/sharepoint/multigeo/service/storage_quota.py +10 -0
- office365/sharepoint/multigeo/service/storagequotaentitydata.py +7 -0
- office365/sharepoint/multigeo/service/supportedgeolocationsfortenant.py +2 -0
- office365/sharepoint/multigeo/service/taxonomyreplicationparameters.py +5 -0
- office365/sharepoint/multigeo/service/tenant_information.py +8 -0
- office365/sharepoint/multigeo/service/unified_group.py +7 -0
- office365/sharepoint/multigeo/service/user_personal_site_location.py +6 -0
- office365/sharepoint/multigeo/service/usermnaodmovevalidationresult.py +2 -0
- office365/sharepoint/multigeo/service/usermovejob.py +8 -0
- office365/sharepoint/multigeo/service/usermovejobentitydata.py +4 -0
- office365/sharepoint/multigeo/service/userpersonalsiteid.py +4 -0
- office365/sharepoint/multigeo/service/xtenantmovecompatibilitycheck.py +4 -0
- office365/sharepoint/navigation/configured_metadata_item.py +0 -3
- office365/sharepoint/navigation/configured_metadata_item_col.py +1 -2
- office365/sharepoint/navigation/home_site_navigation_settings.py +4 -0
- office365/sharepoint/navigation/menu/node.py +1 -2
- office365/sharepoint/navigation/menu/state.py +1 -2
- office365/sharepoint/navigation/metadata_settings.py +2 -0
- office365/sharepoint/navigation/navigation.py +41 -2
- office365/sharepoint/navigation/nodes/collection.py +19 -4
- office365/sharepoint/navigation/nodes/creationinformation.py +0 -3
- office365/sharepoint/navigation/nodes/node.py +15 -4
- office365/sharepoint/navigation/quickaccessitemcollection.py +3 -0
- office365/sharepoint/navigation/service.py +9 -1
- office365/sharepoint/navigation/servicerest.py +13 -0
- office365/sharepoint/news/itemreference.py +0 -2
- office365/sharepoint/news/ngspdatacollection.py +2 -0
- office365/sharepoint/news/serializabletype.py +0 -2
- office365/sharepoint/ngsp_ai_settings.py +3 -0
- office365/sharepoint/oauth/accesstokenoptionalclaim.py +2 -0
- office365/sharepoint/oauth/authentication.py +2 -0
- office365/sharepoint/oauth/native_client.py +2 -0
- office365/sharepoint/oauth/token.py +2 -0
- office365/sharepoint/oauth/token_response.py +8 -0
- office365/sharepoint/onboarding/customerkeyinfo.py +1 -2
- office365/sharepoint/onboarding/customerkeystatusinfo.py +0 -3
- office365/sharepoint/onboarding/customerkeyvaultinfo.py +0 -2
- office365/sharepoint/onboarding/job_entity_data.py +3 -0
- office365/sharepoint/onboarding/onboardingservicesbeta.py +4 -0
- office365/sharepoint/onboarding/prioritysiterename/job.py +4 -0
- office365/sharepoint/onboarding/prioritysiterename/jobentitydata.py +2 -0
- office365/sharepoint/onboarding/siterename/job.py +8 -0
- office365/sharepoint/onboarding/siterename/jobentitydata.py +6 -0
- office365/sharepoint/onboarding/siterename/jobsfortenantrename.py +3 -0
- office365/sharepoint/onboarding/tenantrename/job.py +16 -0
- office365/sharepoint/onboarding/tenantrename/jobentitydata.py +16 -0
- office365/sharepoint/orgnewssite/api.py +2 -0
- office365/sharepoint/orgnewssite/info.py +0 -2
- office365/sharepoint/packaging/app_details.py +6 -0
- office365/sharepoint/packaging/appiconinfo.py +3 -0
- office365/sharepoint/pageinstrumentation/pageimpressionclient.py +0 -2
- office365/sharepoint/pages/textblock.py +0 -2
- office365/sharepoint/pages/wiki_page_creation_information.py +0 -2
- office365/sharepoint/permissions/__init__.py +91 -0
- office365/sharepoint/permissions/base_permissions.py +22 -6
- office365/sharepoint/permissions/irm/effective_settings.py +18 -0
- office365/sharepoint/permissions/irm/file_settings.py +18 -0
- office365/sharepoint/permissions/irm/settings.py +18 -0
- office365/sharepoint/permissions/roles/assignments/assignment.py +3 -1
- office365/sharepoint/permissions/roles/assignments/collection.py +3 -0
- office365/sharepoint/permissions/roles/definitions/collection.py +4 -0
- office365/sharepoint/permissions/roles/definitions/creation_information.py +1 -2
- office365/sharepoint/permissions/roles/definitions/definition.py +12 -0
- office365/sharepoint/permissions/securable_object.py +29 -6
- office365/sharepoint/photos/migration.py +2 -0
- office365/sharepoint/policy/dlp_policy_tip.py +8 -0
- office365/sharepoint/policy/evaluation_info.py +5 -0
- office365/sharepoint/policy/license_utilities.py +3 -0
- office365/sharepoint/portal/channels/info.py +0 -2
- office365/sharepoint/portal/channels/info_collection.py +1 -2
- office365/sharepoint/portal/collaborationmailboxresponse.py +0 -2
- office365/sharepoint/portal/ensureteamforgroupexresponse.py +0 -2
- office365/sharepoint/portal/groups/creation_context.py +1 -2
- office365/sharepoint/portal/groups/creation_information.py +1 -2
- office365/sharepoint/portal/groups/creation_params.py +1 -2
- office365/sharepoint/portal/groups/moveoperation.py +0 -2
- office365/sharepoint/portal/groups/service.py +4 -0
- office365/sharepoint/portal/groups/site_info.py +0 -2
- office365/sharepoint/portal/groups/site_manager.py +82 -0
- office365/sharepoint/portal/groups/siteconversioninfo.py +1 -2
- office365/sharepoint/portal/home/datacache.py +1 -2
- office365/sharepoint/portal/home/datacachecollection.py +1 -2
- office365/sharepoint/portal/home/datacachecontext.py +0 -2
- office365/sharepoint/portal/home/datacacheentry.py +1 -2
- office365/sharepoint/portal/home/page_context.py +1 -2
- office365/sharepoint/portal/home/service_context.py +9 -12
- office365/sharepoint/portal/home/service_context_builder.py +2 -0
- office365/sharepoint/portal/hub_sites_utility.py +2 -0
- office365/sharepoint/portal/linkedsites/contract.py +0 -2
- office365/sharepoint/portal/linkedsites/list_contract.py +1 -2
- office365/sharepoint/portal/linkedsites/manager.py +4 -0
- office365/sharepoint/portal/m365tabitem.py +0 -2
- office365/sharepoint/portal/mysite_recommendations.py +3 -0
- office365/sharepoint/portal/organization_news.py +3 -2
- office365/sharepoint/portal/orglabels/context.py +0 -2
- office365/sharepoint/portal/orglabels/context_list.py +1 -2
- office365/sharepoint/portal/orgnews/sitereference.py +0 -2
- office365/sharepoint/portal/parentgroup.py +0 -2
- office365/sharepoint/portal/pintoteamparams.py +1 -2
- office365/sharepoint/portal/pintoteamresponse.py +1 -2
- office365/sharepoint/portal/project/myrecscacheblob.py +1 -2
- office365/sharepoint/portal/project/myrecsqueryinfo.py +1 -2
- office365/sharepoint/portal/rating_settings.py +2 -0
- office365/sharepoint/portal/sites/creation_request.py +1 -2
- office365/sharepoint/portal/sites/creation_response.py +0 -2
- office365/sharepoint/portal/sites/icon_manager.py +3 -0
- office365/sharepoint/portal/sites/manager.py +21 -0
- office365/sharepoint/portal/teams/recent_and_joined_response.py +1 -2
- office365/sharepoint/portal/theme_manager.py +15 -0
- office365/sharepoint/portal/userprofiles/documentsshared/with_group.py +2 -0
- office365/sharepoint/portal/userprofiles/documentsshared/with_me.py +2 -0
- office365/sharepoint/portal/userprofiles/sharedwithme/document.py +61 -2
- office365/sharepoint/portal/userprofiles/sharedwithme/document_user.py +0 -2
- office365/sharepoint/portal/userprofiles/sharedwithme/item_collection.py +8 -0
- office365/sharepoint/portal/userprofiles/sharedwithme/items.py +2 -0
- office365/sharepoint/portal/userprofiles/sharedwithme/view_item_removal_result.py +0 -2
- office365/sharepoint/portal/webcontrols/recentdocument.py +8 -0
- office365/sharepoint/portal/webcontrols/resourcemanifestinformation.py +3 -0
- office365/sharepoint/principal/groups/collection.py +4 -0
- office365/sharepoint/principal/groups/creation_information.py +0 -2
- office365/sharepoint/principal/groups/group.py +21 -1
- office365/sharepoint/principal/principal.py +12 -5
- office365/sharepoint/principal/users/collection.py +4 -0
- office365/sharepoint/principal/users/id_info.py +4 -4
- office365/sharepoint/principal/users/user.py +24 -314
- office365/sharepoint/publishing/acronyminformation.py +0 -2
- office365/sharepoint/publishing/allowancecheckresult.py +4 -0
- office365/sharepoint/publishing/amplify/amplifiedchannels.py +0 -2
- office365/sharepoint/publishing/amplify/clientamplifyanywhereresults.py +1 -2
- office365/sharepoint/publishing/amplify/clientamplifyendpointinfo.py +1 -2
- office365/sharepoint/publishing/amplify/clientamplifyextraproperty.py +0 -2
- office365/sharepoint/publishing/amplify/clientamplifyresults.py +1 -2
- office365/sharepoint/publishing/amplify/history.py +1 -2
- office365/sharepoint/publishing/amplify/historyresult.py +1 -2
- office365/sharepoint/publishing/amplify/requestendpoint.py +0 -2
- office365/sharepoint/publishing/amplify/requestparams.py +1 -2
- office365/sharepoint/publishing/amplify/result.py +1 -2
- office365/sharepoint/publishing/announcements/author.py +0 -2
- office365/sharepoint/publishing/announcements/controller.py +3 -0
- office365/sharepoint/publishing/announcements/data.py +1 -2
- office365/sharepoint/publishing/approval/request.py +16 -0
- office365/sharepoint/publishing/approval/requestcreationinfo.py +1 -2
- office365/sharepoint/publishing/approval/requestresponse.py +0 -2
- office365/sharepoint/publishing/approval/requestsyncresponse.py +3 -0
- office365/sharepoint/publishing/authoringschemafeatureversion.py +0 -2
- office365/sharepoint/publishing/booleancustomproperty.py +2 -0
- office365/sharepoint/publishing/boostfieldsdata.py +0 -2
- office365/sharepoint/publishing/calltoaction.py +0 -2
- office365/sharepoint/publishing/campaign/association.py +0 -2
- office365/sharepoint/publishing/campaign/campaign.py +14 -0
- office365/sharepoint/publishing/campaign/loadmaildraftparam.py +0 -2
- office365/sharepoint/publishing/campaign/metadata.py +0 -2
- office365/sharepoint/publishing/campaign/resetendpointparam.py +1 -2
- office365/sharepoint/publishing/campaign/savemaildraftparam.py +0 -2
- office365/sharepoint/publishing/cancreatepageresponse.py +5 -0
- office365/sharepoint/publishing/channelannouncement.py +1 -2
- office365/sharepoint/publishing/content_distribution_controller.py +3 -0
- office365/sharepoint/publishing/copytoparams.py +1 -2
- office365/sharepoint/publishing/customproperties/base.py +4 -0
- office365/sharepoint/publishing/customproperties/bigint.py +2 -0
- office365/sharepoint/publishing/datetimecustomproperty.py +0 -2
- office365/sharepoint/publishing/datetimetypecustomproperty.py +2 -0
- office365/sharepoint/publishing/diagnostics/controller.py +3 -0
- office365/sharepoint/publishing/diagnostics/page_details.py +0 -2
- office365/sharepoint/publishing/diagnostics/page_diagnostics.py +0 -2
- office365/sharepoint/publishing/diagnostics/page_result.py +1 -2
- office365/sharepoint/publishing/dynamiccontentsignalspayload.py +1 -2
- office365/sharepoint/publishing/dynamicfaqsingalsdata.py +0 -2
- office365/sharepoint/publishing/emailpublishingstatus.py +1 -2
- office365/sharepoint/publishing/embed_data_v1.py +19 -0
- office365/sharepoint/publishing/embed_service.py +2 -0
- office365/sharepoint/publishing/error.py +1 -2
- office365/sharepoint/publishing/faqsignalactionpayload.py +0 -2
- office365/sharepoint/publishing/faqsignaldata.py +1 -2
- office365/sharepoint/publishing/feedvideopage.py +31 -0
- office365/sharepoint/publishing/file_picker_options.py +1 -2
- office365/sharepoint/publishing/gettyimage.py +0 -2
- office365/sharepoint/publishing/highlights_info.py +3 -0
- office365/sharepoint/publishing/icon.py +0 -2
- office365/sharepoint/publishing/itemviewsanalyticsdata.py +1 -2
- office365/sharepoint/publishing/missingsharepointdestinationwebidrepairitem.py +0 -2
- office365/sharepoint/publishing/multivaluestringcustomproperty.py +2 -0
- office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +5 -0
- office365/sharepoint/publishing/numbercustomproperty.py +2 -0
- office365/sharepoint/publishing/pagecopywithassets/response.py +16 -8
- office365/sharepoint/publishing/pagedeepcopywarning.py +0 -2
- office365/sharepoint/publishing/pagemoveparams.py +0 -2
- office365/sharepoint/publishing/pages/_3d/page.py +28 -1
- office365/sharepoint/publishing/pages/boostproperties.py +0 -2
- office365/sharepoint/publishing/pages/campaign/maildraftdata.py +0 -2
- office365/sharepoint/publishing/pages/campaign/publication.py +55 -0
- office365/sharepoint/publishing/pages/canvas.py +1 -1
- office365/sharepoint/publishing/pages/coauth_state.py +1 -2
- office365/sharepoint/publishing/pages/collaborator.py +0 -2
- office365/sharepoint/publishing/pages/collection.py +7 -0
- office365/sharepoint/publishing/pages/dependency_metadata.py +1 -2
- office365/sharepoint/publishing/pages/fields.py +39 -0
- office365/sharepoint/publishing/pages/fields_data.py +2 -3
- office365/sharepoint/publishing/pages/metadata.py +37 -5
- office365/sharepoint/publishing/pages/move_response.py +13 -8
- office365/sharepoint/publishing/pages/page.py +137 -12
- office365/sharepoint/publishing/pages/reposts/collection.py +2 -0
- office365/sharepoint/publishing/pages/reposts/metadata.py +6 -0
- office365/sharepoint/publishing/pages/reposts/repost.py +32 -0
- office365/sharepoint/publishing/pages/schedulepublicationresponse.py +0 -2
- office365/sharepoint/publishing/pages/sendtestemailresponse.py +0 -2
- office365/sharepoint/publishing/pages/sendtestteamsmessageresponse.py +0 -2
- office365/sharepoint/publishing/pages/service.py +23 -2
- office365/sharepoint/publishing/pages/sharepagebyemaildata.py +1 -2
- office365/sharepoint/publishing/pages/sharepagepreviewbyemailfieldsdata.py +0 -2
- office365/sharepoint/publishing/pages/topics/topic.py +31 -2
- office365/sharepoint/publishing/pages/version_info.py +0 -2
- office365/sharepoint/publishing/pages/versioninfocollection.py +0 -2
- office365/sharepoint/publishing/person/core.py +0 -2
- office365/sharepoint/publishing/person/customproperty.py +0 -2
- office365/sharepoint/publishing/person/identity.py +0 -2
- office365/sharepoint/publishing/person/magazinedata.py +0 -2
- office365/sharepoint/publishing/person/magazineuserprofile.py +1 -2
- office365/sharepoint/publishing/person/magazineuserprofiledirectsdata.py +1 -2
- office365/sharepoint/publishing/personmagazine/taxonomicproperties.py +1 -2
- office365/sharepoint/publishing/personmagazine/userprofiledata.py +1 -2
- office365/sharepoint/publishing/persontypecustomproperty.py +2 -0
- office365/sharepoint/publishing/point/docprops.py +14 -0
- office365/sharepoint/publishing/point/magazineprops.py +10 -0
- office365/sharepoint/publishing/point/post.py +14 -0
- office365/sharepoint/publishing/point/postservicemanager.py +10 -0
- office365/sharepoint/publishing/point/site_status.py +5 -0
- office365/sharepoint/publishing/point/tenantmanager.py +2 -0
- office365/sharepoint/publishing/point/user.py +15 -0
- office365/sharepoint/publishing/portalhealth/details.py +0 -3
- office365/sharepoint/publishing/portalhealth/status.py +0 -2
- office365/sharepoint/publishing/portalhealth/statusdetails.py +0 -2
- office365/sharepoint/publishing/portallaunch/wave.py +1 -2
- office365/sharepoint/publishing/portallaunch/wavegroup.py +0 -2
- office365/sharepoint/publishing/portallaunchwavesetup.py +1 -2
- office365/sharepoint/publishing/portallaunchwavesmanager.py +4 -0
- office365/sharepoint/publishing/portalnavigationcachewrapper.py +4 -0
- office365/sharepoint/publishing/primary_city_time.py +4 -0
- office365/sharepoint/publishing/profilecoreproperties.py +0 -2
- office365/sharepoint/publishing/profiledata.py +1 -2
- office365/sharepoint/publishing/profiledatetime.py +0 -2
- office365/sharepoint/publishing/profiledirectsdata.py +1 -2
- office365/sharepoint/publishing/profilefullproperties.py +1 -2
- office365/sharepoint/publishing/profilepropertyvieweditpolicy.py +0 -2
- office365/sharepoint/publishing/profilevieweditpolicies.py +1 -2
- office365/sharepoint/publishing/propertyvalue.py +1 -2
- office365/sharepoint/publishing/publicationmetadata.py +1 -2
- office365/sharepoint/publishing/publishpublicationresponse.py +0 -2
- office365/sharepoint/publishing/publishsiteinformation.py +0 -2
- office365/sharepoint/publishing/removedstatus.py +4 -0
- office365/sharepoint/publishing/rich_sharing.py +4 -0
- office365/sharepoint/publishing/ruleerrordetails.py +1 -2
- office365/sharepoint/publishing/ruleresult.py +1 -2
- office365/sharepoint/publishing/search.py +2 -0
- office365/sharepoint/publishing/sharepointids.py +0 -2
- office365/sharepoint/publishing/sharepointpublishingstatus.py +1 -2
- office365/sharepoint/publishing/sitepageauthoringmetadata.py +0 -2
- office365/sharepoint/publishing/sitepagstreamdata.py +1 -2
- office365/sharepoint/publishing/sites/communication/creation_request.py +0 -3
- office365/sharepoint/publishing/sites/communication/creation_response.py +0 -2
- office365/sharepoint/publishing/sites/communication/site.py +6 -0
- office365/sharepoint/publishing/sitesharingemailcontext.py +0 -2
- office365/sharepoint/publishing/spotlightchannel.py +7 -0
- office365/sharepoint/publishing/spotlightvideo.py +5 -0
- office365/sharepoint/publishing/spstatusresponse.py +1 -2
- office365/sharepoint/publishing/startcoauthmetadata.py +1 -2
- office365/sharepoint/publishing/statusresponse.py +1 -2
- office365/sharepoint/publishing/stringcustomproperty.py +2 -0
- office365/sharepoint/publishing/structuralnavigationcachestate.py +0 -2
- office365/sharepoint/publishing/submitinfo.py +0 -2
- office365/sharepoint/publishing/subtitlefile.py +4 -0
- office365/sharepoint/publishing/textvaluewithlanguage.py +0 -2
- office365/sharepoint/publishing/timeframestatistics.py +0 -2
- office365/sharepoint/publishing/tooldetails.py +0 -2
- office365/sharepoint/publishing/topicpagemetadata.py +3 -0
- office365/sharepoint/publishing/user_info.py +0 -2
- office365/sharepoint/publishing/validations/errorcodesforemail.py +1 -2
- office365/sharepoint/publishing/validations/errorcodesforsharepointsite.py +1 -2
- office365/sharepoint/publishing/validations/errorcodesforteams.py +1 -2
- office365/sharepoint/publishing/validations/prepublishvalidationserrorcodesforvivaengage.py +1 -2
- office365/sharepoint/publishing/validations/response.py +1 -2
- office365/sharepoint/publishing/video/channel.py +22 -0
- office365/sharepoint/publishing/video/item.py +37 -0
- office365/sharepoint/publishing/video/service_discoverer.py +11 -0
- office365/sharepoint/publishing/video/service_manager.py +14 -0
- office365/sharepoint/publishing/video/view_data.py +0 -2
- office365/sharepoint/publishing/videopermissiongroup.py +5 -0
- office365/sharepoint/publishing/videoplaybackmetadata.py +5 -0
- office365/sharepoint/publishing/videothumbnail.py +4 -0
- office365/sharepoint/publishing/viewprogressanalyticsdata.py +0 -2
- office365/sharepoint/publishing/webpartdetailswrapper.py +0 -2
- office365/sharepoint/pushnotifications/subscriber.py +8 -0
- office365/sharepoint/quotamanagement/consumer/consumer_quota_info_api.py +3 -0
- office365/sharepoint/quotamanagement/consumer/non_quota_backfill_api.py +3 -0
- office365/sharepoint/quotamanagement/consumer/nonquotamigrationapi.py +3 -0
- office365/sharepoint/quotamanagement/consumer/quotamigrationapi.py +3 -0
- office365/sharepoint/recyclebin/item.py +22 -3
- office365/sharepoint/recyclebin/item_collection.py +7 -0
- office365/sharepoint/recyclebin/query_information.py +0 -2
- office365/sharepoint/reputationmodel/reputation.py +3 -0
- office365/sharepoint/request.py +6 -8
- office365/sharepoint/request_context.py +7 -0
- office365/sharepoint/request_user_context.py +3 -0
- office365/sharepoint/role_definition_creation_information.py +1 -2
- office365/sharepoint/search/administration/document_crawl_log.py +6 -0
- office365/sharepoint/search/administration/providers/crawl_versions_info.py +10 -0
- office365/sharepoint/search/administration/providers/recycle_bin_info.py +5 -0
- office365/sharepoint/search/administration/providers/site_content_processing_info.py +5 -0
- office365/sharepoint/search/administration/providers/site_me_ta_info.py +3 -0
- office365/sharepoint/search/analytics/action.py +1 -2
- office365/sharepoint/search/analytics/actor.py +1 -2
- office365/sharepoint/search/analytics/analyticsitem.py +1 -2
- office365/sharepoint/search/analytics/signal.py +1 -2
- office365/sharepoint/search/analytics/signal_store.py +3 -0
- office365/sharepoint/search/context_condition.py +0 -3
- office365/sharepoint/search/custom_result.py +1 -2
- office365/sharepoint/search/endpoints.py +1 -2
- office365/sharepoint/search/object_owner_result.py +0 -3
- office365/sharepoint/search/promoted_result_query_rule.py +1 -2
- office365/sharepoint/search/promoted_results_operations_result.py +1 -2
- office365/sharepoint/search/promotedresults.py +0 -2
- office365/sharepoint/search/query/auto_completion.py +1 -2
- office365/sharepoint/search/query/auto_completion_match.py +0 -3
- office365/sharepoint/search/query/auto_completion_results.py +1 -2
- office365/sharepoint/search/query/condition.py +1 -2
- office365/sharepoint/search/query/configuration.py +1 -2
- office365/sharepoint/search/query/context.py +1 -2
- office365/sharepoint/search/query/customsuggestions.py +1 -2
- office365/sharepoint/search/query/expanded_parameters.py +1 -2
- office365/sharepoint/search/query/personal_result_suggestion.py +0 -3
- office365/sharepoint/search/query/popular_tenant_query.py +0 -3
- office365/sharepoint/search/query/property.py +1 -2
- office365/sharepoint/search/query/property_value.py +0 -3
- office365/sharepoint/search/query/reordering_rule.py +0 -3
- office365/sharepoint/search/query/routing_info.py +1 -2
- office365/sharepoint/search/query/sort/collection.py +5 -0
- office365/sharepoint/search/query/sort/sort.py +0 -3
- office365/sharepoint/search/query/suggestion_results.py +1 -2
- office365/sharepoint/search/query/suggestionquery.py +0 -3
- office365/sharepoint/search/query/suggestionrange.py +0 -3
- office365/sharepoint/search/query/tenant_custom_query_suggestions.py +1 -2
- office365/sharepoint/search/query_result.py +1 -2
- office365/sharepoint/search/ranking_labeling.py +5 -0
- office365/sharepoint/search/refinement_results.py +1 -2
- office365/sharepoint/search/refiner/entry.py +0 -3
- office365/sharepoint/search/refiner/refiner.py +1 -2
- office365/sharepoint/search/relevant_results.py +5 -6
- office365/sharepoint/search/reordering_rule_collection.py +5 -0
- office365/sharepoint/search/reports/abandoned_queries.py +1 -2
- office365/sharepoint/search/reports/abandonedqueries/item.py +1 -2
- office365/sharepoint/search/reports/abandonedqueriesdata.py +0 -3
- office365/sharepoint/search/reports/base.py +0 -3
- office365/sharepoint/search/reports/noresultdata.py +0 -3
- office365/sharepoint/search/reports/noresultitem.py +1 -2
- office365/sharepoint/search/reports/noresultqueries.py +1 -2
- office365/sharepoint/search/reports/numberofqueries.py +1 -2
- office365/sharepoint/search/reports/numberofqueriesdata.py +0 -3
- office365/sharepoint/search/reports/numberofqueriesitem.py +1 -2
- office365/sharepoint/search/reports/queryrules.py +1 -2
- office365/sharepoint/search/reports/queryrulesdata.py +0 -3
- office365/sharepoint/search/reports/queryrulesitem.py +1 -2
- office365/sharepoint/search/reports/top_queries.py +1 -2
- office365/sharepoint/search/reports/topqueries/data.py +0 -3
- office365/sharepoint/search/reports/topqueries/item.py +1 -2
- office365/sharepoint/search/request.py +1 -2
- office365/sharepoint/search/result.py +5 -6
- office365/sharepoint/search/scs_endpoint.py +0 -3
- office365/sharepoint/search/searchresultitemcollection.py +4 -0
- office365/sharepoint/search/semantic/crawlerenqueueitem.py +0 -2
- office365/sharepoint/search/semantic/enqueueproxy.py +5 -0
- office365/sharepoint/search/semantic/itemcollection.py +3 -0
- office365/sharepoint/search/service.py +17 -0
- office365/sharepoint/search/setting.py +12 -0
- office365/sharepoint/search/simple_data_row.py +3 -4
- office365/sharepoint/search/simple_data_table.py +1 -2
- office365/sharepoint/search/special_term_result.py +0 -3
- office365/sharepoint/search/special_term_results.py +1 -2
- office365/sharepoint/search/xssearchpolicy.py +0 -3
- office365/sharepoint/securestore/target_application.py +2 -0
- office365/sharepoint/securestore/target_application_field.py +2 -0
- office365/sharepoint/server_settings.py +4 -0
- office365/sharepoint/sharing/abilities.py +1 -2
- office365/sharepoint/sharing/ability_status.py +0 -3
- office365/sharepoint/sharing/access_request_settings.py +0 -3
- office365/sharepoint/sharing/address_bar_link_settings.py +0 -3
- office365/sharepoint/sharing/audience.py +0 -2
- office365/sharepoint/sharing/cexternalsharingthrottling.py +0 -2
- office365/sharepoint/sharing/direct_abilities.py +1 -2
- office365/sharepoint/sharing/document_manager.py +4 -0
- office365/sharepoint/sharing/domain_restriction_settings.py +0 -3
- office365/sharepoint/sharing/emaildata.py +0 -3
- office365/sharepoint/sharing/entitypermission.py +0 -3
- office365/sharepoint/sharing/entityresult.py +1 -2
- office365/sharepoint/sharing/entityresultdescription.py +0 -3
- office365/sharepoint/sharing/entityresultsettingpolicyreason.py +0 -3
- office365/sharepoint/sharing/ephemerallinkrequest.py +1 -2
- office365/sharepoint/sharing/information.py +73 -36
- office365/sharepoint/sharing/information_request.py +0 -3
- office365/sharepoint/sharing/inherited_from.py +1 -2
- office365/sharepoint/sharing/internal/canonymouslinkuselimit.py +0 -2
- office365/sharepoint/sharing/internal/cexternalsharingenforcement.py +0 -2
- office365/sharepoint/sharing/internal/sharing_restrictions.py +7 -19
- office365/sharepoint/sharing/invitation/creation_result.py +0 -3
- office365/sharepoint/sharing/invitation/link.py +1 -2
- office365/sharepoint/sharing/itemsharingsettings.py +0 -3
- office365/sharepoint/sharing/link_abilities.py +1 -2
- office365/sharepoint/sharing/link_info.py +1 -2
- office365/sharepoint/sharing/linkexpirationabilitystatus.py +0 -3
- office365/sharepoint/sharing/linkparameters.py +0 -3
- office365/sharepoint/sharing/linkpasswordabilitystatus.py +0 -3
- office365/sharepoint/sharing/links/access_request.py +0 -3
- office365/sharepoint/sharing/links/data.py +0 -3
- office365/sharepoint/sharing/links/default_template.py +1 -2
- office365/sharepoint/sharing/links/default_templates_collection.py +1 -2
- office365/sharepoint/sharing/links/info.py +1 -2
- office365/sharepoint/sharing/links/partial_success_response.py +1 -2
- office365/sharepoint/sharing/links/share_request.py +1 -2
- office365/sharepoint/sharing/links/share_response.py +1 -2
- office365/sharepoint/sharing/links/share_settings.py +1 -2
- office365/sharepoint/sharing/linktemplate.py +0 -3
- office365/sharepoint/sharing/mainaccessinformation.py +1 -2
- office365/sharepoint/sharing/mainlinkabilities.py +1 -2
- office365/sharepoint/sharing/mainlinkaudienceabilities.py +1 -2
- office365/sharepoint/sharing/mainlinkinfo.py +1 -2
- office365/sharepoint/sharing/mainlinkroleabilities.py +1 -2
- office365/sharepoint/sharing/object_sharing_information.py +23 -0
- office365/sharepoint/sharing/object_sharing_information_user.py +17 -0
- office365/sharepoint/sharing/object_sharing_settings.py +43 -4
- office365/sharepoint/sharing/oversharedwebinfo.py +1 -2
- office365/sharepoint/sharing/permission_collection.py +1 -2
- office365/sharepoint/sharing/permission_information.py +7 -0
- office365/sharepoint/sharing/personal_web.py +2 -0
- office365/sharepoint/sharing/picker_settings.py +11 -3
- office365/sharepoint/sharing/principal.py +1 -2
- office365/sharepoint/sharing/principal_info.py +1 -2
- office365/sharepoint/sharing/recipient.py +0 -3
- office365/sharepoint/sharing/recipient_limits.py +1 -2
- office365/sharepoint/sharing/recipientlimitsinfo.py +0 -3
- office365/sharepoint/sharing/reports/site_capabilities.py +1 -2
- office365/sharepoint/sharing/restorefacet.py +0 -3
- office365/sharepoint/sharing/restoreversionfacet.py +0 -3
- office365/sharepoint/sharing/result.py +13 -0
- office365/sharepoint/sharing/sensitivitylabelinformation.py +0 -3
- office365/sharepoint/sharing/settingsabilities.py +1 -2
- office365/sharepoint/sharing/shared_document_info.py +39 -1
- office365/sharepoint/sharing/shared_with_user.py +0 -3
- office365/sharepoint/sharing/sharedwithusercollection.py +1 -2
- office365/sharepoint/sharing/sharepoint_sharing_settings.py +17 -1
- office365/sharepoint/sharing/site_sharing_report_helper.py +4 -0
- office365/sharepoint/sharing/site_sharing_report_status.py +1 -2
- office365/sharepoint/sharing/sitesharingreportjobdata.py +0 -3
- office365/sharepoint/sharing/uniqueaccessgroupinfo.py +0 -2
- office365/sharepoint/sharing/uniqueaccessgroupswrapper.py +1 -2
- office365/sharepoint/sharing/user_directory_info.py +0 -3
- office365/sharepoint/sharing/user_role_assignment.py +0 -3
- office365/sharepoint/sharing/user_sharing_result.py +1 -2
- office365/sharepoint/sharing/utility.py +3 -0
- office365/sharepoint/sharing/workitemauthcryptoprovider.py +0 -3
- office365/sharepoint/sitedesigns/actionopenurl.py +0 -2
- office365/sharepoint/sitedesigns/actionset.py +1 -2
- office365/sharepoint/sitedesigns/adaptivecardaction.py +0 -2
- office365/sharepoint/sitedesigns/autoinvokeaction.py +1 -2
- office365/sharepoint/sitedesigns/autoinvokeoptions.py +0 -2
- office365/sharepoint/sitedesigns/choice.py +0 -2
- office365/sharepoint/sitedesigns/creation_info.py +1 -2
- office365/sharepoint/sitedesigns/design_package_menu_contents.py +5 -6
- office365/sharepoint/sitedesigns/header.py +0 -2
- office365/sharepoint/sitedesigns/heroimage.py +0 -2
- office365/sharepoint/sitedesigns/image.py +0 -2
- office365/sharepoint/sitedesigns/messagecard.py +1 -2
- office365/sharepoint/sitedesigns/messagecardactionbutton.py +1 -2
- office365/sharepoint/sitedesigns/messagecardinput.py +1 -2
- office365/sharepoint/sitedesigns/potentialaction.py +1 -2
- office365/sharepoint/sitedesigns/principal.py +4 -0
- office365/sharepoint/sitedesigns/run.py +10 -0
- office365/sharepoint/sitedesigns/section.py +1 -2
- office365/sharepoint/sitedesigns/sectiondesignideasapi.py +3 -0
- office365/sharepoint/sitedesigns/sectionmodel.py +1 -2
- office365/sharepoint/sitedesigns/spsitescriptstatusandschema.py +1 -2
- office365/sharepoint/sitedesigns/task.py +0 -2
- office365/sharepoint/sitedesigns/userfirstrun.py +5 -0
- office365/sharepoint/sitedesigns/webpartmodel.py +0 -2
- office365/sharepoint/sitedesigns/zonemodel.py +1 -2
- office365/sharepoint/sites/asyncreadjobinfo.py +0 -2
- office365/sharepoint/sites/asyncreadoptions.py +0 -2
- office365/sharepoint/sites/autolabellingworkinformation.py +0 -2
- office365/sharepoint/sites/azure_container_Info.py +0 -3
- office365/sharepoint/sites/copy_job_progress.py +2 -3
- office365/sharepoint/sites/copy_migration_iInfo.py +11 -3
- office365/sharepoint/sites/enqueuejobinformation.py +0 -3
- office365/sharepoint/sites/followedsitesparams.py +0 -2
- office365/sharepoint/sites/health/result.py +0 -2
- office365/sharepoint/sites/health/summary.py +6 -1
- office365/sharepoint/sites/home/details.py +1 -2
- office365/sharepoint/sites/home/navconfiguration.py +0 -3
- office365/sharepoint/sites/home/reference.py +1 -2
- office365/sharepoint/sites/home/sharepointhomeservicemanager.py +2 -0
- office365/sharepoint/sites/home/site.py +20 -0
- office365/sharepoint/sites/home/siteconfigurationparam.py +1 -2
- office365/sharepoint/sites/home/spreference.py +0 -3
- office365/sharepoint/sites/html_field_security_setting.py +1 -2
- office365/sharepoint/sites/language.py +0 -2
- office365/sharepoint/sites/language_collection.py +4 -0
- office365/sharepoint/sites/manager/missinglink.py +1 -2
- office365/sharepoint/sites/manager/missinglinkreferrer.py +0 -2
- office365/sharepoint/sites/manager/missinglinksresult.py +1 -2
- office365/sharepoint/sites/manager/retirablepagemetadata.py +0 -2
- office365/sharepoint/sites/manager/retirablepagesqueryresult.py +1 -2
- office365/sharepoint/sites/manager/service.py +19 -0
- office365/sharepoint/sites/manager/sitemanagersignals.py +1 -2
- office365/sharepoint/sites/manager/smaretirepageminimumagefeedbacksignal.py +0 -2
- office365/sharepoint/sites/manager/smaretirepagesignal.py +1 -2
- office365/sharepoint/sites/manager/suggestionitem.py +0 -2
- office365/sharepoint/sites/manager/topsitefile.py +0 -2
- office365/sharepoint/sites/manager/topsitefilesresult.py +1 -2
- office365/sharepoint/sites/migration/copyoptions.py +1 -2
- office365/sharepoint/sites/migration/job_status.py +3 -0
- office365/sharepoint/sites/migration/jobprogress.py +1 -2
- office365/sharepoint/sites/migration/moveandsharefileinfo.py +1 -2
- office365/sharepoint/sites/ngsprequestparams.py +1 -2
- office365/sharepoint/sites/ownedbymeparams.py +0 -2
- office365/sharepoint/sites/provisionedmigrationcontainersinfo.py +0 -3
- office365/sharepoint/sites/provisionedmigrationqueueinfo.py +0 -3
- office365/sharepoint/sites/recentfilesparams.py +0 -2
- office365/sharepoint/sites/restrictaccesscontrolupdate.py +1 -2
- office365/sharepoint/sites/restrictcontentorgwidepolicyupdate.py +0 -3
- office365/sharepoint/sites/site.py +210 -9
- office365/sharepoint/sites/siteprovisioninginfoprovider.py +3 -0
- office365/sharepoint/sites/team_site_data.py +9 -0
- office365/sharepoint/sites/template.py +0 -2
- office365/sharepoint/sites/themes.py +1 -2
- office365/sharepoint/sites/upgrade_info.py +0 -2
- office365/sharepoint/sites/usage_info.py +0 -2
- office365/sharepoint/sites/version_policy_manager.py +7 -1
- office365/sharepoint/sitescripts/action_result.py +0 -2
- office365/sharepoint/sitescripts/action_status.py +0 -2
- office365/sharepoint/sitescripts/creation_info.py +0 -2
- office365/sharepoint/sitescripts/metadata.py +0 -2
- office365/sharepoint/sitescripts/scriptsafedomainentitydata.py +0 -2
- office365/sharepoint/sitescripts/serialization_info.py +0 -2
- office365/sharepoint/sitescripts/serialization_result.py +0 -3
- office365/sharepoint/sitescripts/utility.py +19 -0
- office365/sharepoint/smartcache/item.py +21 -0
- office365/sharepoint/social/actor.py +0 -2
- office365/sharepoint/social/actor_info.py +0 -2
- office365/sharepoint/social/announcement_manager.py +2 -0
- office365/sharepoint/social/attachment.py +1 -2
- office365/sharepoint/social/attachment_action.py +0 -2
- office365/sharepoint/social/data_overlay.py +1 -2
- office365/sharepoint/social/dataitem.py +0 -2
- office365/sharepoint/social/exceptiondetails.py +0 -2
- office365/sharepoint/social/feed/feed.py +1 -2
- office365/sharepoint/social/feed/manager.py +21 -0
- office365/sharepoint/social/feed/rest.py +3 -1
- office365/sharepoint/social/feedoptions.py +0 -2
- office365/sharepoint/social/following/manager.py +12 -0
- office365/sharepoint/social/following/rest_manager.py +15 -0
- office365/sharepoint/social/link.py +0 -2
- office365/sharepoint/social/microfeed/thread.py +1 -2
- office365/sharepoint/social/microfeed/thread_collection.py +1 -2
- office365/sharepoint/social/microfeed/user_posts.py +0 -2
- office365/sharepoint/social/posts/actor_info.py +1 -2
- office365/sharepoint/social/posts/creation_data.py +1 -2
- office365/sharepoint/social/posts/definition_data.py +1 -2
- office365/sharepoint/social/posts/definition_data_item.py +0 -2
- office365/sharepoint/social/posts/post.py +1 -2
- office365/sharepoint/social/posts/reference.py +1 -2
- office365/sharepoint/social/rest_actor.py +6 -0
- office365/sharepoint/social/rest_thread.py +7 -0
- office365/sharepoint/social/restpostcreationdata.py +1 -2
- office365/sharepoint/social/switch.py +2 -0
- office365/sharepoint/social/thread.py +1 -2
- office365/sharepoint/sp_playlist_subscriber.py +2 -0
- office365/sharepoint/storagemetrics/storage_metrics.py +8 -0
- office365/sharepoint/taxonomy/contenttypeinfo.py +0 -3
- office365/sharepoint/taxonomy/contenttypesyndicationresult.py +1 -2
- office365/sharepoint/taxonomy/create_xml_parameters.py +0 -3
- office365/sharepoint/taxonomy/field.py +46 -0
- office365/sharepoint/taxonomy/field_value.py +3 -4
- office365/sharepoint/taxonomy/field_value_col.py +0 -2
- office365/sharepoint/taxonomy/groups/group.py +1 -1
- office365/sharepoint/taxonomy/metadata.py +0 -3
- office365/sharepoint/taxonomy/service.py +3 -3
- office365/sharepoint/taxonomy/sets/info.py +0 -3
- office365/sharepoint/taxonomy/sets/name.py +0 -3
- office365/sharepoint/taxonomy/stores/store.py +13 -1
- office365/sharepoint/taxonomy/terms/label.py +0 -3
- office365/sharepoint/teams/channel.py +3 -0
- office365/sharepoint/teams/channel_manager.py +18 -0
- office365/sharepoint/teams/publishingstatus.py +1 -2
- office365/sharepoint/teams/site_owner_response.py +0 -2
- office365/sharepoint/teams/statusresponse.py +1 -2
- office365/sharepoint/tenant/administration/app_service_principal_public.py +5 -0
- office365/sharepoint/tenant/administration/audit/data.py +1 -2
- office365/sharepoint/tenant/administration/audit/datacollectionresponse.py +0 -2
- office365/sharepoint/tenant/administration/audit/search_request_status.py +0 -2
- office365/sharepoint/tenant/administration/audit/unified_record.py +1 -2
- office365/sharepoint/tenant/administration/collaboration/collaborativeonedriveuser.py +0 -3
- office365/sharepoint/tenant/administration/collaboration/collaborativeuser.py +0 -3
- office365/sharepoint/tenant/administration/collaboration/insights_data.py +1 -2
- office365/sharepoint/tenant/administration/collaboration/insights_overview.py +0 -2
- office365/sharepoint/tenant/administration/columnsinfo.py +0 -3
- office365/sharepoint/tenant/administration/commentsonsitepagesdisabled.py +0 -3
- office365/sharepoint/tenant/administration/container/applicationproperties.py +0 -2
- office365/sharepoint/tenant/administration/container/collection.py +1 -2
- office365/sharepoint/tenant/administration/container/filterorder.py +1 -2
- office365/sharepoint/tenant/administration/container/properties.py +1 -2
- office365/sharepoint/tenant/administration/container/searchparameters.py +0 -3
- office365/sharepoint/tenant/administration/container/sortorder.py +0 -3
- office365/sharepoint/tenant/administration/container/type/billingproperties.py +0 -2
- office365/sharepoint/tenant/administration/container/type/configurationproperties.py +1 -2
- office365/sharepoint/tenant/administration/container/type/properties.py +1 -2
- office365/sharepoint/tenant/administration/container/type/status.py +0 -2
- office365/sharepoint/tenant/administration/contentmanagementassessmentoperationresult.py +0 -3
- office365/sharepoint/tenant/administration/contentmanagementassessmentpolicyreportdetails.py +0 -3
- office365/sharepoint/tenant/administration/contentmanagementassessmentresults.py +1 -2
- office365/sharepoint/tenant/administration/copilot/adaptive_card_config.py +1 -2
- office365/sharepoint/tenant/administration/copilot/agentinsights/client.py +3 -0
- office365/sharepoint/tenant/administration/copilot/agentinsights/report_metadata.py +0 -2
- office365/sharepoint/tenant/administration/copilot/agentinsightscopilotagentsonsitesdetails.py +0 -3
- office365/sharepoint/tenant/administration/copilot/agentinsightssitedistribution.py +0 -3
- office365/sharepoint/tenant/administration/copilot/agentinsightstopsitesdetails.py +0 -3
- office365/sharepoint/tenant/administration/copilot/base_raw_data_sources.py +1 -2
- office365/sharepoint/tenant/administration/copilot/promousage.py +1 -2
- office365/sharepoint/tenant/administration/copilot/reportmetadata.py +1 -2
- office365/sharepoint/tenant/administration/copilot/reportrow.py +1 -2
- office365/sharepoint/tenant/administration/copilot/transpilerpayload.py +1 -2
- office365/sharepoint/tenant/administration/copilot/transpilerresponse.py +1 -2
- office365/sharepoint/tenant/administration/copilot/transpilerstatement.py +1 -2
- office365/sharepoint/tenant/administration/customformurl.py +0 -3
- office365/sharepoint/tenant/administration/datagovernance/insight_client.py +18 -0
- office365/sharepoint/tenant/administration/datagovernance/insight_metadata.py +0 -2
- office365/sharepoint/tenant/administration/dataset_metadata_info.py +1 -0
- office365/sharepoint/tenant/administration/dataset_metadata_request_info.py +1 -2
- office365/sharepoint/tenant/administration/dataset_metadata_response.py +4 -2
- office365/sharepoint/tenant/administration/ddiadapter.py +8 -0
- office365/sharepoint/tenant/administration/deletedsiteproperties.py +9 -0
- office365/sharepoint/tenant/administration/endpoints.py +7 -0
- office365/sharepoint/tenant/administration/errorfacet.py +0 -3
- office365/sharepoint/tenant/administration/esignaturethirdpartyprovidersinfo.py +0 -3
- office365/sharepoint/tenant/administration/eventdata.py +0 -3
- office365/sharepoint/tenant/administration/filesensitivitylabelinfo.py +5 -0
- office365/sharepoint/tenant/administration/groups/group.py +11 -0
- office365/sharepoint/tenant/administration/groups/info.py +0 -3
- office365/sharepoint/tenant/administration/groupsitesactivitydetail.py +0 -2
- office365/sharepoint/tenant/administration/hubsites/collection.py +4 -0
- office365/sharepoint/tenant/administration/hubsites/creation_information.py +0 -3
- office365/sharepoint/tenant/administration/hubsites/hub_site.py +20 -0
- office365/sharepoint/tenant/administration/hubsites/permission.py +0 -3
- office365/sharepoint/tenant/administration/hubsites/properties.py +14 -1
- office365/sharepoint/tenant/administration/ibsegmentinfo.py +0 -3
- office365/sharepoint/tenant/administration/inactivesitepolicyresourcestorage.py +1 -2
- office365/sharepoint/tenant/administration/includeataglanceinshareemails.py +0 -3
- office365/sharepoint/tenant/administration/insights/queueitem.py +0 -2
- office365/sharepoint/tenant/administration/insights/reportmetadata.py +0 -2
- office365/sharepoint/tenant/administration/insights/summary_response.py +0 -3
- office365/sharepoint/tenant/administration/internal/aad/collection.py +3 -0
- office365/sharepoint/tenant/administration/internal/aad/permission_grant.py +8 -0
- office365/sharepoint/tenant/administration/internal/appservice/permission_grant.py +9 -0
- office365/sharepoint/tenant/administration/internal/appservice/permission_request.py +19 -0
- office365/sharepoint/tenant/administration/internal/appservice/principal.py +17 -0
- office365/sharepoint/tenant/administration/jobs/spo_operation.py +6 -1
- office365/sharepoint/tenant/administration/licensed_onedrives_summary_metrics.py +0 -3
- office365/sharepoint/tenant/administration/listitemcolumnvalue.py +0 -3
- office365/sharepoint/tenant/administration/mailfromaddress.py +0 -3
- office365/sharepoint/tenant/administration/malware/file.py +9 -0
- office365/sharepoint/tenant/administration/mobilenotificationisenabledforsharepoint.py +0 -3
- office365/sharepoint/tenant/administration/modified_property.py +0 -3
- office365/sharepoint/tenant/administration/monthlyusage.py +0 -3
- office365/sharepoint/tenant/administration/newsitemanagedpath.py +0 -3
- office365/sharepoint/tenant/administration/newsubsiteinmodernoffforall.py +0 -3
- office365/sharepoint/tenant/administration/newsubsiteinmodernoffformoderntemplates.py +0 -3
- office365/sharepoint/tenant/administration/newteamsitemanagedpath.py +0 -3
- office365/sharepoint/tenant/administration/odb_license_enforcement_service.py +3 -0
- office365/sharepoint/tenant/administration/onedrives_count_and_size.py +0 -3
- office365/sharepoint/tenant/administration/onedrives_summary_metrics.py +1 -2
- office365/sharepoint/tenant/administration/onedrives_summary_metrics_by_unlicensed_reason.py +1 -2
- office365/sharepoint/tenant/administration/owner_not_in_entra_onedrives_summary_metrics.py +1 -2
- office365/sharepoint/tenant/administration/ownershippolicyresourcestorage.py +1 -2
- office365/sharepoint/tenant/administration/pageresponse.py +1 -2
- office365/sharepoint/tenant/administration/parentsiteurl.py +0 -3
- office365/sharepoint/tenant/administration/policies/app_billing_properties.py +0 -2
- office365/sharepoint/tenant/administration/policies/cdnpolicy.py +3 -0
- office365/sharepoint/tenant/administration/policies/content_security_configuration.py +8 -11
- office365/sharepoint/tenant/administration/policies/create_request.py +0 -2
- office365/sharepoint/tenant/administration/policies/definition.py +0 -2
- office365/sharepoint/tenant/administration/policies/file_version_types.py +0 -2
- office365/sharepoint/tenant/administration/policies/fileversionsettings.py +1 -2
- office365/sharepoint/tenant/administration/policies/list_parameters.py +0 -2
- office365/sharepoint/tenant/administration/policies/report.py +0 -2
- office365/sharepoint/tenant/administration/policies/resource_storage.py +1 -2
- office365/sharepoint/tenant/administration/policyoption.py +0 -3
- office365/sharepoint/tenant/administration/powerapps/environment.py +0 -3
- office365/sharepoint/tenant/administration/powerapps/environment_context.py +1 -2
- office365/sharepoint/tenant/administration/ransomware/activitiesoverview.py +0 -2
- office365/sharepoint/tenant/administration/ransomware/activity.py +0 -2
- office365/sharepoint/tenant/administration/ransomware/event.py +0 -2
- office365/sharepoint/tenant/administration/ransomware/eventsoverview.py +0 -3
- office365/sharepoint/tenant/administration/ransomware/properties.py +0 -2
- office365/sharepoint/tenant/administration/recent_action.py +0 -2
- office365/sharepoint/tenant/administration/recentactionpayload.py +0 -2
- office365/sharepoint/tenant/administration/reports/recent_admin_action.py +0 -2
- office365/sharepoint/tenant/administration/reports/recent_admin_action_payload.py +0 -2
- office365/sharepoint/tenant/administration/reports/sitepermissionsdetails.py +0 -3
- office365/sharepoint/tenant/administration/requiresecondarycontact.py +0 -3
- office365/sharepoint/tenant/administration/secondary_administrators_fields_data.py +0 -3
- office365/sharepoint/tenant/administration/secondary_administrators_info.py +0 -3
- office365/sharepoint/tenant/administration/serviceprioritizationappregistration.py +0 -3
- office365/sharepoint/tenant/administration/settings/dataproperty.py +0 -3
- office365/sharepoint/tenant/administration/settings/default_time_zone_id.py +0 -3
- office365/sharepoint/tenant/administration/settings/service.py +71 -126
- office365/sharepoint/tenant/administration/sharepointembeddedclientlogproperties.py +0 -3
- office365/sharepoint/tenant/administration/shownextgenerationsyncclientonteamsite.py +0 -3
- office365/sharepoint/tenant/administration/showselfservicesitecreation.py +0 -3
- office365/sharepoint/tenant/administration/site_user_group_info.py +1 -2
- office365/sharepoint/tenant/administration/siteadministratorsfieldsdata.py +1 -2
- office365/sharepoint/tenant/administration/sitecohortssummary.py +0 -3
- office365/sharepoint/tenant/administration/sitecreationnewux.py +0 -3
- office365/sharepoint/tenant/administration/siteinfo_for_site_picker.py +0 -3
- office365/sharepoint/tenant/administration/siteownerdata.py +0 -3
- office365/sharepoint/tenant/administration/sitepage.py +0 -2
- office365/sharepoint/tenant/administration/sitepagesenabled.py +0 -3
- office365/sharepoint/tenant/administration/sites/administrators_info.py +0 -3
- office365/sharepoint/tenant/administration/sites/collection_management_service.py +4 -0
- office365/sharepoint/tenant/administration/sites/creation_data.py +0 -3
- office365/sharepoint/tenant/administration/sites/creation_default_storage_quota.py +0 -3
- office365/sharepoint/tenant/administration/sites/creation_properties.py +0 -3
- office365/sharepoint/tenant/administration/sites/creation_source.py +1 -2
- office365/sharepoint/tenant/administration/sites/properties.py +149 -5
- office365/sharepoint/tenant/administration/sites/properties_collection.py +7 -0
- office365/sharepoint/tenant/administration/sites/properties_enumerable_filter.py +0 -3
- office365/sharepoint/tenant/administration/sites/state_properties.py +0 -3
- office365/sharepoint/tenant/administration/siteusergroupsdata.py +1 -2
- office365/sharepoint/tenant/administration/smtp_server.py +0 -3
- office365/sharepoint/tenant/administration/spcontenteventscustomemailproperty.py +1 -2
- office365/sharepoint/tenant/administration/spdatagovernanceinsightexportedreport.py +0 -3
- office365/sharepoint/tenant/administration/spdatagovernanceinsightresponse.py +4 -2
- office365/sharepoint/tenant/administration/spdatagovernancesarrestapiclient.py +4 -0
- office365/sharepoint/tenant/administration/spdatagovernancesarstartsitereviewresponse.py +1 -2
- office365/sharepoint/tenant/administration/spdatagovernancesitereviewsresponse.py +0 -2
- office365/sharepoint/tenant/administration/spdeletedcontainerproperties.py +0 -2
- office365/sharepoint/tenant/administration/spdeletedcontainertypeproperties.py +0 -2
- office365/sharepoint/tenant/administration/splistmodernuxoff.py +0 -3
- office365/sharepoint/tenant/administration/spocontainerqueryparams.py +1 -2
- office365/sharepoint/tenant/administration/spocontentsecuritypolicyentry.py +0 -2
- office365/sharepoint/tenant/administration/spofileversionexpirationreportjobprogress.py +0 -3
- office365/sharepoint/tenant/administration/spofileversionfiletypepolicysettings.py +1 -2
- office365/sharepoint/tenant/administration/spom365agentinsightsm365agentsonsitesdetails.py +0 -3
- office365/sharepoint/tenant/administration/spom365agentinsightsreportmetadata.py +0 -2
- office365/sharepoint/tenant/administration/spom365agentinsightssitedistributiondetails.py +0 -3
- office365/sharepoint/tenant/administration/sporestrictedcontentdiscoverabilitysitedetails.py +0 -2
- office365/sharepoint/tenant/administration/sposerviceprioritizationappregistrations.py +1 -2
- office365/sharepoint/tenant/administration/sposerviceprioritizationbillingpayload.py +0 -3
- office365/sharepoint/tenant/administration/sposerviceprioritizationpolicyfromtenantstore.py +0 -2
- office365/sharepoint/tenant/administration/spositecreationsource.py +0 -3
- office365/sharepoint/tenant/administration/spositepropertiesenumerablefilter.py +0 -2
- office365/sharepoint/tenant/administration/spsitepagecopyjobprogress.py +0 -2
- office365/sharepoint/tenant/administration/storage_usage_metrics_snapshot.py +3 -2
- office365/sharepoint/tenant/administration/syntex/applicationproperties.py +1 -2
- office365/sharepoint/tenant/administration/syntex/billing_context.py +0 -2
- office365/sharepoint/tenant/administration/syntex/checkmanagementallowedresponse.py +0 -3
- office365/sharepoint/tenant/administration/syntex/featurescopesettingsvalues.py +0 -3
- office365/sharepoint/tenant/administration/syntex/getmodifiedlistresponse.py +1 -2
- office365/sharepoint/tenant/administration/syntex/power_apps.py +1 -2
- office365/sharepoint/tenant/administration/syntex/premiumfeaturesettings.py +1 -2
- office365/sharepoint/tenant/administration/teamssitesactivitydetail.py +0 -2
- office365/sharepoint/tenant/administration/tenant.py +869 -49
- office365/sharepoint/tenant/administration/tenant_data_loss_prevention_quarantine_settings.py +3 -0
- office365/sharepoint/tenant/administration/theme_properties.py +5 -0
- office365/sharepoint/tenant/administration/transpilerresponse.py +1 -2
- office365/sharepoint/tenant/administration/types.py +0 -6
- office365/sharepoint/tenant/administration/unlicensed_onedrives_summary_metrics.py +1 -2
- office365/sharepoint/tenant/administration/updategroupsitepropertiesparameters.py +0 -3
- office365/sharepoint/tenant/administration/webs/templates/collection.py +3 -1
- office365/sharepoint/tenant/administration/webs/templates/template.py +0 -3
- office365/sharepoint/tenant/apps/information.py +1 -2
- office365/sharepoint/tenant/apps/instance.py +4 -0
- office365/sharepoint/tenant/apps/user_experience_state.py +5 -0
- office365/sharepoint/tenant/cdn_api.py +4 -0
- office365/sharepoint/tenant/cdn_url.py +0 -2
- office365/sharepoint/tenant/insights/reports/manager.py +4 -0
- office365/sharepoint/tenant/insights/reports/metadata.py +6 -0
- office365/sharepoint/tenant/insights/reports/onedrive.py +2 -0
- office365/sharepoint/tenant/insights/reports/report.py +5 -0
- office365/sharepoint/tenant/insights/reports/sharepoint.py +2 -0
- office365/sharepoint/tenant/management/externalusers/external_user.py +10 -0
- office365/sharepoint/tenant/management/externalusers/results/get.py +4 -0
- office365/sharepoint/tenant/management/externalusers/results/remove.py +3 -0
- office365/sharepoint/tenant/management/externalusers/results/session_revocation.py +2 -0
- office365/sharepoint/tenant/management/importprofilepropertiesjobinfo.py +7 -0
- office365/sharepoint/tenant/management/office365_tenant.py +255 -0
- office365/sharepoint/tenant/settings.py +7 -0
- office365/sharepoint/tenantadministration/catalog_management_collection.py +9 -0
- office365/sharepoint/tenantadministration/catalog_management_custom_properties_collection.py +18 -0
- office365/sharepoint/tenantadministration/catalog_management_restricted_content_discovery_collection.py +6 -0
- office365/sharepoint/tenantadministration/container_auto_quota_enabled.py +12 -0
- office365/sharepoint/tenantadministration/sp_data_governance_insight_rest_api_client.py +18 -0
- office365/sharepoint/tenantadministration/sp_data_governance_sar_rest_api_client.py +4 -0
- office365/sharepoint/tenantadministration/spo_copilot_agent_insights_rest_api_client.py +8 -0
- office365/sharepoint/tenantadministration/spo_file_archive_policy_info.py +1 -2
- office365/sharepoint/tenantadministration/spo_file_archive_policy_report_info.py +1 -0
- office365/sharepoint/tenantadministration/spo_restricted_app_access_control_site_policy.py +19 -0
- office365/sharepoint/tenantadministration/spo_restricted_app_access_control_tenant_policy.py +16 -0
- office365/sharepoint/tenantadministration/spo_restricted_content_discoverability_client.py +6 -0
- office365/sharepoint/tenantadministration/spom365_agent_insights_rest_api_client.py +8 -0
- office365/sharepoint/tenantadministration/spom365_agent_insights_top20_agents_details.py +0 -3
- office365/sharepoint/tenantmanagement/group_creation_params.py +5 -0
- office365/sharepoint/thresholds.py +8 -4
- office365/sharepoint/translation/item_info.py +0 -3
- office365/sharepoint/translation/jobs/info.py +0 -2
- office365/sharepoint/translation/jobs/job.py +9 -0
- office365/sharepoint/translation/jobs/status.py +11 -0
- office365/sharepoint/translation/notifications/recipient.py +0 -2
- office365/sharepoint/translation/notifications/recipient_col.py +1 -2
- office365/sharepoint/translation/notifications/recipient_set_request.py +1 -2
- office365/sharepoint/translation/notifications/recipient_users.py +8 -1
- office365/sharepoint/translation/requested_translation.py +1 -2
- office365/sharepoint/translation/resource_entry.py +0 -3
- office365/sharepoint/translation/status.py +1 -2
- office365/sharepoint/translation/status_collection.py +8 -2
- office365/sharepoint/translation/status_creation_request.py +1 -2
- office365/sharepoint/translation/status_set_request.py +1 -2
- office365/sharepoint/translation/sync_translator.py +5 -0
- office365/sharepoint/translation/user_resource.py +4 -0
- office365/sharepoint/translation/variations_timer_job.py +2 -0
- office365/sharepoint/types/resource_path.py +0 -2
- office365/sharepoint/ui/applicationpages/peoplepicker/entity_information.py +3 -0
- office365/sharepoint/ui/applicationpages/peoplepicker/entity_information_request.py +0 -2
- office365/sharepoint/ui/applicationpages/peoplepicker/query_parameters.py +1 -2
- office365/sharepoint/ui/applicationpages/peoplepicker/query_settings.py +0 -2
- office365/sharepoint/ui/applicationpages/peoplepicker/web_service_interface.py +6 -0
- office365/sharepoint/user_ai_tokens.py +3 -0
- office365/sharepoint/user_photos.py +4 -0
- office365/sharepoint/usercustomactions/action.py +24 -3
- office365/sharepoint/usercustomactions/collection.py +3 -0
- office365/sharepoint/userprofiles/cross_geo_sync.py +3 -0
- office365/sharepoint/userprofiles/cross_geo_sync_user_data_batch.py +1 -2
- office365/sharepoint/userprofiles/follow_result.py +1 -2
- office365/sharepoint/userprofiles/followed_content.py +17 -0
- office365/sharepoint/userprofiles/followed_item.py +0 -2
- office365/sharepoint/userprofiles/followeditemdata.py +2 -0
- office365/sharepoint/userprofiles/hash_tag.py +0 -2
- office365/sharepoint/userprofiles/hash_tag_col.py +3 -1
- office365/sharepoint/userprofiles/hashtag.py +1 -2
- office365/sharepoint/userprofiles/my_site_links.py +9 -0
- office365/sharepoint/userprofiles/mysite/dismiss_status_text.py +2 -0
- office365/sharepoint/userprofiles/people_manager.py +42 -0
- office365/sharepoint/userprofiles/peoplecollection.py +3 -0
- office365/sharepoint/userprofiles/person_properties.py +17 -4
- office365/sharepoint/userprofiles/personal_cache.py +16 -0
- office365/sharepoint/userprofiles/personal_cache_item.py +0 -2
- office365/sharepoint/userprofiles/personallistsproxy.py +2 -0
- office365/sharepoint/userprofiles/profile_image_store.py +2 -0
- office365/sharepoint/userprofiles/profile_loader.py +6 -0
- office365/sharepoint/userprofiles/promoted_sites.py +4 -0
- office365/sharepoint/userprofiles/properties_for_user.py +13 -1
- office365/sharepoint/userprofiles/user_profile.py +32 -0
- office365/sharepoint/utilities/autofillcolumninfo.py +0 -2
- office365/sharepoint/utilities/email_properties.py +0 -2
- office365/sharepoint/utilities/file_handler_wopi_properties.py +5 -0
- office365/sharepoint/utilities/jsontheme.py +0 -2
- office365/sharepoint/utilities/llmcolumninfo.py +0 -2
- office365/sharepoint/utilities/move_copy_options.py +0 -3
- office365/sharepoint/utilities/move_copy_util.py +13 -1
- office365/sharepoint/utilities/newsitem.py +0 -2
- office365/sharepoint/utilities/newsitemmetadata.py +0 -2
- office365/sharepoint/utilities/principal_info.py +1 -2
- office365/sharepoint/utilities/shortcuttargetinfo.py +5 -0
- office365/sharepoint/utilities/spotlightresult.py +3 -0
- office365/sharepoint/utilities/themingoptions.py +1 -2
- office365/sharepoint/utilities/upload_status.py +5 -0
- office365/sharepoint/utilities/utility.py +25 -7
- office365/sharepoint/utilities/webappexturlpair.py +0 -2
- office365/sharepoint/utilities/webappurlsbyaction.py +1 -2
- office365/sharepoint/utilities/wopi_host.py +3 -0
- office365/sharepoint/utilities/wopi_properties.py +7 -0
- office365/sharepoint/utilities/wopi_web_app_properties.py +1 -2
- office365/sharepoint/views/collection.py +2 -0
- office365/sharepoint/views/create_information.py +0 -2
- office365/sharepoint/views/field_collection.py +8 -0
- office365/sharepoint/views/view.py +43 -6
- office365/sharepoint/views/visualization/field.py +0 -2
- office365/sharepoint/views/visualization/style_set.py +1 -2
- office365/sharepoint/views/visualization/visualization.py +1 -2
- office365/sharepoint/viva/announcementaction.py +0 -2
- office365/sharepoint/viva/announcementstate.py +1 -2
- office365/sharepoint/viva/app_configuration.py +7 -17
- office365/sharepoint/viva/appsitecontext.py +0 -3
- office365/sharepoint/viva/configurationdata.py +1 -2
- office365/sharepoint/viva/connections/configurationanddata.py +1 -2
- office365/sharepoint/viva/connections/license.py +0 -3
- office365/sharepoint/viva/connections/page.py +3 -0
- office365/sharepoint/viva/connections/url_configuration.py +0 -2
- office365/sharepoint/viva/dashboard/carddetails.py +0 -2
- office365/sharepoint/viva/dashboard/configuration.py +1 -2
- office365/sharepoint/viva/dashboard/content.py +1 -2
- office365/sharepoint/viva/dashboard/item.py +1 -2
- office365/sharepoint/viva/dashboard/iteminfo.py +0 -2
- office365/sharepoint/viva/dashboard/personalizationdata.py +1 -2
- office365/sharepoint/viva/destinationv2.py +0 -2
- office365/sharepoint/viva/employee_engagement.py +18 -2
- office365/sharepoint/viva/employee_experience_controller.py +5 -0
- office365/sharepoint/viva/engagepublishingstatus.py +1 -2
- office365/sharepoint/viva/home.py +3 -0
- office365/sharepoint/viva/home_title_region.py +0 -2
- office365/sharepoint/viva/knowledgehub.py +3 -0
- office365/sharepoint/viva/knowledgehubsitereference.py +0 -2
- office365/sharepoint/viva/learningmanager.py +2 -0
- office365/sharepoint/viva/newssite.py +1 -2
- office365/sharepoint/viva/pivotitem.py +1 -2
- office365/sharepoint/viva/resource_get_endpoint.py +3 -7
- office365/sharepoint/viva/resource_link.py +1 -2
- office365/sharepoint/viva/resourcevisualization.py +0 -3
- office365/sharepoint/viva/site_manager.py +3 -0
- office365/sharepoint/viva/site_request_info.py +0 -2
- office365/sharepoint/viva/spotlightconfiguration.py +1 -2
- office365/sharepoint/viva/spotlightnews.py +0 -2
- office365/sharepoint/viva/syntexcontext.py +4 -0
- office365/sharepoint/viva/syntexcustommodeldeploymentmodelinfo.py +0 -3
- office365/sharepoint/viva/syntexcustommodeldeploymentproperties.py +1 -2
- office365/sharepoint/viva/syntexcustommodelsetting.py +1 -2
- office365/sharepoint/viva/targetedsitedetails.py +1 -2
- office365/sharepoint/viva/vcconfiguration.py +1 -2
- office365/sharepoint/viva/visualizationappinfo.py +0 -2
- office365/sharepoint/viva/visualizationappsynchronizationresult.py +4 -0
- office365/sharepoint/viva/vivaresources.py +6 -0
- office365/sharepoint/webhooks/subscription.py +10 -0
- office365/sharepoint/webhooks/subscription_collection.py +3 -0
- office365/sharepoint/webhooks/subscription_information.py +3 -4
- office365/sharepoint/webparts/client/webpart.py +5 -0
- office365/sharepoint/webparts/definitions/definition.py +9 -1
- office365/sharepoint/webparts/limited_manager.py +8 -1
- office365/sharepoint/webparts/tile_data.py +0 -2
- office365/sharepoint/webparts/webpart.py +8 -0
- office365/sharepoint/webs/apptile.py +22 -0
- office365/sharepoint/webs/collection.py +3 -2
- office365/sharepoint/webs/context_web_information.py +1 -2
- office365/sharepoint/webs/creation_information.py +0 -2
- office365/sharepoint/webs/dataleakage_prevention_status_info.py +5 -0
- office365/sharepoint/webs/info_creation_information.py +0 -2
- office365/sharepoint/webs/information.py +12 -0
- office365/sharepoint/webs/modernize_homepage_result.py +3 -0
- office365/sharepoint/webs/multilingual_settings.py +6 -0
- office365/sharepoint/webs/outofboxsitetemplatesettings.py +0 -2
- office365/sharepoint/webs/regional_settings.py +31 -3
- office365/sharepoint/webs/remote_web.py +8 -0
- office365/sharepoint/webs/spimageitem.py +0 -2
- office365/sharepoint/webs/subweb_query.py +0 -3
- office365/sharepoint/webs/teamappinfo.py +1 -2
- office365/sharepoint/webs/templates/template.py +11 -0
- office365/sharepoint/webs/theme_info.py +6 -0
- office365/sharepoint/webs/time_zone.py +8 -0
- office365/sharepoint/webs/time_zone_information.py +0 -2
- office365/sharepoint/webs/web.py +311 -64
- office365/sharepoint/workflow/associations/association.py +20 -0
- office365/sharepoint/workflow/associations/creationinformation.py +0 -2
- office365/sharepoint/workflow/configurationresponse.py +1 -2
- office365/sharepoint/workflow/configureduserinfo.py +0 -3
- office365/sharepoint/workflow/definition.py +14 -0
- office365/sharepoint/workflow/deployment_service.py +13 -0
- office365/sharepoint/workflow/deviationanalysisrule.py +1 -2
- office365/sharepoint/workflow/exceptiondetails.py +0 -3
- office365/sharepoint/workflow/instances/instance.py +8 -0
- office365/sharepoint/workflow/instances/service.py +5 -0
- office365/sharepoint/workflow/interopservice.py +7 -0
- office365/sharepoint/workflow/labelaccesscontroldata.py +1 -2
- office365/sharepoint/workflow/messagingservice.py +2 -0
- office365/sharepoint/workflow/servicesmanager.py +10 -0
- office365/sharepoint/workflow/sp_workflow_task.py +32 -0
- office365/sharepoint/workflow/subscriptions/service.py +8 -0
- office365/sharepoint/workflow/subscriptions/subscription.py +14 -0
- office365/sharepoint/workflow/template.py +10 -0
- office365/sharepoint/yammer/wactoken.py +0 -2
- office365/subscriptions/change_notification.py +1 -2
- office365/subscriptions/change_notification_collection.py +1 -2
- office365/subscriptions/change_notification_encrypted_content.py +0 -3
- office365/subscriptions/collection.py +8 -0
- office365/subscriptions/encrypted_content.py +0 -3
- office365/subscriptions/quotas.py +129 -0
- office365/subscriptions/subscription.py +28 -4
- office365/teams/admin_root.py +4 -0
- office365/teams/administration/assigned_telephone_number.py +2 -3
- office365/teams/administration/effective_policy_assignment.py +2 -3
- office365/teams/administration/number_assignment.py +27 -31
- office365/teams/administration/policy_user_assignment.py +4 -0
- office365/teams/administration/telephone_number_long_running_operation.py +6 -10
- office365/teams/administration/telephone_number_management_root.py +3 -0
- office365/teams/administration/user_configuration.py +13 -6
- office365/teams/app_settings.py +3 -0
- office365/teams/apps/app.py +4 -1
- office365/teams/apps/authorization.py +1 -2
- office365/teams/apps/catalog.py +1 -1
- office365/teams/apps/definition.py +11 -9
- office365/teams/apps/installation.py +4 -9
- office365/teams/apps/installed_event_message_detail.py +1 -2
- office365/teams/apps/permission_set.py +1 -2
- office365/teams/apps/removed_event_message_detail.py +1 -2
- office365/teams/apps/upgraded_event_message_detail.py +1 -2
- office365/teams/apps/user_scope_installation.py +2 -0
- office365/teams/archived_event_message_detail.py +1 -2
- office365/teams/channels/added_event_message_detail.py +1 -2
- office365/teams/channels/channel.py +44 -12
- office365/teams/channels/collection.py +12 -2
- office365/teams/channels/deleted_event_message_detail.py +1 -2
- office365/teams/channels/description_updated_event_message_detail.py +1 -2
- office365/teams/channels/iIdentity.py +0 -3
- office365/teams/channels/members_notification_recipient.py +0 -3
- office365/teams/channels/provision_email_result.py +0 -3
- office365/teams/channels/renamed_event_message_detail.py +1 -2
- office365/teams/channels/set_as_favorite_by_default_event_message_detail.py +1 -2
- office365/teams/channels/shared_team_info.py +3 -0
- office365/teams/channels/summary.py +0 -3
- office365/teams/channels/unset_as_favorite_by_default_event_message_detail.py +1 -2
- office365/teams/chats/chat.py +22 -6
- office365/teams/chats/collection.py +9 -0
- office365/teams/chats/messages/attachment.py +0 -3
- office365/teams/chats/messages/body.py +2 -4
- office365/teams/chats/messages/collection.py +6 -0
- office365/teams/chats/messages/from_identity_set.py +0 -3
- office365/teams/chats/messages/history_item.py +1 -2
- office365/teams/chats/messages/hosted_content.py +8 -0
- office365/teams/chats/messages/info.py +11 -16
- office365/teams/chats/messages/mention.py +1 -2
- office365/teams/chats/messages/mentioned_identity_set.py +1 -2
- office365/teams/chats/messages/message.py +24 -13
- office365/teams/chats/messages/policy_violation.py +1 -2
- office365/teams/chats/messages/policy_violation_policy_tip.py +1 -2
- office365/teams/chats/messages/reaction.py +1 -2
- office365/teams/chats/messages/reaction_identity_set.py +0 -3
- office365/teams/chats/pinned_chat_message_info.py +2 -0
- office365/teams/chats/targeted_chat_message.py +3 -7
- office365/teams/class_settings.py +0 -3
- office365/teams/collection.py +24 -8
- office365/teams/created_event_message_detail.py +1 -2
- office365/teams/deleted.py +2 -0
- office365/teams/description_updated_event_message_detail.py +1 -2
- office365/teams/fun_settings.py +0 -3
- office365/teams/guest_settings.py +0 -3
- office365/teams/info.py +4 -0
- office365/teams/joining_disabled_event_message_detail.py +1 -2
- office365/teams/joining_enabled_event_message_detail.py +1 -2
- office365/teams/licensing_details.py +0 -3
- office365/teams/members/aad_user_conversation.py +7 -2
- office365/teams/members/conversation.py +4 -0
- office365/teams/members/conversation_collection.py +6 -0
- office365/teams/members/members_added_event_message_detail.py +1 -2
- office365/teams/members/members_deleted_event_message_detail.py +1 -2
- office365/teams/members/members_joined_event_message_detail.py +1 -2
- office365/teams/members/members_left_event_message_detail.py +1 -2
- office365/teams/members/open_complex_dictionary_type.py +0 -3
- office365/teams/members/settings.py +0 -3
- office365/teams/members_notification_recipient.py +0 -3
- office365/teams/messaging_settings.py +0 -3
- office365/teams/operations/async_operation.py +60 -91
- office365/teams/policy_assignment.py +2 -0
- office365/teams/policy_identifier_detail.py +3 -0
- office365/teams/quotas.py +110 -0
- office365/teams/renamed_event_message_detail.py +1 -2
- office365/teams/schedule/change_request.py +23 -11
- office365/teams/schedule/change_tracked_entity.py +7 -0
- office365/teams/schedule/day_note.py +6 -8
- office365/teams/schedule/entity.py +1 -2
- office365/teams/schedule/groups/group.py +5 -0
- office365/teams/schedule/open_shift.py +7 -8
- office365/teams/schedule/schedule.py +27 -14
- office365/teams/schedule/shifts/availability.py +1 -2
- office365/teams/schedule/shifts/item.py +1 -2
- office365/teams/schedule/shifts/offer/request.py +5 -2
- office365/teams/schedule/shifts/open/change_request.py +2 -0
- office365/teams/schedule/shifts/preferences.py +2 -0
- office365/teams/schedule/shifts/shift.py +3 -0
- office365/teams/schedule/swap_shifts_change_request.py +2 -0
- office365/teams/schedule/time_card.py +16 -23
- office365/teams/schedule/time_card_break.py +1 -2
- office365/teams/schedule/time_card_entry.py +1 -2
- office365/teams/schedule/time_card_event.py +1 -2
- office365/teams/schedule/time_clock_settings.py +1 -2
- office365/teams/schedule/time_off.py +7 -8
- office365/teams/schedule/time_off_details.py +0 -3
- office365/teams/schedule/time_off_item.py +0 -3
- office365/teams/schedule/time_off_reason.py +7 -8
- office365/teams/schedule/time_off_request.py +4 -0
- office365/teams/summary.py +0 -3
- office365/teams/tabs/configuration.py +0 -3
- office365/teams/tabs/tab.py +4 -1
- office365/teams/tabs/updated_event_message_detail.py +1 -2
- office365/teams/team.py +66 -15
- office365/teams/teamwork/activity_topic.py +0 -3
- office365/teams/teamwork/application_identity.py +0 -3
- office365/teams/teamwork/conversation_identity.py +0 -3
- office365/teams/teamwork/meeting_note.py +1 -2
- office365/teams/teamwork/meeting_note_subpoint.py +0 -3
- office365/teams/teamwork/meeting_policy_updated_event_message_detail.py +1 -2
- office365/teams/teamwork/online_meeting_info.py +1 -2
- office365/teams/teamwork/shiftmanagement/user_solution_root.py +2 -0
- office365/teams/teamwork/tags/member.py +4 -0
- office365/teams/teamwork/tags/tag.py +2 -0
- office365/teams/teamwork/user.py +10 -2
- office365/teams/telephone_number_long_running_operation_details.py +0 -3
- office365/teams/unarchived_event_message_detail.py +1 -2
- office365/teams/viva/community.py +8 -3
- office365/teams/viva/employee_experience.py +5 -2
- office365/teams/viva/employee_experience_user.py +3 -0
- office365/teams/viva/engagement/conversation.py +5 -0
- office365/teams/viva/engagement/conversation_message.py +14 -11
- office365/teams/viva/engagement/conversation_message_reaction.py +7 -15
- office365/teams/viva/learning/content.py +23 -7
- office365/teams/viva/learning/courses/activity.py +10 -6
- office365/teams/viva/learning/courses/self_initiated.py +2 -0
- office365/teams/viva/learning/provider.py +9 -1
- office365/teams/work.py +7 -0
- office365/teams/workforce_integration.py +12 -24
- office365/teams/workforce_integration_encryption.py +0 -3
- office365/todo/attachments/base.py +5 -0
- office365/todo/attachments/collection.py +1 -1
- office365/todo/attachments/info.py +0 -2
- office365/todo/attachments/session.py +15 -5
- office365/todo/checklist_item.py +1 -0
- office365/todo/linked_resource.py +5 -0
- office365/todo/tasks/collection.py +9 -0
- office365/todo/tasks/lists/collection.py +5 -0
- office365/todo/tasks/lists/list.py +27 -2
- office365/todo/tasks/task.py +31 -9
- office365/todo/todo.py +2 -0
- {office365_rest_python_client-3.3.0.dist-info → office365_rest_python_client-3.3.1.dist-info}/METADATA +3 -3
- {office365_rest_python_client-3.3.0.dist-info → office365_rest_python_client-3.3.1.dist-info}/RECORD +4804 -4634
- office365/directory/permissions/require_permission.py +0 -144
- office365/directory/permissions/resource_name.py +0 -33
- office365/migration/teams/_extract.py +0 -109
- office365/migration/teams/models.py +0 -74
- office365/runtime/odata/type.py +0 -117
- office365/sharepoint/internal/paths/web.py +0 -24
- office365/sharepoint/workflow/task.py +0 -430
- {office365_rest_python_client-3.3.0.dist-info → office365_rest_python_client-3.3.1.dist-info}/WHEEL +0 -0
|
@@ -10,16 +10,14 @@ Lazy imports keep the migration core client-agnostic.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import annotations
|
|
12
12
|
|
|
13
|
-
import hashlib
|
|
14
13
|
import io
|
|
15
|
-
import
|
|
16
|
-
from
|
|
17
|
-
from datetime import datetime, timezone
|
|
14
|
+
from collections.abc import Callable, Iterable
|
|
15
|
+
from enum import Enum
|
|
18
16
|
from typing import TYPE_CHECKING, Any, cast
|
|
19
17
|
|
|
20
18
|
from typing_extensions import TypeAlias
|
|
21
19
|
|
|
22
|
-
from office365.migration.adapters import MigrationProgress
|
|
20
|
+
from office365.migration.adapters import MigrationProgress, checksum
|
|
23
21
|
from office365.migration.base import (
|
|
24
22
|
MigrationItem,
|
|
25
23
|
PermissionEntry,
|
|
@@ -27,24 +25,47 @@ from office365.migration.base import (
|
|
|
27
25
|
conflict_to_on_conflict,
|
|
28
26
|
normalize_puid,
|
|
29
27
|
)
|
|
30
|
-
from office365.migration.sharepoint.structure import
|
|
28
|
+
from office365.migration.sharepoint.structure import ListStructure, provision_list_structure
|
|
31
29
|
from office365.migration.sharepoint.transfer import Failure
|
|
32
30
|
from office365.runtime.converters.records import records_from_items
|
|
33
|
-
from office365.runtime.converters.scalars import
|
|
31
|
+
from office365.runtime.converters.scalars import (
|
|
32
|
+
iso_or_none,
|
|
33
|
+
iso_z,
|
|
34
|
+
normalize_guid,
|
|
35
|
+
parse_datetime,
|
|
36
|
+
parse_int,
|
|
37
|
+
wall_clock_text,
|
|
38
|
+
)
|
|
39
|
+
from office365.runtime.converters.value import values_of
|
|
34
40
|
from office365.runtime.limits import DEFAULT_BATCH_SIZE
|
|
41
|
+
from office365.runtime.odata.comparable import digest
|
|
35
42
|
from office365.runtime.operations import emit_progress
|
|
43
|
+
from office365.runtime.schema import TypeSchema
|
|
44
|
+
from office365.runtime.types.odata_property import AUTHORSHIP, MODERATION, PERMISSIONS
|
|
45
|
+
from office365.sharepoint.exceptions import SPFieldValidationException
|
|
36
46
|
from office365.sharepoint.fields.builtin_field_name import SYSTEM_FIELD_NAMES
|
|
37
|
-
from office365.sharepoint.fields.
|
|
47
|
+
from office365.sharepoint.fields.lookup import FieldLookup
|
|
48
|
+
from office365.sharepoint.listitems.listitem import ListItem
|
|
49
|
+
from office365.sharepoint.listitems.moderation_status import SPModerationStatusType
|
|
50
|
+
from office365.sharepoint.permissions import SiteLevel, site_access
|
|
51
|
+
from office365.sharepoint.permissions.securable_object import SecurableObject
|
|
38
52
|
from office365.sharepoint.principal.type import PrincipalType
|
|
53
|
+
from office365.sharepoint.taxonomy.field import TaxonomyField
|
|
54
|
+
from office365.sharepoint.taxonomy.field_value import TaxonomyFieldValue
|
|
55
|
+
from office365.sharepoint.taxonomy.field_value_col import TaxonomyFieldValueCollection
|
|
39
56
|
|
|
40
57
|
if TYPE_CHECKING:
|
|
41
58
|
from office365.migration.map import ContentTypeMap
|
|
59
|
+
from office365.sharepoint.fields.field import Field
|
|
42
60
|
from office365.sharepoint.files.file import File
|
|
43
61
|
from office365.sharepoint.folders.folder import Folder
|
|
44
62
|
from office365.sharepoint.lists.list import List as SPList
|
|
45
63
|
from office365.sharepoint.permissions.roles.definitions.definition import RoleDefinition
|
|
64
|
+
from office365.sharepoint.principal.users.user import User
|
|
65
|
+
from office365.sharepoint.webs.web import Web
|
|
46
66
|
|
|
47
|
-
|
|
67
|
+
_LIST_ITEM = TypeSchema.of(ListItem)
|
|
68
|
+
_SECURABLE = TypeSchema.of(SecurableObject)
|
|
48
69
|
|
|
49
70
|
|
|
50
71
|
def _cloned_context(obj):
|
|
@@ -78,127 +99,33 @@ _TypedColumns: TypeAlias = (
|
|
|
78
99
|
"tuple[dict[str, str], set[str], dict[str, str], set[str], dict[str, tuple[bool, str | None]], set[str]]"
|
|
79
100
|
)
|
|
80
101
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
_NON_WRITABLE_SELECT = frozenset({"HasUniqueRoleAssignments"})
|
|
85
|
-
|
|
86
|
-
#: Navigation properties a ``*`` read returns that carry no scalar content and can
|
|
87
|
-
#: never be written back; they are dropped silently. A genuine typed value we
|
|
88
|
-
#: cannot remap (a lookup/person column) is still surfaced as a warning.
|
|
89
|
-
_NAVIGATION_SELECT = frozenset(
|
|
90
|
-
{
|
|
91
|
-
"ParentList",
|
|
92
|
-
"ContentType",
|
|
93
|
-
"Folder",
|
|
94
|
-
"File",
|
|
95
|
-
"FieldValuesAsHtml",
|
|
96
|
-
"FieldValuesAsText",
|
|
97
|
-
"FieldValuesForEdit",
|
|
98
|
-
}
|
|
99
|
-
)
|
|
102
|
+
#: Always-projected system metadata: the author/editor ids an item is restored from and
|
|
103
|
+
#: the unique-ACL flag. ``*`` omits them, so they are asked for by the role they play.
|
|
104
|
+
_METADATA_SELECT = [*_LIST_ITEM.columns_of_facet(AUTHORSHIP), *_LIST_ITEM.columns_of_facet(PERMISSIONS)]
|
|
100
105
|
|
|
101
106
|
#: Marker column added to a migrated list recording each item's source id. It makes
|
|
102
107
|
#: a re-run idempotent and lets post-run verification pair source and target items.
|
|
103
108
|
DEFAULT_LIST_IDENTITY_FIELD = "MigrationSourceId"
|
|
104
|
-
# Authorship has its own fidelity path (``apply_authorship``); the
|
|
105
|
-
#
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
#: item, so every metadata write that restores timestamps/authorship would silently
|
|
111
|
-
#: discard it; the captured state is therefore folded into that same write
|
|
112
|
-
#: (live-probed: both fields are accepted, and no version is created).
|
|
113
|
-
_APPROVAL_FIELDS = {
|
|
114
|
-
"OData__ModerationStatus": "_ModerationStatus",
|
|
115
|
-
"OData__ModerationComments": "_ModerationComments",
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
#: Approval status of an approved item (0 = draft/pending, 1 = rejected, 2 = approved).
|
|
119
|
-
#: A freshly uploaded document is approved, so only the other states are worth writing.
|
|
120
|
-
_APPROVED_STATUS = "2"
|
|
109
|
+
# Authorship has its own fidelity path (``apply_authorship``); the ``Author``/``Editor``
|
|
110
|
+
# columns are the payload companions of the authorship ids, so they are neither content
|
|
111
|
+
# nor Person values to remap.
|
|
112
|
+
_PERSON_EXCLUDED = frozenset(
|
|
113
|
+
name[: -len("Id")] for name in _LIST_ITEM.columns_of_facet(AUTHORSHIP) if name.endswith("Id")
|
|
114
|
+
)
|
|
121
115
|
|
|
122
116
|
#: Moderation columns of a list item. They only exist on a list whose
|
|
123
117
|
#: ``EnableModeration`` is on, so selecting them unconditionally fails outright.
|
|
124
|
-
|
|
118
|
+
#: They are ordinary record content: a list item takes a moderation change in the same
|
|
119
|
+
#: system update as its timestamps (a document refuses it — see ``apply_item_state``),
|
|
120
|
+
#: so captured state rides in that one write and no version is created.
|
|
121
|
+
_MODERATION_FIELDS = _LIST_ITEM.columns_of_facet(MODERATION)
|
|
122
|
+
|
|
123
|
+
#: The moderation column carrying the approval status; its sibling carries the comment.
|
|
124
|
+
_MODERATION_STATUS = _LIST_ITEM.name_of("moderation_status")
|
|
125
125
|
|
|
126
126
|
#: How many paths a per-run warning names before it summarizes the rest.
|
|
127
127
|
_WARNING_SAMPLE = 5
|
|
128
128
|
|
|
129
|
-
#: Multi-value typed columns. Their ``<name>Id`` companion is a collection of ids
|
|
130
|
-
#: that a ``*`` projection omits (LookupMulti entirely; UserMulti unreliably), so the
|
|
131
|
-
#: source selects them explicitly and the target writes ``{"results": [...]}``.
|
|
132
|
-
_MULTI_VALUE_TYPES = frozenset({"LookupMulti", "UserMulti"})
|
|
133
|
-
|
|
134
|
-
#: Typed columns whose values are remapped (lookup item ids, person logins).
|
|
135
|
-
_TYPED_VALUE_TYPES = frozenset({"Lookup", "LookupMulti", "User", "UserMulti"})
|
|
136
|
-
|
|
137
|
-
#: Properties the source column scans need. Selecting them explicitly keeps the read
|
|
138
|
-
#: independent of whatever ``$select`` a previous caller left on the shared
|
|
139
|
-
#: ``fields`` collection — ``List.fields`` survives a ``capture_list_structure``
|
|
140
|
-
#: read (which selects a different, narrower set), and a field payload that omits
|
|
141
|
-
#: ``AllowMultipleValues`` makes a multi-value column look single-value.
|
|
142
|
-
_SOURCE_FIELD_SELECT = [
|
|
143
|
-
"Id",
|
|
144
|
-
"InternalName",
|
|
145
|
-
"TypeAsString",
|
|
146
|
-
"SchemaXml",
|
|
147
|
-
"Hidden",
|
|
148
|
-
"ReadOnlyField",
|
|
149
|
-
"TextField",
|
|
150
|
-
"AllowMultipleValues",
|
|
151
|
-
]
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
#: Choice column types; a multi-choice column stores a collection of strings.
|
|
155
|
-
_CHOICE_TYPES = frozenset({"Choice", "MultiChoice"})
|
|
156
|
-
|
|
157
|
-
#: Column types whose value is a small REST object instead of a scalar.
|
|
158
|
-
_VALUE_OBJECT_TYPES = frozenset({"URL"})
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
def _allows_multiple_values(field: Any) -> bool:
|
|
162
|
-
"""Whether a Lookup/Person column holds many values.
|
|
163
|
-
|
|
164
|
-
``TypeAsString`` is not authoritative here. A column created from a
|
|
165
|
-
``Type="Lookup" Mult="TRUE"`` (or ``Type="User" Mult="TRUE"``) schema keeps that
|
|
166
|
-
spelling, so SharePoint reports the *single-value* type and only
|
|
167
|
-
``AllowMultipleValues`` tells the truth (live-verified). Classifying such a
|
|
168
|
-
column as single-value left its collection of ids unremapped: a multi-lookup
|
|
169
|
-
kept source item ids and a multi-person kept source site-user ids on the target,
|
|
170
|
-
and verification could not see the difference.
|
|
171
|
-
"""
|
|
172
|
-
if getattr(field, "type_as_string", None) in _MULTI_VALUE_TYPES:
|
|
173
|
-
return True
|
|
174
|
-
return field.properties.get("AllowMultipleValues") is True
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
def _is_multi_choice_column(field: Any) -> bool:
|
|
178
|
-
"""Whether a Choice column stores a collection of values.
|
|
179
|
-
|
|
180
|
-
``TypeAsString == "MultiChoice"`` is the only reliable signal. Live-probed: a
|
|
181
|
-
column created from a ``Type="Choice" Mult="TRUE"`` schema reads back as
|
|
182
|
-
``"Choice"``, stores one value in a single ``nvarchar`` slot (a scalar write
|
|
183
|
-
round-trips, an array is rejected) and does not project ``AllowMultipleValues``
|
|
184
|
-
at all — its schema ``Mult`` flag is misleading, so it is deliberately not used.
|
|
185
|
-
"""
|
|
186
|
-
field_type = getattr(field, "type_as_string", None)
|
|
187
|
-
if field_type == "MultiChoice":
|
|
188
|
-
return True
|
|
189
|
-
return field_type in _CHOICE_TYPES and _allows_multiple_values(field)
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
def _is_value_object_column(field: Any) -> bool:
|
|
193
|
-
"""Whether a column holds a REST value object rather than a scalar.
|
|
194
|
-
|
|
195
|
-
A Hyperlink column is the common case: a read returns
|
|
196
|
-
``{"Url": ..., "Description": ...}``, which a scalar-only record projection
|
|
197
|
-
dropped (a plain string is accepted on write but then makes every subsequent
|
|
198
|
-
*read* of the column fail, live-probed).
|
|
199
|
-
"""
|
|
200
|
-
return getattr(field, "type_as_string", None) in _VALUE_OBJECT_TYPES
|
|
201
|
-
|
|
202
129
|
|
|
203
130
|
def _scalar_mapping(value: Any) -> dict | None:
|
|
204
131
|
"""A value object as a plain mapping with scalar members, or ``None``.
|
|
@@ -214,35 +141,14 @@ def _scalar_mapping(value: Any) -> dict | None:
|
|
|
214
141
|
return dict(value)
|
|
215
142
|
|
|
216
143
|
|
|
217
|
-
#: Record columns
|
|
218
|
-
#:
|
|
219
|
-
#:
|
|
220
|
-
#:
|
|
221
|
-
#:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
"ID",
|
|
226
|
-
"GUID",
|
|
227
|
-
"FileSystemObjectType",
|
|
228
|
-
"Created",
|
|
229
|
-
"Modified",
|
|
230
|
-
"AuthorId",
|
|
231
|
-
"EditorId",
|
|
232
|
-
"HasUniqueRoleAssignments",
|
|
233
|
-
"ContentTypeId",
|
|
234
|
-
"OData__UIVersionString",
|
|
235
|
-
"_UIVersionString",
|
|
236
|
-
"ServerRedirectedEmbedUri",
|
|
237
|
-
"ServerRedirectedEmbedUrl",
|
|
238
|
-
"ParentList",
|
|
239
|
-
"AttachmentFiles",
|
|
240
|
-
}
|
|
241
|
-
)
|
|
242
|
-
|
|
243
|
-
#: Field types whose value is server-derived: a computed column (a link filename, a
|
|
244
|
-
#: doc icon) is a view of the item's identity, not metadata a folder carries.
|
|
245
|
-
_FOLDER_COMPUTED_TYPES = frozenset({"Attachments", "Computed", "File", "WorkflowStatus"})
|
|
144
|
+
#: Record columns a faithful copy does not compare: what ``ListItem`` declares
|
|
145
|
+
#: server-assigned or reachable by ``$expand``. What remains is the item's *content*,
|
|
146
|
+
#: which a faithful copy preserves.
|
|
147
|
+
#:
|
|
148
|
+
#: A deny-list, not ``ListItem._schema.content_columns``: a record carries the site columns
|
|
149
|
+
#: the tenant defines, which the CSDL does not declare, and a set built from declared names
|
|
150
|
+
#: would drop exactly the columns a faithful copy exists to carry.
|
|
151
|
+
_CONTENT_EXCLUDED = frozenset(ListItem._schema.readonly) | frozenset(ListItem._schema.navigations)
|
|
246
152
|
|
|
247
153
|
|
|
248
154
|
def _folder_value_columns(fields: list[Any]) -> set[str]:
|
|
@@ -261,26 +167,18 @@ def _folder_value_columns(fields: list[Any]) -> set[str]:
|
|
|
261
167
|
and not field.internal_name.startswith("_")
|
|
262
168
|
and not field.hidden
|
|
263
169
|
and not field.read_only_field
|
|
264
|
-
and field.
|
|
170
|
+
and not field.field_type_kind.is_server_assigned
|
|
265
171
|
and field.internal_name not in _FOLDER_RECORD_EXCLUDED
|
|
266
172
|
}
|
|
267
173
|
|
|
268
174
|
|
|
269
|
-
#:
|
|
270
|
-
#: server-assigned
|
|
271
|
-
#:
|
|
272
|
-
#:
|
|
273
|
-
#:
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
"FileDirRef",
|
|
277
|
-
"FileLeafRef",
|
|
278
|
-
"FSObjType",
|
|
279
|
-
"UniqueId",
|
|
280
|
-
"SortBehavior",
|
|
281
|
-
"SMTotalFileStreamSize",
|
|
282
|
-
"SMTotalFileCount",
|
|
283
|
-
}
|
|
175
|
+
#: What a folder record never travels to the target with, or never compares by: the
|
|
176
|
+
#: columns the model declares server-assigned or as navigations -- minus the content
|
|
177
|
+
#: type, because a document set's content type is part of what makes the folder what it
|
|
178
|
+
#: is. A library's sort/stream bookkeeping columns are hidden read-only ones the field
|
|
179
|
+
#: scan already skips, and ``FileLeafRef`` is a ``FieldType.File`` column the type
|
|
180
|
+
#: declares server-assigned, so neither needs naming here.
|
|
181
|
+
_FOLDER_RECORD_EXCLUDED = _CONTENT_EXCLUDED - {"ContentTypeId"}
|
|
284
182
|
|
|
285
183
|
|
|
286
184
|
def _content_checksum(record: dict, extra_excluded: "frozenset[str]" = frozenset()) -> str:
|
|
@@ -303,8 +201,7 @@ def _content_checksum(record: dict, extra_excluded: "frozenset[str]" = frozenset
|
|
|
303
201
|
mapping = _scalar_mapping(value)
|
|
304
202
|
if mapping is not None:
|
|
305
203
|
content[key] = mapping
|
|
306
|
-
|
|
307
|
-
return hashlib.md5(payload.encode("utf-8")).hexdigest()
|
|
204
|
+
return digest(content)
|
|
308
205
|
|
|
309
206
|
|
|
310
207
|
def _folder_record_values(record: dict) -> dict:
|
|
@@ -320,81 +217,29 @@ def _folder_record_values(record: dict) -> dict:
|
|
|
320
217
|
}
|
|
321
218
|
|
|
322
219
|
|
|
323
|
-
def
|
|
324
|
-
"""
|
|
325
|
-
|
|
326
|
-
A live read returns the collection as a positional mapping (``{0: 1, 1: 2}``);
|
|
327
|
-
a payload this client built may hold ``{"results": [...]}``. Both reduce to the
|
|
328
|
-
same list, which is the form the checksum and the remap work with.
|
|
329
|
-
"""
|
|
330
|
-
if isinstance(value, dict):
|
|
331
|
-
if "results" in value:
|
|
332
|
-
value = value["results"]
|
|
333
|
-
else:
|
|
334
|
-
try:
|
|
335
|
-
return [value[i] for i in range(len(value))]
|
|
336
|
-
except (KeyError, TypeError):
|
|
337
|
-
return list(value.values())
|
|
338
|
-
if isinstance(value, (list, tuple)):
|
|
339
|
-
return list(value)
|
|
340
|
-
return None
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
def _multi_values(value: Any) -> list[Any] | None:
|
|
344
|
-
"""A multi-value cell as a plain list of its values, or ``None`` when empty.
|
|
345
|
-
|
|
346
|
-
Accepts every shape a live read or a built payload produces: a positional
|
|
347
|
-
mapping (``{0: "red", 1: "green"}``), a ``{"results": [...]}`` wrapper, a bare
|
|
348
|
-
list, and — because a collection cell may hold exactly one selection — a bare
|
|
349
|
-
scalar.
|
|
350
|
-
"""
|
|
351
|
-
if value is None:
|
|
352
|
-
return None
|
|
353
|
-
if isinstance(value, (str, int, float, bool)):
|
|
354
|
-
return [value]
|
|
355
|
-
return _id_list(value)
|
|
220
|
+
def _typed_keys(names: Iterable[str]) -> set[str]:
|
|
221
|
+
"""The companions a Lookup/Person column's value is carried in, for each column."""
|
|
222
|
+
return {key for name in names for key in (ListItem.value_column(name), ListItem.string_value_column(name))}
|
|
356
223
|
|
|
357
224
|
|
|
358
225
|
def _taxonomy_terms(value: Any) -> list[dict[str, str]]:
|
|
359
|
-
"""
|
|
226
|
+
"""A taxonomy cell as portable ``{"TermGuid": ...}`` terms.
|
|
360
227
|
|
|
361
|
-
A live read shapes a single value as a dict (``{"Label", "TermGuid", "WssId"}``)
|
|
362
|
-
and a multi-value one as a positional mapping (``{0: {...}, 1: {...}}``); a
|
|
363
|
-
payload this client built holds a bare list. All reduce to a list of terms.
|
|
364
228
|
Only ``TermGuid`` is carried: a per-site ``WssId`` is meaningless elsewhere and
|
|
365
229
|
``Label`` is not authoritative (a read may return the WssId string, and the
|
|
366
230
|
server resolves a write by term id regardless of the label).
|
|
367
231
|
"""
|
|
368
|
-
if value is None:
|
|
369
|
-
return []
|
|
370
|
-
if isinstance(value, dict):
|
|
371
|
-
if "TermGuid" in value:
|
|
372
|
-
items: list[Any] = [value]
|
|
373
|
-
elif "results" in value and isinstance(value["results"], (list, tuple)):
|
|
374
|
-
items = list(value["results"])
|
|
375
|
-
else:
|
|
376
|
-
try:
|
|
377
|
-
items = [value[i] for i in range(len(value))]
|
|
378
|
-
except (KeyError, TypeError):
|
|
379
|
-
items = list(value.values())
|
|
380
|
-
elif isinstance(value, (list, tuple)):
|
|
381
|
-
items = list(value)
|
|
382
|
-
else:
|
|
383
|
-
return []
|
|
384
232
|
terms: list[dict[str, str]] = []
|
|
385
|
-
for item in
|
|
386
|
-
if isinstance(item, dict)
|
|
387
|
-
guid = item.get("TermGuid")
|
|
388
|
-
else:
|
|
389
|
-
guid = getattr(item, "TermGuid", None)
|
|
233
|
+
for item in values_of(value) or []:
|
|
234
|
+
guid = item.get("TermGuid") if isinstance(item, dict) else getattr(item, "TermGuid", None)
|
|
390
235
|
if guid:
|
|
391
236
|
terms.append({"TermGuid": str(guid)})
|
|
392
237
|
return terms
|
|
393
238
|
|
|
394
239
|
|
|
395
240
|
def _is_taxonomy_value(value: Any) -> bool:
|
|
396
|
-
"""Whether a projected value is a taxonomy term (single
|
|
397
|
-
return
|
|
241
|
+
"""Whether a projected value is a taxonomy term (single value or a collection)."""
|
|
242
|
+
return bool(_taxonomy_terms(value))
|
|
398
243
|
|
|
399
244
|
|
|
400
245
|
def _taxonomy_guids(value: Any) -> list[str]:
|
|
@@ -417,50 +262,15 @@ def _canonicalize_taxonomy_record(record: dict) -> dict:
|
|
|
417
262
|
return canonical
|
|
418
263
|
|
|
419
264
|
|
|
420
|
-
def _collection_payload(
|
|
421
|
-
"""The JSON shape SharePoint accepts
|
|
265
|
+
def _collection_payload(values: list) -> dict:
|
|
266
|
+
"""The JSON shape SharePoint accepts for a multi-value column.
|
|
422
267
|
|
|
423
|
-
Live-probed
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
only the create path goes through this helper.
|
|
268
|
+
Live-probed on both writes and every multi-value kind (Choice, Lookup, User,
|
|
269
|
+
LookupMulti, UserMulti): a bare array is refused on create *and* on MERGE
|
|
270
|
+
(``InvalidClientQueryException``: a ``StartArray`` where a property value was
|
|
271
|
+
read) while ``{"results": [...]}`` is accepted by both.
|
|
428
272
|
"""
|
|
429
|
-
return {"results":
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
def _sp_utc_timestamp(value: str | None) -> str | None:
|
|
433
|
-
"""Normalize a timestamp to the UTC form a *list item* honors.
|
|
434
|
-
|
|
435
|
-
Live-probed: ``ValidateUpdateListItem`` on a plain list item parses an
|
|
436
|
-
ISO-8601 value with a trailing ``Z`` as UTC (and ``datesInUTC=True`` keeps it
|
|
437
|
-
that way), so this form round-trips the exact instant.
|
|
438
|
-
"""
|
|
439
|
-
if not value:
|
|
440
|
-
return None
|
|
441
|
-
parsed = parse_datetime(value)
|
|
442
|
-
if parsed is None:
|
|
443
|
-
return value
|
|
444
|
-
if parsed.tzinfo is None:
|
|
445
|
-
parsed = parsed.replace(tzinfo=timezone.utc)
|
|
446
|
-
return parsed.astimezone(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
def _sp_local_timestamp(value: datetime | str | None) -> str | None:
|
|
450
|
-
"""Format a *web-local* value as the date form a document item accepts.
|
|
451
|
-
|
|
452
|
-
Live-probed: document-library items ignore ``datesInUTC`` and parse every date
|
|
453
|
-
string in the web's locale, rejecting a trailing ``Z`` (``...must specify a
|
|
454
|
-
valid date within the range of 1/1/1900 and 12/31/8900.``). The space-separated
|
|
455
|
-
``YYYY-MM-DD HH:MM:SS`` form is accepted and interpreted as local wall-clock,
|
|
456
|
-
so callers must pass the instant already converted to web-local time (see
|
|
457
|
-
``SharePointLibraryTarget._local_timestamp``).
|
|
458
|
-
"""
|
|
459
|
-
if value is None:
|
|
460
|
-
return None
|
|
461
|
-
if isinstance(value, datetime):
|
|
462
|
-
return value.strftime("%Y-%m-%d %H:%M:%S")
|
|
463
|
-
return str(value)
|
|
273
|
+
return {"results": values}
|
|
464
274
|
|
|
465
275
|
|
|
466
276
|
def _report_rejected_fields(result, warnings: list[str], label: str) -> None:
|
|
@@ -477,34 +287,40 @@ def _report_rejected_fields(result, warnings: list[str], label: str) -> None:
|
|
|
477
287
|
warnings.append(f"{label}: {value.FieldName} rejected ({value.ErrorMessage})")
|
|
478
288
|
|
|
479
289
|
|
|
480
|
-
def
|
|
481
|
-
"""
|
|
290
|
+
def _wire_value(value: Any) -> Any:
|
|
291
|
+
"""A value as the wire spells it: a declared enum is the number it carries."""
|
|
292
|
+
return value.value if isinstance(value, Enum) else value
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def _web_local_texts(web: "Web", *values: Any) -> list[str | None]:
|
|
296
|
+
"""The wall-clock texts a document's item form parses, one per instant given.
|
|
482
297
|
|
|
483
|
-
|
|
484
|
-
``
|
|
298
|
+
A document's ``ValidateUpdateListItem`` ignores ``datesInUTC``, parses the web's
|
|
299
|
+
locale and refuses a trailing ``Z`` (live-verified on a file and on a folder), so an
|
|
300
|
+
instant has to reach it as the web's own wall clock. That conversion runs server-side
|
|
301
|
+
(``TimeZone.UTCToLocalTime``) so DST is right, and one request converts every value.
|
|
302
|
+
A value that is not an instant is passed on as given, so the service rejection names
|
|
303
|
+
what the caller held instead of this layer having dropped it.
|
|
485
304
|
"""
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
if
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
def _version_sort_key(label: str) -> tuple[int, ...]:
|
|
497
|
-
"""Sort key for a version label like ``"2.0"`` (numeric parts, non-numeric last)."""
|
|
498
|
-
try:
|
|
499
|
-
return tuple(int(part) for part in str(label).split("."))
|
|
500
|
-
except ValueError:
|
|
501
|
-
return (0,)
|
|
305
|
+
zone = web.regional_settings.time_zone
|
|
306
|
+
instants = {index: parse_datetime(iso_z(value)) for index, value in enumerate(values) if value}
|
|
307
|
+
converted = {index: zone.utc_to_local_time(instant) for index, instant in instants.items() if instant is not None}
|
|
308
|
+
if converted:
|
|
309
|
+
web.context.execute_query()
|
|
310
|
+
return [
|
|
311
|
+
wall_clock_text(converted[index].value) if index in converted else (str(value) if value else None)
|
|
312
|
+
for index, value in enumerate(values)
|
|
313
|
+
]
|
|
314
|
+
|
|
502
315
|
|
|
316
|
+
def _moderation_state(properties: dict) -> dict:
|
|
317
|
+
"""The approval fields a list item carries; a blank comment is not one of them.
|
|
318
|
+
|
|
319
|
+
A hydrated model hands out enum members (``SPModerationStatusType``); the state is a
|
|
320
|
+
payload to write back, so it carries the numbers the column stores.
|
|
321
|
+
"""
|
|
322
|
+
return {name: _wire_value(properties[name]) for name in _MODERATION_FIELDS if properties.get(name) not in (None, "")}
|
|
503
323
|
|
|
504
|
-
#: Library-relative paths SharePoint owns and recreates on the target (its forms
|
|
505
|
-
#: folder and the folder rendering file). Migrating them collides server-side and
|
|
506
|
-
#: clobbers system pages client-side, so the source adapter skips them.
|
|
507
|
-
_LIBRARY_SYSTEM_PATHS = ("Forms", "desktop.ini")
|
|
508
324
|
|
|
509
325
|
#: SiteAssets is the one library that also holds per-site infrastructure — the
|
|
510
326
|
#: site icon and the auto-provisioned OneNote folder.
|
|
@@ -514,10 +330,8 @@ _SITE_ASSETS_URL_SUFFIX = "/SiteAssets"
|
|
|
514
330
|
def _site_assets_scaffolding(folder) -> tuple[str, ...]:
|
|
515
331
|
"""SiteAssets-only SharePoint-owned entries for this web (empty otherwise).
|
|
516
332
|
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
folder carries the *target* web's name. The site icon is site branding whose
|
|
520
|
-
bytes are meaningless on another site. Both are skipped on each side.
|
|
333
|
+
The notebook carries the *web's* title and the site icon is site branding, so both
|
|
334
|
+
differ on the target; each side skips its own.
|
|
521
335
|
"""
|
|
522
336
|
url = (folder.server_relative_url or "").rstrip("/")
|
|
523
337
|
if not url.endswith(_SITE_ASSETS_URL_SUFFIX):
|
|
@@ -532,103 +346,65 @@ def _site_assets_scaffolding(folder) -> tuple[str, ...]:
|
|
|
532
346
|
return tuple(names)
|
|
533
347
|
|
|
534
348
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
return any(rel == entry or rel.startswith(entry + "/") for entry in entries)
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
def is_taxonomy_validation(exc: Exception) -> bool:
|
|
542
|
-
"""True when a request failed because a Managed Metadata (taxonomy) column
|
|
543
|
-
references a term set / term that no longer exists.
|
|
544
|
-
|
|
545
|
-
SharePoint raises ``SPFieldValidationException`` ("the given guid does not
|
|
546
|
-
exist in the term store") while composing the item payload — the exact case
|
|
547
|
-
that makes a plain list-items read fail.
|
|
548
|
-
"""
|
|
549
|
-
text = f"{getattr(exc, 'code', '') or ''} {getattr(exc, 'message', '') or ''} {exc}".lower()
|
|
550
|
-
return "spfieldvalidationexception" in text and "term store" in text
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
def taxonomy_internal_names(fields) -> list[str]:
|
|
554
|
-
"""Internal names of Managed Metadata columns in a loaded field set."""
|
|
555
|
-
names: list[str] = []
|
|
556
|
-
for field in fields:
|
|
557
|
-
type_name = getattr(field, "type_as_string", None) or ""
|
|
558
|
-
schema = getattr(field, "schema_xml", None) or ""
|
|
559
|
-
if type_name in _TAXONOMY_FIELD_TYPES or "TermSetId=" in schema:
|
|
560
|
-
internal_name = getattr(field, "internal_name", None)
|
|
561
|
-
if internal_name:
|
|
562
|
-
names.append(internal_name)
|
|
563
|
-
return list(dict.fromkeys(names))
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
def _perm_mask(role_definition: Any) -> str | None:
|
|
567
|
-
"""The decimal ``PermMask`` of a role definition (``BasePermissions`` High/Low)."""
|
|
568
|
-
base = getattr(role_definition, "base_permissions", None)
|
|
569
|
-
if base is None:
|
|
570
|
-
return None
|
|
571
|
-
try:
|
|
572
|
-
return str((int(base.High) << 32) | int(base.Low))
|
|
573
|
-
except (TypeError, ValueError):
|
|
574
|
-
return None
|
|
349
|
+
# How far a group's owner chain is followed (a group owned by a group owned by a
|
|
350
|
+
# user is the normal depth for the default site groups).
|
|
351
|
+
_MAX_GROUP_OWNER_DEPTH = 4
|
|
575
352
|
|
|
576
353
|
|
|
577
|
-
def
|
|
578
|
-
"""
|
|
354
|
+
def _principal_kind(member: Any) -> str | None:
|
|
355
|
+
"""What ``UserGroup.xml`` can express for this role-assignment member: a user by PUID
|
|
356
|
+
(``"user"``) or a site group by title (``"group"``); a distribution or security group
|
|
357
|
+
and an unprojected ``PrincipalType`` are ``None``."""
|
|
579
358
|
ptype = getattr(member, "principal_type", None)
|
|
580
|
-
if ptype is None:
|
|
581
|
-
return False
|
|
582
359
|
if ptype == PrincipalType.User:
|
|
583
|
-
return
|
|
584
|
-
|
|
585
|
-
|
|
360
|
+
return "user"
|
|
361
|
+
if ptype == PrincipalType.SharePointGroup:
|
|
362
|
+
return "group"
|
|
363
|
+
return None
|
|
364
|
+
|
|
586
365
|
|
|
366
|
+
#: The flag that says whether a securable object owns its ACL, spelled by its declaration.
|
|
367
|
+
_UNIQUE_PERMISSIONS = _SECURABLE.name_of("has_unique_role_assignments")
|
|
587
368
|
|
|
588
|
-
def _is_system_principal(user: Any) -> bool:
|
|
589
|
-
"""Whether a resolved user is a tenant system/app account.
|
|
590
369
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
intact.
|
|
370
|
+
def _principal_of(user: "User", key: int) -> Principal:
|
|
371
|
+
"""A site user as the plan spells a principal, read from the model's own fields.
|
|
372
|
+
|
|
373
|
+
The PUID is ``UserInfo.UserId.NameId`` — one member of one nested value — so the
|
|
374
|
+
model answers it (`UserIdInfo.name_id`), not a wire name spelled here.
|
|
597
375
|
"""
|
|
598
|
-
|
|
599
|
-
|
|
376
|
+
return Principal(
|
|
377
|
+
login_name=user.login_name or "",
|
|
378
|
+
system_id=normalize_puid(user.user_id.name_id),
|
|
379
|
+
display_name=user.title,
|
|
380
|
+
email=user.email,
|
|
381
|
+
user_id=key,
|
|
382
|
+
)
|
|
600
383
|
|
|
601
384
|
|
|
602
385
|
def _has_unique_role_assignments(securable, *, refresh: bool = False) -> bool:
|
|
603
386
|
"""Whether a securable has unique (broken-inheritance) role assignments.
|
|
604
387
|
|
|
605
|
-
SharePoint REST returns *inherited* role assignments too, so reading them
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
A plain entity read does not return the flag, so an object loaded *before* its
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
388
|
+
SharePoint REST returns *inherited* role assignments too, so reading them verbatim
|
|
389
|
+
would break inheritance on every item and replicate the parent ACL. Only items with
|
|
390
|
+
unique assignments are read/applied (and compared by the verifier); inherited items
|
|
391
|
+
stay inherited on the target.
|
|
392
|
+
|
|
393
|
+
A plain entity read does not return the flag, so an object loaded *before* its ACL
|
|
394
|
+
changed keeps a stale value. The target side passes ``refresh=True``: this value
|
|
395
|
+
decides whether an ACL is applied or compared at all, so a stale ``False`` would
|
|
396
|
+
break inheritance on an item that is already unique (wiping the assignments it was
|
|
397
|
+
supposed to keep) and a stale ``False`` read back after a write would report a
|
|
398
|
+
permission mismatch for an ACL that did land.
|
|
616
399
|
"""
|
|
617
400
|
unique = getattr(securable, "has_unique_role_assignments", None)
|
|
618
401
|
if unique is not None and not refresh:
|
|
619
402
|
return bool(unique)
|
|
620
|
-
options = getattr(securable, "query_options", None)
|
|
621
|
-
previous = list(getattr(options, "select", None) or [])
|
|
622
403
|
try:
|
|
623
|
-
securable.
|
|
624
|
-
except Exception: #
|
|
404
|
+
securable.ensure_properties([_UNIQUE_PERMISSIONS], refresh=refresh).execute_query()
|
|
405
|
+
except Exception: # an unreadable flag is treated as "not unique"
|
|
625
406
|
return False
|
|
626
|
-
|
|
627
|
-
if options is not None:
|
|
628
|
-
# The projection lives on the object's query options: leaving it on
|
|
629
|
-
# would narrow every later read of the same item.
|
|
630
|
-
options.select = previous
|
|
631
|
-
return bool(securable.properties.get("HasUniqueRoleAssignments"))
|
|
407
|
+
return bool(securable.properties.get(_UNIQUE_PERMISSIONS))
|
|
632
408
|
|
|
633
409
|
|
|
634
410
|
def _replay_role_assignments(
|
|
@@ -691,35 +467,6 @@ def _user_login(web, user_id: Any, cache: dict[int, str | None]) -> str | None:
|
|
|
691
467
|
return login
|
|
692
468
|
|
|
693
469
|
|
|
694
|
-
class _MultiValueCreateTarget:
|
|
695
|
-
"""An upsert target that reshapes multi-value columns only when creating.
|
|
696
|
-
|
|
697
|
-
A multi-value Lookup/Person column is created with the ``{"results": [...]}``
|
|
698
|
-
wire shape but updated with a bare array (live-probed), so ``keyed_queue`` needs
|
|
699
|
-
to reshape the creates and leave the updates alone. Everything else delegates.
|
|
700
|
-
"""
|
|
701
|
-
|
|
702
|
-
def __init__(self, target: Any, reshape: Callable[[dict], dict]) -> None:
|
|
703
|
-
self._target = target
|
|
704
|
-
self._reshape = reshape
|
|
705
|
-
|
|
706
|
-
@property
|
|
707
|
-
def key_field(self) -> str:
|
|
708
|
-
return self._target.key_field
|
|
709
|
-
|
|
710
|
-
def ensure_key_field(self) -> None:
|
|
711
|
-
self._target.ensure_key_field()
|
|
712
|
-
|
|
713
|
-
def load_keys(self) -> Any:
|
|
714
|
-
return self._target.load_keys()
|
|
715
|
-
|
|
716
|
-
def create_records(self, records: list[dict]) -> None:
|
|
717
|
-
self._target.create_records([self._reshape(record) for record in records])
|
|
718
|
-
|
|
719
|
-
def update_record(self, item_id: Any, record: dict) -> None:
|
|
720
|
-
self._target.update_record(item_id, record)
|
|
721
|
-
|
|
722
|
-
|
|
723
470
|
class _DefaultGroups:
|
|
724
471
|
"""Maps a web's associated default groups (Owners/Members/Visitors).
|
|
725
472
|
|
|
@@ -794,6 +541,7 @@ class _TargetPrincipals:
|
|
|
794
541
|
"""Canonical principal name (default groups collapse to ``default:<Kind>``)."""
|
|
795
542
|
return self._defaults.normalize(name)
|
|
796
543
|
|
|
544
|
+
@site_access(SiteLevel.MANAGE)
|
|
797
545
|
def user(self, login: str | None):
|
|
798
546
|
"""Ensure a user login on the target site and return its ``User`` object."""
|
|
799
547
|
if not login:
|
|
@@ -809,6 +557,7 @@ class _TargetPrincipals:
|
|
|
809
557
|
self._users[login] = obj
|
|
810
558
|
return obj
|
|
811
559
|
|
|
560
|
+
@site_access(SiteLevel.MANAGE)
|
|
812
561
|
def principal(self, name: str):
|
|
813
562
|
"""Resolve a source principal (user or group) to a target principal object."""
|
|
814
563
|
if not name:
|
|
@@ -832,6 +581,7 @@ class _TargetPrincipals:
|
|
|
832
581
|
self._warnings.append(f"could not resolve principal {name!r} on the target")
|
|
833
582
|
return None
|
|
834
583
|
|
|
584
|
+
@site_access(SiteLevel.MANAGE)
|
|
835
585
|
def role(self, name: str) -> "RoleDefinition | None":
|
|
836
586
|
"""Resolve (and cache) a target role definition by name."""
|
|
837
587
|
if self._roles is None:
|
|
@@ -840,6 +590,61 @@ class _TargetPrincipals:
|
|
|
840
590
|
return self._roles.get(name)
|
|
841
591
|
|
|
842
592
|
|
|
593
|
+
def _resolve_group_ownership(
|
|
594
|
+
web: Any,
|
|
595
|
+
title: str,
|
|
596
|
+
resolve: Callable[[Any], "Principal | None"] | None,
|
|
597
|
+
) -> tuple["Principal | None", list[str]]:
|
|
598
|
+
"""A site group's owner chain: a user with a PUID, plus the groups on the way up.
|
|
599
|
+
|
|
600
|
+
``UserGroup.xml`` requires an ``Owner`` on every ``<Group>`` — live-verified: a
|
|
601
|
+
group emitted without one fails the whole ingestion job with ``The required
|
|
602
|
+
attribute 'Owner' is missing`` — and an owner may itself be a group (a team
|
|
603
|
+
site's ``Visitors`` group is owned by its ``Owners`` group, which owns itself;
|
|
604
|
+
both live-verified). The returned titles are **nearest first**; the last one is
|
|
605
|
+
owned by the returned user, or owns itself when the chain closes on itself or
|
|
606
|
+
leaves the tenant (a group created by the migration app is owned by the app,
|
|
607
|
+
which has no PUID).
|
|
608
|
+
"""
|
|
609
|
+
groups: list[str] = []
|
|
610
|
+
seen: set[str] = {title.casefold()}
|
|
611
|
+
current = title
|
|
612
|
+
for _ in range(_MAX_GROUP_OWNER_DEPTH):
|
|
613
|
+
try:
|
|
614
|
+
group = web.site_groups.get_by_name(current).get().execute_query()
|
|
615
|
+
owner = group.owner.get().execute_query()
|
|
616
|
+
except Exception: # noqa: BLE001 - best-effort: a title the site does not have ends the chain
|
|
617
|
+
break
|
|
618
|
+
if _principal_kind(owner) == "user":
|
|
619
|
+
principal = resolve(getattr(owner, "id", None)) if resolve is not None else None
|
|
620
|
+
return principal, groups
|
|
621
|
+
owner_title = getattr(owner, "title", None)
|
|
622
|
+
if not owner_title:
|
|
623
|
+
break
|
|
624
|
+
groups.append(owner_title)
|
|
625
|
+
if owner_title.casefold() in seen:
|
|
626
|
+
break
|
|
627
|
+
seen.add(owner_title.casefold())
|
|
628
|
+
current = owner_title
|
|
629
|
+
return None, groups
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
def _attach_group_owners(
|
|
633
|
+
entries: list[PermissionEntry],
|
|
634
|
+
web: Any,
|
|
635
|
+
resolve: Callable[[Any], "Principal | None"] | None,
|
|
636
|
+
cache: dict[str, tuple["Principal | None", list[str]]],
|
|
637
|
+
) -> None:
|
|
638
|
+
"""Fill ``PermissionEntry.owner``/``owner_groups`` for group entries (per title)."""
|
|
639
|
+
for entry in entries:
|
|
640
|
+
if entry.principal_type != "group":
|
|
641
|
+
continue
|
|
642
|
+
title = entry.display_name or entry.principal_name
|
|
643
|
+
if title not in cache:
|
|
644
|
+
cache[title] = _resolve_group_ownership(web, title, resolve)
|
|
645
|
+
entry.owner, entry.owner_groups = cache[title]
|
|
646
|
+
|
|
647
|
+
|
|
843
648
|
def _read_role_assignments(
|
|
844
649
|
securable,
|
|
845
650
|
resolve: Callable[[Any], "Principal | None"] | None = None,
|
|
@@ -851,11 +656,14 @@ def _read_role_assignments(
|
|
|
851
656
|
the same shape so the permission diff compares like with like. ``normalize``
|
|
852
657
|
(when supplied) canonicalizes a principal name — default groups collapse to
|
|
853
658
|
``default:<Kind>`` so a renamed site still compares as preserved. Role names are
|
|
854
|
-
paired with their decimal ``PermMask`` (``role_masks``),
|
|
855
|
-
|
|
856
|
-
|
|
659
|
+
paired with their decimal ``PermMask`` (``role_masks``), the principal kind is
|
|
660
|
+
recorded in ``principal_type``, and — when ``resolve`` is supplied — a user
|
|
661
|
+
principal is enriched with its PUID/display name/email so the server-side
|
|
662
|
+
package target can emit a faithful ``UserGroup.xml`` entry. A SharePoint group
|
|
663
|
+
keeps its **title** in ``display_name`` (the normalized name would not match on
|
|
664
|
+
the target).
|
|
857
665
|
"""
|
|
858
|
-
assignments = securable.
|
|
666
|
+
assignments = securable.get_role_assignments().execute_query()
|
|
859
667
|
result: list[PermissionEntry] = []
|
|
860
668
|
for assignment in assignments:
|
|
861
669
|
member = assignment.member
|
|
@@ -868,15 +676,18 @@ def _read_role_assignments(
|
|
|
868
676
|
if not role.name:
|
|
869
677
|
continue
|
|
870
678
|
roles.append(role.name)
|
|
871
|
-
mask =
|
|
679
|
+
mask = role.perm_mask
|
|
872
680
|
if mask is not None:
|
|
873
681
|
role_masks[role.name] = mask
|
|
874
682
|
entry = PermissionEntry(
|
|
875
683
|
principal_name=normalize(name) if normalize is not None else name,
|
|
876
684
|
roles=roles,
|
|
877
685
|
role_masks=role_masks,
|
|
686
|
+
principal_type=_principal_kind(member),
|
|
878
687
|
)
|
|
879
|
-
if
|
|
688
|
+
if entry.principal_type == "group":
|
|
689
|
+
entry.display_name = member.title or name
|
|
690
|
+
if resolve is not None and entry.principal_type == "user":
|
|
880
691
|
principal = resolve(getattr(member, "id", None))
|
|
881
692
|
if principal is not None:
|
|
882
693
|
entry.system_id = principal.system_id
|
|
@@ -914,15 +725,10 @@ class SharePointListSource:
|
|
|
914
725
|
self._items: dict[str, Any] = {}
|
|
915
726
|
self._attachments: dict[str, Any] = {}
|
|
916
727
|
self._users: dict[int, Principal | None] = {}
|
|
728
|
+
# Group title -> (owner user, owner group chain); a ``<Group>`` needs both.
|
|
729
|
+
self._group_owners: dict[str, tuple[Principal | None, list[str]]] = {}
|
|
917
730
|
self._default_groups: _DefaultGroups | None = None
|
|
918
|
-
self._source_fields_cache: list[
|
|
919
|
-
self._user_columns_cache: set[str] | None = None
|
|
920
|
-
self._multi_columns_cache: dict[str, str] | None = None
|
|
921
|
-
self._skipped_columns_cache: set[str] | None = None
|
|
922
|
-
self._taxonomy_columns_cache: dict[str, bool] | None = None
|
|
923
|
-
self._taxonomy_note_columns_cache: set[str] | None = None
|
|
924
|
-
self._multi_choice_columns_cache: set[str] | None = None
|
|
925
|
-
self._value_object_columns_cache: set[str] | None = None
|
|
731
|
+
self._source_fields_cache: list[Field] | None = None
|
|
926
732
|
self._folder_records_cache: dict[str, dict] | None = None
|
|
927
733
|
self.warnings: list[str] = []
|
|
928
734
|
|
|
@@ -932,11 +738,11 @@ class SharePointListSource:
|
|
|
932
738
|
def list_items(self, progress: MigrationProgress = None) -> list[MigrationItem]:
|
|
933
739
|
try:
|
|
934
740
|
loaded = self._load_items(self._select)
|
|
935
|
-
except
|
|
936
|
-
# A full read of a list with an orphaned Managed Metadata column
|
|
937
|
-
#
|
|
938
|
-
#
|
|
939
|
-
if not
|
|
741
|
+
except SPFieldValidationException as e:
|
|
742
|
+
# A full read of a list with an orphaned Managed Metadata column fails
|
|
743
|
+
# server-side; re-enumerate without those columns. An explicit --select
|
|
744
|
+
# is honored as-is.
|
|
745
|
+
if not e.is_missing_term or self._select:
|
|
940
746
|
raise
|
|
941
747
|
self.warnings.append(
|
|
942
748
|
"Full item read failed — a Managed Metadata column references a missing term set; "
|
|
@@ -962,7 +768,7 @@ class SharePointListSource:
|
|
|
962
768
|
# multi-person ids only inconsistently); select each ``<name>Id``
|
|
963
769
|
# explicitly so the values are not silently lost.
|
|
964
770
|
for name in self._multi_columns():
|
|
965
|
-
key =
|
|
771
|
+
key = ListItem.value_column(name)
|
|
966
772
|
if key not in columns:
|
|
967
773
|
columns.append(key)
|
|
968
774
|
# Expand attachments so they can be migrated alongside their item.
|
|
@@ -983,7 +789,7 @@ class SharePointListSource:
|
|
|
983
789
|
stays on the list's user columns only.
|
|
984
790
|
"""
|
|
985
791
|
fields = self._list.fields.get().execute_query()
|
|
986
|
-
taxonomy =
|
|
792
|
+
taxonomy = list(dict.fromkeys(f.internal_name for f in fields if f.internal_name and f.is_taxonomy))
|
|
987
793
|
self.warnings.append(f"excluded Managed Metadata column(s): {', '.join(sorted(taxonomy)) or 'none'}")
|
|
988
794
|
columns = ["Id"]
|
|
989
795
|
for field in fields:
|
|
@@ -1013,15 +819,11 @@ class SharePointListSource:
|
|
|
1013
819
|
item_type="record",
|
|
1014
820
|
modified=iso_or_none(record.get("Modified")),
|
|
1015
821
|
created=iso_or_none(record.get("Created")),
|
|
1016
|
-
author_id=author_id,
|
|
1017
|
-
editor_id=editor_id,
|
|
1018
822
|
)
|
|
1019
823
|
# Resolve the source author/editor once so an authorship-preserving
|
|
1020
824
|
# target can restore them by login name (ids are tenant-local).
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
if editor_id is not None:
|
|
1024
|
-
planned.editor = self._principal_for(editor_id)
|
|
825
|
+
planned.author = self._principal_for(author_id)
|
|
826
|
+
planned.editor = self._principal_for(editor_id)
|
|
1025
827
|
result.append(planned)
|
|
1026
828
|
for attachment in item.properties.get("AttachmentFiles") or []:
|
|
1027
829
|
pending_attachments.append((item_id, attachment))
|
|
@@ -1052,7 +854,7 @@ class SharePointListSource:
|
|
|
1052
854
|
# navigation property (objects, not a scalar column) and is excluded; the
|
|
1053
855
|
# target writes attachments separately.
|
|
1054
856
|
select = sorted(
|
|
1055
|
-
{key for item in loaded for key in item.properties if key != "AttachmentFiles"} -
|
|
857
|
+
{key for item in loaded for key in item.properties if key != "AttachmentFiles"} - ListItem._schema.readonly
|
|
1056
858
|
)
|
|
1057
859
|
records = records_from_items(list(loaded), select, set(), raw=True)
|
|
1058
860
|
# A REST item create accepts scalar column values only. A full read also
|
|
@@ -1060,10 +862,13 @@ class SharePointListSource:
|
|
|
1060
862
|
# (lookups/persons, e.g. ``PredecessorsId`` / ``AssignedTo``) whose JSON
|
|
1061
863
|
# objects carry no ``__metadata.type`` here, so the create batch is
|
|
1062
864
|
# rejected with ``InvalidClientQueryException``. Typed-value remapping is
|
|
1063
|
-
# not supported yet, so drop them and say so rather than fail the run.
|
|
865
|
+
# not supported yet, so drop them and say so rather than fail the run. The
|
|
866
|
+
# item's own links (``ParentList``, ``FieldValuesAsHtml``) carry no scalar content
|
|
867
|
+
# either, and are dropped silently: they are the navigations the model declares.
|
|
1064
868
|
dropped: set[str] = set()
|
|
869
|
+
navigations: set[str] = {name for item in loaded for name in type(item)._schema.navigations}
|
|
1065
870
|
multi = self._multi_columns()
|
|
1066
|
-
multi_keys =
|
|
871
|
+
multi_keys = _typed_keys(multi)
|
|
1067
872
|
choices = self._multi_choice_columns()
|
|
1068
873
|
taxonomy = self._taxonomy_columns()
|
|
1069
874
|
value_objects = self._value_object_columns()
|
|
@@ -1080,7 +885,7 @@ class SharePointListSource:
|
|
|
1080
885
|
continue # a value object (``{"Url", "Description"}``) is writable as-is
|
|
1081
886
|
if value is not None and not isinstance(value, (str, int, float, bool)):
|
|
1082
887
|
record.pop(key)
|
|
1083
|
-
if key not in
|
|
888
|
+
if key not in navigations:
|
|
1084
889
|
dropped.add(key)
|
|
1085
890
|
if dropped:
|
|
1086
891
|
self.warnings.append(
|
|
@@ -1091,7 +896,7 @@ class SharePointListSource:
|
|
|
1091
896
|
# than fail the create on an unknown column.
|
|
1092
897
|
skipped = self._skipped_columns()
|
|
1093
898
|
if skipped:
|
|
1094
|
-
skipped_keys =
|
|
899
|
+
skipped_keys = _typed_keys(skipped)
|
|
1095
900
|
for record in records:
|
|
1096
901
|
for key in skipped_keys:
|
|
1097
902
|
record.pop(key, None)
|
|
@@ -1154,10 +959,10 @@ class SharePointListSource:
|
|
|
1154
959
|
single_lookups = {
|
|
1155
960
|
field.internal_name
|
|
1156
961
|
for field in self._source_fields()
|
|
1157
|
-
if field.internal_name and field.
|
|
962
|
+
if field.internal_name and field.is_lookup and not field.is_multi_valued
|
|
1158
963
|
}
|
|
1159
964
|
for name in sorted((single_lookups | self._user_columns() | set(self._multi_columns())) & writable):
|
|
1160
|
-
key =
|
|
965
|
+
key = ListItem.value_column(name)
|
|
1161
966
|
if key not in columns:
|
|
1162
967
|
columns.append(key)
|
|
1163
968
|
for note in self._taxonomy_note_columns():
|
|
@@ -1165,44 +970,44 @@ class SharePointListSource:
|
|
|
1165
970
|
columns.append(note)
|
|
1166
971
|
return columns
|
|
1167
972
|
|
|
1168
|
-
def _source_fields(self) -> list[
|
|
1169
|
-
"""The source list's field definitions, read once and shared by every scan.
|
|
973
|
+
def _source_fields(self) -> list[Field]:
|
|
974
|
+
"""The source list's field definitions, read once and shared by every scan.
|
|
975
|
+
|
|
976
|
+
The projection is the columns of every typed column class, so the read does not
|
|
977
|
+
depend on whatever ``$select`` a previous caller left on the shared ``fields``
|
|
978
|
+
collection -- ``List.fields`` survives a ``capture_list_structure`` read, which
|
|
979
|
+
selects a narrower set.
|
|
980
|
+
"""
|
|
1170
981
|
if self._source_fields_cache is None:
|
|
1171
|
-
|
|
982
|
+
try:
|
|
983
|
+
self._source_fields_cache = list(self._list.fields.select(Field.scan_columns()).get().execute_query())
|
|
984
|
+
except Exception as e: # noqa: BLE001 — values stay un-remapped, never fatal
|
|
985
|
+
self.warnings.append(f"could not read the list's columns for typed-value remapping: {e}")
|
|
986
|
+
self._source_fields_cache = []
|
|
1172
987
|
return self._source_fields_cache
|
|
1173
988
|
|
|
1174
989
|
def _taxonomy_columns(self) -> dict[str, bool]:
|
|
1175
|
-
"""The source's Managed Metadata columns (internal name ->
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
by_id = {
|
|
1182
|
-
normalize_guid(getattr(field, "id", None)): getattr(field, "internal_name", None) for field in fields
|
|
1183
|
-
}
|
|
1184
|
-
for field in fields:
|
|
1185
|
-
internal_name = getattr(field, "internal_name", None)
|
|
1186
|
-
if not internal_name:
|
|
1187
|
-
continue
|
|
1188
|
-
field_type = getattr(field, "type_as_string", None)
|
|
1189
|
-
schema = getattr(field, "schema_xml", None) or ""
|
|
1190
|
-
if field_type not in _TAXONOMY_FIELD_TYPES and "TermSetId" not in schema:
|
|
1191
|
-
continue
|
|
1192
|
-
columns[internal_name] = field_type == "TaxonomyFieldTypeMulti" or 'Mult="TRUE"' in schema
|
|
1193
|
-
note = by_id.get(normalize_guid(field.properties.get("TextField")))
|
|
1194
|
-
if note:
|
|
1195
|
-
notes.add(note)
|
|
1196
|
-
except Exception as e: # noqa: BLE001 — values stay un-remapped, never fatal
|
|
1197
|
-
self.warnings.append(f"could not read source columns for taxonomy remapping: {e}")
|
|
1198
|
-
self._taxonomy_columns_cache = columns
|
|
1199
|
-
self._taxonomy_note_columns_cache = notes
|
|
1200
|
-
return self._taxonomy_columns_cache
|
|
990
|
+
"""The source's Managed Metadata columns (internal name -> holds many values)."""
|
|
991
|
+
return {
|
|
992
|
+
field.internal_name: field.is_multi_valued
|
|
993
|
+
for field in self._source_fields()
|
|
994
|
+
if field.internal_name and field.is_taxonomy
|
|
995
|
+
}
|
|
1201
996
|
|
|
1202
997
|
def _taxonomy_note_columns(self) -> set[str]:
|
|
1203
|
-
"""The hidden note companions of the source's taxonomy columns.
|
|
1204
|
-
|
|
1205
|
-
|
|
998
|
+
"""The hidden note companions of the source's taxonomy columns.
|
|
999
|
+
|
|
1000
|
+
The note column is what the target's write payload becomes for a multi-value
|
|
1001
|
+
column, and its name is chosen by the service; each taxonomy column names its own
|
|
1002
|
+
note, so it is answered from the column set (no request per value).
|
|
1003
|
+
"""
|
|
1004
|
+
notes: set[str] = set()
|
|
1005
|
+
for field in self._source_fields():
|
|
1006
|
+
if field.is_taxonomy:
|
|
1007
|
+
note_name = cast(TaxonomyField, field).text_field_name
|
|
1008
|
+
if note_name:
|
|
1009
|
+
notes.add(note_name)
|
|
1010
|
+
return notes
|
|
1206
1011
|
|
|
1207
1012
|
def _project_taxonomy_values(self, records: list[dict]) -> None:
|
|
1208
1013
|
"""Project taxonomy columns as bare ``[{"TermGuid": ...}]`` term lists.
|
|
@@ -1226,42 +1031,34 @@ class SharePointListSource:
|
|
|
1226
1031
|
record.pop(name, None)
|
|
1227
1032
|
|
|
1228
1033
|
def _typed_columns(self) -> tuple[set[str], dict[str, str], set[str]]:
|
|
1229
|
-
"""The source's Person and multi-value columns
|
|
1034
|
+
"""The source's Person and multi-value columns.
|
|
1230
1035
|
|
|
1231
1036
|
Returns ``(single-value User columns, {multi-value column: field type},
|
|
1232
1037
|
hidden typed columns)``. The field type tells a multi-lookup (remapped by
|
|
1233
1038
|
item id) from a multi-person (remapped by login). Hidden typed columns are
|
|
1234
1039
|
reported separately because structure provisioning does not replicate them.
|
|
1235
1040
|
"""
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
elif _allows_multiple_values(field):
|
|
1258
|
-
multi[internal_name] = "LookupMulti"
|
|
1259
|
-
except Exception as e: # noqa: BLE001 — without field types ids stay raw
|
|
1260
|
-
self.warnings.append(f"could not read source columns for typed-value remapping: {e}")
|
|
1261
|
-
self._user_columns_cache = users
|
|
1262
|
-
self._multi_columns_cache = multi
|
|
1263
|
-
self._skipped_columns_cache = skipped
|
|
1264
|
-
return self._user_columns_cache, self._multi_columns_cache, self._skipped_columns_cache
|
|
1041
|
+
users: set[str] = set()
|
|
1042
|
+
multi: dict[str, str] = {}
|
|
1043
|
+
skipped: set[str] = set()
|
|
1044
|
+
for field in self._source_fields():
|
|
1045
|
+
internal_name = field.internal_name
|
|
1046
|
+
if not internal_name or internal_name in _PERSON_EXCLUDED:
|
|
1047
|
+
continue
|
|
1048
|
+
if not (field.is_person or field.is_lookup):
|
|
1049
|
+
continue
|
|
1050
|
+
if field.hidden is True:
|
|
1051
|
+
# Structure replay skips hidden columns, so the target never gets
|
|
1052
|
+
# them; projecting their values would fail the write.
|
|
1053
|
+
skipped.add(internal_name)
|
|
1054
|
+
elif field.is_person:
|
|
1055
|
+
if field.is_multi_valued:
|
|
1056
|
+
multi[internal_name] = "UserMulti"
|
|
1057
|
+
else:
|
|
1058
|
+
users.add(internal_name)
|
|
1059
|
+
elif field.is_multi_valued:
|
|
1060
|
+
multi[internal_name] = "LookupMulti"
|
|
1061
|
+
return users, multi, skipped
|
|
1265
1062
|
|
|
1266
1063
|
def _user_columns(self) -> set[str]:
|
|
1267
1064
|
"""The source's single-value Person columns (internal names)."""
|
|
@@ -1277,33 +1074,11 @@ class SharePointListSource:
|
|
|
1277
1074
|
|
|
1278
1075
|
def _multi_choice_columns(self) -> set[str]:
|
|
1279
1076
|
"""The source's multi-choice columns (internal names)."""
|
|
1280
|
-
|
|
1281
|
-
names: set[str] = set()
|
|
1282
|
-
try:
|
|
1283
|
-
names = {
|
|
1284
|
-
field.internal_name
|
|
1285
|
-
for field in self._source_fields()
|
|
1286
|
-
if getattr(field, "internal_name", None) and _is_multi_choice_column(field)
|
|
1287
|
-
}
|
|
1288
|
-
except Exception as e: # noqa: BLE001 — values stay un-normalized, never fatal
|
|
1289
|
-
self.warnings.append(f"could not read source columns for multi-choice values: {e}")
|
|
1290
|
-
self._multi_choice_columns_cache = names
|
|
1291
|
-
return self._multi_choice_columns_cache
|
|
1077
|
+
return {field.internal_name for field in self._source_fields() if field.internal_name and field.is_multi_choice}
|
|
1292
1078
|
|
|
1293
1079
|
def _value_object_columns(self) -> set[str]:
|
|
1294
1080
|
"""The source's columns that hold a REST value object (e.g. a hyperlink)."""
|
|
1295
|
-
|
|
1296
|
-
names: set[str] = set()
|
|
1297
|
-
try:
|
|
1298
|
-
names = {
|
|
1299
|
-
field.internal_name
|
|
1300
|
-
for field in self._source_fields()
|
|
1301
|
-
if getattr(field, "internal_name", None) and _is_value_object_column(field)
|
|
1302
|
-
}
|
|
1303
|
-
except Exception as e: # noqa: BLE001 — values are dropped, never fatal
|
|
1304
|
-
self.warnings.append(f"could not read source columns for value-object values: {e}")
|
|
1305
|
-
self._value_object_columns_cache = names
|
|
1306
|
-
return self._value_object_columns_cache
|
|
1081
|
+
return {field.internal_name for field in self._source_fields() if field.internal_name and field.is_value_object}
|
|
1307
1082
|
|
|
1308
1083
|
def _annotate_person_logins(self, records: list[dict]) -> None:
|
|
1309
1084
|
"""Replace each Person column's site-user id with the user's login name.
|
|
@@ -1322,8 +1097,8 @@ class SharePointListSource:
|
|
|
1322
1097
|
# ``<name>StringId`` is a read-only text companion holding the user
|
|
1323
1098
|
# id; leaving it in the payload makes REST ignore the remapped
|
|
1324
1099
|
# ``<name>Id`` and keep the source id.
|
|
1325
|
-
record.pop(
|
|
1326
|
-
key =
|
|
1100
|
+
record.pop(ListItem.string_value_column(name), None)
|
|
1101
|
+
key = ListItem.value_column(name)
|
|
1327
1102
|
user_id = parse_int(record.get(key))
|
|
1328
1103
|
if user_id is None:
|
|
1329
1104
|
continue
|
|
@@ -1348,9 +1123,9 @@ class SharePointListSource:
|
|
|
1348
1123
|
return
|
|
1349
1124
|
for record in records:
|
|
1350
1125
|
for name, field_type in multi.items():
|
|
1351
|
-
record.pop(
|
|
1352
|
-
key =
|
|
1353
|
-
ids =
|
|
1126
|
+
record.pop(ListItem.string_value_column(name), None)
|
|
1127
|
+
key = ListItem.value_column(name)
|
|
1128
|
+
ids = values_of(record.get(key))
|
|
1354
1129
|
parsed: list[int] = []
|
|
1355
1130
|
for value in ids or []:
|
|
1356
1131
|
user_id = parse_int(value)
|
|
@@ -1396,7 +1171,7 @@ class SharePointListSource:
|
|
|
1396
1171
|
for name in names:
|
|
1397
1172
|
if name not in record:
|
|
1398
1173
|
continue
|
|
1399
|
-
values =
|
|
1174
|
+
values = values_of(record.get(name))
|
|
1400
1175
|
if values:
|
|
1401
1176
|
record[name] = values
|
|
1402
1177
|
else:
|
|
@@ -1415,7 +1190,7 @@ class SharePointListSource:
|
|
|
1415
1190
|
|
|
1416
1191
|
def checksum(self, item: MigrationItem) -> str:
|
|
1417
1192
|
if item.item_type == "attachment":
|
|
1418
|
-
return
|
|
1193
|
+
return checksum(self._attachment_content(item))
|
|
1419
1194
|
return _content_checksum(_canonicalize_taxonomy_record(self._records.get(item.dest_path, {})))
|
|
1420
1195
|
|
|
1421
1196
|
def read_metadata(self, item: MigrationItem) -> dict | None:
|
|
@@ -1423,10 +1198,9 @@ class SharePointListSource:
|
|
|
1423
1198
|
source_item = self._items.get(item.dest_path)
|
|
1424
1199
|
if source_item is None:
|
|
1425
1200
|
return None
|
|
1426
|
-
properties = source_item.properties
|
|
1427
1201
|
return {
|
|
1428
|
-
"created": iso_or_none(
|
|
1429
|
-
"modified": iso_or_none(
|
|
1202
|
+
"created": iso_or_none(source_item.created),
|
|
1203
|
+
"modified": iso_or_none(source_item.modified),
|
|
1430
1204
|
}
|
|
1431
1205
|
|
|
1432
1206
|
def read_authorship(self, item: MigrationItem) -> tuple[str | None, str | None]:
|
|
@@ -1455,7 +1229,9 @@ class SharePointListSource:
|
|
|
1455
1229
|
source_item = self._items.get(item.dest_path)
|
|
1456
1230
|
if source_item is None or not _has_unique_role_assignments(source_item):
|
|
1457
1231
|
return []
|
|
1458
|
-
|
|
1232
|
+
entries = _read_role_assignments(source_item, resolve=self._principal_for, normalize=self._normalize_name)
|
|
1233
|
+
_attach_group_owners(entries, self._list.context.web, self._principal_for, self._group_owners)
|
|
1234
|
+
return entries
|
|
1459
1235
|
|
|
1460
1236
|
def _principal_for(self, user_id: Any) -> "Principal | None":
|
|
1461
1237
|
"""Resolve a site-user id to a :class:`Principal` (login + PUID), cached."""
|
|
@@ -1467,14 +1243,7 @@ class SharePointListSource:
|
|
|
1467
1243
|
principal: "Principal | None" = None
|
|
1468
1244
|
try:
|
|
1469
1245
|
user = self._list.context.web.site_users.get_by_id(cast("str", key)).get().execute_query()
|
|
1470
|
-
|
|
1471
|
-
system_id = normalize_puid(getattr(user_id_info, "NameId", None))
|
|
1472
|
-
principal = Principal(
|
|
1473
|
-
login_name=user.login_name or "",
|
|
1474
|
-
system_id=system_id,
|
|
1475
|
-
display_name=user.title,
|
|
1476
|
-
email=user.properties.get("Email"),
|
|
1477
|
-
)
|
|
1246
|
+
principal = _principal_of(user, key)
|
|
1478
1247
|
except Exception as e: # noqa: BLE001 — a missing user degrades to no authorship
|
|
1479
1248
|
self.warnings.append(f"user {key} could not be resolved: {e}")
|
|
1480
1249
|
self._users[key] = principal
|
|
@@ -1506,6 +1275,12 @@ class SharePointListTarget:
|
|
|
1506
1275
|
when the target list's content types were recreated with fresh identifiers:
|
|
1507
1276
|
every record's ``ContentTypeId`` is rewritten to the target id so items land
|
|
1508
1277
|
under the recreated content type instead of the wrong (or a missing) one.
|
|
1278
|
+
|
|
1279
|
+
Pass ``structure`` (a :class:`~office365.migration.sharepoint.structure.ListStructure`
|
|
1280
|
+
from :func:`~office365.migration.sharepoint.structure.load_list_structure`) to
|
|
1281
|
+
replay a captured list shape onto this target before the first record is written —
|
|
1282
|
+
what importing an export bundle needs, since the bundle's payload is records and
|
|
1283
|
+
its columns/content types/views travel in the sidecar, not in each item.
|
|
1509
1284
|
"""
|
|
1510
1285
|
|
|
1511
1286
|
# Marks this target as accepting list-item attachments as extra items (see DataTarget).
|
|
@@ -1515,9 +1290,9 @@ class SharePointListTarget:
|
|
|
1515
1290
|
# values by login (see ``_remap_typed_values``).
|
|
1516
1291
|
supports_typed_values = True
|
|
1517
1292
|
|
|
1518
|
-
# Marks this target as replaying a list item's approval state (
|
|
1519
|
-
# and
|
|
1520
|
-
#
|
|
1293
|
+
# Marks this target as replaying a list item's approval state (its moderation status
|
|
1294
|
+
# and comment) in the metadata write, which is the only write a list item takes it in.
|
|
1295
|
+
# Check-out and draft-version state are still not carried.
|
|
1521
1296
|
supports_item_state = True
|
|
1522
1297
|
|
|
1523
1298
|
#: The single-item :meth:`write` only queues a create; a chunk must be flushed
|
|
@@ -1535,6 +1310,7 @@ class SharePointListTarget:
|
|
|
1535
1310
|
on_conflict=self._on_conflict_override,
|
|
1536
1311
|
identity_field=self._identity_field,
|
|
1537
1312
|
content_type_map=self._content_type_map,
|
|
1313
|
+
structure=self._structure,
|
|
1538
1314
|
)
|
|
1539
1315
|
|
|
1540
1316
|
def __init__(
|
|
@@ -1545,8 +1321,11 @@ class SharePointListTarget:
|
|
|
1545
1321
|
on_conflict: str | None = None,
|
|
1546
1322
|
identity_field: str | None = DEFAULT_LIST_IDENTITY_FIELD,
|
|
1547
1323
|
content_type_map: "ContentTypeMap | None" = None,
|
|
1324
|
+
structure: "ListStructure | None" = None,
|
|
1548
1325
|
) -> None:
|
|
1549
1326
|
self._list = target_list
|
|
1327
|
+
self._structure = structure
|
|
1328
|
+
self._structure_applied = False
|
|
1550
1329
|
self._key_columns = [key] if isinstance(key, str) else (list(key) if key else [])
|
|
1551
1330
|
self._key_field = key_field
|
|
1552
1331
|
self._on_conflict_override = on_conflict
|
|
@@ -1578,6 +1357,10 @@ class SharePointListTarget:
|
|
|
1578
1357
|
self._unresolved_lookups: set[tuple[str, int]] = set()
|
|
1579
1358
|
self._unresolved_users: set[tuple[str, str]] = set()
|
|
1580
1359
|
self._user_logins: dict[int, str] | None = None
|
|
1360
|
+
# Verification reads the same written item through four hooks (checksum,
|
|
1361
|
+
# metadata, authorship, permissions). Memoizing the fresh read keeps that
|
|
1362
|
+
# to one request per item; anything that writes to the target clears it.
|
|
1363
|
+
self._fresh_reads: dict[str, "ListItem | None"] = {}
|
|
1581
1364
|
|
|
1582
1365
|
@property
|
|
1583
1366
|
def on_conflict(self) -> str:
|
|
@@ -1593,6 +1376,31 @@ class SharePointListTarget:
|
|
|
1593
1376
|
"""
|
|
1594
1377
|
if self._on_conflict_override is None:
|
|
1595
1378
|
self._on_conflict = conflict_to_on_conflict(options.conflict_resolution)
|
|
1379
|
+
# A run boundary: verification reads memoized by the previous run are stale.
|
|
1380
|
+
self._fresh_reads.clear()
|
|
1381
|
+
self.apply_structure()
|
|
1382
|
+
|
|
1383
|
+
def apply_structure(self) -> list[str]:
|
|
1384
|
+
"""Replay the captured list structure onto the target list (once, idempotent).
|
|
1385
|
+
|
|
1386
|
+
A bundle carries its list shape in a sidecar, not in each record, so the
|
|
1387
|
+
columns (and views) must exist before the first record lands — otherwise a
|
|
1388
|
+
value whose column is missing is dropped by the server. Idempotent
|
|
1389
|
+
(``on_conflict="skip"``), and a no-op when no snapshot was passed.
|
|
1390
|
+
|
|
1391
|
+
Returns:
|
|
1392
|
+
The warnings from this call (empty when there is no snapshot, or when it
|
|
1393
|
+
has already been applied).
|
|
1394
|
+
"""
|
|
1395
|
+
if self._structure is None or self._structure_applied:
|
|
1396
|
+
return []
|
|
1397
|
+
self._structure_applied = True
|
|
1398
|
+
# Filling the caller's map in place is what lets a bundle's records land
|
|
1399
|
+
# under the recreated content type instead of being coerced to the default.
|
|
1400
|
+
entries = self._content_type_map.entries if self._content_type_map is not None else None
|
|
1401
|
+
warnings = provision_list_structure(self._list, self._structure, content_type_map=entries)
|
|
1402
|
+
self.warnings.extend(warnings)
|
|
1403
|
+
return warnings
|
|
1596
1404
|
|
|
1597
1405
|
def label(self) -> str:
|
|
1598
1406
|
return f"list:{self._list.title}"
|
|
@@ -1648,17 +1456,20 @@ class SharePointListTarget:
|
|
|
1648
1456
|
|
|
1649
1457
|
def _record_for(self, item: MigrationItem, payload: object) -> dict:
|
|
1650
1458
|
"""The payload with the target content-type id and source-id marker applied."""
|
|
1459
|
+
if not isinstance(payload, dict):
|
|
1460
|
+
# Without this the cast fails as ``TypeError: object is not iterable``, which
|
|
1461
|
+
# names neither the item nor the reason: a file's bytes have no record shape.
|
|
1462
|
+
raise ValueError(
|
|
1463
|
+
f"{item.dest_path!r} is a {item.item_type!r} with a {type(payload).__name__} payload: this target "
|
|
1464
|
+
"writes list records, and a file has no record shape — migrate files into a document library"
|
|
1465
|
+
)
|
|
1651
1466
|
record = dict(cast(dict, payload))
|
|
1652
1467
|
if self._content_type_map:
|
|
1653
1468
|
content_type_id = record.get("ContentTypeId")
|
|
1654
1469
|
record["ContentTypeId"] = self._content_type_map.resolve(content_type_id)
|
|
1655
1470
|
if self._identity_field:
|
|
1656
1471
|
record[self._identity_field] = item.dest_path
|
|
1657
|
-
approval = {
|
|
1658
|
-
field_name: str(record[record_key])
|
|
1659
|
-
for record_key, field_name in _APPROVAL_FIELDS.items()
|
|
1660
|
-
if record.get(record_key) is not None
|
|
1661
|
-
}
|
|
1472
|
+
approval = {name: record[name] for name in _MODERATION_FIELDS if record.get(name) is not None}
|
|
1662
1473
|
if approval:
|
|
1663
1474
|
self._pending_approval[item.dest_path] = approval
|
|
1664
1475
|
return record
|
|
@@ -1679,14 +1490,15 @@ class SharePointListTarget:
|
|
|
1679
1490
|
else:
|
|
1680
1491
|
mapped.pop("ContentTypeId", None)
|
|
1681
1492
|
self._remap_typed_values([mapped])
|
|
1682
|
-
return mapped
|
|
1493
|
+
return self._multi_value_payload(mapped)
|
|
1683
1494
|
|
|
1684
1495
|
def _queue(self, records: list[dict]) -> None:
|
|
1685
1496
|
self._ensure_identity()
|
|
1686
1497
|
self._remap_typed_values(records)
|
|
1498
|
+
records = [self._multi_value_payload(record) for record in records]
|
|
1687
1499
|
if not self._key_columns:
|
|
1688
1500
|
for record in records:
|
|
1689
|
-
self._list.items.queue_records([
|
|
1501
|
+
self._list.items.queue_records([record])
|
|
1690
1502
|
return
|
|
1691
1503
|
from office365.runtime.converters.upsert import keyed_queue
|
|
1692
1504
|
from office365.sharepoint.fields.name import internal_field_name
|
|
@@ -1700,7 +1512,7 @@ class SharePointListTarget:
|
|
|
1700
1512
|
self._target = target
|
|
1701
1513
|
key_columns = [internal_field_name(c) for c in self._key_columns]
|
|
1702
1514
|
keyed_queue(
|
|
1703
|
-
|
|
1515
|
+
target,
|
|
1704
1516
|
records,
|
|
1705
1517
|
key_columns=key_columns,
|
|
1706
1518
|
existing=self._existing,
|
|
@@ -1710,22 +1522,22 @@ class SharePointListTarget:
|
|
|
1710
1522
|
def _multi_id_keys(self) -> set[str]:
|
|
1711
1523
|
"""The ``...Id`` record keys of the multi-value Lookup/Person columns."""
|
|
1712
1524
|
names = (*self._multi_lookup_columns(), *self._multi_user_columns())
|
|
1713
|
-
return {
|
|
1525
|
+
return {ListItem.value_column(name) for name in names}
|
|
1714
1526
|
|
|
1715
|
-
def
|
|
1716
|
-
"""Reshape multi-value columns for
|
|
1527
|
+
def _multi_value_payload(self, record: dict) -> dict:
|
|
1528
|
+
"""Reshape multi-value columns for the wire (``{"results": [...]}``).
|
|
1717
1529
|
|
|
1718
1530
|
A bare list is the semantic value the source records and the checksum work
|
|
1719
|
-
with
|
|
1720
|
-
|
|
1721
|
-
columns
|
|
1531
|
+
with; the wire wants every multi-value cell wrapped, on create and on MERGE
|
|
1532
|
+
alike (see :func:`_collection_payload`). A record without multi-value
|
|
1533
|
+
columns is passed through untouched.
|
|
1722
1534
|
"""
|
|
1723
1535
|
keys = self._multi_id_keys() | self._multi_choice_columns()
|
|
1724
1536
|
if not keys:
|
|
1725
1537
|
return record
|
|
1726
1538
|
wrapped = dict(record)
|
|
1727
1539
|
for key in keys:
|
|
1728
|
-
values =
|
|
1540
|
+
values = values_of(wrapped.get(key))
|
|
1729
1541
|
if values is not None:
|
|
1730
1542
|
wrapped[key] = _collection_payload(values)
|
|
1731
1543
|
return wrapped
|
|
@@ -1782,44 +1594,34 @@ class SharePointListTarget:
|
|
|
1782
1594
|
taxonomy: dict[str, tuple[bool, str | None]] = {}
|
|
1783
1595
|
multi_choices: set[str] = set()
|
|
1784
1596
|
try:
|
|
1785
|
-
fields = (
|
|
1786
|
-
self._list.fields.select(
|
|
1787
|
-
["InternalName", "TypeAsString", "LookupList", "Id", "TextField", "AllowMultipleValues"]
|
|
1788
|
-
)
|
|
1789
|
-
.get()
|
|
1790
|
-
.execute_query()
|
|
1791
|
-
)
|
|
1597
|
+
fields = self._list.fields.select(Field.scan_columns()).get().execute_query()
|
|
1792
1598
|
except Exception as e: # noqa: BLE001 — without columns we cannot remap; content still migrates
|
|
1793
1599
|
self.warnings.append(f"could not read target columns for typed-value remapping: {e}")
|
|
1794
1600
|
return lookups, users, multi_lookups, multi_users, taxonomy, multi_choices
|
|
1795
|
-
by_id = {normalize_guid(getattr(field, "id", None)): getattr(field, "internal_name", None) for field in fields}
|
|
1796
1601
|
for field in fields:
|
|
1797
|
-
internal_name =
|
|
1602
|
+
internal_name = field.internal_name
|
|
1798
1603
|
if not internal_name or internal_name in _PERSON_EXCLUDED:
|
|
1799
1604
|
continue
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
#
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
elif field_type in _TYPED_VALUE_TYPES:
|
|
1808
|
-
multiple = _allows_multiple_values(field)
|
|
1809
|
-
if field_type.startswith("User"):
|
|
1605
|
+
if field.is_taxonomy:
|
|
1606
|
+
# The companion note column that carries the write payload has a name
|
|
1607
|
+
# the service chooses; the column itself resolves it from ``TextField``.
|
|
1608
|
+
taxonomy[internal_name] = (field.is_multi_valued, cast(TaxonomyField, field).text_field_name)
|
|
1609
|
+
elif field.is_person or field.is_lookup:
|
|
1610
|
+
multiple = field.is_multi_valued
|
|
1611
|
+
if field.is_person:
|
|
1810
1612
|
if multiple:
|
|
1811
1613
|
multi_users.add(internal_name)
|
|
1812
1614
|
else:
|
|
1813
1615
|
users.add(internal_name)
|
|
1814
1616
|
else:
|
|
1815
|
-
list_id = normalize_guid(field.
|
|
1617
|
+
list_id = normalize_guid(cast(FieldLookup, field).lookup_list)
|
|
1816
1618
|
if not list_id:
|
|
1817
1619
|
continue
|
|
1818
1620
|
if multiple:
|
|
1819
1621
|
multi_lookups[internal_name] = list_id
|
|
1820
1622
|
else:
|
|
1821
1623
|
lookups[internal_name] = list_id
|
|
1822
|
-
elif
|
|
1624
|
+
elif field.is_multi_choice:
|
|
1823
1625
|
multi_choices.add(internal_name)
|
|
1824
1626
|
return lookups, users, multi_lookups, multi_users, taxonomy, multi_choices
|
|
1825
1627
|
|
|
@@ -1867,7 +1669,7 @@ class SharePointListTarget:
|
|
|
1867
1669
|
return
|
|
1868
1670
|
for record in records:
|
|
1869
1671
|
for internal_name, target_list_id in columns.items():
|
|
1870
|
-
key =
|
|
1672
|
+
key = ListItem.value_column(internal_name)
|
|
1871
1673
|
source_id = parse_int(record.get(key))
|
|
1872
1674
|
if source_id is None:
|
|
1873
1675
|
continue
|
|
@@ -1885,7 +1687,7 @@ class SharePointListTarget:
|
|
|
1885
1687
|
return
|
|
1886
1688
|
for record in records:
|
|
1887
1689
|
for internal_name in columns:
|
|
1888
|
-
key =
|
|
1690
|
+
key = ListItem.value_column(internal_name)
|
|
1889
1691
|
login = record.get(key)
|
|
1890
1692
|
if not isinstance(login, str) or not login:
|
|
1891
1693
|
continue
|
|
@@ -1902,8 +1704,8 @@ class SharePointListTarget:
|
|
|
1902
1704
|
return
|
|
1903
1705
|
for record in records:
|
|
1904
1706
|
for internal_name, target_list_id in columns.items():
|
|
1905
|
-
key =
|
|
1906
|
-
source_ids =
|
|
1707
|
+
key = ListItem.value_column(internal_name)
|
|
1708
|
+
source_ids = values_of(record.get(key))
|
|
1907
1709
|
if not source_ids:
|
|
1908
1710
|
continue
|
|
1909
1711
|
forward, _ = self._lookup_index(target_list_id)
|
|
@@ -1927,7 +1729,7 @@ class SharePointListTarget:
|
|
|
1927
1729
|
return
|
|
1928
1730
|
for record in records:
|
|
1929
1731
|
for internal_name in columns:
|
|
1930
|
-
key =
|
|
1732
|
+
key = ListItem.value_column(internal_name)
|
|
1931
1733
|
logins = record.get(key)
|
|
1932
1734
|
if not isinstance(logins, (list, tuple)) or not logins:
|
|
1933
1735
|
continue
|
|
@@ -1947,12 +1749,13 @@ class SharePointListTarget:
|
|
|
1947
1749
|
def _remap_taxonomies(self, records: list[dict]) -> None:
|
|
1948
1750
|
"""Write taxonomy terms in the form SharePoint accepts on the target.
|
|
1949
1751
|
|
|
1950
|
-
A single-value column takes
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1752
|
+
A single-value column takes :class:`TaxonomyFieldValue` itself — the library
|
|
1753
|
+
type, not a dictionary spelled like one — so its declared type name and
|
|
1754
|
+
``WssId = -1`` default are answered by the value. A multi-value column only
|
|
1755
|
+
accepts the hidden note companion's text form ``-1;#Label|guid;#...``
|
|
1756
|
+
(typed-collection JSON is rejected server-side). The term id is authoritative,
|
|
1757
|
+
so the label is left unset. A column with no target counterpart is dropped and
|
|
1758
|
+
reported rather than sent as an unknown property.
|
|
1956
1759
|
"""
|
|
1957
1760
|
columns = self._taxonomy_columns()
|
|
1958
1761
|
unresolved: set[str] = set()
|
|
@@ -1972,17 +1775,13 @@ class SharePointListTarget:
|
|
|
1972
1775
|
continue
|
|
1973
1776
|
if allow_many and note_name:
|
|
1974
1777
|
record.pop(internal_name, None)
|
|
1975
|
-
|
|
1778
|
+
values = [TaxonomyFieldValue(TermGuid=g) for g in guids]
|
|
1779
|
+
record[note_name] = str(TaxonomyFieldValueCollection(values))
|
|
1976
1780
|
elif allow_many:
|
|
1977
1781
|
record.pop(internal_name, None)
|
|
1978
1782
|
unresolved.add(internal_name)
|
|
1979
1783
|
else:
|
|
1980
|
-
record[internal_name] =
|
|
1981
|
-
"__metadata": {"type": "SP.Taxonomy.TaxonomyFieldValue"},
|
|
1982
|
-
"Label": "",
|
|
1983
|
-
"TermGuid": guids[0],
|
|
1984
|
-
"WssId": -1,
|
|
1985
|
-
}
|
|
1784
|
+
record[internal_name] = TaxonomyFieldValue(TermGuid=guids[0])
|
|
1986
1785
|
if unresolved:
|
|
1987
1786
|
self.warnings.append(
|
|
1988
1787
|
f"taxonomy column(s) not available on the target, values left empty: {', '.join(sorted(unresolved))}"
|
|
@@ -2030,7 +1829,7 @@ class SharePointListTarget:
|
|
|
2030
1829
|
the two like for like instead of reporting a false mismatch.
|
|
2031
1830
|
"""
|
|
2032
1831
|
for internal_name, target_list_id in self._lookup_columns().items():
|
|
2033
|
-
key =
|
|
1832
|
+
key = ListItem.value_column(internal_name)
|
|
2034
1833
|
target_id = parse_int(properties.get(key))
|
|
2035
1834
|
if target_id is None:
|
|
2036
1835
|
continue
|
|
@@ -2039,8 +1838,8 @@ class SharePointListTarget:
|
|
|
2039
1838
|
if source_id is not None:
|
|
2040
1839
|
properties[key] = source_id
|
|
2041
1840
|
for internal_name, target_list_id in self._multi_lookup_columns().items():
|
|
2042
|
-
key =
|
|
2043
|
-
target_ids =
|
|
1841
|
+
key = ListItem.value_column(internal_name)
|
|
1842
|
+
target_ids = values_of(properties.get(key))
|
|
2044
1843
|
if not target_ids:
|
|
2045
1844
|
continue
|
|
2046
1845
|
_, backward = self._lookup_index(target_list_id)
|
|
@@ -2055,7 +1854,7 @@ class SharePointListTarget:
|
|
|
2055
1854
|
columns = self._user_columns()
|
|
2056
1855
|
logins = self._target_user_logins() if columns or self._multi_user_columns() else {}
|
|
2057
1856
|
for internal_name in columns:
|
|
2058
|
-
key =
|
|
1857
|
+
key = ListItem.value_column(internal_name)
|
|
2059
1858
|
user_id = parse_int(properties.get(key))
|
|
2060
1859
|
if user_id is None:
|
|
2061
1860
|
continue
|
|
@@ -2063,8 +1862,8 @@ class SharePointListTarget:
|
|
|
2063
1862
|
if login is not None:
|
|
2064
1863
|
properties[key] = login
|
|
2065
1864
|
for internal_name in self._multi_user_columns():
|
|
2066
|
-
key =
|
|
2067
|
-
user_ids =
|
|
1865
|
+
key = ListItem.value_column(internal_name)
|
|
1866
|
+
user_ids = values_of(properties.get(key))
|
|
2068
1867
|
if not user_ids:
|
|
2069
1868
|
continue
|
|
2070
1869
|
mapped_logins: list[Any] = []
|
|
@@ -2083,7 +1882,7 @@ class SharePointListTarget:
|
|
|
2083
1882
|
for internal_name in self._multi_choice_columns():
|
|
2084
1883
|
if internal_name not in properties:
|
|
2085
1884
|
continue
|
|
2086
|
-
values =
|
|
1885
|
+
values = values_of(properties.get(internal_name))
|
|
2087
1886
|
if values:
|
|
2088
1887
|
properties[internal_name] = values
|
|
2089
1888
|
else:
|
|
@@ -2134,7 +1933,7 @@ class SharePointListTarget:
|
|
|
2134
1933
|
# A read query would implicitly flush any queued writes on this context;
|
|
2135
1934
|
# flush them explicitly first so the cached index stays consistent.
|
|
2136
1935
|
self._flush_pending()
|
|
2137
|
-
columns = ["Id", self._identity_field, "Created", "Modified",
|
|
1936
|
+
columns = ["Id", self._identity_field, "Created", "Modified", *_LIST_ITEM.columns_of_facet(AUTHORSHIP)]
|
|
2138
1937
|
query = self._list.items.select(columns)
|
|
2139
1938
|
if filter_expr:
|
|
2140
1939
|
query = query.filter(filter_expr)
|
|
@@ -2178,6 +1977,7 @@ class SharePointListTarget:
|
|
|
2178
1977
|
paths.append(f"{value}/{name}")
|
|
2179
1978
|
return paths
|
|
2180
1979
|
|
|
1980
|
+
@site_access(SiteLevel.READ)
|
|
2181
1981
|
def list_paths(self) -> list[str]:
|
|
2182
1982
|
if not self._identity_field:
|
|
2183
1983
|
return [str(i.id) for i in self._list.items.get().execute_query()]
|
|
@@ -2215,8 +2015,8 @@ class SharePointListTarget:
|
|
|
2215
2015
|
extra.update(note for _, note in self._taxonomy_columns().values() if note)
|
|
2216
2016
|
# The target derives its own ``<name>StringId`` companion; it is not part of
|
|
2217
2017
|
# the source's canonical content.
|
|
2218
|
-
extra.update(
|
|
2219
|
-
extra.update(
|
|
2018
|
+
extra.update(ListItem.string_value_column(name) for name in self._user_columns())
|
|
2019
|
+
extra.update(ListItem.string_value_column(name) for name in self._multi_user_columns())
|
|
2220
2020
|
return _content_checksum(properties, frozenset(extra))
|
|
2221
2021
|
|
|
2222
2022
|
def _attachment_checksum(self, item: MigrationItem) -> str:
|
|
@@ -2228,7 +2028,7 @@ class SharePointListTarget:
|
|
|
2228
2028
|
data = parent.attachment_files.get_by_filename(filename).get_content().execute_query().value
|
|
2229
2029
|
except Exception: # noqa: BLE001 — a missing/unreadable attachment is unverifiable
|
|
2230
2030
|
return ""
|
|
2231
|
-
return
|
|
2031
|
+
return checksum(data) if data else ""
|
|
2232
2032
|
|
|
2233
2033
|
def commit(self, options=None) -> None:
|
|
2234
2034
|
"""Flush any remaining queued record writes through an OData batch."""
|
|
@@ -2242,6 +2042,7 @@ class SharePointListTarget:
|
|
|
2242
2042
|
if not self._list.context.has_pending_request:
|
|
2243
2043
|
return
|
|
2244
2044
|
self._list.context.execute_batch(items_per_batch=batch_size, concurrency=concurrency)
|
|
2045
|
+
self._fresh_reads.clear()
|
|
2245
2046
|
self._list.items.clear()
|
|
2246
2047
|
# Records were just created/updated, so the cached source-id index needs an
|
|
2247
2048
|
# incremental refresh (new items only) before the next lookup.
|
|
@@ -2260,34 +2061,41 @@ class SharePointListTarget:
|
|
|
2260
2061
|
return None
|
|
2261
2062
|
return self._find_by_identity(item.dest_path)
|
|
2262
2063
|
|
|
2064
|
+
@site_access(SiteLevel.WRITE)
|
|
2263
2065
|
def apply_timestamps(self, item: MigrationItem) -> None:
|
|
2264
2066
|
"""Best-effort: restore ``Created``/``Modified`` on the written item.
|
|
2265
2067
|
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
|
|
2269
|
-
|
|
2270
|
-
|
|
2271
|
-
|
|
2272
|
-
|
|
2068
|
+
Authorship and approval state resolved for the same item are folded in, so all of
|
|
2069
|
+
them land atomically in one system update.
|
|
2070
|
+
"""
|
|
2071
|
+
self._restore_fidelity(item, timestamps=True)
|
|
2072
|
+
|
|
2073
|
+
def _restore_fidelity(self, item: MigrationItem, timestamps: bool) -> None:
|
|
2074
|
+
"""One system update carrying every fidelity value this item has.
|
|
2075
|
+
|
|
2076
|
+
``timestamps=False`` is the write :meth:`finalize_fidelity` makes when the item's
|
|
2077
|
+
dates are not preserved: the values are already absent, so what is left is the
|
|
2078
|
+
authorship and approval state, and they still cost one request rather than two.
|
|
2273
2079
|
"""
|
|
2274
2080
|
target_item = self._target_item(item)
|
|
2275
2081
|
if target_item is None:
|
|
2276
2082
|
return
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
if
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2083
|
+
authorship = self._pending_authorship.pop(item.dest_path, {})
|
|
2084
|
+
approval = self._pending_approval.pop(item.dest_path, {})
|
|
2085
|
+
created = iso_z(item.created) if timestamps else None
|
|
2086
|
+
modified = iso_z(item.modified) if timestamps else None
|
|
2087
|
+
if not (created or modified or authorship or approval):
|
|
2088
|
+
return
|
|
2089
|
+
self._fresh_reads.pop(str(item.dest_path), None)
|
|
2090
|
+
result = target_item.restore_fidelity(
|
|
2091
|
+
created=created,
|
|
2092
|
+
modified=modified,
|
|
2093
|
+
author=authorship.get("Author"),
|
|
2094
|
+
editor=authorship.get("Editor"),
|
|
2095
|
+
approval=approval,
|
|
2096
|
+
new_document_update=True,
|
|
2097
|
+
).execute_query()
|
|
2098
|
+
_report_rejected_fields(result, self.warnings, f"timestamps {item.dest_path}")
|
|
2291
2099
|
|
|
2292
2100
|
def apply_authorship(self, item: MigrationItem) -> None:
|
|
2293
2101
|
"""Best-effort: resolve ``Author``/``Editor`` and cache them for one write.
|
|
@@ -2295,53 +2103,39 @@ class SharePointListTarget:
|
|
|
2295
2103
|
A principal is applied only when its login name resolves to a target user
|
|
2296
2104
|
(``EnsureUser``); unresolved principals are skipped (same-tenant only).
|
|
2297
2105
|
|
|
2298
|
-
Nothing is sent here. ``ValidateUpdateListItem`` is one request per call, so
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2106
|
+
Nothing is sent here. ``ValidateUpdateListItem`` is one request per call, so a
|
|
2107
|
+
separate authorship write followed by the timestamps write would cost every
|
|
2108
|
+
preserved item two system updates. The resolved principals are cached and
|
|
2109
|
+
written by :meth:`apply_timestamps`, or by :meth:`finalize_fidelity` when
|
|
2110
|
+
timestamps are not preserved.
|
|
2303
2111
|
"""
|
|
2304
2112
|
target_item = self._target_item(item)
|
|
2305
2113
|
if target_item is None:
|
|
2306
2114
|
return
|
|
2307
2115
|
author = self._principals().user(item.author.login_name if item.author else None)
|
|
2308
2116
|
editor = self._principals().user(item.editor.login_name if item.editor else None)
|
|
2309
|
-
if author is not None and
|
|
2117
|
+
if author is not None and author.is_service_account:
|
|
2310
2118
|
author = None
|
|
2311
|
-
if editor is not None and
|
|
2119
|
+
if editor is not None and editor.is_service_account:
|
|
2312
2120
|
editor = None
|
|
2313
|
-
if author is None and editor is None
|
|
2121
|
+
if author is None and editor is None:
|
|
2314
2122
|
return
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
form_values["Editor"] = FieldUserValue(editor.id, editor.login_name)
|
|
2320
|
-
# Replay the approval state here too: this write is itself a system update, so
|
|
2321
|
-
# on a run that restores authorship without timestamps it is the last one.
|
|
2322
|
-
form_values.update(self._pending_approval.get(item.dest_path, {}))
|
|
2323
|
-
self._pending_authorship[item.dest_path] = dict(form_values)
|
|
2123
|
+
self._pending_authorship[item.dest_path] = {
|
|
2124
|
+
"Author": author,
|
|
2125
|
+
"Editor": editor,
|
|
2126
|
+
}
|
|
2324
2127
|
|
|
2128
|
+
@site_access(SiteLevel.WRITE)
|
|
2325
2129
|
def finalize_fidelity(self, item: MigrationItem) -> None:
|
|
2326
2130
|
"""Write the fidelity values that were only cached for this item.
|
|
2327
2131
|
|
|
2328
2132
|
The last hook wins the write: with timestamps preserved that is
|
|
2329
2133
|
:meth:`apply_timestamps`; without them it is this method, so the item still
|
|
2330
|
-
gets one system update instead of one per property group.
|
|
2331
|
-
the approval write, which has to stay last (a system update re-approves).
|
|
2134
|
+
gets one system update instead of one per property group.
|
|
2332
2135
|
"""
|
|
2333
|
-
|
|
2334
|
-
form_values.update(self._pending_approval.pop(item.dest_path, {}))
|
|
2335
|
-
if not form_values:
|
|
2336
|
-
return
|
|
2337
|
-
target_item = self._target_item(item)
|
|
2338
|
-
if target_item is None:
|
|
2339
|
-
return
|
|
2340
|
-
result = target_item.validate_update_list_item(
|
|
2341
|
-
form_values, dates_in_utc=True, new_document_update=True
|
|
2342
|
-
).execute_query()
|
|
2343
|
-
_report_rejected_fields(result, self.warnings, f"authorship {item.dest_path}")
|
|
2136
|
+
self._restore_fidelity(item, timestamps=False)
|
|
2344
2137
|
|
|
2138
|
+
@site_access(SiteLevel.MANAGE)
|
|
2345
2139
|
def apply_permissions(self, item: MigrationItem, permissions: list[PermissionEntry]) -> None:
|
|
2346
2140
|
"""Best-effort: replay the source item's unique ACLs onto the target item.
|
|
2347
2141
|
|
|
@@ -2352,6 +2146,7 @@ class SharePointListTarget:
|
|
|
2352
2146
|
target_item = self._target_item(item)
|
|
2353
2147
|
if target_item is None:
|
|
2354
2148
|
return
|
|
2149
|
+
self._fresh_reads.pop(str(item.dest_path), None)
|
|
2355
2150
|
_replay_role_assignments(target_item, self._principals(), permissions, self.warnings, item.dest_path)
|
|
2356
2151
|
self._list.context.execute_query()
|
|
2357
2152
|
|
|
@@ -2360,10 +2155,18 @@ class SharePointListTarget:
|
|
|
2360
2155
|
|
|
2361
2156
|
The cached identity-index object predates the fidelity writes
|
|
2362
2157
|
(``apply_timestamps``/``apply_authorship``), so re-read it before diffing.
|
|
2158
|
+
The read is memoized per destination path: verification asks for the same
|
|
2159
|
+
item through :meth:`checksum`, :meth:`read_metadata`,
|
|
2160
|
+
:meth:`read_authorship` and :meth:`read_permissions`, and four reads of an
|
|
2161
|
+
unchanged item are three requests too many. Every write clears the memo.
|
|
2363
2162
|
"""
|
|
2163
|
+
key = str(item.dest_path)
|
|
2164
|
+
if key in self._fresh_reads:
|
|
2165
|
+
return self._fresh_reads[key]
|
|
2364
2166
|
target_item = self._target_item(item)
|
|
2365
2167
|
if target_item is not None:
|
|
2366
2168
|
target_item.get().execute_query()
|
|
2169
|
+
self._fresh_reads[key] = target_item
|
|
2367
2170
|
return target_item
|
|
2368
2171
|
|
|
2369
2172
|
def read_metadata(self, item: MigrationItem) -> dict | None:
|
|
@@ -2371,10 +2174,9 @@ class SharePointListTarget:
|
|
|
2371
2174
|
target_item = self._fresh_target_item(item)
|
|
2372
2175
|
if target_item is None:
|
|
2373
2176
|
return None
|
|
2374
|
-
properties = target_item.properties
|
|
2375
2177
|
return {
|
|
2376
|
-
"created": iso_or_none(
|
|
2377
|
-
"modified": iso_or_none(
|
|
2178
|
+
"created": iso_or_none(target_item.created),
|
|
2179
|
+
"modified": iso_or_none(target_item.modified),
|
|
2378
2180
|
}
|
|
2379
2181
|
|
|
2380
2182
|
def read_authorship(self, item: MigrationItem) -> tuple[str | None, str | None]:
|
|
@@ -2382,10 +2184,9 @@ class SharePointListTarget:
|
|
|
2382
2184
|
target_item = self._fresh_target_item(item)
|
|
2383
2185
|
if target_item is None:
|
|
2384
2186
|
return (None, None)
|
|
2385
|
-
properties = target_item.properties
|
|
2386
2187
|
return (
|
|
2387
|
-
_user_login(self._list.context.web,
|
|
2388
|
-
_user_login(self._list.context.web,
|
|
2188
|
+
_user_login(self._list.context.web, target_item.author_id, self._login_cache),
|
|
2189
|
+
_user_login(self._list.context.web, target_item.editor_id, self._login_cache),
|
|
2389
2190
|
)
|
|
2390
2191
|
|
|
2391
2192
|
def read_permissions(self, item: MigrationItem) -> list[PermissionEntry]:
|
|
@@ -2433,6 +2234,8 @@ class SharePointLibrarySource:
|
|
|
2433
2234
|
# (``TimeCreated``/``TimeLastModified``) can be diffed after the run.
|
|
2434
2235
|
self._folders: dict[str, "Folder"] = {}
|
|
2435
2236
|
self._users: dict[int, "Principal | None"] = {}
|
|
2237
|
+
# Group title -> (owner user, owner group chain); a ``<Group>`` needs both.
|
|
2238
|
+
self._group_owners: dict[str, tuple["Principal | None", list[str]]] = {}
|
|
2436
2239
|
self._default_groups: _DefaultGroups | None = None
|
|
2437
2240
|
self._item_authors: dict[str, tuple[int | None, int | None]] | None = None
|
|
2438
2241
|
self._item_unique: dict[str, bool] | None = None
|
|
@@ -2449,6 +2252,7 @@ class SharePointLibrarySource:
|
|
|
2449
2252
|
def label(self) -> str:
|
|
2450
2253
|
return f"library:{self._folder.server_relative_url}"
|
|
2451
2254
|
|
|
2255
|
+
@site_access(SiteLevel.READ)
|
|
2452
2256
|
def list_items(self, progress: MigrationProgress = None) -> list[MigrationItem]:
|
|
2453
2257
|
# The root folder's URL may not be loaded yet (e.g. via
|
|
2454
2258
|
# ``list.root_folder``); fetch it so destinations stay library-relative
|
|
@@ -2471,7 +2275,7 @@ class SharePointLibrarySource:
|
|
|
2471
2275
|
for folder in loaded_folders:
|
|
2472
2276
|
url = folder.server_relative_url or ""
|
|
2473
2277
|
rel = _rel(url)
|
|
2474
|
-
if not rel or rel in seen or
|
|
2278
|
+
if not rel or rel in seen or self._folder.is_system_path(rel, extra):
|
|
2475
2279
|
continue
|
|
2476
2280
|
seen.add(rel)
|
|
2477
2281
|
self._folders[rel] = folder
|
|
@@ -2482,19 +2286,15 @@ class SharePointLibrarySource:
|
|
|
2482
2286
|
item_type="folder",
|
|
2483
2287
|
modified=iso_or_none(folder.time_last_modified),
|
|
2484
2288
|
created=iso_or_none(folder.time_created),
|
|
2485
|
-
author_id=author_id,
|
|
2486
|
-
editor_id=editor_id,
|
|
2487
2289
|
)
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
if editor_id is not None:
|
|
2491
|
-
folder_item.editor = self._principal_for(editor_id)
|
|
2290
|
+
folder_item.author = self._principal_for(author_id)
|
|
2291
|
+
folder_item.editor = self._principal_for(editor_id)
|
|
2492
2292
|
result.append(folder_item)
|
|
2493
2293
|
emit_progress(progress, done=len(result), stage="planning", items=[folder])
|
|
2494
2294
|
for file in loaded:
|
|
2495
2295
|
url = file.server_relative_url or ""
|
|
2496
2296
|
rel = _rel(url)
|
|
2497
|
-
if
|
|
2297
|
+
if self._folder.is_system_path(rel, extra):
|
|
2498
2298
|
continue
|
|
2499
2299
|
self._files[rel] = file
|
|
2500
2300
|
author_id = parse_int(file.author.id)
|
|
@@ -2508,15 +2308,11 @@ class SharePointLibrarySource:
|
|
|
2508
2308
|
item_type="file",
|
|
2509
2309
|
modified=iso_or_none(file.time_last_modified),
|
|
2510
2310
|
created=iso_or_none(file.time_created),
|
|
2511
|
-
author_id=author_id,
|
|
2512
|
-
editor_id=editor_id,
|
|
2513
2311
|
source_id=str(file.unique_id) if file.unique_id else None,
|
|
2514
2312
|
version_label=file.ui_version_label,
|
|
2515
2313
|
)
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
if editor_id is not None:
|
|
2519
|
-
item.editor = self._principal_for(editor_id)
|
|
2314
|
+
item.author = self._principal_for(author_id)
|
|
2315
|
+
item.editor = self._principal_for(editor_id)
|
|
2520
2316
|
result.append(item)
|
|
2521
2317
|
emit_progress(progress, done=len(result), stage="planning", items=[file])
|
|
2522
2318
|
self._report_checkouts(result)
|
|
@@ -2575,6 +2371,7 @@ class SharePointLibrarySource:
|
|
|
2575
2371
|
f"preserved): {shown}"
|
|
2576
2372
|
)
|
|
2577
2373
|
|
|
2374
|
+
@site_access(SiteLevel.READ)
|
|
2578
2375
|
def read(self, item: MigrationItem) -> object:
|
|
2579
2376
|
if item.item_type == "folder":
|
|
2580
2377
|
# A folder's payload is its column values (empty when it carries none).
|
|
@@ -2592,6 +2389,7 @@ class SharePointLibrarySource:
|
|
|
2592
2389
|
file.download_session(buffer, chunk_downloaded=_chunk_downloaded).execute_query()
|
|
2593
2390
|
return buffer.getvalue()
|
|
2594
2391
|
|
|
2392
|
+
@site_access(SiteLevel.READ)
|
|
2595
2393
|
def read_version_history(self, item: MigrationItem) -> tuple[str | None, list[tuple[str, bytes]]]:
|
|
2596
2394
|
"""Read the file's current version label and its older versions.
|
|
2597
2395
|
|
|
@@ -2608,13 +2406,10 @@ class SharePointLibrarySource:
|
|
|
2608
2406
|
if file.ui_version_label is None:
|
|
2609
2407
|
file.ensure_property("UIVersionLabel").execute_query()
|
|
2610
2408
|
older: list[tuple[str, bytes]] = []
|
|
2611
|
-
for version in file.versions.get().execute_query():
|
|
2409
|
+
for version in sorted(file.versions.get().execute_query(), key=lambda v: v.sort_key):
|
|
2612
2410
|
label = version.version_label
|
|
2613
|
-
if not
|
|
2614
|
-
|
|
2615
|
-
data = version.open_binary_stream().execute_query().value
|
|
2616
|
-
older.append((label, data or b""))
|
|
2617
|
-
older.sort(key=lambda row: _version_sort_key(row[0]))
|
|
2411
|
+
if label and not version.is_current_version:
|
|
2412
|
+
older.append((label, version.open_binary_stream().execute_query().value or b""))
|
|
2618
2413
|
return file.ui_version_label, older
|
|
2619
2414
|
|
|
2620
2415
|
@property
|
|
@@ -2625,7 +2420,7 @@ class SharePointLibrarySource:
|
|
|
2625
2420
|
def checksum(self, item: MigrationItem) -> str:
|
|
2626
2421
|
if item.item_type == "folder":
|
|
2627
2422
|
return _content_checksum(_canonicalize_taxonomy_record(self._folder_values(item)))
|
|
2628
|
-
return
|
|
2423
|
+
return checksum(cast(bytes, self.read(item)))
|
|
2629
2424
|
|
|
2630
2425
|
def _folder_values(self, item: MigrationItem) -> dict:
|
|
2631
2426
|
"""The source folder's column values (empty when it carries none)."""
|
|
@@ -2659,7 +2454,9 @@ class SharePointLibrarySource:
|
|
|
2659
2454
|
securable.properties["HasUniqueRoleAssignments"] = unique
|
|
2660
2455
|
if not _has_unique_role_assignments(securable):
|
|
2661
2456
|
return []
|
|
2662
|
-
|
|
2457
|
+
entries = _read_role_assignments(securable, resolve=self._principal_for, normalize=self._normalize_name)
|
|
2458
|
+
_attach_group_owners(entries, self._folder.context.web, self._principal_for, self._group_owners)
|
|
2459
|
+
return entries
|
|
2663
2460
|
|
|
2664
2461
|
def _normalize_name(self, name: str) -> str:
|
|
2665
2462
|
"""Canonicalize a principal name (default groups -> ``default:<Kind>``)."""
|
|
@@ -2692,7 +2489,8 @@ class SharePointLibrarySource:
|
|
|
2692
2489
|
self._file_authors()
|
|
2693
2490
|
state = (self._item_moderation or {}).get(item.source_path)
|
|
2694
2491
|
if state:
|
|
2695
|
-
|
|
2492
|
+
status = state.get(_MODERATION_STATUS)
|
|
2493
|
+
metadata["moderation_status"] = None if status is None else str(status)
|
|
2696
2494
|
return metadata
|
|
2697
2495
|
|
|
2698
2496
|
def read_authorship(self, item: MigrationItem) -> tuple[str | None, str | None]:
|
|
@@ -2718,22 +2516,14 @@ class SharePointLibrarySource:
|
|
|
2718
2516
|
principal: "Principal | None" = None
|
|
2719
2517
|
try:
|
|
2720
2518
|
user = self._folder.context.web.site_users.get_by_id(cast("str", key)).get().execute_query()
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
system_id = normalize_puid(raw_id)
|
|
2724
|
-
if raw_id and system_id is None:
|
|
2519
|
+
principal = _principal_of(user, key)
|
|
2520
|
+
if user.user_id.name_id and principal.system_id is None:
|
|
2725
2521
|
# e.g. the app principal, whose ``UserId.NameId`` is not a PUID.
|
|
2726
2522
|
# Emitting it would fail the whole ingestion job, so drop it.
|
|
2727
2523
|
self.warnings.append(
|
|
2728
|
-
f"user {key} ({user.login_name!r}) has no usable PUID ({
|
|
2524
|
+
f"user {key} ({user.login_name!r}) has no usable PUID ({user.user_id.name_id!r}); "
|
|
2729
2525
|
"it is omitted from the server-side user map"
|
|
2730
2526
|
)
|
|
2731
|
-
principal = Principal(
|
|
2732
|
-
login_name=user.login_name or "",
|
|
2733
|
-
system_id=system_id,
|
|
2734
|
-
display_name=user.title,
|
|
2735
|
-
email=user.properties.get("Email"),
|
|
2736
|
-
)
|
|
2737
2527
|
except Exception as e: # noqa: BLE001 — a missing user degrades to no authorship
|
|
2738
2528
|
self.warnings.append(f"user {key} could not be resolved: {e}")
|
|
2739
2529
|
self._users[key] = principal
|
|
@@ -2757,25 +2547,15 @@ class SharePointLibrarySource:
|
|
|
2757
2547
|
# ``CheckoutUser`` is a user field: it only projects when its
|
|
2758
2548
|
# sub-properties are selected *and* the field is expanded — a bare
|
|
2759
2549
|
# ``$select=CheckoutUser`` is rejected by the server.
|
|
2760
|
-
select = [
|
|
2761
|
-
"FileRef",
|
|
2762
|
-
"AuthorId",
|
|
2763
|
-
"EditorId",
|
|
2764
|
-
"HasUniqueRoleAssignments",
|
|
2765
|
-
"CheckoutUser/Id",
|
|
2766
|
-
"CheckoutUser/Title",
|
|
2767
|
-
]
|
|
2550
|
+
select = ["FileRef", *_METADATA_SELECT, "CheckoutUser/Id", "CheckoutUser/Title"]
|
|
2768
2551
|
if moderates:
|
|
2769
2552
|
select.extend(_MODERATION_FIELDS)
|
|
2770
2553
|
items = self._sp_list.items.select(select).expand(["CheckoutUser"]).get_all().execute_query()
|
|
2771
2554
|
for item in items:
|
|
2772
|
-
ref = item.
|
|
2555
|
+
ref = item.file_ref
|
|
2773
2556
|
if ref:
|
|
2774
|
-
authors[ref] = (
|
|
2775
|
-
|
|
2776
|
-
parse_int(item.properties.get("EditorId")),
|
|
2777
|
-
)
|
|
2778
|
-
unique[ref] = bool(item.properties.get("HasUniqueRoleAssignments"))
|
|
2557
|
+
authors[ref] = (item.author_id, item.editor_id)
|
|
2558
|
+
unique[ref] = bool(item.has_unique_role_assignments)
|
|
2779
2559
|
if item.properties.get("CheckoutUser"):
|
|
2780
2560
|
checkout.add(ref)
|
|
2781
2561
|
if moderates:
|
|
@@ -2810,8 +2590,9 @@ class SharePointLibrarySource:
|
|
|
2810
2590
|
def read_item_state(self, item: MigrationItem) -> dict | None:
|
|
2811
2591
|
"""Approval state that a fresh upload would not reproduce.
|
|
2812
2592
|
|
|
2813
|
-
|
|
2814
|
-
|
|
2593
|
+
A copy arrives approved on a list without moderation and pending on one with it,
|
|
2594
|
+
so a pending source says nothing the copy does not already say; a draft, rejected
|
|
2595
|
+
or scheduled one does, together with its approval comments.
|
|
2815
2596
|
"""
|
|
2816
2597
|
if item.item_type == "folder" or self._list_source is None:
|
|
2817
2598
|
return None
|
|
@@ -2819,8 +2600,8 @@ class SharePointLibrarySource:
|
|
|
2819
2600
|
state = (self._item_moderation or {}).get(item.source_path)
|
|
2820
2601
|
if not state:
|
|
2821
2602
|
return None
|
|
2822
|
-
status = state.get(
|
|
2823
|
-
if status is None or status ==
|
|
2603
|
+
status = state.get(_MODERATION_STATUS)
|
|
2604
|
+
if status is None or status == SPModerationStatusType.Pending.value:
|
|
2824
2605
|
return None
|
|
2825
2606
|
return state
|
|
2826
2607
|
|
|
@@ -2839,6 +2620,12 @@ class SharePointLibraryTarget:
|
|
|
2839
2620
|
department is written onto the created folder's item. ``content_type_map``
|
|
2840
2621
|
rewrites the folder's content type id to its target counterpart, exactly as it
|
|
2841
2622
|
does for an item record.
|
|
2623
|
+
|
|
2624
|
+
Pass ``structure`` (a :class:`~office365.migration.sharepoint.structure.ListStructure`
|
|
2625
|
+
from :func:`~office365.migration.sharepoint.structure.load_list_structure`) to
|
|
2626
|
+
replay a captured shape onto the library before the first file is uploaded — the
|
|
2627
|
+
columns, content types, views and container settings of a bundle travel in its
|
|
2628
|
+
sidecar, not in each file.
|
|
2842
2629
|
"""
|
|
2843
2630
|
|
|
2844
2631
|
#: Files carry content-approval state (``apply_item_state``). Documents refuse a
|
|
@@ -2855,6 +2642,7 @@ class SharePointLibraryTarget:
|
|
|
2855
2642
|
concurrency=self._concurrency,
|
|
2856
2643
|
sp_list=sp_list,
|
|
2857
2644
|
content_type_map=self._content_type_map,
|
|
2645
|
+
structure=self._structure,
|
|
2858
2646
|
)
|
|
2859
2647
|
|
|
2860
2648
|
def __init__(
|
|
@@ -2863,7 +2651,12 @@ class SharePointLibraryTarget:
|
|
|
2863
2651
|
concurrency: int = 1,
|
|
2864
2652
|
sp_list: "SPList | None" = None,
|
|
2865
2653
|
content_type_map: "ContentTypeMap | None" = None,
|
|
2654
|
+
structure: "ListStructure | None" = None,
|
|
2866
2655
|
) -> None:
|
|
2656
|
+
if structure is not None and sp_list is None:
|
|
2657
|
+
raise ValueError("a structure snapshot needs the target list (sp_list) to be applied to")
|
|
2658
|
+
self._structure = structure
|
|
2659
|
+
self._structure_applied = False
|
|
2867
2660
|
self._folder = library_folder
|
|
2868
2661
|
self._concurrency = concurrency
|
|
2869
2662
|
# The folder-record mapping is the record mapping: reuse the list target so a
|
|
@@ -2876,71 +2669,44 @@ class SharePointLibraryTarget:
|
|
|
2876
2669
|
self.warnings: list[str] = []
|
|
2877
2670
|
self._login_cache: dict[int, str | None] = {}
|
|
2878
2671
|
self._principals_cache: _TargetPrincipals | None = None
|
|
2879
|
-
# Author/Editor values
|
|
2672
|
+
# Author/Editor values resolved by ``apply_authorship`` and folded into the
|
|
2880
2673
|
# final timestamp write so ``Editor`` isn't reset by the latter.
|
|
2881
2674
|
self._pending_authorship: dict[str, dict] = {}
|
|
2882
|
-
# Target web time zone (lazily loaded) and a UTC->local conversion cache.
|
|
2883
|
-
self._time_zone = None
|
|
2884
|
-
self._local_cache: dict[str, str] = {}
|
|
2885
2675
|
self._field_scan: SharePointListSource | None = None
|
|
2886
2676
|
|
|
2887
|
-
def _utc_to_local(self, *values: str | None) -> list[str | None]:
|
|
2888
|
-
"""Convert UTC timestamp strings to web-local wall-clock (one round trip).
|
|
2889
|
-
|
|
2890
|
-
Document items parse form dates in the web's locale, so the desired UTC
|
|
2891
|
-
instant must be converted to local wall-clock first. The conversion runs
|
|
2892
|
-
server-side (``TimeZone.UTCToLocalTime``) so DST is handled correctly.
|
|
2893
|
-
Results are cached by the exact UTC value.
|
|
2894
|
-
"""
|
|
2895
|
-
if self._time_zone is None:
|
|
2896
|
-
self._time_zone = self._folder.context.web.regional_settings.time_zone
|
|
2897
|
-
outputs: list[str | None] = [None] * len(values)
|
|
2898
|
-
pending: dict[str, object] = {}
|
|
2899
|
-
assignments: list[tuple[int, str]] = []
|
|
2900
|
-
for index, value in enumerate(values):
|
|
2901
|
-
if not value:
|
|
2902
|
-
continue
|
|
2903
|
-
utc = _sp_utc_timestamp(value)
|
|
2904
|
-
if utc is None:
|
|
2905
|
-
continue
|
|
2906
|
-
if not utc.endswith("Z"):
|
|
2907
|
-
# Unparseable value: pass it through unchanged so a rejection is
|
|
2908
|
-
# surfaced by ``_report_rejected_fields`` rather than silently lost.
|
|
2909
|
-
outputs[index] = str(value)
|
|
2910
|
-
continue
|
|
2911
|
-
cached = self._local_cache.get(utc)
|
|
2912
|
-
if cached is not None:
|
|
2913
|
-
outputs[index] = cached
|
|
2914
|
-
continue
|
|
2915
|
-
instant = parse_datetime(utc)
|
|
2916
|
-
if instant is None:
|
|
2917
|
-
outputs[index] = str(value)
|
|
2918
|
-
continue
|
|
2919
|
-
if utc not in pending:
|
|
2920
|
-
pending[utc] = self._time_zone.utc_to_local_time(instant)
|
|
2921
|
-
assignments.append((index, utc))
|
|
2922
|
-
if pending:
|
|
2923
|
-
self._folder.context.execute_query()
|
|
2924
|
-
for utc, result in pending.items():
|
|
2925
|
-
local = _sp_local_timestamp(getattr(result, "value", None))
|
|
2926
|
-
if local is not None:
|
|
2927
|
-
self._local_cache[utc] = local
|
|
2928
|
-
for index, utc in assignments:
|
|
2929
|
-
outputs[index] = self._local_cache.get(utc)
|
|
2930
|
-
return outputs
|
|
2931
|
-
|
|
2932
2677
|
def _principals(self) -> _TargetPrincipals:
|
|
2933
2678
|
"""The (lazily built) target principal/role resolver."""
|
|
2934
2679
|
if self._principals_cache is None:
|
|
2935
2680
|
self._principals_cache = _TargetPrincipals(self._folder.context.web, self.warnings)
|
|
2936
2681
|
return self._principals_cache
|
|
2937
2682
|
|
|
2683
|
+
def configure(self, options) -> None:
|
|
2684
|
+
"""Replay the captured structure onto the library before the first upload.
|
|
2685
|
+
|
|
2686
|
+
Called by :class:`MigrationRunner` before the run. A bundle carries the
|
|
2687
|
+
library's columns, content types, views and container settings in a sidecar,
|
|
2688
|
+
not in each file, so they have to exist before the files land — a file
|
|
2689
|
+
uploaded into a bare library stores no column values of its own.
|
|
2690
|
+
"""
|
|
2691
|
+
self.apply_structure()
|
|
2692
|
+
|
|
2693
|
+
def apply_structure(self) -> list[str]:
|
|
2694
|
+
"""Provision the snapshot passed as ``structure`` (once, idempotent)."""
|
|
2695
|
+
if self._structure is None or self._structure_applied or self._sp_list is None:
|
|
2696
|
+
return []
|
|
2697
|
+
self._structure_applied = True
|
|
2698
|
+
entries = self._content_type_map.entries if self._content_type_map is not None else None
|
|
2699
|
+
warnings = provision_list_structure(self._sp_list, self._structure, content_type_map=entries)
|
|
2700
|
+
self.warnings.extend(warnings)
|
|
2701
|
+
return warnings
|
|
2702
|
+
|
|
2938
2703
|
def label(self) -> str:
|
|
2939
2704
|
return f"library:{self._folder.server_relative_url}"
|
|
2940
2705
|
|
|
2941
2706
|
def _url(self, item: MigrationItem) -> str:
|
|
2942
2707
|
return f"{(self._folder.server_relative_url or '').rstrip('/')}/{str(item.dest_path).strip('/')}"
|
|
2943
2708
|
|
|
2709
|
+
@site_access(SiteLevel.READ)
|
|
2944
2710
|
def exists(self, item: MigrationItem) -> bool:
|
|
2945
2711
|
url = self._url(item)
|
|
2946
2712
|
try:
|
|
@@ -2961,12 +2727,20 @@ class SharePointLibraryTarget:
|
|
|
2961
2727
|
self._folder.ensure_folders(paths)
|
|
2962
2728
|
self._folder.context.execute_query()
|
|
2963
2729
|
|
|
2730
|
+
@site_access(SiteLevel.WRITE)
|
|
2964
2731
|
def write(self, item: MigrationItem, payload: object) -> None:
|
|
2965
2732
|
if item.item_type == "folder":
|
|
2966
2733
|
self._ensure_folders([item])
|
|
2967
2734
|
if isinstance(payload, dict):
|
|
2968
2735
|
self._apply_folder_values(item, payload)
|
|
2969
2736
|
return
|
|
2737
|
+
if isinstance(payload, dict):
|
|
2738
|
+
# ``str(payload).encode()`` below would write the record's ``repr`` into a file
|
|
2739
|
+
# nobody asked for, and report it as a success: refuse instead.
|
|
2740
|
+
raise ValueError(
|
|
2741
|
+
f"{item.dest_path!r} is a {item.item_type!r} with a dict payload: this target writes files, and a "
|
|
2742
|
+
"list record is not a file body — migrate records into a list"
|
|
2743
|
+
)
|
|
2970
2744
|
content = payload if isinstance(payload, bytes) else str(payload).encode("utf-8")
|
|
2971
2745
|
self._folder.upload_file(item.dest_path, content).execute_query()
|
|
2972
2746
|
|
|
@@ -3048,6 +2822,7 @@ class SharePointLibraryTarget:
|
|
|
3048
2822
|
)
|
|
3049
2823
|
return failures
|
|
3050
2824
|
|
|
2825
|
+
@site_access(SiteLevel.READ)
|
|
3051
2826
|
def list_paths(self) -> list[str]:
|
|
3052
2827
|
root = (self._folder.server_relative_url or "").rstrip("/")
|
|
3053
2828
|
extra = _site_assets_scaffolding(self._folder)
|
|
@@ -3060,8 +2835,9 @@ class SharePointLibraryTarget:
|
|
|
3060
2835
|
# notebook) is recreated server-side, never migrated, so it must not be
|
|
3061
2836
|
# reported as target-only content during verification. Source folder paths
|
|
3062
2837
|
# carry a trailing slash; target folder paths mirror that.
|
|
3063
|
-
return [p for p in paths if p != "/" and not
|
|
2838
|
+
return [p for p in paths if p != "/" and not self._folder.is_system_path(p, extra)]
|
|
3064
2839
|
|
|
2840
|
+
@site_access(SiteLevel.READ)
|
|
3065
2841
|
def read(self, item: MigrationItem) -> bytes:
|
|
3066
2842
|
"""Download the written item's bytes (used by verification for Office files)."""
|
|
3067
2843
|
if item.item_type == "folder":
|
|
@@ -3077,7 +2853,7 @@ class SharePointLibraryTarget:
|
|
|
3077
2853
|
if values is None or self._list_target is None:
|
|
3078
2854
|
return ""
|
|
3079
2855
|
return self._list_target.content_checksum(values)
|
|
3080
|
-
return
|
|
2856
|
+
return checksum(self.read(item))
|
|
3081
2857
|
|
|
3082
2858
|
def _target_folder_values(self, item: MigrationItem) -> dict | None:
|
|
3083
2859
|
"""The target folder's column values as they read back (``None`` if unknown)."""
|
|
@@ -3087,6 +2863,7 @@ class SharePointLibraryTarget:
|
|
|
3087
2863
|
list_item = self._securable(item).select(columns).get().execute_query()
|
|
3088
2864
|
return _folder_record_values(dict(list_item.properties))
|
|
3089
2865
|
|
|
2866
|
+
@site_access(SiteLevel.READ)
|
|
3090
2867
|
def modified(self, item: MigrationItem) -> str:
|
|
3091
2868
|
"""Last-modified of the target file (for incremental migration)."""
|
|
3092
2869
|
if item.item_type == "folder":
|
|
@@ -3094,32 +2871,43 @@ class SharePointLibraryTarget:
|
|
|
3094
2871
|
file = self._folder.context.web.get_file_by_server_relative_url(self._url(item)).get().execute_query()
|
|
3095
2872
|
return iso_or_none(file.time_last_modified) or ""
|
|
3096
2873
|
|
|
2874
|
+
@site_access(SiteLevel.WRITE)
|
|
3097
2875
|
def apply_timestamps(self, item: MigrationItem) -> None:
|
|
3098
2876
|
"""Best-effort: restore ``Created``/``Modified`` on the written item.
|
|
3099
2877
|
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
2878
|
+
``ValidateUpdateListItem`` is the only REST path that can set these system
|
|
2879
|
+
fields. For files it runs as a system update (``bNewDocumentUpdate=True``, the
|
|
2880
|
+
CSOM ``UpdateOverwriteVersion`` path) so the metadata lands without creating a
|
|
2881
|
+
new version; folders have no version history. ``preserve_versions`` still needs
|
|
2882
|
+
the server-side API. Authorship values resolved for the same item ride along in
|
|
2883
|
+
this write.
|
|
2884
|
+
"""
|
|
2885
|
+
self._restore_fidelity(item, timestamps=True)
|
|
2886
|
+
|
|
2887
|
+
def _restore_fidelity(self, item: MigrationItem, timestamps: bool) -> None:
|
|
2888
|
+
"""One system update carrying every fidelity value this item has.
|
|
2889
|
+
|
|
2890
|
+
A document's item form reads its dates in the web's locale rather than the UTC
|
|
2891
|
+
a caller holds, so the timestamps are converted first (see
|
|
2892
|
+
:func:`_web_local_texts`); the approval state is a write of its own and stays
|
|
2893
|
+
last — see :meth:`apply_item_state`.
|
|
3106
2894
|
"""
|
|
3107
|
-
form_values: dict = {}
|
|
3108
|
-
created, modified = self._utc_to_local(item.created, item.modified)
|
|
3109
|
-
if created:
|
|
3110
|
-
form_values["Created"] = created
|
|
3111
|
-
if modified:
|
|
3112
|
-
form_values["Modified"] = modified
|
|
3113
|
-
form_values.update(self._pending_authorship.pop(item.dest_path, {}))
|
|
3114
|
-
if not form_values:
|
|
3115
|
-
return
|
|
3116
2895
|
securable = self._securable(item)
|
|
3117
2896
|
if securable is None:
|
|
3118
2897
|
return
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
2898
|
+
created = modified = None
|
|
2899
|
+
if timestamps:
|
|
2900
|
+
created, modified = _web_local_texts(self._folder.context.web, item.created, item.modified)
|
|
2901
|
+
authorship = self._pending_authorship.pop(item.dest_path, {})
|
|
2902
|
+
if not (created or modified or authorship):
|
|
2903
|
+
return
|
|
2904
|
+
result = securable.restore_fidelity(
|
|
2905
|
+
created=created,
|
|
2906
|
+
modified=modified,
|
|
2907
|
+
author=authorship.get("Author"),
|
|
2908
|
+
editor=authorship.get("Editor"),
|
|
3122
2909
|
new_document_update=item.item_type != "folder",
|
|
2910
|
+
web_local_dates=True,
|
|
3123
2911
|
).execute_query()
|
|
3124
2912
|
_report_rejected_fields(result, self.warnings, f"timestamps {item.dest_path}")
|
|
3125
2913
|
|
|
@@ -3139,19 +2927,15 @@ class SharePointLibraryTarget:
|
|
|
3139
2927
|
return
|
|
3140
2928
|
author = self._principals().user(item.author.login_name if item.author else None)
|
|
3141
2929
|
editor = self._principals().user(item.editor.login_name if item.editor else None)
|
|
3142
|
-
if author is not None and
|
|
2930
|
+
if author is not None and author.is_service_account:
|
|
3143
2931
|
author = None
|
|
3144
|
-
if editor is not None and
|
|
2932
|
+
if editor is not None and editor.is_service_account:
|
|
3145
2933
|
editor = None
|
|
3146
2934
|
if author is None and editor is None:
|
|
3147
2935
|
return
|
|
3148
|
-
|
|
3149
|
-
if author is not None:
|
|
3150
|
-
form_values["Author"] = FieldUserValue(author.id, author.login_name)
|
|
3151
|
-
if editor is not None:
|
|
3152
|
-
form_values["Editor"] = FieldUserValue(editor.id, editor.login_name)
|
|
3153
|
-
self._pending_authorship[item.dest_path] = dict(form_values)
|
|
2936
|
+
self._pending_authorship[item.dest_path] = {"Author": author, "Editor": editor}
|
|
3154
2937
|
|
|
2938
|
+
@site_access(SiteLevel.WRITE)
|
|
3155
2939
|
def finalize_fidelity(self, item: MigrationItem) -> None:
|
|
3156
2940
|
"""Write the fidelity values that were only cached for this item.
|
|
3157
2941
|
|
|
@@ -3160,19 +2944,9 @@ class SharePointLibraryTarget:
|
|
|
3160
2944
|
one system update instead of one per property group. Runs before the
|
|
3161
2945
|
approval write, which must stay last.
|
|
3162
2946
|
"""
|
|
3163
|
-
|
|
3164
|
-
if not form_values:
|
|
3165
|
-
return
|
|
3166
|
-
securable = self._securable(item)
|
|
3167
|
-
if securable is None:
|
|
3168
|
-
return
|
|
3169
|
-
result = securable.validate_update_list_item(
|
|
3170
|
-
form_values,
|
|
3171
|
-
dates_in_utc=True,
|
|
3172
|
-
new_document_update=item.item_type != "folder",
|
|
3173
|
-
).execute_query()
|
|
3174
|
-
_report_rejected_fields(result, self.warnings, f"authorship {item.dest_path}")
|
|
2947
|
+
self._restore_fidelity(item, timestamps=False)
|
|
3175
2948
|
|
|
2949
|
+
@site_access(SiteLevel.MANAGE)
|
|
3176
2950
|
def apply_permissions(self, item: MigrationItem, permissions: list[PermissionEntry]) -> None:
|
|
3177
2951
|
"""Best-effort: replay a file's or folder's unique ACLs onto the target item.
|
|
3178
2952
|
|
|
@@ -3186,16 +2960,18 @@ class SharePointLibraryTarget:
|
|
|
3186
2960
|
_replay_role_assignments(securable, self._principals(), permissions, self.warnings, item.dest_path)
|
|
3187
2961
|
securable.context.execute_query()
|
|
3188
2962
|
|
|
2963
|
+
@site_access(SiteLevel.WRITE)
|
|
3189
2964
|
def apply_item_state(self, item: MigrationItem, state: dict) -> None:
|
|
3190
2965
|
"""Best-effort: restore a migrated file's content-approval state.
|
|
3191
2966
|
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
write fails and is reported, never
|
|
2967
|
+
A fresh document is pending on a moderated library and approved on one without
|
|
2968
|
+
it, so a draft or rejected source file would otherwise silently become visible.
|
|
2969
|
+
Documents reject a moderation change combined with other properties (``You
|
|
2970
|
+
cannot change moderation status and set other item properties at that same
|
|
2971
|
+
time.``), which is why a list item carries its state in its other system update
|
|
2972
|
+
and a file needs this write of its own, applied last. A library without
|
|
2973
|
+
moderation enabled has no such fields: the write fails and is reported, never
|
|
2974
|
+
fatal.
|
|
3199
2975
|
"""
|
|
3200
2976
|
if item.item_type == "folder" or not state:
|
|
3201
2977
|
return
|
|
@@ -3203,16 +2979,13 @@ class SharePointLibraryTarget:
|
|
|
3203
2979
|
if securable is None:
|
|
3204
2980
|
return
|
|
3205
2981
|
try:
|
|
3206
|
-
result = securable.
|
|
3207
|
-
dict(state),
|
|
3208
|
-
dates_in_utc=True,
|
|
3209
|
-
new_document_update=True,
|
|
3210
|
-
).execute_query()
|
|
2982
|
+
result = securable.restore_fidelity(approval=dict(state), new_document_update=True).execute_query()
|
|
3211
2983
|
except Exception as e: # noqa: BLE001 — approval state is best-effort
|
|
3212
2984
|
self.warnings.append(f"approval state for {item.dest_path!r} could not be restored: {e}")
|
|
3213
2985
|
return
|
|
3214
2986
|
_report_rejected_fields(result, self.warnings, f"approval state {item.dest_path}")
|
|
3215
2987
|
|
|
2988
|
+
@site_access(SiteLevel.READ)
|
|
3216
2989
|
def read_metadata(self, item: MigrationItem) -> dict | None:
|
|
3217
2990
|
"""Comparable attributes of the written item (for the metadata diff)."""
|
|
3218
2991
|
if item.item_type == "folder":
|
|
@@ -3244,11 +3017,11 @@ class SharePointLibraryTarget:
|
|
|
3244
3017
|
if securable is None:
|
|
3245
3018
|
return None
|
|
3246
3019
|
try:
|
|
3247
|
-
securable.select([
|
|
3020
|
+
securable.select([_MODERATION_STATUS]).get().execute_query()
|
|
3248
3021
|
except Exception: # noqa: BLE001 — a library without moderation has no such column
|
|
3249
3022
|
return None
|
|
3250
|
-
status = securable.
|
|
3251
|
-
return None if status is None else str(status)
|
|
3023
|
+
status = securable.moderation_status
|
|
3024
|
+
return None if status is None else str(status.value)
|
|
3252
3025
|
|
|
3253
3026
|
def read_permissions(self, item: MigrationItem) -> list[PermissionEntry]:
|
|
3254
3027
|
"""Read the written item's *unique* role assignments (for the permission diff)."""
|
|
@@ -3269,10 +3042,9 @@ class SharePointLibraryTarget:
|
|
|
3269
3042
|
securable = self._fresh_securable(item)
|
|
3270
3043
|
if securable is None:
|
|
3271
3044
|
return (None, None)
|
|
3272
|
-
properties = securable.properties
|
|
3273
3045
|
return (
|
|
3274
|
-
_user_login(self._folder.context.web,
|
|
3275
|
-
_user_login(self._folder.context.web,
|
|
3046
|
+
_user_login(self._folder.context.web, securable.author_id, self._login_cache),
|
|
3047
|
+
_user_login(self._folder.context.web, securable.editor_id, self._login_cache),
|
|
3276
3048
|
)
|
|
3277
3049
|
|
|
3278
3050
|
def _securable(self, item: MigrationItem):
|
|
@@ -3283,7 +3055,6 @@ class SharePointLibraryTarget:
|
|
|
3283
3055
|
|
|
3284
3056
|
def commit(self, options=None) -> None:
|
|
3285
3057
|
self._pending_authorship.clear()
|
|
3286
|
-
self._local_cache.clear()
|
|
3287
3058
|
|
|
3288
3059
|
def close(self) -> None:
|
|
3289
3060
|
pass
|