{
  "Users": {
    "type": "array",
    "items": {
      "type": "object",
      "required": [
        "dateCreated",
        "user",
        "roleName",
        "expired",
        "id",
        "projects",
        "name",
        "role",
        "flags",
        "email",
        "pending"
      ],
      "properties": {
        "dateCreated": {
          "type": "string"
        },
        "user": {
          "$ref": "users.json#/User"
        },
        "roleName": {
          "type": "string"
        },
        "expired": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "projects": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "name": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": ["owner", "manager", "admin", "member", "billing"]
        },
        "flags": {
          "type": "object",
          "properties": {
            "sso: linked": {
              "type": "boolean"
            },
            "sso: invalid": {
              "type": "boolean"
            }
          }
        },
        "email": {
          "type": "string"
        },
        "pending": {
          "type": "boolean"
        }
      }
    }
  },
  "User": {
    "type": "object",
    "required": [
      "username",
      "lastLogin",
      "isSuperuser",
      "isManaged",
      "lastActive",
      "isStaff",
      "id",
      "isActive",
      "has2fa",
      "name",
      "avatarUrl",
      "dateJoined",
      "emails",
      "avatar",
      "hasPasswordAuth",
      "email"
    ],
    "properties": {
      "username": {
        "type": "string"
      },
      "lastLogin": {
        "type": "string",
        "nullable": true
      },
      "isSuperuser": {
        "type": "boolean"
      },
      "isManaged": {
        "type": "boolean"
      },
      "lastActive": {
        "type": "string"
      },
      "isStaff": {
        "type": "boolean"
      },
      "id": {
        "type": "string"
      },
      "isActive": {
        "type": "boolean"
      },
      "has2fa": {
        "type": "boolean"
      },
      "name": {
        "type": "string"
      },
      "avatarUrl": {
        "type": "string"
      },
      "dateJoined": {
        "type": "string"
      },
      "emails": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "is_verified": {
              "type": "boolean"
            },
            "id": {
              "type": "string"
            },
            "email": {
              "type": "string"
            }
          }
        }
      },
      "avatar": {
        "$ref": "avatar.json#/Avatar"
      },
      "hasPasswordAuth": {
        "type": "boolean"
      },
      "email": {
        "type": "string"
      }
    }
  },
  "EventUser": {
    "type": "object",
    "nullable": true,
    "required": ["username", "name", "ip_address", "email", "data", "id"],
    "properties": {
      "username": {
        "type": "string",
        "nullable": true
      },
      "name": {
        "type": "string",
        "nullable": true
      },
      "ip_address": {
        "type": "string",
        "nullable": true
      },
      "email": {
        "type": "string",
        "nullable": true
      },
      "data": {
        "type": "object",
        "nullable": true,
        "properties": {
          "isStaff": {
            "type": "boolean"
          }
        }
      },
      "id": {
        "type": "string"
      }
    }
  }
}