{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-administrative-unit-schema.json",
  "title": "microsoft.graph.administrativeUnit",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-contacts-directoryobject-api-openapi.yml#/components/schemas/microsoft.graph.administrativeUnit",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.directoryObject"
    },
    {
      "title": "administrativeUnit",
      "type": "object",
      "properties": {
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "An optional description for the administrative unit. Supports $filter (eq, ne, in, startsWith), $search."
        },
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "Display name for the administrative unit. Maximum length is 256 characters. Supports $filter (eq, ne, not, ge, le, in, startsWith, and eq on null values), $search, and $orderby."
        },
        "isMemberManagementRestricted": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "true if members of this administrative unit should be treated as sensitive, which requires specific permissions to manage. If not set, the default value is null and the default behavior is false. Use this property to define administrative units with roles that don't inherit from tenant-level administrators, and where the management of individual member objects is limited to administrators scoped to a restricted management administrative unit. This property is immutable and can't be changed later.  For more information on how to work with restricted management administrative units, see Restricted management administrative units in Microsoft Entra ID."
        },
        "membershipRule": {
          "type": [
            "string",
            "null"
          ],
          "description": "The dynamic membership rule for the administrative unit. For more information about the rules you can use for dynamic administrative units and dynamic groups, see Manage rules for dynamic membership groups in Microsoft Entra ID."
        },
        "membershipRuleProcessingState": {
          "type": [
            "string",
            "null"
          ],
          "description": "Controls whether the dynamic membership rule is actively processed. Set to On to activate the dynamic membership rule, or Paused to stop updating membership dynamically."
        },
        "membershipType": {
          "type": [
            "string",
            "null"
          ],
          "description": "Indicates the membership type for the administrative unit. The possible values are: dynamic, assigned. If not set, the default value is null and the default behavior is assigned."
        },
        "visibility": {
          "type": [
            "string",
            "null"
          ],
          "description": "Controls whether the administrative unit and its members are hidden or public. Can be set to HiddenMembership. If not set, the default value is null and the default behavior is public. When set to HiddenMembership, only members of the administrative unit can list other members of the administrative unit."
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.extension"
          },
          "description": "The collection of open extensions defined for this administrative unit. Nullable.",
          "x-ms-navigationProperty": true
        },
        "members": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.directoryObject"
          },
          "description": "Users and groups that are members of this administrative unit. Supports $expand.",
          "x-ms-navigationProperty": true
        },
        "scopedRoleMembers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.scopedRoleMembership"
          },
          "description": "Scoped-role members of this administrative unit.",
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.directoryObject": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "directoryObject",
          "type": "object",
          "properties": {
            "deletedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "Date and time when this object was deleted. Always null when the object hasn't been deleted.",
              "format": "date-time"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.extension": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "extension",
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.identity": {
      "title": "identity",
      "type": "object",
      "properties": {
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the identity.For drive items, the display name might not always be available or up to date. For example, if a user changes their display name the API might show the new value in a future response, but the items associated with the user don't show up as changed when using delta."
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the identity or actor. For example, in the access reviews decisions API, this property might record the id of the principal, that is, the group, user, or application that's subject to review."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.scopedRoleMembership": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "scopedRoleMembership",
          "type": "object",
          "properties": {
            "administrativeUnitId": {
              "type": "string",
              "description": "Unique identifier for the administrative unit that the directory role is scoped to"
            },
            "roleId": {
              "type": "string",
              "description": "Unique identifier for the directory role that the member is in."
            },
            "roleMemberInfo": {
              "$ref": "#/$defs/microsoft.graph.identity"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    }
  }
}