# generated by datamodel-codegen: # filename: thingsboardAPI.json # timestamp: 2025-05-21T15:27:01+00:00 from __future__ import annotations from enum import Enum from typing import Any, Dict, List, Optional, Union from uuid import UUID from pydantic import BaseModel, RootModel, Field, confloat, conint, constr class AcmeCertificateId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class ActivateUserRequest(BaseModel): activateToken: Optional[str] = Field( None, description='The activate token to verify', example='AAB254FF67D..' ) password: Optional[str] = Field( None, description='The new password to set', example='secret' ) class AdminSettingsId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class Severity(Enum): CRITICAL = 'CRITICAL' MAJOR = 'MAJOR' MINOR = 'MINOR' WARNING = 'WARNING' INDETERMINATE = 'INDETERMINATE' class Status(Enum): ACTIVE_UNACK = 'ACTIVE_UNACK' ACTIVE_ACK = 'ACTIVE_ACK' CLEARED_UNACK = 'CLEARED_UNACK' CLEARED_ACK = 'CLEARED_ACK' class AlarmSeverity(Enum): CRITICAL = 'CRITICAL' MAJOR = 'MAJOR' MINOR = 'MINOR' WARNING = 'WARNING' INDETERMINATE = 'INDETERMINATE' class AlarmStatus(Enum): ANY = 'ANY' ACTIVE = 'ACTIVE' CLEARED = 'CLEARED' ACK = 'ACK' UNACK = 'UNACK' class NotifyOnEnum(Enum): ASSIGNED = 'ASSIGNED' UNASSIGNED = 'UNASSIGNED' class Type(Enum): SYSTEM = 'SYSTEM' OTHER = 'OTHER' class AlarmCommentId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class ValueType(Enum): STRING = 'STRING' NUMERIC = 'NUMERIC' BOOLEAN = 'BOOLEAN' DATE_TIME = 'DATE_TIME' class Type2(Enum): ATTRIBUTE = 'ATTRIBUTE' TIME_SERIES = 'TIME_SERIES' ENTITY_FIELD = 'ENTITY_FIELD' CONSTANT = 'CONSTANT' class AlarmConditionFilterKey(BaseModel): type: Optional[Type2] = Field( None, description='The key type', example='TIME_SERIES' ) key: Optional[str] = Field( None, description='String value representing the key', example='temp' ) class AlarmConditionSpec(BaseModel): type: str class StatusListEnum(Enum): ANY = 'ANY' ACTIVE = 'ACTIVE' CLEARED = 'CLEARED' ACK = 'ACK' UNACK = 'UNACK' class SeverityListEnum(Enum): CRITICAL = 'CRITICAL' MAJOR = 'MAJOR' MINOR = 'MINOR' WARNING = 'WARNING' INDETERMINATE = 'INDETERMINATE' class EntityType(Enum): ALARM = 'ALARM' class AlarmId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType = Field(..., description='string', example='ALARM') class NotifyOnEnum1(Enum): CREATED = 'CREATED' SEVERITY_CHANGED = 'SEVERITY_CHANGED' ACKNOWLEDGED = 'ACKNOWLEDGED' CLEARED = 'CLEARED' class Type3(Enum): ANY_TIME = 'ANY_TIME' SPECIFIC_TIME = 'SPECIFIC_TIME' CUSTOM = 'CUSTOM' class OperationsByResourceEnum(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class AllowedForGroupRoleOperation(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class AllowedForGroupOwnerOnlyOperation(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class AllowedForGroupOwnerOnlyGroupOperation(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class AllowedResource(Enum): ALL = 'ALL' PROFILE = 'PROFILE' ADMIN_SETTINGS = 'ADMIN_SETTINGS' ALARM = 'ALARM' DEVICE = 'DEVICE' ASSET = 'ASSET' CUSTOMER = 'CUSTOMER' DASHBOARD = 'DASHBOARD' ENTITY_VIEW = 'ENTITY_VIEW' EDGE = 'EDGE' TENANT = 'TENANT' RULE_CHAIN = 'RULE_CHAIN' USER = 'USER' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' OAUTH2_CONFIGURATION_TEMPLATE = 'OAUTH2_CONFIGURATION_TEMPLATE' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' CUSTOMER_GROUP = 'CUSTOMER_GROUP' DEVICE_GROUP = 'DEVICE_GROUP' ASSET_GROUP = 'ASSET_GROUP' USER_GROUP = 'USER_GROUP' ENTITY_VIEW_GROUP = 'ENTITY_VIEW_GROUP' EDGE_GROUP = 'EDGE_GROUP' DASHBOARD_GROUP = 'DASHBOARD_GROUP' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' WHITE_LABELING = 'WHITE_LABELING' AUDIT_LOG = 'AUDIT_LOG' API_USAGE_STATE = 'API_USAGE_STATE' BILLING = 'BILLING' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' QUEUE = 'QUEUE' QUEUE_STATS = 'QUEUE_STATS' VERSION_CONTROL = 'VERSION_CONTROL' NOTIFICATION = 'NOTIFICATION' MOBILE_APP_SETTINGS = 'MOBILE_APP_SETTINGS' CUSTOM_MENU = 'CUSTOM_MENU' class ApiFeature(Enum): TRANSPORT = 'TRANSPORT' DB = 'DB' RE = 'RE' JS = 'JS' TBEL = 'TBEL' EMAIL = 'EMAIL' SMS = 'SMS' ALARM = 'ALARM' class NotifyOnEnum2(Enum): ENABLED = 'ENABLED' WARNING = 'WARNING' DISABLED = 'DISABLED' class ArrayNode(RootModel): root: Any class EntityType1(Enum): ASSET = 'ASSET' class AssetId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType1 = Field(..., description='string', example='ASSET') class EntityType2(Enum): ASSET_PROFILE = 'ASSET_PROFILE' class AssetProfileId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType2 = Field(..., description='string', example='ASSET_PROFILE') class Direction(Enum): FROM = 'FROM' TO = 'TO' class AttributeExportData(BaseModel): key: Optional[str] = None lastUpdateTs: Optional[int] = None booleanValue: Optional[bool] = None strValue: Optional[str] = None longValue: Optional[int] = None doubleValue: Optional[float] = None jsonValue: Optional[str] = None class AttributesEntityView(BaseModel): cs: List[str] = Field( ..., description='List of client-side attribute keys to expose', example=['currentConfiguration'], ) ss: List[str] = Field( ..., description='List of server-side attribute keys to expose', example=['model'], ) sh: List[str] = Field( ..., description='List of shared attribute keys to expose', example=['targetConfiguration'], ) class ActionType(Enum): ADDED = 'ADDED' DELETED = 'DELETED' UPDATED = 'UPDATED' ATTRIBUTES_UPDATED = 'ATTRIBUTES_UPDATED' ATTRIBUTES_DELETED = 'ATTRIBUTES_DELETED' TIMESERIES_UPDATED = 'TIMESERIES_UPDATED' TIMESERIES_DELETED = 'TIMESERIES_DELETED' RPC_CALL = 'RPC_CALL' CREDENTIALS_UPDATED = 'CREDENTIALS_UPDATED' ASSIGNED_TO_CUSTOMER = 'ASSIGNED_TO_CUSTOMER' UNASSIGNED_FROM_CUSTOMER = 'UNASSIGNED_FROM_CUSTOMER' CHANGE_OWNER = 'CHANGE_OWNER' ACTIVATED = 'ACTIVATED' SUSPENDED = 'SUSPENDED' CREDENTIALS_READ = 'CREDENTIALS_READ' ATTRIBUTES_READ = 'ATTRIBUTES_READ' RELATION_ADD_OR_UPDATE = 'RELATION_ADD_OR_UPDATE' RELATION_DELETED = 'RELATION_DELETED' RELATIONS_DELETED = 'RELATIONS_DELETED' ALARM_ACK = 'ALARM_ACK' ALARM_CLEAR = 'ALARM_CLEAR' ALARM_DELETE = 'ALARM_DELETE' ALARM_ASSIGNED = 'ALARM_ASSIGNED' ALARM_UNASSIGNED = 'ALARM_UNASSIGNED' ADDED_TO_ENTITY_GROUP = 'ADDED_TO_ENTITY_GROUP' REMOVED_FROM_ENTITY_GROUP = 'REMOVED_FROM_ENTITY_GROUP' REST_API_RULE_ENGINE_CALL = 'REST_API_RULE_ENGINE_CALL' MADE_PUBLIC = 'MADE_PUBLIC' MADE_PRIVATE = 'MADE_PRIVATE' LOGIN = 'LOGIN' LOGOUT = 'LOGOUT' LOCKOUT = 'LOCKOUT' ASSIGNED_FROM_TENANT = 'ASSIGNED_FROM_TENANT' ASSIGNED_TO_TENANT = 'ASSIGNED_TO_TENANT' PROVISION_SUCCESS = 'PROVISION_SUCCESS' PROVISION_FAILURE = 'PROVISION_FAILURE' ASSIGNED_TO_EDGE = 'ASSIGNED_TO_EDGE' UNASSIGNED_FROM_EDGE = 'UNASSIGNED_FROM_EDGE' ADDED_COMMENT = 'ADDED_COMMENT' UPDATED_COMMENT = 'UPDATED_COMMENT' DELETED_COMMENT = 'DELETED_COMMENT' SMS_SENT = 'SMS_SENT' SUBSCRIPTION_CREATED = 'SUBSCRIPTION_CREATED' SUBSCRIPTION_UPDATED = 'SUBSCRIPTION_UPDATED' SUBSCRIPTION_CANCELED = 'SUBSCRIPTION_CANCELED' SUBSCRIPTION_PLAN_UPDATED = 'SUBSCRIPTION_PLAN_UPDATED' SUBSCRIPTION_COUPON_APPLIED = 'SUBSCRIPTION_COUPON_APPLIED' class ActionStatus(Enum): SUCCESS = 'SUCCESS' FAILURE = 'FAILURE' class AuditLogId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class AutoVersionCreateConfig(BaseModel): saveRelations: Optional[bool] = None saveAttributes: Optional[bool] = None saveCredentials: Optional[bool] = None saveCalculatedFields: Optional[bool] = None savePermissions: Optional[bool] = None saveGroupEntities: Optional[bool] = None branch: Optional[str] = None class EntityType3(Enum): BLOB_ENTITY = 'BLOB_ENTITY' class BlobEntityId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType3 = Field(..., description='string', example='BLOB_ENTITY') class ContentType(Enum): application_pdf = 'application/pdf' image_jpeg = 'image/jpeg' image_png = 'image/png' class Operation(Enum): EQUAL = 'EQUAL' NOT_EQUAL = 'NOT_EQUAL' class BranchInfo(BaseModel): name: Optional[str] = None default: Optional[bool] = None class Created(BaseModel): opaque: Optional[int] = None acquire: Optional[int] = None release: Optional[int] = None andIncrement: Optional[int] = None andDecrement: Optional[int] = None plain: Optional[int] = None class Updated(BaseModel): opaque: Optional[int] = None acquire: Optional[int] = None release: Optional[int] = None andIncrement: Optional[int] = None andDecrement: Optional[int] = None plain: Optional[int] = None class Errors(BaseModel): opaque: Optional[int] = None acquire: Optional[int] = None release: Optional[int] = None andIncrement: Optional[int] = None andDecrement: Optional[int] = None plain: Optional[int] = None class BulkImportResultAsset(BaseModel): created: Optional[Created] = None updated: Optional[Updated] = None errors: Optional[Errors] = None errorsList: Optional[List[str]] = None class BulkImportResultDevice(BaseModel): created: Optional[Created] = None updated: Optional[Updated] = None errors: Optional[Errors] = None errorsList: Optional[List[str]] = None class BulkImportResultEdge(BaseModel): created: Optional[Created] = None updated: Optional[Updated] = None errors: Optional[Errors] = None errorsList: Optional[List[str]] = None class LinkType(Enum): LINK = 'LINK' DASHBOARD = 'DASHBOARD' class Button(BaseModel): enabled: Optional[bool] = None text: Optional[str] = None linkType: Optional[LinkType] = None link: Optional[str] = None dashboardId: Optional[UUID] = None dashboardState: Optional[str] = None setEntityIdInState: Optional[bool] = None class Type4(Enum): SIMPLE = 'SIMPLE' SCRIPT = 'SCRIPT' class EntityType4(Enum): DEVICE = 'DEVICE' class EntityType5(Enum): CALCULATED_FIELD = 'CALCULATED_FIELD' class CalculatedFieldId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType5 = Field( ..., description='string', example='CALCULATED_FIELD' ) class CaptchaClientParams(BaseModel): captchaSiteKey: Optional[str] = None captchaVersion: Optional[str] = None captchaAction: Optional[str] = None class CaptchaParams(BaseModel): version: Optional[str] = None class Status3(Enum): PENDING_VALIDATION = 'PENDING_VALIDATION' ISSUED = 'ISSUED' INACTIVE = 'INACTIVE' EXPIRED = 'EXPIRED' VALIDATION_TIMED_OUT = 'VALIDATION_TIMED_OUT' REVOKED = 'REVOKED' FAILED = 'FAILED' UNKNOWN = 'UNKNOWN' class CertificateInfo(BaseModel): status: Optional[Status3] = None domainName: Optional[str] = None serialNumber: Optional[str] = None notBefore: Optional[int] = None notAfter: Optional[int] = None requestedAt: Optional[int] = None issuedAt: Optional[int] = None acmeCertificateId: Optional[AcmeCertificateId] = None class ChangePasswordRequest(BaseModel): currentPassword: Optional[str] = Field( None, description='The old password', example='OldPassword' ) newPassword: Optional[str] = Field( None, description='The new password', example='NewPassword' ) class ClaimRequest(BaseModel): secretKey: Optional[str] = None class ClearRule(BaseModel): alarmStatuses: Optional[List[AlarmStatus]] = Field(None, Set=True) class PowerMode(Enum): PSM = 'PSM' DRX = 'DRX' E_DRX = 'E_DRX' class CoapDeviceTypeConfiguration(BaseModel): coapDeviceType: str class Type5(Enum): NAME = 'NAME' TYPE = 'TYPE' LABEL = 'LABEL' SHARED_ATTRIBUTE = 'SHARED_ATTRIBUTE' SERVER_ATTRIBUTE = 'SERVER_ATTRIBUTE' TIMESERIES = 'TIMESERIES' ACCESS_TOKEN = 'ACCESS_TOKEN' X509 = 'X509' MQTT_CLIENT_ID = 'MQTT_CLIENT_ID' MQTT_USER_NAME = 'MQTT_USER_NAME' MQTT_PASSWORD = 'MQTT_PASSWORD' LWM2M_CLIENT_ENDPOINT = 'LWM2M_CLIENT_ENDPOINT' LWM2M_CLIENT_SECURITY_CONFIG_MODE = 'LWM2M_CLIENT_SECURITY_CONFIG_MODE' LWM2M_CLIENT_IDENTITY = 'LWM2M_CLIENT_IDENTITY' LWM2M_CLIENT_KEY = 'LWM2M_CLIENT_KEY' LWM2M_CLIENT_CERT = 'LWM2M_CLIENT_CERT' LWM2M_BOOTSTRAP_SERVER_SECURITY_MODE = 'LWM2M_BOOTSTRAP_SERVER_SECURITY_MODE' LWM2M_BOOTSTRAP_SERVER_PUBLIC_KEY_OR_ID = 'LWM2M_BOOTSTRAP_SERVER_PUBLIC_KEY_OR_ID' LWM2M_BOOTSTRAP_SERVER_SECRET_KEY = 'LWM2M_BOOTSTRAP_SERVER_SECRET_KEY' LWM2M_SERVER_SECURITY_MODE = 'LWM2M_SERVER_SECURITY_MODE' LWM2M_SERVER_CLIENT_PUBLIC_KEY_OR_ID = 'LWM2M_SERVER_CLIENT_PUBLIC_KEY_OR_ID' LWM2M_SERVER_CLIENT_SECRET_KEY = 'LWM2M_SERVER_CLIENT_SECRET_KEY' SNMP_HOST = 'SNMP_HOST' SNMP_PORT = 'SNMP_PORT' SNMP_VERSION = 'SNMP_VERSION' SNMP_COMMUNITY_STRING = 'SNMP_COMMUNITY_STRING' IS_GATEWAY = 'IS_GATEWAY' DESCRIPTION = 'DESCRIPTION' EDGE_LICENSE_KEY = 'EDGE_LICENSE_KEY' CLOUD_ENDPOINT = 'CLOUD_ENDPOINT' ROUTING_KEY = 'ROUTING_KEY' SECRET = 'SECRET' class ColumnMapping(BaseModel): type: Optional[Type5] = None key: Optional[str] = None class Operation1(Enum): AND = 'AND' OR = 'OR' class SyncStrategy(Enum): MERGE = 'MERGE' OVERWRITE = 'OVERWRITE' class Type6(Enum): ENRICHMENT = 'ENRICHMENT' FILTER = 'FILTER' TRANSFORMATION = 'TRANSFORMATION' ACTION = 'ACTION' ANALYTICS = 'ANALYTICS' EXTERNAL = 'EXTERNAL' FLOW = 'FLOW' class Scope(Enum): TENANT = 'TENANT' class ClusteringMode(Enum): USER_PREFERENCE = 'USER_PREFERENCE' ENABLED = 'ENABLED' SINGLETON = 'SINGLETON' class ComponentDescriptorId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class Type7(Enum): UPLINK = 'UPLINK' DOWNLINK = 'DOWNLINK' class IntegrationType(Enum): OCEANCONNECT = 'OCEANCONNECT' SIGFOX = 'SIGFOX' THINGPARK = 'THINGPARK' TPE = 'TPE' CHIRPSTACK = 'CHIRPSTACK' PARTICLE = 'PARTICLE' TMOBILE_IOT_CDP = 'TMOBILE_IOT_CDP' HTTP = 'HTTP' MQTT = 'MQTT' PUB_SUB = 'PUB_SUB' AWS_IOT = 'AWS_IOT' AWS_SQS = 'AWS_SQS' AWS_KINESIS = 'AWS_KINESIS' IBM_WATSON_IOT = 'IBM_WATSON_IOT' TTN = 'TTN' TTI = 'TTI' AZURE_EVENT_HUB = 'AZURE_EVENT_HUB' OPC_UA = 'OPC_UA' CUSTOM = 'CUSTOM' UDP = 'UDP' TCP = 'TCP' KAFKA = 'KAFKA' AZURE_IOT_HUB = 'AZURE_IOT_HUB' APACHE_PULSAR = 'APACHE_PULSAR' RABBITMQ = 'RABBITMQ' LORIOT = 'LORIOT' COAP = 'COAP' TUYA = 'TUYA' AZURE_SERVICE_BUS = 'AZURE_SERVICE_BUS' KPN = 'KPN' class EntityType6(Enum): CONVERTER = 'CONVERTER' class ConverterId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType6 = Field(..., description='string', example='CONVERTER') class ConvertersInfo(BaseModel): library: Optional[bool] = None existing: Optional[bool] = None keys: Optional[List[str]] = Field(None, Set=True) class Scope1(Enum): SYSTEM = 'SYSTEM' TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' class AssigneeType(Enum): NO_ASSIGN = 'NO_ASSIGN' ALL = 'ALL' CUSTOMERS = 'CUSTOMERS' USERS = 'USERS' class CustomMenuId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class MenuItemType(Enum): LINK = 'LINK' SECTION = 'SECTION' class LinkType1(Enum): URL = 'URL' DASHBOARD = 'DASHBOARD' class CustomTimeScheduleItem(BaseModel): enabled: Optional[bool] = None dayOfWeek: Optional[int] = None startsOn: Optional[int] = None endsOn: Optional[int] = None class EntityType7(Enum): CUSTOMER = 'CUSTOMER' class CustomerId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType7 = Field(..., description='string', example='CUSTOMER') class EntityType8(Enum): DASHBOARD = 'DASHBOARD' class DashboardId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType8 = Field(..., description='string', example='DASHBOARD') class DebugSettings(BaseModel): failuresEnabled: Optional[bool] = Field( None, description='Debug failures. ', example=False ) allEnabled: Optional[bool] = Field( None, description='Debug All. Used as a trigger for updating debugAllUntil.', example=False, ) allEnabledUntil: Optional[int] = Field( None, description='Timestamp of the end time for the processing debug events.' ) class DefaultDashboardParams(BaseModel): id: Optional[str] = Field( None, description='Default dashboard Id to assign for the new user.', example='784f394c-42b6-435a-983c-b7beff2784f9', ) fullscreen: Optional[bool] = Field( None, description='Set default dashboard to full screen mode.' ) class Id(Enum): HOME = 'HOME' ALARMS = 'ALARMS' DEVICES = 'DEVICES' CUSTOMERS = 'CUSTOMERS' ASSETS = 'ASSETS' AUDIT_LOGS = 'AUDIT_LOGS' NOTIFICATIONS = 'NOTIFICATIONS' DEVICE_LIST = 'DEVICE_LIST' DASHBOARDS = 'DASHBOARDS' class DefaultRuleChainCreateRequest(BaseModel): name: str = Field( ..., description='Name of the new rule chain', example='Root Rule Chain' ) class DeleteTenantRequest(BaseModel): reason: Optional[str] = None additionalNotes: Optional[str] = None class DeliveryMethodNotificationTemplate(BaseModel): enabled: Optional[bool] = None body: str method: str class NotifyOnEnum3(Enum): ACTIVE = 'ACTIVE' INACTIVE = 'INACTIVE' class DeviceConfiguration(BaseModel): type: str class CredentialsType(Enum): ACCESS_TOKEN = 'ACCESS_TOKEN' X509_CERTIFICATE = 'X509_CERTIFICATE' MQTT_BASIC = 'MQTT_BASIC' LWM2M_CREDENTIALS = 'LWM2M_CREDENTIALS' class DeviceCredentialsId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class OtaPackageType(Enum): FIRMWARE = 'FIRMWARE' SOFTWARE = 'SOFTWARE' class EntityType9(Enum): DEVICE = 'DEVICE' class DeviceId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType9 = Field(..., description='string', example='DEVICE') class Type8(Enum): DEFAULT = 'DEFAULT' class TransportType(Enum): DEFAULT = 'DEFAULT' MQTT = 'MQTT' COAP = 'COAP' LWM2M = 'LWM2M' SNMP = 'SNMP' class ProvisionType(Enum): DISABLED = 'DISABLED' ALLOW_CREATE_NEW_DEVICES = 'ALLOW_CREATE_NEW_DEVICES' CHECK_PRE_PROVISIONED_DEVICES = 'CHECK_PRE_PROVISIONED_DEVICES' X509_CERTIFICATE_CHAIN = 'X509_CERTIFICATE_CHAIN' class DeviceProfileConfiguration(BaseModel): type: str class EntityType10(Enum): DEVICE_PROFILE = 'DEVICE_PROFILE' class DeviceProfileId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType10 = Field( ..., description='string', example='DEVICE_PROFILE' ) class DeviceProfileProvisionConfiguration(BaseModel): provisionDeviceSecret: Optional[str] = None type: str class DeviceProfileTransportConfiguration(BaseModel): type: str class DeviceTransportConfiguration(BaseModel): type: str class DisabledDeviceProfileProvisionConfiguration(DeviceProfileProvisionConfiguration): pass class EntityType11(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class DomainId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType11 = Field(..., example='DEVICE') class Unit(Enum): NANOSECONDS = 'NANOSECONDS' MICROSECONDS = 'MICROSECONDS' MILLISECONDS = 'MILLISECONDS' SECONDS = 'SECONDS' MINUTES = 'MINUTES' HOURS = 'HOURS' DAYS = 'DAYS' class SourceType(Enum): CURRENT_TENANT = 'CURRENT_TENANT' CURRENT_CUSTOMER = 'CURRENT_CUSTOMER' CURRENT_USER = 'CURRENT_USER' CURRENT_DEVICE = 'CURRENT_DEVICE' class DynamicValueBoolean(BaseModel): sourceType: Optional[SourceType] = None sourceAttribute: Optional[str] = None inherit: Optional[bool] = None resolvedValue: Optional[bool] = None class DynamicValueDouble(BaseModel): sourceType: Optional[SourceType] = None sourceAttribute: Optional[str] = None inherit: Optional[bool] = None resolvedValue: Optional[float] = None class DynamicValueInteger(BaseModel): sourceType: Optional[SourceType] = None sourceAttribute: Optional[str] = None inherit: Optional[bool] = None resolvedValue: Optional[int] = None class DynamicValueLong(BaseModel): sourceType: Optional[SourceType] = None sourceAttribute: Optional[str] = None inherit: Optional[bool] = None resolvedValue: Optional[int] = None class DynamicValueString(BaseModel): sourceType: Optional[SourceType] = None sourceAttribute: Optional[str] = None inherit: Optional[bool] = None resolvedValue: Optional[str] = None class NotifyOnEnum4(Enum): CONNECTED = 'CONNECTED' DISCONNECTED = 'DISCONNECTED' class Action(Enum): ADDED = 'ADDED' UPDATED = 'UPDATED' DELETED = 'DELETED' POST_ATTRIBUTES = 'POST_ATTRIBUTES' ATTRIBUTES_UPDATED = 'ATTRIBUTES_UPDATED' ATTRIBUTES_DELETED = 'ATTRIBUTES_DELETED' TIMESERIES_UPDATED = 'TIMESERIES_UPDATED' CREDENTIALS_UPDATED = 'CREDENTIALS_UPDATED' RELATION_ADD_OR_UPDATE = 'RELATION_ADD_OR_UPDATE' RELATION_DELETED = 'RELATION_DELETED' RPC_CALL = 'RPC_CALL' ALARM_ACK = 'ALARM_ACK' ALARM_CLEAR = 'ALARM_CLEAR' ALARM_DELETE = 'ALARM_DELETE' ALARM_ASSIGNED = 'ALARM_ASSIGNED' ALARM_UNASSIGNED = 'ALARM_UNASSIGNED' ADDED_COMMENT = 'ADDED_COMMENT' UPDATED_COMMENT = 'UPDATED_COMMENT' DELETED_COMMENT = 'DELETED_COMMENT' ASSIGNED_TO_EDGE = 'ASSIGNED_TO_EDGE' UNASSIGNED_FROM_EDGE = 'UNASSIGNED_FROM_EDGE' CREDENTIALS_REQUEST = 'CREDENTIALS_REQUEST' ADDED_TO_ENTITY_GROUP = 'ADDED_TO_ENTITY_GROUP' REMOVED_FROM_ENTITY_GROUP = 'REMOVED_FROM_ENTITY_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' ENTITY_MERGE_REQUEST = 'ENTITY_MERGE_REQUEST' class Type10(Enum): DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' ENTITY_VIEW = 'ENTITY_VIEW' ALARM = 'ALARM' ALARM_COMMENT = 'ALARM_COMMENT' RULE_CHAIN = 'RULE_CHAIN' RULE_CHAIN_METADATA = 'RULE_CHAIN_METADATA' EDGE = 'EDGE' USER = 'USER' CUSTOMER = 'CUSTOMER' RELATION = 'RELATION' TENANT = 'TENANT' TENANT_PROFILE = 'TENANT_PROFILE' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ADMIN_SETTINGS = 'ADMIN_SETTINGS' OTA_PACKAGE = 'OTA_PACKAGE' QUEUE = 'QUEUE' ENTITY_GROUP = 'ENTITY_GROUP' SCHEDULER_EVENT = 'SCHEDULER_EVENT' WHITE_LABELING = 'WHITE_LABELING' LOGIN_WHITE_LABELING = 'LOGIN_WHITE_LABELING' MAIL_TEMPLATES = 'MAIL_TEMPLATES' CUSTOM_TRANSLATION = 'CUSTOM_TRANSLATION' CUSTOM_MENU = 'CUSTOM_MENU' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' TB_RESOURCE = 'TB_RESOURCE' DEVICE_GROUP_OTA = 'DEVICE_GROUP_OTA' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' class EdgeEventId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class EntityType12(Enum): EDGE = 'EDGE' class EdgeId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType12 = Field(..., description='string', example='EDGE') class EdgeInstructions(BaseModel): instructions: Optional[str] = Field( None, description='Markdown with install/upgrade instructions' ) class EdqsSyncRequest(RootModel): root: Any class EfentoCoapDeviceTypeConfiguration(CoapDeviceTypeConfiguration): pass class EmailDeliveryMethodNotificationTemplate(DeliveryMethodNotificationTemplate): subject: str body: str class EnterpriseCaptchaParams(CaptchaParams): projectId: Optional[str] = Field(None, description='Your Google Cloud project ID') serviceAccountCredentials: Optional[str] = Field( None, description='Service account credentials' ) serviceAccountCredentialsFileName: Optional[str] = Field( None, description='Service account credentials file name' ) androidKey: Optional[str] = Field( None, description='The reCAPTCHA key associated with android app.' ) iosKey: Optional[str] = Field( None, description='The reCAPTCHA key associated with iOS app.' ) logActionName: Optional[str] = Field( None, description='Optional action name used for logging' ) class GroupType(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class EntityType13(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class EntityDataInfo(BaseModel): hasRelations: Optional[bool] = None hasAttributes: Optional[bool] = None hasCredentials: Optional[bool] = None hasCalculatedFields: Optional[bool] = None hasPermissions: Optional[bool] = None hasGroupEntities: Optional[bool] = None class Direction3(Enum): ASC = 'ASC' DESC = 'DESC' class EntityFilter(BaseModel): type: str class Type11(Enum): CUSTOMER = 'CUSTOMER' ASSET = 'ASSET' DEVICE = 'DEVICE' USER = 'USER' ENTITY_VIEW = 'ENTITY_VIEW' DASHBOARD = 'DASHBOARD' EDGE = 'EDGE' class EntityGroupFilter(EntityFilter): groupType: Optional[GroupType] = None entityGroup: Optional[str] = None class EntityType16(Enum): ENTITY_GROUP = 'ENTITY_GROUP' class EntityGroupId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType16 = Field(..., description='string', example='ENTITY_GROUP') class EntityGroupListFilter(EntityFilter): groupType: Optional[GroupType] = None entityGroupList: Optional[List[str]] = None class EntityGroupNameFilter(EntityFilter): groupType: Optional[GroupType] = None entityGroupNameFilter: Optional[str] = None class EntityType17(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class EntityId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType17 = Field(..., example='DEVICE') class EntityInfo(BaseModel): id: Optional[EntityId] = Field(None, description='JSON object with the entity Id. ') name: Optional[str] = Field(None, description='Entity Name') class Type13(Enum): ATTRIBUTE = 'ATTRIBUTE' CLIENT_ATTRIBUTE = 'CLIENT_ATTRIBUTE' SHARED_ATTRIBUTE = 'SHARED_ATTRIBUTE' SERVER_ATTRIBUTE = 'SERVER_ATTRIBUTE' TIME_SERIES = 'TIME_SERIES' ENTITY_FIELD = 'ENTITY_FIELD' ALARM_FIELD = 'ALARM_FIELD' class EntityKey(BaseModel): type: Optional[Type13] = None key: Optional[str] = None class EntityListFilter(EntityFilter): entityType: Optional[EntityType17] = None entityList: Optional[List[str]] = None class EntityLoadError(BaseModel): type: Optional[str] = None source: Optional[EntityId] = None target: Optional[EntityId] = None message: Optional[str] = None class EntityNameFilter(EntityFilter): entityType: Optional[EntityType17] = None entityNameFilter: Optional[str] = None class TypeGroup(Enum): COMMON = 'COMMON' DASHBOARD = 'DASHBOARD' FROM_ENTITY_GROUP = 'FROM_ENTITY_GROUP' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' EDGE = 'EDGE' EDGE_AUTO_ASSIGN_RULE_CHAIN = 'EDGE_AUTO_ASSIGN_RULE_CHAIN' class EntityTypeFilter(EntityFilter): entityType: Optional[EntityType17] = None class EntityTypeLoadResult(BaseModel): entityType: Optional[EntityType17] = None created: Optional[int] = None updated: Optional[int] = None deleted: Optional[int] = None groupsCreated: Optional[int] = None groupsUpdated: Optional[int] = None groupsDeleted: Optional[int] = None class EntityTypeVersionCreateConfig(BaseModel): saveRelations: Optional[bool] = None saveAttributes: Optional[bool] = None saveCredentials: Optional[bool] = None saveCalculatedFields: Optional[bool] = None savePermissions: Optional[bool] = None saveGroupEntities: Optional[bool] = None syncStrategy: Optional[SyncStrategy] = None entityIds: Optional[List[UUID]] = None allEntities: Optional[bool] = None class EntityTypeVersionLoadConfig(BaseModel): loadRelations: Optional[bool] = None loadAttributes: Optional[bool] = None loadCredentials: Optional[bool] = None loadCalculatedFields: Optional[bool] = None loadPermissions: Optional[bool] = None loadGroupEntities: Optional[bool] = None autoGenerateIntegrationKey: Optional[bool] = None removeOtherEntities: Optional[bool] = None findExistingEntityByName: Optional[bool] = None class EntityVersion(BaseModel): timestamp: Optional[int] = None id: Optional[str] = None name: Optional[str] = None author: Optional[str] = None class EntityType23(Enum): ENTITY_VIEW = 'ENTITY_VIEW' class EntityViewId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType23 = Field(..., description='string', example='ENTITY_VIEW') class Direction4(Enum): FROM = 'FROM' TO = 'TO' class EntityViewSearchQueryFilter(EntityFilter): rootEntity: Optional[EntityId] = None relationType: Optional[str] = None direction: Optional[Direction4] = None maxLevel: Optional[int] = None fetchLastLevelOnly: Optional[bool] = None entityViewTypes: Optional[List[str]] = None class EntityViewTypeFilter(EntityFilter): entityViewType: Optional[str] = None entityViewTypes: Optional[List[str]] = None entityViewNameFilter: Optional[str] = None class EventType(Enum): ERROR = 'ERROR' LC_EVENT = 'LC_EVENT' STATS = 'STATS' RAW_DATA = 'RAW_DATA' DEBUG_RULE_NODE = 'DEBUG_RULE_NODE' DEBUG_RULE_CHAIN = 'DEBUG_RULE_CHAIN' DEBUG_CONVERTER = 'DEBUG_CONVERTER' DEBUG_INTEGRATION = 'DEBUG_INTEGRATION' DEBUG_CALCULATED_FIELD = 'DEBUG_CALCULATED_FIELD' class EventFilter(BaseModel): eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) notEmpty: Optional[bool] = None class EventId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class ExportableEntityEntityId(BaseModel): id: Optional[EntityId] = None name: Optional[str] = None class Favicon(BaseModel): url: Optional[str] = None class FeaturesInfo(BaseModel): smsEnabled: Optional[bool] = None oauthEnabled: Optional[bool] = None notificationEnabled: Optional[bool] = None twoFaEnabled: Optional[bool] = None whiteLabelingEnabled: Optional[bool] = None emailEnabled: Optional[bool] = None class FilterPredicateValueBoolean(BaseModel): defaultValue: Optional[bool] = None userValue: Optional[bool] = None dynamicValue: Optional[DynamicValueBoolean] = None class FilterPredicateValueDouble(BaseModel): defaultValue: Optional[float] = None userValue: Optional[float] = None dynamicValue: Optional[DynamicValueDouble] = None class FilterPredicateValueInteger(BaseModel): defaultValue: Optional[int] = None userValue: Optional[int] = None dynamicValue: Optional[DynamicValueInteger] = None class FilterPredicateValueLong(BaseModel): defaultValue: Optional[int] = None userValue: Optional[int] = None dynamicValue: Optional[DynamicValueLong] = None class FilterPredicateValueString(BaseModel): defaultValue: Optional[str] = None userValue: Optional[str] = None dynamicValue: Optional[DynamicValueString] = None class EntityGroupType(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class EntityType24(Enum): GROUP_PERMISSION = 'GROUP_PERMISSION' class GroupPermissionId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType24 = Field( ..., description='string', example='GROUP_PERMISSION' ) class HasIdObject(BaseModel): id: Optional[Any] = None class HomeDashboardInfo(BaseModel): dashboardId: Optional[DashboardId] = Field( None, description='JSON object with the dashboard Id.' ) hideDashboardToolbar: Optional[bool] = Field( None, description='Hide dashboard toolbar flag. Useful for rendering dashboards on mobile.', ) class HomeDashboardParams(BaseModel): id: Optional[str] = Field( None, description='Home dashboard Id to assign for the new user.', example='784f394c-42b6-435a-983c-b7beff2784f9', ) hideToolbar: Optional[bool] = Field( None, description='Indicates if hide toolbar should be hidden.' ) class HomeType(Enum): DEFAULT = 'DEFAULT' DASHBOARD = 'DASHBOARD' class Type14(Enum): OCEANCONNECT = 'OCEANCONNECT' SIGFOX = 'SIGFOX' THINGPARK = 'THINGPARK' TPE = 'TPE' CHIRPSTACK = 'CHIRPSTACK' PARTICLE = 'PARTICLE' TMOBILE_IOT_CDP = 'TMOBILE_IOT_CDP' HTTP = 'HTTP' MQTT = 'MQTT' PUB_SUB = 'PUB_SUB' AWS_IOT = 'AWS_IOT' AWS_SQS = 'AWS_SQS' AWS_KINESIS = 'AWS_KINESIS' IBM_WATSON_IOT = 'IBM_WATSON_IOT' TTN = 'TTN' TTI = 'TTI' AZURE_EVENT_HUB = 'AZURE_EVENT_HUB' OPC_UA = 'OPC_UA' CUSTOM = 'CUSTOM' UDP = 'UDP' TCP = 'TCP' KAFKA = 'KAFKA' AZURE_IOT_HUB = 'AZURE_IOT_HUB' APACHE_PULSAR = 'APACHE_PULSAR' RABBITMQ = 'RABBITMQ' LORIOT = 'LORIOT' COAP = 'COAP' TUYA = 'TUYA' AZURE_SERVICE_BUS = 'AZURE_SERVICE_BUS' KPN = 'KPN' class IntegrationConvertersInfo(BaseModel): uplink: Optional[ConvertersInfo] = None downlink: Optional[ConvertersInfo] = None class EntityType25(Enum): INTEGRATION = 'INTEGRATION' class IntegrationId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType25 = Field(..., description='string', example='INTEGRATION') class NotifyOnEnum5(Enum): CREATED = 'CREATED' STARTED = 'STARTED' ACTIVATED = 'ACTIVATED' SUSPENDED = 'SUSPENDED' UPDATED = 'UPDATED' STOPPED = 'STOPPED' DELETED = 'DELETED' FAILED = 'FAILED' DEACTIVATED = 'DEACTIVATED' class JsonNode(RootModel): root: Any = Field( ..., description='A JSON value representing the custom translation. See API call notes above for valid example.', examples=[{}], ) class Scope3(Enum): SYS_ADMIN = 'SYS_ADMIN' TENANT_ADMIN = 'TENANT_ADMIN' CUSTOMER_USER = 'CUSTOMER_USER' BILLING_ADMIN = 'BILLING_ADMIN' BILLING_SERVICE = 'BILLING_SERVICE' REFRESH_TOKEN = 'REFRESH_TOKEN' PRE_VERIFICATION_TOKEN = 'PRE_VERIFICATION_TOKEN' class JwtPair(BaseModel): token: Optional[str] = Field( None, description='The JWT Access Token. Used to perform API calls.', example='AAB254FF67D..', ) refreshToken: Optional[str] = Field( None, description='The JWT Refresh Token. Used to get new JWT Access Token if old one has expired.', example='AAB254FF67D..', ) scope: Optional[Scope3] = None class JwtSettings(BaseModel): tokenExpirationTime: Optional[int] = Field( None, description='The JWT will expire after seconds.', example=9000 ) refreshTokenExpTime: Optional[int] = Field( None, description='The JWT can be refreshed during seconds.', example=604800 ) tokenIssuer: Optional[str] = Field( None, description='The JWT issuer.', example='thingsboard.io' ) tokenSigningKey: Optional[str] = Field( None, description='The JWT key is used to sing token. Base64 encoded.', example='dkVTUzU2M2VMWUNwVVltTUhQU2o5SUM0Tkc3M0k2Ykdwcm85QTl6R0RaQ252OFlmVDk2OEptZXBNcndGeExFZg==', ) class KeyFilterPredicate(BaseModel): type: str class LastVisitedDashboardInfo(BaseModel): id: Optional[UUID] = Field(None, description='JSON object with Dashboard id.') title: Optional[str] = Field(None, description='Title of the dashboard.') starred: Optional[bool] = Field(None, description='Starred flag') lastVisited: Optional[int] = Field(None, description='Last visit timestamp') class LicenseUsageInfo(BaseModel): maxDevices: Optional[int] = None maxAssets: Optional[int] = None whiteLabelingEnabled: Optional[bool] = None development: Optional[bool] = None plan: Optional[str] = None devicesCount: Optional[int] = None assetsCount: Optional[int] = None dashboardsCount: Optional[int] = None integrationsCount: Optional[int] = None class Status4(Enum): Success = 'Success' Failure = 'Failure' class LifeCycleEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) event: Optional[str] = Field( None, description='String value representing the lifecycle event type', example='STARTED', ) status: Optional[Status4] = Field( None, description='String value representing status of the lifecycle event' ) errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class LoginRequest(BaseModel): username: str = Field( ..., description='User email', example='tenant@thingsboard.org' ) password: str = Field(..., description='User password', example='tenant') class LoginResponse(BaseModel): token: str = Field( ..., description='JWT token', example='eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...', ) refreshToken: str = Field( ..., description='Refresh token', example='eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZW5hbnRAdGhpbmdzYm9hcmQub3JnIi...', ) class LwM2MBootstrapServerCredential(BaseModel): securityMode: str class LwM2MServerSecurityConfigDefault(BaseModel): shortServerId: Optional[int] = Field( None, description="Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set when the Bootstrap-Server Resource has a value of 'false'. The values ID:1 and ID:65534 values MUST NOT be used for identifying the LwM2M Server.", example=123, ) bootstrapServerIs: Optional[bool] = Field( None, description='Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.', example=True, ) host: Optional[str] = Field( None, description="Host for 'No Security' mode", example='0.0.0.0' ) port: Optional[int] = Field( None, description="Port for Lwm2m Server: 'No Security' mode: Lwm2m Server or Bootstrap Server", example="'5685' or '5687'", ) clientHoldOffTime: Optional[int] = Field( None, description='Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This information is relevant for use with a Bootstrap-Server only.)', example=1, ) serverPublicKey: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): RPK or X509. Format: base64 encoded", example='MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat\n+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA==', ) serverCertificate: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): X509. Format: base64 encoded", example='MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs\nxEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM\nJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp\nAWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw=', ) bootstrapServerAccountTimeout: Optional[int] = Field( None, description='Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)', example=0, ) lifetime: Optional[int] = Field( None, description='Specify the lifetime of the registration in seconds.', example=300, ) defaultMinPeriod: Optional[int] = Field( None, description='The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn’t exist, the default value is 0.', example=1, ) notifIfDisabled: Optional[bool] = Field( None, description='If true, the LwM2M Client stores “Notify” operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored “Notify” operations to the Server. If false, the LwM2M Client discards all the “Notify” operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true.', example=True, ) binding: Optional[str] = Field( None, description='This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode.', example='U', ) securityHost: Optional[str] = Field( None, description="Host for 'Security' mode (DTLS)", example='0.0.0.0' ) securityPort: Optional[int] = Field( None, description="Port for 'Security' mode (DTLS): Lwm2m Server or Bootstrap Server", example=5686, ) class LwM2mResourceObserve(BaseModel): id: Optional[int] = Field( None, description='LwM2M Resource Observe id.', example=0 ) name: Optional[str] = Field( None, description='LwM2M Resource Observe name.', example='Data' ) observe: Optional[bool] = Field( None, description='LwM2M Resource Observe observe.', example=False ) attribute: Optional[bool] = Field( None, description='LwM2M Resource Observe attribute.', example=False ) telemetry: Optional[bool] = Field( None, description='LwM2M Resource Observe telemetry.', example=False ) keyName: Optional[str] = Field( None, description='LwM2M Resource Observe key name.', example='data' ) class LwM2mVersion(BaseModel): supported: Optional[bool] = None class Lwm2mDeviceTransportConfiguration(DeviceTransportConfiguration): powerMode: Optional[PowerMode] = None psmActivityTimer: Optional[int] = None edrxCycle: Optional[int] = None pagingTransmissionWindow: Optional[int] = None class Mapping(BaseModel): columns: Optional[List[ColumnMapping]] = None delimiter: Optional[str] = None update: Optional[bool] = None header: Optional[bool] = None class Type16(Enum): HOME = 'HOME' DEFAULT = 'DEFAULT' CUSTOM = 'CUSTOM' class MenuItem(BaseModel): type: Optional[Type16] = None visible: Optional[bool] = None class EntityType26(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class Operation2(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class MergedGroupPermissionInfo(BaseModel): entityType: Optional[EntityType26] = None operations: Optional[List[Operation2]] = Field(None, Set=True) class MergedGroupTypePermissionInfo(BaseModel): entityGroupIds: Optional[List[EntityGroupId]] = Field( None, description='List of Entity Groups in case of group roles are assigned to the user (user group)', ) hasGenericRead: Optional[bool] = Field( None, description='Indicates if generic permission assigned to the user group.' ) class GenericPermission(Enum): ALL = 'ALL' CREATE = 'CREATE' READ = 'READ' WRITE = 'WRITE' DELETE = 'DELETE' RPC_CALL = 'RPC_CALL' READ_CREDENTIALS = 'READ_CREDENTIALS' WRITE_CREDENTIALS = 'WRITE_CREDENTIALS' READ_ATTRIBUTES = 'READ_ATTRIBUTES' WRITE_ATTRIBUTES = 'WRITE_ATTRIBUTES' READ_TELEMETRY = 'READ_TELEMETRY' WRITE_TELEMETRY = 'WRITE_TELEMETRY' ADD_TO_GROUP = 'ADD_TO_GROUP' REMOVE_FROM_GROUP = 'REMOVE_FROM_GROUP' CHANGE_OWNER = 'CHANGE_OWNER' IMPERSONATE = 'IMPERSONATE' CLAIM_DEVICES = 'CLAIM_DEVICES' SHARE_GROUP = 'SHARE_GROUP' ASSIGN_TO_TENANT = 'ASSIGN_TO_TENANT' READ_CALCULATED_FIELD = 'READ_CALCULATED_FIELD' WRITE_CALCULATED_FIELD = 'WRITE_CALCULATED_FIELD' class MergedUserPermissions(BaseModel): genericPermissions: Optional[Dict[str, List[GenericPermission]]] = Field( None, description="Map of permissions defined using generic roles ('Customer Administrator', etc)", ) groupPermissions: Optional[Dict[str, MergedGroupPermissionInfo]] = Field( None, description="Map of permissions defined using group roles ('Read' or 'Write' access to specific entity group, etc)", ) readGroupPermissions: Optional[Dict[str, MergedGroupTypePermissionInfo]] = Field( None, description='Map of read permissions per entity type. Used on the UI to enable/disable certain components.', ) readEntityPermissions: Optional[Dict[str, MergedGroupTypePermissionInfo]] = Field( None, description='Map of read permissions per resource. Used on the UI to enable/disable certain components.', ) readAttrPermissions: Optional[Dict[str, MergedGroupTypePermissionInfo]] = Field( None, description='Map of read entity attributes permissions per resource. Used on the UI to enable/disable certain tabs.', ) readTsPermissions: Optional[Dict[str, MergedGroupTypePermissionInfo]] = Field( None, description='Map of read entity time-series permissions per resource. Used on the UI to enable/disable certain tabs.', ) class MicrosoftTeamsDeliveryMethodNotificationTemplate( DeliveryMethodNotificationTemplate ): subject: Optional[str] = None themeColor: Optional[str] = None button: Optional[Button] = None body: str class PlatformType(Enum): WEB = 'WEB' ANDROID = 'ANDROID' IOS = 'IOS' class Status5(Enum): DRAFT = 'DRAFT' PUBLISHED = 'PUBLISHED' DEPRECATED = 'DEPRECATED' SUSPENDED = 'SUSPENDED' class MobileAppBundleId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType26 = Field(..., example='DEVICE') class MobileAppDeliveryMethodNotificationTemplate(DeliveryMethodNotificationTemplate): subject: str additionalConfig: Optional[Any] = None body: str class MobileAppId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType26 = Field(..., example='DEVICE') class MobileAppVersionInfo(BaseModel): minVersion: Optional[str] = Field(None, description='Minimum supported version') minVersionReleaseNotes: Optional[str] = Field( None, description='Release notes of minimum supported version' ) latestVersion: Optional[str] = Field(None, description='Latest supported version') latestVersionReleaseNotes: Optional[str] = Field( None, description='Release notes of latest supported version' ) class Type17(Enum): DEFAULT = 'DEFAULT' DASHBOARD = 'DASHBOARD' WEB_VIEW = 'WEB_VIEW' CUSTOM = 'CUSTOM' class MobilePage(BaseModel): type: Optional[Type17] = None visible: Optional[bool] = None class MobileRedirectParams(BaseModel): scheme: Optional[str] = Field( None, description='Mobile application verification settings. Used for callback to mobile application once user is registered.', ) host: Optional[str] = Field( None, description='Mobile application verification settings. Used for callback to mobile application once user is registered.', ) class MobileSessionInfo(BaseModel): fcmTokenTimestamp: Optional[int] = None class Model(BaseModel): name: Optional[str] = None info: Optional[JsonNode] = None photo: Optional[str] = None class MqttDeviceTransportConfiguration(DeviceTransportConfiguration): pass class NoSecLwM2MBootstrapServerCredential(LwM2MBootstrapServerCredential): shortServerId: Optional[int] = Field( None, description="Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set when the Bootstrap-Server Resource has a value of 'false'. The values ID:1 and ID:65534 values MUST NOT be used for identifying the LwM2M Server.", example=123, ) bootstrapServerIs: Optional[bool] = Field( None, description='Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.', example=True, ) host: Optional[str] = Field( None, description="Host for 'No Security' mode", example='0.0.0.0' ) port: Optional[int] = Field( None, description="Port for Lwm2m Server: 'No Security' mode: Lwm2m Server or Bootstrap Server", example="'5685' or '5687'", ) clientHoldOffTime: Optional[int] = Field( None, description='Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This information is relevant for use with a Bootstrap-Server only.)', example=1, ) serverPublicKey: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): RPK or X509. Format: base64 encoded", example='MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat\n+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA==', ) serverCertificate: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): X509. Format: base64 encoded", example='MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs\nxEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM\nJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp\nAWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw=', ) bootstrapServerAccountTimeout: Optional[int] = Field( None, description='Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)', example=0, ) lifetime: Optional[int] = Field( None, description='Specify the lifetime of the registration in seconds.', example=300, ) defaultMinPeriod: Optional[int] = Field( None, description='The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn’t exist, the default value is 0.', example=1, ) notifIfDisabled: Optional[bool] = Field( None, description='If true, the LwM2M Client stores “Notify” operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored “Notify” operations to the Server. If false, the LwM2M Client discards all the “Notify” operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true.', example=True, ) binding: Optional[str] = Field( None, description='This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode.', example='U', ) class NodeConnectionInfo(BaseModel): fromIndex: int = Field( ..., description="Index of rule node in the 'nodes' array of the RuleChainMetaData. Indicates the 'from' part of the connection.", ) toIndex: int = Field( ..., description="Index of rule node in the 'nodes' array of the RuleChainMetaData. Indicates the 'to' part of the connection.", ) type: str = Field( ..., description="Type of the relation. Typically indicated the result of processing by the 'from' rule node. For example, 'Success' or 'Failure'", ) class Type18(Enum): GENERAL = 'GENERAL' ALARM = 'ALARM' DEVICE_ACTIVITY = 'DEVICE_ACTIVITY' ENTITY_ACTION = 'ENTITY_ACTION' ALARM_COMMENT = 'ALARM_COMMENT' RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT = 'RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT' ALARM_ASSIGNMENT = 'ALARM_ASSIGNMENT' NEW_PLATFORM_VERSION = 'NEW_PLATFORM_VERSION' ENTITIES_LIMIT = 'ENTITIES_LIMIT' API_USAGE_LIMIT = 'API_USAGE_LIMIT' RULE_NODE = 'RULE_NODE' INTEGRATION_LIFECYCLE_EVENT = 'INTEGRATION_LIFECYCLE_EVENT' RATE_LIMITS = 'RATE_LIMITS' EDGE_CONNECTION = 'EDGE_CONNECTION' EDGE_COMMUNICATION_FAILURE = 'EDGE_COMMUNICATION_FAILURE' TASK_PROCESSING_FAILURE = 'TASK_PROCESSING_FAILURE' USER_ACTIVATED = 'USER_ACTIVATED' USER_REGISTERED = 'USER_REGISTERED' class DeliveryMethod(Enum): WEB = 'WEB' EMAIL = 'EMAIL' SMS = 'SMS' SLACK = 'SLACK' MICROSOFT_TEAMS = 'MICROSOFT_TEAMS' MOBILE_APP = 'MOBILE_APP' class Status6(Enum): SENT = 'SENT' READ = 'READ' class NotificationDeliveryMethodConfig(BaseModel): method: str class EntityType29(Enum): NOTIFICATION = 'NOTIFICATION' class NotificationId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType29 = Field(..., description='string', example='NOTIFICATION') class NotificationInfo(BaseModel): stateEntityId: Optional[EntityId] = None dashboardId: Optional[DashboardId] = None type: str class NotificationPref(BaseModel): enabled: Optional[bool] = None enabledDeliveryMethods: Dict[str, bool] class Status7(Enum): PROCESSING = 'PROCESSING' SENT = 'SENT' SCHEDULED = 'SCHEDULED' class NotificationRequestConfig(BaseModel): sendingDelayInSec: Optional[conint(le=604800)] = None class EntityType30(Enum): NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' class NotificationRequestId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType30 = Field( ..., description='string', example='NOTIFICATION_REQUEST' ) class Sent(BaseModel): opaque: Optional[int] = None acquire: Optional[int] = None release: Optional[int] = None andIncrement: Optional[int] = None andDecrement: Optional[int] = None plain: Optional[int] = None class TotalErrors(BaseModel): opaque: Optional[int] = None acquire: Optional[int] = None release: Optional[int] = None andIncrement: Optional[int] = None andDecrement: Optional[int] = None plain: Optional[int] = None class NotificationRequestStats(BaseModel): sent: Optional[Dict[str, Sent]] = None errors: Optional[Dict[str, Dict[str, str]]] = None totalErrors: Optional[TotalErrors] = None error: Optional[str] = None class TriggerType(Enum): ENTITY_ACTION = 'ENTITY_ACTION' ALARM = 'ALARM' ALARM_COMMENT = 'ALARM_COMMENT' ALARM_ASSIGNMENT = 'ALARM_ASSIGNMENT' DEVICE_ACTIVITY = 'DEVICE_ACTIVITY' RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT = 'RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT' INTEGRATION_LIFECYCLE_EVENT = 'INTEGRATION_LIFECYCLE_EVENT' EDGE_CONNECTION = 'EDGE_CONNECTION' EDGE_COMMUNICATION_FAILURE = 'EDGE_COMMUNICATION_FAILURE' NEW_PLATFORM_VERSION = 'NEW_PLATFORM_VERSION' ENTITIES_LIMIT = 'ENTITIES_LIMIT' API_USAGE_LIMIT = 'API_USAGE_LIMIT' RATE_LIMITS = 'RATE_LIMITS' TASK_PROCESSING_FAILURE = 'TASK_PROCESSING_FAILURE' class NotificationRuleConfig(BaseModel): description: Optional[str] = None class EntityType31(Enum): NOTIFICATION_RULE = 'NOTIFICATION_RULE' class NotificationRuleId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType31 = Field( ..., description='string', example='NOTIFICATION_RULE' ) class NotificationRuleRecipientsConfig(BaseModel): triggerType: TriggerType class NotificationRuleTriggerConfig(BaseModel): triggerType: Optional[TriggerType] = None class NotificationTargetConfig(BaseModel): description: Optional[str] = None type: str class EntityType32(Enum): NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' class NotificationTargetId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType32 = Field( ..., description='string', example='NOTIFICATION_TARGET' ) class NotificationType(Enum): GENERAL = 'GENERAL' ALARM = 'ALARM' DEVICE_ACTIVITY = 'DEVICE_ACTIVITY' ENTITY_ACTION = 'ENTITY_ACTION' ALARM_COMMENT = 'ALARM_COMMENT' RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT = 'RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT' ALARM_ASSIGNMENT = 'ALARM_ASSIGNMENT' NEW_PLATFORM_VERSION = 'NEW_PLATFORM_VERSION' ENTITIES_LIMIT = 'ENTITIES_LIMIT' API_USAGE_LIMIT = 'API_USAGE_LIMIT' RULE_NODE = 'RULE_NODE' INTEGRATION_LIFECYCLE_EVENT = 'INTEGRATION_LIFECYCLE_EVENT' RATE_LIMITS = 'RATE_LIMITS' EDGE_CONNECTION = 'EDGE_CONNECTION' EDGE_COMMUNICATION_FAILURE = 'EDGE_COMMUNICATION_FAILURE' TASK_PROCESSING_FAILURE = 'TASK_PROCESSING_FAILURE' USER_ACTIVATED = 'USER_ACTIVATED' USER_REGISTERED = 'USER_REGISTERED' class EntityType33(Enum): NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' class NotificationTemplateId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType33 = Field( ..., description='string', example='NOTIFICATION_TEMPLATE' ) class Operation3(Enum): EQUAL = 'EQUAL' NOT_EQUAL = 'NOT_EQUAL' GREATER = 'GREATER' LESS = 'LESS' GREATER_OR_EQUAL = 'GREATER_OR_EQUAL' LESS_OR_EQUAL = 'LESS_OR_EQUAL' class NumericFilterPredicate(KeyFilterPredicate): operation: Optional[Operation3] = None value: Optional[FilterPredicateValueDouble] = None class TenantNameStrategy(Enum): DOMAIN = 'DOMAIN' EMAIL = 'EMAIL' CUSTOM = 'CUSTOM' class OAuth2BasicMapperConfig(BaseModel): emailAttributeKey: Optional[str] = Field( None, description='Email attribute key of OAuth2 principal attributes. Must be specified for BASIC mapper type and cannot be specified for GITHUB type', ) firstNameAttributeKey: Optional[str] = Field( None, description='First name attribute key' ) lastNameAttributeKey: Optional[str] = Field( None, description='Last name attribute key' ) tenantNameStrategy: TenantNameStrategy = Field( ..., description="Tenant naming strategy. For DOMAIN type, domain for tenant name will be taken from the email (substring before '@')", ) tenantNamePattern: Optional[str] = Field( None, description="Tenant name pattern for CUSTOM naming strategy. OAuth2 attributes in the pattern can be used by enclosing attribute key in '%{' and '}'", example='%{email}', ) customerNamePattern: Optional[str] = Field( None, description='Customer name pattern. When creating a user on the first OAuth2 log in, if specified, customer name will be used to create or find existing customer in the platform and assign customerId to the user', ) defaultDashboardName: Optional[str] = Field( None, description="Name of the tenant's dashboard to set as default dashboard for newly created user", ) alwaysFullScreen: Optional[bool] = Field( None, description='Whether default dashboard should be open in full screen' ) parentCustomerNamePattern: Optional[str] = None userGroupsNamePattern: Optional[List[str]] = None class Platform(Enum): WEB = 'WEB' ANDROID = 'ANDROID' IOS = 'IOS' class EntityType34(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class OAuth2ClientId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType34 = Field(..., example='DEVICE') class OAuth2ClientInfo(BaseModel): id: Optional[OAuth2ClientId] = None createdTime: Optional[int] = None title: Optional[str] = Field( None, description='Oauth2 client registration title (e.g. My google)' ) providerName: Optional[str] = Field( None, description='Oauth2 client provider name (e.g. Google)' ) platforms: Optional[List[Platform]] = Field( None, description='List of platforms for which usage of the OAuth2 client is allowed (empty for all allowed)', ) name: Optional[str] = None class OAuth2ClientLoginInfo(BaseModel): name: Optional[str] = Field( None, description='OAuth2 client name', example='GitHub' ) icon: Optional[str] = Field( None, description='Name of the icon, displayed on OAuth2 log in button', example='github-logo', ) url: Optional[str] = Field( None, description='URI for OAuth2 log in. On HTTP GET request to this URI, it redirects to the OAuth2 provider page', example='/oauth2/authorization/8352f191-2b4d-11ec-9ed1-cbf57c026ecc', ) class OAuth2ClientRegistrationTemplateId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class OAuth2CustomMapperConfig(BaseModel): url: Optional[str] = None username: Optional[str] = None password: Optional[str] = None sendToken: Optional[bool] = None class Type19(Enum): BASIC = 'BASIC' CUSTOM = 'CUSTOM' GITHUB = 'GITHUB' APPLE = 'APPLE' class OAuth2MapperConfig(BaseModel): allowUserCreation: Optional[bool] = Field( None, description='Whether user should be created if not yet present on the platform after successful authentication', ) activateUser: Optional[bool] = Field( None, description='Whether user credentials should be activated when user is created after successful authentication', ) type: Type19 = Field( ..., description='Type of OAuth2 mapper. Depending on this param, different mapper config fields must be specified', ) basic: Optional[OAuth2BasicMapperConfig] = Field( None, description='Mapper config for BASIC and GITHUB mapper types' ) custom: Optional[OAuth2CustomMapperConfig] = Field( None, description='Mapper config for CUSTOM mapper type' ) class ObjectAttributes(BaseModel): dim: Optional[int] = None ssid: Optional[int] = None uri: Optional[str] = None ver: Optional[Any] = None lwm2m: Optional[LwM2mVersion] = None pmin: Optional[int] = None pmax: Optional[int] = None gt: Optional[float] = None lt: Optional[float] = None st: Optional[float] = None epmin: Optional[int] = None epmax: Optional[int] = None class Type20(Enum): FIRMWARE = 'FIRMWARE' SOFTWARE = 'SOFTWARE' class ChecksumAlgorithm(Enum): MD5 = 'MD5' SHA256 = 'SHA256' SHA384 = 'SHA384' SHA512 = 'SHA512' CRC32 = 'CRC32' MURMUR3_32 = 'MURMUR3_32' MURMUR3_128 = 'MURMUR3_128' class Data(BaseModel): short: Optional[int] = None char: Optional[str] = None int: Optional[int] = None long: Optional[int] = None float: Optional[float] = None double: Optional[float] = None direct: Optional[bool] = None readOnly: Optional[bool] = None class EntityType35(Enum): OTA_PACKAGE = 'OTA_PACKAGE' class OtaPackageId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType35 = Field(..., description='string', example='OTA_PACKAGE') class OtherConfiguration(BaseModel): fwUpdateStrategy: Optional[int] = None swUpdateStrategy: Optional[int] = None clientOnlyObserveAfterConnect: Optional[int] = None powerMode: Optional[PowerMode] = None psmActivityTimer: Optional[int] = None edrxCycle: Optional[int] = None pagingTransmissionWindow: Optional[int] = None fwUpdateResource: Optional[str] = None swUpdateResource: Optional[str] = None defaultObjectIDVer: Optional[str] = None class Type22(Enum): TIME_SERIES = 'TIME_SERIES' ATTRIBUTES = 'ATTRIBUTES' class Scope4(Enum): CLIENT_SCOPE = 'CLIENT_SCOPE' SERVER_SCOPE = 'SERVER_SCOPE' SHARED_SCOPE = 'SHARED_SCOPE' class Output(BaseModel): name: Optional[str] = None type: Optional[Type22] = None scope: Optional[Scope4] = None decimalsByDefault: Optional[int] = None class PSKLwM2MBootstrapServerCredential(LwM2MBootstrapServerCredential): shortServerId: Optional[int] = Field( None, description="Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set when the Bootstrap-Server Resource has a value of 'false'. The values ID:1 and ID:65534 values MUST NOT be used for identifying the LwM2M Server.", example=123, ) bootstrapServerIs: Optional[bool] = Field( None, description='Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.', example=True, ) host: Optional[str] = Field( None, description="Host for 'No Security' mode", example='0.0.0.0' ) port: Optional[int] = Field( None, description="Port for Lwm2m Server: 'No Security' mode: Lwm2m Server or Bootstrap Server", example="'5685' or '5687'", ) clientHoldOffTime: Optional[int] = Field( None, description='Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This information is relevant for use with a Bootstrap-Server only.)', example=1, ) serverPublicKey: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): RPK or X509. Format: base64 encoded", example='MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat\n+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA==', ) serverCertificate: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): X509. Format: base64 encoded", example='MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs\nxEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM\nJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp\nAWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw=', ) bootstrapServerAccountTimeout: Optional[int] = Field( None, description='Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)', example=0, ) lifetime: Optional[int] = Field( None, description='Specify the lifetime of the registration in seconds.', example=300, ) defaultMinPeriod: Optional[int] = Field( None, description='The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn’t exist, the default value is 0.', example=1, ) notifIfDisabled: Optional[bool] = Field( None, description='If true, the LwM2M Client stores “Notify” operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored “Notify” operations to the Server. If false, the LwM2M Client discards all the “Notify” operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true.', example=True, ) binding: Optional[str] = Field( None, description='This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode.', example='U', ) class PageDataEntityInfo(BaseModel): data: Optional[List[EntityInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntityVersion(BaseModel): data: Optional[List[EntityVersion]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataOAuth2ClientInfo(BaseModel): data: Optional[List[OAuth2ClientInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class Palette(BaseModel): type: str = Field( ..., description="Name of the pre-defined palette, or 'custom'", example='custom', ) colors: Optional[Dict[str, str]] = Field( None, description='Mapping of hue identifier number to the rgb(a) color code' ) extends: Optional[str] = Field( None, description='Pre-defined palette name that the custom palette extends', example='purple', ) class PaletteSettings(BaseModel): primaryPalette: Palette = Field(..., description='Primary palette JSON') accentPalette: Palette = Field(..., description='Accent palette JSON') class PowerSavingConfiguration(BaseModel): powerMode: Optional[PowerMode] = None psmActivityTimer: Optional[int] = None edrxCycle: Optional[int] = None pagingTransmissionWindow: Optional[int] = None class Type23(Enum): SKIP_ALL_FAILURES = 'SKIP_ALL_FAILURES' SKIP_ALL_FAILURES_AND_TIMED_OUT = 'SKIP_ALL_FAILURES_AND_TIMED_OUT' RETRY_ALL = 'RETRY_ALL' RETRY_FAILED = 'RETRY_FAILED' RETRY_TIMED_OUT = 'RETRY_TIMED_OUT' RETRY_FAILED_AND_TIMED_OUT = 'RETRY_FAILED_AND_TIMED_OUT' class ProcessingStrategy(BaseModel): type: Optional[Type23] = None retries: Optional[int] = None failurePercentage: Optional[float] = None pauseBetweenRetries: Optional[int] = None maxPauseBetweenRetries: Optional[int] = None class BadgePosition(Enum): RIGHT = 'RIGHT' LEFT = 'LEFT' class QRCodeConfig(BaseModel): showOnHomePage: Optional[bool] = None badgeEnabled: Optional[bool] = None qrCodeLabelEnabled: Optional[bool] = None badgePosition: Optional[BadgePosition] = None qrCodeLabel: Optional[str] = None class QrCodeSettingsId(BaseModel): id: UUID = Field( ..., description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) class EntityType36(Enum): QUEUE = 'QUEUE' class QueueId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType36 = Field(..., description='string', example='QUEUE') class EntityType37(Enum): QUEUE_STATS = 'QUEUE_STATS' class QueueStatsId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType37 = Field(..., description='string', example='QUEUE_STATS') class RPKLwM2MBootstrapServerCredential(LwM2MBootstrapServerCredential): shortServerId: Optional[int] = Field( None, description="Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set when the Bootstrap-Server Resource has a value of 'false'. The values ID:1 and ID:65534 values MUST NOT be used for identifying the LwM2M Server.", example=123, ) bootstrapServerIs: Optional[bool] = Field( None, description='Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.', example=True, ) host: Optional[str] = Field( None, description="Host for 'No Security' mode", example='0.0.0.0' ) port: Optional[int] = Field( None, description="Port for Lwm2m Server: 'No Security' mode: Lwm2m Server or Bootstrap Server", example="'5685' or '5687'", ) clientHoldOffTime: Optional[int] = Field( None, description='Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This information is relevant for use with a Bootstrap-Server only.)', example=1, ) serverPublicKey: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): RPK or X509. Format: base64 encoded", example='MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat\n+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA==', ) serverCertificate: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): X509. Format: base64 encoded", example='MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs\nxEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM\nJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp\nAWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw=', ) bootstrapServerAccountTimeout: Optional[int] = Field( None, description='Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)', example=0, ) lifetime: Optional[int] = Field( None, description='Specify the lifetime of the registration in seconds.', example=300, ) defaultMinPeriod: Optional[int] = Field( None, description='The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn’t exist, the default value is 0.', example=1, ) notifIfDisabled: Optional[bool] = Field( None, description='If true, the LwM2M Client stores “Notify” operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored “Notify” operations to the Server. If false, the LwM2M Client discards all the “Notify” operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true.', example=True, ) binding: Optional[str] = Field( None, description='This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode.', example='U', ) class Api(Enum): ENTITY_EXPORT = 'ENTITY_EXPORT' ENTITY_IMPORT = 'ENTITY_IMPORT' NOTIFICATION_REQUESTS = 'NOTIFICATION_REQUESTS' NOTIFICATION_REQUESTS_PER_RULE = 'NOTIFICATION_REQUESTS_PER_RULE' REST_REQUESTS_PER_TENANT = 'REST_REQUESTS_PER_TENANT' REST_REQUESTS_PER_CUSTOMER = 'REST_REQUESTS_PER_CUSTOMER' WS_UPDATES_PER_SESSION = 'WS_UPDATES_PER_SESSION' CASSANDRA_QUERIES = 'CASSANDRA_QUERIES' EDGE_EVENTS = 'EDGE_EVENTS' EDGE_EVENTS_PER_EDGE = 'EDGE_EVENTS_PER_EDGE' EDGE_UPLINK_MESSAGES = 'EDGE_UPLINK_MESSAGES' EDGE_UPLINK_MESSAGES_PER_EDGE = 'EDGE_UPLINK_MESSAGES_PER_EDGE' INTEGRATION_MSGS_PER_TENANT = 'INTEGRATION_MSGS_PER_TENANT' INTEGRATION_MSGS_PER_DEVICE = 'INTEGRATION_MSGS_PER_DEVICE' INTEGRATION_MSGS_PER_ASSET = 'INTEGRATION_MSGS_PER_ASSET' INTEGRATION_EVENTS = 'INTEGRATION_EVENTS' CONVERTER_EVENTS = 'CONVERTER_EVENTS' REPORTS = 'REPORTS' PASSWORD_RESET = 'PASSWORD_RESET' TWO_FA_VERIFICATION_CODE_SEND = 'TWO_FA_VERIFICATION_CODE_SEND' TWO_FA_VERIFICATION_CODE_CHECK = 'TWO_FA_VERIFICATION_CODE_CHECK' TRANSPORT_MESSAGES_PER_TENANT = 'TRANSPORT_MESSAGES_PER_TENANT' TRANSPORT_MESSAGES_PER_DEVICE = 'TRANSPORT_MESSAGES_PER_DEVICE' TRANSPORT_MESSAGES_PER_GATEWAY = 'TRANSPORT_MESSAGES_PER_GATEWAY' TRANSPORT_MESSAGES_PER_GATEWAY_DEVICE = 'TRANSPORT_MESSAGES_PER_GATEWAY_DEVICE' EMAILS = 'EMAILS' WS_SUBSCRIPTIONS = 'WS_SUBSCRIPTIONS' CALCULATED_FIELD_DEBUG_EVENTS = 'CALCULATED_FIELD_DEBUG_EVENTS' class RateLimitsNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): apis: Optional[List[Api]] = Field(None, Set=True) class RawDataEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) uuid: Optional[str] = Field( None, description='String value representing the uuid', example='STARTED' ) messageType: Optional[str] = Field( None, description='String value representing the message type' ) message: Optional[str] = Field( None, description='String value representing the message' ) eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class Type24(Enum): TS_LATEST = 'TS_LATEST' ATTRIBUTE = 'ATTRIBUTE' TS_ROLLING = 'TS_ROLLING' class ReferencedEntityKey(BaseModel): key: Optional[str] = None type: Optional[Type24] = None scope: Optional[Scope4] = None class EntityType38(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class RelationEntityTypeFilter(BaseModel): relationType: Optional[str] = Field( None, description="Type of the relation between root entity and other entity (e.g. 'Contains' or 'Manages').", example='Contains', ) entityTypes: Optional[List[EntityType38]] = Field( None, description="Array of entity types to filter the related entities (e.g. 'DEVICE', 'ASSET').", ) negate: Optional[bool] = Field( None, description='Negate relation type between root entity and other entity.' ) class MultiRootEntitiesType(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class RelationsQueryFilter(EntityFilter): rootEntity: Optional[EntityId] = None multiRootEntitiesType: Optional[MultiRootEntitiesType] = None multiRootEntityIds: Optional[List[str]] = Field(None, Set=True) direction: Optional[Direction4] = None filters: Optional[List[RelationEntityTypeFilter]] = None maxLevel: Optional[int] = None fetchLastLevelOnly: Optional[bool] = None negate: Optional[bool] = None multiRoot: Optional[bool] = None class RootType(Enum): TENANT = 'TENANT' CUSTOMER = 'CUSTOMER' USER = 'USER' DASHBOARD = 'DASHBOARD' ASSET = 'ASSET' DEVICE = 'DEVICE' ALARM = 'ALARM' ENTITY_GROUP = 'ENTITY_GROUP' CONVERTER = 'CONVERTER' INTEGRATION = 'INTEGRATION' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' SCHEDULER_EVENT = 'SCHEDULER_EVENT' BLOB_ENTITY = 'BLOB_ENTITY' ENTITY_VIEW = 'ENTITY_VIEW' WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' WIDGET_TYPE = 'WIDGET_TYPE' ROLE = 'ROLE' GROUP_PERMISSION = 'GROUP_PERMISSION' TENANT_PROFILE = 'TENANT_PROFILE' DEVICE_PROFILE = 'DEVICE_PROFILE' ASSET_PROFILE = 'ASSET_PROFILE' API_USAGE_STATE = 'API_USAGE_STATE' TB_RESOURCE = 'TB_RESOURCE' OTA_PACKAGE = 'OTA_PACKAGE' EDGE = 'EDGE' RPC = 'RPC' QUEUE = 'QUEUE' NOTIFICATION_TARGET = 'NOTIFICATION_TARGET' NOTIFICATION_TEMPLATE = 'NOTIFICATION_TEMPLATE' NOTIFICATION_REQUEST = 'NOTIFICATION_REQUEST' NOTIFICATION = 'NOTIFICATION' NOTIFICATION_RULE = 'NOTIFICATION_RULE' QUEUE_STATS = 'QUEUE_STATS' OAUTH2_CLIENT = 'OAUTH2_CLIENT' DOMAIN = 'DOMAIN' MOBILE_APP = 'MOBILE_APP' MOBILE_APP_BUNDLE = 'MOBILE_APP_BUNDLE' CALCULATED_FIELD = 'CALCULATED_FIELD' CALCULATED_FIELD_LINK = 'CALCULATED_FIELD_LINK' BILLING_CUSTOMER = 'BILLING_CUSTOMER' SUBSCRIPTION_PLAN = 'SUBSCRIPTION_PLAN' SUBSCRIPTION = 'SUBSCRIPTION' COUPON = 'COUPON' class RelationTypeGroup(Enum): COMMON = 'COMMON' DASHBOARD = 'DASHBOARD' FROM_ENTITY_GROUP = 'FROM_ENTITY_GROUP' RULE_CHAIN = 'RULE_CHAIN' RULE_NODE = 'RULE_NODE' EDGE = 'EDGE' EDGE_AUTO_ASSIGN_RULE_CHAIN = 'EDGE_AUTO_ASSIGN_RULE_CHAIN' class RelationsSearchParameters(BaseModel): rootId: Optional[UUID] = Field( None, description='Root entity id to start search from.', example='784f394c-42b6-435a-983c-b7beff2784f9', ) rootType: Optional[RootType] = Field(None, description='Type of the root entity.') direction: Optional[Direction4] = Field( None, description='Type of the root entity.' ) relationTypeGroup: Optional[RelationTypeGroup] = Field( None, description='Type of the relation.' ) maxLevel: Optional[int] = Field( None, description='Maximum level of the search depth.' ) fetchLastLevelOnly: Optional[bool] = Field( None, description="Fetch entities that match the last level of search. Useful to find Devices that are strictly 'maxLevel' relations away from the root entity.", ) class RepeatingAlarmConditionSpec(AlarmConditionSpec): predicate: Optional[FilterPredicateValueInteger] = None class ReportConfig(BaseModel): baseUrl: str = Field( ..., description='Base URL of ThingsBoard UI that should be accessible by Report Server.', example='https:thingsboard.cloud', ) dashboardId: str = Field( ..., description='A string value representing the dashboard id.', example='784f394c-42b6-435a-983c-b7beff2784f9', ) state: Optional[str] = Field( None, description='Target dashboard state for report generation.' ) timezone: str = Field( ..., description='Timezone in which target dashboard will be presented in report.', example='Europe/Kiev', ) useDashboardTimewindow: Optional[bool] = Field( None, description='If set, timewindow configured in the target dashboard will be used during report generation.', example=True, ) timewindow: Optional[JsonNode] = Field( None, description='Specific dashboard timewindow that will be used during report generation.', ) namePattern: str = Field( ..., description='If set, timewindow configured in the target dashboard will be used during report generation.', example='report-%d{yyyy-MM-dd_HH:mm:ss}', ) type: Optional[str] = Field( None, description='Report file type, can be PDF | PNG | JPEG.', example='pdf' ) useCurrentUserCredentials: Optional[bool] = Field( None, description='If set, credentials of user created this report configuration will be used to open dashboard UI during report generation.', example=True, ) userId: str = Field( ..., description='A string value representing the user id.', example='784f394c-42b6-435a-983c-b7beff2784f9', ) class AuthMethod(Enum): USERNAME_PASSWORD = 'USERNAME_PASSWORD' PRIVATE_KEY = 'PRIVATE_KEY' class RepositorySettings(BaseModel): repositoryUri: Optional[str] = None authMethod: Optional[AuthMethod] = None username: Optional[str] = None password: Optional[str] = None privateKeyFileName: Optional[str] = None privateKey: Optional[str] = None privateKeyPassword: Optional[str] = None defaultBranch: Optional[str] = None readOnly: Optional[bool] = None showMergeCommits: Optional[bool] = None localOnly: Optional[bool] = None class RepositorySettingsInfo(BaseModel): configured: Optional[bool] = None readOnly: Optional[bool] = None class ResetPasswordEmailRequest(BaseModel): email: Optional[str] = Field( None, description='The email of the user', example='user@example.com' ) class ResetPasswordRequest(BaseModel): resetToken: Optional[str] = Field( None, description='The reset token to verify', example='AAB254FF67D..' ) password: Optional[str] = Field( None, description='The new password to set', example='secret' ) class Type25(Enum): LWM2M_MODEL = 'LWM2M_MODEL' JKS = 'JKS' PKCS_12 = 'PKCS_12' JS_MODULE = 'JS_MODULE' IMAGE = 'IMAGE' DASHBOARD = 'DASHBOARD' class SubType(Enum): IMAGE = 'IMAGE' SCADA_SYMBOL = 'SCADA_SYMBOL' EXTENSION = 'EXTENSION' MODULE = 'MODULE' class ResourceExportData(BaseModel): link: Optional[str] = None title: Optional[str] = None type: Optional[Type25] = None subType: Optional[SubType] = None resourceKey: Optional[str] = None fileName: Optional[str] = None publicResourceKey: Optional[str] = None isPublic: Optional[bool] = None mediaType: Optional[str] = None data: Optional[str] = None public: Optional[bool] = None class Type26(Enum): GENERIC = 'GENERIC' GROUP = 'GROUP' class EntityType39(Enum): ROLE = 'ROLE' class RoleId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType39 = Field(..., description='string', example='ROLE') class Status9(Enum): QUEUED = 'QUEUED' SENT = 'SENT' DELIVERED = 'DELIVERED' SUCCESSFUL = 'SUCCESSFUL' TIMEOUT = 'TIMEOUT' EXPIRED = 'EXPIRED' FAILED = 'FAILED' DELETED = 'DELETED' class EntityType40(Enum): RPC = 'RPC' class RpcId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType40 = Field(..., description='string', example='RPC') class Type27(Enum): CORE = 'CORE' EDGE = 'EDGE' class RuleChainDebugEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) isError: Optional[bool] = None errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) message: Optional[str] = Field( None, description='String value representing the message' ) error: Optional[bool] = None eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class EntityType41(Enum): RULE_CHAIN = 'RULE_CHAIN' class RuleChainId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType41 = Field(..., description='string', example='RULE_CHAIN') class RuleChainImportResult(BaseModel): ruleChainId: Optional[RuleChainId] = None ruleChainName: Optional[str] = None updated: Optional[bool] = None error: Optional[str] = None class RuleChainEvent(Enum): CREATED = 'CREATED' STARTED = 'STARTED' ACTIVATED = 'ACTIVATED' SUSPENDED = 'SUSPENDED' UPDATED = 'UPDATED' STOPPED = 'STOPPED' DELETED = 'DELETED' FAILED = 'FAILED' DEACTIVATED = 'DEACTIVATED' class RuleNodeEvent(Enum): CREATED = 'CREATED' STARTED = 'STARTED' ACTIVATED = 'ACTIVATED' SUSPENDED = 'SUSPENDED' UPDATED = 'UPDATED' STOPPED = 'STOPPED' DELETED = 'DELETED' FAILED = 'FAILED' DEACTIVATED = 'DEACTIVATED' class RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig( NotificationRuleTriggerConfig ): ruleChains: Optional[List[UUID]] = Field(None, Set=True) ruleChainEvents: Optional[List[RuleChainEvent]] = Field(None, Set=True) onlyRuleChainLifecycleFailures: Optional[bool] = None trackRuleNodeEvents: Optional[bool] = None ruleNodeEvents: Optional[List[RuleNodeEvent]] = Field(None, Set=True) onlyRuleNodeLifecycleFailures: Optional[bool] = None class MsgDirectionType(Enum): IN = 'IN' OUT = 'OUT' class EntityType42(Enum): DEVICE = 'DEVICE' class RuleNodeDebugEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) isError: Optional[bool] = None errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) msgDirectionType: Optional[MsgDirectionType] = Field( None, description='String value representing msg direction type (incoming to entity or outcoming from entity)', ) entityId: Optional[str] = Field( None, description='String value representing the entity id in the event body (originator of the message)', example='de9d54a0-2b7a-11ec-a3cc-23386423d98f', ) entityType: Optional[EntityType42] = Field( None, description='String value representing the entity type' ) msgId: Optional[str] = Field( None, description='String value representing the message id in the rule engine', example='de9d54a0-2b7a-11ec-a3cc-23386423d98f', ) msgType: Optional[str] = Field( None, description='String value representing the message type', example='POST_TELEMETRY_REQUEST', ) relationType: Optional[str] = Field( None, description='String value representing the type of message routing', example='Success', ) dataSearch: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on data (key and value) for the message.", example='humidity', ) metadataSearch: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on metadata (key and value) for the message.", example='deviceName', ) error: Optional[bool] = None eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class EntityType43(Enum): RULE_NODE = 'RULE_NODE' class RuleNodeId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType43 = Field(..., description='string', example='RULE_NODE') class Type28(Enum): FIRMWARE = 'FIRMWARE' SOFTWARE = 'SOFTWARE' class SchedulerEventFilter(EntityFilter): originator: Optional[EntityId] = None eventType: Optional[str] = None class EntityType44(Enum): SCHEDULER_EVENT = 'SCHEDULER_EVENT' class SchedulerEventId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType44 = Field( ..., description='string', example='SCHEDULER_EVENT' ) class Type29(Enum): WEB = 'WEB' MOBILE = 'MOBILE' class ShareGroupRequest(BaseModel): ownerId: Optional[EntityId] = Field( None, description="In case 'allUserGroup' is set to true, this property specifies the owner of the user group 'All'. Either Tenant or Customer Id.", ) allUserGroup: bool = Field( ..., description="Indicate that the group should be shared with user group 'All' that belongs to Tenant or Customer (see 'ownerId' property description).", ) userGroupId: Optional[EntityGroupId] = Field( None, description="In case 'allUserGroup' is set to false, this property specifies the specific user group that the entity group should be shared with.", ) readElseWrite: Optional[bool] = Field( None, description="Used if 'roleIds' property is not present. if the value is 'true', creates role with read-only permissions. If the value is 'false', creates role with write permissions.", ) roleIds: Optional[List[RoleId]] = Field( None, description="List of group role Ids that should be used to share the entity group with the user group. If not set, the platform will create new role (see 'readElseWrite' property description)", ) class ShortCustomerInfo(BaseModel): customerId: Optional[CustomerId] = Field( None, description='JSON object with the customer Id.' ) title: Optional[str] = Field(None, description='Title of the customer.') isPublic: Optional[bool] = None public: Optional[bool] = None class ShortEntityView(BaseModel): id: EntityId = Field(..., description='Entity Id object') name: str = Field(..., description='Name of the entity') class Id1(Enum): EMAIL = 'EMAIL' PASSWORD = 'PASSWORD' REPEAT_PASSWORD = 'REPEAT_PASSWORD' FIRST_NAME = 'FIRST_NAME' LAST_NAME = 'LAST_NAME' PHONE = 'PHONE' COUNTRY = 'COUNTRY' CITY = 'CITY' STATE = 'STATE' ZIP = 'ZIP' ADDRESS = 'ADDRESS' ADDRESS2 = 'ADDRESS2' class SignUpField(BaseModel): id: Id1 = Field(..., description='Signup field id') label: str = Field(..., description='Signup field label') required: Optional[bool] = Field(None, description='Indicates if field is required') class SignUpRequest(BaseModel): fields: Optional[Dict[str, str]] = Field( None, description='List of sign-up form fields' ) recaptchaResponse: Optional[str] = Field( None, description='Response from reCAPTCHA validation' ) pkgName: Optional[str] = Field( None, description='For mobile apps only. Mobile app package name' ) platform: Optional[Platform] = Field( None, description='For mobile apps only. Mobile app package platform' ) appSecret: Optional[str] = Field( None, description='For mobile apps only. Mobile app secret' ) class SimpleAlarmConditionSpec(AlarmConditionSpec): pass class SingleEntityFilter(EntityFilter): singleEntity: Optional[EntityId] = None class Type30(Enum): DIRECT = 'DIRECT' PUBLIC_CHANNEL = 'PUBLIC_CHANNEL' PRIVATE_CHANNEL = 'PRIVATE_CHANNEL' class SlackConversation(BaseModel): type: Type30 id: str name: str wholeName: Optional[str] = None email: Optional[str] = None title: Optional[str] = None class SlackDeliveryMethodNotificationTemplate(DeliveryMethodNotificationTemplate): body: str class SlackNotificationDeliveryMethodConfig(NotificationDeliveryMethodConfig): botToken: str class ConversationType(Enum): DIRECT = 'DIRECT' PUBLIC_CHANNEL = 'PUBLIC_CHANNEL' PRIVATE_CHANNEL = 'PRIVATE_CHANNEL' class SlackNotificationTargetConfig(NotificationTargetConfig): conversationType: Optional[ConversationType] = None conversation: SlackConversation class ProtocolVersion(Enum): field_3_3__3_4 = '3.3, 3.4' class BindType(Enum): TX = 'TX' RX = 'RX' TRX = 'TRX' class CodingScheme(Enum): field_0_10 = '0-10' field_13_14 = '13-14' class SmsDeliveryMethodNotificationTemplate(DeliveryMethodNotificationTemplate): body: str class SmsProviderConfiguration(BaseModel): type: str class Spec(Enum): TELEMETRY_QUERYING = 'TELEMETRY_QUERYING' CLIENT_ATTRIBUTES_QUERYING = 'CLIENT_ATTRIBUTES_QUERYING' SHARED_ATTRIBUTES_SETTING = 'SHARED_ATTRIBUTES_SETTING' TO_DEVICE_RPC_REQUEST = 'TO_DEVICE_RPC_REQUEST' TO_SERVER_RPC_REQUEST = 'TO_SERVER_RPC_REQUEST' class SnmpCommunicationConfig(BaseModel): spec: Optional[Spec] = None class SnmpDeviceProfileTransportConfiguration(DeviceProfileTransportConfiguration): timeoutMs: Optional[int] = None retries: Optional[int] = None communicationConfigs: Optional[List[SnmpCommunicationConfig]] = None class ProtocolVersion1(Enum): V1 = 'V1' V2C = 'V2C' V3 = 'V3' class AuthenticationProtocol(Enum): SHA_1 = 'SHA_1' SHA_224 = 'SHA_224' SHA_256 = 'SHA_256' SHA_384 = 'SHA_384' SHA_512 = 'SHA_512' MD5 = 'MD5' class PrivacyProtocol(Enum): DES = 'DES' AES_128 = 'AES_128' AES_192 = 'AES_192' AES_256 = 'AES_256' class SnmpDeviceTransportConfiguration(DeviceTransportConfiguration): host: Optional[str] = None port: Optional[int] = None protocolVersion: Optional[ProtocolVersion1] = None community: Optional[str] = None username: Optional[str] = None securityName: Optional[str] = None contextName: Optional[str] = None authenticationProtocol: Optional[AuthenticationProtocol] = None authenticationPassphrase: Optional[str] = None privacyProtocol: Optional[PrivacyProtocol] = None privacyPassphrase: Optional[str] = None engineId: Optional[str] = None class DataType(Enum): BOOLEAN = 'BOOLEAN' LONG = 'LONG' DOUBLE = 'DOUBLE' STRING = 'STRING' JSON = 'JSON' class SnmpMapping(BaseModel): oid: Optional[str] = None key: Optional[str] = None dataType: Optional[DataType] = None class SolutionInstallResponse(BaseModel): dashboardGroupId: Optional[EntityGroupId] = Field( None, description='Id of the group that contains main dashboard of the solution' ) dashboardId: Optional[DashboardId] = Field( None, description='Id of the main dashboard of the solution' ) publicId: Optional[CustomerId] = Field( None, description='Id of the public customer if solution has public entities' ) mainDashboardPublic: Optional[bool] = Field( None, description='Is the main dashboard public' ) details: Optional[str] = Field( None, description='Markdown with solution usage instructions' ) success: Optional[bool] = Field( None, description='Indicates that template was installed successfully' ) class StarredDashboardInfo(BaseModel): id: Optional[UUID] = Field(None, description='JSON object with Dashboard id.') title: Optional[str] = Field(None, description='Title of the dashboard.') starredAt: Optional[int] = Field(None, description='Starred timestamp') class StateEntityOwnerFilter(EntityFilter): singleEntity: Optional[EntityId] = None class StatisticsEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) minMessagesProcessed: Optional[int] = Field( None, description='The minimum number of successfully processed messages', example=25, ) maxMessagesProcessed: Optional[int] = Field( None, description='The maximum number of successfully processed messages', example=250, ) minErrorsOccurred: Optional[int] = Field( None, description='The minimum number of errors occurred during messages processing', example=30, ) maxErrorsOccurred: Optional[int] = Field( None, description='The maximum number of errors occurred during messages processing', example=300, ) eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class StoreInfo(BaseModel): appId: Optional[str] = None sha256CertFingerprints: Optional[str] = None storeLink: Optional[str] = None class Operation4(Enum): EQUAL = 'EQUAL' NOT_EQUAL = 'NOT_EQUAL' STARTS_WITH = 'STARTS_WITH' ENDS_WITH = 'ENDS_WITH' CONTAINS = 'CONTAINS' NOT_CONTAINS = 'NOT_CONTAINS' IN = 'IN' NOT_IN = 'NOT_IN' class StringFilterPredicate(KeyFilterPredicate): operation: Optional[Operation4] = None value: Optional[FilterPredicateValueString] = None ignoreCase: Optional[bool] = None class Type31(Enum): BURST = 'BURST' BATCH = 'BATCH' SEQUENTIAL_BY_ORIGINATOR = 'SEQUENTIAL_BY_ORIGINATOR' SEQUENTIAL_BY_TENANT = 'SEQUENTIAL_BY_TENANT' SEQUENTIAL = 'SEQUENTIAL' class SubmitStrategy(BaseModel): type: Optional[Type31] = None batchSize: Optional[int] = None class SubscriptionUsage(BaseModel): devices: Optional[int] = None assets: Optional[int] = None customers: Optional[int] = None users: Optional[int] = None dashboards: Optional[int] = None ruleChains: Optional[int] = None integrations: Optional[int] = None converters: Optional[int] = None schedulerEvents: Optional[int] = None transportMessages: Optional[int] = None transportDataPoints: Optional[int] = None reExecutions: Optional[int] = None jsExecutions: Optional[int] = None dpStorageDays: Optional[int] = None emails: Optional[int] = None sms: Optional[int] = None alarms: Optional[int] = None class SystemInfoData(BaseModel): serviceId: Optional[str] = Field(None, description='Service Id.') serviceType: Optional[str] = Field(None, description='Service type.') cpuUsage: Optional[int] = Field(None, description='CPU usage, in percent.') cpuCount: Optional[int] = Field(None, description='Total CPU usage.') memoryUsage: Optional[int] = Field( None, description='Memory usage, in percent.' ) totalMemory: Optional[int] = Field( None, description='Total memory in bytes.' ) discUsage: Optional[int] = Field( None, description='Disk usage, in percent.' ) totalDiscSpace: Optional[int] = Field( None, description='Total disc space in bytes.' ) class TaskProcessingFailureNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): pass class ResourceType(Enum): LWM2M_MODEL = 'LWM2M_MODEL' JKS = 'JKS' PKCS_12 = 'PKCS_12' JS_MODULE = 'JS_MODULE' IMAGE = 'IMAGE' DASHBOARD = 'DASHBOARD' class ResourceSubType(Enum): IMAGE = 'IMAGE' SCADA_SYMBOL = 'SCADA_SYMBOL' EXTENSION = 'EXTENSION' MODULE = 'MODULE' class TbResourceDeleteResult(BaseModel): success: Optional[bool] = None references: Optional[Dict[str, List[HasIdObject]]] = None class EntityType45(Enum): TB_RESOURCE = 'TB_RESOURCE' class TbResourceId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType45 = Field(..., description='string', example='TB_RESOURCE') class TelemetryEntityView(BaseModel): timeseries: List[str] = Field( ..., description='List of time-series data keys to expose', example=['temperature', 'humidity'], ) attributes: AttributesEntityView = Field( ..., description='JSON object with attributes to expose' ) class TelemetryMappingConfiguration(BaseModel): keyName: Optional[Dict[str, str]] = None observe: Optional[List[str]] = Field(None, Set=True) attribute: Optional[List[str]] = Field(None, Set=True) telemetry: Optional[List[str]] = Field(None, Set=True) attributeLwm2m: Optional[Dict[str, ObjectAttributes]] = None class TelemetryQueryingSnmpCommunicationConfig(SnmpCommunicationConfig): mappings: Optional[List[SnmpMapping]] = None queryingFrequencyMs: Optional[int] = None class EntityType46(Enum): TENANT = 'TENANT' class TenantId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType46 = Field(..., description='string', example='TENANT') class TenantProfileConfiguration(BaseModel): type: str class EntityType47(Enum): TENANT_PROFILE = 'TENANT_PROFILE' class TenantProfileId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType47 = Field( ..., description='string', example='TENANT_PROFILE' ) class TenantProfileQueueConfiguration(BaseModel): name: Optional[str] = None topic: Optional[str] = None pollInterval: Optional[int] = None partitions: Optional[int] = None consumerPerPartition: Optional[bool] = None packProcessingTimeout: Optional[int] = None submitStrategy: Optional[SubmitStrategy] = None processingStrategy: Optional[ProcessingStrategy] = None additionalInfo: Optional[JsonNode] = None class Level(Enum): MAKER = 'MAKER' PROTOTYPE = 'PROTOTYPE' STARTUP = 'STARTUP' class TenantSolutionTemplateDetails(BaseModel): id: Optional[str] = Field( None, description='ID of the solution template', example='784f394c-42b6-435a-983c-b7beff2784f9', ) title: Optional[str] = Field( None, description='Template Title', example='Smart office' ) level: Optional[Level] = Field( None, description='Level of the subscription that is required to unlock the template', example='PROTOTYPE', ) installTimeoutMs: Optional[int] = Field( None, description='Timeout for the installation UI to wait while template is installing', ) tenantTelemetryKeys: Optional[List[str]] = Field( None, description='What keys to delete during template uninstall' ) tenantAttributeKeys: Optional[List[str]] = Field( None, description='What attributes to delete during template uninstall' ) imageUrls: Optional[List[str]] = None highlights: Optional[str] = None description: Optional[str] = None installed: Optional[bool] = None class TenantSolutionTemplateInfo(BaseModel): id: Optional[str] = Field( None, description='ID of the solution template', example='784f394c-42b6-435a-983c-b7beff2784f9', ) title: Optional[str] = Field( None, description='Template Title', example='Smart office' ) level: Optional[Level] = Field( None, description='Level of the subscription that is required to unlock the template', example='PROTOTYPE', ) installTimeoutMs: Optional[int] = Field( None, description='Timeout for the installation UI to wait while template is installing', ) tenantTelemetryKeys: Optional[List[str]] = Field( None, description='What keys to delete during template uninstall' ) tenantAttributeKeys: Optional[List[str]] = Field( None, description='What attributes to delete during template uninstall' ) previewImageUrl: Optional[str] = Field(None, description='URL of the preview image') videoPreviewImageUrl: Optional[str] = Field( None, description='Video preview image URL' ) previewMp4Url: Optional[str] = Field(None, description='Video MP4 URL') previewWebmUrl: Optional[str] = Field(None, description='Video WEBM URL') installed: Optional[bool] = Field( None, description='Indicates that template is already installed for the current tenant', ) class TenantSolutionTemplateInstructions(BaseModel): dashboardGroupId: Optional[EntityGroupId] = Field( None, description='Id of the group that contains main dashboard of the solution' ) dashboardId: Optional[DashboardId] = Field( None, description='Id of the main dashboard of the solution' ) publicId: Optional[CustomerId] = Field( None, description='Id of the public customer if solution has public entities' ) mainDashboardPublic: Optional[bool] = Field( None, description='Is the main dashboard public' ) details: Optional[str] = Field( None, description='Markdown with solution usage instructions' ) class ThingsboardCredentialsExpiredResponse(BaseModel): status: Optional[int] = Field( None, description='HTTP Response Status Code', example=401 ) message: Optional[str] = Field( None, description='Error message', example='Authentication failed' ) errorCode: Optional[int] = Field( None, description='Platform error code:\n* `2` - General error (HTTP: 500 - Internal Server Error)\n\n* `10` - Authentication failed (HTTP: 401 - Unauthorized)\n\n* `11` - JWT token expired (HTTP: 401 - Unauthorized)\n\n* `15` - Credentials expired (HTTP: 401 - Unauthorized)\n\n* `20` - Permission denied (HTTP: 403 - Forbidden)\n\n* `30` - Invalid arguments (HTTP: 400 - Bad Request)\n\n* `31` - Bad request params (HTTP: 400 - Bad Request)\n\n* `32` - Item not found (HTTP: 404 - Not Found)\n\n* `33` - Too many requests (HTTP: 429 - Too Many Requests)\n\n* `34` - Too many updates (Too many updates over Websocket session)\n\n* `40` - Subscription violation (HTTP: 403 - Forbidden)', example=10, ) timestamp: Optional[int] = Field(None, description='Timestamp') subscriptionErrorCode: Optional[int] = Field( None, description="Subscription error code:\n* `1` - Entities limit reached (HTTP: 403 - Forbidden)\n\n* `2` - Feature disabled (HTTP: 403 - Forbidden)\n\n* `3` - Subscription is not active (HTTP: 403 - Forbidden)\n\n* `4` - Billing error (HTTP: 400 - Bad Request)\n\n* `5` - Permission denied (HTTP: 403 - Forbidden)\n\n* `6` - Unable to change plan due to entities limits overflow (HTTP: 403 - Forbidden)\n\n* `7` - Solution template level doesn't meet subscription plan (HTTP: 403 - Forbidden)", example=1, ) subscriptionEntry: Optional[int] = Field( None, description='Subscription entry:\n* `1` - Devices count\n\n* `2` - Assets count\n\n* `3` - Customers count\n\n* `4` - Users count\n\n* `5` - Dashboards count\n\n* `6` - Rule chains count\n\n* `7` - Integrations count\n\n* `8` - Converters count\n\n* `9` - Scheduler events count\n\n* `30` - White-labeling', example=1, ) subscriptionValue: Optional[JsonNode] = None resetToken: Optional[str] = Field(None, description='Password reset token') class ThingsboardErrorResponse(BaseModel): message: Optional[str] = Field( None, description='Error message', example='Authentication failed' ) errorCode: Optional[int] = Field( None, description='Platform error code:\n* `2` - General error (HTTP: 500 - Internal Server Error)\n\n* `10` - Authentication failed (HTTP: 401 - Unauthorized)\n\n* `11` - JWT token expired (HTTP: 401 - Unauthorized)\n\n* `15` - Credentials expired (HTTP: 401 - Unauthorized)\n\n* `20` - Permission denied (HTTP: 403 - Forbidden)\n\n* `30` - Invalid arguments (HTTP: 400 - Bad Request)\n\n* `31` - Bad request params (HTTP: 400 - Bad Request)\n\n* `32` - Item not found (HTTP: 404 - Not Found)\n\n* `33` - Too many requests (HTTP: 429 - Too Many Requests)\n\n* `34` - Too many updates (Too many updates over Websocket session)\n\n* `40` - Subscription violation (HTTP: 403 - Forbidden)', example=10, ) status: Optional[int] = Field( None, description='HTTP Response Status Code', example=401 ) subscriptionErrorCode: Optional[int] = Field( None, description="Subscription error code:\n* `1` - Entities limit reached (HTTP: 403 - Forbidden)\n\n* `2` - Feature disabled (HTTP: 403 - Forbidden)\n\n* `3` - Subscription is not active (HTTP: 403 - Forbidden)\n\n* `4` - Billing error (HTTP: 400 - Bad Request)\n\n* `5` - Permission denied (HTTP: 403 - Forbidden)\n\n* `6` - Unable to change plan due to entities limits overflow (HTTP: 403 - Forbidden)\n\n* `7` - Solution template level doesn't meet subscription plan (HTTP: 403 - Forbidden)", example=1, ) subscriptionEntry: Optional[int] = Field( None, description='Subscription entry:\n* `1` - Devices count\n\n* `2` - Assets count\n\n* `3` - Customers count\n\n* `4` - Users count\n\n* `5` - Dashboards count\n\n* `6` - Rule chains count\n\n* `7` - Integrations count\n\n* `8` - Converters count\n\n* `9` - Scheduler events count\n\n* `30` - White-labeling', example=1, ) subscriptionValue: Optional[JsonNode] = None timestamp: Optional[int] = Field(None, description='Timestamp') class ToCoreEdqsRequest(BaseModel): syncRequest: Optional[EdqsSyncRequest] = None apiEnabled: Optional[bool] = None class ToDeviceRpcRequestSnmpCommunicationConfig(SnmpCommunicationConfig): mappings: Optional[List[SnmpMapping]] = None class ToServerRpcRequestSnmpCommunicationConfig(SnmpCommunicationConfig): mappings: Optional[List[SnmpMapping]] = None class TranslationInfo(BaseModel): localeCode: Optional[str] = Field( None, description='Locale code formed by combining the ISO 639-1 language code and the ISO 3166-1 region code. For example, "en_US"', ) language: Optional[str] = Field( None, description='Locale code language display name. For example, "Polish (Polski)"', ) country: Optional[str] = Field( None, description='Locale code country display name. For example, "Poland"' ) progress: Optional[int] = Field( None, description='Number representing translation percentage progress. For example, 40 that means 40% of all keys are translated.', ) customized: Optional[bool] = Field( None, description='Boolean representing if current language has customization.' ) class TransportPayloadTypeConfiguration(BaseModel): transportPayloadType: str class TsValue(BaseModel): ts: Optional[int] = None value: Optional[str] = None count: Optional[int] = None class TwilioSmsProviderConfiguration(SmsProviderConfiguration): accountSid: Optional[str] = Field(None, description='Twilio account Sid.') accountToken: Optional[str] = Field(None, description='Twilio account Token.') numberFrom: Optional[str] = Field(None, description='The number/id of a sender.') class TwoFaAccountConfig(BaseModel): useByDefault: Optional[bool] = None providerType: str class TwoFaAccountConfigUpdateRequest(BaseModel): useByDefault: Optional[bool] = None class TwoFaProviderConfig(BaseModel): providerType: str class Type32(Enum): TOTP = 'TOTP' SMS = 'SMS' EMAIL = 'EMAIL' BACKUP_CODE = 'BACKUP_CODE' class TwoFaProviderInfo(BaseModel): type: Optional[Type32] = None isDefault: Optional[bool] = None contact: Optional[str] = None minVerificationCodeSendPeriod: Optional[int] = None default: Optional[bool] = None class UpdateMessage(BaseModel): updateAvailable: Optional[bool] = Field( None, description="'True' if new platform update is available." ) currentVersion: Optional[str] = Field( None, description='Current ThingsBoard version.' ) latestVersion: Optional[str] = Field( None, description='Latest ThingsBoard version.' ) upgradeInstructionsUrl: Optional[str] = Field( None, description='Upgrade instructions URL.' ) currentVersionReleaseNotesUrl: Optional[str] = Field( None, description='Current ThingsBoard version release notes URL.' ) latestVersionReleaseNotesUrl: Optional[str] = Field( None, description='Latest ThingsBoard version release notes URL.' ) class UsageInfo(BaseModel): devices: Optional[int] = None maxDevices: Optional[int] = None assets: Optional[int] = None maxAssets: Optional[int] = None customers: Optional[int] = None maxCustomers: Optional[int] = None users: Optional[int] = None maxUsers: Optional[int] = None dashboards: Optional[int] = None maxDashboards: Optional[int] = None edges: Optional[int] = None maxEdges: Optional[int] = None transportMessages: Optional[int] = None maxTransportMessages: Optional[int] = None jsExecutions: Optional[int] = None tbelExecutions: Optional[int] = None maxJsExecutions: Optional[int] = None maxTbelExecutions: Optional[int] = None emails: Optional[int] = None maxEmails: Optional[int] = None sms: Optional[int] = None maxSms: Optional[int] = None smsEnabled: Optional[bool] = None alarms: Optional[int] = None maxAlarms: Optional[int] = None class Authority(Enum): SYS_ADMIN = 'SYS_ADMIN' TENANT_ADMIN = 'TENANT_ADMIN' CUSTOMER_USER = 'CUSTOMER_USER' BILLING_ADMIN = 'BILLING_ADMIN' BILLING_SERVICE = 'BILLING_SERVICE' REFRESH_TOKEN = 'REFRESH_TOKEN' PRE_VERIFICATION_TOKEN = 'PRE_VERIFICATION_TOKEN' class UserActivationLink(BaseModel): value: Optional[str] = None ttlMs: Optional[int] = None class UserDashboardsInfo(BaseModel): last: Optional[List[LastVisitedDashboardInfo]] = Field( None, description='List of last visited dashboards.' ) starred: Optional[List[StarredDashboardInfo]] = Field( None, description='List of starred dashboards.' ) class EntityType48(Enum): USER = 'USER' class UserId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType48 = Field(..., description='string', example='USER') class UserInfo(BaseModel): id: Optional[UserId] = Field( None, description='JSON object with the User Id. Specify this field to update the device. Referencing non-existing User Id will cause error. Omit this field to create new customer.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the user creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with the Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with the Customer Id.' ) email: str = Field(..., description='Email of the user', example='user@example.com') authority: Authority = Field( ..., description='Authority', example='SYS_ADMIN, TENANT_ADMIN or CUSTOMER_USER' ) firstName: Optional[str] = Field( None, description='First name of the user', example='John' ) lastName: Optional[str] = Field( None, description='Last name of the user', example='Doe' ) phone: Optional[str] = Field( None, description='Phone number of the user', example=38012345123 ) customMenuId: Optional[CustomMenuId] = None version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') name: Optional[str] = Field( None, description='Duplicates the email of the user, readonly', example='user@example.com', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the user' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class UserNotificationSettings(BaseModel): prefs: Dict[str, NotificationPref] class UserPasswordPolicy(BaseModel): minimumLength: Optional[int] = Field( None, description='Minimum number of symbols in the password.' ) maximumLength: Optional[int] = Field( None, description='Maximum number of symbols in the password.' ) minimumUppercaseLetters: Optional[int] = Field( None, description='Minimum number of uppercase letters in the password.' ) minimumLowercaseLetters: Optional[int] = Field( None, description='Minimum number of lowercase letters in the password.' ) minimumDigits: Optional[int] = Field( None, description='Minimum number of digits in the password.' ) minimumSpecialCharacters: Optional[int] = Field( None, description='Minimum number of special in the password.' ) allowWhitespaces: Optional[bool] = Field(None, description='Allow whitespaces') forceUserToResetPasswordIfNotValid: Optional[bool] = Field( None, description='Force user to update password if existing one does not pass validation', ) passwordExpirationPeriodDays: Optional[int] = Field( None, description='Password expiration period (days). Force expiration of the password.', ) passwordReuseFrequencyDays: Optional[int] = Field( None, description='Password reuse frequency (days). Disallow to use the same password for the defined number of days', ) class UsersFilter(BaseModel): type: str class V2CaptchaParams(CaptchaParams): siteKey: Optional[str] = Field( None, description="Captcha site key for 'I'm not a robot' validation" ) logActionName: Optional[str] = Field( None, description="Optional action name used for logging (for captcha version 'v3' and 'enterprise')", ) secretKey: Optional[str] = Field( None, description='Secret key to validate the Captcha. Should match the Captcha Site Key.', ) class V3CaptchaParams(CaptchaParams): siteKey: Optional[str] = Field( None, description="Captcha site key for 'I'm not a robot' validation" ) logActionName: Optional[str] = Field( None, description="Optional action name used for logging (for captcha version 'v3' and 'enterprise')", ) secretKey: Optional[str] = Field( None, description='Secret key to validate the Captcha. Should match the Captcha Site Key.', ) class Vendor(BaseModel): name: Optional[str] = None logo: Optional[str] = None class Version(RootModel): root: Any class VersionCreateConfig(BaseModel): saveRelations: Optional[bool] = None saveAttributes: Optional[bool] = None saveCredentials: Optional[bool] = None saveCalculatedFields: Optional[bool] = None savePermissions: Optional[bool] = None saveGroupEntities: Optional[bool] = None class Type33(Enum): SINGLE_ENTITY = 'SINGLE_ENTITY' COMPLEX = 'COMPLEX' class VersionCreateRequest(BaseModel): versionName: Optional[str] = None branch: Optional[str] = None type: Optional[Type33] = None class VersionCreationResult(BaseModel): version: Optional[EntityVersion] = None added: Optional[int] = None modified: Optional[int] = None removed: Optional[int] = None error: Optional[str] = None done: Optional[bool] = None class VersionLoadConfig(BaseModel): loadRelations: Optional[bool] = None loadAttributes: Optional[bool] = None loadCredentials: Optional[bool] = None loadCalculatedFields: Optional[bool] = None loadPermissions: Optional[bool] = None loadGroupEntities: Optional[bool] = None autoGenerateIntegrationKey: Optional[bool] = None class Type34(Enum): SINGLE_ENTITY = 'SINGLE_ENTITY' ENTITY_TYPE = 'ENTITY_TYPE' class VersionLoadRequest(BaseModel): versionId: Optional[str] = None type: Optional[Type34] = None class VersionLoadResult(BaseModel): result: Optional[List[EntityTypeLoadResult]] = None error: Optional[EntityLoadError] = None done: Optional[bool] = None class VersionedEntityInfo(BaseModel): externalId: Optional[EntityId] = None path: Optional[str] = None class WebDeliveryMethodNotificationTemplate(DeliveryMethodNotificationTemplate): subject: str additionalConfig: Optional[Any] = None body: str class WebViewPage(MobilePage): url: Optional[str] = Field(None, description='Url', example='/url') label: Optional[str] = Field(None, description='Page label', example='Air quality') visible: bool = Field(..., description='Indicates if page is visible', example=True) icon: Optional[str] = Field( None, description='URL of the page icon', example='home_icon' ) class Type35(Enum): LOGIN = 'LOGIN' GENERAL = 'GENERAL' MAIL_TEMPLATES = 'MAIL_TEMPLATES' SELF_REGISTRATION = 'SELF_REGISTRATION' TERMS_OF_USE = 'TERMS_OF_USE' PRIVACY_POLICY = 'PRIVACY_POLICY' class WhiteLabeling(BaseModel): tenantId: Optional[TenantId] = None customerId: Optional[CustomerId] = None type: Optional[Type35] = None settings: Optional[JsonNode] = None legacyDomain: Optional[str] = None domainId: Optional[DomainId] = None class WhiteLabelingParams(BaseModel): logoImageUrl: Optional[str] = Field( None, description='Logo image URL', example='https://company.com/images/logo.png', ) logoImageHeight: Optional[int] = Field( None, description='The height of a logo container. Logo image will be automatically scaled.', ) appTitle: Optional[str] = Field( None, description='White-labeled name of the platform', example='My Company IoT Platform', ) favicon: Optional[Favicon] = Field( None, description='JSON object that contains website icon url and type' ) paletteSettings: Optional[PaletteSettings] = Field( None, description='Complex JSON that describes structure of the Angular Material Palette. See [theming](https://material.angular.io/guide/theming) for more details', ) helpLinkBaseUrl: Optional[str] = Field(None, description='Base URL for help link') uiHelpBaseUrl: Optional[str] = Field( None, description='Base URL for the repository with the UI help components (markdown)', ) enableHelpLinks: Optional[bool] = Field( None, description='Enable or Disable help links' ) whiteLabelingEnabled: Optional[bool] = Field( None, description='Enable white-labeling' ) showNameVersion: Optional[bool] = Field( None, description='Show platform name and version on UI and login screen' ) platformName: Optional[str] = Field(None, description='White-labeled platform name') platformVersion: Optional[str] = Field( None, description='White-labeled platform version' ) customCss: Optional[str] = Field(None, description='Custom CSS content') hideConnectivityDialog: Optional[bool] = Field( None, description='Hide device connectivity dialog' ) class WidgetBundleInfo(BaseModel): id: Optional[EntityId] = Field(None, description='JSON object with the entity Id. ') name: Optional[str] = Field(None, description='Entity Name') class EntityType49(Enum): WIDGET_TYPE = 'WIDGET_TYPE' class WidgetTypeId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType49 = Field(..., description='string', example='WIDGET_TYPE') class WidgetTypeInfo(BaseModel): id: Optional[WidgetTypeId] = Field( None, description='JSON object with the Widget Type Id. Specify this field to update the Widget Type. Referencing non-existing Widget Type Id will cause error. Omit this field to create new Widget Type.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Widget Type creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) fqn: Optional[str] = Field( None, description='Unique FQN that is used in dashboards as a reference widget type', ) name: Optional[str] = Field(None, description='Widget name used in search and UI') deprecated: Optional[bool] = Field( None, description='Whether widget type is deprecated.', example=True ) scada: Optional[bool] = Field( None, description='Whether widget type is SCADA symbol.', example=True ) version: Optional[int] = None image: Optional[str] = Field(None, description='Base64 encoded widget thumbnail') description: Optional[str] = Field( None, description='Description of the widget type' ) tags: Optional[List[str]] = Field(None, description='Tags of the widget type') widgetType: Optional[str] = Field( None, description='Type of the widget (timeseries, latest, control, alarm or static)', ) bundles: Optional[List[WidgetBundleInfo]] = Field(None, description='Bundles') class EntityType50(Enum): WIDGETS_BUNDLE = 'WIDGETS_BUNDLE' class WidgetsBundleId(BaseModel): id: UUID = Field( ..., description='ID of the entity, time-based UUID v1', example='784f394c-42b6-435a-983c-b7beff2784f9', ) entityType: EntityType50 = Field( ..., description='string', example='WIDGETS_BUNDLE' ) class X509CertificateChainProvisionConfiguration(DeviceProfileProvisionConfiguration): certificateRegExPattern: Optional[str] = None allowCreateNewDevicesByX509Certificate: Optional[bool] = None class X509LwM2MBootstrapServerCredential(LwM2MBootstrapServerCredential): shortServerId: Optional[int] = Field( None, description="Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set when the Bootstrap-Server Resource has a value of 'false'. The values ID:1 and ID:65534 values MUST NOT be used for identifying the LwM2M Server.", example=123, ) bootstrapServerIs: Optional[bool] = Field( None, description='Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.', example=True, ) host: Optional[str] = Field( None, description="Host for 'No Security' mode", example='0.0.0.0' ) port: Optional[int] = Field( None, description="Port for Lwm2m Server: 'No Security' mode: Lwm2m Server or Bootstrap Server", example="'5685' or '5687'", ) clientHoldOffTime: Optional[int] = Field( None, description='Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This information is relevant for use with a Bootstrap-Server only.)', example=1, ) serverPublicKey: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): RPK or X509. Format: base64 encoded", example='MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat\n+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA==', ) serverCertificate: Optional[str] = Field( None, description="Server Public Key for 'Security' mode (DTLS): X509. Format: base64 encoded", example='MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs\nxEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM\nJbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/\nBAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp\nAWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw=', ) bootstrapServerAccountTimeout: Optional[int] = Field( None, description='Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)', example=0, ) lifetime: Optional[int] = Field( None, description='Specify the lifetime of the registration in seconds.', example=300, ) defaultMinPeriod: Optional[int] = Field( None, description='The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn’t exist, the default value is 0.', example=1, ) notifIfDisabled: Optional[bool] = Field( None, description='If true, the LwM2M Client stores “Notify” operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored “Notify” operations to the Server. If false, the LwM2M Client discards all the “Notify” operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true.', example=True, ) binding: Optional[str] = Field( None, description='This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode.', example='U', ) class AdminSettings(BaseModel): id: Optional[AdminSettingsId] = Field( None, description='The Id of the Administration Settings, auto-generated, UUID' ) createdTime: Optional[int] = Field( None, description='Timestamp of the settings creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) key: Optional[str] = Field( None, description="The Administration Settings key, (e.g. 'general' or 'mail')", example='mail', ) jsonValue: Optional[JsonNode] = Field( None, description='JSON representation of the Administration Settings value' ) class AffectedTenantAdministratorsFilter(UsersFilter): pass class AffectedUserFilter(UsersFilter): pass class Alarm(BaseModel): tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) type: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) originator: EntityId = Field( ..., description='JSON object with alarm originator id' ) severity: Severity = Field(..., description='Alarm severity', example='CRITICAL') acknowledged: bool = Field(..., description='Acknowledged', example=True) cleared: bool = Field(..., description='Cleared', example=False) assigneeId: Optional[UserId] = Field(None, description='Alarm assignee user id') startTs: Optional[int] = Field( None, description='Timestamp of the alarm start time, in milliseconds', example=1634058704565, ) endTs: Optional[int] = Field( None, description='Timestamp of the alarm end time(last time update), in milliseconds', example=1634111163522, ) ackTs: Optional[int] = Field( None, description='Timestamp of the alarm acknowledgement, in milliseconds', example=1634115221948, ) clearTs: Optional[int] = Field( None, description='Timestamp of the alarm clearing, in milliseconds', example=1634114528465, ) assignTs: Optional[int] = Field( None, description='Timestamp of the alarm assignment, in milliseconds', example=1634115928465, ) details: Optional[JsonNode] = None propagate: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to parent entities of alarm originator', example=True, ) propagateToOwner: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) of alarm originator', example=True, ) propagateToOwnerHierarchy: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) and all parent owners in the customer hierarchy', example=True, ) propagateToTenant: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the tenant entity', example=True, ) propagateRelationTypes: Optional[List[str]] = Field( None, description="JSON array of relation types that should be used for propagation. By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.", ) id: Optional[AlarmId] = Field( None, description='JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the alarm creation, in milliseconds', example=1634058704567, ) name: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) status: Status = Field( ..., description='status of the Alarm', example='ACTIVE_UNACK' ) class AlarmAssignee(BaseModel): id: Optional[UserId] = None firstName: Optional[str] = None lastName: Optional[str] = None email: Optional[str] = None class AlarmAssignmentNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): alarmTypes: Optional[List[str]] = Field(None, Set=True) alarmSeverities: Optional[List[AlarmSeverity]] = Field(None, Set=True) alarmStatuses: Optional[List[AlarmStatus]] = Field(None, Set=True) notifyOn: List[NotifyOnEnum] = Field(..., Set=True) class AlarmComment(BaseModel): alarmId: Optional[AlarmId] = Field(None, description='JSON object with Alarm id.') userId: Optional[UserId] = Field(None, description='JSON object with User id.') type: Optional[Type] = Field( None, description='Defines origination of comment. System type means comment was created by TB. OTHER type means comment was created by user.', example='SYSTEM/OTHER', ) comment: Optional[JsonNode] = Field( None, description='JSON object with text of comment.' ) id: Optional[AlarmCommentId] = Field( None, description='JSON object with the alarm comment Id. Specify this field to update the alarm comment. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the alarm comment creation, in milliseconds', example=1634058704567, ) name: Optional[str] = Field( None, description='representing comment text', example='Please take a look' ) class AlarmCommentInfo(BaseModel): id: Optional[AlarmCommentId] = Field( None, description='JSON object with the alarm comment Id. Specify this field to update the alarm comment. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the alarm comment creation, in milliseconds', example=1634058704567, ) alarmId: Optional[AlarmId] = Field(None, description='JSON object with Alarm id.') userId: Optional[UserId] = Field(None, description='JSON object with User id.') type: Optional[Type] = Field( None, description='Defines origination of comment. System type means comment was created by TB. OTHER type means comment was created by user.', example='SYSTEM/OTHER', ) comment: Optional[JsonNode] = Field( None, description='JSON object with text of comment.' ) firstName: Optional[str] = Field( None, description='User first name', example='John' ) lastName: Optional[str] = Field(None, description='User last name', example='Brown') email: Optional[str] = Field( None, description='User email address', example='johnBrown@gmail.com' ) name: Optional[str] = Field( None, description='representing comment text', example='Please take a look' ) class AlarmCommentNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): alarmTypes: Optional[List[str]] = Field(None, Set=True) alarmSeverities: Optional[List[AlarmSeverity]] = Field(None, Set=True) alarmStatuses: Optional[List[AlarmStatus]] = Field(None, Set=True) onlyUserComments: Optional[bool] = None notifyOnCommentUpdate: Optional[bool] = None class AlarmData(BaseModel): id: Optional[AlarmId] = Field( None, description='JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the alarm creation, in milliseconds', example=1634058704567, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) type: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) originator: EntityId = Field( ..., description='JSON object with alarm originator id' ) severity: Severity = Field(..., description='Alarm severity', example='CRITICAL') acknowledged: bool = Field(..., description='Acknowledged', example=True) cleared: bool = Field(..., description='Cleared', example=False) assigneeId: Optional[UserId] = Field(None, description='Alarm assignee user id') startTs: Optional[int] = Field( None, description='Timestamp of the alarm start time, in milliseconds', example=1634058704565, ) endTs: Optional[int] = Field( None, description='Timestamp of the alarm end time(last time update), in milliseconds', example=1634111163522, ) ackTs: Optional[int] = Field( None, description='Timestamp of the alarm acknowledgement, in milliseconds', example=1634115221948, ) clearTs: Optional[int] = Field( None, description='Timestamp of the alarm clearing, in milliseconds', example=1634114528465, ) assignTs: Optional[int] = Field( None, description='Timestamp of the alarm assignment, in milliseconds', example=1634115928465, ) propagate: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to parent entities of alarm originator', example=True, ) propagateToOwner: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) of alarm originator', example=True, ) propagateToOwnerHierarchy: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) and all parent owners in the customer hierarchy', example=True, ) propagateToTenant: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the tenant entity', example=True, ) propagateRelationTypes: Optional[List[str]] = Field( None, description="JSON array of relation types that should be used for propagation. By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.", ) originatorName: Optional[str] = Field( None, description='Alarm originator name', example='Thermostat' ) originatorLabel: Optional[str] = Field( None, description='Alarm originator label', example='Thermostat label' ) assignee: Optional[AlarmAssignee] = Field(None, description='Alarm assignee') entityId: Optional[EntityId] = None latest: Optional[Dict[str, Dict[str, TsValue]]] = None name: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) status: Status = Field( ..., description='status of the Alarm', example='ACTIVE_UNACK' ) details: Optional[JsonNode] = None class AlarmInfo(BaseModel): id: Optional[AlarmId] = Field( None, description='JSON object with the alarm Id. Specify this field to update the alarm. Referencing non-existing alarm Id will cause error. Omit this field to create new alarm.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the alarm creation, in milliseconds', example=1634058704567, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) type: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) originator: EntityId = Field( ..., description='JSON object with alarm originator id' ) severity: Severity = Field(..., description='Alarm severity', example='CRITICAL') acknowledged: bool = Field(..., description='Acknowledged', example=True) cleared: bool = Field(..., description='Cleared', example=False) assigneeId: Optional[UserId] = Field(None, description='Alarm assignee user id') startTs: Optional[int] = Field( None, description='Timestamp of the alarm start time, in milliseconds', example=1634058704565, ) endTs: Optional[int] = Field( None, description='Timestamp of the alarm end time(last time update), in milliseconds', example=1634111163522, ) ackTs: Optional[int] = Field( None, description='Timestamp of the alarm acknowledgement, in milliseconds', example=1634115221948, ) clearTs: Optional[int] = Field( None, description='Timestamp of the alarm clearing, in milliseconds', example=1634114528465, ) assignTs: Optional[int] = Field( None, description='Timestamp of the alarm assignment, in milliseconds', example=1634115928465, ) propagate: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to parent entities of alarm originator', example=True, ) propagateToOwner: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) of alarm originator', example=True, ) propagateToOwnerHierarchy: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) and all parent owners in the customer hierarchy', example=True, ) propagateToTenant: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the tenant entity', example=True, ) propagateRelationTypes: Optional[List[str]] = Field( None, description="JSON array of relation types that should be used for propagation. By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.", ) originatorName: Optional[str] = Field( None, description='Alarm originator name', example='Thermostat' ) originatorLabel: Optional[str] = Field( None, description='Alarm originator label', example='Thermostat label' ) assignee: Optional[AlarmAssignee] = Field(None, description='Alarm assignee') name: str = Field( ..., description='representing type of the Alarm', example='High Temperature Alarm', ) status: Status = Field( ..., description='status of the Alarm', example='ACTIVE_UNACK' ) details: Optional[JsonNode] = None class AlarmNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): alarmTypes: Optional[List[str]] = Field(None, Set=True) alarmSeverities: Optional[List[AlarmSeverity]] = Field(None, Set=True) notifyOn: List[NotifyOnEnum1] = Field(..., Set=True) clearRule: Optional[ClearRule] = None class AlarmSchedule(BaseModel): type: Optional[Type3] = None dynamicValue: Optional[DynamicValueString] = None class AllUsersFilter(UsersFilter): pass class AllowCreateNewDevicesDeviceProfileProvisionConfiguration( DeviceProfileProvisionConfiguration ): pass class AllowedPermissionsInfo(BaseModel): operationsByResource: Optional[Dict[str, List[OperationsByResourceEnum]]] = Field( None, description='Static map (vocabulary) of allowed operations by resource type', ) allowedForGroupRoleOperations: Optional[List[AllowedForGroupRoleOperation]] = Field( None, description='Static set (vocabulary) of allowed operations for group roles', Set=True, ) allowedForGroupOwnerOnlyOperations: Optional[ List[AllowedForGroupOwnerOnlyOperation] ] = Field( None, description='Static set (vocabulary) of allowed operations for group owner', Set=True, ) allowedForGroupOwnerOnlyGroupOperations: Optional[ List[AllowedForGroupOwnerOnlyGroupOperation] ] = Field( None, description='Static set (vocabulary) of allowed group operations for group owner', Set=True, ) allowedResources: Optional[List[AllowedResource]] = Field( None, description='Static set (vocabulary) of all possibly allowed resources. Static and depends only on the authority of the user', Set=True, ) userPermissions: Optional[MergedUserPermissions] = Field( None, description='JSON object with merged permission for all generic and group roles assigned to all user groups the user belongs to', ) userOwnerId: Optional[EntityId] = Field( None, description='Owner Id of the user (Tenant or Customer)' ) class AnyTimeSchedule(AlarmSchedule): pass class ApiUsageLimitNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): apiFeatures: Optional[List[ApiFeature]] = Field(None, Set=True) notifyOn: Optional[List[NotifyOnEnum2]] = Field(None, Set=True) class ApiUsageStateFilter(EntityFilter): customerId: Optional[CustomerId] = None class Argument(BaseModel): refEntityId: Optional[EntityId] = None refEntityKey: Optional[ReferencedEntityKey] = None defaultValue: Optional[str] = None limit: Optional[int] = None timeWindow: Optional[int] = None class Asset(BaseModel): id: Optional[AssetId] = Field( None, description='JSON object with the asset Id. Specify this field to update the asset. Referencing non-existing asset Id will cause error. Omit this field to create new asset.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the asset creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", ) name: str = Field( ..., description='Unique Asset Name in scope of Tenant', example='Empire State Building', ) type: Optional[str] = Field(None, description='Asset type', example='Building') label: Optional[str] = Field( None, description='Label that may be used in widgets', example='NY Building' ) assetProfileId: Optional[AssetProfileId] = Field( None, description='JSON object with Asset Profile Id.' ) version: Optional[int] = None additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the asset' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class AssetInfo(BaseModel): id: Optional[AssetId] = Field( None, description='JSON object with the asset Id. Specify this field to update the asset. Referencing non-existing asset Id will cause error. Omit this field to create new asset.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the asset creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.", ) name: str = Field( ..., description='Unique Asset Name in scope of Tenant', example='Empire State Building', ) type: Optional[str] = Field(None, description='Asset type', example='Building') label: Optional[str] = Field( None, description='Label that may be used in widgets', example='NY Building' ) assetProfileId: Optional[AssetProfileId] = Field( None, description='JSON object with Asset Profile Id.' ) version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the asset' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class AssetProfile(BaseModel): id: Optional[AssetProfileId] = Field( None, description='JSON object with the asset profile Id. Specify this field to update the asset profile. Referencing non-existing asset profile Id will cause error. Omit this field to create new asset profile.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the profile creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id that owns the profile.' ) name: Optional[str] = Field( None, description='Unique Asset Profile Name in scope of Tenant.', example='Building', ) description: Optional[str] = Field(None, description='Asset Profile description. ') image: Optional[str] = Field( None, description='Either URL or Base64 data of the icon. Used in the mobile application to visualize set of asset profiles in the grid view. ', ) defaultRuleChainId: Optional[RuleChainId] = Field( None, description='Reference to the rule chain. If present, the specified rule chain will be used to process all messages related to asset, including asset updates, telemetry, attribute updates, etc. Otherwise, the root rule chain will be used to process those messages.', ) defaultDashboardId: Optional[DashboardId] = Field( None, description='Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to asset details.', ) defaultQueueName: Optional[str] = Field( None, description="Rule engine queue name. If present, the specified queue will be used to store all unprocessed messages related to asset, including asset updates, telemetry, attribute updates, etc. Otherwise, the 'Main' queue will be used to store those messages.", ) defaultEdgeRuleChainId: Optional[RuleChainId] = Field( None, description='Reference to the edge rule chain. If present, the specified edge rule chain will be used on the edge to process all messages related to asset, including asset updates, telemetry, attribute updates, etc. Otherwise, the edge root rule chain will be used to process those messages.', ) version: Optional[int] = None default: Optional[bool] = Field( None, description='Used to mark the default profile. Default profile is used when the asset profile is not specified during asset creation.', ) class AssetProfileInfo(BaseModel): id: Optional[EntityId] = Field(None, description='JSON object with the entity Id. ') tenantId: Optional[TenantId] = Field(None, description='Tenant id.') name: Optional[str] = Field(None, description='Entity Name') image: Optional[str] = Field( None, description='Either URL or Base64 data of the icon. Used in the mobile application to visualize set of asset profiles in the grid view. ', ) defaultDashboardId: Optional[DashboardId] = Field( None, description='Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to asset details.', ) class AssetSearchQuery(BaseModel): parameters: Optional[RelationsSearchParameters] = Field( None, description='Main search parameters.' ) relationType: Optional[str] = Field( None, description="Type of the relation between root entity and asset (e.g. 'Contains' or 'Manages').", ) assetTypes: Optional[List[str]] = Field( None, description="Array of asset types to filter the related entities (e.g. 'Building', 'Vehicle').", ) class AssetSearchQueryFilter(EntityFilter): rootEntity: Optional[EntityId] = None relationType: Optional[str] = None direction: Optional[Direction] = None maxLevel: Optional[int] = None fetchLastLevelOnly: Optional[bool] = None assetTypes: Optional[List[str]] = None class AssetTypeFilter(EntityFilter): assetType: Optional[str] = None assetTypes: Optional[List[str]] = None assetNameFilter: Optional[str] = None class AuditLog(BaseModel): id: Optional[AuditLogId] = Field( None, description='JSON object with the auditLog Id' ) createdTime: Optional[int] = Field( None, description='Timestamp of the auditLog creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) entityId: Optional[EntityId] = Field(None, description='JSON object with Entity id') entityName: Optional[str] = Field( None, description='Name of the logged entity', example='Thermometer' ) userId: Optional[UserId] = Field(None, description='JSON object with User id.') userName: Optional[str] = Field( None, description='Unique user name(email) of the user that performed some action on logged entity', example='tenant@thingsboard.org', ) actionType: Optional[ActionType] = Field( None, description='String represented Action type', example='ADDED' ) actionData: Optional[JsonNode] = Field( None, description='JsonNode represented action data' ) actionStatus: Optional[ActionStatus] = Field( None, description='String represented Action status', example='SUCCESS' ) actionFailureDetails: Optional[str] = Field( None, description="Failure action details info. An empty string in case of action status type 'SUCCESS', otherwise includes stack trace of the caused exception.", ) class AutoCommitSettings(RootModel): root: Optional[Dict[str, AutoVersionCreateConfig]] = None class AwsSnsSmsProviderConfiguration(SmsProviderConfiguration): accessKeyId: Optional[str] = Field(None, description='The AWS SNS Access Key ID.') secretAccessKey: Optional[str] = Field(None, description='The AWS SNS Access Key.') region: Optional[str] = Field(None, description='The AWS region.') class BackupCodeTwoFaAccountConfig(TwoFaAccountConfig): codes: List[str] = Field(..., Set=True) codesLeft: Optional[int] = None class BackupCodeTwoFaProviderConfig(TwoFaProviderConfig): codesQuantity: Optional[conint(ge=1)] = None class BlobEntityInfo(BaseModel): id: Optional[BlobEntityId] = Field( None, description='JSON object with the blob entity Id. Referencing non-existing blob entity Id will cause error', ) createdTime: Optional[int] = Field( None, description='Timestamp of the blob entity creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) name: Optional[str] = Field( None, description='blob entity name', example='report-2021-10-29_14:00:00.pdf' ) type: Optional[str] = Field(None, description='blob entity type', example='report') contentType: Optional[ContentType] = Field( None, description='blob content type', example='application/pdf' ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the blob entity' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class BlobEntityWithCustomerInfo(BaseModel): id: Optional[BlobEntityId] = Field( None, description='JSON object with the blob entity Id. Referencing non-existing blob entity Id will cause error', ) createdTime: Optional[int] = Field( None, description='Timestamp of the blob entity creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) name: Optional[str] = Field( None, description='blob entity name', example='report-2021-10-29_14:00:00.pdf' ) type: Optional[str] = Field(None, description='blob entity type', example='report') contentType: Optional[ContentType] = Field( None, description='blob content type', example='application/pdf' ) customerTitle: Optional[str] = Field( None, description='Title of the customer', example='Company A' ) customerIsPublic: Optional[bool] = Field( None, description='Parameter that specifies if customer is public' ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the blob entity' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class BooleanFilterPredicate(KeyFilterPredicate): operation: Optional[Operation] = None value: Optional[FilterPredicateValueBoolean] = None class BulkImportRequest(BaseModel): file: Optional[str] = None mapping: Optional[Mapping] = None customerId: Optional[CustomerId] = None entityGroupId: Optional[str] = None class CalculatedFieldConfiguration(BaseModel): arguments: Optional[Dict[str, Argument]] = None expression: Optional[str] = None output: Optional[Output] = None type: str class CalculatedFieldDebugEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) isError: Optional[bool] = None errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) entityId: Optional[str] = Field( None, description='String value representing the entity id in the event body', example='57b6bafe-d600-423c-9267-fe31e5218986', ) entityType: Optional[EntityType4] = Field( None, description='String value representing the entity type' ) msgId: Optional[str] = Field( None, description='String value representing the message id in the rule engine', example='dcf44612-2ce4-4e5d-b462-ebb9c5628228', ) msgType: Optional[str] = Field( None, description='String value representing the message type', example='POST_TELEMETRY_REQUEST', ) arguments: Optional[str] = Field( None, description='String value representing the arguments that were used in the calculation performed', example={ 'x': {'ts': 1739432016629, 'value': 20}, 'y': {'ts': 1739429717656, 'value': 12}, }, ) result: Optional[str] = Field( None, description='String value representing the result of a calculation', example={'x + y': 32}, ) error: Optional[bool] = None eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration( DeviceProfileProvisionConfiguration ): pass class ClientAttributesQueryingSnmpCommunicationConfig(SnmpCommunicationConfig): mappings: Optional[List[SnmpMapping]] = None queryingFrequencyMs: Optional[int] = None class CoapDeviceProfileTransportConfiguration(DeviceProfileTransportConfiguration): coapDeviceTypeConfiguration: Optional[CoapDeviceTypeConfiguration] = None clientSettings: Optional[PowerSavingConfiguration] = None class CoapDeviceTransportConfiguration(DeviceTransportConfiguration): powerMode: Optional[PowerMode] = None psmActivityTimer: Optional[int] = None edrxCycle: Optional[int] = None pagingTransmissionWindow: Optional[int] = None class ComparisonTsValue(BaseModel): current: Optional[TsValue] = None previous: Optional[TsValue] = None class ComplexFilterPredicate(KeyFilterPredicate): operation: Optional[Operation1] = None predicates: Optional[List[KeyFilterPredicate]] = None class ComplexVersionCreateRequest(VersionCreateRequest): syncStrategy: Optional[SyncStrategy] = None entityTypes: Optional[Dict[str, EntityTypeVersionCreateConfig]] = None class ComponentDescriptor(BaseModel): id: Optional[ComponentDescriptorId] = Field( None, description='JSON object with the descriptor Id. Specify existing descriptor id to update the descriptor. Referencing non-existing descriptor Id will cause error. Omit this field to create new descriptor.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the descriptor creation, in milliseconds', example=1609459200000, ) type: Optional[Type6] = Field(None, description='Type of the Rule Node') scope: Optional[Scope] = Field( None, description="Scope of the Rule Node. Always set to 'TENANT', since no rule chains on the 'SYSTEM' level yet.", example='TENANT', ) clusteringMode: Optional[ClusteringMode] = Field( None, description='Clustering mode of the RuleNode. This mode represents the ability to start Rule Node in multiple microservices.', example='ENABLED', ) name: Optional[str] = Field( None, description='Name of the Rule Node. Taken from the @RuleNode annotation.', example='Custom Rule Node', ) clazz: Optional[str] = Field( None, description='Full name of the Java class that implements the Rule Engine Node interface.', example='com.mycompany.CustomRuleNode', ) configurationVersion: Optional[int] = Field( None, description='Rule node configuration version. By default, this value is 0. If the rule node is a versioned node, this value might be greater than 0.', ) actions: Optional[str] = Field( None, description='Rule Node Actions. Deprecated. Always null.' ) hasQueueName: Optional[bool] = Field( None, description='Indicates that the RuleNode supports queue name configuration.', example=True, ) configurationDescriptor: Optional[JsonNode] = None class ContactBasedObject(BaseModel): id: Optional[Any] = None createdTime: Optional[int] = None country: Optional[str] = None state: Optional[str] = None city: Optional[str] = None address: Optional[str] = None address2: Optional[str] = None zip: Optional[str] = None phone: Optional[str] = None email: Optional[str] = None name: Optional[str] = None additionalInfo: Optional[JsonNode] = None class Converter(BaseModel): id: Optional[ConverterId] = Field( None, description='JSON object with the Converter Id. Specify this field to update the Converter. Referencing non-existing Converter Id will cause error. Omit this field to create new Converter.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the converter creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') name: str = Field( ..., description='Unique Converter Name in scope of Tenant', example='Http Converter', ) type: Type7 = Field( ..., description='The type of the converter to process incoming or outgoing messages', ) integrationType: Optional[IntegrationType] = Field( None, description='The type of the integration to which the converter is dedicated', ) debugMode: Optional[bool] = Field( None, description='Enable/disable debug. ', example=False ) debugSettings: Optional[DebugSettings] = Field( None, description='Debug settings object.' ) configuration: Optional[JsonNode] = Field( None, description="JSON object representing converter configuration. It should contain one of two possible fields: 'decoder' or 'encoder'. The former is used when the converter has UPLINK type, the latter is used - when DOWNLINK type. It can contain both 'decoder' and 'encoder' fields, when the correct one is specified for the appropriate converter type, another one can be set to 'null'", ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the converter' ) edgeTemplate: Optional[bool] = Field( None, description='Boolean flag that specifies that is regular or edge template converter', ) converterVersion: Optional[int] = None version: Optional[int] = None class CustomMenuDeleteResult(BaseModel): success: Optional[bool] = None assigneeType: Optional[AssigneeType] = None assigneeList: Optional[List[EntityInfo]] = None class CustomMenuInfo(BaseModel): id: Optional[CustomMenuId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id that owns the menu.' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id that owns the menu.' ) name: str = Field( ..., description='Custom menu name', example='Customer A custom menu' ) scope: Scope1 = Field( ..., description='Custom menu scope. Possible values: SYSTEM, TENANT, CUSTOMER', example='TENANT', ) assigneeType: AssigneeType = Field( ..., description='Custom menu assignee type. Possible values are: All (all users of specified scope), CUSTOMERS (specified customers), USERS (specified list of users), NO_ASSIGN (no assignees)', example='ALL', ) class CustomMenuItem(MenuItem): name: str = Field( ..., description='Name of the menu item', example='My Custom Menu' ) icon: Optional[str] = Field( None, description="URL of the menu item icon. Overrides 'materialIcon'", example='My Custom Menu', ) menuItemType: MenuItemType = Field( ..., description='Type of menu item (LINK or SECTION). LINK type means item has no child items, SECTION type should have at least one child', example='LINK', ) linkType: Optional[LinkType1] = Field( None, description='Type of menu item (URL or DASHBOARD)', example='URL' ) dashboardId: Optional[str] = Field( None, description='Id of the Dashboard to open, when user clicks the menu item', example='https://mycompany.com', ) hideDashboardToolbar: Optional[bool] = Field( None, description='Hide the dashboard toolbar' ) url: Optional[str] = Field( None, description='URL to open in the iframe, when user clicks the menu item', example='https://myexternalurl.com', ) setAccessToken: Optional[bool] = Field( None, description='Set the access token of the current user to a new dashboard' ) visible: Optional[bool] = Field( None, description='Mark if menu item is visible for user' ) pages: Optional[List[CustomMenuItem]] = Field( None, description='List of child menu items' ) class CustomMobilePage(MobilePage): path: Optional[str] = Field( None, description='Path to custom page', example='/alarmDetails/868c7083-032d-4f52-b8b4-7859aebb6a4e', ) label: Optional[str] = Field(None, description='Page label', example='Air quality') visible: bool = Field(..., description='Indicates if page is visible', example=True) icon: Optional[str] = Field( None, description='URL of the page icon', example='home_icon' ) class CustomTimeSchedule(AlarmSchedule): timezone: Optional[str] = None items: Optional[List[CustomTimeScheduleItem]] = None class Customer(BaseModel): id: Optional[CustomerId] = Field( None, description='JSON object with the customer Id. Specify this field to update the customer. Referencing non-existing customer Id will cause error. Omit this field to create new customer.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the customer creation, in milliseconds', example=1609459200000, ) country: Optional[str] = Field(None, description='Country', example='US') state: Optional[str] = Field(None, description='State', example='NY') city: Optional[str] = Field(None, description='City', example='New York') address: Optional[str] = Field(None, description='Address Line 1', example=42) address2: Optional[str] = Field(None, description='Address Line 2') zip: Optional[str] = Field(None, description='Zip code', example=10004) phone: Optional[str] = Field( None, description='Phone number', example='+1(415)777-7777' ) email: Optional[str] = Field(..., description='Email', example='example@company.com') title: Optional[str] = Field(..., description='Title of the customer', example='Company A') tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') parentCustomerId: Optional[CustomerId] = Field( None, description='JSON object with parent Customer Id' ) version: Optional[int] = None customMenuId: Optional[CustomMenuId] = None name: Optional[str] = Field( None, description='Name of the customer. Read-only, duplicated from title for backward compatibility', example='Company A', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with parent Customer Id' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class CustomerInfo(BaseModel): id: Optional[CustomerId] = Field( None, description='JSON object with the customer Id. Specify this field to update the customer. Referencing non-existing customer Id will cause error. Omit this field to create new customer.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the customer creation, in milliseconds', example=1609459200000, ) country: Optional[str] = Field(None, description='Country', example='US') state: Optional[str] = Field(None, description='State', example='NY') city: Optional[str] = Field(None, description='City', example='New York') address: Optional[str] = Field(None, description='Address Line 1', example=42) address2: Optional[str] = Field(None, description='Address Line 2') zip: Optional[str] = Field(None, description='Zip code', example=10004) phone: Optional[str] = Field( None, description='Phone number', example='+1(415)777-7777' ) email: str = Field(..., description='Email', example='example@company.com') title: str = Field(..., description='Title of the customer', example='Company A') tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') parentCustomerId: Optional[CustomerId] = Field( None, description='JSON object with parent Customer Id' ) version: Optional[int] = None customMenuId: Optional[CustomMenuId] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') name: Optional[str] = Field( None, description='Name of the customer. Read-only, duplicated from title for backward compatibility', example='Company A', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with parent Customer Id' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class CustomerUsersFilter(UsersFilter): customerId: UUID class Dashboard(BaseModel): title: Optional[str] = Field(None, description='Title of the dashboard.') image: Optional[str] = Field( None, description='Thumbnail picture for rendering of the dashboards in a grid view on mobile devices.', ) mobileHide: Optional[bool] = Field( None, description='Hide dashboard from mobile devices. Useful if the dashboard is not designed for small screens.', ) mobileOrder: Optional[int] = Field( None, description='Order on mobile devices. Useful to adjust sorting of the dashboards for mobile applications', ) configuration: Optional[JsonNode] = Field( None, description='JSON object with main configuration of the dashboard: layouts, widgets, aliases, etc. The JSON structure of the dashboard configuration is quite complex. The easiest way to learn it is to export existing dashboard to JSON.', ) name: Optional[str] = Field( None, description="Same as title of the dashboard. Read-only field. Update the 'title' to change the 'name' of the dashboard.", ) resources: Optional[List[ResourceExportData]] = None id: Optional[DashboardId] = Field( None, description='JSON object with the dashboard Id. Specify existing dashboard Id to update the dashboard. Referencing non-existing dashboard id will cause error. Omit this field to create new dashboard.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the dashboard creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the dashboard can't be changed.", ) customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id. ' ) assignedCustomers: Optional[List[ShortCustomerInfo]] = Field( None, description='List of assigned customers with their info.', Set=True, ) version: Optional[int] = None ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class DashboardInfo(BaseModel): title: Optional[str] = Field(None, description='Title of the dashboard.') image: Optional[str] = Field( None, description='Thumbnail picture for rendering of the dashboards in a grid view on mobile devices.', ) mobileHide: Optional[bool] = Field( None, description='Hide dashboard from mobile devices. Useful if the dashboard is not designed for small screens.', ) mobileOrder: Optional[int] = Field( None, description='Order on mobile devices. Useful to adjust sorting of the dashboards for mobile applications', ) configuration: Optional[JsonNode] = Field( None, description='JSON object with main configuration of the dashboard: layouts, widgets, aliases, etc. The JSON structure of the dashboard configuration is quite complex. The easiest way to learn it is to export existing dashboard to JSON.', ) name: Optional[str] = Field( None, description="Same as title of the dashboard. Read-only field. Update the 'title' to change the 'name' of the dashboard.", ) resources: Optional[List[ResourceExportData]] = None id: Optional[DashboardId] = Field( None, description='JSON object with the dashboard Id. Specify existing dashboard Id to update the dashboard. Referencing non-existing dashboard id will cause error. Omit this field to create new dashboard.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the dashboard creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the dashboard can't be changed.", ) customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id. ' ) assignedCustomers: Optional[List[ShortCustomerInfo]] = Field( None, description='List of assigned customers with their info.', Set=True, ) version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class DashboardPage(MobilePage): dashboardId: Optional[str] = Field( None, description='Dashboard id', example='784f394c-42b6-435a-983c-b7beff2784f9' ) label: Optional[str] = Field(None, description='Page label', example='Air quality') visible: bool = Field(..., description='Indicates if page is visible', example=True) icon: Optional[str] = Field( None, description='URL of the page icon', example='home_icon' ) class DebugConverterEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) isError: Optional[bool] = None errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) type: Optional[str] = None in_: Optional[str] = Field(None, alias='in') out: Optional[str] = None metadata: Optional[str] = None error: Optional[bool] = None eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class DebugIntegrationEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) isError: Optional[bool] = None errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) type: Optional[str] = None message: Optional[str] = None statusIntegration: Optional[str] = None error: Optional[bool] = None eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class DefaultCoapDeviceTypeConfiguration(CoapDeviceTypeConfiguration): transportPayloadTypeConfiguration: Optional[TransportPayloadTypeConfiguration] = ( None ) class DefaultDeviceConfiguration(DeviceConfiguration): pass class DefaultDeviceProfileConfiguration(DeviceProfileConfiguration): pass class DefaultDeviceProfileTransportConfiguration(DeviceProfileTransportConfiguration): pass class DefaultDeviceTransportConfiguration(DeviceTransportConfiguration): pass class DefaultMenuItem(MenuItem): id: Optional[str] = Field( None, description='Unique identifier for predefined menu items', example='home' ) name: Optional[str] = Field( None, description='Name of the menu item', example='My Custom Menu' ) icon: Optional[str] = Field( None, description="URL of the menu item icon. Overrides 'materialIcon'", example='My Custom Menu', ) visible: Optional[bool] = Field( None, description='Mark if menu item is visible for user' ) pages: Optional[List[DefaultMenuItem]] = Field( None, description='List of child menu items' ) class DefaultMobilePage(MobilePage): id: Optional[Id] = Field( None, description='Identifier for default page', example='HOME' ) label: Optional[str] = Field(None, description='Page label', example='Air quality') visible: bool = Field(..., description='Indicates if page is visible', example=True) icon: Optional[str] = Field( None, description='URL of the page icon', example='home_icon' ) class DefaultTenantProfileConfiguration(TenantProfileConfiguration): maxDevices: Optional[int] = None maxAssets: Optional[int] = None maxCustomers: Optional[int] = None maxUsers: Optional[int] = None maxDashboards: Optional[int] = None maxRuleChains: Optional[int] = None maxEdges: Optional[int] = None maxResourcesInBytes: Optional[int] = None maxOtaPackagesInBytes: Optional[int] = None maxResourceSize: Optional[int] = None maxIntegrations: Optional[int] = None maxConverters: Optional[int] = None maxSchedulerEvents: Optional[int] = None whiteLabelingEnabled: Optional[bool] = None trendzEnabled: Optional[bool] = None transportTenantMsgRateLimit: Optional[str] = Field(None, example='1000:1,20000:60') transportTenantTelemetryMsgRateLimit: Optional[str] = Field( None, example='1000:1,20000:60' ) transportTenantTelemetryDataPointsRateLimit: Optional[str] = Field( None, example='1000:1,20000:60' ) transportDeviceMsgRateLimit: Optional[str] = Field(None, example='20:1,600:60') transportDeviceTelemetryMsgRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportDeviceTelemetryDataPointsRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportGatewayMsgRateLimit: Optional[str] = Field(None, example='20:1,600:60') transportGatewayTelemetryMsgRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportGatewayTelemetryDataPointsRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportGatewayDeviceMsgRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportGatewayDeviceTelemetryMsgRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) transportGatewayDeviceTelemetryDataPointsRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) integrationMsgsPerTenantRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) integrationMsgsPerDeviceRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) integrationMsgsPerAssetRateLimit: Optional[str] = None tenantEntityExportRateLimit: Optional[str] = Field(None, example='20:1,600:60') tenantEntityImportRateLimit: Optional[str] = Field(None, example='20:1,600:60') tenantNotificationRequestsRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) tenantNotificationRequestsPerRuleRateLimit: Optional[str] = Field( None, example='20:1,600:60' ) maxTransportMessages: Optional[int] = Field(None, example=10000000) maxTransportDataPoints: Optional[int] = Field(None, example=10000000) maxREExecutions: Optional[int] = Field(None, example=4000000) maxJSExecutions: Optional[int] = Field(None, example=5000000) maxTbelExecutions: Optional[int] = Field(None, example=5000000) maxDPStorageDays: Optional[int] = Field(None, example=0) maxRuleNodeExecutionsPerMessage: Optional[int] = Field(None, example=50) maxDebugModeDurationMinutes: Optional[int] = Field(None, example=15) maxEmails: Optional[int] = Field(None, example=0) smsEnabled: Optional[bool] = Field(None, example=True) maxSms: Optional[int] = Field(None, example=0) maxCreatedAlarms: Optional[int] = Field(None, example=1000) tenantServerRestLimitsConfiguration: Optional[str] = None customerServerRestLimitsConfiguration: Optional[str] = None maxWsSessionsPerTenant: Optional[int] = None maxWsSessionsPerCustomer: Optional[int] = None maxWsSessionsPerRegularUser: Optional[int] = None maxWsSessionsPerPublicUser: Optional[int] = None wsMsgQueueLimitPerSession: Optional[int] = None maxWsSubscriptionsPerTenant: Optional[int] = None maxWsSubscriptionsPerCustomer: Optional[int] = None maxWsSubscriptionsPerRegularUser: Optional[int] = None maxWsSubscriptionsPerPublicUser: Optional[int] = None wsUpdatesPerSessionRateLimit: Optional[str] = None cassandraQueryTenantRateLimitsConfiguration: Optional[str] = None edgeEventRateLimits: Optional[str] = None edgeEventRateLimitsPerEdge: Optional[str] = None edgeUplinkMessagesRateLimits: Optional[str] = None edgeUplinkMessagesRateLimitsPerEdge: Optional[str] = None defaultStorageTtlDays: Optional[int] = None alarmsTtlDays: Optional[int] = None rpcTtlDays: Optional[int] = None queueStatsTtlDays: Optional[int] = None ruleEngineExceptionsTtlDays: Optional[int] = None blobEntityTtlDays: Optional[int] = None warnThreshold: Optional[float] = None maxCalculatedFieldsPerEntity: Optional[int] = Field(None, example=5) maxArgumentsPerCF: Optional[int] = Field(None, example=10) maxDataPointsPerRollingArg: Optional[conint(ge=1)] = Field(None, example=1000) maxStateSizeInKBytes: Optional[int] = Field(None, example=32) maxSingleValueArgumentSizeInKBytes: Optional[int] = Field(None, example=2) class DeviceActivityNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): devices: Optional[List[UUID]] = Field(None, Set=True) deviceProfiles: Optional[List[UUID]] = Field(None, Set=True) notifyOn: List[NotifyOnEnum3] = Field(..., Set=True) class DeviceCredentials(BaseModel): id: DeviceCredentialsId = Field( ..., description="The Id is automatically generated during device creation. Use 'getDeviceCredentialsByDeviceId' to obtain the id based on device id. Use 'updateDeviceCredentials' to update device credentials. ", example='784f394c-42b6-435a-983c-b7beff2784f9', ) createdTime: Optional[int] = Field( None, description='Timestamp of the device credentials creation, in milliseconds', example=1609459200000, ) deviceId: DeviceId = Field(..., description='JSON object with the device Id.') credentialsType: Optional[CredentialsType] = Field( None, description='Type of the credentials' ) credentialsId: str = Field( ..., description='Unique Credentials Id per platform instance. Used to lookup credentials from the database. By default, new access token for your device. Depends on the type of the credentials.', example='Access token or other value that depends on the credentials type', ) credentialsValue: Optional[str] = Field( None, description='Value of the credentials. Null in case of ACCESS_TOKEN credentials type. Base64 value in case of X509_CERTIFICATE. Complex object in case of MQTT_BASIC and LWM2M_CREDENTIALS', example='Null in case of ACCESS_TOKEN. See model definition.', ) version: Optional[int] = None class DeviceData(BaseModel): configuration: Optional[DefaultDeviceConfiguration] = Field( None, description='Device configuration for device profile type. DEFAULT is only supported value for now', ) transportConfiguration: Optional[ Union[ CoapDeviceTransportConfiguration, DefaultDeviceTransportConfiguration, Lwm2mDeviceTransportConfiguration, MqttDeviceTransportConfiguration, SnmpDeviceTransportConfiguration, ] ] = Field( None, description='Device transport configuration used to connect the device' ) class DeviceGroupOtaPackage(BaseModel): id: Optional[UUID] = None groupId: Optional[EntityGroupId] = None otaPackageType: Optional[OtaPackageType] = None otaPackageId: Optional[OtaPackageId] = None otaPackageUpdateTime: Optional[int] = None class DeviceInfo(BaseModel): id: Optional[DeviceId] = Field( None, description='JSON object with the Device Id. Specify this field to update the Device. Referencing non-existing Device Id will cause error. Omit this field to create new Device.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the device creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", ) name: Optional[str] = Field( None, description='Unique Device Name in scope of Tenant', example='A4B72CCDFF33', ) type: Optional[str] = Field( None, description='Device Profile Name', example='Temperature Sensor' ) label: Optional[str] = Field( None, description='Label that may be used in widgets', example='Room 234 Sensor' ) deviceProfileId: DeviceProfileId = Field( ..., description='JSON object with Device Profile Id.' ) firmwareId: Optional[OtaPackageId] = Field( None, description='JSON object with Ota Package Id.' ) softwareId: Optional[OtaPackageId] = Field( None, description='JSON object with Ota Package Id.' ) version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') active: Optional[bool] = Field(None, description='Device active flag.') additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) deviceData: Optional[DeviceData] = Field( None, description='JSON object with content specific to type of transport in the device profile.', ) class DeviceProfileInfo(BaseModel): id: Optional[EntityId] = Field(None, description='JSON object with the entity Id. ') tenantId: Optional[TenantId] = Field(None, description='Tenant id.') name: Optional[str] = Field(None, description='Entity Name') image: Optional[str] = Field( None, description='Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view. ', ) defaultDashboardId: Optional[DashboardId] = Field( None, description='Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.', ) type: Optional[Type8] = Field( None, description="Type of the profile. Always 'DEFAULT' for now. Reserved for future use.", ) transportType: Optional[TransportType] = Field( None, description='Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.', ) class DeviceSearchQuery(BaseModel): parameters: Optional[RelationsSearchParameters] = Field( None, description='Main search parameters.' ) relationType: Optional[str] = Field( None, description="Type of the relation between root entity and device (e.g. 'Contains' or 'Manages').", ) deviceTypes: Optional[List[str]] = Field( None, description="Array of device types to filter the related entities (e.g. 'Temperature Sensor', 'Smoke Sensor').", ) class DeviceSearchQueryFilter(EntityFilter): rootEntity: Optional[EntityId] = None relationType: Optional[str] = None direction: Optional[Direction] = None maxLevel: Optional[int] = None fetchLastLevelOnly: Optional[bool] = None deviceTypes: Optional[List[str]] = None class DeviceTypeFilter(EntityFilter): deviceType: Optional[str] = None deviceTypes: Optional[List[str]] = None deviceNameFilter: Optional[str] = None class Domain(BaseModel): id: Optional[DomainId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) name: str = Field(..., description='Domain name. Cannot be empty') oauth2Enabled: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled or not' ) propagateToEdge: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled on Edge or not' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class DomainInfo(BaseModel): id: Optional[DomainId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) name: str = Field(..., description='Domain name. Cannot be empty') oauth2Enabled: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled or not' ) propagateToEdge: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled on Edge or not' ) oauth2ClientInfos: Optional[List[OAuth2ClientInfo]] = Field( None, description='List of available oauth2 clients' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class DurationAlarmConditionSpec(AlarmConditionSpec): unit: Optional[Unit] = None predicate: Optional[FilterPredicateValueLong] = None class Edge(BaseModel): id: Optional[EdgeId] = Field( None, description='JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the edge creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", ) rootRuleChainId: Optional[RuleChainId] = Field( None, description="JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id.", ) name: str = Field( ..., description='Unique Edge Name in scope of Tenant', example='Silo_A_Edge' ) type: str = Field(..., description='Edge type', example='Silos') label: Optional[str] = Field( None, description='Label that may be used in widgets', example='Silo Edge on far field', ) routingKey: str = Field( ..., description="Edge routing key ('username') to authorize on cloud" ) secret: str = Field( ..., description="Edge secret ('password') to authorize on cloud" ) edgeLicenseKey: str = Field( ..., description='Edge license key obtained from license portal', example='AgcnI24Z06XC&m6Sxsdgf', ) cloudEndpoint: str = Field( ..., description="Edge uses this cloud URL to activate and periodically check it's license", example='https://thingsboard.cloud', ) version: Optional[int] = None ownerId: Optional[EntityId] = None additionalInfo: Optional[JsonNode] = None class EdgeCommunicationFailureNotificationRuleTriggerConfig( NotificationRuleTriggerConfig ): edges: Optional[List[UUID]] = Field(None, Set=True) class EdgeConnectionNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): edges: Optional[List[UUID]] = Field(None, Set=True) notifyOn: Optional[List[NotifyOnEnum4]] = Field(None, Set=True) class EdgeEvent(BaseModel): id: Optional[EdgeEventId] = None createdTime: Optional[int] = None seqId: Optional[int] = None tenantId: Optional[TenantId] = None edgeId: Optional[EdgeId] = None action: Optional[Action] = None entityId: Optional[UUID] = None uid: Optional[str] = None type: Optional[Type10] = None entityGroupId: Optional[UUID] = None body: Optional[JsonNode] = None class EdgeInfo(BaseModel): id: Optional[EdgeId] = Field( None, description='JSON object with the Edge Id. Specify this field to update the Edge. Referencing non-existing Edge Id will cause error. Omit this field to create new Edge.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the edge creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignEdgeToCustomer' to change the Customer Id.", ) rootRuleChainId: Optional[RuleChainId] = Field( None, description="JSON object with Root Rule Chain Id. Use 'setEdgeRootRuleChain' to change the Root Rule Chain Id.", ) name: str = Field( ..., description='Unique Edge Name in scope of Tenant', example='Silo_A_Edge' ) type: str = Field(..., description='Edge type', example='Silos') label: Optional[str] = Field( None, description='Label that may be used in widgets', example='Silo Edge on far field', ) routingKey: str = Field( ..., description="Edge routing key ('username') to authorize on cloud" ) secret: str = Field( ..., description="Edge secret ('password') to authorize on cloud" ) edgeLicenseKey: str = Field( ..., description='Edge license key obtained from license portal', example='AgcnI24Z06XC&m6Sxsdgf', ) cloudEndpoint: str = Field( ..., description="Edge uses this cloud URL to activate and periodically check it's license", example='https://thingsboard.cloud', ) version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') ownerId: Optional[EntityId] = None additionalInfo: Optional[JsonNode] = None class EdgeSearchQuery(BaseModel): parameters: Optional[RelationsSearchParameters] = Field( None, description='Main search parameters.' ) relationType: Optional[str] = Field( None, description="Type of the relation between root entity and edge (e.g. 'Contains' or 'Manages').", ) edgeTypes: Optional[List[str]] = Field( None, description="Array of edge types to filter the related entities (e.g. 'Silos', 'Stores').", ) class EdgeSearchQueryFilter(EntityFilter): rootEntity: Optional[EntityId] = None relationType: Optional[str] = None direction: Optional[Direction] = None maxLevel: Optional[int] = None fetchLastLevelOnly: Optional[bool] = None edgeTypes: Optional[List[str]] = None class EdgeTypeFilter(EntityFilter): edgeType: Optional[str] = None edgeTypes: Optional[List[str]] = None edgeNameFilter: Optional[str] = None class EmailTwoFaAccountConfig(TwoFaAccountConfig): email: str class EmailTwoFaProviderConfig(TwoFaProviderConfig): verificationCodeLifetime: Optional[conint(ge=1)] = None class EntitiesByGroupNameFilter(EntityFilter): groupType: Optional[GroupType] = None ownerId: Optional[EntityId] = None entityGroupNameFilter: Optional[str] = None class EntitiesLimitNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): entityTypes: Optional[List[EntityType13]] = Field(None, Set=True) threshold: Optional[confloat(le=1.0)] = None class EntityActionNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): entityTypes: Optional[List[EntityType13]] = Field(None, Set=True) created: Optional[bool] = None updated: Optional[bool] = None deleted: Optional[bool] = None class EntityData(BaseModel): entityId: Optional[EntityId] = None readAttrs: Optional[bool] = None readTs: Optional[bool] = None latest: Optional[Dict[str, Dict[str, TsValue]]] = None timeseries: Optional[Dict[str, List[TsValue]]] = None aggLatest: Optional[Dict[str, ComparisonTsValue]] = None class EntityDataSortOrder(BaseModel): key: Optional[EntityKey] = None direction: Optional[Direction3] = None class EntityGroup(BaseModel): id: Optional[EntityGroupId] = Field( None, description='JSON object with the EntityGroupId Id. Specify this field to update the Entity Group. Referencing non-existing Entity Group Id will cause error. Omit this field to create new Entity Group.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the entity group creation, in milliseconds', example=1609459200000, ) type: Type11 name: str = Field( ..., description='Name of the entity group', example='Water meters' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with the owner of the group - Tenant or Customer Id.', ) additionalInfo: Optional[JsonNode] = Field( None, description='Arbitrary JSON with additional information about the group' ) configuration: Optional[JsonNode] = Field( None, description='JSON with the configuration for UI components: list of columns, settings, actions, etc ', ) version: Optional[int] = None groupAll: Optional[bool] = Field( None, description="Indicates special group 'All' that contains all entities and can't be deleted.", ) edgeGroupAll: Optional[bool] = Field( None, description="Indicates special edge group 'All' that contains all entities and can't be deleted.", ) tenantId: Optional[TenantId] = None class EntityGroupInfo(BaseModel): id: Optional[EntityGroupId] = Field( None, description='JSON object with the EntityGroupId Id. Specify this field to update the Entity Group. Referencing non-existing Entity Group Id will cause error. Omit this field to create new Entity Group.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the entity group creation, in milliseconds', example=1609459200000, ) type: Type11 name: str = Field( ..., description='Name of the entity group', example='Water meters' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with the owner of the group - Tenant or Customer Id.', ) additionalInfo: Optional[JsonNode] = Field( None, description='Arbitrary JSON with additional information about the group' ) configuration: Optional[JsonNode] = Field( None, description='JSON with the configuration for UI components: list of columns, settings, actions, etc ', ) version: Optional[int] = None ownerIds: List[EntityId] = Field( ..., description='List of the entity group owners.', Set=True ) groupAll: Optional[bool] = Field( None, description="Indicates special group 'All' that contains all entities and can't be deleted.", ) edgeGroupAll: Optional[bool] = Field( None, description="Indicates special edge group 'All' that contains all entities and can't be deleted.", ) tenantId: Optional[TenantId] = None class EntityRelation(BaseModel): from_: Optional[EntityId] = Field( None, alias='from', description='JSON object with [from] Entity Id.' ) to: Optional[EntityId] = Field(None, description='JSON object with [to] Entity Id.') type: Optional[str] = Field( None, description='String value of relation type.', example='Contains' ) typeGroup: Optional[TypeGroup] = Field( None, description='Represents the type group of the relation.', example='COMMON' ) version: Optional[int] = None additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the relation' ) class EntityRelationInfo(BaseModel): from_: Optional[EntityId] = Field( None, alias='from', description='JSON object with [from] Entity Id.' ) to: Optional[EntityId] = Field(None, description='JSON object with [to] Entity Id.') type: Optional[str] = Field( None, description='String value of relation type.', example='Contains' ) typeGroup: Optional[TypeGroup] = Field( None, description='Represents the type group of the relation.', example='COMMON' ) version: Optional[int] = None fromName: Optional[str] = Field( None, description='Name of the entity for [from] direction.', example='A4B72CCDFF33', ) toName: Optional[str] = Field( None, description='Name of the entity for [to] direction.', example='A4B72CCDFF35', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the relation' ) class EntityRelationsQuery(BaseModel): parameters: Optional[RelationsSearchParameters] = Field( None, description='Main search parameters.' ) filters: Optional[List[RelationEntityTypeFilter]] = Field( None, description='Main filters.' ) class EntitySubtype(BaseModel): tenantId: Optional[TenantId] = None entityType: Optional[EntityType17] = None type: Optional[str] = None class EntityTypeVersionLoadRequest(VersionLoadRequest): entityTypes: Optional[Dict[str, EntityTypeVersionLoadConfig]] = None rollbackOnError: Optional[bool] = None class EntityView(BaseModel): entityId: EntityId = Field( ..., description='JSON object with the referenced Entity Id (Device or Asset).' ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", ) name: str = Field(..., description='Entity View name', example='A4B72CCDFF33') type: str = Field( ..., description='Device Profile Name', example='Temperature Sensor' ) keys: Optional[TelemetryEntityView] = Field( None, description='Set of telemetry and attribute keys to expose via Entity View.', ) startTimeMs: Optional[int] = Field( None, description='Represents the start time of the interval that is used to limit access to target device telemetry. Customer will not be able to see entity telemetry that is outside the specified interval;', ) endTimeMs: Optional[int] = Field( None, description='Represents the end time of the interval that is used to limit access to target device telemetry. Customer will not be able to see entity telemetry that is outside the specified interval;', ) version: Optional[int] = None id: Optional[EntityViewId] = Field( None, description='JSON object with the Entity View Id. Specify this field to update the Entity View. Referencing non-existing Entity View Id will cause error. Omit this field to create new Entity View.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Entity View creation, in milliseconds', example=1609459200000, ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class EntityViewInfo(BaseModel): id: Optional[EntityViewId] = Field( None, description='JSON object with the Entity View Id. Specify this field to update the Entity View. Referencing non-existing Entity View Id will cause error. Omit this field to create new Entity View.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Entity View creation, in milliseconds', example=1609459200000, ) entityId: EntityId = Field( ..., description='JSON object with the referenced Entity Id (Device or Asset).' ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.", ) name: str = Field(..., description='Entity View name', example='A4B72CCDFF33') type: str = Field( ..., description='Device Profile Name', example='Temperature Sensor' ) keys: Optional[TelemetryEntityView] = Field( None, description='Set of telemetry and attribute keys to expose via Entity View.', ) startTimeMs: Optional[int] = Field( None, description='Represents the start time of the interval that is used to limit access to target device telemetry. Customer will not be able to see entity telemetry that is outside the specified interval;', ) endTimeMs: Optional[int] = Field( None, description='Represents the end time of the interval that is used to limit access to target device telemetry. Customer will not be able to see entity telemetry that is outside the specified interval;', ) version: Optional[int] = None ownerName: Optional[str] = Field(None, description='Owner name') groups: Optional[List[EntityInfo]] = Field(None, description='Groups') additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class EntityViewSearchQuery(BaseModel): parameters: Optional[RelationsSearchParameters] = Field( None, description='Main search parameters.' ) relationType: Optional[str] = Field( None, description="Type of the relation between root entity and device (e.g. 'Contains' or 'Manages').", ) entityViewTypes: Optional[List[str]] = Field( None, description="Array of entity view types to filter the related entities (e.g. 'Temperature Sensor', 'Smoke Sensor').", ) class ErrorEventFilter(EventFilter): server: Optional[str] = Field( None, description='String value representing the server name, identifier or ip address where the platform is running', example='ip-172-31-24-152', ) method: Optional[str] = Field( None, description='String value representing the method name when the error happened', example='onClusterEventMsg', ) errorStr: Optional[str] = Field( None, description="The case insensitive 'contains' filter based on error message", example='not present in the DB', ) eventType: EventType = Field( ..., description='String value representing the event type', example='STATS' ) class EscalatedNotificationRuleRecipientsConfig(NotificationRuleRecipientsConfig): escalationTable: Dict[str, List[UUID]] triggerType: TriggerType class EventInfo(BaseModel): id: Optional[EventId] = None createdTime: Optional[int] = Field( None, description='Timestamp of the event creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) type: Optional[str] = Field(None, description='Event type', example='STATS') uid: Optional[str] = Field( None, description='string', example='784f394c-42b6-435a-983c-b7beff2784f9' ) entityId: Optional[EntityId] = Field( None, description='JSON object with Entity Id for which event is created.' ) body: Optional[JsonNode] = None class GroupPermission(BaseModel): tenantId: Optional[TenantId] = Field( None, description='JSON object with the Tenant Id.' ) userGroupId: Optional[EntityGroupId] = Field( None, description='JSON object with the User Group Id. Represent user group that will have permissions to perform operations against corresponding Entity Group.', ) roleId: Optional[RoleId] = Field( None, description='JSON object with the Role Id. Represent set of permissions.' ) entityGroupId: Optional[EntityGroupId] = Field( None, description='JSON object with the Entity Group Id. Represent entity (device, asset, etc.) group.', ) entityGroupType: Optional[EntityGroupType] = Field( None, description='Type of the entities in the group: DEVICE, ASSET, CUSTOMER, etc.', ) isPublic: Optional[bool] = None id: Optional[GroupPermissionId] = Field( None, description='JSON object with the Group Permission Id. Specify this field to update the Group Permission. Referencing non-existing Group Permission Id will cause error. Omit this field to create new Group Permission.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the group permission creation, in milliseconds', example=1609459200000, ) name: Optional[str] = Field( None, description='Name of the Group Permissions. Auto-generated' ) public: Optional[bool] = None class HomeMenuItem(MenuItem): id: Optional[str] = Field( None, description='Unique identifier for predefined menu items', example='home' ) name: Optional[str] = Field( None, description='Name of the menu item', example='My Custom Menu' ) icon: Optional[str] = Field( None, description="URL of the menu item icon. Overrides 'materialIcon'", example='My Custom Menu', ) visible: Optional[bool] = Field( None, description='Mark if menu item is visible for user' ) pages: Optional[List[DefaultMenuItem]] = Field( None, description='List of child menu items' ) homeType: Optional[HomeType] = Field( None, description='DEFAULT or DASHBOARD. DASHBOARD means default home page presentation changed to refer to dashboard', ) dashboardId: Optional[str] = Field( None, description='Id of the Dashboard to open, when user clicks the menu item' ) hideDashboardToolbar: Optional[bool] = Field( None, description='Hide the dashboard toolbar' ) class Integration(BaseModel): id: Optional[IntegrationId] = Field( None, description='JSON object with the Integration Id. Specify this field to update the Integration. Referencing non-existing Integration Id will cause error. Omit this field to create new Integration.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the integration creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') name: str = Field(..., description='Integration Name', example='Http Integration') type: Type14 = Field(..., description='The type of the integration') debugMode: Optional[bool] = Field( None, description='Enable/disable debug. ', example=False ) debugSettings: Optional[DebugSettings] = Field( None, description='Debug settings object.' ) enabled: Optional[bool] = Field( None, description='Boolean flag to enable/disable the integration' ) allowCreateDevicesOrAssets: Optional[bool] = Field( None, description='Boolean flag to allow/disallow the integration to create devices or assets that send message and do not exist in the system yet', ) version: Optional[int] = None defaultConverterId: ConverterId = Field( ..., description='JSON object with the Uplink Converter Id' ) downlinkConverterId: Optional[ConverterId] = Field( None, description='JSON object with the Downlink Converter Id' ) routingKey: str = Field( ..., description="String value used by HTTP based integrations for the base URL construction and by the remote integrations. Remote integration uses this value along with the 'secret' for kind of security and validation to be able to connect to the platform using Grpc", example='ca1a01b6-4ca1-3da5-54e4-a07090b65644', ) secret: Optional[str] = Field( None, description="String value used by the remote integrations. Remote integration uses this value along with the 'routingKey' for kind of security and validation to be able to connect to the platform using Grpc", example='nl83m1ktpwpwwmww29sm', ) configuration: JsonNode = Field( ..., description="JSON object representing integration configuration. Each integration type has specific configuration with the connectivity parameters (like 'host' and 'port' for MQTT type or 'baseUrl' for HTTP based type, etc.) and other important parameters dependent on the integration type", ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the integration' ) edgeTemplate: Optional[bool] = Field( None, description='Boolean flag that specifies that is regular or edge template integration', ) remote: Optional[bool] = Field( None, description='Boolean flag to enable/disable the integration to be executed remotely. Remote integration is launched in a separate microservice. Local integration is executed by the platform core', ) class IntegrationInfo(BaseModel): id: Optional[IntegrationId] = Field( None, description='JSON object with the Integration Id. Specify this field to update the Integration. Referencing non-existing Integration Id will cause error. Omit this field to create new Integration.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the integration creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') name: str = Field(..., description='Integration Name', example='Http Integration') type: Type14 = Field(..., description='The type of the integration') debugMode: Optional[bool] = Field( None, description='Enable/disable debug. ', example=False ) debugSettings: Optional[DebugSettings] = Field( None, description='Debug settings object.' ) enabled: Optional[bool] = Field( None, description='Boolean flag to enable/disable the integration' ) allowCreateDevicesOrAssets: Optional[bool] = Field( None, description='Boolean flag to allow/disallow the integration to create devices or assets that send message and do not exist in the system yet', ) version: Optional[int] = None status: Optional[Dict[str, Any]] = None stats: Optional[ArrayNode] = None edgeTemplate: Optional[bool] = Field( None, description='Boolean flag that specifies that is regular or edge template integration', ) remote: Optional[bool] = Field( None, description='Boolean flag to enable/disable the integration to be executed remotely. Remote integration is launched in a separate microservice. Local integration is executed by the platform core', ) class IntegrationLifecycleEventNotificationRuleTriggerConfig( NotificationRuleTriggerConfig ): integrationTypes: Optional[List[IntegrationType]] = Field(None, Set=True) integrations: Optional[List[UUID]] = Field(None, Set=True) notifyOn: Optional[List[NotifyOnEnum5]] = Field(None, Set=True) onlyOnError: Optional[bool] = None class JsonTransportPayloadConfiguration(TransportPayloadTypeConfiguration): pass class KeyFilter(BaseModel): key: Optional[EntityKey] = None valueType: Optional[ValueType] = None predicate: Optional[ Union[ BooleanFilterPredicate, ComplexFilterPredicate, NumericFilterPredicate, StringFilterPredicate, ] ] = None class LoginWhiteLabelingParams(BaseModel): logoImageUrl: Optional[str] = Field( None, description='Logo image URL', example='https://company.com/images/logo.png', ) logoImageHeight: Optional[int] = Field( None, description='The height of a logo container. Logo image will be automatically scaled.', ) appTitle: Optional[str] = Field( None, description='White-labeled name of the platform', example='My Company IoT Platform', ) favicon: Optional[Favicon] = Field( None, description='JSON object that contains website icon url and type' ) paletteSettings: Optional[PaletteSettings] = Field( None, description='Complex JSON that describes structure of the Angular Material Palette. See [theming](https://material.angular.io/guide/theming) for more details', ) helpLinkBaseUrl: Optional[str] = Field(None, description='Base URL for help link') uiHelpBaseUrl: Optional[str] = Field( None, description='Base URL for the repository with the UI help components (markdown)', ) enableHelpLinks: Optional[bool] = Field( None, description='Enable or Disable help links' ) whiteLabelingEnabled: Optional[bool] = Field( None, description='Enable white-labeling' ) showNameVersion: Optional[bool] = Field( None, description='Show platform name and version on UI and login screen' ) platformName: Optional[str] = Field(None, description='White-labeled platform name') platformVersion: Optional[str] = Field( None, description='White-labeled platform version' ) customCss: Optional[str] = Field(None, description='Custom CSS content') hideConnectivityDialog: Optional[bool] = Field( None, description='Hide device connectivity dialog' ) pageBackgroundColor: Optional[str] = Field( None, description='Login page background color', example='#d90f0f' ) darkForeground: Optional[bool] = Field( None, description='Enable/Disable dark foreground' ) domainId: Optional[DomainId] = Field(None, description='Domain id') baseUrl: Optional[str] = Field( None, description='Base URL for the activation link, etc', example='https://iot.mycompany.com', ) prohibitDifferentUrl: Optional[bool] = Field( None, description='Prohibit use of other URLs. It is recommended to enable this setting', example=True, ) adminSettingsId: Optional[str] = Field( None, description='Id of the settings object that store this parameters' ) showNameBottom: Optional[bool] = Field( None, description='Show platform name and version on login page' ) class LwM2mInstance(BaseModel): id: Optional[int] = Field(None, description='LwM2M Instance id.', example=0) resources: Optional[List[LwM2mResourceObserve]] = Field( None, description='LwM2M Resource observe.' ) class LwM2mObject(BaseModel): id: Optional[int] = Field(None, description='LwM2M Object id.', example=19) keyId: Optional[str] = Field( None, description='LwM2M Object key id.', example='19_1.0' ) name: Optional[str] = Field( None, description='LwM2M Object name.', example='BinaryAppDataContainer' ) multiple: Optional[bool] = Field( None, description='LwM2M Object multiple.', example=True ) mandatory: Optional[bool] = Field( None, description='LwM2M Object mandatory.', example=False ) instances: Optional[List[LwM2mInstance]] = Field( None, description='LwM2M Object instances.' ) class Lwm2mDeviceProfileTransportConfiguration(DeviceProfileTransportConfiguration): observeAttr: Optional[TelemetryMappingConfiguration] = None bootstrapServerUpdateEnable: Optional[bool] = None bootstrap: Optional[List[LwM2MBootstrapServerCredential]] = None clientLwM2mSettings: Optional[OtherConfiguration] = None class MicrosoftTeamsNotificationTargetConfig(NotificationTargetConfig): webhookUrl: str channelName: str useOldApi: Optional[bool] = None id: Optional[Any] = None title: Optional[str] = None firstName: Optional[str] = None lastName: Optional[str] = None email: Optional[str] = None class MobileApp(BaseModel): id: Optional[MobileAppId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') pkgName: str = Field(..., description='Application package name. Cannot be empty') appSecret: str = Field( ..., description='Application secret. The length must be at least 16 characters' ) platformType: PlatformType = Field( ..., description='Application platform type: ANDROID or IOS' ) status: Status5 = Field( ..., description='Application status: PUBLISHED, DEPRECATED, SUSPENDED, DRAFT' ) versionInfo: Optional[MobileAppVersionInfo] = Field( None, description='Application version info' ) storeInfo: Optional[StoreInfo] = Field( None, description='Application store information' ) name: Optional[str] = Field( None, description='Mobile app package name', example='my.mobile.app' ) class MobileAppNotificationDeliveryMethodConfig(NotificationDeliveryMethodConfig): firebaseServiceAccountCredentialsFileName: Optional[str] = None firebaseServiceAccountCredentials: Optional[str] = None useSystemSettings: Optional[bool] = None class MobileLayoutConfig(BaseModel): pages: Optional[ List[Union[CustomMobilePage, DashboardPage, DefaultMobilePage, WebViewPage]] ] = Field(None, description='List of pages') class MqttDeviceProfileTransportConfiguration(DeviceProfileTransportConfiguration): deviceTelemetryTopic: Optional[str] = None deviceAttributesTopic: Optional[str] = None deviceAttributesSubscribeTopic: Optional[str] = None transportPayloadTypeConfiguration: Optional[TransportPayloadTypeConfiguration] = ( None ) sparkplug: Optional[bool] = None sparkplugAttributesMetricNames: Optional[List[str]] = Field(None, Set=True) sendAckOnValidationException: Optional[bool] = None class NewPlatformVersionNotificationRuleTriggerConfig(NotificationRuleTriggerConfig): pass class Notification(BaseModel): requestId: Optional[NotificationRequestId] = None recipientId: Optional[UserId] = None type: Optional[Type18] = None deliveryMethod: Optional[DeliveryMethod] = None subject: Optional[str] = None text: Optional[str] = None additionalConfig: Optional[JsonNode] = None info: Optional[NotificationInfo] = None status: Optional[Status6] = None id: Optional[NotificationId] = None createdTime: Optional[int] = None class NotificationRequestPreview(BaseModel): processedTemplates: Optional[ Dict[ str, Union[ EmailDeliveryMethodNotificationTemplate, MicrosoftTeamsDeliveryMethodNotificationTemplate, MobileAppDeliveryMethodNotificationTemplate, SlackDeliveryMethodNotificationTemplate, SmsDeliveryMethodNotificationTemplate, WebDeliveryMethodNotificationTemplate, ], ] ] = None totalRecipientsCount: Optional[int] = None recipientsCountByTarget: Optional[Dict[str, int]] = None recipientsPreview: Optional[List[str]] = None class NotificationRule(BaseModel): id: Optional[NotificationRuleId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None name: str enabled: Optional[bool] = None templateId: NotificationTemplateId triggerType: TriggerType triggerConfig: Union[ AlarmAssignmentNotificationRuleTriggerConfig, AlarmCommentNotificationRuleTriggerConfig, AlarmNotificationRuleTriggerConfig, ApiUsageLimitNotificationRuleTriggerConfig, DeviceActivityNotificationRuleTriggerConfig, EdgeCommunicationFailureNotificationRuleTriggerConfig, EdgeConnectionNotificationRuleTriggerConfig, EntitiesLimitNotificationRuleTriggerConfig, EntityActionNotificationRuleTriggerConfig, IntegrationLifecycleEventNotificationRuleTriggerConfig, NewPlatformVersionNotificationRuleTriggerConfig, RateLimitsNotificationRuleTriggerConfig, RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig, TaskProcessingFailureNotificationRuleTriggerConfig, ] recipientsConfig: EscalatedNotificationRuleRecipientsConfig additionalConfig: Optional[NotificationRuleConfig] = None class NotificationRuleInfo(BaseModel): id: Optional[NotificationRuleId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None name: str enabled: Optional[bool] = None templateId: NotificationTemplateId triggerType: TriggerType triggerConfig: Union[ AlarmAssignmentNotificationRuleTriggerConfig, AlarmCommentNotificationRuleTriggerConfig, AlarmNotificationRuleTriggerConfig, ApiUsageLimitNotificationRuleTriggerConfig, DeviceActivityNotificationRuleTriggerConfig, EdgeCommunicationFailureNotificationRuleTriggerConfig, EdgeConnectionNotificationRuleTriggerConfig, EntitiesLimitNotificationRuleTriggerConfig, EntityActionNotificationRuleTriggerConfig, IntegrationLifecycleEventNotificationRuleTriggerConfig, NewPlatformVersionNotificationRuleTriggerConfig, RateLimitsNotificationRuleTriggerConfig, RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig, TaskProcessingFailureNotificationRuleTriggerConfig, ] recipientsConfig: EscalatedNotificationRuleRecipientsConfig additionalConfig: Optional[NotificationRuleConfig] = None templateName: Optional[str] = None deliveryMethods: Optional[List[DeliveryMethod]] = None class NotificationSettings(BaseModel): deliveryMethodsConfigs: Dict[ str, Union[ MobileAppNotificationDeliveryMethodConfig, SlackNotificationDeliveryMethodConfig, ], ] class NotificationTemplateConfig(BaseModel): deliveryMethodsTemplates: Dict[ str, Union[ EmailDeliveryMethodNotificationTemplate, MicrosoftTeamsDeliveryMethodNotificationTemplate, MobileAppDeliveryMethodNotificationTemplate, SlackDeliveryMethodNotificationTemplate, SmsDeliveryMethodNotificationTemplate, WebDeliveryMethodNotificationTemplate, ], ] class OAuth2Client(BaseModel): id: Optional[OAuth2ClientId] = None createdTime: Optional[int] = None additionalInfo: JsonNode = Field( ..., description='Additional info of OAuth2 client (e.g. providerName)' ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) title: str = Field(..., description='Oauth2 client title') mapperConfig: OAuth2MapperConfig = Field( ..., description='Config for mapping OAuth2 log in response to platform entities', ) clientId: str = Field(..., description='OAuth2 client ID. Cannot be empty') clientSecret: str = Field(..., description='OAuth2 client secret. Cannot be empty') authorizationUri: str = Field( ..., description='Authorization URI of the OAuth2 provider. Cannot be empty' ) accessTokenUri: str = Field( ..., description='Access token URI of the OAuth2 provider. Cannot be empty' ) scope: List[str] = Field( ..., description='OAuth scopes that will be requested from OAuth2 platform. Cannot be empty', ) userInfoUri: Optional[str] = Field( None, description='User info URI of the OAuth2 provider' ) userNameAttributeName: str = Field( ..., description='Name of the username attribute in OAuth2 provider response. Cannot be empty', ) jwkSetUri: Optional[str] = Field( None, description='JSON Web Key URI of the OAuth2 provider' ) clientAuthenticationMethod: str = Field( ..., description="Client authentication method to use: 'BASIC' or 'POST'. Cannot be empty", ) loginButtonLabel: str = Field( ..., description='OAuth2 provider label. Cannot be empty' ) loginButtonIcon: Optional[str] = Field( None, description='Log in button icon for OAuth2 provider' ) platforms: Optional[List[Platform]] = Field( None, description='List of platforms for which usage of the OAuth2 client is allowed (empty for all allowed)', ) name: Optional[str] = None ownerId: Optional[EntityId] = None class OAuth2ClientRegistrationTemplate(BaseModel): id: Optional[OAuth2ClientRegistrationTemplateId] = None createdTime: Optional[int] = None providerId: str = Field( ..., description='OAuth2 provider identifier (e.g. its name)' ) mapperConfig: Optional[OAuth2MapperConfig] = Field( None, description='Default config for mapping OAuth2 log in response to platform entities', ) authorizationUri: Optional[str] = Field( None, description='Default authorization URI of the OAuth2 provider' ) accessTokenUri: Optional[str] = Field( None, description='Default access token URI of the OAuth2 provider' ) scope: Optional[List[str]] = Field( None, description='Default OAuth scopes that will be requested from OAuth2 platform', ) userInfoUri: Optional[str] = Field( None, description='Default user info URI of the OAuth2 provider' ) userNameAttributeName: Optional[str] = Field( None, description='Default name of the username attribute in OAuth2 provider log in response', ) jwkSetUri: Optional[str] = Field( None, description='Default JSON Web Key URI of the OAuth2 provider' ) clientAuthenticationMethod: Optional[str] = Field( None, description="Default client authentication method to use: 'BASIC' or 'POST'", ) comment: Optional[str] = Field(None, description='Comment for OAuth2 provider') loginButtonIcon: Optional[str] = Field( None, description='Default log in button icon for OAuth2 provider' ) loginButtonLabel: Optional[str] = Field( None, description='Default OAuth2 provider label' ) helpLink: Optional[str] = Field(None, description='Help link for OAuth2 provider') name: Optional[str] = None additionalInfo: Optional[JsonNode] = None class OriginatorEntityOwnerUsersFilter(UsersFilter): pass class OtaPackage(BaseModel): id: Optional[OtaPackageId] = Field( None, description='JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create new ota package.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the ota package creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the ota package can't be changed.", ) deviceProfileId: Optional[DeviceProfileId] = Field( None, description="JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.", ) type: Optional[Type20] = Field( None, description='OTA Package type.', example='FIRMWARE' ) title: Optional[str] = Field(None, description='OTA Package title.', example='fw') version: Optional[str] = Field( None, description='OTA Package version.', example=1.0 ) tag: Optional[str] = Field(None, description='OTA Package tag.', example='fw_1.0') url: Optional[str] = Field( None, description='OTA Package url.', example='http://thingsboard.org/fw/1' ) hasData: Optional[bool] = Field( None, description="Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device or Device Profile.", example=True, ) fileName: Optional[str] = Field( None, description='OTA Package file name.', example='fw_1.0' ) contentType: Optional[str] = Field( None, description='OTA Package content type.', example='APPLICATION_OCTET_STREAM', ) checksumAlgorithm: Optional[ChecksumAlgorithm] = Field( None, description='OTA Package checksum algorithm.', example='CRC32' ) checksum: Optional[str] = Field( None, description='OTA Package checksum.', example='0xd87f7e0c' ) dataSize: Optional[int] = Field( None, description='OTA Package data size.', example=8 ) data: Optional[Data] = None additionalInfo: Optional[JsonNode] = Field( None, description='OTA Package description.', example='Description for the OTA Package fw_1.0', ) class OtaPackageInfo(BaseModel): id: Optional[OtaPackageId] = Field( None, description='JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create new ota package.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the ota package creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the ota package can't be changed.", ) deviceProfileId: Optional[DeviceProfileId] = Field( None, description="JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.", ) type: Optional[Type20] = Field( None, description='OTA Package type.', example='FIRMWARE' ) title: Optional[str] = Field(None, description='OTA Package title.', example='fw') version: Optional[str] = Field( None, description='OTA Package version.', example=1.0 ) tag: Optional[str] = Field(None, description='OTA Package tag.', example='fw_1.0') url: Optional[str] = Field( None, description='OTA Package url.', example='http://thingsboard.org/fw/1' ) hasData: Optional[bool] = Field( None, description="Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device or Device Profile.", example=True, ) fileName: Optional[str] = Field( None, description='OTA Package file name.', example='fw_1.0' ) contentType: Optional[str] = Field( None, description='OTA Package content type.', example='APPLICATION_OCTET_STREAM', ) checksumAlgorithm: Optional[ChecksumAlgorithm] = Field( None, description='OTA Package checksum algorithm.', example='CRC32' ) checksum: Optional[str] = Field( None, description='OTA Package checksum.', example='0xd87f7e0c' ) dataSize: Optional[int] = Field( None, description='OTA Package data size.', example=8 ) additionalInfo: Optional[JsonNode] = Field( None, description='OTA Package description.', example='Description for the OTA Package fw_1.0', ) class PageDataAlarmCommentInfo(BaseModel): data: Optional[List[AlarmCommentInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAlarmData(BaseModel): data: Optional[List[AlarmData]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAlarmInfo(BaseModel): data: Optional[List[AlarmInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAsset(BaseModel): data: Optional[List[Asset]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAssetInfo(BaseModel): data: Optional[List[AssetInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAssetProfile(BaseModel): data: Optional[List[AssetProfile]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAssetProfileInfo(BaseModel): data: Optional[List[AssetProfileInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataAuditLog(BaseModel): data: Optional[List[AuditLog]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataBlobEntityWithCustomerInfo(BaseModel): data: Optional[List[BlobEntityWithCustomerInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataContactBasedObject(BaseModel): data: Optional[List[ContactBasedObject]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataConverter(BaseModel): data: Optional[List[Converter]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataCustomMenuInfo(BaseModel): data: Optional[List[CustomMenuInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataCustomer(BaseModel): data: Optional[List[Customer]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataCustomerInfo(BaseModel): data: Optional[List[CustomerInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataDashboardInfo(BaseModel): data: Optional[List[DashboardInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataDeviceInfo(BaseModel): data: Optional[List[DeviceInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataDeviceProfileInfo(BaseModel): data: Optional[List[DeviceProfileInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataDomainInfo(BaseModel): data: Optional[List[DomainInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEdge(BaseModel): data: Optional[List[Edge]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEdgeEvent(BaseModel): data: Optional[List[EdgeEvent]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEdgeInfo(BaseModel): data: Optional[List[EdgeInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntityData(BaseModel): data: Optional[List[EntityData]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntityGroupInfo(BaseModel): data: Optional[List[EntityGroupInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntitySubtype(BaseModel): data: Optional[List[EntitySubtype]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntityView(BaseModel): data: Optional[List[EntityView]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEntityViewInfo(BaseModel): data: Optional[List[EntityViewInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataEventInfo(BaseModel): data: Optional[List[EventInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataIntegration(BaseModel): data: Optional[List[Integration]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataIntegrationInfo(BaseModel): data: Optional[List[IntegrationInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataMobileApp(BaseModel): data: Optional[List[MobileApp]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataNotification(BaseModel): data: Optional[List[Notification]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataNotificationRuleInfo(BaseModel): data: Optional[List[NotificationRuleInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataOtaPackageInfo(BaseModel): data: Optional[List[OtaPackageInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataShortEntityView(BaseModel): data: Optional[List[ShortEntityView]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataUserInfo(BaseModel): data: Optional[List[UserInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataWidgetTypeInfo(BaseModel): data: Optional[List[WidgetTypeInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PlatformUsersNotificationTargetConfig(NotificationTargetConfig): usersFilter: UsersFilter class ProtoTransportPayloadConfiguration(TransportPayloadTypeConfiguration): deviceTelemetryProtoSchema: Optional[str] = None deviceAttributesProtoSchema: Optional[str] = None deviceRpcRequestProtoSchema: Optional[str] = None deviceRpcResponseProtoSchema: Optional[str] = None enableCompatibilityWithJsonPayloadFormat: Optional[bool] = None useJsonPayloadFormatForDefaultDownlinkTopics: Optional[bool] = None class QrCodeSettings(BaseModel): id: Optional[QrCodeSettingsId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) useSystemSettings: Optional[bool] = Field( None, description='Use settings from system level', example=True ) useDefaultApp: Optional[bool] = Field( None, description='Type of application: true means use default Thingsboard app', example=True, ) mobileAppBundleId: Optional[MobileAppBundleId] = Field( None, description='Mobile app bundle.' ) qrCodeConfig: QRCodeConfig = Field(..., description='QR code config configuration.') androidEnabled: Optional[bool] = Field( None, description='Indicates if google play link is available', example=True ) iosEnabled: Optional[bool] = Field( None, description='Indicates if apple store link is available', example=True ) googlePlayLink: Optional[str] = None appStoreLink: Optional[str] = None class Queue(BaseModel): id: Optional[QueueId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None name: Optional[str] = None topic: Optional[str] = None pollInterval: Optional[int] = None partitions: Optional[int] = None consumerPerPartition: Optional[bool] = None packProcessingTimeout: Optional[int] = None submitStrategy: Optional[SubmitStrategy] = None processingStrategy: Optional[ProcessingStrategy] = None additionalInfo: Optional[JsonNode] = None class QueueStats(BaseModel): id: Optional[QueueStatsId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None queueName: Optional[str] = None serviceId: Optional[str] = None class Role(BaseModel): tenantId: TenantId = Field(..., description='JSON object with Tenant Id.') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id. ' ) name: str = Field(..., description='Role Name', example='Read-Only') type: Type26 = Field( ..., description='Type of the role: generic or group', example='GROUP' ) permissions: Optional[JsonNode] = None version: Optional[int] = None id: Optional[RoleId] = Field( None, description='JSON object with the Role Id. Specify this field to update the Role. Referencing non-existing Role Id will cause error. Omit this field to create new Role.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the role creation, in milliseconds', example=1609459200000, ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the role' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class Rpc(BaseModel): id: Optional[RpcId] = Field( None, description='JSON object with the rpc Id. Referencing non-existing rpc Id will cause error.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the rpc creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) deviceId: Optional[DeviceId] = Field( None, description='JSON object with Device Id.' ) expirationTime: Optional[int] = Field( None, description='Expiration time of the request.' ) request: Optional[JsonNode] = Field( None, description='The request body that will be used to send message to device.', ) response: Optional[JsonNode] = Field( None, description='The response from the device.' ) status: Optional[Status9] = Field( None, description='The current status of the RPC call.' ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional info used in the rule engine to process the updates to the RPC state.', ) class RuleChain(BaseModel): id: Optional[RuleChainId] = Field( None, description='JSON object with the Rule Chain Id. Specify this field to update the Rule Chain. Referencing non-existing Rule Chain Id will cause error. Omit this field to create new rule chain.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the rule chain creation, in milliseconds', example=1609459200000, ) tenantId: TenantId = Field(..., description='JSON object with Tenant Id.') name: str = Field( ..., description='Rule Chain name', example='Humidity data processing' ) type: Optional[Type27] = Field( None, description="Rule Chain type. 'EDGE' rule chains are processing messages on the edge devices only.", example='A4B72CCDFF33', ) firstRuleNodeId: Optional[RuleNodeId] = Field( None, description='JSON object with Rule Chain Id. Pointer to the first rule node that should receive all messages pushed to this rule chain.', ) root: Optional[bool] = Field( None, description='Indicates root rule chain. The root rule chain process messages from all devices and entities by default. User may configure default rule chain per device profile.', ) debugMode: Optional[bool] = Field(None, description='Reserved for future usage.') version: Optional[int] = None configuration: Optional[JsonNode] = None additionalInfo: Optional[JsonNode] = None class RuleChainConnectionInfo(BaseModel): fromIndex: int = Field( ..., description="Index of rule node in the 'nodes' array of the RuleChainMetaData. Indicates the 'from' part of the connection.", ) targetRuleChainId: RuleChainId = Field( ..., description='JSON object with the Rule Chain Id.' ) additionalInfo: JsonNode = Field( ..., description='JSON object with the additional information about the connection.', ) type: str = Field( ..., description="Type of the relation. Typically indicated the result of processing by the 'from' rule node. For example, 'Success' or 'Failure'", ) class RuleChainOutputLabelsUsage(BaseModel): ruleChainId: RuleChainId = Field(..., description='Rule Chain Id') ruleNodeId: RuleNodeId = Field(..., description='Rule Node Id') ruleChainName: str = Field(..., description='Rule Chain Name') ruleNodeName: str = Field(..., description='Rule Node Name') labels: List[str] = Field(..., description='Output labels', Set=True) class RuleNode(BaseModel): id: Optional[RuleNodeId] = Field( None, description='JSON object with the Rule Node Id. Specify this field to update the Rule Node. Referencing non-existing Rule Node Id will cause error. Omit this field to create new rule node.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the rule node creation, in milliseconds', example=1609459200000, ) ruleChainId: Optional[RuleChainId] = Field( None, description='JSON object with the Rule Chain Id. ' ) type: Optional[str] = Field( None, description='Full Java Class Name of the rule node implementation. ', example='com.mycompany.iot.rule.engine.ProcessingNode', ) name: Optional[str] = Field( None, description='User defined name of the rule node. Used on UI and for logging. ', example='Process sensor reading', ) debugMode: Optional[bool] = None debugSettings: Optional[DebugSettings] = Field( None, description='Debug settings object.' ) singletonMode: Optional[bool] = Field( None, description='Enable/disable singleton mode. ', example=False ) queueName: Optional[str] = Field(None, description='Queue name. ', example='Main') configurationVersion: Optional[int] = Field( None, description='Version of rule node configuration. ', example=0 ) externalId: Optional[RuleNodeId] = None configuration: Optional[JsonNode] = None additionalInfo: Optional[JsonNode] = Field( None, description="Additional parameters of the rule node. Contains 'layoutX' and 'layoutY' properties for visualization.", ) class SaveOtaPackageInfoRequest(BaseModel): id: Optional[OtaPackageId] = Field( None, description='JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create new ota package.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the ota package creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the ota package can't be changed.", ) deviceProfileId: Optional[DeviceProfileId] = Field( None, description="JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.", ) type: Optional[Type28] = Field( None, description='OTA Package type.', example='FIRMWARE' ) title: Optional[str] = Field(None, description='OTA Package title.', example='fw') version: Optional[str] = Field( None, description='OTA Package version.', example=1.0 ) tag: Optional[str] = Field(None, description='OTA Package tag.', example='fw_1.0') url: Optional[str] = Field( None, description='OTA Package url.', example='http://thingsboard.org/fw/1' ) hasData: Optional[bool] = Field( None, description="Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device or Device Profile.", example=True, ) fileName: Optional[str] = Field( None, description='OTA Package file name.', example='fw_1.0' ) contentType: Optional[str] = Field( None, description='OTA Package content type.', example='APPLICATION_OCTET_STREAM', ) checksumAlgorithm: Optional[ChecksumAlgorithm] = Field( None, description='OTA Package checksum algorithm.', example='CRC32' ) checksum: Optional[str] = Field( None, description='OTA Package checksum.', example='0xd87f7e0c' ) dataSize: Optional[int] = Field( None, description='OTA Package data size.', example=8 ) usesUrl: Optional[bool] = Field( None, description="Indicates OTA Package uses url. Should be 'true' if uses url or 'false' if will be used data.", example=True, ) additionalInfo: Optional[JsonNode] = Field( None, description='OTA Package description.', example='Description for the OTA Package fw_1.0', ) class SchedulerEvent(BaseModel): id: Optional[SchedulerEventId] = Field( None, description='JSON object with the scheduler event Id. Specify this field to update the scheduler event. Referencing non-existing scheduler event Id will cause error. Omit this field to create new scheduler event', ) createdTime: Optional[int] = Field( None, description='Timestamp of the scheduler event creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) originatorId: Optional[EntityId] = Field( None, description='JSON object with Originator Id' ) name: Optional[str] = Field( None, description='scheduler event name', example='Weekly Dashboard Report' ) type: Optional[str] = Field( None, description='scheduler event type', example='generateReport' ) enabled: Optional[bool] = Field( None, description='Enable/disable scheduler', example=True ) version: Optional[int] = None configuration: Optional[JsonNode] = None additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the scheduler event' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) schedule: Optional[JsonNode] = None class SchedulerEventInfo(BaseModel): id: Optional[SchedulerEventId] = Field( None, description='JSON object with the scheduler event Id. Specify this field to update the scheduler event. Referencing non-existing scheduler event Id will cause error. Omit this field to create new scheduler event', ) createdTime: Optional[int] = Field( None, description='Timestamp of the scheduler event creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) originatorId: Optional[EntityId] = Field( None, description='JSON object with Originator Id' ) name: Optional[str] = Field( None, description='scheduler event name', example='Weekly Dashboard Report' ) type: Optional[str] = Field( None, description='scheduler event type', example='generateReport' ) enabled: Optional[bool] = Field( None, description='Enable/disable scheduler', example=True ) version: Optional[int] = None additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the scheduler event' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) schedule: Optional[JsonNode] = None class SchedulerEventWithCustomerInfo(BaseModel): id: Optional[SchedulerEventId] = Field( None, description='JSON object with the scheduler event Id. Specify this field to update the scheduler event. Referencing non-existing scheduler event Id will cause error. Omit this field to create new scheduler event', ) createdTime: Optional[int] = Field( None, description='Timestamp of the scheduler event creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id' ) originatorId: Optional[EntityId] = Field( None, description='JSON object with Originator Id' ) name: Optional[str] = Field( None, description='scheduler event name', example='Weekly Dashboard Report' ) type: Optional[str] = Field( None, description='scheduler event type', example='generateReport' ) enabled: Optional[bool] = Field( None, description='Enable/disable scheduler', example=True ) version: Optional[int] = None customerTitle: Optional[str] = Field( None, description='Title of the customer', example='Company A' ) customerIsPublic: Optional[bool] = Field( None, description='Parameter that specifies if customer is public' ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the scheduler event' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) schedule: Optional[JsonNode] = None class ScriptCalculatedFieldConfiguration(CalculatedFieldConfiguration): pass class SecuritySettings(BaseModel): passwordPolicy: Optional[UserPasswordPolicy] = Field( None, description='The user password policy object.' ) maxFailedLoginAttempts: Optional[int] = Field( None, description='Maximum number of failed login attempts allowed before user account is locked.', ) userLockoutNotificationEmail: Optional[str] = Field( None, description='Email to use for notifications about locked users.' ) mobileSecretKeyLength: Optional[int] = Field( None, description='Mobile secret key length' ) userActivationTokenTtl: conint(ge=1, le=24) = Field( ..., description='TTL in hours for user activation link' ) passwordResetTokenTtl: conint(ge=1, le=24) = Field( ..., description='TTL in hours for password reset link' ) class SelfRegistrationParams(BaseModel): permissions: Optional[List[GroupPermission]] = None type: Optional[Type29] = None showPrivacyPolicy: Optional[bool] = None showTermsOfUse: Optional[bool] = None title: Optional[str] = None enabled: Optional[bool] = None homeDashboard: Optional[HomeDashboardParams] = None customMenuId: Optional[CustomMenuId] = None notificationRecipient: Optional[NotificationTargetId] = None captcha: Optional[ Union[EnterpriseCaptchaParams, V2CaptchaParams, V3CaptchaParams] ] = None signUpFields: Optional[List[SignUpField]] = None defaultDashboard: Optional[DefaultDashboardParams] = None customerTitlePrefix: Optional[str] = None customerGroupId: Optional[EntityGroupId] = None class SharedAttributesSettingSnmpCommunicationConfig(SnmpCommunicationConfig): mappings: Optional[List[SnmpMapping]] = None class SignUpSelfRegistrationParams(BaseModel): title: Optional[str] = None captcha: Optional[ Union[EnterpriseCaptchaParams, V2CaptchaParams, V3CaptchaParams] ] = None fields: Optional[List[SignUpField]] = None showPrivacyPolicy: Optional[bool] = None showTermsOfUse: Optional[bool] = None class SimpleCalculatedFieldConfiguration(CalculatedFieldConfiguration): pass class SingleEntityVersionCreateRequest(VersionCreateRequest): entityId: Optional[EntityId] = None config: Optional[VersionCreateConfig] = None class SingleEntityVersionLoadRequest(VersionLoadRequest): internalEntityId: Optional[EntityId] = None externalEntityId: Optional[EntityId] = None config: Optional[VersionLoadConfig] = None class SmppSmsProviderConfiguration(SmsProviderConfiguration): protocolVersion: ProtocolVersion = Field(..., description='SMPP version') host: str = Field(..., description='SMPP host') port: int = Field(..., description='SMPP port') systemId: str = Field(..., description='System ID') password: str = Field(..., description='Password') systemType: Optional[str] = Field(None, description='System type') bindType: Optional[BindType] = Field( None, description='TX - Transmitter, RX - Receiver, TRX - Transciever. By default TX is used', ) serviceType: Optional[str] = Field(None, description='Service type') sourceAddress: Optional[str] = Field(None, description='Source address') sourceTon: Optional[str] = Field( None, description='Source TON (Type of Number). Needed is source address is set. 5 by default.\n0 - Unknown\n1 - International\n2 - National\n3 - Network Specific\n4 - Subscriber Number\n5 - Alphanumeric\n6 - Abbreviated', ) sourceNpi: Optional[str] = Field( None, description='Source NPI (Numbering Plan Identification). Needed is source address is set. 0 by default.\n0 - Unknown\n1 - ISDN/telephone numbering plan (E163/E164)\n3 - Data numbering plan (X.121)\n4 - Telex numbering plan (F.69)\n6 - Land Mobile (E.212) =6\n8 - National numbering plan\n9 - Private numbering plan\n10 - ERMES numbering plan (ETSI DE/PS 3 01-3)\n13 - Internet (IP)\n18 - WAP Client Id (to be defined by WAP Forum)', ) destinationTon: Optional[str] = Field( None, description='Destination TON (Type of Number). 5 by default.\n0 - Unknown\n1 - International\n2 - National\n3 - Network Specific\n4 - Subscriber Number\n5 - Alphanumeric\n6 - Abbreviated', ) destinationNpi: Optional[str] = Field( None, description='Destination NPI (Numbering Plan Identification). 0 by default.\n0 - Unknown\n1 - ISDN/telephone numbering plan (E163/E164)\n3 - Data numbering plan (X.121)\n4 - Telex numbering plan (F.69)\n6 - Land Mobile (E.212) =6\n8 - National numbering plan\n9 - Private numbering plan\n10 - ERMES numbering plan (ETSI DE/PS 3 01-3)\n13 - Internet (IP)\n18 - WAP Client Id (to be defined by WAP Forum)', ) addressRange: Optional[str] = Field(None, description='Address range') codingScheme: Optional[CodingScheme] = Field( None, description='0 - SMSC Default Alphabet (ASCII for short and long code and to GSM for toll-free, used as default)\n1 - IA5 (ASCII for short and long code, Latin 9 for toll-free (ISO-8859-9))\n2 - Octet Unspecified (8-bit binary)\n3 - Latin 1 (ISO-8859-1)\n4 - Octet Unspecified (8-bit binary)\n5 - JIS (X 0208-1990)\n6 - Cyrillic (ISO-8859-5)\n7 - Latin/Hebrew (ISO-8859-8)\n8 - UCS2/UTF-16 (ISO/IEC-10646)\n9 - Pictogram Encoding\n10 - Music Codes (ISO-2022-JP)\n13 - Extended Kanji JIS (X 0212-1990)\n14 - Korean Graphic Character Set (KS C 5601/KS X 1001)', ) class SmsTwoFaAccountConfig(TwoFaAccountConfig): phoneNumber: constr(pattern=r'^\+[1-9]\d{1,14}$') class SmsTwoFaProviderConfig(TwoFaProviderConfig): verificationCodeLifetime: Optional[conint(ge=1)] = None smsVerificationMessageTemplate: constr(pattern=r'.*\$\{code}.*') class SpecificTimeSchedule(AlarmSchedule): timezone: Optional[str] = None daysOfWeek: Optional[List[int]] = Field(None, Set=True) startsOn: Optional[int] = None endsOn: Optional[int] = None class SystemAdministratorsFilter(UsersFilter): pass class SystemInfo(BaseModel): systemData: Optional[List[SystemInfoData]] = Field(None, description='System data.') monolith: Optional[bool] = None class TbImageDeleteResult(BaseModel): success: Optional[bool] = None whiteLabelingList: Optional[List[WhiteLabeling]] = None references: Optional[Dict[str, List[HasIdObject]]] = None class TbResource(BaseModel): id: Optional[TbResourceId] = Field( None, description='JSON object with the Resource Id. Specify this field to update the Resource. Referencing non-existing Resource Id will cause error. Omit this field to create new Resource.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the resource creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the resource can't be changed.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Customer Id of the resource can't be changed.", ) title: Optional[str] = Field( None, description='Resource title.', example='BinaryAppDataContainer id=19 v1.0' ) resourceType: Optional[ResourceType] = Field( None, description='Resource type.', example='LWM2M_MODEL' ) resourceSubType: Optional[ResourceSubType] = Field( None, description='Resource sub type.', example='IOT_SVG' ) resourceKey: Optional[str] = Field( None, description='Resource key.', example='19_1.0' ) publicResourceKey: Optional[str] = None etag: Optional[str] = Field( None, description='Resource etag.', example='33a64df551425fcc55e4d42a148795d9f25f89d4', ) fileName: Optional[str] = Field( None, description='Resource file name.', example='19.xml' ) descriptor: Optional[JsonNode] = None data: Optional[str] = Field( None, description='Resource data.', example='77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLQpGSUxFIElORk9STUFUSU9OCgpPTUEgUGVybWFuZW50IERvY3VtZW50CiAgIEZpbGU6IE9NQS1TVVAtTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci1WMV8wXzEtMjAxOTAyMjEtQQogICBUeXBlOiB4bWwKClB1YmxpYyBSZWFjaGFibGUgSW5mb3JtYXRpb24KICAgUGF0aDogaHR0cDovL3d3dy5vcGVubW9iaWxlYWxsaWFuY2Uub3JnL3RlY2gvcHJvZmlsZXMKICAgTmFtZTogTHdNMk1fQmluYXJ5QXBwRGF0YUNvbnRhaW5lci12MV8wXzEueG1sCgpOT1JNQVRJVkUgSU5GT1JNQVRJT04KCiAgSW5mb3JtYXRpb24gYWJvdXQgdGhpcyBmaWxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJldmlzaW9uIG9mCgogIE9NQS1UUy1MV00yTV9CaW5hcnlBcHBEYXRhQ29udGFpbmVyLVYxXzBfMQoKICBUaGlzIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5tb2JpbGVhbGxpYW5jZS5vcmcvCgogIFNlbmQgY29tbWVudHMgdG8gaHR0cHM6Ly9naXRodWIuY29tL09wZW5Nb2JpbGVBbGxpYW5jZS9PTUFfTHdNMk1fZm9yX0RldmVsb3BlcnMvaXNzdWVzCgpDSEFOR0UgSElTVE9SWQoKMTUwNjIwMTggU3RhdHVzIGNoYW5nZWQgdG8gQXBwcm92ZWQgYnkgRE0sIERvYyBSZWYgIyBPTUEtRE0mU0UtMjAxOC0wMDYxLUlOUF9MV00yTV9BUFBEQVRBX1YxXzBfRVJQX2Zvcl9maW5hbF9BcHByb3ZhbAoyMTAyMjAxOSBTdGF0dXMgY2hhbmdlZCB0byBBcHByb3ZlZCBieSBJUFNPLCBEb2MgUmVmICMgT01BLUlQU08tMjAxOS0wMDI1LUlOUF9Md00yTV9PYmplY3RfQXBwX0RhdGFfQ29udGFpbmVyXzFfMF8xX2Zvcl9GaW5hbF9BcHByb3ZhbAoKTEVHQUwgRElTQ0xBSU1FUgoKQ29weXJpZ2h0IDIwMTkgT3BlbiBNb2JpbGUgQWxsaWFuY2UuCgpSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCmFyZSBtZXQ6CgoxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodApub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cm5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cwpjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwoiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVApMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwpGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQpDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULApJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLApCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CkxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOCkFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KClRoZSBhYm92ZSBsaWNlbnNlIGlzIHVzZWQgYXMgYSBsaWNlbnNlIHVuZGVyIGNvcHlyaWdodCBvbmx5LiBQbGVhc2UKcmVmZXJlbmNlIHRoZSBPTUEgSVBSIFBvbGljeSBmb3IgcGF0ZW50IGxpY2Vuc2luZyB0ZXJtczoKaHR0cHM6Ly93d3cub21hc3BlY3dvcmtzLm9yZy9hYm91dC9pbnRlbGxlY3R1YWwtcHJvcGVydHktcmlnaHRzLwoKLS0+CjxMV00yTSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6bm9OYW1lc3BhY2VTY2hlbWFMb2NhdGlvbj0iaHR0cDovL29wZW5tb2JpbGVhbGxpYW5jZS5vcmcvdGVjaC9wcm9maWxlcy9MV00yTS54c2QiPgoJPE9iamVjdCBPYmplY3RUeXBlPSJNT0RlZmluaXRpb24iPgoJCTxOYW1lPkJpbmFyeUFwcERhdGFDb250YWluZXI8L05hbWU+CgkJPERlc2NyaXB0aW9uMT48IVtDREFUQVtUaGlzIEx3TTJNIE9iamVjdHMgcHJvdmlkZXMgdGhlIGFwcGxpY2F0aW9uIHNlcnZpY2UgZGF0YSByZWxhdGVkIHRvIGEgTHdNMk0gU2VydmVyLCBlZy4gV2F0ZXIgbWV0ZXIgZGF0YS4gClRoZXJlIGFyZSBzZXZlcmFsIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlIHRvIGluZGljYXRlIHRoZSBtZXNzYWdlIGRpcmVjdGlvbiBiYXNlZCBvbiB0aGUgbmVnb3RpYXRpb24gYmV0d2VlbiBBcHBsaWNhdGlvbiBhbmQgTHdNMk0uIFRoZSBDbGllbnQgYW5kIFNlcnZlciBzaG91bGQgbmVnb3RpYXRlIHRoZSBpbnN0YW5jZShzKSB1c2VkIHRvIGV4Y2hhbmdlIHRoZSBkYXRhLiBGb3IgZXhhbXBsZToKIC0gVXNpbmcgYSBzaW5nbGUgaW5zdGFuY2UgZm9yIGJvdGggZGlyZWN0aW9ucyBjb21tdW5pY2F0aW9uLCBmcm9tIENsaWVudCB0byBTZXJ2ZXIgYW5kIGZyb20gU2VydmVyIHRvIENsaWVudC4KIC0gVXNpbmcgYW4gaW5zdGFuY2UgZm9yIGNvbW11bmljYXRpb24gZnJvbSBDbGllbnQgdG8gU2VydmVyIGFuZCBhbm90aGVyIG9uZSBmb3IgY29tbXVuaWNhdGlvbiBmcm9tIFNlcnZlciB0byBDbGllbnQKIC0gVXNpbmcgc2V2ZXJhbCBpbnN0YW5jZXMKXV0+PC9EZXNjcmlwdGlvbjE+CgkJPE9iamVjdElEPjE5PC9PYmplY3RJRD4KCQk8T2JqZWN0VVJOPnVybjpvbWE6bHdtMm06b21hOjE5PC9PYmplY3RVUk4+CgkJPExXTTJNVmVyc2lvbj4xLjA8L0xXTTJNVmVyc2lvbj4KCQk8T2JqZWN0VmVyc2lvbj4xLjA8L09iamVjdFZlcnNpb24+CgkJPE11bHRpcGxlSW5zdGFuY2VzPk11bHRpcGxlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJPFJlc291cmNlcz4KCQkJPEl0ZW0gSUQ9IjAiPjxOYW1lPkRhdGE8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5NdWx0aXBsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk1hbmRhdG9yeTwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+T3BhcXVlPC9UeXBlPgoJCQkJPFJhbmdlRW51bWVyYXRpb24gLz4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgYXBwbGljYXRpb24gZGF0YSBjb250ZW50Ll1dPjwvRGVzY3JpcHRpb24+CgkJCTwvSXRlbT4KCQkJPEl0ZW0gSUQ9IjEiPjxOYW1lPkRhdGEgUHJpb3JpdHk8L05hbWU+CgkJCQk8T3BlcmF0aW9ucz5SVzwvT3BlcmF0aW9ucz4KCQkJCTxNdWx0aXBsZUluc3RhbmNlcz5TaW5nbGU8L011bHRpcGxlSW5zdGFuY2VzPgoJCQkJPE1hbmRhdG9yeT5PcHRpb25hbDwvTWFuZGF0b3J5PgoJCQkJPFR5cGU+SW50ZWdlcjwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjEgYnl0ZXM8L1JhbmdlRW51bWVyYXRpb24+CgkJCQk8VW5pdHMgLz4KCQkJCTxEZXNjcmlwdGlvbj48IVtDREFUQVtJbmRpY2F0ZXMgdGhlIEFwcGxpY2F0aW9uIGRhdGEgcHJpb3JpdHk6CjA6SW1tZWRpYXRlCjE6QmVzdEVmZm9ydAoyOkxhdGVzdAozLTEwMDogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuCjEwMS0yNTQ6IFByb3ByaWV0YXJ5IG1vZGUuXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iMiI+PE5hbWU+RGF0YSBDcmVhdGlvbiBUaW1lPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlRpbWU8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbiAvPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBEYXRhIGluc3RhbmNlIGNyZWF0aW9uIHRpbWVzdGFtcC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSIzIj48TmFtZT5EYXRhIERlc2NyaXB0aW9uPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPlN0cmluZzwvVHlwZT4KCQkJCTxSYW5nZUVudW1lcmF0aW9uPjMyIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkYXRhIGRlc2NyaXB0aW9uLgplLmcuICJtZXRlciByZWFkaW5nIi5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+CgkJCTxJdGVtIElEPSI0Ij48TmFtZT5EYXRhIEZvcm1hdDwvTmFtZT4KCQkJCTxPcGVyYXRpb25zPlJXPC9PcGVyYXRpb25zPgoJCQkJPE11bHRpcGxlSW5zdGFuY2VzPlNpbmdsZTwvTXVsdGlwbGVJbnN0YW5jZXM+CgkJCQk8TWFuZGF0b3J5Pk9wdGlvbmFsPC9NYW5kYXRvcnk+CgkJCQk8VHlwZT5TdHJpbmc8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4zMiBieXRlczwvUmFuZ2VFbnVtZXJhdGlvbj4KCQkJCTxVbml0cyAvPgoJCQkJPERlc2NyaXB0aW9uPjwhW0NEQVRBW0luZGljYXRlcyB0aGUgZm9ybWF0IG9mIHRoZSBBcHBsaWNhdGlvbiBEYXRhLgplLmcuIFlHLU1ldGVyLVdhdGVyLVJlYWRpbmcKVVRGOC1zdHJpbmcKXV0+PC9EZXNjcmlwdGlvbj4KCQkJPC9JdGVtPgoJCQk8SXRlbSBJRD0iNSI+PE5hbWU+QXBwIElEPC9OYW1lPgoJCQkJPE9wZXJhdGlvbnM+Ulc8L09wZXJhdGlvbnM+CgkJCQk8TXVsdGlwbGVJbnN0YW5jZXM+U2luZ2xlPC9NdWx0aXBsZUluc3RhbmNlcz4KCQkJCTxNYW5kYXRvcnk+T3B0aW9uYWw8L01hbmRhdG9yeT4KCQkJCTxUeXBlPkludGVnZXI8L1R5cGU+CgkJCQk8UmFuZ2VFbnVtZXJhdGlvbj4yIGJ5dGVzPC9SYW5nZUVudW1lcmF0aW9uPgoJCQkJPFVuaXRzIC8+CgkJCQk8RGVzY3JpcHRpb24+PCFbQ0RBVEFbSW5kaWNhdGVzIHRoZSBkZXN0aW5hdGlvbiBBcHBsaWNhdGlvbiBJRC5dXT48L0Rlc2NyaXB0aW9uPgoJCQk8L0l0ZW0+PC9SZXNvdXJjZXM+CgkJPERlc2NyaXB0aW9uMj48IVtDREFUQVtdXT48L0Rlc2NyaXB0aW9uMj4KCTwvT2JqZWN0Pgo8L0xXTTJNPgo=', ) preview: Optional[str] = None name: Optional[str] = None public: Optional[bool] = None link: Optional[str] = None publicLink: Optional[str] = None class TbResourceInfo(BaseModel): id: Optional[TbResourceId] = Field( None, description='JSON object with the Resource Id. Specify this field to update the Resource. Referencing non-existing Resource Id will cause error. Omit this field to create new Resource.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the resource creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Tenant Id of the resource can't be changed.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Customer Id of the resource can't be changed.", ) title: Optional[str] = Field( None, description='Resource title.', example='BinaryAppDataContainer id=19 v1.0' ) resourceType: Optional[ResourceType] = Field( None, description='Resource type.', example='LWM2M_MODEL' ) resourceSubType: Optional[ResourceSubType] = Field( None, description='Resource sub type.', example='IOT_SVG' ) resourceKey: Optional[str] = Field( None, description='Resource key.', example='19_1.0' ) publicResourceKey: Optional[str] = None etag: Optional[str] = Field( None, description='Resource etag.', example='33a64df551425fcc55e4d42a148795d9f25f89d4', ) fileName: Optional[str] = Field( None, description='Resource file name.', example='19.xml' ) descriptor: Optional[JsonNode] = None name: Optional[str] = None public: Optional[bool] = None link: Optional[str] = None publicLink: Optional[str] = None class Tenant(BaseModel): id: Optional[TenantId] = Field( None, description='JSON object with the tenant Id. Specify this field to update the tenant. Referencing non-existing tenant Id will cause error. Omit this field to create new tenant.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the tenant creation, in milliseconds', example=1609459200000, ) country: Optional[str] = Field(None, description='Country', example='US') state: Optional[str] = Field(None, description='State', example='NY') city: Optional[str] = Field(None, description='City', example='New York') address: Optional[str] = Field(None, description='Address Line 1', example=42) address2: Optional[str] = Field(None, description='Address Line 2') zip: Optional[str] = Field(None, description='Zip code', example=10004) phone: Optional[str] = Field( None, description='Phone number', example='+1(415)777-7777' ) email: Optional[str] = Field( None, description='Email', example='example@company.com' ) title: str = Field(..., description='Title of the tenant', example='Company A') region: Optional[str] = Field( None, description='Geo region of the tenant', example='North America' ) tenantProfileId: Optional[TenantProfileId] = Field( None, description='JSON object with Tenant Profile Id' ) version: Optional[int] = None active: Optional[bool] = None lastInactiveTs: Optional[int] = None currentPeriodStartTs: Optional[int] = None name: Optional[str] = Field( None, description='Name of the tenant. Read-only, duplicated from title for backward compatibility', example='Company A', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) class TenantAdministratorsFilter(UsersFilter): tenantsIds: Optional[List[UUID]] = Field(None, Set=True) tenantProfilesIds: Optional[List[UUID]] = Field(None, Set=True) class TenantInfo(BaseModel): id: Optional[TenantId] = Field( None, description='JSON object with the tenant Id. Specify this field to update the tenant. Referencing non-existing tenant Id will cause error. Omit this field to create new tenant.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the tenant creation, in milliseconds', example=1609459200000, ) country: Optional[str] = Field(None, description='Country', example='US') state: Optional[str] = Field(None, description='State', example='NY') city: Optional[str] = Field(None, description='City', example='New York') address: Optional[str] = Field(None, description='Address Line 1', example=42) address2: Optional[str] = Field(None, description='Address Line 2') zip: Optional[str] = Field(None, description='Zip code', example=10004) phone: Optional[str] = Field( None, description='Phone number', example='+1(415)777-7777' ) email: Optional[str] = Field( None, description='Email', example='example@company.com' ) title: str = Field(..., description='Title of the tenant', example='Company A') region: Optional[str] = Field( None, description='Geo region of the tenant', example='North America' ) tenantProfileId: Optional[TenantProfileId] = Field( None, description='JSON object with Tenant Profile Id' ) version: Optional[int] = None active: Optional[bool] = None lastInactiveTs: Optional[int] = None currentPeriodStartTs: Optional[int] = None tenantProfileName: Optional[str] = Field( None, description='Tenant Profile name', example='Default' ) name: Optional[str] = Field( None, description='Name of the tenant. Read-only, duplicated from title for backward compatibility', example='Company A', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) class TenantProfileData(BaseModel): configuration: Optional[DefaultTenantProfileConfiguration] = Field( None, description='Complex JSON object that contains profile settings: max devices, max assets, rate limits, etc.', ) queueConfiguration: Optional[List[TenantProfileQueueConfiguration]] = Field( None, description='JSON array of queue configuration per tenant profile' ) class TestSmsRequest(BaseModel): providerConfiguration: Optional[ Union[ AwsSnsSmsProviderConfiguration, SmppSmsProviderConfiguration, TwilioSmsProviderConfiguration, ] ] = Field(None, description='The SMS provider configuration') numberTo: Optional[str] = Field( None, description='The phone number or other identifier to specify as a recipient of the SMS.', ) message: Optional[str] = Field(None, description='The test message') class TotpTwoFaAccountConfig(TwoFaAccountConfig): authUrl: constr(pattern=r'otpauth://totp/(\S+?):(\S+?)\?issuer=(\S+?)&secret=(\w+?)') class TotpTwoFaProviderConfig(TwoFaProviderConfig): issuerName: str class User(BaseModel): id: Optional[UserId] = Field( None, description='JSON object with the User Id. Specify this field to update the device. Referencing non-existing User Id will cause error. Omit this field to create new customer.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the user creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with the Tenant Id.' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with the Customer Id.' ) email: str = Field(..., description='Email of the user', example='user@example.com') authority: Authority = Field( ..., description='Authority', example='SYS_ADMIN, TENANT_ADMIN or CUSTOMER_USER' ) firstName: Optional[str] = Field( None, description='First name of the user', example='John' ) lastName: Optional[str] = Field( None, description='Last name of the user', example='Doe' ) phone: Optional[str] = Field( None, description='Phone number of the user', example=38012345123 ) customMenuId: Optional[CustomMenuId] = None version: Optional[int] = None name: Optional[str] = Field( None, description='Duplicates the email of the user, readonly', example='user@example.com', ) additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the user' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) class UserEmailInfo(BaseModel): id: Optional[UserId] = Field(None, description='User id') email: Optional[str] = Field( None, description='User email', example='john@gmail.com' ) firstName: Optional[str] = Field( None, description='User first name', example='John' ) lastName: Optional[str] = Field(None, description='User last name', example='Brown') class UserGroupListFilter(UsersFilter): groupsIds: List[UUID] class UserListFilter(UsersFilter): usersIds: List[UUID] class UserMobileInfo(BaseModel): user: Optional[User] = None storeInfo: Optional[StoreInfo] = None versionInfo: Optional[MobileAppVersionInfo] = None homeDashboardInfo: Optional[HomeDashboardInfo] = None pages: Optional[JsonNode] = None class UserRoleFilter(UsersFilter): rolesIds: List[UUID] class WebSelfRegistrationParams(SelfRegistrationParams): enabled: Optional[bool] = Field( None, description='Indicates if self-registration is allowed via sign-up form' ) title: str = Field(..., description='The text message to appear on login form') captcha: CaptchaParams = Field( ..., description="Captcha site key for 'I'm not a robot' validation" ) signUpFields: List[SignUpField] = Field( ..., description='List of sign-up form fields' ) showPrivacyPolicy: Optional[bool] = Field( None, description="Show or hide 'Privacy Policy'" ) showTermsOfUse: Optional[bool] = Field( None, description="Show or hide 'Terms of Use'" ) notificationRecipient: Optional[NotificationTargetId] = Field( None, description='Recipient to use for notifications when new user self-registered.', ) customerTitlePrefix: Optional[str] = Field( None, description='Prefix to add to created customer' ) customerGroupId: Optional[EntityGroupId] = Field( None, description='Id of the customer group customer wil be added to.' ) permissions: List[GroupPermission] = Field( ..., description='Group Permissions to assign for the new customer user.' ) defaultDashboard: Optional[DefaultDashboardParams] = Field( None, description='Default dashboard params' ) homeDashboard: Optional[HomeDashboardParams] = Field( None, description='Home dashboard params' ) customMenuId: Optional[CustomMenuId] = Field(None, description='Custom menu id') privacyPolicy: Optional[str] = Field( None, description='Privacy policy text. Supports HTML.' ) termsOfUse: Optional[str] = Field( None, description='Terms of User text. Supports HTML.' ) domainId: DomainId = Field( ..., description='Domain name for self registration URL. Typically this matches the domain name from the Login White Labeling page.', ) class WidgetType(BaseModel): id: Optional[WidgetTypeId] = Field( None, description='JSON object with the Widget Type Id. Specify this field to update the Widget Type. Referencing non-existing Widget Type Id will cause error. Omit this field to create new Widget Type.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Widget Type creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) fqn: Optional[str] = Field( None, description='Unique FQN that is used in dashboards as a reference widget type', ) name: Optional[str] = Field(None, description='Widget name used in search and UI') deprecated: Optional[bool] = Field( None, description='Whether widget type is deprecated.', example=True ) scada: Optional[bool] = Field( None, description='Whether widget type is SCADA symbol.', example=True ) version: Optional[int] = None descriptor: Optional[JsonNode] = None class WidgetTypeDetails(BaseModel): fqn: Optional[str] = Field( None, description='Unique FQN that is used in dashboards as a reference widget type', ) name: Optional[str] = Field(None, description='Widget name used in search and UI') deprecated: Optional[bool] = Field( None, description='Whether widget type is deprecated.', example=True ) image: Optional[str] = Field( None, description="Relative or external image URL. Replaced with image data URL (Base64) in case of relative URL and 'inlineImages' option enabled.", ) description: Optional[str] = Field(None, description='Description of the widget') descriptor: Optional[JsonNode] = None resources: Optional[List[ResourceExportData]] = None id: Optional[WidgetTypeId] = Field( None, description='JSON object with the Widget Type Id. Specify this field to update the Widget Type. Referencing non-existing Widget Type Id will cause error. Omit this field to create new Widget Type.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Widget Type creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) scada: Optional[bool] = Field( None, description='Whether widget type is SCADA symbol.', example=True ) version: Optional[int] = None tags: Optional[List[str]] = Field(None, description='Tags of the widget type') class WidgetsBundle(BaseModel): id: Optional[WidgetsBundleId] = Field( None, description='JSON object with the Widget Bundle Id. Specify this field to update the Widget Bundle. Referencing non-existing Widget Bundle Id will cause error. Omit this field to create new Widget Bundle.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the Widget Bundle creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id.' ) alias: Optional[str] = Field( None, description='Unique alias that is used in widget types as a reference widget bundle', ) title: Optional[str] = Field(None, description='Title used in search and UI') image: Optional[str] = Field( None, description="Relative or external image URL. Replaced with image data URL (Base64) in case of relative URL and 'inlineImages' option enabled.", ) scada: Optional[bool] = Field( None, description='Whether widgets bundle contains SCADA symbol widget types.' ) description: Optional[str] = Field(None, description='Description') order: Optional[int] = Field(None, description='Order') version: Optional[int] = None name: Optional[str] = Field( None, description="Same as title of the Widget Bundle. Read-only field. Update the 'title' to change the 'name' of the Widget Bundle.", ) class AccountTwoFaSettings(BaseModel): configs: Optional[ Dict[ str, Union[ BackupCodeTwoFaAccountConfig, EmailTwoFaAccountConfig, SmsTwoFaAccountConfig, TotpTwoFaAccountConfig, ], ] ] = None class AlarmConditionFilter(BaseModel): key: Optional[AlarmConditionFilterKey] = Field( None, description='JSON object for specifying alarm condition by specific key' ) valueType: Optional[ValueType] = Field( None, description='String representation of the type of the value', example='NUMERIC', ) value: Optional[Any] = Field( None, description='Value used in Constant comparison. For other types, such as TIME_SERIES or ATTRIBUTE, the predicate condition is used', ) predicate: Optional[ Union[ BooleanFilterPredicate, ComplexFilterPredicate, NumericFilterPredicate, StringFilterPredicate, ] ] = Field(None, description='JSON object representing filter condition') class AlarmCountQuery(BaseModel): startTs: Optional[int] = None endTs: Optional[int] = None timeWindow: Optional[int] = None typeList: Optional[List[str]] = None statusList: Optional[List[StatusListEnum]] = None severityList: Optional[List[SeverityListEnum]] = None searchPropagatedAlarms: Optional[bool] = None assigneeId: Optional[UserId] = None entityFilter: Optional[ Union[ ApiUsageStateFilter, AssetSearchQueryFilter, AssetTypeFilter, DeviceSearchQueryFilter, DeviceTypeFilter, EdgeSearchQueryFilter, EdgeTypeFilter, EntitiesByGroupNameFilter, EntityGroupFilter, EntityGroupListFilter, EntityGroupNameFilter, EntityListFilter, EntityNameFilter, EntityTypeFilter, EntityViewSearchQueryFilter, EntityViewTypeFilter, RelationsQueryFilter, SchedulerEventFilter, SingleEntityFilter, StateEntityOwnerFilter, ] ] = None keyFilters: Optional[List[KeyFilter]] = None class AlarmDataPageLink(BaseModel): startTs: Optional[int] = None endTs: Optional[int] = None timeWindow: Optional[int] = None typeList: Optional[List[str]] = None statusList: Optional[List[StatusListEnum]] = None severityList: Optional[List[SeverityListEnum]] = None searchPropagatedAlarms: Optional[bool] = None assigneeId: Optional[UserId] = None pageSize: Optional[int] = None page: Optional[int] = None textSearch: Optional[str] = None sortOrder: Optional[EntityDataSortOrder] = None dynamic: Optional[bool] = None class AlarmDataQuery(BaseModel): entityFilter: Optional[ Union[ ApiUsageStateFilter, AssetSearchQueryFilter, AssetTypeFilter, DeviceSearchQueryFilter, DeviceTypeFilter, EdgeSearchQueryFilter, EdgeTypeFilter, EntitiesByGroupNameFilter, EntityGroupFilter, EntityGroupListFilter, EntityGroupNameFilter, EntityListFilter, EntityNameFilter, EntityTypeFilter, EntityViewSearchQueryFilter, EntityViewTypeFilter, RelationsQueryFilter, SchedulerEventFilter, SingleEntityFilter, StateEntityOwnerFilter, ] ] = None keyFilters: Optional[List[KeyFilter]] = None pageLink: Optional[AlarmDataPageLink] = None entityFields: Optional[List[EntityKey]] = None latestValues: Optional[List[EntityKey]] = None alarmFields: Optional[List[EntityKey]] = None class CalculatedField(BaseModel): id: Optional[CalculatedFieldId] = Field( None, description='JSON object with the Calculated Field Id. Referencing non-existing Calculated Field Id will cause error.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the calculated field creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = None entityId: Optional[EntityId] = None type: Optional[Type4] = None name: Optional[str] = Field( None, description='User defined name of the calculated field.' ) debugMode: Optional[bool] = None debugSettings: Optional[DebugSettings] = Field( None, description='Debug settings object.' ) configurationVersion: Optional[int] = Field( None, description='Version of calculated field configuration.', example=0 ) configuration: Optional[ Union[ScriptCalculatedFieldConfiguration, SimpleCalculatedFieldConfiguration] ] = None version: Optional[int] = None class CustomMenuConfig(BaseModel): items: List[Union[CustomMenuItem, DefaultMenuItem, HomeMenuItem]] = Field( ..., description='List of custom menu items' ) class Device(BaseModel): id: Optional[DeviceId] = Field( None, description='JSON object with the Device Id. Specify this field to update the Device. Referencing non-existing Device Id will cause error. Omit this field to create new Device.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the device creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.", ) customerId: Optional[CustomerId] = Field( None, description="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.", ) name: Optional[str] = Field( None, description='Unique Device Name in scope of Tenant', example='A4B72CCDFF33', ) type: Optional[str] = Field( None, description='Device Profile Name', example='Temperature Sensor' ) label: Optional[str] = Field( None, description='Label that may be used in widgets', example='Room 234 Sensor' ) deviceProfileId: DeviceProfileId = Field( ..., description='JSON object with Device Profile Id.' ) firmwareId: Optional[OtaPackageId] = Field( None, description='JSON object with Ota Package Id.' ) softwareId: Optional[OtaPackageId] = Field( None, description='JSON object with Ota Package Id.' ) version: Optional[int] = None additionalInfo: Optional[JsonNode] = Field( None, description='Additional parameters of the device' ) ownerId: Optional[EntityId] = Field( None, description='JSON object with Customer or Tenant Id' ) deviceData: Optional[DeviceData] = Field( None, description='JSON object with content specific to type of transport in the device profile.', ) class EntityCountQuery(BaseModel): entityFilter: Optional[ Union[ ApiUsageStateFilter, AssetSearchQueryFilter, AssetTypeFilter, DeviceSearchQueryFilter, DeviceTypeFilter, EdgeSearchQueryFilter, EdgeTypeFilter, EntitiesByGroupNameFilter, EntityGroupFilter, EntityGroupListFilter, EntityGroupNameFilter, EntityListFilter, EntityNameFilter, EntityTypeFilter, EntityViewSearchQueryFilter, EntityViewTypeFilter, RelationsQueryFilter, SchedulerEventFilter, SingleEntityFilter, StateEntityOwnerFilter, ] ] = None keyFilters: Optional[List[KeyFilter]] = None class EntityDataPageLink(BaseModel): pageSize: Optional[int] = None page: Optional[int] = None textSearch: Optional[str] = None sortOrder: Optional[EntityDataSortOrder] = None dynamic: Optional[bool] = None class EntityDataQuery(BaseModel): entityFilter: Optional[ Union[ ApiUsageStateFilter, AssetSearchQueryFilter, AssetTypeFilter, DeviceSearchQueryFilter, DeviceTypeFilter, EdgeSearchQueryFilter, EdgeTypeFilter, EntitiesByGroupNameFilter, EntityGroupFilter, EntityGroupListFilter, EntityGroupNameFilter, EntityListFilter, EntityNameFilter, EntityTypeFilter, EntityViewSearchQueryFilter, EntityViewTypeFilter, RelationsQueryFilter, SchedulerEventFilter, SingleEntityFilter, StateEntityOwnerFilter, ] ] = None keyFilters: Optional[List[KeyFilter]] = None pageLink: Optional[EntityDataPageLink] = None entityFields: Optional[List[EntityKey]] = None latestValues: Optional[List[EntityKey]] = None class EntityExportDataObject(BaseModel): entityType: Optional[EntityType13] = None entity: Optional[Any] = None relations: Optional[List[EntityRelation]] = None attributes: Optional[Dict[str, List[AttributeExportData]]] = None calculatedFields: Optional[List[CalculatedField]] = None class EntityGroupExportData(EntityExportDataObject): entity: Optional[EntityGroup] = None permissions: Optional[List[GroupPermission]] = None groupEntities: Optional[bool] = None class GroupEntityExportData(EntityExportDataObject): entity: Optional[ExportableEntityEntityId] = None class GroupPermissionInfo(BaseModel): id: Optional[GroupPermissionId] = Field( None, description='JSON object with the Group Permission Id. Specify this field to update the Group Permission. Referencing non-existing Group Permission Id will cause error. Omit this field to create new Group Permission.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the group permission creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with the Tenant Id.' ) userGroupId: Optional[EntityGroupId] = Field( None, description='JSON object with the User Group Id. Represent user group that will have permissions to perform operations against corresponding Entity Group.', ) roleId: Optional[RoleId] = Field( None, description='JSON object with the Role Id. Represent set of permissions.' ) entityGroupId: Optional[EntityGroupId] = Field( None, description='JSON object with the Entity Group Id. Represent entity (device, asset, etc.) group.', ) entityGroupType: Optional[EntityGroupType] = Field( None, description='Type of the entities in the group: DEVICE, ASSET, CUSTOMER, etc.', ) role: Optional[Role] = Field(None, description='Represent set of permissions.') entityGroupName: Optional[str] = Field(None, description='Entity Group Name.') entityGroupOwnerId: Optional[EntityId] = Field( None, description='Entity Group Owner Id (Tenant or Customer).' ) entityGroupOwnerName: Optional[str] = Field( None, description='Name of the entity group owner (Tenant or Customer title).' ) userGroupName: Optional[str] = Field(None, description='User Group Name.') userGroupOwnerId: Optional[EntityId] = Field( None, description='User Group Owner Id (Tenant or Customer).' ) userGroupOwnerName: Optional[str] = Field( None, description='Name of the user group owner (Tenant or Customer title).' ) readOnly: Optional[bool] = None name: Optional[str] = Field( None, description='Name of the Group Permissions. Auto-generated' ) public: Optional[bool] = None class LoginMobileInfo(BaseModel): oAuth2ClientLoginInfos: Optional[List[OAuth2ClientLoginInfo]] = None selfRegistrationParams: Optional[SignUpSelfRegistrationParams] = None storeInfo: Optional[StoreInfo] = None versionInfo: Optional[MobileAppVersionInfo] = None class MobileSelfRegistrationParams(SelfRegistrationParams): enabled: Optional[bool] = Field( None, description='Indicates if self-registration is allowed via sign-up form' ) title: str = Field(..., description='The text message to appear on login form') captcha: CaptchaParams = Field( ..., description="Captcha site key for 'I'm not a robot' validation" ) signUpFields: List[SignUpField] = Field( ..., description='List of sign-up form fields' ) showPrivacyPolicy: Optional[bool] = Field( None, description="Show or hide 'Privacy Policy'" ) showTermsOfUse: Optional[bool] = Field( None, description="Show or hide 'Terms of Use'" ) notificationRecipient: Optional[NotificationTargetId] = Field( None, description='Recipient to use for notifications when new user self-registered.', ) customerTitlePrefix: Optional[str] = Field( None, description='Prefix to add to created customer' ) customerGroupId: Optional[EntityGroupId] = Field( None, description='Id of the customer group customer wil be added to.' ) permissions: List[GroupPermission] = Field( ..., description='Group Permissions to assign for the new customer user.' ) defaultDashboard: Optional[DefaultDashboardParams] = Field( None, description='Default dashboard params' ) homeDashboard: Optional[HomeDashboardParams] = Field( None, description='Home dashboard params' ) customMenuId: Optional[CustomMenuId] = Field(None, description='Custom menu id') privacyPolicy: Optional[str] = Field( None, description='Privacy policy text. Supports HTML.' ) termsOfUse: Optional[str] = Field( None, description='Terms of User text. Supports HTML.' ) redirect: MobileRedirectParams = Field(..., description='Mobile redirect params.') class NotificationTarget(BaseModel): id: Optional[NotificationTargetId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None name: str configuration: Union[ MicrosoftTeamsNotificationTargetConfig, PlatformUsersNotificationTargetConfig, SlackNotificationTargetConfig, ] class NotificationTemplate(BaseModel): id: Optional[NotificationTemplateId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None name: str notificationType: NotificationType configuration: NotificationTemplateConfig class PageDataCalculatedField(BaseModel): data: Optional[List[CalculatedField]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataDevice(BaseModel): data: Optional[List[Device]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataNotificationTarget(BaseModel): data: Optional[List[NotificationTarget]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataNotificationTemplate(BaseModel): data: Optional[List[NotificationTemplate]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataQueue(BaseModel): data: Optional[List[Queue]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataQueueStats(BaseModel): data: Optional[List[QueueStats]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataRole(BaseModel): data: Optional[List[Role]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataRuleChain(BaseModel): data: Optional[List[RuleChain]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataSchedulerEventInfo(BaseModel): data: Optional[List[SchedulerEventInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataTbResourceInfo(BaseModel): data: Optional[List[TbResourceInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataTenant(BaseModel): data: Optional[List[Tenant]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataTenantInfo(BaseModel): data: Optional[List[TenantInfo]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataUser(BaseModel): data: Optional[List[User]] = Field(None, description='Array of the entities') totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataUserEmailInfo(BaseModel): data: Optional[List[UserEmailInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataWidgetsBundle(BaseModel): data: Optional[List[WidgetsBundle]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PlatformTwoFaSettings(BaseModel): useSystemTwoFactorAuthSettings: Optional[bool] = None providers: List[ Union[ BackupCodeTwoFaProviderConfig, EmailTwoFaProviderConfig, SmsTwoFaProviderConfig, TotpTwoFaProviderConfig, ] ] minVerificationCodeSendPeriod: conint(ge=5) verificationCodeCheckRateLimit: Optional[constr(pattern=r'[1-9]\d*:[1-9]\d*')] = None maxVerificationFailuresBeforeUserLockout: Optional[conint(ge=0)] = None totalAllowedTimeForVerification: conint(ge=60) class RuleChainMetaData(BaseModel): ruleChainId: RuleChainId = Field(..., description='JSON object with Rule Chain Id.') version: Optional[int] = Field( None, description='Version of the Rule Chain' ) firstNodeIndex: int = Field( ..., description="Index of the first rule node in the 'nodes' list" ) nodes: List[RuleNode] = Field(..., description='List of rule node JSON objects') connections: List[NodeConnectionInfo] = Field( ..., description='List of JSON objects that represent connections between rule nodes', ) ruleChainConnections: List[RuleChainConnectionInfo] = Field( ..., description='List of JSON objects that represent connections between rule nodes and other rule chains.', ) class SaveDeviceWithCredentialsRequest(BaseModel): device: Device = Field(..., description='The JSON with device entity.') credentials: DeviceCredentials = Field( ..., description='The JSON with credentials entity.' ) class TenantProfile(BaseModel): id: Optional[TenantProfileId] = Field( None, description='JSON object with the tenant profile Id. Specify this field to update the tenant profile. Referencing non-existing tenant profile Id will cause error. Omit this field to create new tenant profile.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the tenant profile creation, in milliseconds', example=1609459200000, ) name: Optional[str] = Field( None, description='Name of the tenant profile', example='High Priority Tenants' ) description: Optional[str] = Field( None, description='Description of the tenant profile', example='Any text' ) isolatedTbRuleEngine: Optional[bool] = Field( None, description='If enabled, will push all messages related to this tenant and processed by the rule engine into separate queue. Useful for complex microservices deployments, to isolate processing of the data for specific tenants', example=False, ) profileData: Optional[TenantProfileData] = None default: Optional[bool] = Field( None, description='Default Tenant profile to be used.', example=False ) class WidgetTypeExportData(EntityExportDataObject): entity: Optional[WidgetTypeDetails] = None class WidgetsBundleExportData(EntityExportDataObject): entity: Optional[WidgetsBundle] = None widgets: Optional[List[Dict[str, Any]]] = None fqns: Optional[List[str]] = None class AlarmCondition(BaseModel): condition: Optional[List[AlarmConditionFilter]] = Field( None, description='JSON array of alarm condition filters' ) spec: Optional[ Union[ DurationAlarmConditionSpec, RepeatingAlarmConditionSpec, SimpleAlarmConditionSpec, ] ] = Field(None, description='JSON object representing alarm condition type') class AlarmRule(BaseModel): condition: Optional[AlarmCondition] = Field( None, description='JSON object representing the alarm rule condition' ) schedule: Optional[ Union[AnyTimeSchedule, CustomTimeSchedule, SpecificTimeSchedule] ] = Field( None, description='JSON object representing time interval during which the rule is active', ) alarmDetails: Optional[str] = Field( None, description='String value representing the additional details for an alarm rule', ) dashboardId: Optional[DashboardId] = Field( None, description='JSON object with the dashboard Id representing the reference to alarm details dashboard used by mobile application', ) class CustomMenu(BaseModel): id: Optional[CustomMenuId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id that owns the menu.' ) customerId: Optional[CustomerId] = Field( None, description='JSON object with Customer Id that owns the menu.' ) name: str = Field( ..., description='Custom menu name', example='Customer A custom menu' ) scope: Scope1 = Field( ..., description='Custom menu scope. Possible values: SYSTEM, TENANT, CUSTOMER', example='TENANT', ) assigneeType: AssigneeType = Field( ..., description='Custom menu assignee type. Possible values are: All (all users of specified scope), CUSTOMERS (specified customers), USERS (specified list of users), NO_ASSIGN (no assignees)', example='ALL', ) config: Optional[CustomMenuConfig] = Field( None, description='Custom menu configuration' ) class DeviceExportData(EntityExportDataObject): entity: Optional[Device] = None credentials: Optional[DeviceCredentials] = None class DeviceProfileAlarm(BaseModel): id: Optional[str] = Field( None, description='String value representing the alarm rule id', example='highTemperatureAlarmID', ) alarmType: Optional[str] = Field( None, description='String value representing type of the alarm', example='High Temperature Alarm', ) createRules: Optional[Dict[str, AlarmRule]] = Field( None, description='Complex JSON object representing create alarm rules. The unique create alarm rule can be created for each alarm severity type. There can be 5 create alarm rules configured per a single alarm type. See method implementation notes and AlarmRule model for more details', ) clearRule: Optional[AlarmRule] = Field( None, description='JSON object representing clear alarm rule' ) propagate: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to parent entities of alarm originator', example=True, ) propagateToOwner: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) of alarm originator', example=True, ) propagateToOwnerHierarchy: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) and all parent owners in the customer hierarchy', example=True, ) propagateToTenant: Optional[bool] = Field( None, description='Propagation flag to specify if alarm should be propagated to the tenant entity', example=True, ) propagateRelationTypes: Optional[List[str]] = Field( None, description="JSON array of relation types that should be used for propagation. By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.", ) class DeviceProfileData(BaseModel): configuration: Optional[DefaultDeviceProfileConfiguration] = Field( None, description='JSON object of device profile configuration' ) transportConfiguration: Optional[ Union[ CoapDeviceProfileTransportConfiguration, DefaultDeviceProfileTransportConfiguration, Lwm2mDeviceProfileTransportConfiguration, MqttDeviceProfileTransportConfiguration, SnmpDeviceProfileTransportConfiguration, ] ] = Field(None, description='JSON object of device profile transport configuration') provisionConfiguration: Optional[ Union[ AllowCreateNewDevicesDeviceProfileProvisionConfiguration, CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration, DisabledDeviceProfileProvisionConfiguration, X509CertificateChainProvisionConfiguration, ] ] = Field( None, description='JSON object of provisioning strategy type per device profile' ) alarms: Optional[List[DeviceProfileAlarm]] = Field( None, description='JSON array of alarm rules configuration per device profile' ) class MobileAppBundle(BaseModel): id: Optional[MobileAppBundleId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') title: str = Field(..., description='Application bundle title. Cannot be empty') description: Optional[str] = Field( None, description='Application bundle description.' ) androidAppId: Optional[MobileAppId] = Field( None, description='Android application id' ) iosAppId: Optional[MobileAppId] = Field(None, description='IOS application id') layoutConfig: Optional[MobileLayoutConfig] = Field( None, description='Application layout configuration' ) selfRegistrationParams: Optional[MobileSelfRegistrationParams] = Field( None, description='Application self registration configuration' ) oauth2Enabled: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled or not' ) name: Optional[str] = Field( None, description='Mobile app bundle title', example='My main application' ) class MobileAppBundleInfo(BaseModel): id: Optional[MobileAppBundleId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = Field(None, description='JSON object with Tenant Id') title: str = Field(..., description='Application bundle title. Cannot be empty') description: Optional[str] = Field( None, description='Application bundle description.' ) androidAppId: Optional[MobileAppId] = Field( None, description='Android application id' ) iosAppId: Optional[MobileAppId] = Field(None, description='IOS application id') layoutConfig: Optional[MobileLayoutConfig] = Field( None, description='Application layout configuration' ) selfRegistrationParams: Optional[MobileSelfRegistrationParams] = Field( None, description='Application self registration configuration' ) oauth2Enabled: Optional[bool] = Field( None, description='Whether OAuth2 settings are enabled or not' ) androidPkgName: Optional[str] = Field(None, description='Android package name') iosPkgName: Optional[str] = Field(None, description='IOS package name') oauth2ClientInfos: Optional[List[OAuth2ClientInfo]] = Field( None, description='List of available oauth2 clients' ) qrCodeEnabled: Optional[bool] = Field( None, description='Indicates if qr code is available for bundle' ) name: Optional[str] = Field( None, description='Mobile app bundle title', example='My main application' ) class NotificationRequest(BaseModel): tenantId: Optional[TenantId] = None targets: List[UUID] templateId: Optional[NotificationTemplateId] = None template: Optional[NotificationTemplate] = None info: Optional[NotificationInfo] = None additionalConfig: Optional[NotificationRequestConfig] = None originatorEntityId: Optional[EntityId] = None ruleId: Optional[NotificationRuleId] = None status: Optional[Status7] = None stats: Optional[NotificationRequestStats] = None id: Optional[NotificationRequestId] = None createdTime: Optional[int] = None class NotificationRequestInfo(BaseModel): id: Optional[NotificationRequestId] = None createdTime: Optional[int] = None tenantId: Optional[TenantId] = None targets: List[UUID] templateId: Optional[NotificationTemplateId] = None template: Optional[NotificationTemplate] = None info: Optional[NotificationInfo] = None additionalConfig: Optional[NotificationRequestConfig] = None originatorEntityId: Optional[EntityId] = None ruleId: Optional[NotificationRuleId] = None status: Optional[Status7] = None stats: Optional[NotificationRequestStats] = None templateName: Optional[str] = None deliveryMethods: Optional[List[DeliveryMethod]] = None class PageDataMobileAppBundleInfo(BaseModel): data: Optional[List[MobileAppBundleInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataNotificationRequestInfo(BaseModel): data: Optional[List[NotificationRequestInfo]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class PageDataTenantProfile(BaseModel): data: Optional[List[TenantProfile]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) class RuleChainData(BaseModel): ruleChains: List[RuleChain] = Field( ..., description='List of the Rule Chain objects.' ) metadata: List[RuleChainMetaData] = Field( ..., description='List of the Rule Chain metadata objects.' ) class RuleChainExportData(EntityExportDataObject): entity: Optional[RuleChain] = None metaData: Optional[RuleChainMetaData] = None class DeviceProfile(BaseModel): id: Optional[DeviceProfileId] = Field( None, description='JSON object with the device profile Id. Specify this field to update the device profile. Referencing non-existing device profile Id will cause error. Omit this field to create new device profile.', ) createdTime: Optional[int] = Field( None, description='Timestamp of the profile creation, in milliseconds', example=1609459200000, ) tenantId: Optional[TenantId] = Field( None, description='JSON object with Tenant Id that owns the profile.' ) name: Optional[str] = Field( None, description='Unique Device Profile Name in scope of Tenant.', example='Moisture Sensor', ) description: Optional[str] = Field(None, description='Device Profile description. ') image: Optional[str] = Field( None, description='Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view. ', ) type: Optional[Type8] = Field( None, description="Type of the profile. Always 'DEFAULT' for now. Reserved for future use.", ) transportType: Optional[TransportType] = Field( None, description='Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.', ) provisionType: Optional[ProvisionType] = Field( None, description='Provisioning strategy.' ) defaultRuleChainId: Optional[RuleChainId] = Field( None, description='Reference to the rule chain. If present, the specified rule chain will be used to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the root rule chain will be used to process those messages.', ) defaultDashboardId: Optional[DashboardId] = Field( None, description='Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.', ) defaultQueueName: Optional[str] = Field( None, description="Rule engine queue name. If present, the specified queue will be used to store all unprocessed messages related to device, including telemetry, attribute updates, etc. Otherwise, the 'Main' queue will be used to store those messages.", ) provisionDeviceKey: Optional[str] = Field( None, description="Unique provisioning key used by 'Device Provisioning' feature.", ) firmwareId: Optional[OtaPackageId] = Field( None, description='Reference to the firmware OTA package. If present, the specified package will be used as default device firmware. ', ) softwareId: Optional[OtaPackageId] = Field( None, description='Reference to the software OTA package. If present, the specified package will be used as default device software. ', ) defaultEdgeRuleChainId: Optional[RuleChainId] = Field( None, description='Reference to the edge rule chain. If present, the specified edge rule chain will be used on the edge to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the edge root rule chain will be used to process those messages.', ) version: Optional[int] = None default: Optional[bool] = Field( None, description='Used to mark the default profile. Default profile is used when the device profile is not specified during device creation.', ) profileData: Optional[DeviceProfileData] = Field( None, description='Complex JSON object that includes addition device profile configuration (transport, alarm rules, etc).', ) class EntityDataDiff(BaseModel): currentVersion: Optional[ Union[ EntityExportDataObject, DeviceExportData, EntityGroupExportData, GroupEntityExportData, RuleChainExportData, WidgetTypeExportData, WidgetsBundleExportData, ] ] = None otherVersion: Optional[ Union[ EntityExportDataObject, DeviceExportData, EntityGroupExportData, GroupEntityExportData, RuleChainExportData, WidgetTypeExportData, WidgetsBundleExportData, ] ] = None class PageDataDeviceProfile(BaseModel): data: Optional[List[DeviceProfile]] = Field( None, description='Array of the entities' ) totalPages: Optional[int] = Field( None, description="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria", ) totalElements: Optional[int] = Field( None, description='Total number of elements in all available pages' ) hasNext: Optional[bool] = Field( None, description="'false' value indicates the end of the result set" ) CustomMenuItem.update_forward_refs() DefaultMenuItem.update_forward_refs()