# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from azure.core.exceptions import HttpResponseError
import msrest.serialization


class CollectionOfAdministrativeUnit(msrest.serialization.Model):
    """Collection of administrativeUnit.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphAdministrativeUnit]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfAdministrativeUnit, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfContract(msrest.serialization.Model):
    """Collection of contract.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphContract]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphContract]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfContract, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDevice(msrest.serialization.Model):
    """Collection of device.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDevice]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDevice]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDevice, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject0(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject1(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject2(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject2, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject3(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject3, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject4(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject4, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject5(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject5, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject6(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject6, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject7(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject7, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject8(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject8, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject9(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject9, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryRole(msrest.serialization.Model):
    """Collection of directoryRole.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRole]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryRole]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryRole, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryRoleTemplate(msrest.serialization.Model):
    """Collection of directoryRoleTemplate.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRoleTemplate]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryRoleTemplate]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryRoleTemplate, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomain(msrest.serialization.Model):
    """Collection of domain.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomain]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomain]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomainDnsRecord(msrest.serialization.Model):
    """Collection of domainDnsRecord.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomainDnsRecord, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomainDnsRecord0(msrest.serialization.Model):
    """Collection of domainDnsRecord.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomainDnsRecord0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension0(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension1(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject0(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject1(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject2(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject2, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject3(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject3, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject4(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject4, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject5(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject5, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject6(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject6, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject7(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject7, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject8(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject8, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfOrganization(msrest.serialization.Model):
    """Collection of organization.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphOrganization]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphOrganization]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfOrganization, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfOrgContact(msrest.serialization.Model):
    """Collection of orgContact.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphOrgContact]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphOrgContact]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfOrgContact, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership0(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership1(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfSubscribedSku(msrest.serialization.Model):
    """Collection of subscribedSku.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphSubscribedSku]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphSubscribedSku]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfSubscribedSku, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class MicrosoftGraphEntity(msrest.serialization.Model):
    """entity.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param id: Read-only.
    :type id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'id': {'key': 'id', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphEntity, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.id = kwargs.get('id', None)


class MicrosoftGraphDirectoryObject(MicrosoftGraphEntity):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.deleted_date_time = kwargs.get('deleted_date_time', None)


class MicrosoftGraphAdministrativeUnit(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: An optional description for the administrative unit.
    :type description: str
    :param display_name: Display name for the administrative unit.
    :type display_name: str
    :param visibility: Controls whether the adminstrative unit and its members are hidden or
     public. Can be set to HiddenMembership or Public. If not set, default behavior is Public. When
     set to HiddenMembership, only members of the administrative unit can list other members of the
     adminstrative unit.
    :type visibility: str
    :param members: Users and groups that are members of this Adminsitrative Unit. HTTP Methods:
     GET (list members), POST (add members), DELETE (remove members).
    :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param scoped_role_members: Scoped-role members of this Administrative Unit.  HTTP Methods: GET
     (list scopedRoleMemberships), POST (add scopedRoleMembership), DELETE (remove
     scopedRoleMembership).
    :type scoped_role_members:
     list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param extensions:
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'visibility': {'key': 'visibility', 'type': 'str'},
        'members': {'key': 'members', 'type': '[MicrosoftGraphDirectoryObject]'},
        'scoped_role_members': {'key': 'scopedRoleMembers', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAdministrativeUnit, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)
        self.visibility = kwargs.get('visibility', None)
        self.members = kwargs.get('members', None)
        self.scoped_role_members = kwargs.get('scoped_role_members', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphAlternativeSecurityId(msrest.serialization.Model):
    """alternativeSecurityId.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param identity_provider: For internal use only.
    :type identity_provider: str
    :param key: For internal use only.
    :type key: bytes
    :param type: For internal use only.
    :type type: int
    """

    _validation = {
        'type': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'identity_provider': {'key': 'identityProvider', 'type': 'str'},
        'key': {'key': 'key', 'type': 'base64'},
        'type': {'key': 'type', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAlternativeSecurityId, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.identity_provider = kwargs.get('identity_provider', None)
        self.key = kwargs.get('key', None)
        self.type = kwargs.get('type', None)


class MicrosoftGraphAssignedPlan(msrest.serialization.Model):
    """assignedPlan.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param assigned_date_time: The date and time at which the plan was assigned; for example:
     2013-01-02T19:32:30Z. The Timestamp type represents date and time information using ISO 8601
     format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like
     this: '2014-01-01T00:00:00Z'.
    :type assigned_date_time: ~datetime.datetime
    :param capability_status: For example, 'Enabled'.
    :type capability_status: str
    :param service: The name of the service; for example, 'Exchange'.
    :type service: str
    :param service_plan_id: A GUID that identifies the service plan.
    :type service_plan_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'assigned_date_time': {'key': 'assignedDateTime', 'type': 'iso-8601'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'service': {'key': 'service', 'type': 'str'},
        'service_plan_id': {'key': 'servicePlanId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAssignedPlan, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.assigned_date_time = kwargs.get('assigned_date_time', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.service = kwargs.get('service', None)
        self.service_plan_id = kwargs.get('service_plan_id', None)


class MicrosoftGraphCertificateAuthority(msrest.serialization.Model):
    """certificateAuthority.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param certificate: Required. The base64 encoded string representing the public certificate.
    :type certificate: bytes
    :param certificate_revocation_list_url: The URL of the certificate revocation list.
    :type certificate_revocation_list_url: str
    :param delta_certificate_revocation_list_url: The URL contains the list of all revoked
     certificates since the last time a full certificate revocaton list was created.
    :type delta_certificate_revocation_list_url: str
    :param is_root_authority: Required. true if the trusted certificate is a root authority, false
     if the trusted certificate is an intermediate authority.
    :type is_root_authority: bool
    :param issuer: The issuer of the certificate, calculated from the certificate value. Read-only.
    :type issuer: str
    :param issuer_ski: The subject key identifier of the certificate, calculated from the
     certificate value. Read-only.
    :type issuer_ski: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'certificate': {'key': 'certificate', 'type': 'base64'},
        'certificate_revocation_list_url': {'key': 'certificateRevocationListUrl', 'type': 'str'},
        'delta_certificate_revocation_list_url': {'key': 'deltaCertificateRevocationListUrl', 'type': 'str'},
        'is_root_authority': {'key': 'isRootAuthority', 'type': 'bool'},
        'issuer': {'key': 'issuer', 'type': 'str'},
        'issuer_ski': {'key': 'issuerSki', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphCertificateAuthority, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.certificate = kwargs.get('certificate', None)
        self.certificate_revocation_list_url = kwargs.get('certificate_revocation_list_url', None)
        self.delta_certificate_revocation_list_url = kwargs.get('delta_certificate_revocation_list_url', None)
        self.is_root_authority = kwargs.get('is_root_authority', None)
        self.issuer = kwargs.get('issuer', None)
        self.issuer_ski = kwargs.get('issuer_ski', None)


class MicrosoftGraphCertificateBasedAuthConfiguration(MicrosoftGraphEntity):
    """certificateBasedAuthConfiguration.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param certificate_authorities: Collection of certificate authorities which creates a trusted
     certificate chain.
    :type certificate_authorities:
     list[~identity_directory_management.models.MicrosoftGraphCertificateAuthority]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'certificate_authorities': {'key': 'certificateAuthorities', 'type': '[MicrosoftGraphCertificateAuthority]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphCertificateBasedAuthConfiguration, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.certificate_authorities = kwargs.get('certificate_authorities', None)


class MicrosoftGraphContract(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param contract_type: Type of contract.Possible values are: SyndicationPartner - Partner that
     exclusively resells and manages O365 and Intune for this customer. They resell and support
     their customers. BreadthPartner - Partner has the ability to provide administrative support for
     this customer. However, the partner is not allowed to resell to the customer.ResellerPartner -
     Partner that is similar to a syndication partner, except that the partner doesn’t have
     exclusive access to a tenant. In the syndication case, the customer cannot buy additional
     direct subscriptions from Microsoft or from other partners.
    :type contract_type: str
    :param customer_id: The unique identifier for the customer tenant referenced by this
     partnership. Corresponds to the id property of the customer tenant's organization resource.
    :type customer_id: str
    :param default_domain_name: A copy of the customer tenant's default domain name. The copy is
     made when the partnership with the customer is established. It is not automatically updated if
     the customer tenant's default domain name changes.
    :type default_domain_name: str
    :param display_name: A copy of the customer tenant's display name. The copy is made when the
     partnership with the customer is established. It is not automatically updated if the customer
     tenant's display name changes.
    :type display_name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'contract_type': {'key': 'contractType', 'type': 'str'},
        'customer_id': {'key': 'customerId', 'type': 'str'},
        'default_domain_name': {'key': 'defaultDomainName', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphContract, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.contract_type = kwargs.get('contract_type', None)
        self.customer_id = kwargs.get('customer_id', None)
        self.default_domain_name = kwargs.get('default_domain_name', None)
        self.display_name = kwargs.get('display_name', None)


class MicrosoftGraphDevice(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param account_enabled: true if the account is enabled; otherwise, false. Required.
    :type account_enabled: bool
    :param alternative_security_ids: For internal use only. Not nullable.
    :type alternative_security_ids:
     list[~identity_directory_management.models.MicrosoftGraphAlternativeSecurityId]
    :param approximate_last_sign_in_date_time: The timestamp type represents date and time
     information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan
     1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.
    :type approximate_last_sign_in_date_time: ~datetime.datetime
    :param compliance_expiration_date_time: The timestamp when the device is no longer deemed
     compliant. The timestamp type represents date and time information using ISO 8601 format and is
     always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this:
     '2014-01-01T00:00:00Z'. Read-only.
    :type compliance_expiration_date_time: ~datetime.datetime
    :param device_id: Unique identifier set by Azure Device Registration Service at the time of
     registration.
    :type device_id: str
    :param device_metadata: For interal use only. Set to null.
    :type device_metadata: str
    :param device_version: For interal use only.
    :type device_version: int
    :param display_name: The display name for the device. Required.
    :type display_name: str
    :param is_compliant: true if the device complies with Mobile Device Management (MDM) policies;
     otherwise, false. Read-only. This can only be updated by Intune for any device OS type or by an
     approved MDM app for Windows OS devices.
    :type is_compliant: bool
    :param is_managed: true if the device is managed by a Mobile Device Management (MDM) app;
     otherwise, false. This can only be updated by Intune for any device OS type or by an approved
     MDM app for Windows OS devices.
    :type is_managed: bool
    :param mdm_app_id: Application identifier used to register device into MDM. Read-only. Supports
     $filter.
    :type mdm_app_id: str
    :param on_premises_last_sync_date_time: The last time at which the object was synced with the
     on-premises directory.The Timestamp type represents date and time information using ISO 8601
     format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like
     this: '2014-01-01T00:00:00Z' Read-only.
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;
     false if this object was originally synced from an on-premises directory but is no longer
     synced; null if this object has never been synced from an on-premises directory (default).
     Read-only.
    :type on_premises_sync_enabled: bool
    :param operating_system: The type of operating system on the device. Required.
    :type operating_system: str
    :param operating_system_version: The version of the operating system on the device. Required.
    :type operating_system_version: str
    :param physical_ids: For interal use only. Not nullable.
    :type physical_ids: list[str]
    :param profile_type: The profile type of the device. Possible values:RegisteredDevice
     (default)SecureVMPrinterSharedIoT.
    :type profile_type: str
    :param system_labels: List of labels applied to the device by the system.
    :type system_labels: list[str]
    :param trust_type: Type of trust for the joined device. Read-only. Possible values: Workplace -
     indicates bring your own personal devicesAzureAd - Cloud only joined devicesServerAd - on-
     premises domain joined devices joined to Azure AD. For more details, see Introduction to device
     management in Azure Active Directory.
    :type trust_type: str
    :param member_of: Groups that this group is a member of. HTTP Methods: GET (supported for all
     groups). Read-only. Nullable.
    :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param registered_owners: The user that cloud joined the device or registered their personal
     device. The registered owner is set at the time of registration. Currently, there can be only
     one owner. Read-only. Nullable.
    :type registered_owners:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param registered_users: Collection of registered users of the device. For cloud joined devices
     and registered personal devices, registered users are set to the same value as registered
     owners at the time of registration. Read-only. Nullable.
    :type registered_users:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param transitive_member_of:
    :type transitive_member_of:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param extensions: The collection of open extensions defined for the device. Read-only.
     Nullable.
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _validation = {
        'device_version': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'account_enabled': {'key': 'accountEnabled', 'type': 'bool'},
        'alternative_security_ids': {'key': 'alternativeSecurityIds', 'type': '[MicrosoftGraphAlternativeSecurityId]'},
        'approximate_last_sign_in_date_time': {'key': 'approximateLastSignInDateTime', 'type': 'iso-8601'},
        'compliance_expiration_date_time': {'key': 'complianceExpirationDateTime', 'type': 'iso-8601'},
        'device_id': {'key': 'deviceId', 'type': 'str'},
        'device_metadata': {'key': 'deviceMetadata', 'type': 'str'},
        'device_version': {'key': 'deviceVersion', 'type': 'int'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'is_compliant': {'key': 'isCompliant', 'type': 'bool'},
        'is_managed': {'key': 'isManaged', 'type': 'bool'},
        'mdm_app_id': {'key': 'mdmAppId', 'type': 'str'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'operating_system': {'key': 'operatingSystem', 'type': 'str'},
        'operating_system_version': {'key': 'operatingSystemVersion', 'type': 'str'},
        'physical_ids': {'key': 'physicalIds', 'type': '[str]'},
        'profile_type': {'key': 'profileType', 'type': 'str'},
        'system_labels': {'key': 'systemLabels', 'type': '[str]'},
        'trust_type': {'key': 'trustType', 'type': 'str'},
        'member_of': {'key': 'memberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'registered_owners': {'key': 'registeredOwners', 'type': '[MicrosoftGraphDirectoryObject]'},
        'registered_users': {'key': 'registeredUsers', 'type': '[MicrosoftGraphDirectoryObject]'},
        'transitive_member_of': {'key': 'transitiveMemberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDevice, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.account_enabled = kwargs.get('account_enabled', None)
        self.alternative_security_ids = kwargs.get('alternative_security_ids', None)
        self.approximate_last_sign_in_date_time = kwargs.get('approximate_last_sign_in_date_time', None)
        self.compliance_expiration_date_time = kwargs.get('compliance_expiration_date_time', None)
        self.device_id = kwargs.get('device_id', None)
        self.device_metadata = kwargs.get('device_metadata', None)
        self.device_version = kwargs.get('device_version', None)
        self.display_name = kwargs.get('display_name', None)
        self.is_compliant = kwargs.get('is_compliant', None)
        self.is_managed = kwargs.get('is_managed', None)
        self.mdm_app_id = kwargs.get('mdm_app_id', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.operating_system = kwargs.get('operating_system', None)
        self.operating_system_version = kwargs.get('operating_system_version', None)
        self.physical_ids = kwargs.get('physical_ids', None)
        self.profile_type = kwargs.get('profile_type', None)
        self.system_labels = kwargs.get('system_labels', None)
        self.trust_type = kwargs.get('trust_type', None)
        self.member_of = kwargs.get('member_of', None)
        self.registered_owners = kwargs.get('registered_owners', None)
        self.registered_users = kwargs.get('registered_users', None)
        self.transitive_member_of = kwargs.get('transitive_member_of', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphDirectory(MicrosoftGraphEntity):
    """directory.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param administrative_units:
    :type administrative_units:
     list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]
    :param deleted_items: Recently deleted items. Read-only. Nullable.
    :type deleted_items: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'administrative_units': {'key': 'administrativeUnits', 'type': '[MicrosoftGraphAdministrativeUnit]'},
        'deleted_items': {'key': 'deletedItems', 'type': '[MicrosoftGraphDirectoryObject]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectory, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.administrative_units = kwargs.get('administrative_units', None)
        self.deleted_items = kwargs.get('deleted_items', None)


class MicrosoftGraphDirectoryRole(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: The description for the directory role. Read-only.
    :type description: str
    :param display_name: The display name for the directory role. Read-only.
    :type display_name: str
    :param role_template_id: The id of the directoryRoleTemplate that this role is based on. The
     property must be specified when activating a directory role in a tenant with a POST operation.
     After the directory role has been activated, the property is read only.
    :type role_template_id: str
    :param members: Users that are members of this directory role. HTTP Methods: GET, POST, DELETE.
     Read-only. Nullable.
    :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param scoped_members:
    :type scoped_members:
     list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'role_template_id': {'key': 'roleTemplateId', 'type': 'str'},
        'members': {'key': 'members', 'type': '[MicrosoftGraphDirectoryObject]'},
        'scoped_members': {'key': 'scopedMembers', 'type': '[MicrosoftGraphScopedRoleMembership]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryRole, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)
        self.role_template_id = kwargs.get('role_template_id', None)
        self.members = kwargs.get('members', None)
        self.scoped_members = kwargs.get('scoped_members', None)


class MicrosoftGraphDirectoryRoleTemplate(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: The description to set for the directory role. Read-only.
    :type description: str
    :param display_name: The display name to set for the directory role. Read-only.
    :type display_name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryRoleTemplate, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)


class MicrosoftGraphDomain(MicrosoftGraphEntity):
    """domain.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param authentication_type: Indicates the configured authentication type for the domain. The
     value is either Managed or Federated. Managed indicates a cloud managed domain where Azure AD
     performs user authentication.Federated indicates authentication is federated with an identity
     provider such as the tenant's on-premises Active Directory via Active Directory Federation
     Services. This property is read-only and is not nullable.
    :type authentication_type: str
    :param availability_status: This property is always null except when the verify action is used.
     When the verify action is used, a domain entity is returned in the response. The
     availabilityStatus property of the domain entity in the response is either AvailableImmediately
     or EmailVerifiedDomainTakeoverScheduled.
    :type availability_status: str
    :param is_admin_managed: The value of the property is false if the DNS record management of the
     domain has been delegated to Microsoft 365. Otherwise, the value is true. Not nullable.
    :type is_admin_managed: bool
    :param is_default: True if this is the default domain that is used for user creation. There is
     only one default domain per company. Not nullable.
    :type is_default: bool
    :param is_initial: True if this is the initial domain created by Microsoft Online Services
     (companyname.onmicrosoft.com). There is only one initial domain per company. Not nullable.
    :type is_initial: bool
    :param is_root: True if the domain is a verified root domain. Otherwise, false if the domain is
     a subdomain or unverified. Not nullable.
    :type is_root: bool
    :param is_verified: True if the domain has completed domain ownership verification. Not
     nullable.
    :type is_verified: bool
    :param manufacturer:
    :type manufacturer: str
    :param model:
    :type model: str
    :param password_notification_window_in_days: Specifies the number of days before a user
     receives notification that their password will expire. If the property is not set, a default
     value of 14 days will be used.
    :type password_notification_window_in_days: int
    :param password_validity_period_in_days: Specifies the length of time that a password is valid
     before it must be changed. If the property is not set, a default value of 90 days will be used.
    :type password_validity_period_in_days: int
    :param state: domainState.
    :type state: ~identity_directory_management.models.MicrosoftGraphDomainState
    :param supported_services: The capabilities assigned to the domain.Can include 0, 1 or more of
     following values: Email, Sharepoint, EmailInternalRelayOnly, OfficeCommunicationsOnline,
     SharePointDefaultDomain, FullRedelegation, SharePointPublic, OrgIdAuthentication, Yammer,
     Intune The values which you can add/remove using Graph API include: Email,
     OfficeCommunicationsOnline, YammerNot nullable.
    :type supported_services: list[str]
    :param domain_name_references: Read-only, Nullable.
    :type domain_name_references:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param service_configuration_records: DNS records the customer adds to the DNS zone file of the
     domain before the domain can be used by Microsoft Online services.Read-only, Nullable.
    :type service_configuration_records:
     list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param verification_dns_records: DNS records that the customer adds to the DNS zone file of the
     domain before the customer can complete domain ownership verification with Azure AD.Read-only,
     Nullable.
    :type verification_dns_records:
     list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    """

    _validation = {
        'password_notification_window_in_days': {'maximum': 2147483647, 'minimum': -2147483648},
        'password_validity_period_in_days': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'authentication_type': {'key': 'authenticationType', 'type': 'str'},
        'availability_status': {'key': 'availabilityStatus', 'type': 'str'},
        'is_admin_managed': {'key': 'isAdminManaged', 'type': 'bool'},
        'is_default': {'key': 'isDefault', 'type': 'bool'},
        'is_initial': {'key': 'isInitial', 'type': 'bool'},
        'is_root': {'key': 'isRoot', 'type': 'bool'},
        'is_verified': {'key': 'isVerified', 'type': 'bool'},
        'manufacturer': {'key': 'manufacturer', 'type': 'str'},
        'model': {'key': 'model', 'type': 'str'},
        'password_notification_window_in_days': {'key': 'passwordNotificationWindowInDays', 'type': 'int'},
        'password_validity_period_in_days': {'key': 'passwordValidityPeriodInDays', 'type': 'int'},
        'state': {'key': 'state', 'type': 'MicrosoftGraphDomainState'},
        'supported_services': {'key': 'supportedServices', 'type': '[str]'},
        'domain_name_references': {'key': 'domainNameReferences', 'type': '[MicrosoftGraphDirectoryObject]'},
        'service_configuration_records': {'key': 'serviceConfigurationRecords', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'verification_dns_records': {'key': 'verificationDnsRecords', 'type': '[MicrosoftGraphDomainDnsRecord]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.authentication_type = kwargs.get('authentication_type', None)
        self.availability_status = kwargs.get('availability_status', None)
        self.is_admin_managed = kwargs.get('is_admin_managed', None)
        self.is_default = kwargs.get('is_default', None)
        self.is_initial = kwargs.get('is_initial', None)
        self.is_root = kwargs.get('is_root', None)
        self.is_verified = kwargs.get('is_verified', None)
        self.manufacturer = kwargs.get('manufacturer', None)
        self.model = kwargs.get('model', None)
        self.password_notification_window_in_days = kwargs.get('password_notification_window_in_days', None)
        self.password_validity_period_in_days = kwargs.get('password_validity_period_in_days', None)
        self.state = kwargs.get('state', None)
        self.supported_services = kwargs.get('supported_services', None)
        self.domain_name_references = kwargs.get('domain_name_references', None)
        self.service_configuration_records = kwargs.get('service_configuration_records', None)
        self.verification_dns_records = kwargs.get('verification_dns_records', None)


class MicrosoftGraphDomainDnsRecord(MicrosoftGraphEntity):
    """domainDnsRecord.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_optional: If false, this record must be configured by the customer at the DNS host
     for Microsoft Online Services to operate correctly with the domain.
    :type is_optional: bool
    :param label: Value used when configuring the name of the DNS record at the DNS host.
    :type label: str
    :param record_type: Indicates what type of DNS record this entity represents.The value can be
     one of the following: CName, Mx, Srv, TxtKey.
    :type record_type: str
    :param supported_service: Microsoft Online Service or feature that has a dependency on this DNS
     record.Can be one of the following values: null, Email, Sharepoint, EmailInternalRelayOnly,
     OfficeCommunicationsOnline, SharePointDefaultDomain, FullRedelegation, SharePointPublic,
     OrgIdAuthentication, Yammer, Intune.
    :type supported_service: str
    :param ttl: Value to use when configuring the time-to-live (ttl) property of the DNS record at
     the DNS host. Not nullable.
    :type ttl: int
    """

    _validation = {
        'ttl': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_optional': {'key': 'isOptional', 'type': 'bool'},
        'label': {'key': 'label', 'type': 'str'},
        'record_type': {'key': 'recordType', 'type': 'str'},
        'supported_service': {'key': 'supportedService', 'type': 'str'},
        'ttl': {'key': 'ttl', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomainDnsRecord, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_optional = kwargs.get('is_optional', None)
        self.label = kwargs.get('label', None)
        self.record_type = kwargs.get('record_type', None)
        self.supported_service = kwargs.get('supported_service', None)
        self.ttl = kwargs.get('ttl', None)


class MicrosoftGraphDomainState(msrest.serialization.Model):
    """domainState.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param last_action_date_time: Timestamp for when the last activity occurred. The value is
     updated when an operation is scheduled, the asynchronous task starts, and when the operation
     completes.
    :type last_action_date_time: ~datetime.datetime
    :param operation: Type of asynchronous operation. The values can be ForceDelete or
     Verification.
    :type operation: str
    :param status: Current status of the operation.  Scheduled - Operation has been scheduled but
     has not started.  InProgress - Task has started and is in progress.  Failed - Operation has
     failed.
    :type status: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'last_action_date_time': {'key': 'lastActionDateTime', 'type': 'iso-8601'},
        'operation': {'key': 'operation', 'type': 'str'},
        'status': {'key': 'status', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomainState, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.last_action_date_time = kwargs.get('last_action_date_time', None)
        self.operation = kwargs.get('operation', None)
        self.status = kwargs.get('status', None)


class MicrosoftGraphExtension(MicrosoftGraphEntity):
    """extension.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphExtension, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)


class MicrosoftGraphExtensionProperty(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param app_display_name: Display name of the application object on which this extension
     property is defined. Read-only.
    :type app_display_name: str
    :param data_type: Specifies the data type of the value the extension property can hold.
     Following values are supported. Not nullable. Binary - 256 bytes maximumBooleanDateTime - Must
     be specified in ISO 8601 format. Will be stored in UTC.Integer - 32-bit value.LargeInteger -
     64-bit value.String - 256 characters maximum.
    :type data_type: str
    :param is_synced_from_on_premises: Indicates if this extension property was sycned from
     onpremises directory using Azure AD Connect. Read-only.
    :type is_synced_from_on_premises: bool
    :param name: Name of the extension property. Not nullable.
    :type name: str
    :param target_objects: Following values are supported. Not nullable.
     UserGroupOrganizationDeviceApplication.
    :type target_objects: list[str]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'app_display_name': {'key': 'appDisplayName', 'type': 'str'},
        'data_type': {'key': 'dataType', 'type': 'str'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'target_objects': {'key': 'targetObjects', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphExtensionProperty, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.app_display_name = kwargs.get('app_display_name', None)
        self.data_type = kwargs.get('data_type', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', None)
        self.name = kwargs.get('name', None)
        self.target_objects = kwargs.get('target_objects', None)


class MicrosoftGraphIdentity(msrest.serialization.Model):
    """identity.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param display_name: The identity's display name. Note that this may not always be available or
     up to date. For example, if a user changes their display name, the API may show the new value
     in a future response, but the items associated with the user won't show up as having changed
     when using delta.
    :type display_name: str
    :param id: Unique identifier for the identity.
    :type id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphIdentity, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.display_name = kwargs.get('display_name', None)
        self.id = kwargs.get('id', None)


class MicrosoftGraphLicenseUnitsDetail(msrest.serialization.Model):
    """licenseUnitsDetail.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param enabled: The number of units that are enabled.
    :type enabled: int
    :param suspended: The number of units that are suspended.
    :type suspended: int
    :param warning: The number of units that are in warning status.
    :type warning: int
    """

    _validation = {
        'enabled': {'maximum': 2147483647, 'minimum': -2147483648},
        'suspended': {'maximum': 2147483647, 'minimum': -2147483648},
        'warning': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'enabled': {'key': 'enabled', 'type': 'int'},
        'suspended': {'key': 'suspended', 'type': 'int'},
        'warning': {'key': 'warning', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphLicenseUnitsDetail, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.enabled = kwargs.get('enabled', None)
        self.suspended = kwargs.get('suspended', None)
        self.warning = kwargs.get('warning', None)


class MicrosoftGraphOnPremisesProvisioningError(msrest.serialization.Model):
    """onPremisesProvisioningError.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param category: Category of the provisioning error. Note: Currently, there is only one
     possible value. Possible value: PropertyConflict - indicates a property value is not unique.
     Other objects contain the same value for the property.
    :type category: str
    :param occurred_date_time: The date and time at which the error occurred.
    :type occurred_date_time: ~datetime.datetime
    :param property_causing_error: Name of the directory property causing the error. Current
     possible values: UserPrincipalName or ProxyAddress.
    :type property_causing_error: str
    :param value: Value of the property causing the error.
    :type value: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'category': {'key': 'category', 'type': 'str'},
        'occurred_date_time': {'key': 'occurredDateTime', 'type': 'iso-8601'},
        'property_causing_error': {'key': 'propertyCausingError', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOnPremisesProvisioningError, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.category = kwargs.get('category', None)
        self.occurred_date_time = kwargs.get('occurred_date_time', None)
        self.property_causing_error = kwargs.get('property_causing_error', None)
        self.value = kwargs.get('value', None)


class MicrosoftGraphOrganization(MicrosoftGraphDirectoryObject):
    """The organization resource represents an instance of global settings and resources which operate and are provisioned at the tenant-level.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param assigned_plans: The collection of service plans associated with the tenant. Not
     nullable.
    :type assigned_plans: list[~identity_directory_management.models.MicrosoftGraphAssignedPlan]
    :param business_phones: Telephone number for the organization. NOTE: Although this is a string
     collection, only one number can be set for this property.
    :type business_phones: list[str]
    :param city: City name of the address for the organization.
    :type city: str
    :param country: Country/region name of the address for the organization.
    :type country: str
    :param country_letter_code: Country/region abbreviation for the organization.
    :type country_letter_code: str
    :param created_date_time: Timestamp of when the organization was created. The value cannot be
     modified and is automatically populated when the organization is created. The Timestamp type
     represents date and time information using ISO 8601 format and is always in UTC time. For
     example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.
    :type created_date_time: ~datetime.datetime
    :param display_name: The display name for the tenant.
    :type display_name: str
    :param marketing_notification_emails: Not nullable.
    :type marketing_notification_emails: list[str]
    :param on_premises_last_sync_date_time: The time and date at which the tenant was last synced
     with the on-premise directory. The Timestamp type represents date and time information using
     ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look
     like this: '2014-01-01T00:00:00Z'. Read-only.
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;
     false if this object was originally synced from an on-premises directory but is no longer
     synced; null if this object has never been synced from an on-premises directory (default).
    :type on_premises_sync_enabled: bool
    :param postal_code: Postal code of the address for the organization.
    :type postal_code: str
    :param preferred_language: The preferred language for the organization. Should follow ISO 639-1
     Code; for example 'en'.
    :type preferred_language: str
    :param privacy_profile: privacyProfile.
    :type privacy_profile: ~identity_directory_management.models.MicrosoftGraphPrivacyProfile
    :param provisioned_plans: Not nullable.
    :type provisioned_plans:
     list[~identity_directory_management.models.MicrosoftGraphProvisionedPlan]
    :param security_compliance_notification_mails:
    :type security_compliance_notification_mails: list[str]
    :param security_compliance_notification_phones:
    :type security_compliance_notification_phones: list[str]
    :param state: State name of the address for the organization.
    :type state: str
    :param street: Street name of the address for organization.
    :type street: str
    :param technical_notification_mails: Not nullable.
    :type technical_notification_mails: list[str]
    :param tenant_type:
    :type tenant_type: str
    :param verified_domains: The collection of domains associated with this tenant. Not nullable.
    :type verified_domains:
     list[~identity_directory_management.models.MicrosoftGraphVerifiedDomain]
    :param mobile_device_management_authority:  Possible values include: "unknown", "intune",
     "sccm", "office365".
    :type mobile_device_management_authority: str or
     ~identity_directory_management.models.MicrosoftGraphMdmAuthority
    :param certificate_based_auth_configuration: Navigation property to manage certificate-based
     authentication configuration. Only a single instance of certificateBasedAuthConfiguration can
     be created in the collection.
    :type certificate_based_auth_configuration:
     list[~identity_directory_management.models.MicrosoftGraphCertificateBasedAuthConfiguration]
    :param extensions: The collection of open extensions defined for the organization. Read-only.
     Nullable.
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'assigned_plans': {'key': 'assignedPlans', 'type': '[MicrosoftGraphAssignedPlan]'},
        'business_phones': {'key': 'businessPhones', 'type': '[str]'},
        'city': {'key': 'city', 'type': 'str'},
        'country': {'key': 'country', 'type': 'str'},
        'country_letter_code': {'key': 'countryLetterCode', 'type': 'str'},
        'created_date_time': {'key': 'createdDateTime', 'type': 'iso-8601'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'marketing_notification_emails': {'key': 'marketingNotificationEmails', 'type': '[str]'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'postal_code': {'key': 'postalCode', 'type': 'str'},
        'preferred_language': {'key': 'preferredLanguage', 'type': 'str'},
        'privacy_profile': {'key': 'privacyProfile', 'type': 'MicrosoftGraphPrivacyProfile'},
        'provisioned_plans': {'key': 'provisionedPlans', 'type': '[MicrosoftGraphProvisionedPlan]'},
        'security_compliance_notification_mails': {'key': 'securityComplianceNotificationMails', 'type': '[str]'},
        'security_compliance_notification_phones': {'key': 'securityComplianceNotificationPhones', 'type': '[str]'},
        'state': {'key': 'state', 'type': 'str'},
        'street': {'key': 'street', 'type': 'str'},
        'technical_notification_mails': {'key': 'technicalNotificationMails', 'type': '[str]'},
        'tenant_type': {'key': 'tenantType', 'type': 'str'},
        'verified_domains': {'key': 'verifiedDomains', 'type': '[MicrosoftGraphVerifiedDomain]'},
        'mobile_device_management_authority': {'key': 'mobileDeviceManagementAuthority', 'type': 'str'},
        'certificate_based_auth_configuration': {'key': 'certificateBasedAuthConfiguration', 'type': '[MicrosoftGraphCertificateBasedAuthConfiguration]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOrganization, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.assigned_plans = kwargs.get('assigned_plans', None)
        self.business_phones = kwargs.get('business_phones', None)
        self.city = kwargs.get('city', None)
        self.country = kwargs.get('country', None)
        self.country_letter_code = kwargs.get('country_letter_code', None)
        self.created_date_time = kwargs.get('created_date_time', None)
        self.display_name = kwargs.get('display_name', None)
        self.marketing_notification_emails = kwargs.get('marketing_notification_emails', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.postal_code = kwargs.get('postal_code', None)
        self.preferred_language = kwargs.get('preferred_language', None)
        self.privacy_profile = kwargs.get('privacy_profile', None)
        self.provisioned_plans = kwargs.get('provisioned_plans', None)
        self.security_compliance_notification_mails = kwargs.get('security_compliance_notification_mails', None)
        self.security_compliance_notification_phones = kwargs.get('security_compliance_notification_phones', None)
        self.state = kwargs.get('state', None)
        self.street = kwargs.get('street', None)
        self.technical_notification_mails = kwargs.get('technical_notification_mails', None)
        self.tenant_type = kwargs.get('tenant_type', None)
        self.verified_domains = kwargs.get('verified_domains', None)
        self.mobile_device_management_authority = kwargs.get('mobile_device_management_authority', None)
        self.certificate_based_auth_configuration = kwargs.get('certificate_based_auth_configuration', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphOrgContact(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param addresses:
    :type addresses:
     list[~identity_directory_management.models.MicrosoftGraphPhysicalOfficeAddress]
    :param company_name:
    :type company_name: str
    :param department:
    :type department: str
    :param display_name:
    :type display_name: str
    :param given_name:
    :type given_name: str
    :param job_title:
    :type job_title: str
    :param mail:
    :type mail: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_premises_last_sync_date_time:
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_provisioning_errors:
    :type on_premises_provisioning_errors:
     list[~identity_directory_management.models.MicrosoftGraphOnPremisesProvisioningError]
    :param on_premises_sync_enabled:
    :type on_premises_sync_enabled: bool
    :param phones:
    :type phones: list[~identity_directory_management.models.MicrosoftGraphPhone]
    :param proxy_addresses:
    :type proxy_addresses: list[str]
    :param surname:
    :type surname: str
    :param direct_reports:
    :type direct_reports: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param manager: Represents an Azure Active Directory object. The directoryObject type is the
     base type for many other directory entity types.
    :type manager: ~identity_directory_management.models.MicrosoftGraphDirectoryObject
    :param member_of:
    :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param transitive_member_of:
    :type transitive_member_of:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'addresses': {'key': 'addresses', 'type': '[MicrosoftGraphPhysicalOfficeAddress]'},
        'company_name': {'key': 'companyName', 'type': 'str'},
        'department': {'key': 'department', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'given_name': {'key': 'givenName', 'type': 'str'},
        'job_title': {'key': 'jobTitle', 'type': 'str'},
        'mail': {'key': 'mail', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_provisioning_errors': {'key': 'onPremisesProvisioningErrors', 'type': '[MicrosoftGraphOnPremisesProvisioningError]'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'phones': {'key': 'phones', 'type': '[MicrosoftGraphPhone]'},
        'proxy_addresses': {'key': 'proxyAddresses', 'type': '[str]'},
        'surname': {'key': 'surname', 'type': 'str'},
        'direct_reports': {'key': 'directReports', 'type': '[MicrosoftGraphDirectoryObject]'},
        'manager': {'key': 'manager', 'type': 'MicrosoftGraphDirectoryObject'},
        'member_of': {'key': 'memberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'transitive_member_of': {'key': 'transitiveMemberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOrgContact, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.addresses = kwargs.get('addresses', None)
        self.company_name = kwargs.get('company_name', None)
        self.department = kwargs.get('department', None)
        self.display_name = kwargs.get('display_name', None)
        self.given_name = kwargs.get('given_name', None)
        self.job_title = kwargs.get('job_title', None)
        self.mail = kwargs.get('mail', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_provisioning_errors = kwargs.get('on_premises_provisioning_errors', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.phones = kwargs.get('phones', None)
        self.proxy_addresses = kwargs.get('proxy_addresses', None)
        self.surname = kwargs.get('surname', None)
        self.direct_reports = kwargs.get('direct_reports', None)
        self.manager = kwargs.get('manager', None)
        self.member_of = kwargs.get('member_of', None)
        self.transitive_member_of = kwargs.get('transitive_member_of', None)


class MicrosoftGraphPhone(msrest.serialization.Model):
    """phone.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param language:
    :type language: str
    :param number: The phone number.
    :type number: str
    :param region:
    :type region: str
    :param type:  Possible values include: "home", "business", "mobile", "other", "assistant",
     "homeFax", "businessFax", "otherFax", "pager", "radio".
    :type type: str or ~identity_directory_management.models.MicrosoftGraphPhoneType
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'language': {'key': 'language', 'type': 'str'},
        'number': {'key': 'number', 'type': 'str'},
        'region': {'key': 'region', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPhone, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.language = kwargs.get('language', None)
        self.number = kwargs.get('number', None)
        self.region = kwargs.get('region', None)
        self.type = kwargs.get('type', None)


class MicrosoftGraphPhysicalOfficeAddress(msrest.serialization.Model):
    """physicalOfficeAddress.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param city: The city.
    :type city: str
    :param country_or_region: The country or region. It's a free-format string value, for example,
     'United States'.
    :type country_or_region: str
    :param office_location: Office location such as building and office number for an
     organizational contact.
    :type office_location: str
    :param postal_code: The postal code.
    :type postal_code: str
    :param state: The state.
    :type state: str
    :param street: The street.
    :type street: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'city': {'key': 'city', 'type': 'str'},
        'country_or_region': {'key': 'countryOrRegion', 'type': 'str'},
        'office_location': {'key': 'officeLocation', 'type': 'str'},
        'postal_code': {'key': 'postalCode', 'type': 'str'},
        'state': {'key': 'state', 'type': 'str'},
        'street': {'key': 'street', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPhysicalOfficeAddress, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.city = kwargs.get('city', None)
        self.country_or_region = kwargs.get('country_or_region', None)
        self.office_location = kwargs.get('office_location', None)
        self.postal_code = kwargs.get('postal_code', None)
        self.state = kwargs.get('state', None)
        self.street = kwargs.get('street', None)


class MicrosoftGraphPrivacyProfile(msrest.serialization.Model):
    """privacyProfile.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param contact_email: A valid smtp email address for the privacy statement contact. Not
     required.
    :type contact_email: str
    :param statement_url: A valid URL format that begins with http:// or https://. Maximum length
     is 255 characters. The URL that directs to the company's privacy statement. Not required.
    :type statement_url: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'contact_email': {'key': 'contactEmail', 'type': 'str'},
        'statement_url': {'key': 'statementUrl', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPrivacyProfile, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.contact_email = kwargs.get('contact_email', None)
        self.statement_url = kwargs.get('statement_url', None)


class MicrosoftGraphProvisionedPlan(msrest.serialization.Model):
    """provisionedPlan.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param capability_status: For example, 'Enabled'.
    :type capability_status: str
    :param provisioning_status: For example, 'Success'.
    :type provisioning_status: str
    :param service: The name of the service; for example, 'AccessControlS2S'.
    :type service: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'provisioning_status': {'key': 'provisioningStatus', 'type': 'str'},
        'service': {'key': 'service', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphProvisionedPlan, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.provisioning_status = kwargs.get('provisioning_status', None)
        self.service = kwargs.get('service', None)


class MicrosoftGraphScopedRoleMembership(MicrosoftGraphEntity):
    """scopedRoleMembership.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param administrative_unit_id: Unique identifier for the administrative unit that the directory
     role is scoped to.
    :type administrative_unit_id: str
    :param role_id: Unique identifier for the directory role that the member is in.
    :type role_id: str
    :param role_member_info: identity.
    :type role_member_info: ~identity_directory_management.models.MicrosoftGraphIdentity
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'administrative_unit_id': {'key': 'administrativeUnitId', 'type': 'str'},
        'role_id': {'key': 'roleId', 'type': 'str'},
        'role_member_info': {'key': 'roleMemberInfo', 'type': 'MicrosoftGraphIdentity'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphScopedRoleMembership, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.administrative_unit_id = kwargs.get('administrative_unit_id', None)
        self.role_id = kwargs.get('role_id', None)
        self.role_member_info = kwargs.get('role_member_info', None)


class MicrosoftGraphServicePlanInfo(msrest.serialization.Model):
    """servicePlanInfo.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param applies_to: The object the service plan can be assigned to. Possible values:'User' -
     service plan can be assigned to individual users.'Company' - service plan can be assigned to
     the entire tenant.
    :type applies_to: str
    :param provisioning_status: The provisioning status of the service plan. Possible
     values:'Success' - Service is fully provisioned.'Disabled' - Service has been
     disabled.'PendingInput' - Service is not yet provisioned; awaiting service
     confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by
     administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has
     added a new service to the product SKU and it has not been activated in the tenant, yet.
    :type provisioning_status: str
    :param service_plan_id: The unique identifier of the service plan.
    :type service_plan_id: str
    :param service_plan_name: The name of the service plan.
    :type service_plan_name: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'applies_to': {'key': 'appliesTo', 'type': 'str'},
        'provisioning_status': {'key': 'provisioningStatus', 'type': 'str'},
        'service_plan_id': {'key': 'servicePlanId', 'type': 'str'},
        'service_plan_name': {'key': 'servicePlanName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphServicePlanInfo, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.applies_to = kwargs.get('applies_to', None)
        self.provisioning_status = kwargs.get('provisioning_status', None)
        self.service_plan_id = kwargs.get('service_plan_id', None)
        self.service_plan_name = kwargs.get('service_plan_name', None)


class MicrosoftGraphSubscribedSku(MicrosoftGraphEntity):
    """subscribedSku.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param applies_to: For example, 'User' or 'Company'.
    :type applies_to: str
    :param capability_status: Possible values are: Enabled, Warning, Suspended, Deleted, LockedOut.
    :type capability_status: str
    :param consumed_units: The number of licenses that have been assigned.
    :type consumed_units: int
    :param prepaid_units: licenseUnitsDetail.
    :type prepaid_units: ~identity_directory_management.models.MicrosoftGraphLicenseUnitsDetail
    :param service_plans: Information about the service plans that are available with the SKU. Not
     nullable.
    :type service_plans: list[~identity_directory_management.models.MicrosoftGraphServicePlanInfo]
    :param sku_id: The unique identifier (GUID) for the service SKU.
    :type sku_id: str
    :param sku_part_number: The SKU part number; for example: 'AAD_PREMIUM' or 'RMSBASIC'. To get a
     list of commercial subscriptions that an organization has acquired, see List subscribedSkus.
    :type sku_part_number: str
    """

    _validation = {
        'consumed_units': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'applies_to': {'key': 'appliesTo', 'type': 'str'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'consumed_units': {'key': 'consumedUnits', 'type': 'int'},
        'prepaid_units': {'key': 'prepaidUnits', 'type': 'MicrosoftGraphLicenseUnitsDetail'},
        'service_plans': {'key': 'servicePlans', 'type': '[MicrosoftGraphServicePlanInfo]'},
        'sku_id': {'key': 'skuId', 'type': 'str'},
        'sku_part_number': {'key': 'skuPartNumber', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphSubscribedSku, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.applies_to = kwargs.get('applies_to', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.consumed_units = kwargs.get('consumed_units', None)
        self.prepaid_units = kwargs.get('prepaid_units', None)
        self.service_plans = kwargs.get('service_plans', None)
        self.sku_id = kwargs.get('sku_id', None)
        self.sku_part_number = kwargs.get('sku_part_number', None)


class MicrosoftGraphVerifiedDomain(msrest.serialization.Model):
    """verifiedDomain.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param capabilities: For example, 'Email', 'OfficeCommunicationsOnline'.
    :type capabilities: str
    :param is_default: true if this is the default domain associated with the tenant; otherwise,
     false.
    :type is_default: bool
    :param is_initial: true if this is the initial domain associated with the tenant; otherwise,
     false.
    :type is_initial: bool
    :param name: The domain name; for example, 'contoso.onmicrosoft.com'.
    :type name: str
    :param type: For example, 'Managed'.
    :type type: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'capabilities': {'key': 'capabilities', 'type': 'str'},
        'is_default': {'key': 'isDefault', 'type': 'bool'},
        'is_initial': {'key': 'isInitial', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphVerifiedDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.capabilities = kwargs.get('capabilities', None)
        self.is_default = kwargs.get('is_default', None)
        self.is_initial = kwargs.get('is_initial', None)
        self.name = kwargs.get('name', None)
        self.type = kwargs.get('type', None)


class OdataError(msrest.serialization.Model):
    """OdataError.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param error: Required.
    :type error: ~identity_directory_management.models.OdataErrorMain
    """

    _validation = {
        'error': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'error': {'key': 'error', 'type': 'OdataErrorMain'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataError, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.error = kwargs['error']


class OdataErrorDetail(msrest.serialization.Model):
    """OdataErrorDetail.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param code: Required.
    :type code: str
    :param message: Required.
    :type message: str
    :param target:
    :type target: str
    """

    _validation = {
        'code': {'required': True},
        'message': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'code': {'key': 'code', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataErrorDetail, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.code = kwargs['code']
        self.message = kwargs['message']
        self.target = kwargs.get('target', None)


class OdataErrorMain(msrest.serialization.Model):
    """OdataErrorMain.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param code: Required.
    :type code: str
    :param message: Required.
    :type message: str
    :param target:
    :type target: str
    :param details:
    :type details: list[~identity_directory_management.models.OdataErrorDetail]
    :param innererror: The structure of this object is service-specific.
    :type innererror: dict[str, object]
    """

    _validation = {
        'code': {'required': True},
        'message': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'code': {'key': 'code', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'},
        'details': {'key': 'details', 'type': '[OdataErrorDetail]'},
        'innererror': {'key': 'innererror', 'type': '{object}'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataErrorMain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.code = kwargs['code']
        self.message = kwargs['message']
        self.target = kwargs.get('target', None)
        self.details = kwargs.get('details', None)
        self.innererror = kwargs.get('innererror', None)


class Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param disable_user_accounts:
    :type disable_user_accounts: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'disable_user_accounts': {'key': 'disableUserAccounts', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.disable_user_accounts = kwargs.get('disable_user_accounts', False)


class PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)

# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from azure.core.exceptions import HttpResponseError
import msrest.serialization


class CollectionOfAdministrativeUnit(msrest.serialization.Model):
    """Collection of administrativeUnit.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphAdministrativeUnit]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfAdministrativeUnit, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfContract(msrest.serialization.Model):
    """Collection of contract.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphContract]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphContract]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfContract, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDevice(msrest.serialization.Model):
    """Collection of device.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDevice]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDevice]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDevice, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject0(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject1(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject2(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject2, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject3(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject3, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject4(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject4, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject5(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject5, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject6(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject6, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject7(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject7, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject8(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject8, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryObject9(msrest.serialization.Model):
    """Collection of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryObject]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryObject9, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryRole(msrest.serialization.Model):
    """Collection of directoryRole.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRole]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryRole]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryRole, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDirectoryRoleTemplate(msrest.serialization.Model):
    """Collection of directoryRoleTemplate.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRoleTemplate]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDirectoryRoleTemplate]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDirectoryRoleTemplate, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomain(msrest.serialization.Model):
    """Collection of domain.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomain]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomain]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomainDnsRecord(msrest.serialization.Model):
    """Collection of domainDnsRecord.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomainDnsRecord, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfDomainDnsRecord0(msrest.serialization.Model):
    """Collection of domainDnsRecord.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfDomainDnsRecord0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension0(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfExtension1(msrest.serialization.Model):
    """Collection of extension.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphExtension]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfExtension1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject0(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject1(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject2(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject2, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject3(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject3, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject4(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject4, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject5(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject5, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject6(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject6, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject7(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject7, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfLinksOfDirectoryObject8(msrest.serialization.Model):
    """Collection of links of directoryObject.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[str]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[str]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfLinksOfDirectoryObject8, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfOrganization(msrest.serialization.Model):
    """Collection of organization.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphOrganization]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphOrganization]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfOrganization, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfOrgContact(msrest.serialization.Model):
    """Collection of orgContact.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphOrgContact]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphOrgContact]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfOrgContact, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership0(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership0, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfScopedRoleMembership1(msrest.serialization.Model):
    """Collection of scopedRoleMembership.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfScopedRoleMembership1, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class CollectionOfSubscribedSku(msrest.serialization.Model):
    """Collection of subscribedSku.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param value:
    :type value: list[~identity_directory_management.models.MicrosoftGraphSubscribedSku]
    :param odata_next_link:
    :type odata_next_link: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'value': {'key': 'value', 'type': '[MicrosoftGraphSubscribedSku]'},
        'odata_next_link': {'key': '@odata\\.nextLink', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(CollectionOfSubscribedSku, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.value = kwargs.get('value', None)
        self.odata_next_link = kwargs.get('odata_next_link', None)


class MicrosoftGraphEntity(msrest.serialization.Model):
    """entity.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param id: Read-only.
    :type id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'id': {'key': 'id', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphEntity, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.id = kwargs.get('id', None)


class MicrosoftGraphDirectoryObject(MicrosoftGraphEntity):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryObject, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.deleted_date_time = kwargs.get('deleted_date_time', None)


class MicrosoftGraphAdministrativeUnit(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: An optional description for the administrative unit.
    :type description: str
    :param display_name: Display name for the administrative unit.
    :type display_name: str
    :param visibility: Controls whether the adminstrative unit and its members are hidden or
     public. Can be set to HiddenMembership or Public. If not set, default behavior is Public. When
     set to HiddenMembership, only members of the administrative unit can list other members of the
     adminstrative unit.
    :type visibility: str
    :param members: Users and groups that are members of this Adminsitrative Unit. HTTP Methods:
     GET (list members), POST (add members), DELETE (remove members).
    :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param scoped_role_members: Scoped-role members of this Administrative Unit.  HTTP Methods: GET
     (list scopedRoleMemberships), POST (add scopedRoleMembership), DELETE (remove
     scopedRoleMembership).
    :type scoped_role_members:
     list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    :param extensions:
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'visibility': {'key': 'visibility', 'type': 'str'},
        'members': {'key': 'members', 'type': '[MicrosoftGraphDirectoryObject]'},
        'scoped_role_members': {'key': 'scopedRoleMembers', 'type': '[MicrosoftGraphScopedRoleMembership]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAdministrativeUnit, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)
        self.visibility = kwargs.get('visibility', None)
        self.members = kwargs.get('members', None)
        self.scoped_role_members = kwargs.get('scoped_role_members', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphAlternativeSecurityId(msrest.serialization.Model):
    """alternativeSecurityId.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param identity_provider: For internal use only.
    :type identity_provider: str
    :param key: For internal use only.
    :type key: bytes
    :param type: For internal use only.
    :type type: int
    """

    _validation = {
        'type': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'identity_provider': {'key': 'identityProvider', 'type': 'str'},
        'key': {'key': 'key', 'type': 'base64'},
        'type': {'key': 'type', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAlternativeSecurityId, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.identity_provider = kwargs.get('identity_provider', None)
        self.key = kwargs.get('key', None)
        self.type = kwargs.get('type', None)


class MicrosoftGraphAssignedPlan(msrest.serialization.Model):
    """assignedPlan.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param assigned_date_time: The date and time at which the plan was assigned; for example:
     2013-01-02T19:32:30Z. The Timestamp type represents date and time information using ISO 8601
     format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like
     this: '2014-01-01T00:00:00Z'.
    :type assigned_date_time: ~datetime.datetime
    :param capability_status: For example, 'Enabled'.
    :type capability_status: str
    :param service: The name of the service; for example, 'Exchange'.
    :type service: str
    :param service_plan_id: A GUID that identifies the service plan.
    :type service_plan_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'assigned_date_time': {'key': 'assignedDateTime', 'type': 'iso-8601'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'service': {'key': 'service', 'type': 'str'},
        'service_plan_id': {'key': 'servicePlanId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphAssignedPlan, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.assigned_date_time = kwargs.get('assigned_date_time', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.service = kwargs.get('service', None)
        self.service_plan_id = kwargs.get('service_plan_id', None)


class MicrosoftGraphCertificateAuthority(msrest.serialization.Model):
    """certificateAuthority.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param certificate: Required. The base64 encoded string representing the public certificate.
    :type certificate: bytes
    :param certificate_revocation_list_url: The URL of the certificate revocation list.
    :type certificate_revocation_list_url: str
    :param delta_certificate_revocation_list_url: The URL contains the list of all revoked
     certificates since the last time a full certificate revocaton list was created.
    :type delta_certificate_revocation_list_url: str
    :param is_root_authority: Required. true if the trusted certificate is a root authority, false
     if the trusted certificate is an intermediate authority.
    :type is_root_authority: bool
    :param issuer: The issuer of the certificate, calculated from the certificate value. Read-only.
    :type issuer: str
    :param issuer_ski: The subject key identifier of the certificate, calculated from the
     certificate value. Read-only.
    :type issuer_ski: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'certificate': {'key': 'certificate', 'type': 'base64'},
        'certificate_revocation_list_url': {'key': 'certificateRevocationListUrl', 'type': 'str'},
        'delta_certificate_revocation_list_url': {'key': 'deltaCertificateRevocationListUrl', 'type': 'str'},
        'is_root_authority': {'key': 'isRootAuthority', 'type': 'bool'},
        'issuer': {'key': 'issuer', 'type': 'str'},
        'issuer_ski': {'key': 'issuerSki', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphCertificateAuthority, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.certificate = kwargs.get('certificate', None)
        self.certificate_revocation_list_url = kwargs.get('certificate_revocation_list_url', None)
        self.delta_certificate_revocation_list_url = kwargs.get('delta_certificate_revocation_list_url', None)
        self.is_root_authority = kwargs.get('is_root_authority', None)
        self.issuer = kwargs.get('issuer', None)
        self.issuer_ski = kwargs.get('issuer_ski', None)


class MicrosoftGraphCertificateBasedAuthConfiguration(MicrosoftGraphEntity):
    """certificateBasedAuthConfiguration.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param certificate_authorities: Collection of certificate authorities which creates a trusted
     certificate chain.
    :type certificate_authorities:
     list[~identity_directory_management.models.MicrosoftGraphCertificateAuthority]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'certificate_authorities': {'key': 'certificateAuthorities', 'type': '[MicrosoftGraphCertificateAuthority]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphCertificateBasedAuthConfiguration, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.certificate_authorities = kwargs.get('certificate_authorities', None)


class MicrosoftGraphContract(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param contract_type: Type of contract.Possible values are: SyndicationPartner - Partner that
     exclusively resells and manages O365 and Intune for this customer. They resell and support
     their customers. BreadthPartner - Partner has the ability to provide administrative support for
     this customer. However, the partner is not allowed to resell to the customer.ResellerPartner -
     Partner that is similar to a syndication partner, except that the partner doesn’t have
     exclusive access to a tenant. In the syndication case, the customer cannot buy additional
     direct subscriptions from Microsoft or from other partners.
    :type contract_type: str
    :param customer_id: The unique identifier for the customer tenant referenced by this
     partnership. Corresponds to the id property of the customer tenant's organization resource.
    :type customer_id: str
    :param default_domain_name: A copy of the customer tenant's default domain name. The copy is
     made when the partnership with the customer is established. It is not automatically updated if
     the customer tenant's default domain name changes.
    :type default_domain_name: str
    :param display_name: A copy of the customer tenant's display name. The copy is made when the
     partnership with the customer is established. It is not automatically updated if the customer
     tenant's display name changes.
    :type display_name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'contract_type': {'key': 'contractType', 'type': 'str'},
        'customer_id': {'key': 'customerId', 'type': 'str'},
        'default_domain_name': {'key': 'defaultDomainName', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphContract, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.contract_type = kwargs.get('contract_type', None)
        self.customer_id = kwargs.get('customer_id', None)
        self.default_domain_name = kwargs.get('default_domain_name', None)
        self.display_name = kwargs.get('display_name', None)


class MicrosoftGraphDevice(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param account_enabled: true if the account is enabled; otherwise, false. Required.
    :type account_enabled: bool
    :param alternative_security_ids: For internal use only. Not nullable.
    :type alternative_security_ids:
     list[~identity_directory_management.models.MicrosoftGraphAlternativeSecurityId]
    :param approximate_last_sign_in_date_time: The timestamp type represents date and time
     information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan
     1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.
    :type approximate_last_sign_in_date_time: ~datetime.datetime
    :param compliance_expiration_date_time: The timestamp when the device is no longer deemed
     compliant. The timestamp type represents date and time information using ISO 8601 format and is
     always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this:
     '2014-01-01T00:00:00Z'. Read-only.
    :type compliance_expiration_date_time: ~datetime.datetime
    :param device_id: Unique identifier set by Azure Device Registration Service at the time of
     registration.
    :type device_id: str
    :param device_metadata: For interal use only. Set to null.
    :type device_metadata: str
    :param device_version: For interal use only.
    :type device_version: int
    :param display_name: The display name for the device. Required.
    :type display_name: str
    :param is_compliant: true if the device complies with Mobile Device Management (MDM) policies;
     otherwise, false. Read-only. This can only be updated by Intune for any device OS type or by an
     approved MDM app for Windows OS devices.
    :type is_compliant: bool
    :param is_managed: true if the device is managed by a Mobile Device Management (MDM) app;
     otherwise, false. This can only be updated by Intune for any device OS type or by an approved
     MDM app for Windows OS devices.
    :type is_managed: bool
    :param mdm_app_id: Application identifier used to register device into MDM. Read-only. Supports
     $filter.
    :type mdm_app_id: str
    :param on_premises_last_sync_date_time: The last time at which the object was synced with the
     on-premises directory.The Timestamp type represents date and time information using ISO 8601
     format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like
     this: '2014-01-01T00:00:00Z' Read-only.
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;
     false if this object was originally synced from an on-premises directory but is no longer
     synced; null if this object has never been synced from an on-premises directory (default).
     Read-only.
    :type on_premises_sync_enabled: bool
    :param operating_system: The type of operating system on the device. Required.
    :type operating_system: str
    :param operating_system_version: The version of the operating system on the device. Required.
    :type operating_system_version: str
    :param physical_ids: For interal use only. Not nullable.
    :type physical_ids: list[str]
    :param profile_type: The profile type of the device. Possible values:RegisteredDevice
     (default)SecureVMPrinterSharedIoT.
    :type profile_type: str
    :param system_labels: List of labels applied to the device by the system.
    :type system_labels: list[str]
    :param trust_type: Type of trust for the joined device. Read-only. Possible values: Workplace -
     indicates bring your own personal devicesAzureAd - Cloud only joined devicesServerAd - on-
     premises domain joined devices joined to Azure AD. For more details, see Introduction to device
     management in Azure Active Directory.
    :type trust_type: str
    :param member_of: Groups that this group is a member of. HTTP Methods: GET (supported for all
     groups). Read-only. Nullable.
    :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param registered_owners: The user that cloud joined the device or registered their personal
     device. The registered owner is set at the time of registration. Currently, there can be only
     one owner. Read-only. Nullable.
    :type registered_owners:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param registered_users: Collection of registered users of the device. For cloud joined devices
     and registered personal devices, registered users are set to the same value as registered
     owners at the time of registration. Read-only. Nullable.
    :type registered_users:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param transitive_member_of:
    :type transitive_member_of:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param extensions: The collection of open extensions defined for the device. Read-only.
     Nullable.
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _validation = {
        'device_version': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'account_enabled': {'key': 'accountEnabled', 'type': 'bool'},
        'alternative_security_ids': {'key': 'alternativeSecurityIds', 'type': '[MicrosoftGraphAlternativeSecurityId]'},
        'approximate_last_sign_in_date_time': {'key': 'approximateLastSignInDateTime', 'type': 'iso-8601'},
        'compliance_expiration_date_time': {'key': 'complianceExpirationDateTime', 'type': 'iso-8601'},
        'device_id': {'key': 'deviceId', 'type': 'str'},
        'device_metadata': {'key': 'deviceMetadata', 'type': 'str'},
        'device_version': {'key': 'deviceVersion', 'type': 'int'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'is_compliant': {'key': 'isCompliant', 'type': 'bool'},
        'is_managed': {'key': 'isManaged', 'type': 'bool'},
        'mdm_app_id': {'key': 'mdmAppId', 'type': 'str'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'operating_system': {'key': 'operatingSystem', 'type': 'str'},
        'operating_system_version': {'key': 'operatingSystemVersion', 'type': 'str'},
        'physical_ids': {'key': 'physicalIds', 'type': '[str]'},
        'profile_type': {'key': 'profileType', 'type': 'str'},
        'system_labels': {'key': 'systemLabels', 'type': '[str]'},
        'trust_type': {'key': 'trustType', 'type': 'str'},
        'member_of': {'key': 'memberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'registered_owners': {'key': 'registeredOwners', 'type': '[MicrosoftGraphDirectoryObject]'},
        'registered_users': {'key': 'registeredUsers', 'type': '[MicrosoftGraphDirectoryObject]'},
        'transitive_member_of': {'key': 'transitiveMemberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDevice, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.account_enabled = kwargs.get('account_enabled', None)
        self.alternative_security_ids = kwargs.get('alternative_security_ids', None)
        self.approximate_last_sign_in_date_time = kwargs.get('approximate_last_sign_in_date_time', None)
        self.compliance_expiration_date_time = kwargs.get('compliance_expiration_date_time', None)
        self.device_id = kwargs.get('device_id', None)
        self.device_metadata = kwargs.get('device_metadata', None)
        self.device_version = kwargs.get('device_version', None)
        self.display_name = kwargs.get('display_name', None)
        self.is_compliant = kwargs.get('is_compliant', None)
        self.is_managed = kwargs.get('is_managed', None)
        self.mdm_app_id = kwargs.get('mdm_app_id', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.operating_system = kwargs.get('operating_system', None)
        self.operating_system_version = kwargs.get('operating_system_version', None)
        self.physical_ids = kwargs.get('physical_ids', None)
        self.profile_type = kwargs.get('profile_type', None)
        self.system_labels = kwargs.get('system_labels', None)
        self.trust_type = kwargs.get('trust_type', None)
        self.member_of = kwargs.get('member_of', None)
        self.registered_owners = kwargs.get('registered_owners', None)
        self.registered_users = kwargs.get('registered_users', None)
        self.transitive_member_of = kwargs.get('transitive_member_of', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphDirectory(MicrosoftGraphEntity):
    """directory.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param administrative_units:
    :type administrative_units:
     list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]
    :param deleted_items: Recently deleted items. Read-only. Nullable.
    :type deleted_items: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'administrative_units': {'key': 'administrativeUnits', 'type': '[MicrosoftGraphAdministrativeUnit]'},
        'deleted_items': {'key': 'deletedItems', 'type': '[MicrosoftGraphDirectoryObject]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectory, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.administrative_units = kwargs.get('administrative_units', None)
        self.deleted_items = kwargs.get('deleted_items', None)


class MicrosoftGraphDirectoryRole(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: The description for the directory role. Read-only.
    :type description: str
    :param display_name: The display name for the directory role. Read-only.
    :type display_name: str
    :param role_template_id: The id of the directoryRoleTemplate that this role is based on. The
     property must be specified when activating a directory role in a tenant with a POST operation.
     After the directory role has been activated, the property is read only.
    :type role_template_id: str
    :param members: Users that are members of this directory role. HTTP Methods: GET, POST, DELETE.
     Read-only. Nullable.
    :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param scoped_members:
    :type scoped_members:
     list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'role_template_id': {'key': 'roleTemplateId', 'type': 'str'},
        'members': {'key': 'members', 'type': '[MicrosoftGraphDirectoryObject]'},
        'scoped_members': {'key': 'scopedMembers', 'type': '[MicrosoftGraphScopedRoleMembership]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryRole, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)
        self.role_template_id = kwargs.get('role_template_id', None)
        self.members = kwargs.get('members', None)
        self.scoped_members = kwargs.get('scoped_members', None)


class MicrosoftGraphDirectoryRoleTemplate(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param description: The description to set for the directory role. Read-only.
    :type description: str
    :param display_name: The display name to set for the directory role. Read-only.
    :type display_name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'description': {'key': 'description', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDirectoryRoleTemplate, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.description = kwargs.get('description', None)
        self.display_name = kwargs.get('display_name', None)


class MicrosoftGraphDomain(MicrosoftGraphEntity):
    """domain.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param authentication_type: Indicates the configured authentication type for the domain. The
     value is either Managed or Federated. Managed indicates a cloud managed domain where Azure AD
     performs user authentication.Federated indicates authentication is federated with an identity
     provider such as the tenant's on-premises Active Directory via Active Directory Federation
     Services. This property is read-only and is not nullable.
    :type authentication_type: str
    :param availability_status: This property is always null except when the verify action is used.
     When the verify action is used, a domain entity is returned in the response. The
     availabilityStatus property of the domain entity in the response is either AvailableImmediately
     or EmailVerifiedDomainTakeoverScheduled.
    :type availability_status: str
    :param is_admin_managed: The value of the property is false if the DNS record management of the
     domain has been delegated to Microsoft 365. Otherwise, the value is true. Not nullable.
    :type is_admin_managed: bool
    :param is_default: True if this is the default domain that is used for user creation. There is
     only one default domain per company. Not nullable.
    :type is_default: bool
    :param is_initial: True if this is the initial domain created by Microsoft Online Services
     (companyname.onmicrosoft.com). There is only one initial domain per company. Not nullable.
    :type is_initial: bool
    :param is_root: True if the domain is a verified root domain. Otherwise, false if the domain is
     a subdomain or unverified. Not nullable.
    :type is_root: bool
    :param is_verified: True if the domain has completed domain ownership verification. Not
     nullable.
    :type is_verified: bool
    :param manufacturer:
    :type manufacturer: str
    :param model:
    :type model: str
    :param password_notification_window_in_days: Specifies the number of days before a user
     receives notification that their password will expire. If the property is not set, a default
     value of 14 days will be used.
    :type password_notification_window_in_days: int
    :param password_validity_period_in_days: Specifies the length of time that a password is valid
     before it must be changed. If the property is not set, a default value of 90 days will be used.
    :type password_validity_period_in_days: int
    :param state: domainState.
    :type state: ~identity_directory_management.models.MicrosoftGraphDomainState
    :param supported_services: The capabilities assigned to the domain.Can include 0, 1 or more of
     following values: Email, Sharepoint, EmailInternalRelayOnly, OfficeCommunicationsOnline,
     SharePointDefaultDomain, FullRedelegation, SharePointPublic, OrgIdAuthentication, Yammer,
     Intune The values which you can add/remove using Graph API include: Email,
     OfficeCommunicationsOnline, YammerNot nullable.
    :type supported_services: list[str]
    :param domain_name_references: Read-only, Nullable.
    :type domain_name_references:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param service_configuration_records: DNS records the customer adds to the DNS zone file of the
     domain before the domain can be used by Microsoft Online services.Read-only, Nullable.
    :type service_configuration_records:
     list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    :param verification_dns_records: DNS records that the customer adds to the DNS zone file of the
     domain before the customer can complete domain ownership verification with Azure AD.Read-only,
     Nullable.
    :type verification_dns_records:
     list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]
    """

    _validation = {
        'password_notification_window_in_days': {'maximum': 2147483647, 'minimum': -2147483648},
        'password_validity_period_in_days': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'authentication_type': {'key': 'authenticationType', 'type': 'str'},
        'availability_status': {'key': 'availabilityStatus', 'type': 'str'},
        'is_admin_managed': {'key': 'isAdminManaged', 'type': 'bool'},
        'is_default': {'key': 'isDefault', 'type': 'bool'},
        'is_initial': {'key': 'isInitial', 'type': 'bool'},
        'is_root': {'key': 'isRoot', 'type': 'bool'},
        'is_verified': {'key': 'isVerified', 'type': 'bool'},
        'manufacturer': {'key': 'manufacturer', 'type': 'str'},
        'model': {'key': 'model', 'type': 'str'},
        'password_notification_window_in_days': {'key': 'passwordNotificationWindowInDays', 'type': 'int'},
        'password_validity_period_in_days': {'key': 'passwordValidityPeriodInDays', 'type': 'int'},
        'state': {'key': 'state', 'type': 'MicrosoftGraphDomainState'},
        'supported_services': {'key': 'supportedServices', 'type': '[str]'},
        'domain_name_references': {'key': 'domainNameReferences', 'type': '[MicrosoftGraphDirectoryObject]'},
        'service_configuration_records': {'key': 'serviceConfigurationRecords', 'type': '[MicrosoftGraphDomainDnsRecord]'},
        'verification_dns_records': {'key': 'verificationDnsRecords', 'type': '[MicrosoftGraphDomainDnsRecord]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.authentication_type = kwargs.get('authentication_type', None)
        self.availability_status = kwargs.get('availability_status', None)
        self.is_admin_managed = kwargs.get('is_admin_managed', None)
        self.is_default = kwargs.get('is_default', None)
        self.is_initial = kwargs.get('is_initial', None)
        self.is_root = kwargs.get('is_root', None)
        self.is_verified = kwargs.get('is_verified', None)
        self.manufacturer = kwargs.get('manufacturer', None)
        self.model = kwargs.get('model', None)
        self.password_notification_window_in_days = kwargs.get('password_notification_window_in_days', None)
        self.password_validity_period_in_days = kwargs.get('password_validity_period_in_days', None)
        self.state = kwargs.get('state', None)
        self.supported_services = kwargs.get('supported_services', None)
        self.domain_name_references = kwargs.get('domain_name_references', None)
        self.service_configuration_records = kwargs.get('service_configuration_records', None)
        self.verification_dns_records = kwargs.get('verification_dns_records', None)


class MicrosoftGraphDomainDnsRecord(MicrosoftGraphEntity):
    """domainDnsRecord.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_optional: If false, this record must be configured by the customer at the DNS host
     for Microsoft Online Services to operate correctly with the domain.
    :type is_optional: bool
    :param label: Value used when configuring the name of the DNS record at the DNS host.
    :type label: str
    :param record_type: Indicates what type of DNS record this entity represents.The value can be
     one of the following: CName, Mx, Srv, TxtKey.
    :type record_type: str
    :param supported_service: Microsoft Online Service or feature that has a dependency on this DNS
     record.Can be one of the following values: null, Email, Sharepoint, EmailInternalRelayOnly,
     OfficeCommunicationsOnline, SharePointDefaultDomain, FullRedelegation, SharePointPublic,
     OrgIdAuthentication, Yammer, Intune.
    :type supported_service: str
    :param ttl: Value to use when configuring the time-to-live (ttl) property of the DNS record at
     the DNS host. Not nullable.
    :type ttl: int
    """

    _validation = {
        'ttl': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_optional': {'key': 'isOptional', 'type': 'bool'},
        'label': {'key': 'label', 'type': 'str'},
        'record_type': {'key': 'recordType', 'type': 'str'},
        'supported_service': {'key': 'supportedService', 'type': 'str'},
        'ttl': {'key': 'ttl', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomainDnsRecord, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_optional = kwargs.get('is_optional', None)
        self.label = kwargs.get('label', None)
        self.record_type = kwargs.get('record_type', None)
        self.supported_service = kwargs.get('supported_service', None)
        self.ttl = kwargs.get('ttl', None)


class MicrosoftGraphDomainState(msrest.serialization.Model):
    """domainState.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param last_action_date_time: Timestamp for when the last activity occurred. The value is
     updated when an operation is scheduled, the asynchronous task starts, and when the operation
     completes.
    :type last_action_date_time: ~datetime.datetime
    :param operation: Type of asynchronous operation. The values can be ForceDelete or
     Verification.
    :type operation: str
    :param status: Current status of the operation.  Scheduled - Operation has been scheduled but
     has not started.  InProgress - Task has started and is in progress.  Failed - Operation has
     failed.
    :type status: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'last_action_date_time': {'key': 'lastActionDateTime', 'type': 'iso-8601'},
        'operation': {'key': 'operation', 'type': 'str'},
        'status': {'key': 'status', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphDomainState, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.last_action_date_time = kwargs.get('last_action_date_time', None)
        self.operation = kwargs.get('operation', None)
        self.status = kwargs.get('status', None)


class MicrosoftGraphExtension(MicrosoftGraphEntity):
    """extension.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphExtension, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)


class MicrosoftGraphExtensionProperty(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param app_display_name: Display name of the application object on which this extension
     property is defined. Read-only.
    :type app_display_name: str
    :param data_type: Specifies the data type of the value the extension property can hold.
     Following values are supported. Not nullable. Binary - 256 bytes maximumBooleanDateTime - Must
     be specified in ISO 8601 format. Will be stored in UTC.Integer - 32-bit value.LargeInteger -
     64-bit value.String - 256 characters maximum.
    :type data_type: str
    :param is_synced_from_on_premises: Indicates if this extension property was sycned from
     onpremises directory using Azure AD Connect. Read-only.
    :type is_synced_from_on_premises: bool
    :param name: Name of the extension property. Not nullable.
    :type name: str
    :param target_objects: Following values are supported. Not nullable.
     UserGroupOrganizationDeviceApplication.
    :type target_objects: list[str]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'app_display_name': {'key': 'appDisplayName', 'type': 'str'},
        'data_type': {'key': 'dataType', 'type': 'str'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'target_objects': {'key': 'targetObjects', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphExtensionProperty, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.app_display_name = kwargs.get('app_display_name', None)
        self.data_type = kwargs.get('data_type', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', None)
        self.name = kwargs.get('name', None)
        self.target_objects = kwargs.get('target_objects', None)


class MicrosoftGraphIdentity(msrest.serialization.Model):
    """identity.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param display_name: The identity's display name. Note that this may not always be available or
     up to date. For example, if a user changes their display name, the API may show the new value
     in a future response, but the items associated with the user won't show up as having changed
     when using delta.
    :type display_name: str
    :param id: Unique identifier for the identity.
    :type id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphIdentity, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.display_name = kwargs.get('display_name', None)
        self.id = kwargs.get('id', None)


class MicrosoftGraphLicenseUnitsDetail(msrest.serialization.Model):
    """licenseUnitsDetail.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param enabled: The number of units that are enabled.
    :type enabled: int
    :param suspended: The number of units that are suspended.
    :type suspended: int
    :param warning: The number of units that are in warning status.
    :type warning: int
    """

    _validation = {
        'enabled': {'maximum': 2147483647, 'minimum': -2147483648},
        'suspended': {'maximum': 2147483647, 'minimum': -2147483648},
        'warning': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'enabled': {'key': 'enabled', 'type': 'int'},
        'suspended': {'key': 'suspended', 'type': 'int'},
        'warning': {'key': 'warning', 'type': 'int'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphLicenseUnitsDetail, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.enabled = kwargs.get('enabled', None)
        self.suspended = kwargs.get('suspended', None)
        self.warning = kwargs.get('warning', None)


class MicrosoftGraphOnPremisesProvisioningError(msrest.serialization.Model):
    """onPremisesProvisioningError.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param category: Category of the provisioning error. Note: Currently, there is only one
     possible value. Possible value: PropertyConflict - indicates a property value is not unique.
     Other objects contain the same value for the property.
    :type category: str
    :param occurred_date_time: The date and time at which the error occurred.
    :type occurred_date_time: ~datetime.datetime
    :param property_causing_error: Name of the directory property causing the error. Current
     possible values: UserPrincipalName or ProxyAddress.
    :type property_causing_error: str
    :param value: Value of the property causing the error.
    :type value: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'category': {'key': 'category', 'type': 'str'},
        'occurred_date_time': {'key': 'occurredDateTime', 'type': 'iso-8601'},
        'property_causing_error': {'key': 'propertyCausingError', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOnPremisesProvisioningError, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.category = kwargs.get('category', None)
        self.occurred_date_time = kwargs.get('occurred_date_time', None)
        self.property_causing_error = kwargs.get('property_causing_error', None)
        self.value = kwargs.get('value', None)


class MicrosoftGraphOrganization(MicrosoftGraphDirectoryObject):
    """The organization resource represents an instance of global settings and resources which operate and are provisioned at the tenant-level.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param assigned_plans: The collection of service plans associated with the tenant. Not
     nullable.
    :type assigned_plans: list[~identity_directory_management.models.MicrosoftGraphAssignedPlan]
    :param business_phones: Telephone number for the organization. NOTE: Although this is a string
     collection, only one number can be set for this property.
    :type business_phones: list[str]
    :param city: City name of the address for the organization.
    :type city: str
    :param country: Country/region name of the address for the organization.
    :type country: str
    :param country_letter_code: Country/region abbreviation for the organization.
    :type country_letter_code: str
    :param created_date_time: Timestamp of when the organization was created. The value cannot be
     modified and is automatically populated when the organization is created. The Timestamp type
     represents date and time information using ISO 8601 format and is always in UTC time. For
     example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.
    :type created_date_time: ~datetime.datetime
    :param display_name: The display name for the tenant.
    :type display_name: str
    :param marketing_notification_emails: Not nullable.
    :type marketing_notification_emails: list[str]
    :param on_premises_last_sync_date_time: The time and date at which the tenant was last synced
     with the on-premise directory. The Timestamp type represents date and time information using
     ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look
     like this: '2014-01-01T00:00:00Z'. Read-only.
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;
     false if this object was originally synced from an on-premises directory but is no longer
     synced; null if this object has never been synced from an on-premises directory (default).
    :type on_premises_sync_enabled: bool
    :param postal_code: Postal code of the address for the organization.
    :type postal_code: str
    :param preferred_language: The preferred language for the organization. Should follow ISO 639-1
     Code; for example 'en'.
    :type preferred_language: str
    :param privacy_profile: privacyProfile.
    :type privacy_profile: ~identity_directory_management.models.MicrosoftGraphPrivacyProfile
    :param provisioned_plans: Not nullable.
    :type provisioned_plans:
     list[~identity_directory_management.models.MicrosoftGraphProvisionedPlan]
    :param security_compliance_notification_mails:
    :type security_compliance_notification_mails: list[str]
    :param security_compliance_notification_phones:
    :type security_compliance_notification_phones: list[str]
    :param state: State name of the address for the organization.
    :type state: str
    :param street: Street name of the address for organization.
    :type street: str
    :param technical_notification_mails: Not nullable.
    :type technical_notification_mails: list[str]
    :param tenant_type:
    :type tenant_type: str
    :param verified_domains: The collection of domains associated with this tenant. Not nullable.
    :type verified_domains:
     list[~identity_directory_management.models.MicrosoftGraphVerifiedDomain]
    :param mobile_device_management_authority:  Possible values include: "unknown", "intune",
     "sccm", "office365".
    :type mobile_device_management_authority: str or
     ~identity_directory_management.models.MicrosoftGraphMdmAuthority
    :param certificate_based_auth_configuration: Navigation property to manage certificate-based
     authentication configuration. Only a single instance of certificateBasedAuthConfiguration can
     be created in the collection.
    :type certificate_based_auth_configuration:
     list[~identity_directory_management.models.MicrosoftGraphCertificateBasedAuthConfiguration]
    :param extensions: The collection of open extensions defined for the organization. Read-only.
     Nullable.
    :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'assigned_plans': {'key': 'assignedPlans', 'type': '[MicrosoftGraphAssignedPlan]'},
        'business_phones': {'key': 'businessPhones', 'type': '[str]'},
        'city': {'key': 'city', 'type': 'str'},
        'country': {'key': 'country', 'type': 'str'},
        'country_letter_code': {'key': 'countryLetterCode', 'type': 'str'},
        'created_date_time': {'key': 'createdDateTime', 'type': 'iso-8601'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'marketing_notification_emails': {'key': 'marketingNotificationEmails', 'type': '[str]'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'postal_code': {'key': 'postalCode', 'type': 'str'},
        'preferred_language': {'key': 'preferredLanguage', 'type': 'str'},
        'privacy_profile': {'key': 'privacyProfile', 'type': 'MicrosoftGraphPrivacyProfile'},
        'provisioned_plans': {'key': 'provisionedPlans', 'type': '[MicrosoftGraphProvisionedPlan]'},
        'security_compliance_notification_mails': {'key': 'securityComplianceNotificationMails', 'type': '[str]'},
        'security_compliance_notification_phones': {'key': 'securityComplianceNotificationPhones', 'type': '[str]'},
        'state': {'key': 'state', 'type': 'str'},
        'street': {'key': 'street', 'type': 'str'},
        'technical_notification_mails': {'key': 'technicalNotificationMails', 'type': '[str]'},
        'tenant_type': {'key': 'tenantType', 'type': 'str'},
        'verified_domains': {'key': 'verifiedDomains', 'type': '[MicrosoftGraphVerifiedDomain]'},
        'mobile_device_management_authority': {'key': 'mobileDeviceManagementAuthority', 'type': 'str'},
        'certificate_based_auth_configuration': {'key': 'certificateBasedAuthConfiguration', 'type': '[MicrosoftGraphCertificateBasedAuthConfiguration]'},
        'extensions': {'key': 'extensions', 'type': '[MicrosoftGraphExtension]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOrganization, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.assigned_plans = kwargs.get('assigned_plans', None)
        self.business_phones = kwargs.get('business_phones', None)
        self.city = kwargs.get('city', None)
        self.country = kwargs.get('country', None)
        self.country_letter_code = kwargs.get('country_letter_code', None)
        self.created_date_time = kwargs.get('created_date_time', None)
        self.display_name = kwargs.get('display_name', None)
        self.marketing_notification_emails = kwargs.get('marketing_notification_emails', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.postal_code = kwargs.get('postal_code', None)
        self.preferred_language = kwargs.get('preferred_language', None)
        self.privacy_profile = kwargs.get('privacy_profile', None)
        self.provisioned_plans = kwargs.get('provisioned_plans', None)
        self.security_compliance_notification_mails = kwargs.get('security_compliance_notification_mails', None)
        self.security_compliance_notification_phones = kwargs.get('security_compliance_notification_phones', None)
        self.state = kwargs.get('state', None)
        self.street = kwargs.get('street', None)
        self.technical_notification_mails = kwargs.get('technical_notification_mails', None)
        self.tenant_type = kwargs.get('tenant_type', None)
        self.verified_domains = kwargs.get('verified_domains', None)
        self.mobile_device_management_authority = kwargs.get('mobile_device_management_authority', None)
        self.certificate_based_auth_configuration = kwargs.get('certificate_based_auth_configuration', None)
        self.extensions = kwargs.get('extensions', None)


class MicrosoftGraphOrgContact(MicrosoftGraphDirectoryObject):
    """Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.

    :param id: Read-only.
    :type id: str
    :param deleted_date_time:
    :type deleted_date_time: ~datetime.datetime
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param addresses:
    :type addresses:
     list[~identity_directory_management.models.MicrosoftGraphPhysicalOfficeAddress]
    :param company_name:
    :type company_name: str
    :param department:
    :type department: str
    :param display_name:
    :type display_name: str
    :param given_name:
    :type given_name: str
    :param job_title:
    :type job_title: str
    :param mail:
    :type mail: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_premises_last_sync_date_time:
    :type on_premises_last_sync_date_time: ~datetime.datetime
    :param on_premises_provisioning_errors:
    :type on_premises_provisioning_errors:
     list[~identity_directory_management.models.MicrosoftGraphOnPremisesProvisioningError]
    :param on_premises_sync_enabled:
    :type on_premises_sync_enabled: bool
    :param phones:
    :type phones: list[~identity_directory_management.models.MicrosoftGraphPhone]
    :param proxy_addresses:
    :type proxy_addresses: list[str]
    :param surname:
    :type surname: str
    :param direct_reports:
    :type direct_reports: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param manager: Represents an Azure Active Directory object. The directoryObject type is the
     base type for many other directory entity types.
    :type manager: ~identity_directory_management.models.MicrosoftGraphDirectoryObject
    :param member_of:
    :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    :param transitive_member_of:
    :type transitive_member_of:
     list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'deleted_date_time': {'key': 'deletedDateTime', 'type': 'iso-8601'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'addresses': {'key': 'addresses', 'type': '[MicrosoftGraphPhysicalOfficeAddress]'},
        'company_name': {'key': 'companyName', 'type': 'str'},
        'department': {'key': 'department', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'given_name': {'key': 'givenName', 'type': 'str'},
        'job_title': {'key': 'jobTitle', 'type': 'str'},
        'mail': {'key': 'mail', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_premises_last_sync_date_time': {'key': 'onPremisesLastSyncDateTime', 'type': 'iso-8601'},
        'on_premises_provisioning_errors': {'key': 'onPremisesProvisioningErrors', 'type': '[MicrosoftGraphOnPremisesProvisioningError]'},
        'on_premises_sync_enabled': {'key': 'onPremisesSyncEnabled', 'type': 'bool'},
        'phones': {'key': 'phones', 'type': '[MicrosoftGraphPhone]'},
        'proxy_addresses': {'key': 'proxyAddresses', 'type': '[str]'},
        'surname': {'key': 'surname', 'type': 'str'},
        'direct_reports': {'key': 'directReports', 'type': '[MicrosoftGraphDirectoryObject]'},
        'manager': {'key': 'manager', 'type': 'MicrosoftGraphDirectoryObject'},
        'member_of': {'key': 'memberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
        'transitive_member_of': {'key': 'transitiveMemberOf', 'type': '[MicrosoftGraphDirectoryObject]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphOrgContact, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.addresses = kwargs.get('addresses', None)
        self.company_name = kwargs.get('company_name', None)
        self.department = kwargs.get('department', None)
        self.display_name = kwargs.get('display_name', None)
        self.given_name = kwargs.get('given_name', None)
        self.job_title = kwargs.get('job_title', None)
        self.mail = kwargs.get('mail', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_premises_last_sync_date_time = kwargs.get('on_premises_last_sync_date_time', None)
        self.on_premises_provisioning_errors = kwargs.get('on_premises_provisioning_errors', None)
        self.on_premises_sync_enabled = kwargs.get('on_premises_sync_enabled', None)
        self.phones = kwargs.get('phones', None)
        self.proxy_addresses = kwargs.get('proxy_addresses', None)
        self.surname = kwargs.get('surname', None)
        self.direct_reports = kwargs.get('direct_reports', None)
        self.manager = kwargs.get('manager', None)
        self.member_of = kwargs.get('member_of', None)
        self.transitive_member_of = kwargs.get('transitive_member_of', None)


class MicrosoftGraphPhone(msrest.serialization.Model):
    """phone.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param language:
    :type language: str
    :param number: The phone number.
    :type number: str
    :param region:
    :type region: str
    :param type:  Possible values include: "home", "business", "mobile", "other", "assistant",
     "homeFax", "businessFax", "otherFax", "pager", "radio".
    :type type: str or ~identity_directory_management.models.MicrosoftGraphPhoneType
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'language': {'key': 'language', 'type': 'str'},
        'number': {'key': 'number', 'type': 'str'},
        'region': {'key': 'region', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPhone, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.language = kwargs.get('language', None)
        self.number = kwargs.get('number', None)
        self.region = kwargs.get('region', None)
        self.type = kwargs.get('type', None)


class MicrosoftGraphPhysicalOfficeAddress(msrest.serialization.Model):
    """physicalOfficeAddress.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param city: The city.
    :type city: str
    :param country_or_region: The country or region. It's a free-format string value, for example,
     'United States'.
    :type country_or_region: str
    :param office_location: Office location such as building and office number for an
     organizational contact.
    :type office_location: str
    :param postal_code: The postal code.
    :type postal_code: str
    :param state: The state.
    :type state: str
    :param street: The street.
    :type street: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'city': {'key': 'city', 'type': 'str'},
        'country_or_region': {'key': 'countryOrRegion', 'type': 'str'},
        'office_location': {'key': 'officeLocation', 'type': 'str'},
        'postal_code': {'key': 'postalCode', 'type': 'str'},
        'state': {'key': 'state', 'type': 'str'},
        'street': {'key': 'street', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPhysicalOfficeAddress, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.city = kwargs.get('city', None)
        self.country_or_region = kwargs.get('country_or_region', None)
        self.office_location = kwargs.get('office_location', None)
        self.postal_code = kwargs.get('postal_code', None)
        self.state = kwargs.get('state', None)
        self.street = kwargs.get('street', None)


class MicrosoftGraphPrivacyProfile(msrest.serialization.Model):
    """privacyProfile.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param contact_email: A valid smtp email address for the privacy statement contact. Not
     required.
    :type contact_email: str
    :param statement_url: A valid URL format that begins with http:// or https://. Maximum length
     is 255 characters. The URL that directs to the company's privacy statement. Not required.
    :type statement_url: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'contact_email': {'key': 'contactEmail', 'type': 'str'},
        'statement_url': {'key': 'statementUrl', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphPrivacyProfile, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.contact_email = kwargs.get('contact_email', None)
        self.statement_url = kwargs.get('statement_url', None)


class MicrosoftGraphProvisionedPlan(msrest.serialization.Model):
    """provisionedPlan.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param capability_status: For example, 'Enabled'.
    :type capability_status: str
    :param provisioning_status: For example, 'Success'.
    :type provisioning_status: str
    :param service: The name of the service; for example, 'AccessControlS2S'.
    :type service: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'provisioning_status': {'key': 'provisioningStatus', 'type': 'str'},
        'service': {'key': 'service', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphProvisionedPlan, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.provisioning_status = kwargs.get('provisioning_status', None)
        self.service = kwargs.get('service', None)


class MicrosoftGraphScopedRoleMembership(MicrosoftGraphEntity):
    """scopedRoleMembership.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param administrative_unit_id: Unique identifier for the administrative unit that the directory
     role is scoped to.
    :type administrative_unit_id: str
    :param role_id: Unique identifier for the directory role that the member is in.
    :type role_id: str
    :param role_member_info: identity.
    :type role_member_info: ~identity_directory_management.models.MicrosoftGraphIdentity
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'administrative_unit_id': {'key': 'administrativeUnitId', 'type': 'str'},
        'role_id': {'key': 'roleId', 'type': 'str'},
        'role_member_info': {'key': 'roleMemberInfo', 'type': 'MicrosoftGraphIdentity'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphScopedRoleMembership, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.administrative_unit_id = kwargs.get('administrative_unit_id', None)
        self.role_id = kwargs.get('role_id', None)
        self.role_member_info = kwargs.get('role_member_info', None)


class MicrosoftGraphServicePlanInfo(msrest.serialization.Model):
    """servicePlanInfo.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param applies_to: The object the service plan can be assigned to. Possible values:'User' -
     service plan can be assigned to individual users.'Company' - service plan can be assigned to
     the entire tenant.
    :type applies_to: str
    :param provisioning_status: The provisioning status of the service plan. Possible
     values:'Success' - Service is fully provisioned.'Disabled' - Service has been
     disabled.'PendingInput' - Service is not yet provisioned; awaiting service
     confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by
     administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has
     added a new service to the product SKU and it has not been activated in the tenant, yet.
    :type provisioning_status: str
    :param service_plan_id: The unique identifier of the service plan.
    :type service_plan_id: str
    :param service_plan_name: The name of the service plan.
    :type service_plan_name: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'applies_to': {'key': 'appliesTo', 'type': 'str'},
        'provisioning_status': {'key': 'provisioningStatus', 'type': 'str'},
        'service_plan_id': {'key': 'servicePlanId', 'type': 'str'},
        'service_plan_name': {'key': 'servicePlanName', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphServicePlanInfo, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.applies_to = kwargs.get('applies_to', None)
        self.provisioning_status = kwargs.get('provisioning_status', None)
        self.service_plan_id = kwargs.get('service_plan_id', None)
        self.service_plan_name = kwargs.get('service_plan_name', None)


class MicrosoftGraphSubscribedSku(MicrosoftGraphEntity):
    """subscribedSku.

    :param id: Read-only.
    :type id: str
    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param applies_to: For example, 'User' or 'Company'.
    :type applies_to: str
    :param capability_status: Possible values are: Enabled, Warning, Suspended, Deleted, LockedOut.
    :type capability_status: str
    :param consumed_units: The number of licenses that have been assigned.
    :type consumed_units: int
    :param prepaid_units: licenseUnitsDetail.
    :type prepaid_units: ~identity_directory_management.models.MicrosoftGraphLicenseUnitsDetail
    :param service_plans: Information about the service plans that are available with the SKU. Not
     nullable.
    :type service_plans: list[~identity_directory_management.models.MicrosoftGraphServicePlanInfo]
    :param sku_id: The unique identifier (GUID) for the service SKU.
    :type sku_id: str
    :param sku_part_number: The SKU part number; for example: 'AAD_PREMIUM' or 'RMSBASIC'. To get a
     list of commercial subscriptions that an organization has acquired, see List subscribedSkus.
    :type sku_part_number: str
    """

    _validation = {
        'consumed_units': {'maximum': 2147483647, 'minimum': -2147483648},
    }

    _attribute_map = {
        'id': {'key': 'id', 'type': 'str'},
        'additional_properties': {'key': '', 'type': '{object}'},
        'applies_to': {'key': 'appliesTo', 'type': 'str'},
        'capability_status': {'key': 'capabilityStatus', 'type': 'str'},
        'consumed_units': {'key': 'consumedUnits', 'type': 'int'},
        'prepaid_units': {'key': 'prepaidUnits', 'type': 'MicrosoftGraphLicenseUnitsDetail'},
        'service_plans': {'key': 'servicePlans', 'type': '[MicrosoftGraphServicePlanInfo]'},
        'sku_id': {'key': 'skuId', 'type': 'str'},
        'sku_part_number': {'key': 'skuPartNumber', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphSubscribedSku, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.applies_to = kwargs.get('applies_to', None)
        self.capability_status = kwargs.get('capability_status', None)
        self.consumed_units = kwargs.get('consumed_units', None)
        self.prepaid_units = kwargs.get('prepaid_units', None)
        self.service_plans = kwargs.get('service_plans', None)
        self.sku_id = kwargs.get('sku_id', None)
        self.sku_part_number = kwargs.get('sku_part_number', None)


class MicrosoftGraphVerifiedDomain(msrest.serialization.Model):
    """verifiedDomain.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param capabilities: For example, 'Email', 'OfficeCommunicationsOnline'.
    :type capabilities: str
    :param is_default: true if this is the default domain associated with the tenant; otherwise,
     false.
    :type is_default: bool
    :param is_initial: true if this is the initial domain associated with the tenant; otherwise,
     false.
    :type is_initial: bool
    :param name: The domain name; for example, 'contoso.onmicrosoft.com'.
    :type name: str
    :param type: For example, 'Managed'.
    :type type: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'capabilities': {'key': 'capabilities', 'type': 'str'},
        'is_default': {'key': 'isDefault', 'type': 'bool'},
        'is_initial': {'key': 'isInitial', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(MicrosoftGraphVerifiedDomain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.capabilities = kwargs.get('capabilities', None)
        self.is_default = kwargs.get('is_default', None)
        self.is_initial = kwargs.get('is_initial', None)
        self.name = kwargs.get('name', None)
        self.type = kwargs.get('type', None)


class OdataError(msrest.serialization.Model):
    """OdataError.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param error: Required.
    :type error: ~identity_directory_management.models.OdataErrorMain
    """

    _validation = {
        'error': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'error': {'key': 'error', 'type': 'OdataErrorMain'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataError, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.error = kwargs['error']


class OdataErrorDetail(msrest.serialization.Model):
    """OdataErrorDetail.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param code: Required.
    :type code: str
    :param message: Required.
    :type message: str
    :param target:
    :type target: str
    """

    _validation = {
        'code': {'required': True},
        'message': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'code': {'key': 'code', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataErrorDetail, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.code = kwargs['code']
        self.message = kwargs['message']
        self.target = kwargs.get('target', None)


class OdataErrorMain(msrest.serialization.Model):
    """OdataErrorMain.

    All required parameters must be populated in order to send to Azure.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param code: Required.
    :type code: str
    :param message: Required.
    :type message: str
    :param target:
    :type target: str
    :param details:
    :type details: list[~identity_directory_management.models.OdataErrorDetail]
    :param innererror: The structure of this object is service-specific.
    :type innererror: dict[str, object]
    """

    _validation = {
        'code': {'required': True},
        'message': {'required': True},
    }

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'code': {'key': 'code', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'},
        'details': {'key': 'details', 'type': '[OdataErrorDetail]'},
        'innererror': {'key': 'innererror', 'type': '{object}'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(OdataErrorMain, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.code = kwargs['code']
        self.message = kwargs['message']
        self.target = kwargs.get('target', None)
        self.details = kwargs.get('details', None)
        self.innererror = kwargs.get('innererror', None)


class Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    :param types:
    :type types: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
        'types': {'key': 'types', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)
        self.types = kwargs.get('types', None)


class Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)


class Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param is_synced_from_on_premises:
    :type is_synced_from_on_premises: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'is_synced_from_on_premises': {'key': 'isSyncedFromOnPremises', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.is_synced_from_on_premises = kwargs.get('is_synced_from_on_premises', False)


class PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param group_ids:
    :type group_ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'group_ids': {'key': 'groupIds', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.group_ids = kwargs.get('group_ids', None)


class PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param security_enabled_only:
    :type security_enabled_only: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'security_enabled_only': {'key': 'securityEnabledOnly', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.security_enabled_only = kwargs.get('security_enabled_only', False)


class PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param disable_user_accounts:
    :type disable_user_accounts: bool
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'disable_user_accounts': {'key': 'disableUserAccounts', 'type': 'bool'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.disable_user_accounts = kwargs.get('disable_user_accounts', False)


class PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param ids:
    :type ids: list[str]
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'ids': {'key': 'ids', 'type': '[str]'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.ids = kwargs.get('ids', None)


class PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema(msrest.serialization.Model):
    """PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.

    :param additional_properties: Unmatched properties from the message are deserialized to this
     collection.
    :type additional_properties: dict[str, object]
    :param entity_type:
    :type entity_type: str
    :param display_name:
    :type display_name: str
    :param mail_nickname:
    :type mail_nickname: str
    :param on_behalf_of_user_id:
    :type on_behalf_of_user_id: str
    """

    _attribute_map = {
        'additional_properties': {'key': '', 'type': '{object}'},
        'entity_type': {'key': 'entityType', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'mail_nickname': {'key': 'mailNickname', 'type': 'str'},
        'on_behalf_of_user_id': {'key': 'onBehalfOfUserId', 'type': 'str'},
    }

    def __init__(
        self,
        **kwargs
    ):
        super(PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema, self).__init__(**kwargs)
        self.additional_properties = kwargs.get('additional_properties', None)
        self.entity_type = kwargs.get('entity_type', None)
        self.display_name = kwargs.get('display_name', None)
        self.mail_nickname = kwargs.get('mail_nickname', None)
        self.on_behalf_of_user_id = kwargs.get('on_behalf_of_user_id', None)

# coding=utf-8 # -------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. # Code generated by Microsoft (R) AutoRest Code Generator. # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- Collection of administrativeUnit.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]     :param odata_next_link:     :type odata_next_link: str Collection of contract.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphContract]     :param odata_next_link:     :type odata_next_link: str Collection of device.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDevice]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param odata_next_link:     :type odata_next_link: str Collection of directoryRole.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRole]     :param odata_next_link:     :type odata_next_link: str Collection of directoryRoleTemplate.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDirectoryRoleTemplate]     :param odata_next_link:     :type odata_next_link: str Collection of domain.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDomain]     :param odata_next_link:     :type odata_next_link: str Collection of domainDnsRecord.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]     :param odata_next_link:     :type odata_next_link: str Collection of domainDnsRecord.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]     :param odata_next_link:     :type odata_next_link: str Collection of extension.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]     :param odata_next_link:     :type odata_next_link: str Collection of extension.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]     :param odata_next_link:     :type odata_next_link: str Collection of extension.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphExtension]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of links of directoryObject.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[str]     :param odata_next_link:     :type odata_next_link: str Collection of organization.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphOrganization]     :param odata_next_link:     :type odata_next_link: str Collection of orgContact.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphOrgContact]     :param odata_next_link:     :type odata_next_link: str Collection of scopedRoleMembership.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]     :param odata_next_link:     :type odata_next_link: str Collection of scopedRoleMembership.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]     :param odata_next_link:     :type odata_next_link: str Collection of scopedRoleMembership.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]     :param odata_next_link:     :type odata_next_link: str Collection of subscribedSku.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param value:     :type value: list[~identity_directory_management.models.MicrosoftGraphSubscribedSku]     :param odata_next_link:     :type odata_next_link: str entity.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param id: Read-only.     :type id: str Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param description: An optional description for the administrative unit.     :type description: str     :param display_name: Display name for the administrative unit.     :type display_name: str     :param visibility: Controls whether the adminstrative unit and its members are hidden or      public. Can be set to HiddenMembership or Public. If not set, default behavior is Public. When      set to HiddenMembership, only members of the administrative unit can list other members of the      adminstrative unit.     :type visibility: str     :param members: Users and groups that are members of this Adminsitrative Unit. HTTP Methods:      GET (list members), POST (add members), DELETE (remove members).     :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param scoped_role_members: Scoped-role members of this Administrative Unit.  HTTP Methods: GET      (list scopedRoleMemberships), POST (add scopedRoleMembership), DELETE (remove      scopedRoleMembership).     :type scoped_role_members:      list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership]     :param extensions:     :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension] alternativeSecurityId.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param identity_provider: For internal use only.     :type identity_provider: str     :param key: For internal use only.     :type key: bytes     :param type: For internal use only.     :type type: int assignedPlan.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param assigned_date_time: The date and time at which the plan was assigned; for example:      2013-01-02T19:32:30Z. The Timestamp type represents date and time information using ISO 8601      format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like      this: '2014-01-01T00:00:00Z'.     :type assigned_date_time: ~datetime.datetime     :param capability_status: For example, 'Enabled'.     :type capability_status: str     :param service: The name of the service; for example, 'Exchange'.     :type service: str     :param service_plan_id: A GUID that identifies the service plan.     :type service_plan_id: str certificateAuthority.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param certificate: Required. The base64 encoded string representing the public certificate.     :type certificate: bytes     :param certificate_revocation_list_url: The URL of the certificate revocation list.     :type certificate_revocation_list_url: str     :param delta_certificate_revocation_list_url: The URL contains the list of all revoked      certificates since the last time a full certificate revocaton list was created.     :type delta_certificate_revocation_list_url: str     :param is_root_authority: Required. true if the trusted certificate is a root authority, false      if the trusted certificate is an intermediate authority.     :type is_root_authority: bool     :param issuer: The issuer of the certificate, calculated from the certificate value. Read-only.     :type issuer: str     :param issuer_ski: The subject key identifier of the certificate, calculated from the      certificate value. Read-only.     :type issuer_ski: str certificateBasedAuthConfiguration.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param certificate_authorities: Collection of certificate authorities which creates a trusted      certificate chain.     :type certificate_authorities:      list[~identity_directory_management.models.MicrosoftGraphCertificateAuthority] Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param contract_type: Type of contract.Possible values are: SyndicationPartner - Partner that      exclusively resells and manages O365 and Intune for this customer. They resell and support      their customers. BreadthPartner - Partner has the ability to provide administrative support for      this customer. However, the partner is not allowed to resell to the customer.ResellerPartner -      Partner that is similar to a syndication partner, except that the partner doesn’t have      exclusive access to a tenant. In the syndication case, the customer cannot buy additional      direct subscriptions from Microsoft or from other partners.     :type contract_type: str     :param customer_id: The unique identifier for the customer tenant referenced by this      partnership. Corresponds to the id property of the customer tenant's organization resource.     :type customer_id: str     :param default_domain_name: A copy of the customer tenant's default domain name. The copy is      made when the partnership with the customer is established. It is not automatically updated if      the customer tenant's default domain name changes.     :type default_domain_name: str     :param display_name: A copy of the customer tenant's display name. The copy is made when the      partnership with the customer is established. It is not automatically updated if the customer      tenant's display name changes.     :type display_name: str Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param account_enabled: true if the account is enabled; otherwise, false. Required.     :type account_enabled: bool     :param alternative_security_ids: For internal use only. Not nullable.     :type alternative_security_ids:      list[~identity_directory_management.models.MicrosoftGraphAlternativeSecurityId]     :param approximate_last_sign_in_date_time: The timestamp type represents date and time      information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan      1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.     :type approximate_last_sign_in_date_time: ~datetime.datetime     :param compliance_expiration_date_time: The timestamp when the device is no longer deemed      compliant. The timestamp type represents date and time information using ISO 8601 format and is      always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like this:      '2014-01-01T00:00:00Z'. Read-only.     :type compliance_expiration_date_time: ~datetime.datetime     :param device_id: Unique identifier set by Azure Device Registration Service at the time of      registration.     :type device_id: str     :param device_metadata: For interal use only. Set to null.     :type device_metadata: str     :param device_version: For interal use only.     :type device_version: int     :param display_name: The display name for the device. Required.     :type display_name: str     :param is_compliant: true if the device complies with Mobile Device Management (MDM) policies;      otherwise, false. Read-only. This can only be updated by Intune for any device OS type or by an      approved MDM app for Windows OS devices.     :type is_compliant: bool     :param is_managed: true if the device is managed by a Mobile Device Management (MDM) app;      otherwise, false. This can only be updated by Intune for any device OS type or by an approved      MDM app for Windows OS devices.     :type is_managed: bool     :param mdm_app_id: Application identifier used to register device into MDM. Read-only. Supports      $filter.     :type mdm_app_id: str     :param on_premises_last_sync_date_time: The last time at which the object was synced with the      on-premises directory.The Timestamp type represents date and time information using ISO 8601      format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look like      this: '2014-01-01T00:00:00Z' Read-only.     :type on_premises_last_sync_date_time: ~datetime.datetime     :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;      false if this object was originally synced from an on-premises directory but is no longer      synced; null if this object has never been synced from an on-premises directory (default).      Read-only.     :type on_premises_sync_enabled: bool     :param operating_system: The type of operating system on the device. Required.     :type operating_system: str     :param operating_system_version: The version of the operating system on the device. Required.     :type operating_system_version: str     :param physical_ids: For interal use only. Not nullable.     :type physical_ids: list[str]     :param profile_type: The profile type of the device. Possible values:RegisteredDevice      (default)SecureVMPrinterSharedIoT.     :type profile_type: str     :param system_labels: List of labels applied to the device by the system.     :type system_labels: list[str]     :param trust_type: Type of trust for the joined device. Read-only. Possible values: Workplace -      indicates bring your own personal devicesAzureAd - Cloud only joined devicesServerAd - on-      premises domain joined devices joined to Azure AD. For more details, see Introduction to device      management in Azure Active Directory.     :type trust_type: str     :param member_of: Groups that this group is a member of. HTTP Methods: GET (supported for all      groups). Read-only. Nullable.     :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param registered_owners: The user that cloud joined the device or registered their personal      device. The registered owner is set at the time of registration. Currently, there can be only      one owner. Read-only. Nullable.     :type registered_owners:      list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param registered_users: Collection of registered users of the device. For cloud joined devices      and registered personal devices, registered users are set to the same value as registered      owners at the time of registration. Read-only. Nullable.     :type registered_users:      list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param transitive_member_of:     :type transitive_member_of:      list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param extensions: The collection of open extensions defined for the device. Read-only.      Nullable.     :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension] directory.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param administrative_units:     :type administrative_units:      list[~identity_directory_management.models.MicrosoftGraphAdministrativeUnit]     :param deleted_items: Recently deleted items. Read-only. Nullable.     :type deleted_items: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject] Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param description: The description for the directory role. Read-only.     :type description: str     :param display_name: The display name for the directory role. Read-only.     :type display_name: str     :param role_template_id: The id of the directoryRoleTemplate that this role is based on. The      property must be specified when activating a directory role in a tenant with a POST operation.      After the directory role has been activated, the property is read only.     :type role_template_id: str     :param members: Users that are members of this directory role. HTTP Methods: GET, POST, DELETE.      Read-only. Nullable.     :type members: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param scoped_members:     :type scoped_members:      list[~identity_directory_management.models.MicrosoftGraphScopedRoleMembership] Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param description: The description to set for the directory role. Read-only.     :type description: str     :param display_name: The display name to set for the directory role. Read-only.     :type display_name: str domain.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param authentication_type: Indicates the configured authentication type for the domain. The      value is either Managed or Federated. Managed indicates a cloud managed domain where Azure AD      performs user authentication.Federated indicates authentication is federated with an identity      provider such as the tenant's on-premises Active Directory via Active Directory Federation      Services. This property is read-only and is not nullable.     :type authentication_type: str     :param availability_status: This property is always null except when the verify action is used.      When the verify action is used, a domain entity is returned in the response. The      availabilityStatus property of the domain entity in the response is either AvailableImmediately      or EmailVerifiedDomainTakeoverScheduled.     :type availability_status: str     :param is_admin_managed: The value of the property is false if the DNS record management of the      domain has been delegated to Microsoft 365. Otherwise, the value is true. Not nullable.     :type is_admin_managed: bool     :param is_default: True if this is the default domain that is used for user creation. There is      only one default domain per company. Not nullable.     :type is_default: bool     :param is_initial: True if this is the initial domain created by Microsoft Online Services      (companyname.onmicrosoft.com). There is only one initial domain per company. Not nullable.     :type is_initial: bool     :param is_root: True if the domain is a verified root domain. Otherwise, false if the domain is      a subdomain or unverified. Not nullable.     :type is_root: bool     :param is_verified: True if the domain has completed domain ownership verification. Not      nullable.     :type is_verified: bool     :param manufacturer:     :type manufacturer: str     :param model:     :type model: str     :param password_notification_window_in_days: Specifies the number of days before a user      receives notification that their password will expire. If the property is not set, a default      value of 14 days will be used.     :type password_notification_window_in_days: int     :param password_validity_period_in_days: Specifies the length of time that a password is valid      before it must be changed. If the property is not set, a default value of 90 days will be used.     :type password_validity_period_in_days: int     :param state: domainState.     :type state: ~identity_directory_management.models.MicrosoftGraphDomainState     :param supported_services: The capabilities assigned to the domain.Can include 0, 1 or more of      following values: Email, Sharepoint, EmailInternalRelayOnly, OfficeCommunicationsOnline,      SharePointDefaultDomain, FullRedelegation, SharePointPublic, OrgIdAuthentication, Yammer,      Intune The values which you can add/remove using Graph API include: Email,      OfficeCommunicationsOnline, YammerNot nullable.     :type supported_services: list[str]     :param domain_name_references: Read-only, Nullable.     :type domain_name_references:      list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param service_configuration_records: DNS records the customer adds to the DNS zone file of the      domain before the domain can be used by Microsoft Online services.Read-only, Nullable.     :type service_configuration_records:      list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord]     :param verification_dns_records: DNS records that the customer adds to the DNS zone file of the      domain before the customer can complete domain ownership verification with Azure AD.Read-only,      Nullable.     :type verification_dns_records:      list[~identity_directory_management.models.MicrosoftGraphDomainDnsRecord] domainDnsRecord.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_optional: If false, this record must be configured by the customer at the DNS host      for Microsoft Online Services to operate correctly with the domain.     :type is_optional: bool     :param label: Value used when configuring the name of the DNS record at the DNS host.     :type label: str     :param record_type: Indicates what type of DNS record this entity represents.The value can be      one of the following: CName, Mx, Srv, TxtKey.     :type record_type: str     :param supported_service: Microsoft Online Service or feature that has a dependency on this DNS      record.Can be one of the following values: null, Email, Sharepoint, EmailInternalRelayOnly,      OfficeCommunicationsOnline, SharePointDefaultDomain, FullRedelegation, SharePointPublic,      OrgIdAuthentication, Yammer, Intune.     :type supported_service: str     :param ttl: Value to use when configuring the time-to-live (ttl) property of the DNS record at      the DNS host. Not nullable.     :type ttl: int domainState.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param last_action_date_time: Timestamp for when the last activity occurred. The value is      updated when an operation is scheduled, the asynchronous task starts, and when the operation      completes.     :type last_action_date_time: ~datetime.datetime     :param operation: Type of asynchronous operation. The values can be ForceDelete or      Verification.     :type operation: str     :param status: Current status of the operation.  Scheduled - Operation has been scheduled but      has not started.  InProgress - Task has started and is in progress.  Failed - Operation has      failed.     :type status: str extension.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object] Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param app_display_name: Display name of the application object on which this extension      property is defined. Read-only.     :type app_display_name: str     :param data_type: Specifies the data type of the value the extension property can hold.      Following values are supported. Not nullable. Binary - 256 bytes maximumBooleanDateTime - Must      be specified in ISO 8601 format. Will be stored in UTC.Integer - 32-bit value.LargeInteger -      64-bit value.String - 256 characters maximum.     :type data_type: str     :param is_synced_from_on_premises: Indicates if this extension property was sycned from      onpremises directory using Azure AD Connect. Read-only.     :type is_synced_from_on_premises: bool     :param name: Name of the extension property. Not nullable.     :type name: str     :param target_objects: Following values are supported. Not nullable.      UserGroupOrganizationDeviceApplication.     :type target_objects: list[str] identity.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param display_name: The identity's display name. Note that this may not always be available or      up to date. For example, if a user changes their display name, the API may show the new value      in a future response, but the items associated with the user won't show up as having changed      when using delta.     :type display_name: str     :param id: Unique identifier for the identity.     :type id: str licenseUnitsDetail.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param enabled: The number of units that are enabled.     :type enabled: int     :param suspended: The number of units that are suspended.     :type suspended: int     :param warning: The number of units that are in warning status.     :type warning: int onPremisesProvisioningError.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param category: Category of the provisioning error. Note: Currently, there is only one      possible value. Possible value: PropertyConflict - indicates a property value is not unique.      Other objects contain the same value for the property.     :type category: str     :param occurred_date_time: The date and time at which the error occurred.     :type occurred_date_time: ~datetime.datetime     :param property_causing_error: Name of the directory property causing the error. Current      possible values: UserPrincipalName or ProxyAddress.     :type property_causing_error: str     :param value: Value of the property causing the error.     :type value: str The organization resource represents an instance of global settings and resources which operate and are provisioned at the tenant-level.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param assigned_plans: The collection of service plans associated with the tenant. Not      nullable.     :type assigned_plans: list[~identity_directory_management.models.MicrosoftGraphAssignedPlan]     :param business_phones: Telephone number for the organization. NOTE: Although this is a string      collection, only one number can be set for this property.     :type business_phones: list[str]     :param city: City name of the address for the organization.     :type city: str     :param country: Country/region name of the address for the organization.     :type country: str     :param country_letter_code: Country/region abbreviation for the organization.     :type country_letter_code: str     :param created_date_time: Timestamp of when the organization was created. The value cannot be      modified and is automatically populated when the organization is created. The Timestamp type      represents date and time information using ISO 8601 format and is always in UTC time. For      example, midnight UTC on Jan 1, 2014 would look like this: '2014-01-01T00:00:00Z'. Read-only.     :type created_date_time: ~datetime.datetime     :param display_name: The display name for the tenant.     :type display_name: str     :param marketing_notification_emails: Not nullable.     :type marketing_notification_emails: list[str]     :param on_premises_last_sync_date_time: The time and date at which the tenant was last synced      with the on-premise directory. The Timestamp type represents date and time information using      ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 would look      like this: '2014-01-01T00:00:00Z'. Read-only.     :type on_premises_last_sync_date_time: ~datetime.datetime     :param on_premises_sync_enabled: true if this object is synced from an on-premises directory;      false if this object was originally synced from an on-premises directory but is no longer      synced; null if this object has never been synced from an on-premises directory (default).     :type on_premises_sync_enabled: bool     :param postal_code: Postal code of the address for the organization.     :type postal_code: str     :param preferred_language: The preferred language for the organization. Should follow ISO 639-1      Code; for example 'en'.     :type preferred_language: str     :param privacy_profile: privacyProfile.     :type privacy_profile: ~identity_directory_management.models.MicrosoftGraphPrivacyProfile     :param provisioned_plans: Not nullable.     :type provisioned_plans:      list[~identity_directory_management.models.MicrosoftGraphProvisionedPlan]     :param security_compliance_notification_mails:     :type security_compliance_notification_mails: list[str]     :param security_compliance_notification_phones:     :type security_compliance_notification_phones: list[str]     :param state: State name of the address for the organization.     :type state: str     :param street: Street name of the address for organization.     :type street: str     :param technical_notification_mails: Not nullable.     :type technical_notification_mails: list[str]     :param tenant_type:     :type tenant_type: str     :param verified_domains: The collection of domains associated with this tenant. Not nullable.     :type verified_domains:      list[~identity_directory_management.models.MicrosoftGraphVerifiedDomain]     :param mobile_device_management_authority:  Possible values include: "unknown", "intune",      "sccm", "office365".     :type mobile_device_management_authority: str or      ~identity_directory_management.models.MicrosoftGraphMdmAuthority     :param certificate_based_auth_configuration: Navigation property to manage certificate-based      authentication configuration. Only a single instance of certificateBasedAuthConfiguration can      be created in the collection.     :type certificate_based_auth_configuration:      list[~identity_directory_management.models.MicrosoftGraphCertificateBasedAuthConfiguration]     :param extensions: The collection of open extensions defined for the organization. Read-only.      Nullable.     :type extensions: list[~identity_directory_management.models.MicrosoftGraphExtension] Represents an Azure Active Directory object. The directoryObject type is the base type for many other directory entity types.      :param id: Read-only.     :type id: str     :param deleted_date_time:     :type deleted_date_time: ~datetime.datetime     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param addresses:     :type addresses:      list[~identity_directory_management.models.MicrosoftGraphPhysicalOfficeAddress]     :param company_name:     :type company_name: str     :param department:     :type department: str     :param display_name:     :type display_name: str     :param given_name:     :type given_name: str     :param job_title:     :type job_title: str     :param mail:     :type mail: str     :param mail_nickname:     :type mail_nickname: str     :param on_premises_last_sync_date_time:     :type on_premises_last_sync_date_time: ~datetime.datetime     :param on_premises_provisioning_errors:     :type on_premises_provisioning_errors:      list[~identity_directory_management.models.MicrosoftGraphOnPremisesProvisioningError]     :param on_premises_sync_enabled:     :type on_premises_sync_enabled: bool     :param phones:     :type phones: list[~identity_directory_management.models.MicrosoftGraphPhone]     :param proxy_addresses:     :type proxy_addresses: list[str]     :param surname:     :type surname: str     :param direct_reports:     :type direct_reports: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param manager: Represents an Azure Active Directory object. The directoryObject type is the      base type for many other directory entity types.     :type manager: ~identity_directory_management.models.MicrosoftGraphDirectoryObject     :param member_of:     :type member_of: list[~identity_directory_management.models.MicrosoftGraphDirectoryObject]     :param transitive_member_of:     :type transitive_member_of:      list[~identity_directory_management.models.MicrosoftGraphDirectoryObject] phone.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param language:     :type language: str     :param number: The phone number.     :type number: str     :param region:     :type region: str     :param type:  Possible values include: "home", "business", "mobile", "other", "assistant",      "homeFax", "businessFax", "otherFax", "pager", "radio".     :type type: str or ~identity_directory_management.models.MicrosoftGraphPhoneType physicalOfficeAddress.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param city: The city.     :type city: str     :param country_or_region: The country or region. It's a free-format string value, for example,      'United States'.     :type country_or_region: str     :param office_location: Office location such as building and office number for an      organizational contact.     :type office_location: str     :param postal_code: The postal code.     :type postal_code: str     :param state: The state.     :type state: str     :param street: The street.     :type street: str privacyProfile.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param contact_email: A valid smtp email address for the privacy statement contact. Not      required.     :type contact_email: str     :param statement_url: A valid URL format that begins with http:// or https://. Maximum length      is 255 characters. The URL that directs to the company's privacy statement. Not required.     :type statement_url: str provisionedPlan.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param capability_status: For example, 'Enabled'.     :type capability_status: str     :param provisioning_status: For example, 'Success'.     :type provisioning_status: str     :param service: The name of the service; for example, 'AccessControlS2S'.     :type service: str scopedRoleMembership.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param administrative_unit_id: Unique identifier for the administrative unit that the directory      role is scoped to.     :type administrative_unit_id: str     :param role_id: Unique identifier for the directory role that the member is in.     :type role_id: str     :param role_member_info: identity.     :type role_member_info: ~identity_directory_management.models.MicrosoftGraphIdentity servicePlanInfo.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param applies_to: The object the service plan can be assigned to. Possible values:'User' -      service plan can be assigned to individual users.'Company' - service plan can be assigned to      the entire tenant.     :type applies_to: str     :param provisioning_status: The provisioning status of the service plan. Possible      values:'Success' - Service is fully provisioned.'Disabled' - Service has been      disabled.'PendingInput' - Service is not yet provisioned; awaiting service      confirmation.'PendingActivation' - Service is provisioned but requires explicit activation by      administrator (for example, Intune_O365 service plan)'PendingProvisioning' - Microsoft has      added a new service to the product SKU and it has not been activated in the tenant, yet.     :type provisioning_status: str     :param service_plan_id: The unique identifier of the service plan.     :type service_plan_id: str     :param service_plan_name: The name of the service plan.     :type service_plan_name: str subscribedSku.      :param id: Read-only.     :type id: str     :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param applies_to: For example, 'User' or 'Company'.     :type applies_to: str     :param capability_status: Possible values are: Enabled, Warning, Suspended, Deleted, LockedOut.     :type capability_status: str     :param consumed_units: The number of licenses that have been assigned.     :type consumed_units: int     :param prepaid_units: licenseUnitsDetail.     :type prepaid_units: ~identity_directory_management.models.MicrosoftGraphLicenseUnitsDetail     :param service_plans: Information about the service plans that are available with the SKU. Not      nullable.     :type service_plans: list[~identity_directory_management.models.MicrosoftGraphServicePlanInfo]     :param sku_id: The unique identifier (GUID) for the service SKU.     :type sku_id: str     :param sku_part_number: The SKU part number; for example: 'AAD_PREMIUM' or 'RMSBASIC'. To get a      list of commercial subscriptions that an organization has acquired, see List subscribedSkus.     :type sku_part_number: str verifiedDomain.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param capabilities: For example, 'Email', 'OfficeCommunicationsOnline'.     :type capabilities: str     :param is_default: true if this is the default domain associated with the tenant; otherwise,      false.     :type is_default: bool     :param is_initial: true if this is the initial domain associated with the tenant; otherwise,      false.     :type is_initial: bool     :param name: The domain name; for example, 'contoso.onmicrosoft.com'.     :type name: str     :param type: For example, 'Managed'.     :type type: str OdataError.      All required parameters must be populated in order to send to Azure.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param error: Required.     :type error: ~identity_directory_management.models.OdataErrorMain OdataErrorDetail.      All required parameters must be populated in order to send to Azure.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param code: Required.     :type code: str     :param message: Required.     :type message: str     :param target:     :type target: str OdataErrorMain.      All required parameters must be populated in order to send to Azure.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param code: Required.     :type code: str     :param message: Required.     :type message: str     :param target:     :type target: str     :param details:     :type details: list[~identity_directory_management.models.OdataErrorDetail]     :param innererror: The structure of this object is service-specific.     :type innererror: dict[str, object] Paths116Bv3CDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths11G1VgqOrganizationMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths12Azg33ContactsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths14VnqnuDirectoryrolesDirectoryroleIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] Paths1540TevDevicesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool Paths1545W8NDevicesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths175Njh2ContactsOrgcontactIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] Paths17JleimDevicesDeviceIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] Paths1Binbx4DirectoryroletemplatesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str Paths1E8TfraOrganizationMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool Paths1G440InOrganizationMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str Paths1Hzls82OrganizationIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths1I0TqyfDirectoryrolesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str Paths1Ig9RahDirectoryrolesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths1L581IfContactsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool Paths1M18OhpContactsOrgcontactIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths1QbmtipDevicesDeviceIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths1T6Lra6ContractsMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths1Vbpok7DirectoryrolesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool Paths1Yxqrp7OrganizationIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] Paths2Yqm8DContractsMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool Paths30M7S8ContractsContractIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] Paths3Y2P0KContactsOrgcontactIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths6Crxp6ContractsContractIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths6Ovq2LDirectoryroletemplatesMicrosoftGraphGetbyidsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str]     :param types:     :type types: list[str] Paths7Cg04SContactsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str Paths7X6XkrDevicesMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str Paths8Ke2VbContactsOrgcontactIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] Paths9Kz3QjDirectoryrolesDirectoryroleIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool Paths9PdmsbContractsContractIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool PathsBwhfj9DirectoryrolesDirectoryroleIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] PathsGlwoxyDirectoryroletemplatesMicrosoftGraphGetavailableextensionpropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param is_synced_from_on_premises:     :type is_synced_from_on_premises: bool PathsMf08MlOrganizationIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] PathsMwgbeoDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] PathsNtst38DevicesDeviceIdMicrosoftGraphCheckmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param group_ids:     :type group_ids: list[str] PathsOikz69DevicesDeviceIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool PathsPlvqruOrganizationIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool PathsQ8R6UDirectoryrolesDirectoryroleIdMicrosoftGraphGetmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool PathsU5PhcgDirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphGetmembergroupsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param security_enabled_only:     :type security_enabled_only: bool PathsUasdopDomainsDomainIdMicrosoftGraphForcedeletePostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param disable_user_accounts:     :type disable_user_accounts: bool PathsXq94UjContractsContractIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] PathsYkfgk1DirectoryroletemplatesDirectoryroletemplateIdMicrosoftGraphCheckmemberobjectsPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param ids:     :type ids: list[str] PathsZahmwmContractsMicrosoftGraphValidatepropertiesPostRequestbodyContentApplicationJsonSchema.      :param additional_properties: Unmatched properties from the message are deserialized to this      collection.     :type additional_properties: dict[str, object]     :param entity_type:     :type entity_type: str     :param display_name:     :type display_name: str     :param mail_nickname:     :type mail_nickname: str     :param on_behalf_of_user_id:     :type on_behalf_of_user_id: str