v3User
JSON Schema for v3User, extracted from The Things Stack v3.36 api.swagger.json
LoRaWANIoTInternet Of ThingsOpen SourceNetwork ServerLPWANTelemetrySensorsGatewaysConnectivityApache 2.0
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://api-evangelist.github.io/the-things-network/json-schema/the-things-stack-user-schema.json",
"title": "v3User",
"description": "JSON Schema for v3User, extracted from The Things Stack v3.36 api.swagger.json",
"definitions": {
"v3User": {
"type": "object",
"properties": {
"ids": {
"$ref": "#/definitions/v3UserIdentifiers",
"description": "The identifiers of the user. These are public and can be seen by any authenticated user in the network."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "When the user was created. This information is public and can be seen by any authenticated user in the network."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "When the user was last updated. This information is public and can be seen by any authenticated user in the network."
},
"deleted_at": {
"type": "string",
"format": "date-time",
"description": "When the user was deleted. This information is public and can be seen by any authenticated user in the network."
},
"name": {
"type": "string",
"description": "The name of the user. This information is public and can be seen by any authenticated user in the network."
},
"description": {
"type": "string",
"description": "A description for the user. This information is public and can be seen by any authenticated user in the network."
},
"attributes": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Key-value attributes for this users. Typically used for storing integration-specific data."
},
"contact_info": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/v3ContactInfo"
},
"description": "Contact information for this user. Typically used to indicate who to contact with security/billing questions about the user.\nThis field is deprecated."
},
"primary_email_address": {
"type": "string",
"description": "Primary email address that can be used for logging in.\nThis address is not public, use contact_info for that."
},
"primary_email_address_validated_at": {
"type": "string",
"format": "date-time",
"description": "When the primary email address was validated. Note that email address validation is not required on all networks."
},
"password": {
"type": "string",
"description": "The password field is only considered when creating a user.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the UpdatePassword method of the UserRegistry service for more information."
},
"password_updated_at": {
"type": "string",
"format": "date-time"
},
"require_password_update": {
"type": "boolean"
},
"state": {
"$ref": "#/definitions/v3State",
"description": "The reviewing state of the user.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by admins."
},
"state_description": {
"type": "string",
"description": "A description for the state field.\nThis field can only be modified by admins, and should typically only be updated\nwhen also updating `state`."
},
"admin": {
"type": "boolean",
"description": "This user is an admin.\nThis information is public and can be seen by any authenticated user in the network.\nThis field can only be modified by other admins."
},
"temporary_password": {
"type": "string",
"description": "The temporary password can only be used to update a user's password; never returned on API calls.\nIt is not returned on API calls, and can not be updated by updating the User.\nSee the CreateTemporaryPassword method of the UserRegistry service for more information."
},
"temporary_password_created_at": {
"type": "string",
"format": "date-time"
},
"temporary_password_expires_at": {
"type": "string",
"format": "date-time"
},
"profile_picture": {
"$ref": "#/definitions/v3Picture",
"description": "A profile picture for the user.\nThis information is public and can be seen by any authenticated user in the network."
},
"console_preferences": {
"$ref": "#/definitions/v3UserConsolePreferences",
"description": "Console preferences contains the user's preferences regarding the behavior of the Console."
},
"email_notification_preferences": {
"$ref": "#/definitions/v3EmailNotificationPreferences"
},
"universal_rights": {
"type": "array",
"items": {
"$ref": "#/definitions/v3Right"
},
"description": "Universal rights are capable of restricting the user's interactions with the API, be it an admin or not."
}
},
"description": "User is the message that defines a user on the network."
},
"v3EmailNotificationPreferences": {
"type": "object",
"properties": {
"types": {
"type": "array",
"items": {
"$ref": "#/definitions/v3NotificationType"
}
}
},
"description": "EmailNotificationPreferences is the message that defines the types of notifications for which the user wants to receive an email."
},
"v3NotificationType": {
"type": "string",
"enum": [
"UNKNOWN",
"API_KEY_CREATED",
"API_KEY_CHANGED",
"CLIENT_REQUESTED",
"COLLABORATOR_CHANGED",
"ENTITY_STATE_CHANGED",
"INVITATION",
"LOGIN_TOKEN",
"PASSWORD_CHANGED",
"TEMPORARY_PASSWORD",
"USER_REQUESTED",
"VALIDATE"
],
"default": "UNKNOWN"
},
"v3UserConsolePreferences": {
"type": "object",
"properties": {
"console_theme": {
"$ref": "#/definitions/v3ConsoleTheme"
},
"dashboard_layouts": {
"$ref": "#/definitions/UserConsolePreferencesDashboardLayouts"
},
"sort_by": {
"$ref": "#/definitions/UserConsolePreferencesSortBy"
},
"tutorials": {
"$ref": "#/definitions/UserConsolePreferencesTutorials"
}
},
"description": "UserConsolePreferences is the message that defines the user preferences for the Console."
},
"UserConsolePreferencesDashboardLayouts": {
"type": "object",
"properties": {
"api_key": {
"$ref": "#/definitions/v3DashboardLayout"
},
"application": {
"$ref": "#/definitions/v3DashboardLayout"
},
"collaborator": {
"$ref": "#/definitions/v3DashboardLayout"
},
"end_device": {
"$ref": "#/definitions/v3DashboardLayout"
},
"gateway": {
"$ref": "#/definitions/v3DashboardLayout"
},
"organization": {
"$ref": "#/definitions/v3DashboardLayout"
},
"overview": {
"$ref": "#/definitions/v3DashboardLayout"
},
"user": {
"$ref": "#/definitions/v3DashboardLayout"
}
}
},
"v3DashboardLayout": {
"type": "string",
"enum": [
"DASHBOARD_LAYOUT_TABLE",
"DASHBOARD_LAYOUT_LIST",
"DASHBOARD_LAYOUT_GRID"
],
"default": "DASHBOARD_LAYOUT_TABLE",
"description": "DashboardLayout is a set of possible layout values to be used in the Console."
},
"UserConsolePreferencesTutorials": {
"type": "object",
"properties": {
"seen": {
"type": "array",
"items": {
"$ref": "#/definitions/v3Tutorial"
}
}
}
},
"v3Tutorial": {
"type": "string",
"enum": [
"TUTORIAL_UNKNOWN",
"TUTORIAL_LIVE_DATA_SPLIT_VIEW"
],
"default": "TUTORIAL_UNKNOWN",
"description": "Tutorial is a set of possible tutorials in the Console."
},
"UserConsolePreferencesSortBy": {
"type": "object",
"properties": {
"api_key": {
"type": "string"
},
"application": {
"type": "string"
},
"collaborator": {
"type": "string"
},
"end_device": {
"type": "string"
},
"gateway": {
"type": "string"
},
"organization": {
"type": "string"
},
"user": {
"type": "string"
}
},
"description": "SortBy defines the field to which the Console will sort the display of entities."
},
"v3ConsoleTheme": {
"type": "string",
"enum": [
"CONSOLE_THEME_SYSTEM",
"CONSOLE_THEME_LIGHT",
"CONSOLE_THEME_DARK"
],
"default": "CONSOLE_THEME_SYSTEM",
"description": "ConsoleTheme is the theme of the Console.\n\n - CONSOLE_THEME_SYSTEM: The user prefers the system mode.\n - CONSOLE_THEME_LIGHT: The user prefers the light mode.\n - CONSOLE_THEME_DARK: The user prefers the dark mode."
},
"v3Right": {
"type": "string",
"enum": [
"right_invalid",
"RIGHT_USER_INFO",
"RIGHT_USER_SETTINGS_BASIC",
"RIGHT_USER_LIST",
"RIGHT_USER_CREATE",
"RIGHT_USER_SETTINGS_API_KEYS",
"RIGHT_USER_DELETE",
"RIGHT_USER_PURGE",
"RIGHT_USER_AUTHORIZED_CLIENTS",
"RIGHT_USER_APPLICATIONS_LIST",
"RIGHT_USER_APPLICATIONS_CREATE",
"RIGHT_USER_GATEWAYS_LIST",
"RIGHT_USER_GATEWAYS_CREATE",
"RIGHT_USER_CLIENTS_LIST",
"RIGHT_USER_CLIENTS_CREATE",
"RIGHT_USER_ORGANIZATIONS_LIST",
"RIGHT_USER_ORGANIZATIONS_CREATE",
"RIGHT_USER_NOTIFICATIONS_READ",
"RIGHT_USER_ALL",
"RIGHT_APPLICATION_INFO",
"RIGHT_APPLICATION_SETTINGS_BASIC",
"RIGHT_APPLICATION_SETTINGS_API_KEYS",
"RIGHT_APPLICATION_SETTINGS_COLLABORATORS",
"RIGHT_APPLICATION_SETTINGS_PACKAGES",
"RIGHT_APPLICATION_DELETE",
"RIGHT_APPLICATION_PURGE",
"RIGHT_APPLICATION_DEVICES_READ",
"RIGHT_APPLICATION_DEVICES_WRITE",
"RIGHT_APPLICATION_DEVICES_READ_KEYS",
"RIGHT_APPLICATION_DEVICES_WRITE_KEYS",
"RIGHT_APPLICATION_TRAFFIC_READ",
"RIGHT_APPLICATION_TRAFFIC_UP_WRITE",
"RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE",
"RIGHT_APPLICATION_LINK",
"RIGHT_APPLICATION_ALL",
"RIGHT_CLIENT_ALL",
"RIGHT_CLIENT_INFO",
"RIGHT_CLIENT_SETTINGS_BASIC",
"RIGHT_CLIENT_SETTINGS_COLLABORATORS",
"RIGHT_CLIENT_DELETE",
"RIGHT_CLIENT_PURGE",
"RIGHT_GATEWAY_INFO",
"RIGHT_GATEWAY_SETTINGS_BASIC",
"RIGHT_GATEWAY_SETTINGS_API_KEYS",
"RIGHT_GATEWAY_SETTINGS_COLLABORATORS",
"RIGHT_GATEWAY_DELETE",
"RIGHT_GATEWAY_PURGE",
"RIGHT_GATEWAY_TRAFFIC_READ",
"RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE",
"RIGHT_GATEWAY_LINK",
"RIGHT_GATEWAY_STATUS_READ",
"RIGHT_GATEWAY_LOCATION_READ",
"RIGHT_GATEWAY_WRITE_SECRETS",
"RIGHT_GATEWAY_READ_SECRETS",
"RIGHT_GATEWAY_ALL",
"RIGHT_ORGANIZATION_INFO",
"RIGHT_ORGANIZATION_SETTINGS_BASIC",
"RIGHT_ORGANIZATION_SETTINGS_API_KEYS",
"RIGHT_ORGANIZATION_SETTINGS_MEMBERS",
"RIGHT_ORGANIZATION_DELETE",
"RIGHT_ORGANIZATION_PURGE",
"RIGHT_ORGANIZATION_APPLICATIONS_LIST",
"RIGHT_ORGANIZATION_APPLICATIONS_CREATE",
"RIGHT_ORGANIZATION_GATEWAYS_LIST",
"RIGHT_ORGANIZATION_GATEWAYS_CREATE",
"RIGHT_ORGANIZATION_CLIENTS_LIST",
"RIGHT_ORGANIZATION_CLIENTS_CREATE",
"RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR",
"RIGHT_ORGANIZATION_ALL",
"RIGHT_SEND_INVITES",
"RIGHT_ALL"
],
"default": "right_invalid",
"description": "Right is the enum that defines all the different rights to do something in the network.\n\n - RIGHT_USER_INFO: The right to view user information.\n - RIGHT_USER_SETTINGS_BASIC: The right to edit basic user settings.\n - RIGHT_USER_LIST: The right to list users accounts.\n - RIGHT_USER_CREATE: The right to create an user account.\n - RIGHT_USER_SETTINGS_API_KEYS: The right to view and edit user API keys.\n - RIGHT_USER_DELETE: The right to delete user account.\n - RIGHT_USER_PURGE: The right to delete user account.\n - RIGHT_USER_AUTHORIZED_CLIENTS: The right to view and edit authorized OAuth clients of the user.\n - RIGHT_USER_APPLICATIONS_LIST: The right to list applications the user is a collaborator of.\n - RIGHT_USER_APPLICATIONS_CREATE: The right to create an application under the user account.\n - RIGHT_USER_GATEWAYS_LIST: The right to list gateways the user is a collaborator of.\n - RIGHT_USER_GATEWAYS_CREATE: The right to create a gateway under the account of the user.\n - RIGHT_USER_CLIENTS_LIST: The right to list OAuth clients the user is a collaborator of.\n - RIGHT_USER_CLIENTS_CREATE: The right to create an OAuth client under the account of the user.\n - RIGHT_USER_ORGANIZATIONS_LIST: The right to list organizations the user is a member of.\n - RIGHT_USER_ORGANIZATIONS_CREATE: The right to create an organization under the user account.\n - RIGHT_USER_NOTIFICATIONS_READ: The right to read notifications sent to the user.\n - RIGHT_USER_ALL: The pseudo-right for all (current and future) user rights.\n - RIGHT_APPLICATION_INFO: The right to view application information.\n - RIGHT_APPLICATION_SETTINGS_BASIC: The right to edit basic application settings.\n - RIGHT_APPLICATION_SETTINGS_API_KEYS: The right to view and edit application API keys.\n - RIGHT_APPLICATION_SETTINGS_COLLABORATORS: The right to view and edit application collaborators.\n - RIGHT_APPLICATION_SETTINGS_PACKAGES: The right to view and edit application packages and associations.\n - RIGHT_APPLICATION_DELETE: The right to delete application.\n - RIGHT_APPLICATION_PURGE: The right to purge application.\n - RIGHT_APPLICATION_DEVICES_READ: The right to view devices in application.\n - RIGHT_APPLICATION_DEVICES_WRITE: The right to create devices in application.\n - RIGHT_APPLICATION_DEVICES_READ_KEYS: The right to view device keys in application.\nNote that keys may not be stored in a way that supports viewing them.\n - RIGHT_APPLICATION_DEVICES_WRITE_KEYS: The right to edit device keys in application.\n - RIGHT_APPLICATION_TRAFFIC_READ: The right to read application traffic (uplink and downlink).\n - RIGHT_APPLICATION_TRAFFIC_UP_WRITE: The right to write uplink application traffic.\n - RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE: The right to write downlink application traffic.\n - RIGHT_APPLICATION_LINK: The right to link as Application to a Network Server for traffic exchange,\ni.e. read uplink and write downlink (API keys only).\nThis right is typically only given to an Application Server.\nThis right implies RIGHT_APPLICATION_INFO, RIGHT_APPLICATION_TRAFFIC_READ,\nand RIGHT_APPLICATION_TRAFFIC_DOWN_WRITE.\n - RIGHT_APPLICATION_ALL: The pseudo-right for all (current and future) application rights.\n - RIGHT_CLIENT_ALL: The pseudo-right for all (current and future) OAuth client rights.\n - RIGHT_CLIENT_INFO: The right to read client information.\n - RIGHT_CLIENT_SETTINGS_BASIC: The right to edit basic client settings.\n - RIGHT_CLIENT_SETTINGS_COLLABORATORS: The right to view and edit client collaborators.\n - RIGHT_CLIENT_DELETE: The right to delete a client.\n - RIGHT_CLIENT_PURGE: The right to purge a client.\n - RIGHT_GATEWAY_INFO: The right to view gateway information.\n - RIGHT_GATEWAY_SETTINGS_BASIC: The right to edit basic gateway settings.\n - RIGHT_GATEWAY_SETTINGS_API_KEYS: The right to view and edit gateway API keys.\n - RIGHT_GATEWAY_SETTINGS_COLLABORATORS: The right to view and edit gateway collaborators.\n - RIGHT_GATEWAY_DELETE: The right to delete gateway.\n - RIGHT_GATEWAY_PURGE: The right to purge gateway.\n - RIGHT_GATEWAY_TRAFFIC_READ: The right to read gateway traffic.\n - RIGHT_GATEWAY_TRAFFIC_DOWN_WRITE: The right to write downlink gateway traffic.\n - RIGHT_GATEWAY_LINK: The right to link as Gateway to a Gateway Server for traffic exchange,\ni.e. write uplink and read downlink (API keys only)\nThis right is typically only given to a gateway.\nThis right implies RIGHT_GATEWAY_INFO.\n - RIGHT_GATEWAY_STATUS_READ: The right to view gateway status.\n - RIGHT_GATEWAY_LOCATION_READ: The right to view view gateway location.\n - RIGHT_GATEWAY_WRITE_SECRETS: The right to store secrets associated with this gateway.\n - RIGHT_GATEWAY_READ_SECRETS: The right to retrieve secrets associated with this gateway.\n - RIGHT_GATEWAY_ALL: The pseudo-right for all (current and future) gateway rights.\n - RIGHT_ORGANIZATION_INFO: The right to view organization information.\n - RIGHT_ORGANIZATION_SETTINGS_BASIC: The right to edit basic organization settings.\n - RIGHT_ORGANIZATION_SETTINGS_API_KEYS: The right to view and edit organization API keys.\n - RIGHT_ORGANIZATION_SETTINGS_MEMBERS: The right to view and edit organization members.\n - RIGHT_ORGANIZATION_DELETE: The right to delete organization.\n - RIGHT_ORGANIZATION_PURGE: The right to purge organization.\n - RIGHT_ORGANIZATION_APPLICATIONS_LIST: The right to list the applications the organization is a collaborator of.\n - RIGHT_ORGANIZATION_APPLICATIONS_CREATE: The right to create an application under the organization.\n - RIGHT_ORGANIZATION_GATEWAYS_LIST: The right to list the gateways the organization is a collaborator of.\n - RIGHT_ORGANIZATION_GATEWAYS_CREATE: The right to create a gateway under the organization.\n - RIGHT_ORGANIZATION_CLIENTS_LIST: The right to list the OAuth clients the organization is a collaborator of.\n - RIGHT_ORGANIZATION_CLIENTS_CREATE: The right to create an OAuth client under the organization.\n - RIGHT_ORGANIZATION_ADD_AS_COLLABORATOR: The right to add the organization as a collaborator on an existing entity.\n - RIGHT_ORGANIZATION_ALL: The pseudo-right for all (current and future) organization rights.\n - RIGHT_SEND_INVITES: The right to send invites to new users.\nNote that this is not prefixed with \"USER_\"; it is not a right on the user entity.\n - RIGHT_ALL: The pseudo-right for all (current and future) possible rights."
},
"v3Picture": {
"type": "object",
"properties": {
"embedded": {
"$ref": "#/definitions/PictureEmbedded",
"description": "Embedded picture.\nOmitted if there are external URLs available (in sizes)."
},
"sizes": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "URLs of the picture for different sizes, if available on a CDN."
}
}
},
"PictureEmbedded": {
"type": "object",
"properties": {
"mime_type": {
"type": "string",
"description": "MIME type of the picture."
},
"data": {
"type": "string",
"format": "byte",
"description": "Picture data. A data URI can be constructed as follows:\n`data:<mime_type>;base64,<data>`."
}
}
},
"v3UserIdentifiers": {
"type": "object",
"properties": {
"user_id": {
"type": "string",
"description": "This ID shares namespace with organization IDs."
},
"email": {
"type": "string",
"description": "Secondary identifier, which can only be used in specific requests."
}
}
},
"v3ContactInfo": {
"type": "object",
"properties": {
"contact_type": {
"$ref": "#/definitions/v3ContactType"
},
"contact_method": {
"$ref": "#/definitions/v3ContactMethod"
},
"value": {
"type": "string"
},
"public": {
"type": "boolean"
},
"validated_at": {
"type": "string",
"format": "date-time"
}
}
},
"v3ContactMethod": {
"type": "string",
"enum": [
"CONTACT_METHOD_OTHER",
"CONTACT_METHOD_EMAIL",
"CONTACT_METHOD_PHONE"
],
"default": "CONTACT_METHOD_OTHER"
},
"v3ContactType": {
"type": "string",
"enum": [
"CONTACT_TYPE_OTHER",
"CONTACT_TYPE_ABUSE",
"CONTACT_TYPE_BILLING",
"CONTACT_TYPE_TECHNICAL"
],
"default": "CONTACT_TYPE_OTHER"
},
"v3State": {
"type": "string",
"enum": [
"STATE_REQUESTED",
"STATE_APPROVED",
"STATE_REJECTED",
"STATE_FLAGGED",
"STATE_SUSPENDED"
],
"default": "STATE_REQUESTED",
"description": "State enum defines states that an entity can be in.\n\n - STATE_REQUESTED: Denotes that the entity has been requested and is pending review by an admin.\n - STATE_APPROVED: Denotes that the entity has been reviewed and approved by an admin.\n - STATE_REJECTED: Denotes that the entity has been reviewed and rejected by an admin.\n - STATE_FLAGGED: Denotes that the entity has been flagged and is pending review by an admin.\n - STATE_SUSPENDED: Denotes that the entity has been reviewed and suspended by an admin."
}
},
"$ref": "#/definitions/v3User"
}