Office365-REST-Python-Client 2.4.3__py3-none-any.whl → 2.4.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/METADATA +8 -7
- {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/RECORD +254 -162
- office365/base_item.py +26 -4
- office365/communications/calls/invitation_participant_info.py +17 -1
- office365/communications/calls/options.py +9 -0
- office365/communications/onlinemeetings/provider_type.py +3 -0
- office365/communications/presences/presence.py +14 -0
- office365/communications/presences/status_message.py +12 -0
- office365/directory/audit/signins/activity.py +31 -0
- office365/directory/audit/signins/location.py +17 -0
- office365/directory/audit/signins/signin.py +25 -0
- office365/directory/authentication/authentication.py +9 -0
- office365/directory/authentication/methods/details.py +18 -0
- office365/directory/authentication/methods/email.py +16 -0
- office365/directory/authentication/methods/root.py +10 -0
- office365/directory/certificates/authority.py +6 -1
- office365/directory/extensions/extended_property.py +8 -1
- office365/directory/extensions/extension_property.py +0 -3
- office365/directory/extensions/open_type.py +8 -0
- office365/directory/groups/group.py +2 -1
- office365/directory/identities/governance.py +2 -0
- office365/directory/insights/shared.py +15 -1
- office365/directory/insights/usage_details.py +16 -0
- office365/directory/insights/used.py +7 -0
- office365/directory/licenses/assigned_plan.py +14 -2
- office365/directory/licenses/service_plan_info.py +4 -0
- office365/directory/licenses/subscribed_sku.py +26 -0
- office365/directory/licenses/units_detail.py +11 -0
- office365/directory/permissions/email_identity.py +5 -0
- office365/directory/permissions/grants/condition_set.py +26 -0
- office365/directory/permissions/grants/resource_specific.py +21 -0
- office365/directory/policies/authentication_flows.py +9 -0
- office365/directory/policies/authentication_strength.py +10 -0
- office365/directory/policies/authorization.py +8 -0
- office365/directory/policies/cross_tenant_access.py +5 -0
- office365/directory/policies/root.py +35 -2
- office365/directory/rolemanagement/template.py +8 -0
- office365/directory/rolemanagement/unified_role_assignment.py +37 -0
- office365/directory/security/alerts/alert.py +21 -0
- office365/directory/security/alerts/history_state.py +5 -0
- office365/directory/security/attacksimulations/automation.py +21 -0
- office365/directory/security/attacksimulations/automation_run.py +5 -0
- office365/directory/security/attacksimulations/repeat_offender.py +6 -0
- office365/directory/security/attacksimulations/root.py +26 -0
- office365/directory/security/attacksimulations/simulation.py +17 -0
- office365/directory/security/cases/ediscovery.py +6 -0
- office365/directory/security/cases/root.py +22 -0
- office365/directory/security/incidents/incident.py +67 -0
- office365/directory/security/security.py +10 -1
- office365/directory/serviceprincipals/service_principal.py +88 -3
- office365/directory/synchronization/job.py +16 -0
- office365/directory/synchronization/progress.py +5 -0
- office365/directory/synchronization/status.py +13 -0
- office365/directory/synchronization/synchronization.py +24 -0
- office365/directory/tenant_information.py +12 -0
- office365/directory/users/password_profile.py +15 -3
- office365/directory/users/user.py +136 -8
- office365/graph_client.py +28 -1
- office365/intune/audit/actor.py +5 -0
- office365/intune/audit/event.py +21 -25
- office365/intune/audit/event_collection.py +26 -0
- office365/intune/audit/property.py +5 -0
- office365/intune/audit/resource.py +11 -0
- office365/intune/brand.py +6 -0
- office365/intune/devices/compliance/__init__.py +0 -0
- office365/intune/devices/compliance/policy.py +6 -0
- office365/intune/devices/compliance/policy_state.py +5 -0
- office365/intune/devices/enrollment/__init__.py +0 -0
- office365/intune/devices/enrollment/configuration.py +25 -0
- office365/intune/devices/enrollment/configuration_assignment.py +5 -0
- office365/intune/devices/enrollment/limit_configuration.py +5 -0
- office365/intune/devices/managed.py +28 -3
- office365/intune/devices/management/__init__.py +0 -0
- office365/intune/devices/management/management.py +69 -0
- office365/intune/devices/management/reports/__init__.py +0 -0
- office365/intune/devices/management/reports/reports.py +5 -0
- office365/intune/devices/management/settings.py +18 -0
- office365/intune/organizations/branding.py +15 -0
- office365/intune/organizations/organization.py +14 -0
- office365/intune/printing/base.py +11 -0
- office365/intune/printing/capabilities.py +5 -0
- office365/intune/printing/connectors/__init__.py +0 -0
- office365/intune/printing/connectors/connector.py +6 -0
- office365/intune/printing/operations/__init__.py +0 -0
- office365/intune/printing/print.py +24 -0
- office365/intune/printing/printer.py +6 -0
- office365/intune/printing/services/__init__.py +0 -0
- office365/intune/printing/services/endpoint.py +5 -0
- office365/intune/printing/services/service.py +17 -0
- office365/intune/printing/share.py +5 -0
- office365/intune/printing/shares/__init__.py +0 -0
- office365/intune/printing/taskdefinitions/__init__.py +0 -0
- office365/intune/provisioned_plan.py +5 -1
- office365/intune/servicecommunications/issues/issue.py +15 -0
- office365/intune/vpp_token.py +10 -0
- office365/onedrive/columns/content_approval_status.py +5 -0
- office365/onedrive/columns/datetime.py +15 -0
- office365/onedrive/columns/definition.py +49 -3
- office365/onedrive/columns/definition_collection.py +17 -6
- office365/onedrive/columns/types.py +13 -0
- office365/onedrive/driveitems/audio.py +12 -1
- office365/onedrive/driveitems/driveItem.py +66 -15
- office365/onedrive/driveitems/image.py +8 -1
- office365/onedrive/driveitems/remote_item.py +19 -4
- office365/onedrive/drives/recipient.py +4 -0
- office365/onedrive/files/system_info.py +8 -6
- office365/onedrive/lists/collection.py +11 -5
- office365/onedrive/lists/list.py +13 -5
- office365/onedrive/operations/pending.py +13 -0
- office365/onedrive/operations/pending_content_update.py +5 -0
- office365/onedrive/permissions/collection.py +1 -1
- office365/onedrive/sensitivitylabels/__init__.py +0 -0
- office365/onedrive/sensitivitylabels/assignment.py +17 -0
- office365/onedrive/sensitivitylabels/assignment_method.py +4 -0
- office365/onedrive/sensitivitylabels/extract_result.py +13 -0
- office365/onedrive/sharepoint_settings.py +25 -0
- office365/outlook/calendar/calendar.py +116 -5
- office365/outlook/calendar/dateTimeTimeZone.py +3 -0
- office365/outlook/calendar/email_address.py +7 -0
- office365/outlook/calendar/events/event.py +0 -4
- office365/outlook/calendar/events/reminder.py +22 -3
- office365/outlook/calendar/group.py +0 -2
- office365/outlook/calendar/location_constraint.py +16 -1
- office365/outlook/calendar/permissions/__init__.py +0 -0
- office365/outlook/calendar/permissions/collection.py +24 -0
- office365/outlook/calendar/{permission.py → permissions/permission.py} +35 -2
- office365/outlook/calendar/role_type.py +17 -0
- office365/outlook/calendar/sharing_message.py +2 -2
- office365/outlook/calendar/time_zone_base.py +3 -0
- office365/outlook/calendar/working_hours.py +17 -1
- office365/outlook/contacts/collection.py +39 -0
- office365/outlook/contacts/contact.py +21 -11
- office365/outlook/geo_coordinates.py +20 -0
- office365/outlook/item.py +5 -2
- office365/outlook/locale_info.py +3 -0
- office365/outlook/mail/folders/folder.py +51 -2
- office365/outlook/mail/folders/search.py +11 -0
- office365/outlook/mail/importance.py +1 -0
- office365/outlook/mail/item_body.py +3 -0
- office365/outlook/mail/location.py +27 -2
- office365/outlook/mail/location_constraint_item.py +5 -0
- office365/outlook/mail/messages/collection.py +7 -0
- office365/outlook/mail/messages/followup_flag.py +21 -0
- office365/outlook/mail/messages/internet_header.py +16 -0
- office365/outlook/mail/messages/message.py +183 -4
- office365/outlook/mail/messages/rules/actions.py +33 -0
- office365/outlook/mail/patterned_recurrence.py +14 -1
- office365/outlook/mail/physical_address.py +5 -1
- office365/outlook/mail/recipient.py +3 -0
- office365/outlook/mail/recurrence_pattern.py +18 -1
- office365/outlook/mail/recurrence_range.py +16 -2
- office365/reports/root.py +19 -1
- office365/reports/security/__init__.py +0 -0
- office365/reports/security/root.py +21 -0
- office365/reports/userregistration/__init__.py +0 -0
- office365/reports/userregistration/method_count.py +17 -0
- office365/reports/userregistration/method_summary.py +21 -0
- office365/sharepoint/activities/logger.py +25 -0
- office365/sharepoint/addtoonedrive/mount_point.py +25 -0
- office365/sharepoint/addtoonedrive/mounted_folder_info.py +5 -0
- office365/sharepoint/alerts/alert.py +31 -0
- office365/sharepoint/changes/item.py +14 -0
- office365/sharepoint/client_context.py +6 -0
- office365/sharepoint/clientsidecomponent/component_context_info.py +7 -0
- office365/sharepoint/clientsidecomponent/identifier.py +3 -0
- office365/sharepoint/compliance/tag_info.py +17 -0
- office365/sharepoint/contenttypes/content_type.py +42 -0
- office365/sharepoint/contenttypes/fieldlinks/collection.py +5 -6
- office365/sharepoint/features/known_list.py +2 -0
- office365/sharepoint/fields/collection.py +60 -41
- office365/sharepoint/fields/creation_information.py +5 -4
- office365/sharepoint/fields/field.py +73 -15
- office365/sharepoint/fields/user.py +3 -3
- office365/sharepoint/files/file.py +9 -4
- office365/sharepoint/folders/coloring.py +39 -0
- office365/sharepoint/folders/coloring_information.py +15 -0
- office365/sharepoint/folders/folder.py +21 -10
- office365/sharepoint/forms/customization.py +8 -0
- office365/sharepoint/listitems/listitem.py +10 -3
- office365/sharepoint/lists/bloom_filter.py +0 -1
- office365/sharepoint/lists/creation_information.py +18 -4
- office365/sharepoint/lists/list.py +199 -24
- office365/sharepoint/lists/render_data_parameters.py +21 -1
- office365/sharepoint/navigation/configured_metadata_items.py +25 -1
- office365/sharepoint/navigation/metadata_settings.py +6 -4
- office365/sharepoint/permissions/irm/file_settings.py +43 -0
- office365/sharepoint/portal/userprofiles/documents_shared_with_group.py +3 -0
- office365/sharepoint/publishing/base_custom_property.py +8 -0
- office365/sharepoint/publishing/navigation/structural_navigation_cache_wrapper.py +8 -0
- office365/sharepoint/publishing/pagecopywithassets/__init__.py +0 -0
- office365/sharepoint/publishing/pagecopywithassets/response.py +8 -0
- office365/sharepoint/publishing/pages/campaign_publication.py +7 -0
- office365/sharepoint/publishing/pages/page.py +4 -1
- office365/sharepoint/publishing/pages/reposts/metadata.py +8 -0
- office365/sharepoint/publishing/personmagazine/person_magazine.py +4 -1
- office365/sharepoint/search/administration/tenant_crawl_versions_info_provider.py +8 -1
- office365/sharepoint/search/query/auto_completion_match.py +3 -0
- office365/sharepoint/search/query/property_value.py +18 -0
- office365/sharepoint/search/request.py +16 -2
- office365/sharepoint/sharing/abilities.py +22 -0
- office365/sharepoint/sharing/direct_abilities.py +27 -0
- office365/sharepoint/sharing/link_abilities.py +9 -1
- office365/sharepoint/sharing/links/data.py +26 -1
- office365/sharepoint/sharing/links/info.py +1 -1
- office365/sharepoint/sharing/links/partial_success_response.py +5 -0
- office365/sharepoint/sharing/links/share_settings.py +24 -1
- office365/sharepoint/sharing/object_sharing_information.py +65 -2
- office365/sharepoint/sharing/object_sharing_information_user.py +9 -0
- office365/sharepoint/sharing/object_sharing_settings.py +17 -4
- office365/sharepoint/sharing/principal.py +10 -0
- office365/sharepoint/sharing/securable_object_extensions.py +1 -17
- office365/sharepoint/sharing/site_sharing_report_helper.py +2 -1
- office365/sharepoint/sharing/user_sharing_result.py +18 -8
- office365/sharepoint/sitehealth/result.py +10 -0
- office365/sharepoint/sites/language.py +11 -1
- office365/sharepoint/sites/language_collection.py +1 -0
- office365/sharepoint/sites/site.py +34 -6
- office365/sharepoint/tenant/administration/audit/search_request_status.py +8 -0
- office365/sharepoint/tenant/administration/hubsites/permission.py +10 -0
- office365/sharepoint/tenant/administration/tenant.py +1 -0
- office365/sharepoint/tenant/apps/information.py +3 -1
- office365/sharepoint/tenant/management/office365_tenant.py +0 -1
- office365/sharepoint/types/resource_path.py +3 -1
- office365/sharepoint/userprofiles/people_manager.py +0 -2
- office365/sharepoint/userprofiles/sharedwithme/document.py +16 -0
- office365/sharepoint/userprofiles/sharedwithme/document_user.py +12 -0
- office365/sharepoint/userprofiles/sharedwithme/item_collection.py +41 -0
- office365/sharepoint/userprofiles/sharedwithme/items.py +18 -1
- office365/sharepoint/webs/web.py +2 -3
- office365/subscriptions/collection.py +12 -6
- office365/subscriptions/subscription.py +119 -1
- office365/teams/channels/iIdentity.py +5 -0
- office365/teams/chats/collection.py +1 -2
- office365/teams/chats/messages/info.py +9 -0
- office365/teams/chats/messages/message.py +17 -2
- office365/teams/members/aad_user_conversation.py +2 -2
- office365/teams/members/conversation_collection.py +3 -3
- office365/teams/schedule/change_tracked_entity.py +11 -2
- office365/teams/tabs/configuration.py +12 -1
- office365/teams/tabs/tab.py +0 -1
- office365/teams/team.py +23 -1
- office365/teams/teamwork/__init__.py +0 -0
- office365/teams/teamwork/activity_topic.py +5 -0
- office365/teams/teamwork/tags/__init__.py +0 -0
- office365/teams/teamwork/tags/member.py +5 -0
- office365/{directory/security/cases_root.py → teams/viva/employee_experience_user.py} +1 -1
- office365/intune/devices/management.py +0 -35
- {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/LICENSE +0 -0
- {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/WHEEL +0 -0
- {Office365_REST_Python_Client-2.4.3.dist-info → Office365_REST_Python_Client-2.4.4.dist-info}/top_level.txt +0 -0
- /office365/{teams/messages → directory/security/cases}/__init__.py +0 -0
- /office365/{teams/tags → directory/synchronization}/__init__.py +0 -0
- /office365/teams/{tags → teamwork/tags}/identity.py +0 -0
- /office365/teams/{tags → teamwork/tags}/tag.py +0 -0
- /office365/teams/{user_teamwork.py → teamwork/user.py} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from office365.directory.synchronization.progress import SynchronizationProgress
|
|
2
|
+
from office365.runtime.client_value import ClientValue
|
|
3
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SynchronizationStatus(ClientValue):
|
|
7
|
+
"""Represents the current status of the synchronizationJob."""
|
|
8
|
+
|
|
9
|
+
def __init__(self, progress=None):
|
|
10
|
+
"""
|
|
11
|
+
:param list[SynchronizationProgress] progress: Details of the progress of a job toward completion.
|
|
12
|
+
"""
|
|
13
|
+
self.progress = ClientValueCollection(SynchronizationProgress, progress)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from office365.directory.synchronization.job import SynchronizationJob
|
|
2
|
+
from office365.entity import Entity
|
|
3
|
+
from office365.entity_collection import EntityCollection
|
|
4
|
+
from office365.runtime.paths.resource_path import ResourcePath
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Synchronization(Entity):
|
|
8
|
+
"""
|
|
9
|
+
Represents the capability for Azure Active Directory (Azure AD) identity synchronization through
|
|
10
|
+
the Microsoft Graph API. Identity synchronization (also called provisioning) allows you to automate
|
|
11
|
+
the provisioning (creation, maintenance) and de-provisioning (removal) of user identities and roles from
|
|
12
|
+
Azure AD to supported cloud applications. For more information, see How Application Provisioning works
|
|
13
|
+
in Azure Active Directory
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def jobs(self):
|
|
18
|
+
"""
|
|
19
|
+
Performs synchronization by periodically running in the background, polling for changes in one directory,
|
|
20
|
+
and pushing them to another directory.
|
|
21
|
+
"""
|
|
22
|
+
return self.properties.get('jobs',
|
|
23
|
+
EntityCollection(self.context, SynchronizationJob,
|
|
24
|
+
ResourcePath("jobs", self.resource_path)))
|
|
@@ -3,3 +3,15 @@ from office365.runtime.client_value import ClientValue
|
|
|
3
3
|
|
|
4
4
|
class TenantInformation(ClientValue):
|
|
5
5
|
"""Information about your Azure AD tenant that is publicly displayed to users in other Azure AD tenants."""
|
|
6
|
+
|
|
7
|
+
def __str__(self, default_domain_name=None, display_name=None, federation_brand_name=None, tenant_id=None):
|
|
8
|
+
"""
|
|
9
|
+
:param str default_domain_name: Primary domain name of an Azure AD tenant.
|
|
10
|
+
:param str display_name: Display name of an Azure AD tenant.
|
|
11
|
+
:param str federation_brand_name: Name shown to users that sign in to an Azure AD tenant.
|
|
12
|
+
:param str tenant_id: Unique identifier of an Azure AD tenant.
|
|
13
|
+
"""
|
|
14
|
+
self.defaultDomainName = default_domain_name
|
|
15
|
+
self.displayName = display_name
|
|
16
|
+
self.federationBrandName = federation_brand_name
|
|
17
|
+
self.tenantId = tenant_id
|
|
@@ -4,11 +4,23 @@ from office365.runtime.client_value import ClientValue
|
|
|
4
4
|
class PasswordProfile(ClientValue):
|
|
5
5
|
"""Contains the password profile associated with a user. The passwordProfile property of the user entity is a
|
|
6
6
|
passwordProfile object. """
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
def __init__(self, password=None, force_change_password_next_sign_in=None,
|
|
9
|
+
force_change_password_next_sign_in_with_mfa=None):
|
|
8
10
|
"""
|
|
9
|
-
:param str password:
|
|
10
|
-
|
|
11
|
+
:param str password: The password for the user. This property is required when a user is created.
|
|
12
|
+
It can be updated, but the user will be required to change the password on the next login.
|
|
13
|
+
The password must satisfy minimum requirements as specified by the user's passwordPolicies property.
|
|
14
|
+
By default, a strong password is required.
|
|
15
|
+
:param bool force_change_password_next_sign_in: true if the user must change her password on the next login;
|
|
16
|
+
otherwise false.
|
|
17
|
+
:param bool force_change_password_next_sign_in_with_mfa: f true, at next sign-in, the user must perform a
|
|
18
|
+
multi-factor authentication (MFA) before being forced to change their password. The behavior is identical
|
|
19
|
+
to forceChangePasswordNextSignIn except that the user is required to first perform a multi-factor
|
|
20
|
+
authentication before password change. After a password change, this property will be automatically
|
|
21
|
+
reset to false. If not set, default is false.
|
|
11
22
|
"""
|
|
12
23
|
super(PasswordProfile, self).__init__()
|
|
13
24
|
self.password = password
|
|
14
25
|
self.forceChangePasswordNextSignIn = force_change_password_next_sign_in
|
|
26
|
+
self.forceChangePasswordNextSignInWithMfa = force_change_password_next_sign_in_with_mfa
|
|
@@ -4,6 +4,7 @@ from office365.communications.onlinemeetings.collection import OnlineMeetingColl
|
|
|
4
4
|
from office365.communications.presences.presence import Presence
|
|
5
5
|
from office365.delta_collection import DeltaCollection
|
|
6
6
|
from office365.directory.applications.roles.assignment_collection import AppRoleAssignmentCollection
|
|
7
|
+
from office365.directory.audit.signins.activity import SignInActivity
|
|
7
8
|
from office365.directory.authentication.authentication import Authentication
|
|
8
9
|
from office365.directory.extensions.extension import Extension
|
|
9
10
|
from office365.directory.identities.object_identity import ObjectIdentity
|
|
@@ -17,6 +18,7 @@ from office365.directory.object_collection import DirectoryObjectCollection
|
|
|
17
18
|
from office365.directory.permissions.grants.oauth2 import OAuth2PermissionGrant
|
|
18
19
|
from office365.directory.profile_photo import ProfilePhoto
|
|
19
20
|
from office365.directory.users.activities.collection import UserActivityCollection
|
|
21
|
+
from office365.directory.users.password_profile import PasswordProfile
|
|
20
22
|
from office365.directory.users.settings import UserSettings
|
|
21
23
|
from office365.entity_collection import EntityCollection
|
|
22
24
|
from office365.intune.devices.data import DeviceAndAppManagementData
|
|
@@ -31,7 +33,7 @@ from office365.outlook.calendar.events.event import Event
|
|
|
31
33
|
from office365.outlook.calendar.events.reminder import Reminder
|
|
32
34
|
from office365.outlook.calendar.group import CalendarGroup
|
|
33
35
|
from office365.outlook.calendar.meetingtimes.suggestions_result import MeetingTimeSuggestionsResult
|
|
34
|
-
from office365.outlook.contacts.
|
|
36
|
+
from office365.outlook.contacts.collection import ContactCollection
|
|
35
37
|
from office365.outlook.contacts.folder import ContactFolder
|
|
36
38
|
from office365.outlook.convert_id_result import ConvertIdResult
|
|
37
39
|
from office365.outlook.mail.folders.collection import MailFolderCollection
|
|
@@ -46,18 +48,34 @@ from office365.runtime.client_value_collection import ClientValueCollection
|
|
|
46
48
|
from office365.runtime.http.http_method import HttpMethod
|
|
47
49
|
from office365.runtime.paths.entity import EntityPath
|
|
48
50
|
from office365.runtime.paths.resource_path import ResourcePath
|
|
51
|
+
from office365.runtime.queries.create_entity import CreateEntityQuery
|
|
49
52
|
from office365.runtime.queries.function import FunctionQuery
|
|
50
53
|
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
51
54
|
from office365.runtime.types.collections import StringCollection
|
|
52
55
|
from office365.teams.chats.collection import ChatCollection
|
|
53
56
|
from office365.teams.collection import TeamCollection
|
|
54
|
-
from office365.teams.
|
|
57
|
+
from office365.teams.teamwork.user import UserTeamwork
|
|
55
58
|
from office365.todo.todo import Todo
|
|
59
|
+
from office365.teams.viva.employee_experience_user import EmployeeExperienceUser
|
|
56
60
|
|
|
57
61
|
|
|
58
62
|
class User(DirectoryObject):
|
|
59
63
|
"""Represents an Azure AD user account. Inherits from directoryObject."""
|
|
60
64
|
|
|
65
|
+
def add_extension(self, name):
|
|
66
|
+
"""
|
|
67
|
+
Creates an open extension (openTypeExtension object) and add custom properties in a new or existing instance
|
|
68
|
+
of a User resource.
|
|
69
|
+
:param str name:
|
|
70
|
+
"""
|
|
71
|
+
from office365.directory.extensions.open_type import OpenTypeExtension
|
|
72
|
+
return_type = OpenTypeExtension(self.context)
|
|
73
|
+
return_type.set_property("extensionName", name)
|
|
74
|
+
self.extensions.add_child(return_type)
|
|
75
|
+
qry = CreateEntityQuery(self.extensions, return_type, return_type)
|
|
76
|
+
self.context.add_query(qry)
|
|
77
|
+
return return_type
|
|
78
|
+
|
|
61
79
|
def assign_license(self, add_licenses, remove_licenses):
|
|
62
80
|
"""
|
|
63
81
|
Add or remove licenses on the user.
|
|
@@ -352,11 +370,31 @@ class User(DirectoryObject):
|
|
|
352
370
|
self.context.add_query(qry)
|
|
353
371
|
return return_type
|
|
354
372
|
|
|
373
|
+
@property
|
|
374
|
+
def device_enrollment_limit(self):
|
|
375
|
+
"""
|
|
376
|
+
:rtype: str
|
|
377
|
+
"""
|
|
378
|
+
return self.properties.get('deviceEnrollmentLimit', None)
|
|
379
|
+
|
|
380
|
+
@property
|
|
381
|
+
def sign_in_activity(self):
|
|
382
|
+
"""Get the last signed-in date and request ID of the sign-in for a given user. Read-only."""
|
|
383
|
+
return self.properties.get('signInActivity', SignInActivity())
|
|
384
|
+
|
|
355
385
|
@property
|
|
356
386
|
def account_enabled(self):
|
|
357
387
|
"""True if the account is enabled; otherwise, false. This property is required when a user is created."""
|
|
358
388
|
return self.properties.get('accountEnabled', None)
|
|
359
389
|
|
|
390
|
+
@property
|
|
391
|
+
def age_group(self):
|
|
392
|
+
"""
|
|
393
|
+
Gets the age group of the user.
|
|
394
|
+
:rtype: str or None
|
|
395
|
+
"""
|
|
396
|
+
return self.properties.get('ageGroup', None)
|
|
397
|
+
|
|
360
398
|
@property
|
|
361
399
|
def app_role_assignments(self):
|
|
362
400
|
"""Get the apps and app roles which this user has been assigned."""
|
|
@@ -445,6 +483,11 @@ class User(DirectoryObject):
|
|
|
445
483
|
"""
|
|
446
484
|
return self.properties.get('otherMails', StringCollection())
|
|
447
485
|
|
|
486
|
+
@property
|
|
487
|
+
def interests(self):
|
|
488
|
+
"""A list for the user to describe their interests."""
|
|
489
|
+
return self.properties.get("interests", StringCollection())
|
|
490
|
+
|
|
448
491
|
@property
|
|
449
492
|
def identities(self):
|
|
450
493
|
"""Represents the identities that can be used to sign in to this user account.
|
|
@@ -551,8 +594,7 @@ class User(DirectoryObject):
|
|
|
551
594
|
"""Get a contact collection from the default Contacts folder of the signed-in user (.../me/contacts),
|
|
552
595
|
or from the specified contact folder."""
|
|
553
596
|
return self.properties.get('contacts',
|
|
554
|
-
|
|
555
|
-
ResourcePath("contacts", self.resource_path)))
|
|
597
|
+
ContactCollection(self.context, ResourcePath("contacts", self.resource_path)))
|
|
556
598
|
|
|
557
599
|
@property
|
|
558
600
|
def contact_folders(self):
|
|
@@ -600,10 +642,29 @@ class User(DirectoryObject):
|
|
|
600
642
|
DeltaCollection(self.context, OAuth2PermissionGrant,
|
|
601
643
|
ResourcePath("oauth2PermissionGrants", self.resource_path)))
|
|
602
644
|
|
|
645
|
+
@property
|
|
646
|
+
def on_premises_distinguished_name(self):
|
|
647
|
+
"""
|
|
648
|
+
Contains the on-premises Active Directory distinguished name or DN. The property is only populated for
|
|
649
|
+
customers who are synchronizing their on-premises directory to Azure Active Directory via Azure AD Connect
|
|
650
|
+
:rtype: str
|
|
651
|
+
"""
|
|
652
|
+
return self.properties.get('onPremisesDistinguishedName', None)
|
|
653
|
+
|
|
654
|
+
@property
|
|
655
|
+
def on_premises_domain_name(self):
|
|
656
|
+
"""
|
|
657
|
+
Contains the on-premises domainFQDN, also called dnsDomainName synchronized from the on-premises directory.
|
|
658
|
+
The property is only populated for customers who are synchronizing their on-premises directory to
|
|
659
|
+
Azure Active Directory via Azure AD Connect.
|
|
660
|
+
:rtype: str
|
|
661
|
+
"""
|
|
662
|
+
return self.properties.get('onPremisesDomainName', None)
|
|
663
|
+
|
|
603
664
|
@property
|
|
604
665
|
def owned_devices(self):
|
|
605
|
-
"""Devices that are owned by the user. Read-only. Nullable.
|
|
606
|
-
(/$count eq 0, /$count ne 0, /$count eq 1, /$count ne 1). """
|
|
666
|
+
"""Devices that are owned by the user. Read-only. Nullable.
|
|
667
|
+
Supports $expand and $filter (/$count eq 0, /$count ne 0, /$count eq 1, /$count ne 1). """
|
|
607
668
|
return self.properties.get('ownedDevices',
|
|
608
669
|
DirectoryObjectCollection(self.context,
|
|
609
670
|
ResourcePath("ownedDevices", self.resource_path)))
|
|
@@ -615,6 +676,18 @@ class User(DirectoryObject):
|
|
|
615
676
|
DirectoryObjectCollection(self.context,
|
|
616
677
|
ResourcePath("ownedObjects", self.resource_path)))
|
|
617
678
|
|
|
679
|
+
@property
|
|
680
|
+
def proxy_addresses(self):
|
|
681
|
+
"""
|
|
682
|
+
For example: ["SMTP: bob@contoso.com", "smtp: bob@sales.contoso.com"]. Changes to the mail property will
|
|
683
|
+
also update this collection to include the value as an SMTP address. For more information, see mail and
|
|
684
|
+
proxyAddresses properties. The proxy address prefixed with SMTP (capitalized) is the primary proxy address
|
|
685
|
+
while those prefixed with smtp are the secondary proxy addresses. For Azure AD B2C accounts, this
|
|
686
|
+
property has a limit of ten unique addresses. Read-only in Microsoft Graph; you can update this property
|
|
687
|
+
only through the Microsoft 365 admin center. Not nullable.
|
|
688
|
+
"""
|
|
689
|
+
return self.properties.get('proxyAddresses', StringCollection())
|
|
690
|
+
|
|
618
691
|
@property
|
|
619
692
|
def transitive_member_of(self):
|
|
620
693
|
"""Get groups, directory roles that the user is a member of. This API request is transitive, and will also
|
|
@@ -679,6 +752,26 @@ class User(DirectoryObject):
|
|
|
679
752
|
OnlineMeetingCollection(self.context,
|
|
680
753
|
ResourcePath("onlineMeetings", self.resource_path)))
|
|
681
754
|
|
|
755
|
+
@property
|
|
756
|
+
def password_policies(self):
|
|
757
|
+
"""
|
|
758
|
+
Specifies password policies for the user. This value is an enumeration with one possible value being
|
|
759
|
+
DisableStrongPassword, which allows weaker passwords than the default policy to be specified.
|
|
760
|
+
DisablePasswordExpiration can also be specified. The two may be specified together; for example:
|
|
761
|
+
DisablePasswordExpiration, DisableStrongPassword.
|
|
762
|
+
:rtype: str
|
|
763
|
+
"""
|
|
764
|
+
return self.properties.get('passwordPolicies', None)
|
|
765
|
+
|
|
766
|
+
@property
|
|
767
|
+
def password_profile(self):
|
|
768
|
+
"""
|
|
769
|
+
Specifies the password profile for the user. The profile contains the user's password.
|
|
770
|
+
This property is required when a user is created. The password in the profile must satisfy minimum
|
|
771
|
+
requirements as specified by the passwordPolicies property. By default, a strong password is required.
|
|
772
|
+
"""
|
|
773
|
+
return self.properties.get('passwordProfile', PasswordProfile())
|
|
774
|
+
|
|
682
775
|
@property
|
|
683
776
|
def presence(self):
|
|
684
777
|
"""Get a user's presence information."""
|
|
@@ -687,11 +780,27 @@ class User(DirectoryObject):
|
|
|
687
780
|
|
|
688
781
|
@property
|
|
689
782
|
def registered_devices(self):
|
|
690
|
-
"""Get the devices that are
|
|
783
|
+
"""Get the devices that are registered for the user from the registeredDevices navigation property."""
|
|
691
784
|
return self.properties.get('registeredDevices',
|
|
692
785
|
DirectoryObjectCollection(self.context,
|
|
693
786
|
ResourcePath("registeredDevices", self.resource_path)))
|
|
694
787
|
|
|
788
|
+
@property
|
|
789
|
+
def street_address(self):
|
|
790
|
+
"""
|
|
791
|
+
The street address of the user's place of business. Maximum length is 1024 characters.
|
|
792
|
+
:rtype: str
|
|
793
|
+
"""
|
|
794
|
+
return self.properties.get('streetAddress', None)
|
|
795
|
+
|
|
796
|
+
@property
|
|
797
|
+
def security_identifier(self):
|
|
798
|
+
"""
|
|
799
|
+
Security identifier (SID) of the user, used in Windows scenarios.
|
|
800
|
+
:rtype: str
|
|
801
|
+
"""
|
|
802
|
+
return self.properties.get('securityIdentifier', None)
|
|
803
|
+
|
|
695
804
|
@property
|
|
696
805
|
def teamwork(self):
|
|
697
806
|
"""A container for the range of Microsoft Teams functionalities that are available per user in the tenant."""
|
|
@@ -704,6 +813,22 @@ class User(DirectoryObject):
|
|
|
704
813
|
return self.properties.get('todo',
|
|
705
814
|
Todo(self.context, ResourcePath("todo", self.resource_path)))
|
|
706
815
|
|
|
816
|
+
@property
|
|
817
|
+
def employee_experience(self):
|
|
818
|
+
"""Represents the To Do services available to a user."""
|
|
819
|
+
return self.properties.get('employeeExperience',
|
|
820
|
+
EmployeeExperienceUser(self.context,
|
|
821
|
+
ResourcePath("employeeExperience", self.resource_path)))
|
|
822
|
+
|
|
823
|
+
@property
|
|
824
|
+
def usage_location(self):
|
|
825
|
+
"""
|
|
826
|
+
A two letter country code (ISO standard 3166). Required for users that will be assigned licenses due to
|
|
827
|
+
legal requirement to check for availability of services in countries. Examples include: US, JP, and GB.
|
|
828
|
+
:rtype: str
|
|
829
|
+
"""
|
|
830
|
+
return self.properties.get('usageLocation', None)
|
|
831
|
+
|
|
707
832
|
def get_property(self, name, default_value=None):
|
|
708
833
|
if default_value is None:
|
|
709
834
|
property_mapping = {
|
|
@@ -711,6 +836,7 @@ class User(DirectoryObject):
|
|
|
711
836
|
"businessPhones": self.business_phones,
|
|
712
837
|
"calendarGroups": self.calendar_groups,
|
|
713
838
|
"contactFolders": self.contact_folders,
|
|
839
|
+
"employeeExperience": self.employee_experience,
|
|
714
840
|
"followedSites": self.followed_sites,
|
|
715
841
|
"licenseDetails": self.license_details,
|
|
716
842
|
"managedDevices": self.managed_devices,
|
|
@@ -725,7 +851,9 @@ class User(DirectoryObject):
|
|
|
725
851
|
"oauth2PermissionGrants": self.oauth2_permission_grants,
|
|
726
852
|
"ownedDevices": self.owned_devices,
|
|
727
853
|
"ownedObjects": self.owned_objects,
|
|
728
|
-
"
|
|
854
|
+
"passwordProfile": self.password_profile,
|
|
855
|
+
"registeredDevices": self.registered_devices,
|
|
856
|
+
"signInActivity": self.sign_in_activity
|
|
729
857
|
}
|
|
730
858
|
default_value = property_mapping.get(name, None)
|
|
731
859
|
return super(User, self).get_property(name, default_value)
|
office365/graph_client.py
CHANGED
|
@@ -31,7 +31,7 @@ from office365.education.root import EducationRoot
|
|
|
31
31
|
from office365.entity_collection import EntityCollection
|
|
32
32
|
from office365.search.external.external import External
|
|
33
33
|
from office365.intune.devices.app_management import DeviceAppManagement
|
|
34
|
-
from office365.intune.devices.management import DeviceManagement
|
|
34
|
+
from office365.intune.devices.management.management import DeviceManagement
|
|
35
35
|
from office365.intune.organizations.contact import OrgContact
|
|
36
36
|
from office365.intune.organizations.organization import Organization
|
|
37
37
|
from office365.onedrive.admin import Admin
|
|
@@ -214,8 +214,15 @@ class GraphClient(ClientRuntimeContext):
|
|
|
214
214
|
"""Represents a directory roles in the directory"""
|
|
215
215
|
return DeltaCollection(self, DirectoryRole, ResourcePath("directoryRoles"))
|
|
216
216
|
|
|
217
|
+
@property
|
|
218
|
+
def directory_role_templates(self):
|
|
219
|
+
"""Represents a directory role templates in the directory"""
|
|
220
|
+
from office365.directory.rolemanagement.template import DirectoryRoleTemplate
|
|
221
|
+
return EntityCollection(self, DirectoryRoleTemplate, ResourcePath("directoryRoleTemplates"))
|
|
222
|
+
|
|
217
223
|
@property
|
|
218
224
|
def identity_providers(self):
|
|
225
|
+
""""""
|
|
219
226
|
return EntityCollection(self, IdentityProvider, ResourcePath("identityProviders"))
|
|
220
227
|
|
|
221
228
|
@property
|
|
@@ -252,6 +259,12 @@ class GraphClient(ClientRuntimeContext):
|
|
|
252
259
|
"""A collection of lifecycle policies for a Microsoft 365 groups."""
|
|
253
260
|
return EntityCollection(self, GroupLifecyclePolicy, ResourcePath("groupLifecyclePolicies"))
|
|
254
261
|
|
|
262
|
+
@property
|
|
263
|
+
def group_settings(self):
|
|
264
|
+
"""Represents a directory roles in the directory"""
|
|
265
|
+
from office365.directory.groups.setting import GroupSetting
|
|
266
|
+
return GroupSetting(self, ResourcePath("groupSettings"))
|
|
267
|
+
|
|
255
268
|
@property
|
|
256
269
|
def communications(self):
|
|
257
270
|
"""
|
|
@@ -281,6 +294,12 @@ class GraphClient(ClientRuntimeContext):
|
|
|
281
294
|
"""
|
|
282
295
|
return SubscriptionCollection(self, ResourcePath("subscriptions"))
|
|
283
296
|
|
|
297
|
+
@property
|
|
298
|
+
def connections(self):
|
|
299
|
+
"""Get a list of the externalConnection objects and their properties."""
|
|
300
|
+
from office365.search.external.connection import ExternalConnection
|
|
301
|
+
return EntityCollection(self, ExternalConnection, ResourcePath("connections"))
|
|
302
|
+
|
|
284
303
|
@property
|
|
285
304
|
def tenant_relationships(self):
|
|
286
305
|
"""Represent the various type of tenant relationships."""
|
|
@@ -336,6 +355,14 @@ class GraphClient(ClientRuntimeContext):
|
|
|
336
355
|
"""
|
|
337
356
|
return EntityCollection(self, ResourceSpecificPermissionGrant, ResourcePath("permissionGrants"))
|
|
338
357
|
|
|
358
|
+
@property
|
|
359
|
+
def print(self):
|
|
360
|
+
"""
|
|
361
|
+
Used to manage printers and print jobs within Universal Print.
|
|
362
|
+
"""
|
|
363
|
+
from office365.intune.printing.print import Print
|
|
364
|
+
return Print(self, ResourcePath("print"))
|
|
365
|
+
|
|
339
366
|
@property
|
|
340
367
|
def search(self):
|
|
341
368
|
"""
|
office365/intune/audit/event.py
CHANGED
|
@@ -1,31 +1,27 @@
|
|
|
1
1
|
from office365.entity import Entity
|
|
2
|
-
from office365.
|
|
3
|
-
from office365.
|
|
4
|
-
from office365.runtime.
|
|
5
|
-
from office365.runtime.types.collections import StringCollection
|
|
2
|
+
from office365.intune.audit.actor import AuditActor
|
|
3
|
+
from office365.intune.audit.resource import AuditResource
|
|
4
|
+
from office365.runtime.client_value_collection import ClientValueCollection
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
class AuditEvent(Entity):
|
|
9
8
|
"""A class containing the properties for Audit Event."""
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
self.context.add_query(qry)
|
|
30
|
-
return return_type
|
|
31
|
-
|
|
10
|
+
@property
|
|
11
|
+
def activity(self):
|
|
12
|
+
"""Friendly name of the activity.
|
|
13
|
+
:rtype: str
|
|
14
|
+
"""
|
|
15
|
+
return self.properties.get("activity", None)
|
|
16
|
+
|
|
17
|
+
@property
|
|
18
|
+
def actor(self):
|
|
19
|
+
"""
|
|
20
|
+
AAD user and application that are associated with the audit event.
|
|
21
|
+
"""
|
|
22
|
+
return self.properties.get("actor", AuditActor())
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def resources(self):
|
|
26
|
+
"""Resources being modified"""
|
|
27
|
+
return self.properties.get("resources", ClientValueCollection(AuditResource))
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from office365.entity_collection import EntityCollection
|
|
2
|
+
from office365.intune.audit.event import AuditEvent
|
|
3
|
+
from office365.runtime.client_result import ClientResult
|
|
4
|
+
from office365.runtime.queries.function import FunctionQuery
|
|
5
|
+
from office365.runtime.types.collections import StringCollection
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AuditEventCollection(EntityCollection):
|
|
9
|
+
|
|
10
|
+
def __init__(self, context, resource_path=None):
|
|
11
|
+
super(AuditEventCollection, self).__init__(context, AuditEvent, resource_path)
|
|
12
|
+
|
|
13
|
+
def get_audit_categories(self):
|
|
14
|
+
"""Not yet documented"""
|
|
15
|
+
return_type = ClientResult(self.context, StringCollection())
|
|
16
|
+
qry = FunctionQuery(self, "getAuditCategories", None, return_type)
|
|
17
|
+
self.context.add_query(qry)
|
|
18
|
+
return return_type
|
|
19
|
+
|
|
20
|
+
def get_audit_activity_types(self, category):
|
|
21
|
+
"""Not yet documented"""
|
|
22
|
+
return_type = ClientResult(self.context, StringCollection())
|
|
23
|
+
params = {"category": category}
|
|
24
|
+
qry = FunctionQuery(self, "getAuditActivityTypes", params, return_type)
|
|
25
|
+
self.context.add_query(qry)
|
|
26
|
+
return return_type
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from office365.runtime.client_value import ClientValue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class AuditResource(ClientValue):
|
|
5
|
+
"""A class containing the properties for Audit Resource."""
|
|
6
|
+
|
|
7
|
+
def __init__(self, audit_resource_type=None):
|
|
8
|
+
"""
|
|
9
|
+
:param str audit_resource_type: Audit resource's type.
|
|
10
|
+
"""
|
|
11
|
+
self.auditResourceType = audit_resource_type
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
|
|
3
|
+
from office365.entity import Entity
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DeviceEnrollmentConfiguration(Entity):
|
|
7
|
+
"""The Base Class of Device Enrollment Configuration"""
|
|
8
|
+
|
|
9
|
+
@property
|
|
10
|
+
def created_datetime(self):
|
|
11
|
+
"""
|
|
12
|
+
Created date time in UTC of the device enrollment configuration
|
|
13
|
+
"""
|
|
14
|
+
return self.properties.get("createdDateTime", datetime.datetime.min)
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def display_name(self):
|
|
18
|
+
"""
|
|
19
|
+
The display name of the device enrollment configuration
|
|
20
|
+
:rtype: str
|
|
21
|
+
"""
|
|
22
|
+
return self.properties.get("displayName", None)
|
|
23
|
+
|
|
24
|
+
def get_property(self, name, default_value=None):
|
|
25
|
+
return super(DeviceEnrollmentConfiguration, self).get_property(name, default_value)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
from office365.entity import Entity
|
|
2
|
+
from office365.entity_collection import EntityCollection
|
|
2
3
|
from office365.intune.devices.category import DeviceCategory
|
|
4
|
+
from office365.intune.devices.compliance.policy_state import DeviceCompliancePolicyState
|
|
3
5
|
from office365.runtime.paths.resource_path import ResourcePath
|
|
4
6
|
from office365.runtime.queries.service_operation import ServiceOperationQuery
|
|
5
7
|
|
|
@@ -13,11 +15,23 @@ class ManagedDevice(Entity):
|
|
|
13
15
|
self.context.add_query(qry)
|
|
14
16
|
return self
|
|
15
17
|
|
|
18
|
+
@property
|
|
19
|
+
def activation_lock_bypass_code(self):
|
|
20
|
+
"""
|
|
21
|
+
The code that allows the Activation Lock on managed device to be bypassed. Default,
|
|
22
|
+
is Null (Non-Default property) for this property when returned as part of managedDevice entity in LIST call.
|
|
23
|
+
To retrieve actual values GET call needs to be made, with device id and included in select parameter.
|
|
24
|
+
Supports: $select. $Search is not supported. Read-only. This property is read-only.
|
|
25
|
+
:rtype: str
|
|
26
|
+
"""
|
|
27
|
+
return self.properties.get("activationLockBypassCode", None)
|
|
28
|
+
|
|
16
29
|
@property
|
|
17
30
|
def device_category(self):
|
|
18
31
|
""" Device category"""
|
|
19
|
-
return self.properties.get('deviceCategory',
|
|
20
|
-
|
|
32
|
+
return self.properties.get('deviceCategory',
|
|
33
|
+
DeviceCategory(self.context,
|
|
34
|
+
ResourcePath("deviceCategory", self.resource_path)))
|
|
21
35
|
|
|
22
36
|
@property
|
|
23
37
|
def manufacturer(self):
|
|
@@ -35,6 +49,16 @@ class ManagedDevice(Entity):
|
|
|
35
49
|
"""
|
|
36
50
|
return self.properties.get("operatingSystem", None)
|
|
37
51
|
|
|
52
|
+
@property
|
|
53
|
+
def device_compliance_policy_states(self):
|
|
54
|
+
"""
|
|
55
|
+
Device compliance policy states for this device
|
|
56
|
+
"""
|
|
57
|
+
return self.properties.get('deviceCompliancePolicyStates',
|
|
58
|
+
EntityCollection(self.context, DeviceCompliancePolicyState,
|
|
59
|
+
ResourcePath("deviceCompliancePolicyStates",
|
|
60
|
+
self.resource_path)))
|
|
61
|
+
|
|
38
62
|
@property
|
|
39
63
|
def users(self):
|
|
40
64
|
"""The primary users associated with the managed device."""
|
|
@@ -44,7 +68,8 @@ class ManagedDevice(Entity):
|
|
|
44
68
|
def get_property(self, name, default_value=None):
|
|
45
69
|
if default_value is None:
|
|
46
70
|
property_mapping = {
|
|
47
|
-
"deviceCategory": self.device_category
|
|
71
|
+
"deviceCategory": self.device_category,
|
|
72
|
+
"deviceCompliancePolicyStates": self.device_compliance_policy_states
|
|
48
73
|
}
|
|
49
74
|
default_value = property_mapping.get(name, None)
|
|
50
75
|
return super(ManagedDevice, self).get_property(name, default_value)
|
|
File without changes
|