openapi: 3.1.0 info: title: ThingsBoard Admin admin-controller tb-resource-controller API description: 'ThingsBoard Admin API — subset of the ThingsBoard REST API (open-source IoT platform). Covers: Admin, Audit Log, Event, Usage Info, Queue, Queue Stats, Mail Config Template, Qr Code Settings, Job.' version: 4.3.0.3DEMO contact: name: ThingsBoard team url: https://thingsboard.io email: info@thingsboard.io license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://demo.thingsboard.io description: ThingsBoard Live Demo - url: http://localhost:8080 description: Local ThingsBoard server tags: - name: tb-resource-controller description: Tb Resource paths: /api/resource/{id}/info: put: tags: - tb-resource-controller operationId: updateResourceInfo parameters: - name: id in: path description: Unique identifier of the Resource to update required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' /api/resource/{id}/data: put: tags: - tb-resource-controller operationId: updateResourceData parameters: - name: id in: path description: Unique identifier of the Resource to update required: true schema: type: string format: uuid requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary description: Resource file. required: - file responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' /api/resource: get: tags: - tb-resource-controller summary: Get Resource Infos by Ids (getSystemOrTenantResourcesByIds) description: "Returns a page of Resource Info objects owned by tenant or sysadmin. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details. Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: getResources parameters: - name: pageSize in: query description: Maximum amount of entities in a one page required: true schema: type: integer format: int32 - name: page in: query description: Sequence number of page starting from 0 required: true schema: type: integer format: int32 - name: resourceType in: query description: A string value representing the resource type. required: false schema: type: string enum: - LWM2M_MODEL - JKS - PKCS_12 - JS_MODULE - name: resourceSubType in: query description: A string value representing the resource sub-type. required: false schema: type: string enum: - EXTENSION - MODULE - name: textSearch in: query description: The case insensitive 'substring' filter based on the resource title. required: false schema: type: string - name: sortProperty in: query description: Property of entity to sort by required: false schema: type: string enum: - createdTime - title - resourceType - tenantId - name: sortOrder in: query description: Sort order. ASC (ASCENDING) or DESC (DESCENDING) required: false schema: type: string enum: - ASC - DESC - name: resourceIds in: query description: A list of resource ids, separated by comma ',' required: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: oneOf: - type: array items: $ref: '#/components/schemas/TbResourceInfo' - $ref: '#/components/schemas/PageDataTbResourceInfo' post: tags: - tb-resource-controller summary: Create or Update Resource (saveResource) description: "Create or update the Resource. When creating the Resource, platform generates Resource id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)). The newly created Resource id will be present in the response. Specify existing Resource id to update the Resource. Referencing non-existing Resource Id will cause 'Not Found' error. \n\nResource combination of the title with the key is unique in the scope of tenant. Remove 'id', 'tenantId' from the request body example (below) to create new Resource entity.\n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: saveResource requestBody: content: application/json: schema: $ref: '#/components/schemas/TbResource' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' deprecated: true /api/resource/upload: post: tags: - tb-resource-controller summary: Upload Resource Via Multipart File (uploadResource) description: "Create the Resource using multipart file upload. \n\nResource combination of the title with the key is unique in the scope of tenant. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: uploadResource requestBody: content: multipart/form-data: schema: type: object properties: title: type: string description: Resource title. resourceType: type: string description: Resource type. descriptor: type: string description: Resource descriptor (JSON). resourceSubType: type: string description: Resource sub type. file: type: string format: binary description: Resource file. required: - file - resourceType responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' /api/resource/{resourceType}/{scope}/{key}: get: tags: - tb-resource-controller summary: Download Resource (downloadResource) description: 'Download resource with a given type and key for the given scope Available for any authorized user. ' operationId: downloadResourceIfChanged parameters: - name: resourceType in: path description: Type of the resource required: true schema: type: string enum: - lwm2m_model - jks - pkcs_12 - js_module - dashboard - name: scope in: path description: Scope of the resource required: true schema: type: string enum: - system - tenant - name: key in: path description: Key of the resource, e.g. 'extension.js' required: true schema: type: string - name: If-None-Match in: header required: false schema: type: string responses: '200': description: OK content: application/json: schema: type: string format: binary /api/resource/{resourceType}/{scope}/{key}/info: get: tags: - tb-resource-controller summary: Get Resource Info (getResourceInfo) description: "Get info for the resource with the given type, scope and key. Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: getResourceInfo parameters: - name: resourceType in: path description: Type of the resource required: true schema: type: string enum: - lwm2m_model - jks - pkcs_12 - js_module - dashboard - name: scope in: path description: Scope of the resource required: true schema: type: string enum: - system - tenant - name: key in: path description: Key of the resource, e.g. 'extension.js' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' /api/resource/{resourceId}: get: tags: - tb-resource-controller summary: Get Resource (getResourceById) description: "Fetch the Resource object based on the provided Resource Id. Resource is a heavyweight object that includes main information about the Resource and also data. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: getResourceById parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResource' deprecated: true delete: tags: - tb-resource-controller summary: Delete Resource (deleteResource) description: 'Deletes the Resource. Referencing non-existing Resource Id will cause an error. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: deleteResource parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string - name: force in: query required: false schema: type: boolean responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceDeleteResult' /api/resource/{resourceId}/download: get: tags: - tb-resource-controller summary: Download Resource (downloadResource) description: 'Download Resource based on the provided Resource Id. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: downloadResource parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/json: schema: type: string format: binary /api/resource/tenant: get: tags: - tb-resource-controller summary: Get All Resource Infos (getAllResources) description: "Returns a page of Resource Info objects owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details. Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. \n\nAvailable for users with 'TENANT_ADMIN' authority." operationId: getTenantResources parameters: - name: pageSize in: query description: Maximum amount of entities in a one page required: true schema: type: integer format: int32 - name: page in: query description: Sequence number of page starting from 0 required: true schema: type: integer format: int32 - name: textSearch in: query description: The case insensitive 'substring' filter based on the resource title. required: false schema: type: string - name: sortProperty in: query description: Property of entity to sort by required: false schema: type: string enum: - createdTime - title - resourceType - tenantId - name: sortOrder in: query description: Sort order. ASC (ASCENDING) or DESC (DESCENDING) required: false schema: type: string enum: - ASC - DESC responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PageDataTbResourceInfo' /api/resource/pkcs12/{resourceId}/download: get: tags: - tb-resource-controller summary: Download PKCS_12 Resource (downloadPkcs12ResourceIfChanged) description: 'Download Resource based on the provided Resource Id or return 304 status code if resource was not changed. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: downloadPkcs12ResourceIfChanged parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string - name: If-None-Match in: header required: false schema: type: string responses: '200': description: OK content: application/x-pkcs12: schema: type: string format: binary /api/resource/lwm2m: get: tags: - tb-resource-controller summary: Get LwM2M Objects (getLwm2mListObjects) description: "Returns a page of LwM2M objects parsed from Resources with type 'LWM2M_MODEL' owned by tenant or sysadmin. You can specify parameters to filter the results. LwM2M Object is a object that includes information about the LwM2M model which can be used in transport configuration for the LwM2M device profile. \n\nAvailable for users with 'TENANT_ADMIN' authority." operationId: getLwm2mListObjects parameters: - name: sortOrder in: query description: Sort order. ASC (ASCENDING) or DESC (DESCENDING) required: true schema: type: string enum: - ASC - DESC - name: sortProperty in: query description: Property of entity to sort by required: true schema: type: string enum: - id - name - name: objectIds in: query description: LwM2M Object ids. required: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/LwM2mObject' /api/resource/lwm2m/{resourceId}/download: get: tags: - tb-resource-controller summary: Download LWM2M Resource (downloadLwm2mResourceIfChanged) description: 'Download Resource based on the provided Resource Id or return 304 status code if resource was not changed. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: downloadLwm2mResourceIfChanged parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string - name: If-None-Match in: header required: false schema: type: string responses: '200': description: OK content: application/xml: schema: type: string format: binary /api/resource/lwm2m/page: get: tags: - tb-resource-controller summary: Get LwM2M Objects (getLwm2mListObjectsPage) description: "Returns a page of LwM2M objects parsed from Resources with type 'LWM2M_MODEL' owned by tenant or sysadmin. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using pagination. See response schema for more details. LwM2M Object is a object that includes information about the LwM2M model which can be used in transport configuration for the LwM2M device profile. \n\nAvailable for users with 'TENANT_ADMIN' authority." operationId: getLwm2mListObjectsPage parameters: - name: pageSize in: query description: Maximum amount of entities in a one page required: true schema: type: integer format: int32 - name: page in: query description: Sequence number of page starting from 0 required: true schema: type: integer format: int32 - name: textSearch in: query description: The case insensitive 'substring' filter based on the resource title. required: false schema: type: string - name: sortProperty in: query description: Property of entity to sort by required: false schema: type: string enum: - id - name - name: sortOrder in: query description: Sort order. ASC (ASCENDING) or DESC (DESCENDING) required: false schema: type: string enum: - ASC - DESC responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/LwM2mObject' /api/resource/js/{resourceId}/download: get: tags: - tb-resource-controller summary: Download JS Resource (downloadJsResourceIfChanged) description: 'Download Resource based on the provided Resource Id or return 304 status code if resource was not changed. Available for any authorized user. ' operationId: downloadJsResourceIfChanged parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string - name: If-None-Match in: header required: false schema: type: string responses: '200': description: OK content: application/javascript: schema: type: string format: binary /api/resource/jks/{resourceId}/download: get: tags: - tb-resource-controller summary: Download JKS Resource (downloadJksResourceIfChanged) description: 'Download Resource based on the provided Resource Id or return 304 status code if resource was not changed. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: downloadJksResourceIfChanged parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string - name: If-None-Match in: header required: false schema: type: string responses: '200': description: OK content: application/x-java-keystore: schema: type: string format: binary /api/resource/info/{resourceId}: get: tags: - tb-resource-controller summary: Get Resource Info (getResourceInfoById) description: "Fetch the Resource Info object based on the provided Resource Id. Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. \n\nAvailable for users with 'SYS_ADMIN' or 'TENANT_ADMIN' authority." operationId: getResourceInfoById parameters: - name: resourceId in: path description: A string value representing the resource id. For example, '784f394c-42b6-435a-983c-b7beff2784f9' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TbResourceInfo' components: schemas: TbResourceInfo: type: object description: A JSON value representing the Resource Info. properties: id: $ref: '#/components/schemas/TbResourceId' 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: type: integer format: int64 description: Timestamp of the resource creation, in milliseconds example: 1609459200000 readOnly: true tenantId: $ref: '#/components/schemas/TenantId' description: JSON object with Tenant Id. Tenant Id of the resource can't be changed. readOnly: true title: type: string description: Resource title. example: BinaryAppDataContainer id=19 v1.0 resourceType: type: string description: Resource type. enum: - LWM2M_MODEL - JKS - PKCS_12 - JS_MODULE - IMAGE - DASHBOARD - GENERAL example: LWM2M_MODEL readOnly: true resourceSubType: type: string description: Resource sub type. enum: - IMAGE - SCADA_SYMBOL - EXTENSION - MODULE example: IOT_SVG readOnly: true resourceKey: type: string description: Resource key. example: '19_1.0' readOnly: true publicResourceKey: type: string etag: type: string description: Resource etag. example: 33a64df551425fcc55e4d42a148795d9f25f89d4 readOnly: true fileName: type: string description: Resource file name. example: 19.xml readOnly: true descriptor: $ref: '#/components/schemas/JsonNode' name: type: string readOnly: true public: type: boolean link: type: string readOnly: true publicLink: type: string readOnly: true JsonNode: description: A value representing the any type (object or primitive) examples: - {} TbResourceId: type: object properties: id: type: string format: uuid description: ID of the entity, time-based UUID v1 example: 784f394c-42b6-435a-983c-b7beff2784f9 entityType: type: string description: string enum: - TB_RESOURCE example: TB_RESOURCE required: - entityType - id EntityInfo: type: object properties: id: $ref: '#/components/schemas/EntityId' description: 'JSON object with the entity Id. ' name: type: string description: Entity Name PageDataTbResourceInfo: type: object properties: data: type: array description: Array of the entities items: $ref: '#/components/schemas/TbResourceInfo' readOnly: true totalPages: type: integer format: int32 description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria readOnly: true totalElements: type: integer format: int64 description: Total number of elements in all available pages readOnly: true hasNext: type: boolean description: '''false'' value indicates the end of the result set' readOnly: true LwM2mResourceObserve: type: object properties: id: type: integer format: int32 description: LwM2M Resource Observe id. example: 0 name: type: string description: LwM2M Resource Observe name. example: Data observe: type: boolean description: LwM2M Resource Observe observe. example: false attribute: type: boolean description: LwM2M Resource Observe attribute. example: false telemetry: type: boolean description: LwM2M Resource Observe telemetry. example: false keyName: type: string description: LwM2M Resource Observe key name. example: data TenantId: type: object properties: id: type: string format: uuid description: ID of the entity, time-based UUID v1 example: 784f394c-42b6-435a-983c-b7beff2784f9 entityType: type: string description: string enum: - TENANT example: TENANT required: - entityType - id LwM2mObject: type: object properties: id: type: integer format: int32 description: LwM2M Object id. example: 19 keyId: type: string description: LwM2M Object key id. example: '19_1.0' name: type: string description: LwM2M Object name. example: BinaryAppDataContainer multiple: type: boolean description: LwM2M Object multiple. example: true mandatory: type: boolean description: LwM2M Object mandatory. example: false instances: type: array description: LwM2M Object instances. items: $ref: '#/components/schemas/LwM2mInstance' LwM2mInstance: type: object properties: id: type: integer format: int32 description: LwM2M Instance id. example: 0 resources: type: array description: LwM2M Resource observe. items: $ref: '#/components/schemas/LwM2mResourceObserve' TbResourceDeleteResult: type: object properties: success: type: boolean references: type: object additionalProperties: type: array items: $ref: '#/components/schemas/EntityInfo' TbResource: type: object description: A JSON value representing the Resource. properties: id: $ref: '#/components/schemas/TbResourceId' 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: type: integer format: int64 description: Timestamp of the resource creation, in milliseconds example: 1609459200000 readOnly: true tenantId: $ref: '#/components/schemas/TenantId' description: JSON object with Tenant Id. Tenant Id of the resource can't be changed. readOnly: true title: type: string description: Resource title. example: BinaryAppDataContainer id=19 v1.0 resourceType: type: string description: Resource type. enum: - LWM2M_MODEL - JKS - PKCS_12 - JS_MODULE - IMAGE - DASHBOARD - GENERAL example: LWM2M_MODEL readOnly: true resourceSubType: type: string description: Resource sub type. enum: - IMAGE - SCADA_SYMBOL - EXTENSION - MODULE example: IOT_SVG readOnly: true resourceKey: type: string description: Resource key. example: '19_1.0' readOnly: true publicResourceKey: type: string etag: type: string description: Resource etag. example: 33a64df551425fcc55e4d42a148795d9f25f89d4 readOnly: true fileName: type: string description: Resource file name. example: 19.xml readOnly: true descriptor: $ref: '#/components/schemas/JsonNode' data: type: string 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: type: string name: type: string readOnly: true public: type: boolean link: type: string readOnly: true publicLink: type: string readOnly: true EntityId: type: object properties: id: type: string format: uuid description: ID of the entity, time-based UUID v1 example: 784f394c-42b6-435a-983c-b7beff2784f9 entityType: type: string enum: - TENANT - CUSTOMER - USER - DASHBOARD - ASSET - DEVICE - ALARM - RULE_CHAIN - RULE_NODE - ENTITY_VIEW - WIDGETS_BUNDLE - WIDGET_TYPE - TENANT_PROFILE - DEVICE_PROFILE - ASSET_PROFILE - API_USAGE_STATE - TB_RESOURCE - OTA_PACKAGE - EDGE - RPC - QUEUE - NOTIFICATION_TARGET - NOTIFICATION_TEMPLATE - NOTIFICATION_REQUEST - NOTIFICATION - NOTIFICATION_RULE - QUEUE_STATS - OAUTH2_CLIENT - DOMAIN - MOBILE_APP - MOBILE_APP_BUNDLE - CALCULATED_FIELD - JOB - ADMIN_SETTINGS - AI_MODEL - API_KEY example: DEVICE required: - entityType - id securitySchemes: HTTP login form: type: http description: Enter Username / Password scheme: loginPassword bearerFormat: /api/auth/login|X-Authorization API key form: type: apiKey description: 'Enter the API key value with ''ApiKey'' prefix in format: **ApiKey ** Example: **ApiKey tb_5te51SkLRYpjGrujUGwqkjFvooWBlQpVe2An2Dr3w13wjfxDW**
**NOTE**: Use only ONE authentication method at a time. If both are authorized, JWT auth takes the priority.
' name: X-Authorization in: header