Google Workspace · Schema

Google Workspace Admin SDK Directory API Models

JSON Schema definitions for core resource models in the Google Workspace Admin SDK Directory API, including User, Group, and OrgUnit representations.

CalendarCollaborationEmailProductivityStorageVideo Conferencing
View JSON Schema on GitHub

JSON Schema

google-workspace-user-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/kinlane/google-workspace/json-schema/google-workspace-user-schema.json",
  "title": "Google Workspace Admin SDK Directory API Models",
  "description": "JSON Schema definitions for core resource models in the Google Workspace Admin SDK Directory API, including User, Group, and OrgUnit representations.",
  "$defs": {
    "UserName": {
      "type": "object",
      "title": "User Name",
      "description": "Represents the name of a Google Workspace user, containing given name, family name, and a derived full name.",
      "properties": {
        "givenName": {
          "type": "string",
          "description": "The user's first name. Required when creating a user account.",
          "maxLength": 60
        },
        "familyName": {
          "type": "string",
          "description": "The user's last name. Required when creating a user account.",
          "maxLength": 60
        },
        "fullName": {
          "type": "string",
          "description": "The user's full name formed by concatenating the first and last name values. Read-only.",
          "readOnly": true
        },
        "displayName": {
          "type": "string",
          "description": "The user's display name."
        }
      },
      "required": ["givenName", "familyName"]
    },

    "UserEmail": {
      "type": "object",
      "title": "User Email",
      "description": "An email address associated with a Google Workspace user account.",
      "properties": {
        "address": {
          "type": "string",
          "format": "email",
          "description": "The user's email address."
        },
        "type": {
          "type": "string",
          "description": "The type of the email account, such as home, work, or other."
        },
        "customType": {
          "type": "string",
          "description": "A custom type string when type is set to custom."
        },
        "primary": {
          "type": "boolean",
          "description": "Indicates if this is the user's primary email."
        }
      }
    },

    "UserPhone": {
      "type": "object",
      "title": "User Phone",
      "description": "A phone number associated with a Google Workspace user account.",
      "properties": {
        "value": {
          "type": "string",
          "description": "A human-readable phone number."
        },
        "type": {
          "type": "string",
          "description": "The type of phone number, such as mobile, home, work, or other."
        },
        "customType": {
          "type": "string",
          "description": "A custom type string when type is set to custom."
        },
        "primary": {
          "type": "boolean",
          "description": "Indicates if this is the user's primary phone number."
        }
      }
    },

    "UserAddress": {
      "type": "object",
      "title": "User Address",
      "description": "A physical address associated with a Google Workspace user account.",
      "properties": {
        "type": {
          "type": "string",
          "description": "The address type, such as home, work, or other."
        },
        "customType": {
          "type": "string",
          "description": "A custom type string when type is set to custom."
        },
        "streetAddress": {
          "type": "string",
          "description": "The street address."
        },
        "locality": {
          "type": "string",
          "description": "The town or city of the address."
        },
        "region": {
          "type": "string",
          "description": "The abbreviated province or state."
        },
        "postalCode": {
          "type": "string",
          "description": "The ZIP or postal code."
        },
        "country": {
          "type": "string",
          "description": "Country name."
        },
        "countryCode": {
          "type": "string",
          "description": "The country code using ISO 3166-1 standard."
        },
        "formatted": {
          "type": "string",
          "description": "A full and unstructured postal address."
        },
        "poBox": {
          "type": "string",
          "description": "The post office box."
        },
        "extendedAddress": {
          "type": "string",
          "description": "For extended addresses such as an apartment or suite number."
        },
        "primary": {
          "type": "boolean",
          "description": "If this is the user's primary address."
        },
        "sourceIsStructured": {
          "type": "boolean",
          "description": "Indicates if the user-supplied address was formatted."
        }
      }
    },

    "UserOrganization": {
      "type": "object",
      "title": "User Organization",
      "description": "An organization entry associated with a Google Workspace user, representing their employment or affiliation.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the organization."
        },
        "title": {
          "type": "string",
          "description": "The user's title within the organization."
        },
        "department": {
          "type": "string",
          "description": "Specifies the department within the organization."
        },
        "description": {
          "type": "string",
          "description": "The description of the organization."
        },
        "costCenter": {
          "type": "string",
          "description": "The cost center of the user's organization."
        },
        "location": {
          "type": "string",
          "description": "The physical location of the organization."
        },
        "domain": {
          "type": "string",
          "description": "The domain the organization belongs to."
        },
        "symbol": {
          "type": "string",
          "description": "Text string symbol of the organization."
        },
        "type": {
          "type": "string",
          "description": "The type of organization."
        },
        "customType": {
          "type": "string",
          "description": "A custom type string when type is set to custom."
        },
        "primary": {
          "type": "boolean",
          "description": "Indicates if this is the user's primary organization."
        },
        "fullTimeEquivalent": {
          "type": "integer",
          "description": "The full-time equivalent millipercent within the organization (100000 = 100%)."
        }
      }
    },

    "UserLocation": {
      "type": "object",
      "title": "User Location",
      "description": "A physical location associated with a Google Workspace user.",
      "properties": {
        "type": {
          "type": "string",
          "description": "The location type, such as desk or default."
        },
        "customType": {
          "type": "string",
          "description": "A custom type string when type is set to custom."
        },
        "area": {
          "type": "string",
          "description": "A textual location, useful for display purposes."
        },
        "buildingId": {
          "type": "string",
          "description": "Building identifier."
        },
        "floorName": {
          "type": "string",
          "description": "Floor name/number."
        },
        "floorSection": {
          "type": "string",
          "description": "Floor section (a more specific location within the floor)."
        },
        "deskCode": {
          "type": "string",
          "description": "Most specific textual code of individual desk location."
        }
      }
    },

    "User": {
      "type": "object",
      "title": "Google Workspace User",
      "description": "Represents a user account in a Google Workspace domain. Users are the primary entities managed through the Admin SDK Directory API. A user account provides access to Google Workspace services and is associated with an organizational unit.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#user",
          "description": "The type of the API resource. Always admin#directory#user.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "The unique ID for the user. A user id can be used as a user request URI userKey.",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.",
          "readOnly": true
        },
        "primaryEmail": {
          "type": "string",
          "format": "email",
          "description": "The user's primary email address. This property is required to create a user account and must be unique across the domain."
        },
        "name": {
          "$ref": "#/$defs/UserName",
          "description": "Holds the given and family names of the user, and the read-only fullName value."
        },
        "isAdmin": {
          "type": "boolean",
          "description": "Indicates a user with super administrator privileges. Can only be changed via the makeAdmin method.",
          "readOnly": true
        },
        "isDelegatedAdmin": {
          "type": "boolean",
          "description": "Indicates if the user is a delegated administrator.",
          "readOnly": true
        },
        "lastLoginTime": {
          "type": "string",
          "format": "date-time",
          "description": "The last time the user logged in, in ISO 8601 date-time format.",
          "readOnly": true
        },
        "creationTime": {
          "type": "string",
          "format": "date-time",
          "description": "User's Google Workspace account creation time, in ISO 8601 date-time format.",
          "readOnly": true
        },
        "deletionTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time the user's account was deleted, in ISO 8601 date-time format.",
          "readOnly": true
        },
        "agreedToTerms": {
          "type": "boolean",
          "description": "Indicates if the user has completed an initial login and accepted the Terms of Service agreement.",
          "readOnly": true
        },
        "password": {
          "type": "string",
          "description": "Stores the password for the user account. Required when creating a user. Must be 8-100 ASCII characters. Never returned in API responses.",
          "writeOnly": true,
          "minLength": 8,
          "maxLength": 100
        },
        "hashFunction": {
          "type": "string",
          "description": "Stores the hash format of the password property.",
          "enum": ["MD5", "SHA-1", "crypt"]
        },
        "suspended": {
          "type": "boolean",
          "description": "Indicates if the user is suspended."
        },
        "suspensionReason": {
          "type": "string",
          "description": "The reason a user account is suspended. Only returned if the suspended property is true.",
          "readOnly": true
        },
        "changePasswordAtNextLogin": {
          "type": "boolean",
          "description": "Indicates if the user is forced to change their password at next login."
        },
        "ipWhitelisted": {
          "type": "boolean",
          "description": "If true, the user's IP address is subject to a deprecated allowlist configuration."
        },
        "customerId": {
          "type": "string",
          "description": "The unique ID for the customer's Google Workspace account.",
          "readOnly": true
        },
        "orgUnitPath": {
          "type": "string",
          "description": "The full path of the parent organization associated with the user. If the parent is the top-level organization, it is represented as a forward slash (/)."
        },
        "isMailboxSetup": {
          "type": "boolean",
          "description": "Indicates if the user's Google mailbox has been created.",
          "readOnly": true
        },
        "includeInGlobalAddressList": {
          "type": "boolean",
          "description": "Indicates if the user's profile is visible in the Google Workspace global address list."
        },
        "thumbnailPhotoUrl": {
          "type": "string",
          "format": "uri",
          "description": "Photo URL of the user. Read-only.",
          "readOnly": true
        },
        "thumbnailPhotoEtag": {
          "type": "string",
          "description": "ETag of the user's photo.",
          "readOnly": true
        },
        "archived": {
          "type": "boolean",
          "description": "Indicates if the user is archived."
        },
        "recoveryEmail": {
          "type": "string",
          "format": "email",
          "description": "Recovery email of the user."
        },
        "recoveryPhone": {
          "type": "string",
          "description": "Recovery phone of the user. The phone number must be in E.164 format, starting with the plus sign (+)."
        },
        "isEnrolledIn2Sv": {
          "type": "boolean",
          "description": "Is enrolled in 2-step verification.",
          "readOnly": true
        },
        "isEnforcedIn2Sv": {
          "type": "boolean",
          "description": "Is 2-step verification enforced.",
          "readOnly": true
        },
        "emails": {
          "type": "array",
          "description": "A list of the user's email addresses.",
          "items": {
            "$ref": "#/$defs/UserEmail"
          }
        },
        "phones": {
          "type": "array",
          "description": "A list of the user's phone numbers.",
          "items": {
            "$ref": "#/$defs/UserPhone"
          }
        },
        "addresses": {
          "type": "array",
          "description": "A list of the user's addresses.",
          "items": {
            "$ref": "#/$defs/UserAddress"
          }
        },
        "organizations": {
          "type": "array",
          "description": "A list of organizations the user belongs to.",
          "items": {
            "$ref": "#/$defs/UserOrganization"
          }
        },
        "locations": {
          "type": "array",
          "description": "The user's locations.",
          "items": {
            "$ref": "#/$defs/UserLocation"
          }
        },
        "relations": {
          "type": "array",
          "description": "A list of the user's relationships to other users.",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "The name or email of the related person."
              },
              "type": {
                "type": "string",
                "description": "The relation type."
              },
              "customType": {
                "type": "string",
                "description": "A custom type string when type is set to custom."
              }
            }
          }
        },
        "externalIds": {
          "type": "array",
          "description": "A list of external IDs for the user, such as employee or network ID.",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "The value of the external ID."
              },
              "type": {
                "type": "string",
                "description": "The type of external ID."
              },
              "customType": {
                "type": "string",
                "description": "A custom type string when type is set to custom."
              }
            }
          }
        },
        "websites": {
          "type": "array",
          "description": "A list of the user's websites.",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "format": "uri",
                "description": "The URL of the website."
              },
              "type": {
                "type": "string",
                "description": "The website type."
              },
              "customType": {
                "type": "string",
                "description": "A custom type string when type is set to custom."
              },
              "primary": {
                "type": "boolean",
                "description": "Indicates if this is the user's primary website."
              }
            }
          }
        },
        "languages": {
          "type": "array",
          "description": "The user's languages.",
          "items": {
            "type": "object",
            "properties": {
              "languageCode": {
                "type": "string",
                "description": "An ISO 639 language code string."
              },
              "customLanguage": {
                "type": "string",
                "description": "A custom language string."
              },
              "preference": {
                "type": "string",
                "description": "Controls whether the specified languageCode is the user's preferred language."
              }
            }
          }
        },
        "gender": {
          "type": "object",
          "description": "The user's gender.",
          "properties": {
            "type": {
              "type": "string",
              "description": "The gender type: male, female, other, or unknown."
            },
            "customGender": {
              "type": "string",
              "description": "A custom gender string when type is other."
            },
            "addressMeAs": {
              "type": "string",
              "description": "How the user should be addressed."
            }
          }
        },
        "keywords": {
          "type": "array",
          "description": "The user's keywords.",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "The keyword value."
              },
              "type": {
                "type": "string",
                "description": "The keyword type."
              },
              "customType": {
                "type": "string",
                "description": "A custom type string when type is set to custom."
              }
            }
          }
        },
        "notes": {
          "type": "object",
          "description": "Notes for the user.",
          "properties": {
            "value": {
              "type": "string",
              "description": "The contents of the notes."
            },
            "contentType": {
              "type": "string",
              "description": "The content type of the notes body.",
              "enum": ["text_plain", "text_html"]
            }
          }
        },
        "customSchemas": {
          "type": "object",
          "description": "Custom fields of the user. The key is the schema name. The value is an object with field name/value pairs for the schema.",
          "additionalProperties": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "required": ["primaryEmail", "name"]
    },

    "Group": {
      "type": "object",
      "title": "Google Workspace Group",
      "description": "Represents a group in a Google Workspace domain. Groups can be used for email distribution, access control, and collaboration. A group has an email address and can contain users, other groups, and service accounts as members.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#group",
          "description": "The type of the API resource. Always admin#directory#group.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "The unique ID of the group.",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.",
          "readOnly": true
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "The group's email address. Required when creating a group. Must be unique."
        },
        "name": {
          "type": "string",
          "description": "The group's display name."
        },
        "description": {
          "type": "string",
          "description": "An extended description to help users determine the purpose of a group.",
          "maxLength": 4096
        },
        "adminCreated": {
          "type": "boolean",
          "description": "True if this group was created by an administrator rather than a user.",
          "readOnly": true
        },
        "directMembersCount": {
          "type": "string",
          "description": "The number of users that are direct members of the group. Members of child groups are not counted.",
          "readOnly": true
        },
        "aliases": {
          "type": "array",
          "description": "A list of the group's alias email addresses.",
          "readOnly": true,
          "items": {
            "type": "string",
            "format": "email"
          }
        },
        "nonEditableAliases": {
          "type": "array",
          "description": "A list of the group's non-editable alias email addresses outside of the account's primary domain.",
          "readOnly": true,
          "items": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "required": ["email"]
    },

    "OrgUnit": {
      "type": "object",
      "title": "Google Workspace Organizational Unit",
      "description": "Represents an organizational unit in a Google Workspace domain. Organizational units allow administrators to configure user service access, apply policies, and manage settings hierarchically. The hierarchy is limited to 35 levels of depth.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#orgUnit",
          "description": "The type of the API resource. Always admin#directory#orgUnit.",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "description": "ETag of the resource.",
          "readOnly": true
        },
        "name": {
          "type": "string",
          "description": "The organizational unit's path name. For example, an organizational unit with parent path /corp and name sales is derived as /corp/sales."
        },
        "description": {
          "type": "string",
          "description": "Description of the organizational unit."
        },
        "orgUnitPath": {
          "type": "string",
          "description": "The full path to the organizational unit. A derived property based on parentOrgUnitPath and the name.",
          "readOnly": true
        },
        "orgUnitId": {
          "type": "string",
          "description": "The unique ID of the organizational unit.",
          "readOnly": true
        },
        "parentOrgUnitPath": {
          "type": "string",
          "description": "The organizational unit's parent path. Required unless parentOrgUnitId is set."
        },
        "parentOrgUnitId": {
          "type": "string",
          "description": "The unique ID of the parent organizational unit. Required unless parentOrgUnitPath is set."
        },
        "blockInheritance": {
          "type": "boolean",
          "description": "Deprecated. Setting this field has no effect.",
          "deprecated": true
        }
      },
      "required": ["name"]
    },

    "Users": {
      "type": "object",
      "title": "Users List",
      "description": "A paginated list response containing Google Workspace user resources.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#users",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "readOnly": true
        },
        "users": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/User"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "Token for retrieving the next page of results."
        }
      }
    },

    "Groups": {
      "type": "object",
      "title": "Groups List",
      "description": "A paginated list response containing Google Workspace group resources.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#groups",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "readOnly": true
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Group"
          }
        },
        "nextPageToken": {
          "type": "string",
          "description": "Token for retrieving the next page of results."
        }
      }
    },

    "OrgUnits": {
      "type": "object",
      "title": "OrgUnits List",
      "description": "A list response containing Google Workspace organizational unit resources.",
      "properties": {
        "kind": {
          "type": "string",
          "const": "admin#directory#orgUnits",
          "readOnly": true
        },
        "etag": {
          "type": "string",
          "readOnly": true
        },
        "organizationUnits": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OrgUnit"
          }
        }
      }
    }
  }
}