openapi: 3.1.0 info: title: ThingsBoard Admin admin-controller component-descriptor-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: component-descriptor-controller description: Component Descriptor paths: /api/components: get: tags: - component-descriptor-controller summary: Get Component Descriptors (getComponentDescriptorsByTypes) description: 'Gets the Component Descriptors using coma separated list of rule node types and optional rule chain type request parameters. Each Component Descriptor represents configuration of specific rule node (e.g. ''Save Timeseries'' or ''Send Email''.). The Component Descriptors are used by the rule chain Web UI to build the configuration forms for the rule nodes. The Component Descriptors are discovered at runtime by scanning the class path and searching for @RuleNode annotation. Once discovered, the up to date list of descriptors is persisted to the database. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: getComponentDescriptorsByTypes parameters: - name: componentTypes in: query description: List of types of the Rule Nodes, (ENRICHMENT, FILTER, TRANSFORMATION, ACTION or EXTERNAL) required: true schema: type: array items: type: string - name: ruleChainType in: query description: Type of the Rule Chain required: false schema: type: string enum: - CORE - EDGE responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ComponentDescriptor' /api/components/{componentType}: get: tags: - component-descriptor-controller summary: Get Component Descriptors (getComponentDescriptorsByType) description: 'Gets the Component Descriptors using rule node type and optional rule chain type request parameters. Each Component Descriptor represents configuration of specific rule node (e.g. ''Save Timeseries'' or ''Send Email''.). The Component Descriptors are used by the rule chain Web UI to build the configuration forms for the rule nodes. The Component Descriptors are discovered at runtime by scanning the class path and searching for @RuleNode annotation. Once discovered, the up to date list of descriptors is persisted to the database. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: getComponentDescriptorsByType parameters: - name: componentType in: path description: Type of the Rule Node required: true schema: type: string enum: - ENRICHMENT - FILTER - TRANSFORMATION - ACTION - EXTERNAL - name: ruleChainType in: query description: Type of the Rule Chain required: false schema: type: string enum: - CORE - EDGE responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/ComponentDescriptor' /api/component/{componentDescriptorClazz}: get: tags: - component-descriptor-controller summary: Get Component Descriptor (getComponentDescriptorByClazz) description: 'Gets the Component Descriptor object using class name from the path parameters. Each Component Descriptor represents configuration of specific rule node (e.g. ''Save Timeseries'' or ''Send Email''.). The Component Descriptors are used by the rule chain Web UI to build the configuration forms for the rule nodes. The Component Descriptors are discovered at runtime by scanning the class path and searching for @RuleNode annotation. Once discovered, the up to date list of descriptors is persisted to the database. Available for users with ''SYS_ADMIN'' or ''TENANT_ADMIN'' authority.' operationId: getComponentDescriptorByClazz parameters: - name: componentDescriptorClazz in: path description: Component Descriptor class name required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ComponentDescriptor' components: schemas: JsonNode: description: A value representing the any type (object or primitive) examples: - {} ComponentDescriptorId: type: object properties: id: type: string format: uuid description: string example: 784f394c-42b6-435a-983c-b7beff2784f9 required: - id ComponentDescriptor: type: object properties: id: $ref: '#/components/schemas/ComponentDescriptorId' 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: type: integer format: int64 description: Timestamp of the descriptor creation, in milliseconds example: 1609459200000 readOnly: true type: type: string description: Type of the Rule Node enum: - ENRICHMENT - FILTER - TRANSFORMATION - ACTION - EXTERNAL - FLOW readOnly: true scope: type: string description: Scope of the Rule Node. Always set to 'TENANT', since no rule chains on the 'SYSTEM' level yet. enum: - TENANT example: TENANT readOnly: true clusteringMode: type: string description: Clustering mode of the RuleNode. This mode represents the ability to start Rule Node in multiple microservices. enum: - USER_PREFERENCE - ENABLED - SINGLETON example: ENABLED readOnly: true name: type: string description: Name of the Rule Node. Taken from the @RuleNode annotation. example: Custom Rule Node readOnly: true clazz: type: string description: Full name of the Java class that implements the Rule Engine Node interface. example: com.mycompany.CustomRuleNode readOnly: true configurationVersion: type: integer format: int32 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. readOnly: true actions: type: string description: Rule Node Actions. Deprecated. Always null. readOnly: true hasQueueName: type: boolean description: Indicates that the RuleNode supports queue name configuration. example: true readOnly: true configurationDescriptor: $ref: '#/components/schemas/JsonNode' 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