{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/delinea/main/json-schema/delinea-group-model-schema.json",
  "title": "GroupModel",
  "description": "Group",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/delinea-groups-api-openapi.yml#/components/schemas/GroupModel",
  "properties": {
    "adGuid": {
      "description": "Active Directory unique identifier",
      "type": "string"
    },
    "canEditMembers": {
      "description": "Whether you can edit the members of this group.  For example, Directory Services group members cannot be edited.  Populated on a single group get.",
      "type": [
        "boolean",
        "null"
      ]
    },
    "created": {
      "description": "Group created date",
      "type": "string",
      "format": "date-time"
    },
    "domainId": {
      "description": "Active Directory Domain ID",
      "type": "integer",
      "format": "int32"
    },
    "domainName": {
      "description": "Active Directory domain name",
      "type": "string"
    },
    "enabled": {
      "description": "Whether the group is active",
      "type": "boolean"
    },
    "hasGroupOwners": {
      "description": "If true, the group is owned by specific other users/groups. If false, if it is owned by Group Administrators.",
      "type": "boolean"
    },
    "id": {
      "description": "Group ID",
      "type": "integer",
      "format": "int32"
    },
    "ipAddressRestrictions": {
      "description": "Array of IP Address Restrictions for the group.",
      "items": {
        "$ref": "#/$defs/GroupIpAddressRestrictionSummaryModel"
      },
      "type": "array"
    },
    "isEditable": {
      "description": "Whether you have permission to edit this group",
      "type": "boolean"
    },
    "isPlatform": {
      "description": "Whether the group is a Platform Group",
      "type": "boolean"
    },
    "name": {
      "description": "Group name",
      "type": "string"
    },
    "ownerGroups": {
      "$ref": "#/$defs/DictionaryOfInt32AndString"
    },
    "owners": {
      "description": "The owners for the group, both users and groups",
      "items": {
        "$ref": "#/$defs/GroupOwner"
      },
      "type": "array"
    },
    "ownerUsers": {
      "$ref": "#/$defs/DictionaryOfInt32AndString"
    },
    "synchronized": {
      "description": "Whether the group is synchronized with Active Directory",
      "type": "boolean"
    },
    "synchronizeNow": {
      "description": "Active Directory Sync will only pull in members for domain groups that have this set to true.",
      "type": "boolean"
    },
    "systemGroup": {
      "description": "Whether the group is an Active Directory system group",
      "type": "boolean"
    }
  },
  "type": "object",
  "$defs": {
    "DictionaryOfInt32AndString": {
      "description": "Hash of GroupIds and GroupNames that own this group. Only used if HasGroupOwners is true.",
      "properties": {},
      "type": "object"
    },
    "GroupIpAddressRestrictionSummaryModel": {
      "description": "Group IP Address Restriction Model",
      "properties": {
        "id": {
          "description": "Id of Address Restriction",
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "description": "Name of IP Address Restriction",
          "type": "string"
        },
        "range": {
          "description": "Range of IP Address Restriction",
          "type": "string"
        }
      },
      "type": "object"
    },
    "GroupOwner": {
      "description": "The owners for the group",
      "properties": {
        "groupId": {
          "description": "The group ID, or personal group ID in the case of a user",
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "description": "The display name for the user or group",
          "type": "string"
        },
        "userId": {
          "description": "The user ID, or null in the case of a group",
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        }
      },
      "type": "object"
    }
  }
}