{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/shanghai-jiao-tong-university/main/json-schema/shanghai-jiao-tong-university-account-info.json",
  "title": "SJTU Data Resources Account Record",
  "description": "Generated by API Evangelist, derived from Shanghai Jiao Tong University's own published documentation — SJTU publishes no JSON Schema. The account record returned in entities[] by GET https://graphql.sjtu.edu.cn/v1/account/info. Derived from the 响应参数 structure at https://developer.sjtu.edu.cn/graphql/overview.html and /graphql/account.html. Distinct from the Open API Profile object: this is the administrative account record from the university's own data-exchange platform, it carries the identity-document number and the full relation list, and it is released only to an application whose 数据资源申请 was approved for those specific fields.",
  "type": "object",
  "properties": {
    "accountNo": {
      "type": "string",
      "description": "jAccount account name.",
      "examples": [
        "zhangsan"
      ]
    },
    "guid": {
      "type": "string",
      "description": "Stable record identifier.",
      "examples": [
        "28A42245-7435-499C-B2B7-xxxxxxx"
      ]
    },
    "displayName": {
      "type": "string",
      "description": "Display name."
    },
    "accountStatus": {
      "type": "string",
      "description": "Account status.",
      "enum": [
        "正常",
        "过期",
        "冻结"
      ],
      "x-enum-en": [
        "normal",
        "expired",
        "frozen"
      ]
    },
    "identityExpireDate": {
      "type": "string",
      "format": "date",
      "description": "Expiry date of the identity."
    },
    "userStyle": {
      "type": "string",
      "description": "Default identity type. See vocabulary/shanghai-jiao-tong-university-vocabulary.yml.",
      "enum": [
        "faculty",
        "student",
        "yxy",
        "fsyyjzg",
        "vip",
        "postphd",
        "external_teacher",
        "summer",
        "team",
        "schoolFellow",
        "green",
        "outside",
        "fszxjs",
        "freshman"
      ]
    },
    "userId": {
      "type": "string",
      "description": "Staff or student number."
    },
    "cardType": {
      "type": "string",
      "description": "Identity-document type code. See the cardType table in the vocabulary artifact.",
      "examples": [
        "01"
      ]
    },
    "cardNo": {
      "type": "string",
      "description": "Identity-document number. Personally identifying; released only where the application was approved for it."
    },
    "telephone": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "topOrganizeId": {
      "type": "string",
      "description": "Second-level unit code.",
      "examples": [
        "40100"
      ]
    },
    "topOrganizeName": {
      "type": "string",
      "examples": [
        "网络信息中心"
      ]
    },
    "timestamp": {
      "type": "string",
      "description": "Last-update time, yyyy-MM-dd or yyyy-MM-dd HH:mm:ss. Also accepted as a request filter, where it selects records updated at or after the given time — the platform's incremental-sync mechanism."
    },
    "relationList": {
      "type": "array",
      "description": "Every identity bound to this account. A person may hold several at once (faculty and postphd, for example), each with its own number, expiry, document and owning unit.",
      "items": {
        "type": "object",
        "properties": {
          "userStyle": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "expireDate": {
            "type": "string",
            "format": "date"
          },
          "cardType": {
            "type": "string"
          },
          "cardNo": {
            "type": "string"
          },
          "topOrganizeId": {
            "type": "string"
          },
          "topOrganizeName": {
            "type": "string"
          }
        }
      }
    }
  }
}
