"description":"The Admin SDK Directory API lets you view and manage enterprise resources such as users and groups, administrative notifications, security features, and more.",
"description":"Selector specifying which fields to include in a partial response.",
"location":"query"
},
"key":{
"type":"string",
"description":"API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location":"query"
},
"oauth_token":{
"type":"string",
"description":"OAuth 2.0 token for the current user.",
"location":"query"
},
"prettyPrint":{
"type":"boolean",
"description":"Returns response with indentations and line breaks.",
"default":"true",
"location":"query"
},
"quotaUser":{
"type":"string",
"description":"Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. Overrides userIp if both are provided.",
"location":"query"
},
"userIp":{
"type":"string",
"description":"IP address of the site where the request originates. Use this if you want to enforce per-user limits.",
"description":"JSON template for Building object in Directory API.",
"properties":{
"buildingId":{
"type":"string",
"description":"Unique identifier for the building. The maximum length is 100 characters."
},
"buildingName":{
"type":"string",
"description":"The building name as seen by users in Calendar. Must be unique for the customer. For example, \"NYC-CHEL\". The maximum length is 100 characters."
},
"coordinates":{
"$ref":"BuildingCoordinates",
"description":"The geographic coordinates of the center of the building, expressed as latitude and longitude in decimal degrees."
},
"description":{
"type":"string",
"description":"A brief description of the building. For example, \"Chelsea Market\"."
},
"etags":{
"type":"string",
"description":"ETag of the resource."
},
"floorNames":{
"type":"array",
"description":"The display names for all floors in this building. The floors are expected to be sorted in ascending order, from lowest floor to highest floor. For example, [\"B2\", \"B1\", \"L\", \"1\", \"2\", \"2M\", \"3\", \"PH\"] Must contain at least one entry.",
"description":"The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results."
"description":"The read-only auto-generated name of the calendar resource which includes metadata about the resource such as building name, floor, capacity, etc. For example, \"NYC-2-Training Room 1A (16)\"."
"description":"The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results."
}
}
},
"Channel":{
"id":"Channel",
"type":"object",
"description":"An notification channel used to watch for resource changes.",
"properties":{
"address":{
"type":"string",
"description":"The address where notifications are delivered for this channel."
},
"expiration":{
"type":"string",
"description":"Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.",
"format":"int64"
},
"id":{
"type":"string",
"description":"A UUID or similar unique string that identifies this channel."
},
"kind":{
"type":"string",
"description":"Identifies this as a notification channel used to watch for changes to a resource. Value: the fixed string \"api#channel\".",
"description":"Will Chromebook auto renew after support end date (Read-only)"
}
}
},
"ChromeOsDeviceAction":{
"id":"ChromeOsDeviceAction",
"type":"object",
"description":"JSON request template for firing actions on ChromeOs Device in Directory Devices API.",
"properties":{
"action":{
"type":"string",
"description":"Action to be taken on the ChromeOs Device",
"annotations":{
"required":[
"directory.chromeosdevices.action"
]
}
},
"deprovisionReason":{
"type":"string"
}
}
},
"ChromeOsDevices":{
"id":"ChromeOsDevices",
"type":"object",
"description":"JSON response template for List Chrome OS Devices operation in Directory API.",
"properties":{
"chromeosdevices":{
"type":"array",
"description":"List of Chrome OS Device objects.",
"items":{
"$ref":"ChromeOsDevice"
}
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#chromeosdevices"
},
"nextPageToken":{
"type":"string",
"description":"Token used to access next page of this result."
}
}
},
"ChromeOsMoveDevicesToOu":{
"id":"ChromeOsMoveDevicesToOu",
"type":"object",
"description":"JSON request template for moving ChromeOs Device to given OU in Directory Devices API.",
"properties":{
"deviceIds":{
"type":"array",
"description":"ChromeOs Devices to be moved to OU",
"items":{
"type":"string"
},
"annotations":{
"required":[
"directory.chromeosdevices.moveDevicesToOu"
]
}
}
}
},
"Customer":{
"id":"Customer",
"type":"object",
"description":"JSON template for Customer Resource object in Directory API.",
"properties":{
"alternateEmail":{
"type":"string",
"description":"The customer's secondary contact email address. This email address cannot be on the same domain as the customerDomain"
},
"customerCreationTime":{
"type":"string",
"description":"The customer's creation time (Readonly)",
"format":"date-time"
},
"customerDomain":{
"type":"string",
"description":"The customer's primary domain name string. Do not include the www prefix when creating a new customer."
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"id":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. (Readonly)"
},
"kind":{
"type":"string",
"description":"Identifies the resource as a customer. Value: admin#directory#customer",
"default":"admin#directory#customer"
},
"language":{
"type":"string",
"description":"The customer's ISO 639-2 language code. The default value is en-US"
},
"phoneNumber":{
"type":"string",
"description":"The customer's contact phone number in E.164 format."
},
"postalAddress":{
"$ref":"CustomerPostalAddress",
"description":"The customer's postal address information."
}
}
},
"CustomerPostalAddress":{
"id":"CustomerPostalAddress",
"type":"object",
"description":"JSON template for postal address of a customer.",
"properties":{
"addressLine1":{
"type":"string",
"description":"A customer's physical address. The address can be composed of one to three lines."
},
"addressLine2":{
"type":"string",
"description":"Address line 2 of the address."
},
"addressLine3":{
"type":"string",
"description":"Address line 3 of the address."
},
"contactName":{
"type":"string",
"description":"The customer contact's name."
},
"countryCode":{
"type":"string",
"description":"This is a required property. For countryCode information see the ISO 3166 country code elements."
},
"locality":{
"type":"string",
"description":"Name of the locality. An example of a locality value is the city of San Francisco."
},
"organizationName":{
"type":"string",
"description":"The company or company division name."
},
"postalCode":{
"type":"string",
"description":"The postal code. A postalCode example is a postal zip code such as 10009. This is in accordance with - http://portablecontacts.net/draft-spec.html#address_element."
},
"region":{
"type":"string",
"description":"Name of the region. An example of a region value is NY for the state of New York."
}
}
},
"DomainAlias":{
"id":"DomainAlias",
"type":"object",
"description":"JSON template for Domain Alias object in Directory API.",
"properties":{
"creationTime":{
"type":"string",
"description":"The creation time of the domain alias. (Read-only).",
"format":"int64"
},
"domainAliasName":{
"type":"string",
"description":"The domain alias name."
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#domainAlias"
},
"parentDomainName":{
"type":"string",
"description":"The parent domain name that the domain alias is associated with. This can either be a primary or secondary domain name within a customer.",
"annotations":{
"required":[
"directory.domains.insert"
]
}
},
"verified":{
"type":"boolean",
"description":"Indicates the verification state of a domain alias. (Read-only)"
}
}
},
"DomainAliases":{
"id":"DomainAliases",
"type":"object",
"description":"JSON response template to list domain aliases in Directory API.",
"properties":{
"domainAliases":{
"type":"array",
"description":"List of domain alias objects.",
"items":{
"$ref":"DomainAlias"
}
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#domainAliases"
}
}
},
"Domains":{
"id":"Domains",
"type":"object",
"description":"JSON template for Domain object in Directory API.",
"properties":{
"creationTime":{
"type":"string",
"description":"Creation time of the domain. (Read-only).",
"format":"int64"
},
"domainAliases":{
"type":"array",
"description":"List of domain alias objects. (Read-only)",
"items":{
"$ref":"DomainAlias"
}
},
"domainName":{
"type":"string",
"description":"The domain name of the customer.",
"annotations":{
"required":[
"directory.domains.insert"
]
}
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"isPrimary":{
"type":"boolean",
"description":"Indicates if the domain is a primary domain (Read-only)."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#domain"
},
"verified":{
"type":"boolean",
"description":"Indicates the verification state of a domain. (Read-only)."
}
}
},
"Domains2":{
"id":"Domains2",
"type":"object",
"description":"JSON response template to list Domains in Directory API.",
"description":"The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results."
"description":"Mobile Device SSN or Serial Number (Read-only)"
},
"status":{
"type":"string",
"description":"Status of the device (Read-only)"
},
"supportsWorkProfile":{
"type":"boolean",
"description":"Work profile supported on device (Read-only)"
},
"type":{
"type":"string",
"description":"The type of device (Read-only)"
},
"unknownSourcesStatus":{
"type":"boolean",
"description":"Unknown sources enabled or disabled on device (Read-only)"
},
"userAgent":{
"type":"string",
"description":"Mobile Device user agent"
},
"wifiMacAddress":{
"type":"string",
"description":"Mobile Device WiFi MAC address (Read-only)"
}
}
},
"MobileDeviceAction":{
"id":"MobileDeviceAction",
"type":"object",
"description":"JSON request template for firing commands on Mobile Device in Directory Devices API.",
"properties":{
"action":{
"type":"string",
"description":"Action to be taken on the Mobile Device",
"annotations":{
"required":[
"directory.mobiledevices.action"
]
}
}
}
},
"MobileDevices":{
"id":"MobileDevices",
"type":"object",
"description":"JSON response template for List Mobile Devices operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#mobiledevices"
},
"mobiledevices":{
"type":"array",
"description":"List of Mobile Device objects.",
"items":{
"$ref":"MobileDevice"
}
},
"nextPageToken":{
"type":"string",
"description":"Token used to access next page of this result."
}
}
},
"Notification":{
"id":"Notification",
"type":"object",
"description":"Template for a notification resource.",
"properties":{
"body":{
"type":"string",
"description":"Body of the notification (Read-only)"
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"fromAddress":{
"type":"string",
"description":"Address from which the notification is received (Read-only)"
},
"isUnread":{
"type":"boolean",
"description":"Boolean indicating whether the notification is unread or not.",
"annotations":{
"required":[
"directory.notifications.patch",
"directory.notifications.update"
]
}
},
"kind":{
"type":"string",
"description":"The type of the resource.",
"default":"admin#directory#notification"
},
"notificationId":{
"type":"string"
},
"sendTime":{
"type":"string",
"description":"Time at which notification was sent (Read-only)",
"format":"date-time"
},
"subject":{
"type":"string",
"description":"Subject of the notification (Read-only)"
}
}
},
"Notifications":{
"id":"Notifications",
"type":"object",
"description":"Template for notifications list response.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"List of notifications in this page.",
"items":{
"$ref":"Notification"
}
},
"kind":{
"type":"string",
"description":"The type of the resource.",
"default":"admin#directory#notifications"
},
"nextPageToken":{
"type":"string",
"description":"Token for fetching the next page of notifications."
},
"unreadNotificationsCount":{
"type":"integer",
"description":"Number of unread notification for the domain.",
"format":"int32"
}
}
},
"OrgUnit":{
"id":"OrgUnit",
"type":"object",
"description":"JSON template for Org Unit resource in Directory API.",
"properties":{
"blockInheritance":{
"type":"boolean",
"description":"Should block inheritance"
},
"description":{
"type":"string",
"description":"Description of OrgUnit"
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#orgUnit"
},
"name":{
"type":"string",
"description":"Name of OrgUnit",
"annotations":{
"required":[
"directory.orgunits.insert"
]
}
},
"orgUnitId":{
"type":"string",
"description":"Id of OrgUnit"
},
"orgUnitPath":{
"type":"string",
"description":"Path of OrgUnit"
},
"parentOrgUnitId":{
"type":"string",
"description":"Id of parent OrgUnit"
},
"parentOrgUnitPath":{
"type":"string",
"description":"Path of parent OrgUnit"
}
}
},
"OrgUnits":{
"id":"OrgUnits",
"type":"object",
"description":"JSON response template for List Organization Units operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#orgUnits"
},
"organizationUnits":{
"type":"array",
"description":"List of user objects.",
"items":{
"$ref":"OrgUnit"
}
}
}
},
"Privilege":{
"id":"Privilege",
"type":"object",
"description":"JSON template for privilege resource in Directory API.",
"properties":{
"childPrivileges":{
"type":"array",
"description":"A list of child privileges. Privileges for a service form a tree. Each privilege can have a list of child privileges; this list is empty for a leaf privilege.",
"items":{
"$ref":"Privilege"
}
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"isOuScopable":{
"type":"boolean",
"description":"If the privilege can be restricted to an organization unit."
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#privilege.",
"default":"admin#directory#privilege"
},
"privilegeName":{
"type":"string",
"description":"The name of the privilege."
},
"serviceId":{
"type":"string",
"description":"The obfuscated ID of the service this privilege is for."
},
"serviceName":{
"type":"string",
"description":"The name of the service this privilege is for."
}
}
},
"Privileges":{
"id":"Privileges",
"type":"object",
"description":"JSON response template for List privileges operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"A list of Privilege resources.",
"items":{
"$ref":"Privilege"
}
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#privileges.",
"default":"admin#directory#privileges"
}
}
},
"Role":{
"id":"Role",
"type":"object",
"description":"JSON template for role resource in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"isSuperAdminRole":{
"type":"boolean",
"description":"Returns true if the role is a super admin role."
},
"isSystemRole":{
"type":"boolean",
"description":"Returns true if this is a pre-defined system role."
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#role.",
"default":"admin#directory#role"
},
"roleDescription":{
"type":"string",
"description":"A short description of the role."
},
"roleId":{
"type":"string",
"description":"ID of the role.",
"format":"int64"
},
"roleName":{
"type":"string",
"description":"Name of the role.",
"annotations":{
"required":[
"directory.roles.insert"
]
}
},
"rolePrivileges":{
"type":"array",
"description":"The set of privileges that are granted to this role.",
"items":{
"type":"object",
"properties":{
"privilegeName":{
"type":"string",
"description":"The name of the privilege."
},
"serviceId":{
"type":"string",
"description":"The obfuscated ID of the service this privilege is for."
}
}
},
"annotations":{
"required":[
"directory.roles.insert"
]
}
}
}
},
"RoleAssignment":{
"id":"RoleAssignment",
"type":"object",
"description":"JSON template for roleAssignment resource in Directory API.",
"properties":{
"assignedTo":{
"type":"string",
"description":"The unique ID of the user this role is assigned to."
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#roleAssignment.",
"default":"admin#directory#roleAssignment"
},
"orgUnitId":{
"type":"string",
"description":"If the role is restricted to an organization unit, this contains the ID for the organization unit the exercise of this role is restricted to."
},
"roleAssignmentId":{
"type":"string",
"description":"ID of this roleAssignment.",
"format":"int64"
},
"roleId":{
"type":"string",
"description":"The ID of the role that is assigned.",
"format":"int64"
},
"scopeType":{
"type":"string",
"description":"The scope in which this role is assigned. Possible values are: \n- CUSTOMER\n- ORG_UNIT"
}
}
},
"RoleAssignments":{
"id":"RoleAssignments",
"type":"object",
"description":"JSON response template for List roleAssignments operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"A list of RoleAssignment resources.",
"items":{
"$ref":"RoleAssignment"
}
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#roleAssignments.",
"default":"admin#directory#roleAssignments"
},
"nextPageToken":{
"type":"string"
}
}
},
"Roles":{
"id":"Roles",
"type":"object",
"description":"JSON response template for List roles operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"A list of Role resources.",
"items":{
"$ref":"Role"
}
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#roles.",
"default":"admin#directory#roles"
},
"nextPageToken":{
"type":"string"
}
}
},
"Schema":{
"id":"Schema",
"type":"object",
"description":"JSON template for Schema resource in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"fields":{
"type":"array",
"description":"Fields of Schema",
"items":{
"$ref":"SchemaFieldSpec"
},
"annotations":{
"required":[
"directory.schemas.insert",
"directory.schemas.update"
]
}
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#schema"
},
"schemaId":{
"type":"string",
"description":"Unique identifier of Schema (Read-only)"
},
"schemaName":{
"type":"string",
"description":"Schema name",
"annotations":{
"required":[
"directory.schemas.insert"
]
}
}
}
},
"SchemaFieldSpec":{
"id":"SchemaFieldSpec",
"type":"object",
"description":"JSON template for FieldSpec resource for Schemas in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"fieldId":{
"type":"string",
"description":"Unique identifier of Field (Read-only)"
},
"fieldName":{
"type":"string",
"description":"Name of the field.",
"annotations":{
"required":[
"directory.schemas.insert",
"directory.schemas.update"
]
}
},
"fieldType":{
"type":"string",
"description":"Type of the field.",
"annotations":{
"required":[
"directory.schemas.insert",
"directory.schemas.update"
]
}
},
"indexed":{
"type":"boolean",
"description":"Boolean specifying whether the field is indexed or not.",
"default":"true"
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#schema#fieldspec"
},
"multiValued":{
"type":"boolean",
"description":"Boolean specifying whether this is a multi-valued field or not."
},
"numericIndexingSpec":{
"type":"object",
"description":"Indexing spec for a numeric field. By default, only exact match queries will be supported for numeric fields. Setting the numericIndexingSpec allows range queries to be supported.",
"properties":{
"maxValue":{
"type":"number",
"description":"Maximum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.",
"format":"double"
},
"minValue":{
"type":"number",
"description":"Minimum value of this field. This is meant to be indicative rather than enforced. Values outside this range will still be indexed, but search may not be as performant.",
"format":"double"
}
}
},
"readAccessType":{
"type":"string",
"description":"Read ACLs on the field specifying who can view values of this field. Valid values are \"ALL_DOMAIN_USERS\" and \"ADMINS_AND_SELF\".",
"default":"ALL_DOMAIN_USERS"
}
}
},
"Schemas":{
"id":"Schemas",
"type":"object",
"description":"JSON response template for List Schema operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#schemas"
},
"schemas":{
"type":"array",
"description":"List of UserSchema objects.",
"items":{
"$ref":"Schema"
}
}
}
},
"Token":{
"id":"Token",
"type":"object",
"description":"JSON template for token resource in Directory API.",
"properties":{
"anonymous":{
"type":"boolean",
"description":"Whether the application is registered with Google. The value is true if the application has an anonymous Client ID."
},
"clientId":{
"type":"string",
"description":"The Client ID of the application the token is issued to."
},
"displayText":{
"type":"string",
"description":"The displayable name of the application the token is issued to."
},
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#token.",
"default":"admin#directory#token"
},
"nativeApp":{
"type":"boolean",
"description":"Whether the token is issued to an installed application. The value is true if the application is installed to a desktop or mobile device."
},
"scopes":{
"type":"array",
"description":"A list of authorization scopes the application is granted.",
"items":{
"type":"string"
}
},
"userKey":{
"type":"string",
"description":"The unique ID of the user that issued the token."
}
}
},
"Tokens":{
"id":"Tokens",
"type":"object",
"description":"JSON response template for List tokens operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"A list of Token resources.",
"items":{
"$ref":"Token"
}
},
"kind":{
"type":"string",
"description":"The type of the API resource. This is always admin#directory#tokenList.",
"description":"Is enrolled in 2-step verification (Read-only)",
"readOnly":true
},
"isMailboxSetup":{
"type":"boolean",
"description":"Is mailbox setup (Read-only)",
"readOnly":true
},
"keywords":{
"type":"any"
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#user",
"readOnly":true
},
"languages":{
"type":"any"
},
"lastLoginTime":{
"type":"string",
"description":"User's last login time. (Read-only)",
"format":"date-time",
"readOnly":true
},
"locations":{
"type":"any"
},
"name":{
"$ref":"UserName",
"description":"User's name",
"annotations":{
"required":[
"directory.users.insert"
]
}
},
"nonEditableAliases":{
"type":"array",
"description":"List of non editable aliases (Read-only)",
"readOnly":true,
"items":{
"type":"string"
}
},
"notes":{
"type":"any"
},
"orgUnitPath":{
"type":"string",
"description":"OrgUnit of User"
},
"organizations":{
"type":"any"
},
"password":{
"type":"string",
"description":"User's password",
"annotations":{
"required":[
"directory.users.insert"
]
}
},
"phones":{
"type":"any"
},
"posixAccounts":{
"type":"any"
},
"primaryEmail":{
"type":"string",
"description":"username of User",
"annotations":{
"required":[
"directory.users.insert"
]
}
},
"relations":{
"type":"any"
},
"sshPublicKeys":{
"type":"any"
},
"suspended":{
"type":"boolean",
"description":"Indicates if user is suspended"
},
"suspensionReason":{
"type":"string",
"description":"Suspension reason if user is suspended (Read-only)",
"readOnly":true
},
"thumbnailPhotoEtag":{
"type":"string",
"description":"ETag of the user's photo (Read-only)",
"readOnly":true
},
"thumbnailPhotoUrl":{
"type":"string",
"description":"Photo Url of the user (Read-only)",
"readOnly":true
},
"websites":{
"type":"any"
}
}
},
"UserAbout":{
"id":"UserAbout",
"type":"object",
"description":"JSON template for About (notes) of a user in Directory API.",
"properties":{
"contentType":{
"type":"string",
"description":"About entry can have a type which indicates the content type. It can either be plain or html. By default, notes contents are assumed to contain plain text."
},
"value":{
"type":"string",
"description":"Actual value of notes."
}
}
},
"UserAddress":{
"id":"UserAddress",
"type":"object",
"description":"JSON template for address.",
"properties":{
"country":{
"type":"string",
"description":"Country."
},
"countryCode":{
"type":"string",
"description":"Country code."
},
"customType":{
"type":"string",
"description":"Custom type."
},
"extendedAddress":{
"type":"string",
"description":"Extended Address."
},
"formatted":{
"type":"string",
"description":"Formatted address."
},
"locality":{
"type":"string",
"description":"Locality."
},
"poBox":{
"type":"string",
"description":"Other parts of address."
},
"postalCode":{
"type":"string",
"description":"Postal code."
},
"primary":{
"type":"boolean",
"description":"If this is user's primary address. Only one entry could be marked as primary."
},
"region":{
"type":"string",
"description":"Region."
},
"sourceIsStructured":{
"type":"boolean",
"description":"User supplied address was structured. Structured addresses are NOT supported at this time. You might be able to write structured addresses, but any values will eventually be clobbered."
},
"streetAddress":{
"type":"string",
"description":"Street."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard values of that entry. For example address could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value. Such type should have the CUSTOM value as type and also have a customType value."
}
}
},
"UserCustomProperties":{
"id":"UserCustomProperties",
"type":"object",
"description":"JSON template for a set of custom properties (i.e. all fields in a particular schema)",
"additionalProperties":{
"type":"any"
}
},
"UserEmail":{
"id":"UserEmail",
"type":"object",
"description":"JSON template for an email.",
"properties":{
"address":{
"type":"string",
"description":"Email id of the user."
},
"customType":{
"type":"string",
"description":"Custom Type."
},
"primary":{
"type":"boolean",
"description":"If this is user's primary email. Only one entry could be marked as primary."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example email could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value Such types should have the CUSTOM value as type and also have a customType value."
}
}
},
"UserExternalId":{
"id":"UserExternalId",
"type":"object",
"description":"JSON template for an externalId entry.",
"description":"AddressMeAs. A human-readable string containing the proper way to refer to the profile owner by humans, for example \"he/him/his\" or \"they/them/their\"."
"description":"JSON template for instant messenger of an user.",
"properties":{
"customProtocol":{
"type":"string",
"description":"Custom protocol."
},
"customType":{
"type":"string",
"description":"Custom type."
},
"im":{
"type":"string",
"description":"Instant messenger id."
},
"primary":{
"type":"boolean",
"description":"If this is user's primary im. Only one entry could be marked as primary."
},
"protocol":{
"type":"string",
"description":"Protocol used in the instant messenger. It should be one of the values from ImProtocolTypes map. Similar to type, it can take a CUSTOM value and specify the custom name in customProtocol field."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example instant messengers could be of home, work etc. In addition to the standard type, an entry can have a custom type and can take any value. Such types should have the CUSTOM value as type and also have a customType value."
}
}
},
"UserKeyword":{
"id":"UserKeyword",
"type":"object",
"description":"JSON template for a keyword entry.",
"properties":{
"customType":{
"type":"string",
"description":"Custom Type."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard type of that entry. For example, keyword could be of type occupation or outlook. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value."
},
"value":{
"type":"string",
"description":"Keyword."
}
}
},
"UserLanguage":{
"id":"UserLanguage",
"type":"object",
"description":"JSON template for a language entry.",
"properties":{
"customLanguage":{
"type":"string",
"description":"Other language. User can provide own language name if there is no corresponding Google III language code. If this is set LanguageCode can't be set"
},
"languageCode":{
"type":"string",
"description":"Language Code. Should be used for storing Google III LanguageCode string representation for language. Illegal values cause SchemaException."
}
}
},
"UserLocation":{
"id":"UserLocation",
"type":"object",
"description":"JSON template for a location entry.",
"properties":{
"area":{
"type":"string",
"description":"Textual location. This is most useful for display purposes to concisely describe the location. For example, \"Mountain View, CA\", \"Near Seattle\", \"US-NYC-9TH 9A209A\"."
},
"buildingId":{
"type":"string",
"description":"Building Identifier."
},
"customType":{
"type":"string",
"description":"Custom Type."
},
"deskCode":{
"type":"string",
"description":"Most specific textual code of individual desk location."
},
"floorName":{
"type":"string",
"description":"Floor name/number."
},
"floorSection":{
"type":"string",
"description":"Floor section. More specific location within the floor. For example, if a floor is divided into sections \"A\", \"B\", and \"C\", this field would identify one of those values."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example location could be of types default and desk. In addition to standard type, an entry can have a custom type and can give it any name. Such types should have \"custom\" as type and also have a customType value."
}
}
},
"UserMakeAdmin":{
"id":"UserMakeAdmin",
"type":"object",
"description":"JSON request template for setting/revoking admin status of a user in Directory API.",
"properties":{
"status":{
"type":"boolean",
"description":"Boolean indicating new admin status of the user",
"annotations":{
"required":[
"directory.users.makeAdmin"
]
}
}
}
},
"UserName":{
"id":"UserName",
"type":"object",
"description":"JSON template for name of a user in Directory API.",
"properties":{
"familyName":{
"type":"string",
"description":"Last Name",
"annotations":{
"required":[
"directory.users.insert"
]
}
},
"fullName":{
"type":"string",
"description":"Full Name"
},
"givenName":{
"type":"string",
"description":"First Name",
"annotations":{
"required":[
"directory.users.insert"
]
}
}
}
},
"UserOrganization":{
"id":"UserOrganization",
"type":"object",
"description":"JSON template for an organization entry.",
"properties":{
"costCenter":{
"type":"string",
"description":"The cost center of the users department."
},
"customType":{
"type":"string",
"description":"Custom type."
},
"department":{
"type":"string",
"description":"Department within the organization."
},
"description":{
"type":"string",
"description":"Description of the organization."
},
"domain":{
"type":"string",
"description":"The domain to which the organization belongs to."
},
"fullTimeEquivalent":{
"type":"integer",
"description":"The full-time equivalent percent within the organization (100000 = 100%).",
"format":"int32"
},
"location":{
"type":"string",
"description":"Location of the organization. This need not be fully qualified address."
},
"name":{
"type":"string",
"description":"Name of the organization"
},
"primary":{
"type":"boolean",
"description":"If it user's primary organization."
},
"symbol":{
"type":"string",
"description":"Symbol of the organization."
},
"title":{
"type":"string",
"description":"Title (designation) of the user in the organization."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example organization could be of school, work etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a CustomType value."
}
}
},
"UserPhone":{
"id":"UserPhone",
"type":"object",
"description":"JSON template for a phone entry.",
"properties":{
"customType":{
"type":"string",
"description":"Custom Type."
},
"primary":{
"type":"boolean",
"description":"If this is user's primary phone or not."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example phone could be of home_fax, work, mobile etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value."
},
"value":{
"type":"string",
"description":"Phone number."
}
}
},
"UserPhoto":{
"id":"UserPhoto",
"type":"object",
"description":"JSON template for Photo object in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"height":{
"type":"integer",
"description":"Height in pixels of the photo",
"format":"int32"
},
"id":{
"type":"string",
"description":"Unique identifier of User (Read-only)"
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#user#photo"
},
"mimeType":{
"type":"string",
"description":"Mime Type of the photo"
},
"photoData":{
"type":"string",
"description":"Base64 encoded photo data",
"format":"byte",
"annotations":{
"required":[
"directory.users.photos.update"
]
}
},
"primaryEmail":{
"type":"string",
"description":"Primary email of User (Read-only)"
},
"width":{
"type":"integer",
"description":"Width in pixels of the photo",
"format":"int32"
}
}
},
"UserPosixAccount":{
"id":"UserPosixAccount",
"type":"object",
"description":"JSON template for a POSIX account entry. Description of the field family: go/fbs-posix.",
"description":"JSON template for a relation entry.",
"properties":{
"customType":{
"type":"string",
"description":"Custom Type."
},
"type":{
"type":"string",
"description":"The relation of the user. Some of the possible values are mother, father, sister, brother, manager, assistant, partner."
},
"value":{
"type":"string",
"description":"The name of the relation."
}
}
},
"UserSshPublicKey":{
"id":"UserSshPublicKey",
"type":"object",
"description":"JSON template for a POSIX account entry.",
"properties":{
"expirationTimeUsec":{
"type":"string",
"description":"An expiration time in microseconds since epoch.",
"format":"int64"
},
"fingerprint":{
"type":"string",
"description":"A SHA-256 fingerprint of the SSH public key. (Read-only)",
"readOnly":true
},
"key":{
"type":"string",
"description":"An SSH public key."
}
}
},
"UserUndelete":{
"id":"UserUndelete",
"type":"object",
"description":"JSON request template to undelete a user in Directory API.",
"properties":{
"orgUnitPath":{
"type":"string",
"description":"OrgUnit of User"
}
}
},
"UserWebsite":{
"id":"UserWebsite",
"type":"object",
"description":"JSON template for a website entry.",
"properties":{
"customType":{
"type":"string",
"description":"Custom Type."
},
"primary":{
"type":"boolean",
"description":"If this is user's primary website or not."
},
"type":{
"type":"string",
"description":"Each entry can have a type which indicates standard types of that entry. For example website could be of home, work, blog etc. In addition to the standard type, an entry can have a custom type and can give it any name. Such types should have the CUSTOM value as type and also have a customType value."
},
"value":{
"type":"string",
"description":"Website."
}
}
},
"Users":{
"id":"Users",
"type":"object",
"description":"JSON response template for List Users operation in Apps Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"Kind of resource this is.",
"default":"admin#directory#users"
},
"nextPageToken":{
"type":"string",
"description":"Token used to access next page of this result."
},
"trigger_event":{
"type":"string",
"description":"Event that triggered this response (only used in case of Push Response)"
},
"users":{
"type":"array",
"description":"List of user objects.",
"items":{
"$ref":"User"
}
}
}
},
"VerificationCode":{
"id":"VerificationCode",
"type":"object",
"description":"JSON template for verification codes in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"kind":{
"type":"string",
"description":"The type of the resource. This is always admin#directory#verificationCode.",
"default":"admin#directory#verificationCode"
},
"userId":{
"type":"string",
"description":"The obfuscated unique ID of the user."
},
"verificationCode":{
"type":"string",
"description":"A current verification code for the user. Invalidated or used verification codes are not returned as part of the result."
}
}
},
"VerificationCodes":{
"id":"VerificationCodes",
"type":"object",
"description":"JSON response template for List verification codes operation in Directory API.",
"properties":{
"etag":{
"type":"string",
"description":"ETag of the resource."
},
"items":{
"type":"array",
"description":"A list of verification code resources.",
"items":{
"$ref":"VerificationCode"
}
},
"kind":{
"type":"string",
"description":"The type of the resource. This is always admin#directory#verificationCodesList.",
"default":"admin#directory#verificationCodesList"
}
}
}
},
"resources":{
"asps":{
"methods":{
"delete":{
"id":"directory.asps.delete",
"path":"users/{userKey}/asps/{codeId}",
"httpMethod":"DELETE",
"description":"Delete an ASP issued by a user.",
"parameters":{
"codeId":{
"type":"integer",
"description":"The unique ID of the ASP to be deleted.",
"required":true,
"format":"int32",
"location":"path"
},
"userKey":{
"type":"string",
"description":"Identifies the user in the API request. The value can be the user's primary email address, alias email address, or unique user ID.",
"description":"Retrieve all groups in a domain (paginated)",
"parameters":{
"customer":{
"type":"string",
"description":"Immutable ID of the G Suite account. In case of multi-domain, to fetch all groups for a customer, fill this field instead of domain.",
"location":"query"
},
"domain":{
"type":"string",
"description":"Name of the domain. Fill this field to get groups from only this domain. To return all groups in a multi-domain fill customer field instead.",
"location":"query"
},
"maxResults":{
"type":"integer",
"description":"Maximum number of results to return. Default is 200",
"format":"int32",
"minimum":"1",
"location":"query"
},
"pageToken":{
"type":"string",
"description":"Token to specify next page in the list",
"description":"Email or immutable ID of the user if only those groups are to be listed, the given user is a member of. If ID, it should match with id of user object",
"description":"The ID of the building to delete.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID of the building to retrieve.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"Retrieves a list of buildings for an account.",
"parameters":{
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"Updates a building. This method supports patch semantics.",
"parameters":{
"buildingId":{
"type":"string",
"description":"The ID of the building to update.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The ID of the building to update.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID of the calendar resource to delete.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID of the calendar resource to retrieve.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"Retrieves a list of calendar resources for an account.",
"parameters":{
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"maxResults":{
"type":"integer",
"description":"Maximum number of results to return.",
"description":"Field(s) to sort results by in either ascending or descending order. Supported fields include resourceId, resourceName, capacity, buildingId, and floorName. If no order is specified, defaults to ascending. Should be of the form \"field [asc|desc], field [asc|desc], ...\". For example buildingId, capacity desc would return results sorted first by buildingId in ascending order then by capacity in descending order.",
"description":"String query used to filter results. Should be of the form \"field operator value\" where field can be any of supported fields and operators can be any of supported operations. Operators include '=' for exact match and ':' for prefix match where applicable. For prefix match, the value should always be followed by a *.",
"description":"Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved. This method supports patch semantics.",
"description":"The unique ID of the calendar resource to update.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"Updates a calendar resource.\n\nThis method supports patch semantics, meaning you only need to include the fields you wish to update. Fields that are not present in the request will be preserved.",
"description":"The unique ID of the calendar resource to update.",
"required":true,
"location":"path"
},
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"featureKey":{
"type":"string",
"description":"The unique ID of the feature to delete.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"featureKey":{
"type":"string",
"description":"The unique ID of the feature to retrieve.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"description":"Retrieves a list of features for an account.",
"parameters":{
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"pageToken":{
"type":"string",
"description":"Token to specify the next page in the list.",
"description":"Updates a feature. This method supports patch semantics.",
"parameters":{
"customer":{
"type":"string",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"featureKey":{
"type":"string",
"description":"The unique ID of the feature to update.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"oldName":{
"type":"string",
"description":"The unique ID of the feature to rename.",
"description":"The unique ID for the customer's G Suite account. As an account administrator, you can also use the my_customer alias to represent your account's customer ID.",
"required":true,
"location":"path"
},
"featureKey":{
"type":"string",
"description":"The unique ID of the feature to update.",
"description":"Retrieves a paginated list of all roleAssignments.",
"parameters":{
"customer":{
"type":"string",
"description":"Immutable ID of the G Suite account.",
"required":true,
"location":"path"
},
"maxResults":{
"type":"integer",
"description":"Maximum number of results to return.",
"format":"int32",
"minimum":"1",
"maximum":"200",
"location":"query"
},
"pageToken":{
"type":"string",
"description":"Token to specify the next page in the list.",
"location":"query"
},
"roleId":{
"type":"string",
"description":"Immutable ID of a role. If included in the request, returns only role assignments containing this role ID.",
"location":"query"
},
"userKey":{
"type":"string",
"description":"The user's primary email address, alias email address, or unique user ID. If included in the request, returns role assignments only for this user.",
"description":"Retrieve either deleted users or all users in a domain (paginated)",
"parameters":{
"customFieldMask":{
"type":"string",
"description":"Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.",
"location":"query"
},
"customer":{
"type":"string",
"description":"Immutable ID of the G Suite account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.",
"location":"query"
},
"domain":{
"type":"string",
"description":"Name of the domain. Fill this field to get users from only this domain. To return all users in a multi-domain fill customer field instead.",
"location":"query"
},
"event":{
"type":"string",
"description":"Event on which subscription is intended (if subscribing)",
"enum":[
"add",
"delete",
"makeAdmin",
"undelete",
"update"
],
"enumDescriptions":[
"User Created Event",
"User Deleted Event",
"User Admin Status Change Event",
"User Undeleted Event",
"User Updated Event"
],
"location":"query"
},
"maxResults":{
"type":"integer",
"description":"Maximum number of results to return. Default is 100. Max allowed is 500",
"format":"int32",
"minimum":"1",
"maximum":"500",
"location":"query"
},
"orderBy":{
"type":"string",
"description":"Column to use for sorting results",
"enum":[
"email",
"familyName",
"givenName"
],
"enumDescriptions":[
"Primary email of the user.",
"User's family name.",
"User's given name."
],
"location":"query"
},
"pageToken":{
"type":"string",
"description":"Token to specify next page in the list",
"location":"query"
},
"projection":{
"type":"string",
"description":"What subset of fields to fetch for this user.",
"default":"basic",
"enum":[
"basic",
"custom",
"full"
],
"enumDescriptions":[
"Do not include any custom fields for the user.",
"Include custom fields from schemas mentioned in customFieldMask.",
"Include all fields associated with this user."
],
"location":"query"
},
"query":{
"type":"string",
"description":"Query string search. Should be of the form \"\". Complete documentation is at https://developers.google.com/admin-sdk/directory/v1/guides/search-users",
"location":"query"
},
"showDeleted":{
"type":"string",
"description":"If set to true retrieves the list of deleted users. Default is false",
"location":"query"
},
"sortOrder":{
"type":"string",
"description":"Whether to return results in ascending or descending order.",
"enum":[
"ASCENDING",
"DESCENDING"
],
"enumDescriptions":[
"Ascending order.",
"Descending order."
],
"location":"query"
},
"viewType":{
"type":"string",
"description":"Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.",
"description":"Comma-separated list of schema names. All fields from these schemas are fetched. This should only be set when projection=custom.",
"location":"query"
},
"customer":{
"type":"string",
"description":"Immutable ID of the G Suite account. In case of multi-domain, to fetch all users for a customer, fill this field instead of domain.",
"location":"query"
},
"domain":{
"type":"string",
"description":"Name of the domain. Fill this field to get users from only this domain. To return all users in a multi-domain fill customer field instead.",
"location":"query"
},
"event":{
"type":"string",
"description":"Event on which subscription is intended (if subscribing)",
"enum":[
"add",
"delete",
"makeAdmin",
"undelete",
"update"
],
"enumDescriptions":[
"User Created Event",
"User Deleted Event",
"User Admin Status Change Event",
"User Undeleted Event",
"User Updated Event"
],
"location":"query"
},
"maxResults":{
"type":"integer",
"description":"Maximum number of results to return. Default is 100. Max allowed is 500",
"format":"int32",
"minimum":"1",
"maximum":"500",
"location":"query"
},
"orderBy":{
"type":"string",
"description":"Column to use for sorting results",
"enum":[
"email",
"familyName",
"givenName"
],
"enumDescriptions":[
"Primary email of the user.",
"User's family name.",
"User's given name."
],
"location":"query"
},
"pageToken":{
"type":"string",
"description":"Token to specify next page in the list",
"location":"query"
},
"projection":{
"type":"string",
"description":"What subset of fields to fetch for this user.",
"default":"basic",
"enum":[
"basic",
"custom",
"full"
],
"enumDescriptions":[
"Do not include any custom fields for the user.",
"Include custom fields from schemas mentioned in customFieldMask.",
"Include all fields associated with this user."
],
"location":"query"
},
"query":{
"type":"string",
"description":"Query string search. Should be of the form \"\". Complete documentation is at https://developers.google.com/admin-sdk/directory/v1/guides/search-users",
"location":"query"
},
"showDeleted":{
"type":"string",
"description":"If set to true retrieves the list of deleted users. Default is false",
"location":"query"
},
"sortOrder":{
"type":"string",
"description":"Whether to return results in ascending or descending order.",
"enum":[
"ASCENDING",
"DESCENDING"
],
"enumDescriptions":[
"Ascending order.",
"Descending order."
],
"location":"query"
},
"viewType":{
"type":"string",
"description":"Whether to fetch the ADMIN_VIEW or DOMAIN_PUBLIC view of the user.",