{
  "entity": {
    "name": "twakeGroup",
    "mainAttribute": "cn",
    "objectClass": ["top", "groupOfNames", "twakeStaticGroup"],
    "singularName": "group",
    "pluralName": "groups",
    "base": "ou=groups,__ldap_base__"
  },
  "strict": true,
  "attributes": {
    "objectClass": {
      "type": "array",
      "items": {
        "type": "string",
        "test": "^[a-zA-Z][a-zA-Z0-9-]*$"
      },
      "default": ["top", "groupOfNames", "twakeStaticGroup"],
      "required": true,
      "fixed": true
    },
    "cn": {
      "type": "string",
      "test": "^[a-zA-Z][a-zA-Z0-9-]{0,254}$",
      "required": true,
      "role": "identifier"
    },
    "description": {
      "type": "string",
      "required": false
    },
    "mail": {
      "type": "string",
      "test": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$",
      "required": false,
      "role": "primaryEmail"
    },
    "twakeMailboxType": {
      "type": "pointer",
      "branch": ["ou=twakeMailboxType,ou=nomenclature,__LDAP_BASE__"],
      "group": "Mailbox Settings",
      "required": false
    },
    "member": {
      "type": "array",
      "items": {
        "type": "string",
        "test": "^[a-zA-Z]+=.*,__LDAP_BASE__$"
      },
      "required": false,
      "role": "members"
    },
    "owner": {
      "type": "array",
      "items": {
        "type": "string",
        "test": "^[a-zA-Z]+=[a-zA-Z][a-zA-Z0-9-]*,__LDAP_BASE__$"
      },
      "required": false,
      "role": "owners"
    },
    "twakeDepartmentLink": {
      "type": "string",
      "test": "^.*,__LDAP_BASE__",
      "required": true,
      "role": "organizationLink"
    },
    "twakeDepartmentPath": {
      "type": "string",
      "test": "^[\\w\\s/,]+$",
      "required": true,
      "role": "organizationPath"
    }
  }
}
