thingsboard-cli 4.3.1.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- thingsboard_cli/__init__.py +8 -0
- thingsboard_cli/commands/__init__.py +0 -0
- thingsboard_cli/commands/_pagination.py +93 -0
- thingsboard_cli/commands/alarm.py +297 -0
- thingsboard_cli/commands/alarm_rule.py +288 -0
- thingsboard_cli/commands/asset.py +262 -0
- thingsboard_cli/commands/asset_profile.py +179 -0
- thingsboard_cli/commands/attributes.py +276 -0
- thingsboard_cli/commands/calculated_field.py +276 -0
- thingsboard_cli/commands/config.py +494 -0
- thingsboard_cli/commands/customer.py +232 -0
- thingsboard_cli/commands/dashboard.py +282 -0
- thingsboard_cli/commands/device.py +301 -0
- thingsboard_cli/commands/device_profile.py +192 -0
- thingsboard_cli/commands/emulator.py +230 -0
- thingsboard_cli/commands/entity_group.py +461 -0
- thingsboard_cli/commands/extension.py +1364 -0
- thingsboard_cli/commands/project.py +1018 -0
- thingsboard_cli/commands/pull.py +841 -0
- thingsboard_cli/commands/relation.py +287 -0
- thingsboard_cli/commands/role.py +181 -0
- thingsboard_cli/commands/rule_chain.py +258 -0
- thingsboard_cli/commands/solution.py +194 -0
- thingsboard_cli/commands/telemetry.py +402 -0
- thingsboard_cli/commands/user.py +247 -0
- thingsboard_cli/common/__init__.py +0 -0
- thingsboard_cli/common/options.py +97 -0
- thingsboard_cli/common/utils.py +81 -0
- thingsboard_cli/config/__init__.py +0 -0
- thingsboard_cli/config/manager.py +100 -0
- thingsboard_cli/config/models.py +46 -0
- thingsboard_cli/config/resolver.py +75 -0
- thingsboard_cli/core/__init__.py +0 -0
- thingsboard_cli/core/analytics.py +341 -0
- thingsboard_cli/core/assembler.py +93 -0
- thingsboard_cli/core/client.py +115 -0
- thingsboard_cli/core/debug.py +143 -0
- thingsboard_cli/core/decomposer.py +431 -0
- thingsboard_cli/core/emulator/__init__.py +12 -0
- thingsboard_cli/core/emulator/generators.py +400 -0
- thingsboard_cli/core/emulator/models.py +173 -0
- thingsboard_cli/core/emulator/runtime.py +45 -0
- thingsboard_cli/core/exceptions.py +35 -0
- thingsboard_cli/core/extension_manifest.py +613 -0
- thingsboard_cli/core/extension_starter_unpacker.py +493 -0
- thingsboard_cli/core/git_dirty.py +118 -0
- thingsboard_cli/core/interactive_pull/__init__.py +41 -0
- thingsboard_cli/core/interactive_pull/app.py +1028 -0
- thingsboard_cli/core/interactive_pull/confirm.py +168 -0
- thingsboard_cli/core/interactive_pull/formatting.py +130 -0
- thingsboard_cli/core/interactive_pull/listing.py +140 -0
- thingsboard_cli/core/interactive_pull/loader.py +185 -0
- thingsboard_cli/core/interactive_pull/owner.py +150 -0
- thingsboard_cli/core/interactive_pull/picker.tcss +176 -0
- thingsboard_cli/core/interactive_pull/rows.py +66 -0
- thingsboard_cli/core/interactive_pull/search.py +120 -0
- thingsboard_cli/core/interactive_pull/sections.py +40 -0
- thingsboard_cli/core/interactive_pull/state.py +111 -0
- thingsboard_cli/core/interactive_pull/theme.py +41 -0
- thingsboard_cli/core/local.py +1080 -0
- thingsboard_cli/core/maven_runner.py +59 -0
- thingsboard_cli/core/output.py +265 -0
- thingsboard_cli/core/payload.py +59 -0
- thingsboard_cli/core/resolver.py +110 -0
- thingsboard_cli/core/resources.py +96 -0
- thingsboard_cli/core/scaffold.py +224 -0
- thingsboard_cli/core/update.py +253 -0
- thingsboard_cli/extension-starter/.env.example +22 -0
- thingsboard_cli/extension-starter/.gitignore +6 -0
- thingsboard_cli/extension-starter/.license-header +13 -0
- thingsboard_cli/extension-starter/.snapshot.json +5 -0
- thingsboard_cli/extension-starter/Dockerfile +28 -0
- thingsboard_cli/extension-starter/LICENSE +201 -0
- thingsboard_cli/extension-starter/README.md +526 -0
- thingsboard_cli/extension-starter/compose.yaml +40 -0
- thingsboard_cli/extension-starter/deploy/.env.example +21 -0
- thingsboard_cli/extension-starter/deploy/docker-compose.yml +43 -0
- thingsboard_cli/extension-starter/deploy/haproxy-extension.cfg.snippet +23 -0
- thingsboard_cli/extension-starter/docs/tb-message-types.md +674 -0
- thingsboard_cli/extension-starter/examples/pom.xml +73 -0
- thingsboard_cli/extension-starter/examples/src/main/java/org/thingsboard/extension/examples/BillingController.java +68 -0
- thingsboard_cli/extension-starter/examples/src/main/java/org/thingsboard/extension/examples/DeviceHealthCheckTask.java +70 -0
- thingsboard_cli/extension-starter/examples/src/main/java/org/thingsboard/extension/examples/TelemetryUnitConversionController.java +87 -0
- thingsboard_cli/extension-starter/examples/src/main/java/org/thingsboard/extension/examples/TenantReportController.java +72 -0
- thingsboard_cli/extension-starter/examples/src/test/java/org/thingsboard/extension/examples/BillingControllerTest.java +57 -0
- thingsboard_cli/extension-starter/examples/src/test/java/org/thingsboard/extension/examples/DeviceHealthCheckTaskTest.java +52 -0
- thingsboard_cli/extension-starter/examples/src/test/java/org/thingsboard/extension/examples/ExampleTestUtils.java +45 -0
- thingsboard_cli/extension-starter/examples/src/test/java/org/thingsboard/extension/examples/TelemetryUnitConversionControllerTest.java +80 -0
- thingsboard_cli/extension-starter/examples/src/test/java/org/thingsboard/extension/examples/TenantReportControllerTest.java +56 -0
- thingsboard_cli/extension-starter/examples/target/classes/org/thingsboard/extension/examples/BillingController.class +0 -0
- thingsboard_cli/extension-starter/examples/target/classes/org/thingsboard/extension/examples/DeviceHealthCheckTask.class +0 -0
- thingsboard_cli/extension-starter/examples/target/classes/org/thingsboard/extension/examples/TelemetryUnitConversionController$Rule.class +0 -0
- thingsboard_cli/extension-starter/examples/target/classes/org/thingsboard/extension/examples/TelemetryUnitConversionController.class +0 -0
- thingsboard_cli/extension-starter/examples/target/classes/org/thingsboard/extension/examples/TenantReportController.class +0 -0
- thingsboard_cli/extension-starter/examples/target/maven-archiver/pom.properties +3 -0
- thingsboard_cli/extension-starter/examples/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +5 -0
- thingsboard_cli/extension-starter/examples/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +4 -0
- thingsboard_cli/extension-starter/examples/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +6 -0
- thingsboard_cli/extension-starter/examples/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +5 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/BillingControllerTest.class +0 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/DeviceHealthCheckTaskTest.class +0 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/ExampleTestUtils$1.class +0 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/ExampleTestUtils.class +0 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/TelemetryUnitConversionControllerTest.class +0 -0
- thingsboard_cli/extension-starter/examples/target/test-classes/org/thingsboard/extension/examples/TenantReportControllerTest.class +0 -0
- thingsboard_cli/extension-starter/examples/target/thingsboard-extension-examples-1.0.0-SNAPSHOT.jar +0 -0
- thingsboard_cli/extension-starter/examples/widgets/cloud-button.js +68 -0
- thingsboard_cli/extension-starter/examples/widgets/on-premise-button.js +42 -0
- thingsboard_cli/extension-starter/extension/pom.xml +166 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/ThingsboardExtensionApplication.java +31 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/GlobalExceptionHandler.java +86 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/HealthController.java +31 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/OpenApiConfig.java +56 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/RequestLoggingFilter.java +103 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/SchedulingConfig.java +47 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/SecurityConfig.java +78 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/TbAuthentication.java +64 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/TbSecurity.java +54 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/TbSecurityFilter.java +66 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/TbSecurityUser.java +64 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/ThingsboardAuthConfig.java +79 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/ThingsboardClientProvider.java +165 -0
- thingsboard_cli/extension-starter/extension/src/main/java/org/thingsboard/extension/config/WebConfig.java +38 -0
- thingsboard_cli/extension-starter/extension/src/main/resources/application.yml +51 -0
- thingsboard_cli/extension-starter/extension/src/main/resources/docker/start-extension.sh +33 -0
- thingsboard_cli/extension-starter/extension/src/main/resources/logback.xml +35 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/ApplicationIntegrationTest.java +79 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/PreAuthorizeIntegrationTest.java +155 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/TestUtils.java +45 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/GlobalExceptionHandlerTest.java +116 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/RequestLoggingFilterTest.java +108 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/TbAuthenticationTest.java +91 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/TbSecurityFilterTest.java +93 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/TbSecurityUserTest.java +79 -0
- thingsboard_cli/extension-starter/extension/src/test/java/org/thingsboard/extension/config/ThingsboardClientProviderTest.java +55 -0
- thingsboard_cli/extension-starter/extension/target/antrun/build-main.xml +7 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AccountTwoFaSettings.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AcmeCertificateId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Action.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ActionStatus.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ActionType.md +113 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ActivateUserRequest.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AdminControllerApi.md +525 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AdminSettings.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AdminSettingsId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AffectedTenantAdministratorsFilter.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AffectedUserFilter.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggFunction.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggFunctionInput.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggInput.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggInterval.md +73 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggKeyInput.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggMetric.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Aggregation.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggregationConfiguration.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AggregationParams.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiChatControllerApi.md +148 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiChatModelConfig.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModel.md +240 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModelConfig.md +229 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModelControllerApi.md +136 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModelExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModelId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiModelType.md +21 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiSolutionControllerApi.md +230 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AiToolControllerApi.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Alarm.md +57 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmAction.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmAssignee.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmAssignmentNotificationRuleTriggerConfig.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmAssignmentRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCalculatedFieldConfiguration.md +314 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmComment.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentControllerApi.md +88 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentInfo.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentNotificationRuleTriggerConfig.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCommentType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCondition.md +186 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionExpression.md +123 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionFilter.md +105 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueAlarmSchedule.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueBoolean.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueDouble.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueInteger.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueLong.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmConditionValueString.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmControllerApi.md +409 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmCountQuery.md +347 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmData.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmDataPageLink.md +65 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmDataQuery.md +369 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmFilterConfig.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmInfo.md +69 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmNotificationRuleTriggerConfig.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRule.md +196 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleBooleanFilterPredicate.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleBooleanOperation.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleComplexFilterPredicate.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleComplexOperation.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleControllerApi.md +222 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleDefinition.md +488 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleDefinitionInfo.md +489 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleKeyFilterPredicate.md +98 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleNumericFilterPredicate.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleNumericOperation.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleStringFilterPredicate.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmRuleStringOperation.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmSchedule.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmSearchStatus.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmSeverity.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmStatus.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AlarmTableComponent.md +299 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AliasEntityId.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AliasEntityType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AllUsersFilter.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AllowCreateNewDevicesDeviceProfileProvisionConfiguration.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AllowedPermissionsInfo.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AmazonBedrockChatModelConfig.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AmazonBedrockProviderConfig.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AnthropicChatModelConfig.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AnthropicProviderConfig.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AnyTimeSchedule.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiFeature.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiKey.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiKeyControllerApi.md +139 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiKeyId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiKeyInfo.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiUsageLimitNotificationRuleTriggerConfig.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiUsageLimitRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiUsageStateFilter.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiUsageStateId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ApiUsageStateValue.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Argument.md +69 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ArgumentType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Asset.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetControllerApi.md +415 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetInfo.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetProfile.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetProfileControllerApi.md +259 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetProfileExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetProfileId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetProfileInfo.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetSearchQuery.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetSearchQueryFilter.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AssetTypeFilter.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributeData.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributeExportData.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributeScope.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributesEntityView.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributesImmediateOutputStrategy.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributesOutput.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributesOutputStrategy.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AttributesRuleChainOutputStrategy.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AuditLog.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AuditLogControllerApi.md +139 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AuditLogId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AuthControllerApi.md +212 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AuthenticationProtocol.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Authority.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AutoVersionCreateConfig.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AvailableEntityKeys.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AvailableEntityKeysV2.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AwsSnsSmsProviderConfiguration.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AxisPosition.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AzureOpenAiChatModelConfig.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/AzureOpenAiProviderConfig.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BackupCodeTwoFaAccountConfig.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BackupCodeTwoFaProviderConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BadgePosition.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BarSeriesSettings.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BaseReadTsKvQuery.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Basic.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BillingCustomerId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BillingEndpointControllerApi.md +239 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BlobEntityControllerApi.md +139 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BlobEntityId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BlobEntityInfo.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BlobEntityWithCustomerInfo.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BooleanFilterPredicate.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BooleanOperation.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BorderLength.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BorderType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BranchInfo.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BulkImportColumnType.md +83 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BulkImportRequest.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BulkImportResultAsset.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BulkImportResultDevice.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/BulkImportResultEdge.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Button.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CMAssigneeType.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CMItemLinkType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CMItemType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CMScope.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedField.md +492 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldConfiguration.md +468 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldControllerApi.md +328 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldDebugEventFilter.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldInfo.md +493 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CalculatedFieldType.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CaptchaClientParams.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CaptchaParams.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CellSettings.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CertificateInfo.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CertificateStatus.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfArgumentDynamicSourceConfiguration.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfReprocessingJobConfiguration.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfReprocessingJobResult.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfReprocessingTaskFailure.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfReprocessingTaskResult.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CfReprocessingValidationResult.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChangePasswordRequest.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartFillSettings.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartFillSettingsGradient.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartFillType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartLabelPosition.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartLineType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChartShape.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChatType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ChecksumAlgorithm.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ClaimRequest.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ClearRule.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ClientAttributesQueryingSnmpCommunicationConfig.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CloudDomainId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CloudDomainInfo.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CloudEndpointControllerApi.md +87 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CoapDeviceProfileTransportConfiguration.md +74 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CoapDeviceTransportConfiguration.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CoapDeviceTypeConfiguration.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ColorRange.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ColumnMapping.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ColumnSettings.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComparisonDuration.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComparisonTsValue.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComplexFilterPredicate.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComplexOperation.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComplexVersionCreateRequest.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentClusteringMode.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentDescriptor.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentDescriptorControllerApi.md +84 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentDescriptorId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentLifecycleEvent.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentScope.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ComponentType.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ContactBasedObject.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Converter.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConverterControllerApi.md +245 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConverterExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConverterId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConverterLibraryControllerApi.md +228 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConverterType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ConvertersInfo.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CouponDuration.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CouponId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CreateReportRequest.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CsvReportTemplateConfig.md +1055 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CurrentOwnerDynamicSourceConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomInterval.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenu.md +105 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuConfig.md +76 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuControllerApi.md +271 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuDeleteResult.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuInfo.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMenuItem.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomMobilePage.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomTimeSchedule.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomTimeScheduleItem.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomTranslationControllerApi.md +186 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Customer.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomerControllerApi.md +361 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomerExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomerId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomerInfo.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/CustomerUsersFilter.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Dashboard.md +70 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardComponent.md +300 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardControllerApi.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardInfo.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardPage.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardReportConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DashboardReportControllerApi.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataKey.md +209 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataKeyComparisonSettings.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataKeySettings.md +153 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataKeySettingsType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataSource.md +243 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataSourceType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DataType.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DayInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DebugConverterEventFilter.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DebugIntegrationEventFilter.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DebugSettings.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultCoapDeviceTypeConfiguration.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDashboardParams.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDataKeySettings.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDeviceConfiguration.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDeviceProfileConfiguration.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDeviceProfileTransportConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultDeviceTransportConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultMenuItem.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultMobilePage.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultPageId.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultRuleChainCreateRequest.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DefaultTenantProfileConfiguration.md +122 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeleteTenantRequest.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeliveryMethodNotificationTemplate.md +74 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Device.md +114 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceActivityNotificationRuleTriggerConfig.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceActivityRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceConfiguration.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceConnectivityControllerApi.md +82 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceControllerApi.md +628 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceCredentials.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceCredentialsId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceCredentialsType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceData.md +91 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceEvent.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceExportData.md +559 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceGroupOtaPackage.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceGroupOtaPackageControllerApi.md +77 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceInfo.md +123 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfile.md +276 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileConfiguration.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileControllerApi.md +310 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileData.md +237 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileInfo.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileProvisionConfiguration.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileProvisionType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileTransportConfiguration.md +205 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceProfileType.md +21 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceSearchQuery.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceSearchQueryFilter.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceTransportConfiguration.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceTransportType.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DeviceTypeFilter.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Direction.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DisabledDeviceProfileProvisionConfiguration.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Discount.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DividerComponent.md +61 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Domain.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DomainControllerApi.md +163 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DomainId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DomainInfo.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DoughnutLayout.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DummyJobConfiguration.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DummyJobResult.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DummyTaskFailure.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DummyTaskResult.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DurationAlarmCondition.md +172 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DynamicValueBoolean.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DynamicValueDouble.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DynamicValueSourceType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/DynamicValueString.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Edge.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeCommunicationFailureNotificationRuleTriggerConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeCommunicationFailureRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeConnectionNotificationRuleTriggerConfig.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeConnectionRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeConnectivityEvent.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeControllerApi.md +662 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeEvent.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeEventActionType.md +71 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeEventControllerApi.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeEventId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeEventType.md +109 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeInfo.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeInstructions.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeLicenseType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeSearchQuery.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeSearchQueryFilter.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdgeTypeFilter.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdqsApiMode.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdqsState.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdqsSyncRequest.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EdqsSyncStatus.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EfentoCoapDeviceTypeConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EmailDeliveryMethodNotificationTemplate.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EmailTwoFaAccountConfig.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EmailTwoFaProviderConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EnterpriseCaptchaParams.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitiesByGroupNameFilter.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitiesLimitNotificationRuleTriggerConfig.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitiesLimitRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitiesVersionControlControllerApi.md +325 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Entity.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityActionNotificationRuleTriggerConfig.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityActionRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityAggregationCalculatedFieldConfiguration.md +224 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityAlias.md +223 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityCoordinates.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityCountQuery.md +333 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityData.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityDataDiff.md +703 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityDataInfo.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityDataPageLink.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityDataQuery.md +354 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityDataSortOrder.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityExportData.md +701 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityExportSettings.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityFilter.md +220 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroup.md +99 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupControllerApi.md +972 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupExportData.md +568 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupFilter.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupInfo.md +98 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupListFilter.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityGroupNameFilter.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityId.md +186 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityKey.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityKeyType.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityKeyValueType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityListFilter.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityLoadError.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityNameFilter.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityQueryControllerApi.md +203 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityRelation.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityRelationControllerApi.md +332 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityRelationInfo.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityRelationsQuery.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitySearchDirection.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntitySubtype.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTableComponent.md +298 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityType.md +123 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTypeFilter.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTypeLoadResult.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTypeVersionCreateConfig.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTypeVersionLoadConfig.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityTypeVersionLoadRequest.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityVersion.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityView.md +56 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewControllerApi.md +389 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewInfo.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewSearchQuery.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewSearchQueryFilter.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EntityViewTypeFilter.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ErrorComponent.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ErrorComponentAllOfException.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ErrorComponentAllOfExceptionCause.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ErrorComponentAllOfExceptionCauseStackTrace.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ErrorEventFilter.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EscalatedNotificationRuleRecipientsConfig.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EventControllerApi.md +106 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EventFilter.md +121 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EventId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EventInfo.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/EventType.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ExportableEntity.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Failure.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Favicon.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FeaturesInfo.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Filter.md +135 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FilterPredicateValueBoolean.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FilterPredicateValueDouble.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FilterPredicateValueString.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FixedTimeWindow.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Font.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FontStyle.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/FontWeight.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GeofencingCalculatedFieldConfiguration.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GeofencingReportStrategy.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GitHubModelsChatModelConfig.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GitHubModelsProviderConfig.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GoogleAiGeminiChatModelConfig.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GoogleAiGeminiProviderConfig.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GoogleVertexAiGeminiChatModelConfig.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GoogleVertexAiGeminiProviderConfig.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GroupPermission.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GroupPermissionControllerApi.md +183 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GroupPermissionId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/GroupPermissionInfo.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HasIdObject.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HeaderFooter.md +728 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Heading.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HeadingComponent.md +282 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/History.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HomeDashboard.md +71 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HomeDashboardInfo.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HomeDashboardParams.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HomeMenuItem.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HomeMenuItemType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/HourInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ImageAlignment.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ImageComponent.md +290 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ImageControllerApi.md +361 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ImageSourceType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ImageWidthType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Insets.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Integration.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationControllerApi.md +398 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationConvertersInfo.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationInfo.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationLifecycleEventNotificationRuleTriggerConfig.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationLifecycleEventRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntegrationType.md +77 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Interval.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/IntervalType.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Job.md +282 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobConfiguration.md +223 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobControllerApi.md +139 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobResult.md +79 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobStatus.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JobType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JsonTransportPayloadConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JwtPair.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/JwtSettings.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/KeyFilter.md +128 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/KeyFilterPredicate.md +113 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/KeyInfo.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/KeySample.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LastVisitedDashboardInfo.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LatestChartComponent.md +311 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LegendConfig.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LegendPosition.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LicenseUsageInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LifeCycleEventFilter.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LimitedApi.md +91 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LineSeriesSettings.md +81 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LineSeriesStepType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LinkType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LoginEndpointApi.md +57 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LoginMobileInfo.md +97 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LoginRequest.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LoginResponse.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LoginWhiteLabelingParams.md +71 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2MBootstrapServerCredential.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2MServerSecurityConfigDefault.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2mInstance.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2mObject.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2mResourceObserve.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/LwM2mVersion.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Lwm2mControllerApi.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Lwm2mDeviceProfileTransportConfiguration.md +92 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Lwm2mDeviceTransportConfiguration.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MailConfigTemplateControllerApi.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MapperType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Mapping.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MenuItem.md +73 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MenuItemType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MergedGroupPermissionInfo.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MergedGroupTypePermissionInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MergedUserPermissions.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MicrosoftTeamsDeliveryMethodNotificationTemplate.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MicrosoftTeamsNotificationTargetConfig.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MistralAiChatModelConfig.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MistralAiProviderConfig.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileApp.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppBundle.md +197 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppBundleControllerApi.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppBundleId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppBundleInfo.md +212 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppControllerApi.md +162 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppDeliveryMethodNotificationTemplate.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppNotificationDeliveryMethodConfig.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppStatus.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileAppVersionInfo.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileLayoutConfig.md +64 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobilePage.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobilePageType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileRedirectParams.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileSelfRegistrationParams.md +130 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MobileSessionInfo.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Model.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MonthInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MqttDeviceProfileTransportConfiguration.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/MqttDeviceTransportConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NameConflictPolicy.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NewPlatformVersionNotificationRuleTriggerConfig.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NewPlatformVersionRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NoDataFilterPredicate.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NoSecLwM2MBootstrapServerCredential.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NodeConnectionInfo.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/None.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Notification.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationControllerApi.md +468 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationDeliveryMethod.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationDeliveryMethodConfig.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationInfo.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationPref.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequest.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestConfig.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestInfo.md +143 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestPreview.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestStats.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRequestStatus.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRule.md +268 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleConfig.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleControllerApi.md +111 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleInfo.md +273 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleRecipientsConfig.md +104 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleTriggerConfig.md +171 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationRuleTriggerType.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationSettings.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationStatus.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTarget.md +121 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTargetConfig.md +109 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTargetControllerApi.md +193 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTargetExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTargetId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTemplate.md +97 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTemplateConfig.md +84 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTemplateControllerApi.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTemplateExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationTemplateId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NotificationType.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NumericFilterPredicate.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/NumericOperation.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2BasicMapperConfig.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2Client.md +89 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ClientId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ClientInfo.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ClientLoginInfo.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ClientRegistrationTemplate.md +82 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ClientRegistrationTemplateId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ConfigTemplateControllerApi.md +75 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2ControllerApi.md +180 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2CustomMapperConfig.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OAuth2MapperConfig.md +56 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ObjectAttributes.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ObjectType.md +117 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OllamaAuth.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OllamaChatModelConfig.md +68 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OllamaProviderConfig.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OpenAiChatModelConfig.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OpenAiProviderConfig.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Operation.md +61 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OriginatorEntityOwnerUsersFilter.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackage.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackageControllerApi.md +251 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackageExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackageId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackageInfo.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtaPackageType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OtherConfiguration.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Output.md +77 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/OwnerControllerApi.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PSKLwM2MBootstrapServerCredential.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageBreakComponent.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAiModel.md +248 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAlarmCommentInfo.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAlarmData.md +86 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAlarmInfo.md +77 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAlarmRuleDefinition.md +496 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAlarmRuleDefinitionInfo.md +497 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataApiKeyInfo.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAsset.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAssetInfo.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAssetProfile.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAssetProfileInfo.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataAuditLog.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataBlobEntityWithCustomerInfo.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataCalculatedField.md +500 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataCalculatedFieldInfo.md +501 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataContactBasedObject.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataConverter.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataCustomMenuInfo.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataCustomer.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataCustomerInfo.md +68 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDashboardInfo.md +86 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDevice.md +122 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDeviceInfo.md +131 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDeviceProfile.md +282 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDeviceProfileInfo.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataDomainInfo.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEdge.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEdgeEvent.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEdgeInfo.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityData.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityGroupInfo.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityInfo.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntitySubtype.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityVersion.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityView.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEntityViewInfo.md +70 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataEventInfo.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataIntegration.md +64 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataIntegrationInfo.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataJob.md +290 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataMobileApp.md +68 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataMobileAppBundleInfo.md +220 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataNotification.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataNotificationRequestInfo.md +151 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataNotificationRuleInfo.md +281 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataNotificationTarget.md +129 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataNotificationTemplate.md +105 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataOAuth2ClientInfo.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataOtaPackageInfo.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataQueue.md +69 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataQueueStats.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataReport.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataReportInfo.md +57 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataReportTemplateInfo.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataRole.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataRuleChain.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataScheduledReportInfo.md +57 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataSchedulerEventInfo.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataSchedulerEventWithCustomerInfo.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataSecretInfo.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataShortEntityView.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataString.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataTbResourceInfo.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataTenant.md +82 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataTenantInfo.md +83 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataTenantProfile.md +184 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataTrendzViewConfigLite.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataUser.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataUserEmailInfo.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataUserInfo.md +66 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataWidgetTypeInfo.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageDataWidgetsBundle.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageOrientation.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PageSize.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Palette.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PaletteSettings.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PdfReportTemplateConfig.md +1074 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PieChartLabelPosition.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PlatformTwoFaSettings.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PlatformType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PlatformUsersNotificationTargetConfig.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PowerMode.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PowerSavingConfiguration.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PrivacyProtocol.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ProcessingStrategy.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ProcessingStrategyType.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ProductId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/PropagationCalculatedFieldConfiguration.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ProtoTransportPayloadConfiguration.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QRCodeConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QrCodeSettings.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QrCodeSettingsControllerApi.md +134 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QrCodeSettingsId.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QuarterInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Queue.md +63 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QueueControllerApi.md +138 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QueueId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QueueStats.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QueueStatsControllerApi.md +86 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QueueStatsId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/QuickTimeInterval.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RPKLwM2MBootstrapServerCredential.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RateLimitsNotificationRuleTriggerConfig.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RateLimitsRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RawDataEventFilter.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReadTsKvQueryResult.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReferencedEntityKey.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RefreshTokenRequest.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelatedEntitiesAggregationCalculatedFieldConfiguration.md +167 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationEntityTypeFilter.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationPathLevel.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationPathQueryDynamicSourceConfiguration.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationTypeGroup.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationsQueryFilter.md +64 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RelationsSearchParameters.md +38 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RepeatingAlarmCondition.md +177 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Report.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportBarChartSettings.md +99 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportBarChartWithLabelsSettings.md +244 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportComponent.md +723 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportComponentSubType.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportComponentType.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportControllerApi.md +231 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportDoughnutChartSettings.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportInfo.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportJobConfiguration.md +202 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportJobResult.md +71 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportLatestChartSettings.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportPieChartSettings.md +71 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportRangeChartSettings.md +274 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportRequest.md +1086 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTaskResult.md +57 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplate.md +1095 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateConfig.md +1077 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateControllerApi.md +164 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateInfo.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTemplateType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ReportTimeSeriesChartSettings.md +216 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RepositoryAuthMethod.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RepositorySettings.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RepositorySettingsInfo.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResetPasswordEmailRequest.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResetPasswordRequest.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Resource.md +129 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResourceExportData.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResourceShortageRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResourceSubType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResourceType.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ResourcesShortageNotificationRuleTriggerConfig.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RichTextComponent.md +277 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Role.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RoleControllerApi.md +137 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RoleExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RoleId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RoleType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Rpc.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RpcId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RpcStatus.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RpcV1ControllerApi.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RpcV2ControllerApi.md +140 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChain.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainConnectionInfo.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainControllerApi.md +583 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainData.md +99 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainDebugEventFilter.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainExportData.md +582 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainImportResult.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainMetaData.md +75 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainOutputLabelsUsage.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleChainType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleEngineComponentLifecycleEventNotificationRuleTriggerConfig.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleEngineComponentLifecycleEventRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleEngineControllerApi.md +116 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleNode.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleNodeDebugEventFilter.md +68 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/RuleNodeId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SaveDeviceWithCredentialsRequest.md +141 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SaveOtaPackageInfoRequest.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ScheduledReportInfo.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEvent.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventControllerApi.md +382 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventFilter.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventInfo.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SchedulerEventWithCustomerInfo.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ScriptCalculatedFieldConfiguration.md +136 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ScriptLanguage.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Secret.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SecretControllerApi.md +206 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SecretId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SecretInfo.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SecretType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SecuritySettings.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SelfRegistrationControllerApi.md +144 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SelfRegistrationParams.md +137 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SelfRegistrationType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ShareGroupRequest.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SharedAttributesSettingSnmpCommunicationConfig.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ShortCustomerInfo.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ShortEntityView.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpControllerApi.md +399 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpField.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpFieldId.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpRequest.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpResult.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SignUpSelfRegistrationParams.md +67 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SimpleAlarmCondition.md +170 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SimpleAlarmConditionExpression.md +118 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SimpleCalculatedFieldConfiguration.md +137 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SimpleEntity.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SingleEntityFilter.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SingleEntityVersionCreateRequest.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SingleEntityVersionLoadRequest.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SlackConversation.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SlackConversationType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SlackDeliveryMethodNotificationTemplate.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SlackNotificationDeliveryMethodConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SlackNotificationTargetConfig.md +46 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmppBindType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmppSmsProviderConfiguration.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmsDeliveryMethodNotificationTemplate.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmsProviderConfiguration.md +64 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmsTwoFaAccountConfig.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SmsTwoFaProviderConfig.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpCommunicationConfig.md +68 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpCommunicationSpec.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpDeviceProfileTransportConfiguration.md +78 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpDeviceTransportConfiguration.md +51 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpMapping.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SnmpProtocolVersion.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionControllerApi.md +125 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionData.md +704 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionExportImportControllerApi.md +82 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionExportRequest.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionExportResponse.md +710 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionImportResult.md +26 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionInstallResponse.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionStep.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionTemplateLevel.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SolutionValidationResult.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SpecificTimeSchedule.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SplitViewComponent.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StarredDashboardInfo.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StateEntityFilter.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StateEntityOwnerFilter.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StatisticsEventFilter.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StoreInfo.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StringFilterPredicate.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/StringOperation.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubReportComponent.md +264 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubmitStrategy.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubmitStrategyType.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionAddonId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionControllerApi.md +94 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionDetails.md +90 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionEntry.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionExceptionErrorCode.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionItems.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionPlanId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SubscriptionUsage.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Success.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SyncStrategy.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SystemAdministratorsFilter.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SystemInfo.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/SystemInfoData.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TableSortDirection.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TableSortOrder.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TaskProcessingFailureNotificationRuleTriggerConfig.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TaskProcessingFailureRecipientsConfig.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TaskResult.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbChatRequest.md +247 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbChatResponse.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbContent.md +29 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbImageDeleteResult.md +49 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbReportFormat.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResource.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResourceControllerApi.md +508 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResourceDeleteResult.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResourceExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResourceId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbResourceInfo.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbSecretDeleteResult.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbTextContent.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbUserMessage.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TbelAlarmConditionExpression.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TelemetryControllerApi.md +466 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TelemetryEntityView.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TelemetryMappingConfiguration.md +54 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TelemetryObserveStrategy.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TelemetryQueryingSnmpCommunicationConfig.md +45 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Tenant.md +76 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantAddonData.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantAdministratorsFilter.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantControllerApi.md +190 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantInfo.md +75 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantNameStrategyType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfile.md +178 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfileConfiguration.md +120 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfileControllerApi.md +231 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfileData.md +160 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfileId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantProfileQueueConfiguration.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantSolutionTemplateDetails.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantSolutionTemplateInfo.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TenantSolutionTemplateInstructions.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TestSmsRequest.md +69 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TextAlignment.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ThingsboardClient.java +405 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ThingsboardCredentialsExpiredResponse.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ThingsboardErrorCode.md +53 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ThingsboardErrorResponse.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ThresholdLabelPosition.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartBarWidth.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartBarWidthSettings.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartGridSettings.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartKeySettings.md +127 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartNoAggregationBarWidthSettings.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartNoAggregationBarWidthStrategy.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartSeriesType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartStateSettings.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartStateSourceType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartThreshold.md +73 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartXAxisSettings.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesChartYAxisSettings.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesImmediateOutputStrategy.md +35 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesOutput.md +55 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesOutputStrategy.md +36 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeSeriesRuleChainOutputStrategy.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeUnit.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeWindowConfiguration.md +62 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeseriesChartComponent.md +462 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TimeseriesTableComponent.md +303 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ToCoreEdqsRequest.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ToDeviceRpcRequestSnmpCommunicationConfig.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ToServerRpcRequestSnmpCommunicationConfig.md +44 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Token.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TotpTwoFaAccountConfig.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TotpTwoFaProviderConfig.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TranslationControllerApi.md +165 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TranslationInfo.md +26 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TransportPayloadTypeConfiguration.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzApiControllerApi.md +97 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzConfiguration.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzControllerApi.md +122 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzHealthcheckResult.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzSummary.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzSynchronizationResult.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzSynchronizationResultType.md +39 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzSynchronizationStatus.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzUsage.md +43 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzViewConfig.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TrendzViewConfigLite.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TsData.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TsKvEntry.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TsValue.md +24 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwilioSmsProviderConfiguration.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFaAccountConfig.md +48 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFaAccountConfigUpdateRequest.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFaProviderConfig.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFaProviderInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFaProviderType.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFactorAuthConfigControllerApi.md +213 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/TwoFactorAuthControllerApi.md +94 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UiSettingsControllerApi.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UniquifyStrategy.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UpdateMessage.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UsageInfo.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UsageInfoControllerApi.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/User.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserActivationLink.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserControllerApi.md +831 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserDashboardsInfo.md +40 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserEmailInfo.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserGroupListFilter.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserInfo.md +58 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserListFilter.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserMobileInfo.md +80 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserNotificationSettings.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserPasswordPolicy.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserPermissionsControllerApi.md +52 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UserRoleFilter.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/UsersFilter.md +65 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/V2CaptchaParams.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/V3CaptchaParams.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ValueSourceType.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Vendor.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionCreateConfig.md +27 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionCreateRequest.md +76 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionCreateRequestType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionCreationResult.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionLoadConfig.md +28 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionLoadRequest.md +74 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionLoadRequestType.md +23 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionLoadResult.md +50 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VersionedEntityInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/VerticalAlignment.md +25 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/Watermark.md +22 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WebDeliveryMethodNotificationTemplate.md +34 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WebSelfRegistrationParams.md +124 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WebViewPage.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WeekInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WeekSunSatInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WhiteLabeling.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WhiteLabelingControllerApi.md +322 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WhiteLabelingParams.md +59 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WhiteLabelingType.md +31 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetBundleInfo.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetType.md +37 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetTypeControllerApi.md +277 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetTypeDetails.md +64 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetTypeExportData.md +539 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetTypeId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetTypeInfo.md +47 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetsBundle.md +41 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetsBundleControllerApi.md +210 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetsBundleExportData.md +541 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/WidgetsBundleId.md +30 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/X509CertificateChainProvisionConfiguration.md +33 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/X509LwM2MBootstrapServerCredential.md +42 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/YearInterval.md +32 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/ZoneGroupConfiguration.md +60 -0
- thingsboard_cli/extension-starter/extension/target/api-docs/tb-examples.md +396 -0
- thingsboard_cli/extension-starter/extension/target/classes/application.yml +51 -0
- thingsboard_cli/extension-starter/extension/target/classes/docker/start-extension.sh +33 -0
- thingsboard_cli/extension-starter/extension/target/classes/logback.xml +35 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/ThingsboardExtensionApplication.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/GlobalExceptionHandler.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/HealthController.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/OpenApiConfig.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/RequestLoggingFilter.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/SchedulingConfig.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/SecurityConfig.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/TbAuthentication.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/TbSecurity.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/TbSecurityFilter.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/TbSecurityUser.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/ThingsboardAuthConfig.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/ThingsboardClientProvider.class +0 -0
- thingsboard_cli/extension-starter/extension/target/classes/org/thingsboard/extension/config/WebConfig.class +0 -0
- thingsboard_cli/extension-starter/extension/target/dependency-maven-plugin-markers/org.thingsboard.client-thingsboard-paas-client-jar-4.3.1.2-898578207 +0 -0
- thingsboard_cli/extension-starter/extension/target/dependency-maven-plugin-markers/org.thingsboard.client-thingsboard-paas-client-jar-sources-4.3.1.21164361615 +0 -0
- thingsboard_cli/extension-starter/extension/target/maven-archiver/pom.properties +3 -0
- thingsboard_cli/extension-starter/extension/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +14 -0
- thingsboard_cli/extension-starter/extension/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +14 -0
- thingsboard_cli/extension-starter/extension/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +11 -0
- thingsboard_cli/extension-starter/extension/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +9 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/ApplicationIntegrationTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/PreAuthorizeIntegrationTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/TestUtils$1.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/TestUtils.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/GlobalExceptionHandlerTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/RequestLoggingFilterTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/TbAuthenticationTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/TbSecurityFilterTest$1.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/TbSecurityFilterTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/TbSecurityUserTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/test-classes/org/thingsboard/extension/config/ThingsboardClientProviderTest.class +0 -0
- thingsboard_cli/extension-starter/extension/target/thingsboard-extension-1.0.0-SNAPSHOT.jar +0 -0
- thingsboard_cli/extension-starter/extension/target/thingsboard-extension-1.0.0-SNAPSHOT.jar.original +0 -0
- thingsboard_cli/extension-starter/pom.xml +121 -0
- thingsboard_cli/help/__init__.py +318 -0
- thingsboard_cli/help/_generated/__init__.py +0 -0
- thingsboard_cli/help/_generated/commands/__init__.py +0 -0
- thingsboard_cli/help/_generated/commands/admin.py +288 -0
- thingsboard_cli/help/_generated/commands/ai_chat.py +68 -0
- thingsboard_cli/help/_generated/commands/ai_device_dashboard.py +16 -0
- thingsboard_cli/help/_generated/commands/ai_model.py +78 -0
- thingsboard_cli/help/_generated/commands/ai_solution.py +103 -0
- thingsboard_cli/help/_generated/commands/ai_tool.py +14 -0
- thingsboard_cli/help/_generated/commands/alarm.py +252 -0
- thingsboard_cli/help/_generated/commands/alarm_comment.py +52 -0
- thingsboard_cli/help/_generated/commands/alarm_rule.py +131 -0
- thingsboard_cli/help/_generated/commands/api_key.py +81 -0
- thingsboard_cli/help/_generated/commands/asset.py +250 -0
- thingsboard_cli/help/_generated/commands/asset_profile.py +149 -0
- thingsboard_cli/help/_generated/commands/audit_log.py +92 -0
- thingsboard_cli/help/_generated/commands/auth.py +119 -0
- thingsboard_cli/help/_generated/commands/blob_entity.py +81 -0
- thingsboard_cli/help/_generated/commands/calculated_field.py +191 -0
- thingsboard_cli/help/_generated/commands/component_descriptor.py +48 -0
- thingsboard_cli/help/_generated/commands/converter.py +143 -0
- thingsboard_cli/help/_generated/commands/converter_library.py +137 -0
- thingsboard_cli/help/_generated/commands/custom_menu.py +158 -0
- thingsboard_cli/help/_generated/commands/custom_translation.py +106 -0
- thingsboard_cli/help/_generated/commands/customer.py +215 -0
- thingsboard_cli/help/_generated/commands/dashboard.py +320 -0
- thingsboard_cli/help/_generated/commands/dashboard_report.py +34 -0
- thingsboard_cli/help/_generated/commands/device.py +375 -0
- thingsboard_cli/help/_generated/commands/device_connectivity.py +46 -0
- thingsboard_cli/help/_generated/commands/device_group_ota_package.py +35 -0
- thingsboard_cli/help/_generated/commands/device_profile.py +178 -0
- thingsboard_cli/help/_generated/commands/domain.py +80 -0
- thingsboard_cli/help/_generated/commands/edge.py +390 -0
- thingsboard_cli/help/_generated/commands/edge_event.py +25 -0
- thingsboard_cli/help/_generated/commands/entities_version_control.py +193 -0
- thingsboard_cli/help/_generated/commands/entity_group.py +584 -0
- thingsboard_cli/help/_generated/commands/entity_query.py +111 -0
- thingsboard_cli/help/_generated/commands/entity_relation.py +197 -0
- thingsboard_cli/help/_generated/commands/entity_view.py +235 -0
- thingsboard_cli/help/_generated/commands/event.py +70 -0
- thingsboard_cli/help/_generated/commands/group_permission.py +103 -0
- thingsboard_cli/help/_generated/commands/image.py +176 -0
- thingsboard_cli/help/_generated/commands/integration.py +233 -0
- thingsboard_cli/help/_generated/commands/job.py +79 -0
- thingsboard_cli/help/_generated/commands/lwm2m.py +33 -0
- thingsboard_cli/help/_generated/commands/mail_config_template.py +14 -0
- thingsboard_cli/help/_generated/commands/mobile_app.py +91 -0
- thingsboard_cli/help/_generated/commands/mobile_app_bundle.py +80 -0
- thingsboard_cli/help/_generated/commands/notification.py +233 -0
- thingsboard_cli/help/_generated/commands/notification_rule.py +64 -0
- thingsboard_cli/help/_generated/commands/notification_target.py +113 -0
- thingsboard_cli/help/_generated/commands/notification_template.py +80 -0
- thingsboard_cli/help/_generated/commands/oauth2.py +103 -0
- thingsboard_cli/help/_generated/commands/oauth2_config_template.py +42 -0
- thingsboard_cli/help/_generated/commands/ota_package.py +149 -0
- thingsboard_cli/help/_generated/commands/owner.py +38 -0
- thingsboard_cli/help/_generated/commands/qr_code_settings.py +72 -0
- thingsboard_cli/help/_generated/commands/queue.py +80 -0
- thingsboard_cli/help/_generated/commands/queue_stats.py +50 -0
- thingsboard_cli/help/_generated/commands/report.py +117 -0
- thingsboard_cli/help/_generated/commands/report_template.py +95 -0
- thingsboard_cli/help/_generated/commands/role.py +79 -0
- thingsboard_cli/help/_generated/commands/rpc_v1.py +34 -0
- thingsboard_cli/help/_generated/commands/rpc_v2.py +82 -0
- thingsboard_cli/help/_generated/commands/rule_chain.py +333 -0
- thingsboard_cli/help/_generated/commands/rule_engine.py +69 -0
- thingsboard_cli/help/_generated/commands/scheduler_event.py +225 -0
- thingsboard_cli/help/_generated/commands/secret.py +118 -0
- thingsboard_cli/help/_generated/commands/self_registration.py +79 -0
- thingsboard_cli/help/_generated/commands/sign_up.py +121 -0
- thingsboard_cli/help/_generated/commands/solution.py +70 -0
- thingsboard_cli/help/_generated/commands/solution_export_import.py +46 -0
- thingsboard_cli/help/_generated/commands/tb_resource.py +290 -0
- thingsboard_cli/help/_generated/commands/telemetry.py +287 -0
- thingsboard_cli/help/_generated/commands/tenant.py +110 -0
- thingsboard_cli/help/_generated/commands/tenant_profile.py +130 -0
- thingsboard_cli/help/_generated/commands/translation.py +94 -0
- thingsboard_cli/help/_generated/commands/trendz.py +68 -0
- thingsboard_cli/help/_generated/commands/trendz_api.py +56 -0
- thingsboard_cli/help/_generated/commands/two_factor_auth.py +53 -0
- thingsboard_cli/help/_generated/commands/two_factor_auth_config.py +120 -0
- thingsboard_cli/help/_generated/commands/ui_settings.py +14 -0
- thingsboard_cli/help/_generated/commands/usage_info.py +10 -0
- thingsboard_cli/help/_generated/commands/user.py +479 -0
- thingsboard_cli/help/_generated/commands/user_permissions.py +30 -0
- thingsboard_cli/help/_generated/commands/white_labeling.py +172 -0
- thingsboard_cli/help/_generated/commands/widget_type.py +164 -0
- thingsboard_cli/help/_generated/commands/widgets_bundle.py +122 -0
- thingsboard_cli/help/_generated/models/__init__.py +0 -0
- thingsboard_cli/help/_generated/models/account_two_fa_settings.py +39 -0
- thingsboard_cli/help/_generated/models/action.py +8 -0
- thingsboard_cli/help/_generated/models/action_status.py +8 -0
- thingsboard_cli/help/_generated/models/action_type.py +8 -0
- thingsboard_cli/help/_generated/models/activate_user_request.py +13 -0
- thingsboard_cli/help/_generated/models/admin_settings.py +21 -0
- thingsboard_cli/help/_generated/models/admin_settings_id.py +16 -0
- thingsboard_cli/help/_generated/models/affected_tenant_administrators_filter.py +16 -0
- thingsboard_cli/help/_generated/models/affected_user_filter.py +16 -0
- thingsboard_cli/help/_generated/models/agg_function.py +8 -0
- thingsboard_cli/help/_generated/models/agg_function_input.py +17 -0
- thingsboard_cli/help/_generated/models/agg_input.py +26 -0
- thingsboard_cli/help/_generated/models/agg_interval.py +65 -0
- thingsboard_cli/help/_generated/models/agg_key_input.py +17 -0
- thingsboard_cli/help/_generated/models/agg_metric.py +33 -0
- thingsboard_cli/help/_generated/models/aggregation.py +8 -0
- thingsboard_cli/help/_generated/models/aggregation_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/aggregation_params.py +21 -0
- thingsboard_cli/help/_generated/models/ai_chat_model_config.py +15 -0
- thingsboard_cli/help/_generated/models/ai_chat_model_config_object.py +15 -0
- thingsboard_cli/help/_generated/models/ai_model.py +228 -0
- thingsboard_cli/help/_generated/models/ai_model_config.py +217 -0
- thingsboard_cli/help/_generated/models/ai_model_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/ai_model_id.py +16 -0
- thingsboard_cli/help/_generated/models/ai_model_type.py +8 -0
- thingsboard_cli/help/_generated/models/alarm.py +45 -0
- thingsboard_cli/help/_generated/models/alarm_action.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_assignee.py +20 -0
- thingsboard_cli/help/_generated/models/alarm_assignment_notification_rule_trigger_config.py +32 -0
- thingsboard_cli/help/_generated/models/alarm_assignment_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/alarm_calculated_field_configuration.py +300 -0
- thingsboard_cli/help/_generated/models/alarm_comment.py +31 -0
- thingsboard_cli/help/_generated/models/alarm_comment_id.py +12 -0
- thingsboard_cli/help/_generated/models/alarm_comment_info.py +34 -0
- thingsboard_cli/help/_generated/models/alarm_comment_notification_rule_trigger_config.py +30 -0
- thingsboard_cli/help/_generated/models/alarm_comment_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/alarm_comment_type.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_condition.py +176 -0
- thingsboard_cli/help/_generated/models/alarm_condition_expression.py +113 -0
- thingsboard_cli/help/_generated/models/alarm_condition_filter.py +93 -0
- thingsboard_cli/help/_generated/models/alarm_condition_filter_key.py +16 -0
- thingsboard_cli/help/_generated/models/alarm_condition_key_type.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_condition_spec.py +66 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_alarm_rule_schedule.py +43 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_alarm_schedule.py +43 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_boolean.py +13 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_double.py +13 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_integer.py +13 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_long.py +13 -0
- thingsboard_cli/help/_generated/models/alarm_condition_value_string.py +13 -0
- thingsboard_cli/help/_generated/models/alarm_count_query.py +333 -0
- thingsboard_cli/help/_generated/models/alarm_data.py +66 -0
- thingsboard_cli/help/_generated/models/alarm_data_page_link.py +53 -0
- thingsboard_cli/help/_generated/models/alarm_data_query.py +355 -0
- thingsboard_cli/help/_generated/models/alarm_filter_config.py +27 -0
- thingsboard_cli/help/_generated/models/alarm_id.py +16 -0
- thingsboard_cli/help/_generated/models/alarm_info.py +57 -0
- thingsboard_cli/help/_generated/models/alarm_notification_rule_trigger_config.py +37 -0
- thingsboard_cli/help/_generated/models/alarm_rule.py +184 -0
- thingsboard_cli/help/_generated/models/alarm_rule_any_time_schedule.py +16 -0
- thingsboard_cli/help/_generated/models/alarm_rule_boolean_filter_predicate.py +27 -0
- thingsboard_cli/help/_generated/models/alarm_rule_boolean_operation.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_rule_complex_filter_predicate.py +21 -0
- thingsboard_cli/help/_generated/models/alarm_rule_complex_operation.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_rule_condition.py +176 -0
- thingsboard_cli/help/_generated/models/alarm_rule_custom_time_schedule_item.py +15 -0
- thingsboard_cli/help/_generated/models/alarm_rule_definition.py +476 -0
- thingsboard_cli/help/_generated/models/alarm_rule_definition_info.py +477 -0
- thingsboard_cli/help/_generated/models/alarm_rule_duration_condition.py +158 -0
- thingsboard_cli/help/_generated/models/alarm_rule_key_filter_predicate.py +86 -0
- thingsboard_cli/help/_generated/models/alarm_rule_no_data_filter_predicate.py +27 -0
- thingsboard_cli/help/_generated/models/alarm_rule_numeric_filter_predicate.py +27 -0
- thingsboard_cli/help/_generated/models/alarm_rule_numeric_operation.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_rule_repeating_condition.py +163 -0
- thingsboard_cli/help/_generated/models/alarm_rule_schedule.py +41 -0
- thingsboard_cli/help/_generated/models/alarm_rule_simple_condition.py +156 -0
- thingsboard_cli/help/_generated/models/alarm_rule_string_filter_predicate.py +28 -0
- thingsboard_cli/help/_generated/models/alarm_rule_string_operation.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_schedule.py +41 -0
- thingsboard_cli/help/_generated/models/alarm_schedule_type.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_search_status.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_severity.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_status.py +8 -0
- thingsboard_cli/help/_generated/models/alarm_table_component.py +285 -0
- thingsboard_cli/help/_generated/models/alias_entity_id.py +20 -0
- thingsboard_cli/help/_generated/models/alias_entity_type.py +8 -0
- thingsboard_cli/help/_generated/models/all_users_filter.py +16 -0
- thingsboard_cli/help/_generated/models/allow_create_new_devices_device_profile_provision_configuration.py +17 -0
- thingsboard_cli/help/_generated/models/allowed_permissions_info.py +51 -0
- thingsboard_cli/help/_generated/models/amazon_bedrock_chat_model_config.py +34 -0
- thingsboard_cli/help/_generated/models/amazon_bedrock_provider_config.py +14 -0
- thingsboard_cli/help/_generated/models/anthropic_chat_model_config.py +33 -0
- thingsboard_cli/help/_generated/models/anthropic_provider_config.py +12 -0
- thingsboard_cli/help/_generated/models/any_time_schedule.py +16 -0
- thingsboard_cli/help/_generated/models/api_feature.py +8 -0
- thingsboard_cli/help/_generated/models/api_key.py +25 -0
- thingsboard_cli/help/_generated/models/api_key_id.py +16 -0
- thingsboard_cli/help/_generated/models/api_key_info.py +24 -0
- thingsboard_cli/help/_generated/models/api_usage_limit_notification_rule_trigger_config.py +27 -0
- thingsboard_cli/help/_generated/models/api_usage_limit_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/api_usage_state_filter.py +22 -0
- thingsboard_cli/help/_generated/models/api_usage_state_id.py +16 -0
- thingsboard_cli/help/_generated/models/api_usage_state_value.py +8 -0
- thingsboard_cli/help/_generated/models/argument.py +57 -0
- thingsboard_cli/help/_generated/models/argument_type.py +8 -0
- thingsboard_cli/help/_generated/models/asset.py +27 -0
- thingsboard_cli/help/_generated/models/asset_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/asset_id.py +16 -0
- thingsboard_cli/help/_generated/models/asset_info.py +35 -0
- thingsboard_cli/help/_generated/models/asset_profile.py +28 -0
- thingsboard_cli/help/_generated/models/asset_profile_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/asset_profile_id.py +16 -0
- thingsboard_cli/help/_generated/models/asset_profile_info.py +21 -0
- thingsboard_cli/help/_generated/models/asset_search_query.py +33 -0
- thingsboard_cli/help/_generated/models/asset_search_query_filter.py +40 -0
- thingsboard_cli/help/_generated/models/asset_type_filter.py +19 -0
- thingsboard_cli/help/_generated/models/attribute_data.py +14 -0
- thingsboard_cli/help/_generated/models/attribute_export_data.py +18 -0
- thingsboard_cli/help/_generated/models/attribute_scope.py +8 -0
- thingsboard_cli/help/_generated/models/attributes_entity_view.py +14 -0
- thingsboard_cli/help/_generated/models/attributes_immediate_output_strategy.py +21 -0
- thingsboard_cli/help/_generated/models/attributes_output.py +41 -0
- thingsboard_cli/help/_generated/models/attributes_output_strategy.py +28 -0
- thingsboard_cli/help/_generated/models/attributes_rule_chain_output_strategy.py +16 -0
- thingsboard_cli/help/_generated/models/audit_log.py +39 -0
- thingsboard_cli/help/_generated/models/audit_log_id.py +12 -0
- thingsboard_cli/help/_generated/models/authentication_protocol.py +8 -0
- thingsboard_cli/help/_generated/models/authority.py +8 -0
- thingsboard_cli/help/_generated/models/auto_version_create_config.py +18 -0
- thingsboard_cli/help/_generated/models/available_entity_keys.py +17 -0
- thingsboard_cli/help/_generated/models/available_entity_keys_v2.py +30 -0
- thingsboard_cli/help/_generated/models/aws_sns_sms_provider_configuration.py +19 -0
- thingsboard_cli/help/_generated/models/axis_position.py +8 -0
- thingsboard_cli/help/_generated/models/azure_open_ai_chat_model_config.py +36 -0
- thingsboard_cli/help/_generated/models/azure_open_ai_provider_config.py +14 -0
- thingsboard_cli/help/_generated/models/backup_code_two_fa_account_config.py +19 -0
- thingsboard_cli/help/_generated/models/backup_code_two_fa_provider_config.py +17 -0
- thingsboard_cli/help/_generated/models/badge_position.py +8 -0
- thingsboard_cli/help/_generated/models/bar_series_settings.py +55 -0
- thingsboard_cli/help/_generated/models/base_read_ts_kv_query.py +34 -0
- thingsboard_cli/help/_generated/models/basic.py +18 -0
- thingsboard_cli/help/_generated/models/blob_entity_id.py +16 -0
- thingsboard_cli/help/_generated/models/blob_entity_info.py +34 -0
- thingsboard_cli/help/_generated/models/blob_entity_with_customer_info.py +36 -0
- thingsboard_cli/help/_generated/models/boolean_filter_predicate.py +39 -0
- thingsboard_cli/help/_generated/models/boolean_operation.py +8 -0
- thingsboard_cli/help/_generated/models/border_length.py +8 -0
- thingsboard_cli/help/_generated/models/border_type.py +8 -0
- thingsboard_cli/help/_generated/models/branch_info.py +13 -0
- thingsboard_cli/help/_generated/models/bulk_import_column_type.py +8 -0
- thingsboard_cli/help/_generated/models/bulk_import_request.py +37 -0
- thingsboard_cli/help/_generated/models/bulk_import_result_asset.py +15 -0
- thingsboard_cli/help/_generated/models/bulk_import_result_device.py +15 -0
- thingsboard_cli/help/_generated/models/bulk_import_result_edge.py +15 -0
- thingsboard_cli/help/_generated/models/button.py +21 -0
- thingsboard_cli/help/_generated/models/calculated_field.py +480 -0
- thingsboard_cli/help/_generated/models/calculated_field_configuration.py +458 -0
- thingsboard_cli/help/_generated/models/calculated_field_debug_event_filter.py +44 -0
- thingsboard_cli/help/_generated/models/calculated_field_id.py +16 -0
- thingsboard_cli/help/_generated/models/calculated_field_info.py +481 -0
- thingsboard_cli/help/_generated/models/calculated_field_type.py +8 -0
- thingsboard_cli/help/_generated/models/captcha_params.py +40 -0
- thingsboard_cli/help/_generated/models/cell_settings.py +36 -0
- thingsboard_cli/help/_generated/models/cf_argument_dynamic_source_configuration.py +33 -0
- thingsboard_cli/help/_generated/models/cf_reprocessing_job_configuration.py +37 -0
- thingsboard_cli/help/_generated/models/cf_reprocessing_job_result.py +35 -0
- thingsboard_cli/help/_generated/models/cf_reprocessing_task_failure.py +24 -0
- thingsboard_cli/help/_generated/models/cf_reprocessing_task_result.py +39 -0
- thingsboard_cli/help/_generated/models/cf_reprocessing_validation_result.py +17 -0
- thingsboard_cli/help/_generated/models/change_password_request.py +13 -0
- thingsboard_cli/help/_generated/models/chart_fill_settings.py +23 -0
- thingsboard_cli/help/_generated/models/chart_fill_settings_gradient.py +13 -0
- thingsboard_cli/help/_generated/models/chart_fill_type.py +8 -0
- thingsboard_cli/help/_generated/models/chart_label_position.py +8 -0
- thingsboard_cli/help/_generated/models/chart_line_type.py +8 -0
- thingsboard_cli/help/_generated/models/chart_shape.py +8 -0
- thingsboard_cli/help/_generated/models/chat_type.py +8 -0
- thingsboard_cli/help/_generated/models/check_pre_provisioned_devices_device_profile_provision_configuration.py +17 -0
- thingsboard_cli/help/_generated/models/checksum_algorithm.py +8 -0
- thingsboard_cli/help/_generated/models/claim_request.py +12 -0
- thingsboard_cli/help/_generated/models/clear_rule.py +15 -0
- thingsboard_cli/help/_generated/models/client_attributes_querying_snmp_communication_config.py +31 -0
- thingsboard_cli/help/_generated/models/cmassignee_type.py +8 -0
- thingsboard_cli/help/_generated/models/cmitem_link_type.py +8 -0
- thingsboard_cli/help/_generated/models/cmitem_type.py +8 -0
- thingsboard_cli/help/_generated/models/cmscope.py +8 -0
- thingsboard_cli/help/_generated/models/coap_device_profile_transport_configuration.py +60 -0
- thingsboard_cli/help/_generated/models/coap_device_transport_configuration.py +23 -0
- thingsboard_cli/help/_generated/models/coap_device_type_configuration.py +42 -0
- thingsboard_cli/help/_generated/models/color_range.py +14 -0
- thingsboard_cli/help/_generated/models/column_mapping.py +16 -0
- thingsboard_cli/help/_generated/models/column_settings.py +47 -0
- thingsboard_cli/help/_generated/models/comparison_duration.py +8 -0
- thingsboard_cli/help/_generated/models/comparison_ts_value.py +20 -0
- thingsboard_cli/help/_generated/models/complex_filter_predicate.py +21 -0
- thingsboard_cli/help/_generated/models/complex_operation.py +8 -0
- thingsboard_cli/help/_generated/models/complex_version_create_request.py +39 -0
- thingsboard_cli/help/_generated/models/component_clustering_mode.py +8 -0
- thingsboard_cli/help/_generated/models/component_descriptor.py +37 -0
- thingsboard_cli/help/_generated/models/component_descriptor_id.py +12 -0
- thingsboard_cli/help/_generated/models/component_lifecycle_event.py +8 -0
- thingsboard_cli/help/_generated/models/component_scope.py +8 -0
- thingsboard_cli/help/_generated/models/component_type.py +8 -0
- thingsboard_cli/help/_generated/models/contact_based_object.py +23 -0
- thingsboard_cli/help/_generated/models/converter.py +42 -0
- thingsboard_cli/help/_generated/models/converter_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/converter_id.py +16 -0
- thingsboard_cli/help/_generated/models/converter_type.py +8 -0
- thingsboard_cli/help/_generated/models/converters_info.py +14 -0
- thingsboard_cli/help/_generated/models/create_report_request.py +13 -0
- thingsboard_cli/help/_generated/models/csv_report_template_config.py +1041 -0
- thingsboard_cli/help/_generated/models/current_owner_dynamic_source_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/custom_interval.py +19 -0
- thingsboard_cli/help/_generated/models/custom_menu.py +93 -0
- thingsboard_cli/help/_generated/models/custom_menu_config.py +64 -0
- thingsboard_cli/help/_generated/models/custom_menu_delete_result.py +28 -0
- thingsboard_cli/help/_generated/models/custom_menu_id.py +12 -0
- thingsboard_cli/help/_generated/models/custom_menu_info.py +35 -0
- thingsboard_cli/help/_generated/models/custom_menu_item.py +36 -0
- thingsboard_cli/help/_generated/models/custom_mobile_page.py +23 -0
- thingsboard_cli/help/_generated/models/custom_time_schedule.py +26 -0
- thingsboard_cli/help/_generated/models/custom_time_schedule_item.py +15 -0
- thingsboard_cli/help/_generated/models/customer.py +40 -0
- thingsboard_cli/help/_generated/models/customer_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/customer_id.py +16 -0
- thingsboard_cli/help/_generated/models/customer_info.py +48 -0
- thingsboard_cli/help/_generated/models/customer_users_filter.py +17 -0
- thingsboard_cli/help/_generated/models/dashboard.py +58 -0
- thingsboard_cli/help/_generated/models/dashboard_component.py +286 -0
- thingsboard_cli/help/_generated/models/dashboard_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/dashboard_id.py +16 -0
- thingsboard_cli/help/_generated/models/dashboard_info.py +66 -0
- thingsboard_cli/help/_generated/models/dashboard_page.py +23 -0
- thingsboard_cli/help/_generated/models/dashboard_report_config.py +21 -0
- thingsboard_cli/help/_generated/models/data_key.py +197 -0
- thingsboard_cli/help/_generated/models/data_key_comparison_settings.py +14 -0
- thingsboard_cli/help/_generated/models/data_key_settings.py +143 -0
- thingsboard_cli/help/_generated/models/data_key_settings_type.py +8 -0
- thingsboard_cli/help/_generated/models/data_source.py +231 -0
- thingsboard_cli/help/_generated/models/data_source_type.py +8 -0
- thingsboard_cli/help/_generated/models/data_type.py +8 -0
- thingsboard_cli/help/_generated/models/day_interval.py +18 -0
- thingsboard_cli/help/_generated/models/debug_converter_event_filter.py +35 -0
- thingsboard_cli/help/_generated/models/debug_integration_event_filter.py +34 -0
- thingsboard_cli/help/_generated/models/debug_settings.py +14 -0
- thingsboard_cli/help/_generated/models/default_coap_device_type_configuration.py +35 -0
- thingsboard_cli/help/_generated/models/default_dashboard_params.py +13 -0
- thingsboard_cli/help/_generated/models/default_data_key_settings.py +19 -0
- thingsboard_cli/help/_generated/models/default_device_configuration.py +19 -0
- thingsboard_cli/help/_generated/models/default_device_profile_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/default_device_profile_transport_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/default_device_transport_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/default_menu_item.py +25 -0
- thingsboard_cli/help/_generated/models/default_mobile_page.py +26 -0
- thingsboard_cli/help/_generated/models/default_page_id.py +8 -0
- thingsboard_cli/help/_generated/models/default_rule_chain_create_request.py +12 -0
- thingsboard_cli/help/_generated/models/default_tenant_profile_configuration.py +105 -0
- thingsboard_cli/help/_generated/models/delivery_method_notification_template.py +62 -0
- thingsboard_cli/help/_generated/models/device.py +102 -0
- thingsboard_cli/help/_generated/models/device_activity_notification_rule_trigger_config.py +25 -0
- thingsboard_cli/help/_generated/models/device_activity_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/device_configuration.py +22 -0
- thingsboard_cli/help/_generated/models/device_credentials.py +31 -0
- thingsboard_cli/help/_generated/models/device_credentials_id.py +12 -0
- thingsboard_cli/help/_generated/models/device_credentials_type.py +8 -0
- thingsboard_cli/help/_generated/models/device_data.py +79 -0
- thingsboard_cli/help/_generated/models/device_event.py +8 -0
- thingsboard_cli/help/_generated/models/device_export_data.py +545 -0
- thingsboard_cli/help/_generated/models/device_group_ota_package.py +24 -0
- thingsboard_cli/help/_generated/models/device_id.py +16 -0
- thingsboard_cli/help/_generated/models/device_info.py +111 -0
- thingsboard_cli/help/_generated/models/device_profile.py +262 -0
- thingsboard_cli/help/_generated/models/device_profile_configuration.py +19 -0
- thingsboard_cli/help/_generated/models/device_profile_data.py +225 -0
- thingsboard_cli/help/_generated/models/device_profile_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/device_profile_id.py +16 -0
- thingsboard_cli/help/_generated/models/device_profile_info.py +29 -0
- thingsboard_cli/help/_generated/models/device_profile_provision_configuration.py +32 -0
- thingsboard_cli/help/_generated/models/device_profile_provision_type.py +8 -0
- thingsboard_cli/help/_generated/models/device_profile_transport_configuration.py +193 -0
- thingsboard_cli/help/_generated/models/device_profile_type.py +8 -0
- thingsboard_cli/help/_generated/models/device_search_query.py +33 -0
- thingsboard_cli/help/_generated/models/device_search_query_filter.py +40 -0
- thingsboard_cli/help/_generated/models/device_transport_configuration.py +66 -0
- thingsboard_cli/help/_generated/models/device_transport_type.py +8 -0
- thingsboard_cli/help/_generated/models/device_type_filter.py +19 -0
- thingsboard_cli/help/_generated/models/direction.py +8 -0
- thingsboard_cli/help/_generated/models/disabled_device_profile_provision_configuration.py +17 -0
- thingsboard_cli/help/_generated/models/divider_component.py +47 -0
- thingsboard_cli/help/_generated/models/domain.py +24 -0
- thingsboard_cli/help/_generated/models/domain_id.py +16 -0
- thingsboard_cli/help/_generated/models/domain_info.py +38 -0
- thingsboard_cli/help/_generated/models/doughnut_layout.py +8 -0
- thingsboard_cli/help/_generated/models/dummy_job_configuration.py +37 -0
- thingsboard_cli/help/_generated/models/dummy_job_result.py +35 -0
- thingsboard_cli/help/_generated/models/dummy_task_failure.py +14 -0
- thingsboard_cli/help/_generated/models/dummy_task_result.py +29 -0
- thingsboard_cli/help/_generated/models/duration_alarm_condition.py +158 -0
- thingsboard_cli/help/_generated/models/duration_alarm_condition_spec.py +62 -0
- thingsboard_cli/help/_generated/models/dynamic_value_boolean.py +18 -0
- thingsboard_cli/help/_generated/models/dynamic_value_double.py +18 -0
- thingsboard_cli/help/_generated/models/dynamic_value_integer.py +18 -0
- thingsboard_cli/help/_generated/models/dynamic_value_long.py +18 -0
- thingsboard_cli/help/_generated/models/dynamic_value_source_type.py +8 -0
- thingsboard_cli/help/_generated/models/dynamic_value_string.py +18 -0
- thingsboard_cli/help/_generated/models/edge.py +31 -0
- thingsboard_cli/help/_generated/models/edge_communication_failure_notification_rule_trigger_config.py +20 -0
- thingsboard_cli/help/_generated/models/edge_communication_failure_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/edge_connection_notification_rule_trigger_config.py +24 -0
- thingsboard_cli/help/_generated/models/edge_connection_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/edge_connectivity_event.py +8 -0
- thingsboard_cli/help/_generated/models/edge_event.py +38 -0
- thingsboard_cli/help/_generated/models/edge_event_action_type.py +8 -0
- thingsboard_cli/help/_generated/models/edge_event_id.py +12 -0
- thingsboard_cli/help/_generated/models/edge_event_type.py +8 -0
- thingsboard_cli/help/_generated/models/edge_id.py +16 -0
- thingsboard_cli/help/_generated/models/edge_info.py +39 -0
- thingsboard_cli/help/_generated/models/edge_instructions.py +12 -0
- thingsboard_cli/help/_generated/models/edge_search_query.py +33 -0
- thingsboard_cli/help/_generated/models/edge_search_query_filter.py +40 -0
- thingsboard_cli/help/_generated/models/edge_type_filter.py +19 -0
- thingsboard_cli/help/_generated/models/edqs_api_mode.py +8 -0
- thingsboard_cli/help/_generated/models/edqs_state.py +20 -0
- thingsboard_cli/help/_generated/models/edqs_sync_request.py +15 -0
- thingsboard_cli/help/_generated/models/edqs_sync_status.py +8 -0
- thingsboard_cli/help/_generated/models/efento_coap_device_type_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/email_delivery_method_notification_template.py +19 -0
- thingsboard_cli/help/_generated/models/email_two_fa_account_config.py +18 -0
- thingsboard_cli/help/_generated/models/email_two_fa_provider_config.py +17 -0
- thingsboard_cli/help/_generated/models/enterprise_captcha_params.py +22 -0
- thingsboard_cli/help/_generated/models/entities_by_group_name_filter.py +26 -0
- thingsboard_cli/help/_generated/models/entities_limit_notification_rule_trigger_config.py +24 -0
- thingsboard_cli/help/_generated/models/entities_limit_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/entity.py +14 -0
- thingsboard_cli/help/_generated/models/entity_action_notification_rule_trigger_config.py +26 -0
- thingsboard_cli/help/_generated/models/entity_action_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/entity_aggregation_calculated_field_configuration.py +210 -0
- thingsboard_cli/help/_generated/models/entity_alias.py +211 -0
- thingsboard_cli/help/_generated/models/entity_coordinates.py +13 -0
- thingsboard_cli/help/_generated/models/entity_count_query.py +319 -0
- thingsboard_cli/help/_generated/models/entity_data.py +35 -0
- thingsboard_cli/help/_generated/models/entity_data_diff.py +695 -0
- thingsboard_cli/help/_generated/models/entity_data_info.py +17 -0
- thingsboard_cli/help/_generated/models/entity_data_page_link.py +34 -0
- thingsboard_cli/help/_generated/models/entity_data_query.py +340 -0
- thingsboard_cli/help/_generated/models/entity_data_sort_order.py +25 -0
- thingsboard_cli/help/_generated/models/entity_export_data.py +693 -0
- thingsboard_cli/help/_generated/models/entity_export_settings.py +18 -0
- thingsboard_cli/help/_generated/models/entity_filter.py +208 -0
- thingsboard_cli/help/_generated/models/entity_group.py +79 -0
- thingsboard_cli/help/_generated/models/entity_group_export_data.py +555 -0
- thingsboard_cli/help/_generated/models/entity_group_filter.py +24 -0
- thingsboard_cli/help/_generated/models/entity_group_id.py +16 -0
- thingsboard_cli/help/_generated/models/entity_group_info.py +80 -0
- thingsboard_cli/help/_generated/models/entity_group_info_owner_ids_inner.py +16 -0
- thingsboard_cli/help/_generated/models/entity_group_list_filter.py +21 -0
- thingsboard_cli/help/_generated/models/entity_group_name_filter.py +21 -0
- thingsboard_cli/help/_generated/models/entity_id.py +158 -0
- thingsboard_cli/help/_generated/models/entity_info.py +18 -0
- thingsboard_cli/help/_generated/models/entity_key.py +16 -0
- thingsboard_cli/help/_generated/models/entity_key_type.py +8 -0
- thingsboard_cli/help/_generated/models/entity_key_value_type.py +8 -0
- thingsboard_cli/help/_generated/models/entity_list_filter.py +21 -0
- thingsboard_cli/help/_generated/models/entity_load_error.py +20 -0
- thingsboard_cli/help/_generated/models/entity_name_filter.py +21 -0
- thingsboard_cli/help/_generated/models/entity_relation.py +25 -0
- thingsboard_cli/help/_generated/models/entity_relation_info.py +27 -0
- thingsboard_cli/help/_generated/models/entity_relations_query.py +39 -0
- thingsboard_cli/help/_generated/models/entity_search_direction.py +8 -0
- thingsboard_cli/help/_generated/models/entity_subtype.py +19 -0
- thingsboard_cli/help/_generated/models/entity_table_component.py +284 -0
- thingsboard_cli/help/_generated/models/entity_type.py +8 -0
- thingsboard_cli/help/_generated/models/entity_type_filter.py +20 -0
- thingsboard_cli/help/_generated/models/entity_type_load_result.py +21 -0
- thingsboard_cli/help/_generated/models/entity_type_version_create_config.py +23 -0
- thingsboard_cli/help/_generated/models/entity_type_version_load_config.py +20 -0
- thingsboard_cli/help/_generated/models/entity_type_version_load_request.py +35 -0
- thingsboard_cli/help/_generated/models/entity_version.py +15 -0
- thingsboard_cli/help/_generated/models/entity_view.py +42 -0
- thingsboard_cli/help/_generated/models/entity_view_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/entity_view_id.py +16 -0
- thingsboard_cli/help/_generated/models/entity_view_info.py +50 -0
- thingsboard_cli/help/_generated/models/entity_view_search_query.py +33 -0
- thingsboard_cli/help/_generated/models/entity_view_search_query_filter.py +40 -0
- thingsboard_cli/help/_generated/models/entity_view_type_filter.py +19 -0
- thingsboard_cli/help/_generated/models/error_component.py +53 -0
- thingsboard_cli/help/_generated/models/error_component_all_of_exception.py +35 -0
- thingsboard_cli/help/_generated/models/error_component_all_of_exception_cause.py +26 -0
- thingsboard_cli/help/_generated/models/error_component_all_of_exception_cause_stack_trace.py +19 -0
- thingsboard_cli/help/_generated/models/error_event_filter.py +23 -0
- thingsboard_cli/help/_generated/models/escalated_notification_rule_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/event_filter.py +109 -0
- thingsboard_cli/help/_generated/models/event_id.py +12 -0
- thingsboard_cli/help/_generated/models/event_info.py +28 -0
- thingsboard_cli/help/_generated/models/event_type.py +8 -0
- thingsboard_cli/help/_generated/models/exportable_entity.py +20 -0
- thingsboard_cli/help/_generated/models/failure.py +17 -0
- thingsboard_cli/help/_generated/models/favicon.py +12 -0
- thingsboard_cli/help/_generated/models/features_info.py +17 -0
- thingsboard_cli/help/_generated/models/filter.py +123 -0
- thingsboard_cli/help/_generated/models/filter_predicate_value_boolean.py +25 -0
- thingsboard_cli/help/_generated/models/filter_predicate_value_double.py +25 -0
- thingsboard_cli/help/_generated/models/filter_predicate_value_integer.py +25 -0
- thingsboard_cli/help/_generated/models/filter_predicate_value_long.py +25 -0
- thingsboard_cli/help/_generated/models/filter_predicate_value_string.py +25 -0
- thingsboard_cli/help/_generated/models/fixed_time_window.py +13 -0
- thingsboard_cli/help/_generated/models/font.py +21 -0
- thingsboard_cli/help/_generated/models/font_style.py +8 -0
- thingsboard_cli/help/_generated/models/font_weight.py +8 -0
- thingsboard_cli/help/_generated/models/geofencing_calculated_field_configuration.py +124 -0
- thingsboard_cli/help/_generated/models/geofencing_report_strategy.py +8 -0
- thingsboard_cli/help/_generated/models/git_hub_models_chat_model_config.py +34 -0
- thingsboard_cli/help/_generated/models/git_hub_models_provider_config.py +12 -0
- thingsboard_cli/help/_generated/models/google_ai_gemini_chat_model_config.py +35 -0
- thingsboard_cli/help/_generated/models/google_ai_gemini_provider_config.py +12 -0
- thingsboard_cli/help/_generated/models/google_vertex_ai_gemini_chat_model_config.py +38 -0
- thingsboard_cli/help/_generated/models/google_vertex_ai_gemini_provider_config.py +15 -0
- thingsboard_cli/help/_generated/models/group_permission.py +26 -0
- thingsboard_cli/help/_generated/models/group_permission_id.py +16 -0
- thingsboard_cli/help/_generated/models/group_permission_info.py +51 -0
- thingsboard_cli/help/_generated/models/has_id_object.py +12 -0
- thingsboard_cli/help/_generated/models/header_footer.py +716 -0
- thingsboard_cli/help/_generated/models/heading.py +37 -0
- thingsboard_cli/help/_generated/models/heading_component.py +268 -0
- thingsboard_cli/help/_generated/models/history.py +34 -0
- thingsboard_cli/help/_generated/models/home_dashboard.py +59 -0
- thingsboard_cli/help/_generated/models/home_dashboard_info.py +18 -0
- thingsboard_cli/help/_generated/models/home_dashboard_params.py +13 -0
- thingsboard_cli/help/_generated/models/home_menu_item.py +39 -0
- thingsboard_cli/help/_generated/models/home_menu_item_type.py +8 -0
- thingsboard_cli/help/_generated/models/hour_interval.py +18 -0
- thingsboard_cli/help/_generated/models/image_alignment.py +8 -0
- thingsboard_cli/help/_generated/models/image_component.py +276 -0
- thingsboard_cli/help/_generated/models/image_source_type.py +8 -0
- thingsboard_cli/help/_generated/models/image_width_type.py +8 -0
- thingsboard_cli/help/_generated/models/insets.py +15 -0
- thingsboard_cli/help/_generated/models/integration.py +44 -0
- thingsboard_cli/help/_generated/models/integration_converters_info.py +20 -0
- thingsboard_cli/help/_generated/models/integration_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/integration_id.py +16 -0
- thingsboard_cli/help/_generated/models/integration_info.py +40 -0
- thingsboard_cli/help/_generated/models/integration_lifecycle_event_notification_rule_trigger_config.py +29 -0
- thingsboard_cli/help/_generated/models/integration_lifecycle_event_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/integration_type.py +8 -0
- thingsboard_cli/help/_generated/models/interval.py +16 -0
- thingsboard_cli/help/_generated/models/interval_type.py +8 -0
- thingsboard_cli/help/_generated/models/job.py +270 -0
- thingsboard_cli/help/_generated/models/job_configuration.py +213 -0
- thingsboard_cli/help/_generated/models/job_id.py +16 -0
- thingsboard_cli/help/_generated/models/job_result.py +67 -0
- thingsboard_cli/help/_generated/models/job_status.py +8 -0
- thingsboard_cli/help/_generated/models/job_type.py +8 -0
- thingsboard_cli/help/_generated/models/json_transport_payload_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/jwt_pair.py +17 -0
- thingsboard_cli/help/_generated/models/jwt_settings.py +15 -0
- thingsboard_cli/help/_generated/models/key_filter.py +116 -0
- thingsboard_cli/help/_generated/models/key_filter_predicate.py +101 -0
- thingsboard_cli/help/_generated/models/key_info.py +19 -0
- thingsboard_cli/help/_generated/models/key_sample.py +13 -0
- thingsboard_cli/help/_generated/models/last_visited_dashboard_info.py +15 -0
- thingsboard_cli/help/_generated/models/latest_chart_component.py +297 -0
- thingsboard_cli/help/_generated/models/legend_config.py +21 -0
- thingsboard_cli/help/_generated/models/legend_position.py +8 -0
- thingsboard_cli/help/_generated/models/license_usage_info.py +20 -0
- thingsboard_cli/help/_generated/models/life_cycle_event_filter.py +32 -0
- thingsboard_cli/help/_generated/models/limited_api.py +8 -0
- thingsboard_cli/help/_generated/models/line_series_settings.py +69 -0
- thingsboard_cli/help/_generated/models/line_series_step_type.py +8 -0
- thingsboard_cli/help/_generated/models/link_type.py +8 -0
- thingsboard_cli/help/_generated/models/login401_response.py +19 -0
- thingsboard_cli/help/_generated/models/login_endpoint_api.py +8 -0
- thingsboard_cli/help/_generated/models/login_mobile_info.py +85 -0
- thingsboard_cli/help/_generated/models/login_request.py +13 -0
- thingsboard_cli/help/_generated/models/login_response.py +13 -0
- thingsboard_cli/help/_generated/models/login_white_labeling_params.py +56 -0
- thingsboard_cli/help/_generated/models/lw_m2_mbootstrap_server_credential.py +12 -0
- thingsboard_cli/help/_generated/models/lw_m2_mserver_security_config_default.py +25 -0
- thingsboard_cli/help/_generated/models/lw_m2m_instance.py +23 -0
- thingsboard_cli/help/_generated/models/lw_m2m_object.py +33 -0
- thingsboard_cli/help/_generated/models/lw_m2m_resource_observe.py +17 -0
- thingsboard_cli/help/_generated/models/lw_m2m_version.py +12 -0
- thingsboard_cli/help/_generated/models/lwm2m_device_profile_transport_configuration.py +78 -0
- thingsboard_cli/help/_generated/models/lwm2m_device_transport_configuration.py +23 -0
- thingsboard_cli/help/_generated/models/mapper_type.py +8 -0
- thingsboard_cli/help/_generated/models/mapping.py +24 -0
- thingsboard_cli/help/_generated/models/menu_item.py +63 -0
- thingsboard_cli/help/_generated/models/menu_item_type.py +8 -0
- thingsboard_cli/help/_generated/models/merged_group_permission_info.py +19 -0
- thingsboard_cli/help/_generated/models/merged_group_type_permission_info.py +18 -0
- thingsboard_cli/help/_generated/models/merged_user_permissions.py +37 -0
- thingsboard_cli/help/_generated/models/microsoft_teams_delivery_method_notification_template.py +35 -0
- thingsboard_cli/help/_generated/models/microsoft_teams_notification_target_config.py +25 -0
- thingsboard_cli/help/_generated/models/mistral_ai_chat_model_config.py +34 -0
- thingsboard_cli/help/_generated/models/mistral_ai_provider_config.py +12 -0
- thingsboard_cli/help/_generated/models/mobile_app.py +48 -0
- thingsboard_cli/help/_generated/models/mobile_app_bundle.py +183 -0
- thingsboard_cli/help/_generated/models/mobile_app_bundle_id.py +16 -0
- thingsboard_cli/help/_generated/models/mobile_app_bundle_info.py +200 -0
- thingsboard_cli/help/_generated/models/mobile_app_delivery_method_notification_template.py +20 -0
- thingsboard_cli/help/_generated/models/mobile_app_id.py +16 -0
- thingsboard_cli/help/_generated/models/mobile_app_notification_delivery_method_config.py +19 -0
- thingsboard_cli/help/_generated/models/mobile_app_status.py +8 -0
- thingsboard_cli/help/_generated/models/mobile_app_version_info.py +15 -0
- thingsboard_cli/help/_generated/models/mobile_layout_config.py +52 -0
- thingsboard_cli/help/_generated/models/mobile_page.py +51 -0
- thingsboard_cli/help/_generated/models/mobile_page_type.py +8 -0
- thingsboard_cli/help/_generated/models/mobile_redirect_params.py +13 -0
- thingsboard_cli/help/_generated/models/mobile_self_registration_params.py +116 -0
- thingsboard_cli/help/_generated/models/mobile_session_info.py +12 -0
- thingsboard_cli/help/_generated/models/model.py +14 -0
- thingsboard_cli/help/_generated/models/model_none.py +33 -0
- thingsboard_cli/help/_generated/models/month_interval.py +18 -0
- thingsboard_cli/help/_generated/models/mqtt_device_profile_transport_configuration.py +41 -0
- thingsboard_cli/help/_generated/models/mqtt_device_transport_configuration.py +16 -0
- thingsboard_cli/help/_generated/models/name_conflict_policy.py +8 -0
- thingsboard_cli/help/_generated/models/new_platform_version_notification_rule_trigger_config.py +19 -0
- thingsboard_cli/help/_generated/models/new_platform_version_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/no_data_filter_predicate.py +27 -0
- thingsboard_cli/help/_generated/models/no_sec_lw_m2_mbootstrap_server_credential.py +28 -0
- thingsboard_cli/help/_generated/models/node_connection_info.py +14 -0
- thingsboard_cli/help/_generated/models/none.py +16 -0
- thingsboard_cli/help/_generated/models/notification.py +43 -0
- thingsboard_cli/help/_generated/models/notification_delivery_method.py +8 -0
- thingsboard_cli/help/_generated/models/notification_delivery_method_config.py +28 -0
- thingsboard_cli/help/_generated/models/notification_id.py +16 -0
- thingsboard_cli/help/_generated/models/notification_info.py +19 -0
- thingsboard_cli/help/_generated/models/notification_pref.py +13 -0
- thingsboard_cli/help/_generated/models/notification_request.py +126 -0
- thingsboard_cli/help/_generated/models/notification_request_config.py +18 -0
- thingsboard_cli/help/_generated/models/notification_request_id.py +16 -0
- thingsboard_cli/help/_generated/models/notification_request_info.py +131 -0
- thingsboard_cli/help/_generated/models/notification_request_preview.py +66 -0
- thingsboard_cli/help/_generated/models/notification_request_stats.py +16 -0
- thingsboard_cli/help/_generated/models/notification_request_status.py +8 -0
- thingsboard_cli/help/_generated/models/notification_rule.py +256 -0
- thingsboard_cli/help/_generated/models/notification_rule_config.py +12 -0
- thingsboard_cli/help/_generated/models/notification_rule_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/notification_rule_id.py +16 -0
- thingsboard_cli/help/_generated/models/notification_rule_info.py +261 -0
- thingsboard_cli/help/_generated/models/notification_rule_recipients_config.py +94 -0
- thingsboard_cli/help/_generated/models/notification_rule_trigger_config.py +159 -0
- thingsboard_cli/help/_generated/models/notification_rule_trigger_type.py +8 -0
- thingsboard_cli/help/_generated/models/notification_settings.py +29 -0
- thingsboard_cli/help/_generated/models/notification_status.py +8 -0
- thingsboard_cli/help/_generated/models/notification_target.py +109 -0
- thingsboard_cli/help/_generated/models/notification_target_config.py +99 -0
- thingsboard_cli/help/_generated/models/notification_target_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/notification_target_id.py +16 -0
- thingsboard_cli/help/_generated/models/notification_template.py +85 -0
- thingsboard_cli/help/_generated/models/notification_template_config.py +72 -0
- thingsboard_cli/help/_generated/models/notification_template_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/notification_template_id.py +16 -0
- thingsboard_cli/help/_generated/models/notification_type.py +8 -0
- thingsboard_cli/help/_generated/models/numeric_filter_predicate.py +39 -0
- thingsboard_cli/help/_generated/models/numeric_operation.py +8 -0
- thingsboard_cli/help/_generated/models/oauth2_basic_mapper_config.py +24 -0
- thingsboard_cli/help/_generated/models/oauth2_client.py +77 -0
- thingsboard_cli/help/_generated/models/oauth2_client_id.py +16 -0
- thingsboard_cli/help/_generated/models/oauth2_client_info.py +25 -0
- thingsboard_cli/help/_generated/models/oauth2_client_login_info.py +14 -0
- thingsboard_cli/help/_generated/models/oauth2_client_registration_template.py +70 -0
- thingsboard_cli/help/_generated/models/oauth2_client_registration_template_id.py +12 -0
- thingsboard_cli/help/_generated/models/oauth2_custom_mapper_config.py +15 -0
- thingsboard_cli/help/_generated/models/oauth2_mapper_config.py +44 -0
- thingsboard_cli/help/_generated/models/object_attributes.py +28 -0
- thingsboard_cli/help/_generated/models/object_type.py +8 -0
- thingsboard_cli/help/_generated/models/ollama_auth.py +30 -0
- thingsboard_cli/help/_generated/models/ollama_chat_model_config.py +54 -0
- thingsboard_cli/help/_generated/models/ollama_provider_config.py +32 -0
- thingsboard_cli/help/_generated/models/open_ai_chat_model_config.py +35 -0
- thingsboard_cli/help/_generated/models/open_ai_provider_config.py +13 -0
- thingsboard_cli/help/_generated/models/operation.py +8 -0
- thingsboard_cli/help/_generated/models/originator_entity_owner_users_filter.py +16 -0
- thingsboard_cli/help/_generated/models/ota_package.py +40 -0
- thingsboard_cli/help/_generated/models/ota_package_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/ota_package_id.py +16 -0
- thingsboard_cli/help/_generated/models/ota_package_info.py +39 -0
- thingsboard_cli/help/_generated/models/ota_package_type.py +8 -0
- thingsboard_cli/help/_generated/models/other_configuration.py +25 -0
- thingsboard_cli/help/_generated/models/output.py +67 -0
- thingsboard_cli/help/_generated/models/page_break_component.py +23 -0
- thingsboard_cli/help/_generated/models/page_data_ai_model.py +236 -0
- thingsboard_cli/help/_generated/models/page_data_alarm_comment_info.py +42 -0
- thingsboard_cli/help/_generated/models/page_data_alarm_data.py +74 -0
- thingsboard_cli/help/_generated/models/page_data_alarm_info.py +65 -0
- thingsboard_cli/help/_generated/models/page_data_alarm_rule_definition.py +484 -0
- thingsboard_cli/help/_generated/models/page_data_alarm_rule_definition_info.py +485 -0
- thingsboard_cli/help/_generated/models/page_data_api_key_info.py +32 -0
- thingsboard_cli/help/_generated/models/page_data_asset.py +35 -0
- thingsboard_cli/help/_generated/models/page_data_asset_info.py +43 -0
- thingsboard_cli/help/_generated/models/page_data_asset_profile.py +36 -0
- thingsboard_cli/help/_generated/models/page_data_asset_profile_info.py +29 -0
- thingsboard_cli/help/_generated/models/page_data_audit_log.py +47 -0
- thingsboard_cli/help/_generated/models/page_data_blob_entity_with_customer_info.py +35 -0
- thingsboard_cli/help/_generated/models/page_data_calculated_field.py +488 -0
- thingsboard_cli/help/_generated/models/page_data_calculated_field_info.py +489 -0
- thingsboard_cli/help/_generated/models/page_data_contact_based_object.py +31 -0
- thingsboard_cli/help/_generated/models/page_data_converter.py +50 -0
- thingsboard_cli/help/_generated/models/page_data_custom_menu_info.py +43 -0
- thingsboard_cli/help/_generated/models/page_data_customer.py +48 -0
- thingsboard_cli/help/_generated/models/page_data_customer_info.py +56 -0
- thingsboard_cli/help/_generated/models/page_data_dashboard_info.py +74 -0
- thingsboard_cli/help/_generated/models/page_data_device.py +110 -0
- thingsboard_cli/help/_generated/models/page_data_device_info.py +119 -0
- thingsboard_cli/help/_generated/models/page_data_device_profile.py +270 -0
- thingsboard_cli/help/_generated/models/page_data_device_profile_info.py +37 -0
- thingsboard_cli/help/_generated/models/page_data_domain_info.py +46 -0
- thingsboard_cli/help/_generated/models/page_data_edge.py +39 -0
- thingsboard_cli/help/_generated/models/page_data_edge_event.py +46 -0
- thingsboard_cli/help/_generated/models/page_data_edge_info.py +47 -0
- thingsboard_cli/help/_generated/models/page_data_entity_data.py +43 -0
- thingsboard_cli/help/_generated/models/page_data_entity_group_info.py +36 -0
- thingsboard_cli/help/_generated/models/page_data_entity_info.py +26 -0
- thingsboard_cli/help/_generated/models/page_data_entity_subtype.py +27 -0
- thingsboard_cli/help/_generated/models/page_data_entity_version.py +23 -0
- thingsboard_cli/help/_generated/models/page_data_entity_view.py +50 -0
- thingsboard_cli/help/_generated/models/page_data_entity_view_info.py +58 -0
- thingsboard_cli/help/_generated/models/page_data_event_info.py +36 -0
- thingsboard_cli/help/_generated/models/page_data_integration.py +52 -0
- thingsboard_cli/help/_generated/models/page_data_integration_info.py +48 -0
- thingsboard_cli/help/_generated/models/page_data_job.py +278 -0
- thingsboard_cli/help/_generated/models/page_data_mobile_app.py +56 -0
- thingsboard_cli/help/_generated/models/page_data_mobile_app_bundle_info.py +208 -0
- thingsboard_cli/help/_generated/models/page_data_notification.py +51 -0
- thingsboard_cli/help/_generated/models/page_data_notification_request_info.py +139 -0
- thingsboard_cli/help/_generated/models/page_data_notification_rule_info.py +269 -0
- thingsboard_cli/help/_generated/models/page_data_notification_target.py +117 -0
- thingsboard_cli/help/_generated/models/page_data_notification_template.py +93 -0
- thingsboard_cli/help/_generated/models/page_data_oauth2_client_info.py +33 -0
- thingsboard_cli/help/_generated/models/page_data_ota_package_info.py +47 -0
- thingsboard_cli/help/_generated/models/page_data_queue.py +57 -0
- thingsboard_cli/help/_generated/models/page_data_queue_stats.py +29 -0
- thingsboard_cli/help/_generated/models/page_data_report.py +36 -0
- thingsboard_cli/help/_generated/models/page_data_report_info.py +45 -0
- thingsboard_cli/help/_generated/models/page_data_report_template_info.py +41 -0
- thingsboard_cli/help/_generated/models/page_data_role.py +38 -0
- thingsboard_cli/help/_generated/models/page_data_rule_chain.py +38 -0
- thingsboard_cli/help/_generated/models/page_data_scheduled_report_info.py +45 -0
- thingsboard_cli/help/_generated/models/page_data_scheduler_event_info.py +36 -0
- thingsboard_cli/help/_generated/models/page_data_scheduler_event_with_customer_info.py +39 -0
- thingsboard_cli/help/_generated/models/page_data_secret_info.py +33 -0
- thingsboard_cli/help/_generated/models/page_data_short_entity_view.py +26 -0
- thingsboard_cli/help/_generated/models/page_data_string.py +15 -0
- thingsboard_cli/help/_generated/models/page_data_tb_resource_info.py +46 -0
- thingsboard_cli/help/_generated/models/page_data_tenant.py +40 -0
- thingsboard_cli/help/_generated/models/page_data_tenant_info.py +41 -0
- thingsboard_cli/help/_generated/models/page_data_tenant_profile.py +169 -0
- thingsboard_cli/help/_generated/models/page_data_trendz_view_config_lite.py +21 -0
- thingsboard_cli/help/_generated/models/page_data_user.py +46 -0
- thingsboard_cli/help/_generated/models/page_data_user_email_info.py +28 -0
- thingsboard_cli/help/_generated/models/page_data_user_info.py +54 -0
- thingsboard_cli/help/_generated/models/page_data_widget_type_info.py +43 -0
- thingsboard_cli/help/_generated/models/page_data_widgets_bundle.py +35 -0
- thingsboard_cli/help/_generated/models/page_orientation.py +8 -0
- thingsboard_cli/help/_generated/models/page_size.py +8 -0
- thingsboard_cli/help/_generated/models/palette.py +14 -0
- thingsboard_cli/help/_generated/models/palette_settings.py +20 -0
- thingsboard_cli/help/_generated/models/pdf_report_template_config.py +1060 -0
- thingsboard_cli/help/_generated/models/pie_chart_label_position.py +8 -0
- thingsboard_cli/help/_generated/models/platform_two_fa_settings.py +45 -0
- thingsboard_cli/help/_generated/models/platform_type.py +8 -0
- thingsboard_cli/help/_generated/models/platform_users_notification_target_config.py +64 -0
- thingsboard_cli/help/_generated/models/power_mode.py +8 -0
- thingsboard_cli/help/_generated/models/power_saving_configuration.py +18 -0
- thingsboard_cli/help/_generated/models/privacy_protocol.py +8 -0
- thingsboard_cli/help/_generated/models/processing_strategy.py +19 -0
- thingsboard_cli/help/_generated/models/processing_strategy_type.py +8 -0
- thingsboard_cli/help/_generated/models/propagation_calculated_field_configuration.py +124 -0
- thingsboard_cli/help/_generated/models/proto_transport_payload_configuration.py +22 -0
- thingsboard_cli/help/_generated/models/psklw_m2_mbootstrap_server_credential.py +28 -0
- thingsboard_cli/help/_generated/models/qr_code_settings.py +44 -0
- thingsboard_cli/help/_generated/models/qr_code_settings_id.py +12 -0
- thingsboard_cli/help/_generated/models/qrcode_config.py +19 -0
- thingsboard_cli/help/_generated/models/quarter_interval.py +18 -0
- thingsboard_cli/help/_generated/models/queue.py +49 -0
- thingsboard_cli/help/_generated/models/queue_id.py +16 -0
- thingsboard_cli/help/_generated/models/queue_stats.py +21 -0
- thingsboard_cli/help/_generated/models/queue_stats_id.py +16 -0
- thingsboard_cli/help/_generated/models/quick_time_interval.py +8 -0
- thingsboard_cli/help/_generated/models/rate_limits_notification_rule_trigger_config.py +23 -0
- thingsboard_cli/help/_generated/models/rate_limits_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/raw_data_event_filter.py +24 -0
- thingsboard_cli/help/_generated/models/read_ts_kv_query_result.py +32 -0
- thingsboard_cli/help/_generated/models/referenced_entity_key.py +20 -0
- thingsboard_cli/help/_generated/models/refresh_token_request.py +12 -0
- thingsboard_cli/help/_generated/models/related_entities_aggregation_calculated_field_configuration.py +153 -0
- thingsboard_cli/help/_generated/models/relation_entity_type_filter.py +17 -0
- thingsboard_cli/help/_generated/models/relation_path_level.py +16 -0
- thingsboard_cli/help/_generated/models/relation_path_query_dynamic_source_configuration.py +26 -0
- thingsboard_cli/help/_generated/models/relation_type_group.py +8 -0
- thingsboard_cli/help/_generated/models/relations_query_filter.py +50 -0
- thingsboard_cli/help/_generated/models/relations_search_parameters.py +26 -0
- thingsboard_cli/help/_generated/models/repeating_alarm_condition.py +163 -0
- thingsboard_cli/help/_generated/models/repeating_alarm_condition_spec.py +62 -0
- thingsboard_cli/help/_generated/models/report.py +28 -0
- thingsboard_cli/help/_generated/models/report_bar_chart_settings.py +87 -0
- thingsboard_cli/help/_generated/models/report_bar_chart_with_labels_settings.py +232 -0
- thingsboard_cli/help/_generated/models/report_component.py +713 -0
- thingsboard_cli/help/_generated/models/report_component_sub_type.py +8 -0
- thingsboard_cli/help/_generated/models/report_component_type.py +8 -0
- thingsboard_cli/help/_generated/models/report_doughnut_chart_settings.py +55 -0
- thingsboard_cli/help/_generated/models/report_id.py +16 -0
- thingsboard_cli/help/_generated/models/report_info.py +37 -0
- thingsboard_cli/help/_generated/models/report_job_configuration.py +188 -0
- thingsboard_cli/help/_generated/models/report_job_result.py +57 -0
- thingsboard_cli/help/_generated/models/report_latest_chart_settings.py +48 -0
- thingsboard_cli/help/_generated/models/report_pie_chart_settings.py +59 -0
- thingsboard_cli/help/_generated/models/report_range_chart_settings.py +262 -0
- thingsboard_cli/help/_generated/models/report_request.py +1074 -0
- thingsboard_cli/help/_generated/models/report_task_result.py +43 -0
- thingsboard_cli/help/_generated/models/report_template.py +1081 -0
- thingsboard_cli/help/_generated/models/report_template_config.py +1067 -0
- thingsboard_cli/help/_generated/models/report_template_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/report_template_id.py +16 -0
- thingsboard_cli/help/_generated/models/report_template_info.py +33 -0
- thingsboard_cli/help/_generated/models/report_template_type.py +8 -0
- thingsboard_cli/help/_generated/models/report_time_series_chart_settings.py +204 -0
- thingsboard_cli/help/_generated/models/repository_auth_method.py +8 -0
- thingsboard_cli/help/_generated/models/repository_settings.py +25 -0
- thingsboard_cli/help/_generated/models/repository_settings_info.py +13 -0
- thingsboard_cli/help/_generated/models/reset_password_email_request.py +12 -0
- thingsboard_cli/help/_generated/models/reset_password_request.py +13 -0
- thingsboard_cli/help/_generated/models/resource.py +8 -0
- thingsboard_cli/help/_generated/models/resource_export_data.py +28 -0
- thingsboard_cli/help/_generated/models/resource_shortage_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/resource_sub_type.py +8 -0
- thingsboard_cli/help/_generated/models/resource_type.py +8 -0
- thingsboard_cli/help/_generated/models/resources_shortage_notification_rule_trigger_config.py +22 -0
- thingsboard_cli/help/_generated/models/rich_text_component.py +263 -0
- thingsboard_cli/help/_generated/models/role.py +30 -0
- thingsboard_cli/help/_generated/models/role_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/role_id.py +16 -0
- thingsboard_cli/help/_generated/models/role_type.py +8 -0
- thingsboard_cli/help/_generated/models/rpc.py +28 -0
- thingsboard_cli/help/_generated/models/rpc_id.py +16 -0
- thingsboard_cli/help/_generated/models/rpc_status.py +8 -0
- thingsboard_cli/help/_generated/models/rpklw_m2_mbootstrap_server_credential.py +28 -0
- thingsboard_cli/help/_generated/models/rule_chain.py +30 -0
- thingsboard_cli/help/_generated/models/rule_chain_connection_info.py +20 -0
- thingsboard_cli/help/_generated/models/rule_chain_data.py +85 -0
- thingsboard_cli/help/_generated/models/rule_chain_debug_event_filter.py +32 -0
- thingsboard_cli/help/_generated/models/rule_chain_export_data.py +568 -0
- thingsboard_cli/help/_generated/models/rule_chain_id.py +16 -0
- thingsboard_cli/help/_generated/models/rule_chain_import_result.py +20 -0
- thingsboard_cli/help/_generated/models/rule_chain_meta_data.py +61 -0
- thingsboard_cli/help/_generated/models/rule_chain_note.py +22 -0
- thingsboard_cli/help/_generated/models/rule_chain_output_labels_usage.py +21 -0
- thingsboard_cli/help/_generated/models/rule_chain_type.py +8 -0
- thingsboard_cli/help/_generated/models/rule_engine_component_lifecycle_event_notification_rule_trigger_config.py +28 -0
- thingsboard_cli/help/_generated/models/rule_engine_component_lifecycle_event_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/rule_node.py +36 -0
- thingsboard_cli/help/_generated/models/rule_node_debug_event_filter.py +54 -0
- thingsboard_cli/help/_generated/models/rule_node_id.py +16 -0
- thingsboard_cli/help/_generated/models/save_device_with_credentials_request.py +127 -0
- thingsboard_cli/help/_generated/models/save_ota_package_info_request.py +40 -0
- thingsboard_cli/help/_generated/models/scheduled_report_info.py +37 -0
- thingsboard_cli/help/_generated/models/scheduler_event.py +29 -0
- thingsboard_cli/help/_generated/models/scheduler_event_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/scheduler_event_filter.py +33 -0
- thingsboard_cli/help/_generated/models/scheduler_event_id.py +16 -0
- thingsboard_cli/help/_generated/models/scheduler_event_info.py +28 -0
- thingsboard_cli/help/_generated/models/scheduler_event_with_customer_info.py +31 -0
- thingsboard_cli/help/_generated/models/script_calculated_field_configuration.py +122 -0
- thingsboard_cli/help/_generated/models/script_language.py +8 -0
- thingsboard_cli/help/_generated/models/secret.py +27 -0
- thingsboard_cli/help/_generated/models/secret_id.py +16 -0
- thingsboard_cli/help/_generated/models/secret_info.py +25 -0
- thingsboard_cli/help/_generated/models/secret_type.py +8 -0
- thingsboard_cli/help/_generated/models/security_settings.py +31 -0
- thingsboard_cli/help/_generated/models/self_registration_params.py +127 -0
- thingsboard_cli/help/_generated/models/self_registration_type.py +8 -0
- thingsboard_cli/help/_generated/models/share_group_request.py +21 -0
- thingsboard_cli/help/_generated/models/shared_attributes_setting_snmp_communication_config.py +30 -0
- thingsboard_cli/help/_generated/models/short_customer_info.py +19 -0
- thingsboard_cli/help/_generated/models/short_entity_view.py +18 -0
- thingsboard_cli/help/_generated/models/sign_up_field.py +17 -0
- thingsboard_cli/help/_generated/models/sign_up_field_id.py +8 -0
- thingsboard_cli/help/_generated/models/sign_up_request.py +19 -0
- thingsboard_cli/help/_generated/models/sign_up_result.py +8 -0
- thingsboard_cli/help/_generated/models/sign_up_self_registration_params.py +55 -0
- thingsboard_cli/help/_generated/models/simple_alarm_condition.py +156 -0
- thingsboard_cli/help/_generated/models/simple_alarm_condition_expression.py +104 -0
- thingsboard_cli/help/_generated/models/simple_alarm_condition_spec.py +63 -0
- thingsboard_cli/help/_generated/models/simple_calculated_field_configuration.py +123 -0
- thingsboard_cli/help/_generated/models/simple_entity.py +13 -0
- thingsboard_cli/help/_generated/models/single_entity_filter.py +30 -0
- thingsboard_cli/help/_generated/models/single_entity_version_create_request.py +38 -0
- thingsboard_cli/help/_generated/models/single_entity_version_load_request.py +39 -0
- thingsboard_cli/help/_generated/models/slack_conversation.py +20 -0
- thingsboard_cli/help/_generated/models/slack_conversation_type.py +8 -0
- thingsboard_cli/help/_generated/models/slack_delivery_method_notification_template.py +18 -0
- thingsboard_cli/help/_generated/models/slack_notification_delivery_method_config.py +17 -0
- thingsboard_cli/help/_generated/models/slack_notification_target_config.py +32 -0
- thingsboard_cli/help/_generated/models/smpp_bind_type.py +8 -0
- thingsboard_cli/help/_generated/models/smpp_sms_provider_configuration.py +41 -0
- thingsboard_cli/help/_generated/models/sms_delivery_method_notification_template.py +18 -0
- thingsboard_cli/help/_generated/models/sms_provider_configuration.py +52 -0
- thingsboard_cli/help/_generated/models/sms_two_fa_account_config.py +18 -0
- thingsboard_cli/help/_generated/models/sms_two_fa_provider_config.py +18 -0
- thingsboard_cli/help/_generated/models/snmp_communication_config.py +56 -0
- thingsboard_cli/help/_generated/models/snmp_communication_spec.py +8 -0
- thingsboard_cli/help/_generated/models/snmp_device_profile_transport_configuration.py +64 -0
- thingsboard_cli/help/_generated/models/snmp_device_transport_configuration.py +37 -0
- thingsboard_cli/help/_generated/models/snmp_mapping.py +17 -0
- thingsboard_cli/help/_generated/models/snmp_protocol_version.py +8 -0
- thingsboard_cli/help/_generated/models/solution_data.py +694 -0
- thingsboard_cli/help/_generated/models/solution_export_request.py +30 -0
- thingsboard_cli/help/_generated/models/solution_export_response.py +700 -0
- thingsboard_cli/help/_generated/models/solution_import_result.py +14 -0
- thingsboard_cli/help/_generated/models/solution_install_response.py +22 -0
- thingsboard_cli/help/_generated/models/solution_step.py +8 -0
- thingsboard_cli/help/_generated/models/solution_template_level.py +8 -0
- thingsboard_cli/help/_generated/models/solution_validation_result.py +15 -0
- thingsboard_cli/help/_generated/models/specific_time_schedule.py +20 -0
- thingsboard_cli/help/_generated/models/split_view_component.py +46 -0
- thingsboard_cli/help/_generated/models/starred_dashboard_info.py +14 -0
- thingsboard_cli/help/_generated/models/state_entity_filter.py +30 -0
- thingsboard_cli/help/_generated/models/state_entity_owner_filter.py +31 -0
- thingsboard_cli/help/_generated/models/statistics_event_filter.py +25 -0
- thingsboard_cli/help/_generated/models/store_info.py +14 -0
- thingsboard_cli/help/_generated/models/string_filter_predicate.py +40 -0
- thingsboard_cli/help/_generated/models/string_operation.py +8 -0
- thingsboard_cli/help/_generated/models/sub_report_component.py +250 -0
- thingsboard_cli/help/_generated/models/submit_strategy.py +16 -0
- thingsboard_cli/help/_generated/models/submit_strategy_type.py +8 -0
- thingsboard_cli/help/_generated/models/success.py +17 -0
- thingsboard_cli/help/_generated/models/sync_strategy.py +8 -0
- thingsboard_cli/help/_generated/models/system_administrators_filter.py +16 -0
- thingsboard_cli/help/_generated/models/system_info.py +25 -0
- thingsboard_cli/help/_generated/models/system_info_data.py +19 -0
- thingsboard_cli/help/_generated/models/table_sort_direction.py +8 -0
- thingsboard_cli/help/_generated/models/table_sort_order.py +16 -0
- thingsboard_cli/help/_generated/models/task_processing_failure_notification_rule_trigger_config.py +19 -0
- thingsboard_cli/help/_generated/models/task_processing_failure_recipients_config.py +20 -0
- thingsboard_cli/help/_generated/models/task_result.py +17 -0
- thingsboard_cli/help/_generated/models/tb_chat_request.py +235 -0
- thingsboard_cli/help/_generated/models/tb_chat_response.py +26 -0
- thingsboard_cli/help/_generated/models/tb_content.py +21 -0
- thingsboard_cli/help/_generated/models/tb_image_delete_result.py +36 -0
- thingsboard_cli/help/_generated/models/tb_report_format.py +8 -0
- thingsboard_cli/help/_generated/models/tb_resource.py +40 -0
- thingsboard_cli/help/_generated/models/tb_resource_delete_result.py +24 -0
- thingsboard_cli/help/_generated/models/tb_resource_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/tb_resource_id.py +16 -0
- thingsboard_cli/help/_generated/models/tb_resource_info.py +38 -0
- thingsboard_cli/help/_generated/models/tb_secret_delete_result.py +24 -0
- thingsboard_cli/help/_generated/models/tb_text_content.py +17 -0
- thingsboard_cli/help/_generated/models/tb_user_message.py +22 -0
- thingsboard_cli/help/_generated/models/tbel_alarm_condition_expression.py +17 -0
- thingsboard_cli/help/_generated/models/telemetry_entity_view.py +20 -0
- thingsboard_cli/help/_generated/models/telemetry_mapping_configuration.py +42 -0
- thingsboard_cli/help/_generated/models/telemetry_observe_strategy.py +8 -0
- thingsboard_cli/help/_generated/models/telemetry_querying_snmp_communication_config.py +31 -0
- thingsboard_cli/help/_generated/models/tenant.py +32 -0
- thingsboard_cli/help/_generated/models/tenant_administrators_filter.py +18 -0
- thingsboard_cli/help/_generated/models/tenant_id.py +16 -0
- thingsboard_cli/help/_generated/models/tenant_info.py +33 -0
- thingsboard_cli/help/_generated/models/tenant_name_strategy_type.py +8 -0
- thingsboard_cli/help/_generated/models/tenant_profile.py +161 -0
- thingsboard_cli/help/_generated/models/tenant_profile_configuration.py +109 -0
- thingsboard_cli/help/_generated/models/tenant_profile_data.py +145 -0
- thingsboard_cli/help/_generated/models/tenant_profile_id.py +16 -0
- thingsboard_cli/help/_generated/models/tenant_profile_queue_configuration.py +41 -0
- thingsboard_cli/help/_generated/models/tenant_solution_template_details.py +24 -0
- thingsboard_cli/help/_generated/models/tenant_solution_template_info.py +25 -0
- thingsboard_cli/help/_generated/models/tenant_solution_template_instructions.py +21 -0
- thingsboard_cli/help/_generated/models/test_sms_request.py +55 -0
- thingsboard_cli/help/_generated/models/text_alignment.py +8 -0
- thingsboard_cli/help/_generated/models/thingsboard_client.py +8 -0
- thingsboard_cli/help/_generated/models/thingsboard_credentials_expired_response.py +19 -0
- thingsboard_cli/help/_generated/models/thingsboard_error_code.py +8 -0
- thingsboard_cli/help/_generated/models/thingsboard_error_response.py +18 -0
- thingsboard_cli/help/_generated/models/threshold_label_position.py +8 -0
- thingsboard_cli/help/_generated/models/time_series_chart_bar_width.py +14 -0
- thingsboard_cli/help/_generated/models/time_series_chart_bar_width_settings.py +13 -0
- thingsboard_cli/help/_generated/models/time_series_chart_grid_settings.py +15 -0
- thingsboard_cli/help/_generated/models/time_series_chart_key_settings.py +113 -0
- thingsboard_cli/help/_generated/models/time_series_chart_no_aggregation_bar_width_settings.py +24 -0
- thingsboard_cli/help/_generated/models/time_series_chart_no_aggregation_bar_width_strategy.py +8 -0
- thingsboard_cli/help/_generated/models/time_series_chart_series_type.py +8 -0
- thingsboard_cli/help/_generated/models/time_series_chart_state_settings.py +20 -0
- thingsboard_cli/help/_generated/models/time_series_chart_state_source_type.py +8 -0
- thingsboard_cli/help/_generated/models/time_series_chart_threshold.py +61 -0
- thingsboard_cli/help/_generated/models/time_series_chart_xaxis_settings.py +43 -0
- thingsboard_cli/help/_generated/models/time_series_chart_yaxis_settings.py +50 -0
- thingsboard_cli/help/_generated/models/time_series_immediate_output_strategy.py +21 -0
- thingsboard_cli/help/_generated/models/time_series_output.py +41 -0
- thingsboard_cli/help/_generated/models/time_series_output_strategy.py +28 -0
- thingsboard_cli/help/_generated/models/time_series_rule_chain_output_strategy.py +16 -0
- thingsboard_cli/help/_generated/models/time_unit.py +8 -0
- thingsboard_cli/help/_generated/models/time_window_configuration.py +50 -0
- thingsboard_cli/help/_generated/models/timeseries_chart_component.py +448 -0
- thingsboard_cli/help/_generated/models/timeseries_table_component.py +289 -0
- thingsboard_cli/help/_generated/models/to_core_edqs_request.py +21 -0
- thingsboard_cli/help/_generated/models/to_device_rpc_request_snmp_communication_config.py +30 -0
- thingsboard_cli/help/_generated/models/to_server_rpc_request_snmp_communication_config.py +30 -0
- thingsboard_cli/help/_generated/models/token.py +17 -0
- thingsboard_cli/help/_generated/models/totp_two_fa_account_config.py +18 -0
- thingsboard_cli/help/_generated/models/totp_two_fa_provider_config.py +17 -0
- thingsboard_cli/help/_generated/models/translation_info.py +16 -0
- thingsboard_cli/help/_generated/models/transport_payload_type_configuration.py +29 -0
- thingsboard_cli/help/_generated/models/trendz_configuration.py +13 -0
- thingsboard_cli/help/_generated/models/trendz_healthcheck_result.py +21 -0
- thingsboard_cli/help/_generated/models/trendz_summary.py +17 -0
- thingsboard_cli/help/_generated/models/trendz_synchronization_result.py +21 -0
- thingsboard_cli/help/_generated/models/trendz_synchronization_result_type.py +8 -0
- thingsboard_cli/help/_generated/models/trendz_synchronization_status.py +8 -0
- thingsboard_cli/help/_generated/models/trendz_usage.py +31 -0
- thingsboard_cli/help/_generated/models/trendz_view_config.py +14 -0
- thingsboard_cli/help/_generated/models/trendz_view_config_lite.py +13 -0
- thingsboard_cli/help/_generated/models/ts_data.py +13 -0
- thingsboard_cli/help/_generated/models/ts_kv_entry.py +25 -0
- thingsboard_cli/help/_generated/models/ts_value.py +14 -0
- thingsboard_cli/help/_generated/models/twilio_sms_provider_configuration.py +19 -0
- thingsboard_cli/help/_generated/models/two_fa_account_config.py +38 -0
- thingsboard_cli/help/_generated/models/two_fa_account_config_update_request.py +12 -0
- thingsboard_cli/help/_generated/models/two_fa_provider_config.py +37 -0
- thingsboard_cli/help/_generated/models/two_fa_provider_info.py +18 -0
- thingsboard_cli/help/_generated/models/two_fa_provider_type.py +8 -0
- thingsboard_cli/help/_generated/models/uniquify_strategy.py +8 -0
- thingsboard_cli/help/_generated/models/update_message.py +17 -0
- thingsboard_cli/help/_generated/models/usage.py +8 -0
- thingsboard_cli/help/_generated/models/usage_info.py +40 -0
- thingsboard_cli/help/_generated/models/user.py +38 -0
- thingsboard_cli/help/_generated/models/user_activation_link.py +13 -0
- thingsboard_cli/help/_generated/models/user_dashboards_info.py +28 -0
- thingsboard_cli/help/_generated/models/user_email_info.py +20 -0
- thingsboard_cli/help/_generated/models/user_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/user_group_list_filter.py +17 -0
- thingsboard_cli/help/_generated/models/user_id.py +16 -0
- thingsboard_cli/help/_generated/models/user_info.py +46 -0
- thingsboard_cli/help/_generated/models/user_list_filter.py +17 -0
- thingsboard_cli/help/_generated/models/user_mobile_info.py +68 -0
- thingsboard_cli/help/_generated/models/user_notification_settings.py +18 -0
- thingsboard_cli/help/_generated/models/user_password_policy.py +21 -0
- thingsboard_cli/help/_generated/models/user_role_filter.py +17 -0
- thingsboard_cli/help/_generated/models/users_filter.py +57 -0
- thingsboard_cli/help/_generated/models/v2_captcha_params.py +19 -0
- thingsboard_cli/help/_generated/models/v3_captcha_params.py +19 -0
- thingsboard_cli/help/_generated/models/value_source_type.py +8 -0
- thingsboard_cli/help/_generated/models/vendor.py +13 -0
- thingsboard_cli/help/_generated/models/version_create_config.py +17 -0
- thingsboard_cli/help/_generated/models/version_create_request.py +64 -0
- thingsboard_cli/help/_generated/models/version_create_request_type.py +8 -0
- thingsboard_cli/help/_generated/models/version_creation_result.py +25 -0
- thingsboard_cli/help/_generated/models/version_load_config.py +18 -0
- thingsboard_cli/help/_generated/models/version_load_request.py +62 -0
- thingsboard_cli/help/_generated/models/version_load_request_type.py +8 -0
- thingsboard_cli/help/_generated/models/version_load_result.py +38 -0
- thingsboard_cli/help/_generated/models/versioned_entity_info.py +18 -0
- thingsboard_cli/help/_generated/models/vertical_alignment.py +8 -0
- thingsboard_cli/help/_generated/models/watermark.py +12 -0
- thingsboard_cli/help/_generated/models/web_delivery_method_notification_template.py +20 -0
- thingsboard_cli/help/_generated/models/web_self_registration_params.py +110 -0
- thingsboard_cli/help/_generated/models/web_view_page.py +23 -0
- thingsboard_cli/help/_generated/models/week_interval.py +18 -0
- thingsboard_cli/help/_generated/models/week_sun_sat_interval.py +18 -0
- thingsboard_cli/help/_generated/models/white_labeling.py +24 -0
- thingsboard_cli/help/_generated/models/white_labeling_params.py +44 -0
- thingsboard_cli/help/_generated/models/white_labeling_type.py +8 -0
- thingsboard_cli/help/_generated/models/widget_bundle_info.py +18 -0
- thingsboard_cli/help/_generated/models/widget_type.py +25 -0
- thingsboard_cli/help/_generated/models/widget_type_details.py +50 -0
- thingsboard_cli/help/_generated/models/widget_type_export_data.py +525 -0
- thingsboard_cli/help/_generated/models/widget_type_id.py +16 -0
- thingsboard_cli/help/_generated/models/widget_type_info.py +35 -0
- thingsboard_cli/help/_generated/models/widgets_bundle.py +27 -0
- thingsboard_cli/help/_generated/models/widgets_bundle_export_data.py +527 -0
- thingsboard_cli/help/_generated/models/widgets_bundle_id.py +16 -0
- thingsboard_cli/help/_generated/models/x509_certificate_chain_provision_configuration.py +19 -0
- thingsboard_cli/help/_generated/models/x509_lw_m2_mbootstrap_server_credential.py +28 -0
- thingsboard_cli/help/_generated/models/year_interval.py +18 -0
- thingsboard_cli/help/_generated/models/zone_group_configuration.py +48 -0
- thingsboard_cli/main.py +1027 -0
- thingsboard_cli/resources/manifest.json +4 -0
- thingsboard_cli/resources/maven_wrapper/.mvn/wrapper/maven-wrapper.properties +3 -0
- thingsboard_cli/resources/maven_wrapper/mvnw +295 -0
- thingsboard_cli/resources/maven_wrapper/mvnw.cmd +189 -0
- thingsboard_cli/resources/prompts/ai-assistant/main-assistant-prompt.md +112 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/alarms/SKILL.md +101 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/alarms/references/alarm-rules.md +795 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/SKILL.md +216 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/geofencing.md +253 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/propagation.md +213 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/related-aggregation.md +286 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/script.md +338 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/simple.md +210 -0
- thingsboard_cli/resources/prompts/ai-assistant/skills/calculated-fields/references/ts-aggregation.md +261 -0
- thingsboard_cli/resources/prompts/solutions/alarm/resources/alarm-capabilities.md +555 -0
- thingsboard_cli/resources/prompts/solutions/alarm/resources/alarms-schema.json +445 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/related-aggregation/capabilities.md +85 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/related-aggregation/example.json +36 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/related-aggregation/schema.json +93 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/script/capabilities.md +156 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/script/example.json +17 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/script/schema.json +19 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/ts-aggregation/capabilities.md +45 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/ts-aggregation/example.json +18 -0
- thingsboard_cli/resources/prompts/solutions/cf/resources/ts-aggregation/schema.json +83 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/ba-overview/ba-dashboard-overview-capabilities.md +211 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/ba-overview/ba-dashboards-overview-schema.json +94 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/ba-overview/dashboards-ready-example.json +68 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/icons.json +22 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/images.json +95 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/change-owner-dialog/action-capabilities.md +47 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/change-owner-dialog/action-schema.json +41 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/change-state/action-capabilities.md +75 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/change-state/action-schema.json +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/common-action-capabilities.md +101 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/create-entity-dialog/action-capabilities.md +183 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/create-entity-dialog/action-schema.json +209 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/create-map-entity-dialog/action-capabilities.md +173 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/create-map-entity-dialog/action-schema.json +238 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/delete-entity-dialog/action-capabilities.md +59 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/delete-entity-dialog/action-schema.json +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/drill-down/action-capabilities.md +72 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/drill-down/action-schema.json +33 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/edit-entity-dialog/action-capabilities.md +82 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-action/edit-entity-dialog/action-schema.json +285 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-actions/dashboard-state-actions-capabilities.md +132 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-actions/dashboard-state-actions-schema.json +46 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/asset-search-query/datasource-capabilities.md +51 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/asset-search-query/datasource-schema.json +40 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/asset-type/datasource-capabilities.md +33 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/asset-type/datasource-schema.json +25 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/common-datasource-capabilities.md +41 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/customer-entities/datasource-capabilities.md +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/customer-entities/datasource-schema.json +34 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/customers-by-profile/datasource-capabilities.md +32 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/customers-by-profile/datasource-schema.json +22 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/dashboard-state-datasource-capabilities.md +121 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/dashboard-state-datasource-schema.json +61 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/device-search-query/datasource-capabilities.md +51 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/device-search-query/datasource-schema.json +40 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/device-type/datasource-capabilities.md +33 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/device-type/datasource-schema.json +25 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/entity-name/datasource-capabilities.md +29 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/entity-name/datasource-schema.json +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/entity-type/datasource-capabilities.md +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/entity-type/datasource-schema.json +29 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/relations-query/datasource-capabilities.md +51 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/relations-query/datasource-schema.json +54 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/single-entity/datasource-capabilities.md +30 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/single-entity/datasource-schema.json +27 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/state-entity/datasource-capabilities.md +35 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-datasource/state-entity/datasource-schema.json +22 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-layout/dashboard-state-layout-capabilities.md +413 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-layout/dashboard-state-layout-schema.json +45 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/action-button/widget-capabilities.md +20 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/action-button/widget-schema.json +39 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/alarm-count/widget-capabilities.md +15 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/alarm-count/widget-schema.json +28 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/alarm-table/widget-capabilities.md +28 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/alarm-table/widget-schema.json +28 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/bar-chart/widget-capabilities.md +27 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/bar-chart/widget-schema.json +65 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/battery-level/widget-capabilities.md +24 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/battery-level/widget-schema.json +53 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/chart/widget-capabilities.md +34 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/chart/widget-schema.json +123 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/common-widget-capabilities.md +40 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/entity-table/widget-capabilities.md +40 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/entity-table/widget-schema.json +78 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/header-card/widget-capabilities.md +52 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/header-card/widget-schema.json +65 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/horizontal-value-card/widget-capabilities.md +38 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/horizontal-value-card/widget-schema.json +65 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/indoor-map/widget-capabilities.md +138 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/indoor-map/widget-schema.json +291 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/info-card/widget-capabilities.md +54 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/info-card/widget-schema.json +69 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/navigation-widget/widget-capabilities.md +40 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/navigation-widget/widget-schema.json +38 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/outdoor-map/widget-capabilities.md +101 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/outdoor-map/widget-schema.json +232 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/pie-chart/widget-capabilities.md +30 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/pie-chart/widget-schema.json +69 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/progress-bar/widget-capabilities.md +51 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/progress-bar/widget-schema.json +101 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/range-chart/widget-capabilities.md +52 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/range-chart/widget-schema.json +123 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/signal-strength/widget-capabilities.md +33 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/signal-strength/widget-schema.json +92 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/simple-gauge/widget-capabilities.md +57 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/simple-gauge/widget-schema.json +112 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/state-chart/widget-capabilities.md +120 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/state-chart/widget-schema.json +172 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/value-chart-card/widget-capabilities.md +27 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/state-widget/value-chart-card/widget-schema.json +62 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/states/dashboard-states-capabilities.md +702 -0
- thingsboard_cli/resources/prompts/solutions/dashboard/resources/states/dashboard-states-schema.json +97 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/customer-and-users-generator-schema.json +94 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/devices-and-assets-generator-schema.json +138 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/entity-relations-schema.json +55 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/generator-guidelines.md +280 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/composite-value-strategy-example.json +15 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/composite-value-strategy-schema.json +45 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/constant-value-strategy-example.json +4 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/constant-value-strategy-schema.json +17 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/counter-value-strategy-example.json +14 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/counter-value-strategy-schema.json +61 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/dec-value-strategy-example.json +10 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/dec-value-strategy-schema.json +41 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/event-value-strategy-example.json +6 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/event-value-strategy-schema.json +25 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/inc-value-strategy-example.json +10 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/inc-value-strategy-schema.json +41 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/natural-value-strategy-example.json +17 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/natural-value-strategy-schema.json +78 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/schedule-value-strategy-example.json +32 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/schedule-value-strategy-schema.json +93 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/sequence-value-strategy-example.json +19 -0
- thingsboard_cli/resources/prompts/solutions/data-generator/resources/value-strategies/sequence-value-strategy-schema.json +30 -0
- thingsboard_cli/resources/prompts/solutions/main-prompt.txt +66 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-capabilities.md +403 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-in-progress-example.json +6 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-ready-example-1.json +26 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-ready-example-2.json +26 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-ready-example-3.json +24 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-ready-example-4.json +23 -0
- thingsboard_cli/resources/prompts/solutions/solution-ba/resources/solution-schema.json +166 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/alarms/alarm-capabilities.md +134 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/alarms/schema.json +175 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/entity-profiles/entity-profile-planner-rules.md +57 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/entity-profiles/entity-profile-schema.json +126 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/entity-profiles/entity-profiles-schema.json +125 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/entity-profiles/entity-profiles.md +142 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/iam/iam-schema.json +40 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/iam/iam.json +23 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/iam/iam.md +16 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/delta/metric-capabilities.md +47 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/delta/schema.json +113 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/geofencing/metric-capabilities.md +83 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/geofencing/schema.json +224 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/math/metric-capabilities.md +80 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/math/schema.json +113 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/propagate/metric-capabilities.md +88 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/propagate/schema.json +177 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/related-aggregation/metric-capabilities.md +130 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/related-aggregation/schema.json +205 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/script/metric-capabilities.md +128 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/script/schema.json +124 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/ts-aggregation/metric-capabilities.md +56 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/metrics/ts-aggregation/schema.json +110 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/relations/entity-relations-generation.md +30 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/relations/entity-relations-schema.json +42 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/relations/entity-relations.md +56 -0
- thingsboard_cli/resources/prompts/solutions/solution-entities/resources/solution-schema.json +634 -0
- thingsboard_cli/resources/prompts/solutions/solution-planner/resources/patterns-and-constraints.md +531 -0
- thingsboard_cli/resources/prompts/solutions/solution-planner/resources/schema.json +379 -0
- thingsboard_cli/resources/prompts/tbel/tbel-reference.md +604 -0
- thingsboard_cli/resources/templates/widget-action/change-owner-dialog.html +40 -0
- thingsboard_cli/resources/templates/widget-action/change-owner-dialog.js +99 -0
- thingsboard_cli/resources/templates/widget-action/delete-entity-function.js +91 -0
- thingsboard_cli/resources/templates/widget-action/entity-dialog.html +36 -0
- thingsboard_cli/resources/templates/widget-action/entity-dialog.js +308 -0
- thingsboard_cli/resources/templates/widget-action/field/image-field.html +2 -0
- thingsboard_cli/resources/templates/widget-action/field/number-field.html +8 -0
- thingsboard_cli/resources/templates/widget-action/field/profile-field.html +12 -0
- thingsboard_cli/resources/templates/widget-action/field/relation-field.html +21 -0
- thingsboard_cli/resources/templates/widget-action/field/select-field.html +12 -0
- thingsboard_cli/resources/templates/widget-action/field/text-field.html +7 -0
- thingsboard_cli/resources/templates/widget-action/field/textarea-field.html +7 -0
- thingsboard_cli/resources/templates/widget-action/field/toggle-field.html +2 -0
- thingsboard_cli/scaffold/.claude/CLAUDE.md +248 -0
- thingsboard_cli/scaffold/.claude/agents/alarm-generator.md +109 -0
- thingsboard_cli/scaffold/.claude/agents/alarms-designer.md +109 -0
- thingsboard_cli/scaffold/.claude/agents/asset-profiles-generator.md +45 -0
- thingsboard_cli/scaffold/.claude/agents/assets-generator.md +48 -0
- thingsboard_cli/scaffold/.claude/agents/attribute-values-generator.md +124 -0
- thingsboard_cli/scaffold/.claude/agents/cf-generator.md +179 -0
- thingsboard_cli/scaffold/.claude/agents/cf-reprocess-generator.md +132 -0
- thingsboard_cli/scaffold/.claude/agents/customers-generator.md +50 -0
- thingsboard_cli/scaffold/.claude/agents/dashboard-json-generator.md +2149 -0
- thingsboard_cli/scaffold/.claude/agents/device-emulator-generator.md +210 -0
- thingsboard_cli/scaffold/.claude/agents/device-profiles-generator.md +47 -0
- thingsboard_cli/scaffold/.claude/agents/devices-generator.md +48 -0
- thingsboard_cli/scaffold/.claude/agents/entities-planner.md +294 -0
- thingsboard_cli/scaffold/.claude/agents/entity-groups-generator.md +59 -0
- thingsboard_cli/scaffold/.claude/agents/entity-profiles-designer.md +100 -0
- thingsboard_cli/scaffold/.claude/agents/extension-builder.md +462 -0
- thingsboard_cli/scaffold/.claude/agents/iam-designer.md +98 -0
- thingsboard_cli/scaffold/.claude/agents/instance-entity-discoverer.md +71 -0
- thingsboard_cli/scaffold/.claude/agents/metrics-designer.md +165 -0
- thingsboard_cli/scaffold/.claude/agents/relations-designer.md +89 -0
- thingsboard_cli/scaffold/.claude/agents/relations-generator.md +45 -0
- thingsboard_cli/scaffold/.claude/agents/roles-generator.md +51 -0
- thingsboard_cli/scaffold/.claude/agents/users-generator.md +62 -0
- thingsboard_cli/scaffold/.claude/agents/wiring-executor.md +90 -0
- thingsboard_cli/scaffold/.claude/examples/dashboards/building_systems_administration.json +4862 -0
- thingsboard_cli/scaffold/.claude/examples/dashboards/coffee_machine_administration.json +1640 -0
- thingsboard_cli/scaffold/.claude/examples/dashboards/facility_operations_dashboard.json +3679 -0
- thingsboard_cli/scaffold/.claude/settings.json +13 -0
- thingsboard_cli/scaffold/.claude/skills/.gitkeep +0 -0
- thingsboard_cli/scaffold/.claude/skills/commit-step/SKILL.md +96 -0
- thingsboard_cli/scaffold/.claude/skills/create-extension/SKILL.md +200 -0
- thingsboard_cli/scaffold/.claude/skills/create-solution/SKILL.md +793 -0
- thingsboard_cli/scaffold/.claude/skills/design-dashboards/SKILL.md +277 -0
- thingsboard_cli/scaffold/.claude/skills/design-solution-architecture/SKILL.md +279 -0
- thingsboard_cli/scaffold/.claude/skills/generate-alarms/SKILL.md +71 -0
- thingsboard_cli/scaffold/.claude/skills/generate-attributes/SKILL.md +96 -0
- thingsboard_cli/scaffold/.claude/skills/generate-calculated-fields/SKILL.md +67 -0
- thingsboard_cli/scaffold/.claude/skills/generate-dashboard-json/SKILL.md +77 -0
- thingsboard_cli/scaffold/.claude/skills/generate-emulators/SKILL.md +102 -0
- thingsboard_cli/scaffold/.claude/skills/generate-entities/SKILL.md +121 -0
- thingsboard_cli/scaffold/.claude/skills/pull-solution/SKILL.md +239 -0
- thingsboard_cli/scaffold/.claude/skills/reprocess-calculated-fields/SKILL.md +45 -0
- thingsboard_cli/scaffold/.gitignore +1 -0
- thingsboard_cli/scaffold/manifest.json +4 -0
- thingsboard_cli-4.3.1.2.dist-info/METADATA +129 -0
- thingsboard_cli-4.3.1.2.dist-info/RECORD +2532 -0
- thingsboard_cli-4.3.1.2.dist-info/WHEEL +4 -0
- thingsboard_cli-4.3.1.2.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,2149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dashboard-json-generator
|
|
3
|
+
description: "Generate a complete ThingsBoard dashboard JSON in a single pass. Takes solution context (entity profiles, relations, use cases, IAM role) and outputs ready-to-save TB JSON. No subagents."
|
|
4
|
+
tools: Read, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Generate Dashboard JSON
|
|
9
|
+
|
|
10
|
+
This agent is dispatched by the caller (e.g. `create-solution` pipeline or a direct user invocation via the Agent tool). All intermediate work — design, UUID tables, state spec assembly, and widget generation — stays inside this agent's context. The caller receives only the final save summary.
|
|
11
|
+
|
|
12
|
+
Before generating any dashboard, read the capability files listed in Step 1.
|
|
13
|
+
|
|
14
|
+
## Inputs
|
|
15
|
+
|
|
16
|
+
| Arg | Type | Required | Meaning |
|
|
17
|
+
|-----|------|----------|---------|
|
|
18
|
+
| `solution` | string | yes | Solution slug (e.g. `smart-office`) |
|
|
19
|
+
| `dashboardName` | string | yes | Human title for the dashboard |
|
|
20
|
+
| `overview` | string | yes | 1–2 sentence description of the dashboard's purpose |
|
|
21
|
+
| `useCases` | string[] | yes | List of use cases the dashboard must cover |
|
|
22
|
+
| `dashboardRole` | object | yes | IAM role: `{name, userProfile, permissions}` |
|
|
23
|
+
| `entityRelations` | object[] | yes | `{parent, child, type, cardinality}` hierarchy links |
|
|
24
|
+
| `entityProfiles` | object[] | yes | `{name, entityType, telemetry: [{key, telemetryType: "TIMESERIES\|ATTRIBUTE", dataType, units?, minValue?, maxValue?, enumValues?, classifier?}]}` — matches entity-profiles.json exactly |
|
|
25
|
+
| `demoRequirements` | string | no | E.g. `"1 Factory, 3 Machines"` — used to pick root state type |
|
|
26
|
+
| `userRequirements` | string | no | Free-form natural-language preferences the user expressed in chat about this dashboard (widget choices, layout, styling, colors, specific visualizations, etc.). HIGH PRIORITY — overrides default generation decisions. Omit when no preferences apply. |
|
|
27
|
+
| `connectDevicesUrl` | string | no | URL for the connectRealDevices widget (defaults to TB docs URL) |
|
|
28
|
+
| `mode` | string | no | `create` (default) — build a complete dashboard from scratch. `update` — edit an existing dashboard in place; see **Update mode**. |
|
|
29
|
+
| `existingDashboardPath` | string | conditional | Required when `mode=update`. Absolute path to the existing dashboard JSON to read and edit. |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Update mode (`mode=update`) — edit an existing dashboard, don't rebuild it
|
|
34
|
+
|
|
35
|
+
When `mode=update`, the dashboard already exists on disk (pulled from the instance **or** generated by a previous run) and the caller wants a **surgical change**, not a regenerated dashboard. Preserve the existing view.
|
|
36
|
+
|
|
37
|
+
1. **Read** the existing dashboard JSON at `existingDashboardPath`. It is the baseline: its `configuration` (widgets, layouts, states, `entityAliases`, `filters`, settings), its `title`, and its `id` are all kept.
|
|
38
|
+
2. **Make only the change** the `useCases` / brief call for — add or adjust the specific widget(s), state(s), or alias(es) required to satisfy the new/changed use case, and nothing more. A use case already covered by an existing widget needs no edit.
|
|
39
|
+
3. **Preserve everything else verbatim** — do not renumber, restyle, relayout, reorder, or drop any widget/state/alias the change doesn't touch. Keep the existing `id` and `title` so the save updates the same dashboard instead of creating a new one.
|
|
40
|
+
4. **Save** the edited JSON back over the existing dashboard (same `tb dashboard save` path the create flow uses), then return the one-line summary.
|
|
41
|
+
|
|
42
|
+
If `existingDashboardPath` is missing or unreadable, **stop and report** — never silently fall back to a from-scratch build, which would discard the existing view. The Step 1–N from-scratch flow below applies to `mode=create` only; in update mode you still read the capability docs (Step 1) for reference, but you assemble the change onto the loaded JSON rather than building all states fresh.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Step 1 — Read capability docs and examples
|
|
47
|
+
|
|
48
|
+
Before designing or generating anything, read both capability files and all three example dashboards:
|
|
49
|
+
|
|
50
|
+
**States capability** (state types, root-state rules, switcher-detail / overview / statistics decomposition, widget-class catalog at the design level, navigation flow, child-only scope, asset-device wrapper rule, zone presence pattern):
|
|
51
|
+
- `@$TB_RESOURCES/prompts/solutions/dashboard/resources/states/dashboard-states-capabilities.md`
|
|
52
|
+
|
|
53
|
+
**Layout capability** (row budgets, widget size constraints, placement patterns within a state):
|
|
54
|
+
- `@$TB_RESOURCES/prompts/solutions/dashboard/resources/state-layout/dashboard-state-layout-capabilities.md`
|
|
55
|
+
|
|
56
|
+
The two are complementary: the states doc defines **what** states and widgets a dashboard contains (and the relationships between them); the layout doc defines **how** the widgets are sized and placed within each state. When a question is about widget class semantics, navigation, or which state a widget belongs in, the states doc is authoritative. When it's about row counts, grid placement, or size constraints, the layout doc is authoritative.
|
|
57
|
+
|
|
58
|
+
**Reference examples** (ground truth for correct widget JSON — copy field structures from these):
|
|
59
|
+
- `@.claude/examples/dashboards/facility_operations_dashboard.json`
|
|
60
|
+
- `@.claude/examples/dashboards/coffee_machine_administration.json`
|
|
61
|
+
- `@.claude/examples/dashboards/building_systems_administration.json`
|
|
62
|
+
|
|
63
|
+
When any widget field name, nesting, or value is unclear, copy from the nearest real example rather than inferring from documentation. The examples are ground truth — if they contradict anything in this file or the capability docs, follow the examples.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Applying `userRequirements`
|
|
68
|
+
|
|
69
|
+
When the `userRequirements` input is present, treat it as **higher priority than the defaults in this file**. The user has stated specific preferences for this dashboard — widget types, layout, colors, styling, visualizations — and those preferences override the generic rules below.
|
|
70
|
+
|
|
71
|
+
Use it at every decision point where this file gives you a default:
|
|
72
|
+
|
|
73
|
+
| Default in this file | When `userRequirements` overrides |
|
|
74
|
+
|---|---|
|
|
75
|
+
| State type / root state choice (overview vs collection vs standardDetail) | The user named a specific landing experience ("dark-themed floor-plan map on the root state", "single-page operator view", etc.). |
|
|
76
|
+
| Widget class for a given use case (e.g. `valueChartCard` for latest value + trend) | The user named a specific widget ("use a gauge", "pie chart instead of bar chart", "indoor map"). |
|
|
77
|
+
| Widget arrangement (placement hierarchy: cards → map/table → alarms/charts) | The user described a layout ("map at the top", "two cards side by side", "alarm table on the right"). |
|
|
78
|
+
| Colors, icons, marker styles, theme | The user named a color, palette, or theme. Apply to `widgetStyle`, marker `color`, chart series colors, etc. |
|
|
79
|
+
| Tooltip patterns and label content | The user named what to surface ("show only name and status", "include the address line"). |
|
|
80
|
+
|
|
81
|
+
Apply only what the user actually stated. Do **not** invent extra preferences. If `userRequirements` is empty or absent, follow the file's defaults unchanged.
|
|
82
|
+
|
|
83
|
+
When `userRequirements` conflicts with a hard rule (permission gating, schema field shape, alias resolution, the row-budget caps from `dashboard-state-layout-capabilities.md`), the hard rule wins — those rules exist so the dashboard JSON renders at all. Do not break schema or permissions to satisfy a styling preference. In that case, honour the spirit of the user's request as closely as the rules allow.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Scoping to the current customer — `currentCustomer` root alias
|
|
88
|
+
|
|
89
|
+
When `dashboardRole.userProfile` is a customer-scoped controller (the scoped-controller pattern from `design-solution-architecture`: one Customer owns one scope-Asset and one controller User), the dashboard's root alias must resolve to the logged-in user's customer — never to a fixed UUID, never to a tenant-wide list. Use the reserved `currentCustomer` token in `assetSearchQuery` / `deviceSearchQuery` / `relationsQuery` aliases (reserved root-entity values are documented in `@$TB_RESOURCES/prompts/solutions/dashboard/resources/state-datasource/common-datasource-capabilities.md`).
|
|
90
|
+
|
|
91
|
+
Example — root alias that fetches the District asset the current customer owns:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"id": "<aliasUuid>",
|
|
96
|
+
"alias": "Current District",
|
|
97
|
+
"filter": {
|
|
98
|
+
"type": "assetSearchQuery",
|
|
99
|
+
"resolveMultiple": false,
|
|
100
|
+
"rootStateEntity": true,
|
|
101
|
+
"stateEntityParamName": "currentCustomer",
|
|
102
|
+
"rootEntity": null,
|
|
103
|
+
"defaultStateEntity": { "entityType": "CURRENT_CUSTOMER", "id": "<fallback-customer-uuid>" },
|
|
104
|
+
"direction": "FROM",
|
|
105
|
+
"maxLevel": 1,
|
|
106
|
+
"fetchLastLevelOnly": false,
|
|
107
|
+
"relationType": "Manages",
|
|
108
|
+
"assetTypes": ["District"]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Key bits:
|
|
114
|
+
- `stateEntityParamName` is the literal string `"currentCustomer"` — the reserved token TB resolves to the logged-in user's customer at runtime.
|
|
115
|
+
- **`defaultStateEntity` must be `{"entityType": "CURRENT_CUSTOMER", "id": "<fallback-customer-uuid>"}`** — the special `CURRENT_CUSTOMER` entity type tells TB to use the logged-in customer's UUID at runtime; the `id` is only the fallback rendered when no customer is bound to the session (e.g. a tenant admin opening the dashboard for review). Pick the `id` from the customer-scoped customers of this dashboard (e.g. the first customer instance in `customerNameToId` whose profile matches the dashboard's scope). This single shape gives both runtime behaviors: customer-user sessions see their own data, tenant preview sees populated sample data.
|
|
116
|
+
- **Do not** use `{"entityType": "CUSTOMER", "id": "..."}` here — that locks the fallback to one specific customer regardless of who is logged in, so every customer user ends up seeing the hardcoded customer's data. Never leave `defaultStateEntity` as `null` either — that leaves tenant preview blank.
|
|
117
|
+
|
|
118
|
+
The same `stateEntityParamName: "currentCustomer"` + concrete `defaultStateEntity` pattern applies to `deviceSearchQuery` and `relationsQuery`. Omit `spec.entityId` on the root state — the scope-asset's UUID is resolved at runtime via the relation traversal. For tenant-scoped roles, use the standard tenant-wide aliases (`assetType`, `deviceType`) instead — `currentCustomer` is not appropriate there.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Aliasing principles (apply to every datasource, every state)
|
|
123
|
+
|
|
124
|
+
These rules apply across all dashboards, not just customer-scoped ones — customer→asset is one common instance. Violating them produces empty tables, broken drill-downs, and widgets showing the wrong entity's data.
|
|
125
|
+
|
|
126
|
+
### Entity display-name field by kind
|
|
127
|
+
|
|
128
|
+
The human-readable identifier field differs by entity kind. When a widget renders an entity's "name" column, an action references the entity by label, or a detail state shows the entity's identifier, use the right field for the kind — TB rejects unknown keys silently (the column or label simply stays empty):
|
|
129
|
+
|
|
130
|
+
| Kind | Display-name field |
|
|
131
|
+
|---|---|
|
|
132
|
+
| DEVICE | `name` |
|
|
133
|
+
| ASSET | `name` |
|
|
134
|
+
| ENTITY_GROUP | `name` |
|
|
135
|
+
| ROLE | `name` |
|
|
136
|
+
| CUSTOMER | `title` (NOT `name` — TB rejects `name` on customer; `name` is read-only and duplicated from `title` for backward compat) |
|
|
137
|
+
| USER | `email` (primary identifier); `firstName` + `lastName` for human display |
|
|
138
|
+
|
|
139
|
+
Most failures come from CUSTOMER: a widget pointed at a customer alias with `dataKeys: [{name: "name"}]` shows blank cells because the customer record doesn't carry a writeable `name` key — use `title` instead. Same for `inputSchema` fields on actions, drill-down labels, and any place a "what to display" choice references the entity itself rather than a telemetry/attribute key.
|
|
140
|
+
|
|
141
|
+
### `resolveMultiple` must match the alias's actual cardinality
|
|
142
|
+
|
|
143
|
+
Set `resolveMultiple: true` whenever the alias **can return more than one entity** at runtime — even if a particular state of the data currently has one. Set it to `false` only when the alias is truly 1:1 (a single specific entity, a 1:1 relation, the logged-in user, etc.). Pick the value from the alias's semantics, not from the widget rendering it: a single-entity card pulled from a multi-entity alias still needs `resolveMultiple: true` so the alias resolves at all.
|
|
144
|
+
|
|
145
|
+
Rule of thumb by filter type:
|
|
146
|
+
|
|
147
|
+
| Filter type | Default | Why |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| `assetType`, `deviceType` (tenant-wide collection) | `true` | Collections by type are inherently multi-entity. |
|
|
150
|
+
| `entitiesByGroupName` | `true` | A group contains multiple members. |
|
|
151
|
+
| `entityList` (more than one entry) | `true` | Multiple entries by construction. |
|
|
152
|
+
| `assetSearchQuery` / `deviceSearchQuery` / `relationsQuery` with `fetchLastLevelOnly: true` and a 1:M / M:M relation | `true` | The relation can yield many leaves. |
|
|
153
|
+
| `assetSearchQuery` / `deviceSearchQuery` / `relationsQuery` for a 1:1 relation (e.g. the scope-asset from `currentCustomer` via 1:1 `Manages`) | `false` | Documented 1:1 — exactly one entity. |
|
|
154
|
+
| `singleEntity` | `false` | One specific entity by construction. |
|
|
155
|
+
| `stateEntity` | `false` | One UUID passed via `stateEntityParamName`. |
|
|
156
|
+
| `entityList` with a single entry | `false` | Effectively a `singleEntity`. |
|
|
157
|
+
|
|
158
|
+
When unsure (e.g. a `Manages` relation that's 1:1 today but could be 1:M tomorrow), prefer `true` — it's the safer default. `resolveMultiple: false` against an alias that returns N entities silently truncates to one, which looks like "the widget is empty / missing rows" to the user with no error in the console.
|
|
159
|
+
|
|
160
|
+
### Alias must resolve to the entity that owns the keys you're rendering
|
|
161
|
+
|
|
162
|
+
Every TB entity type (DEVICE, ASSET, CUSTOMER, USER) has its own telemetry / attribute / calculated-field keys. The alias backing a widget must resolve to the entity that **actually carries** the keys the widget renders — picking the wrong entity yields empty columns, empty gauges, and empty chart series.
|
|
163
|
+
|
|
164
|
+
Hard rules:
|
|
165
|
+
|
|
166
|
+
- **Pick the data entity from the widget's keys first**, then build the alias to resolve to that entity. Don't pick the alias first and discover its target doesn't carry the right keys.
|
|
167
|
+
- **CUSTOMER and USER are rarely data entities.** Neither carries domain telemetry / attributes — those live on the assets and devices the customer owns or the user is associated with. CUSTOMER and USER aliases are valid only as navigation pickers (tenant-admin browsing across customers) or as relation roots that walk down to the actual data entity. If you want "the customer's data" or "the user's data", that almost always means "the data on the asset/device they own / are associated with" — alias accordingly via a relation query.
|
|
168
|
+
|
|
169
|
+
### Drill-down must pass the entity the next state is built around
|
|
170
|
+
|
|
171
|
+
A row-click action navigates to a detail state designed around a specific entity kind (its profile keys, its child aliases). The drill-down's `setEntityId` passes the row's entity ID into the state param. If the row is a *different kind* of entity than the detail state expects, every alias in the detail state breaks — child aliases try to walk from the wrong root and resolve to nothing.
|
|
172
|
+
|
|
173
|
+
Hard rule: the entities in the **originating collection** must be of the **same kind** the detail state's primary alias resolves to. "District detail" → rows are Districts. "Device detail" → rows are Devices. If your collection's alias is resolving to an upstream relative (a parent Customer, a containing Building, etc.) instead of the kind the detail state expects, fix the collection alias — don't try to compensate in the detail state.
|
|
174
|
+
|
|
175
|
+
### Multi-hop navigation: two-step vs. single-alias deep walk
|
|
176
|
+
|
|
177
|
+
When the entities you need to surface are multiple relation hops from the alias root (e.g. `Customer --Manages--> District --Contains--> Sensor`, `Building --Contains--> Floor --Contains--> Room`, `Fleet --Has--> Vehicle --Reports--> Sensor`), pick one pattern — don't mix them on the same alias.
|
|
178
|
+
|
|
179
|
+
1. **Two-step navigation (preferred for collection → detail flows).** Root state lists the intermediate entity via a relation query with `maxLevel: 1`. Drill-down passes that intermediate entity's UUID to a detail state via the appropriate `stateEntityParamName`. The detail state's child aliases walk one hop further. Use this when the user benefits from seeing the intermediate level as its own page (e.g. picking a District before drilling into its sensors).
|
|
180
|
+
2. **Single-alias deep walk (`maxLevel ≥ 2`).** Skip the intermediate state by walking from the alias root all the way to the leaf entity in one alias, raising `maxLevel` to cover the chain length. TB filters only the **leaf-level** relation type (per `common-datasource-capabilities.md`), so this works cleanly when the structure is linear and the relation chain unambiguous — typically when intermediate levels have a single child profile. If the chain branches or relation types diverge confusingly, prefer pattern 1.
|
|
181
|
+
|
|
182
|
+
These rules combine with the `currentCustomer` section above as one common case: when the alias root is the logged-in customer, the data entity is the scope-Asset (not the Customer), the drill-down passes the scope-Asset (not the Customer), and Customer-to-leaf entities use one of the two multi-hop patterns above.
|
|
183
|
+
|
|
184
|
+
### Pre-write validation checklist (MANDATORY — run after building, before writing the JSON)
|
|
185
|
+
|
|
186
|
+
Before calling `Write` to emit the dashboard JSON, walk the in-memory dashboard and run these three checks. Each must pass for every state, widget, and action. **Loud-fail with a specific error** that names the offending state / widget / action / key — do **not** silently fix one half of the dashboard (e.g. renaming the detail state's alias) while leaving the source widget pointing at the wrong entity kind. The fix must come from re-planning, not from local patching.
|
|
187
|
+
|
|
188
|
+
**Check 1 — Data-entity alignment per widget.** For every widget that renders telemetry / metric / alarm keys, resolve its datasource alias to the entity profile it ultimately points at (follow `assetType` / `deviceType` / `entitiesByGroupName` filters to the profile; follow `assetSearchQuery` / `deviceSearchQuery` / `relationsQuery` to the leaf profile via `assetTypes` / `deviceTypes` / leaf relation). Cross-reference each `dataKey.name` against `entity-profiles.json`:
|
|
189
|
+
|
|
190
|
+
- The key must appear on that profile's `telemetry[]` or `attributes[]`, OR be the `output` of a calculated field whose `attachedTo` is that profile (from `metrics.json`).
|
|
191
|
+
- If the resolved profile is a CUSTOMER and any data key is not a built-in customer field (`title`, `address`, `city`, `country`, `email`, `phone`, etc.) **and** is not present on the customer profile's attributes, that's the Customer-as-container violation. Stop with:
|
|
192
|
+
|
|
193
|
+
`error: widget <widget-id> in state <state-id> uses alias "<alias-name>" (CUSTOMER kind) but renders key "<key>" that lives on <owner-profile> (ASSET/DEVICE). Customer is a container; either list <owner-profile> directly (pattern a) or restructure as customer-detail → asset-detail (pattern b). See design-dashboards entity-kind correctness rules.`
|
|
194
|
+
|
|
195
|
+
- For CUSTOMER aliases specifically, if a data key is literally `"name"` (a common mistake — `name` is the display field for DEVICE / ASSET / ROLE but for CUSTOMER the display field is `"title"`), stop with:
|
|
196
|
+
|
|
197
|
+
`error: widget <widget-id> in state <state-id> uses CUSTOMER alias "<alias-name>" with dataKey "name". CUSTOMER's display-name field is "title", not "name". Replace the dataKey with "title".`
|
|
198
|
+
|
|
199
|
+
**Check 2 — Drill-down kind match per action.** For every action of type `drillDown` (or `openDashboardState` with `setEntityId: true`), determine:
|
|
200
|
+
|
|
201
|
+
- **Source kind**: the entity profile the originating widget's datasource alias resolves to (same resolution as Check 1).
|
|
202
|
+
- **Target kind**: the entity profile the target state's primary alias resolves to (the alias whose filter uses `stateEntityParamName` matching the action's `stateEntityParamName`).
|
|
203
|
+
|
|
204
|
+
The two kinds must match. The action passes the source row's UUID via `setEntityId`; if the target state's alias expects a different kind, every datasource and child alias in the target state breaks. Stop with:
|
|
205
|
+
|
|
206
|
+
`error: drill-down from widget <widget-id> in state <source-state-id> to state <target-state-id> passes <source-kind> UUID via "<stateEntityParamName>" but the target state's primary alias expects <target-kind>. Source-list kind must match target-detail-state kind. See design-dashboards Rule 3 (Navigation explicitness).`
|
|
207
|
+
|
|
208
|
+
**Check 3 — Customer-level role entry point.** If `dashboardRole.userProfile.scope` is a customer profile name (i.e. customer-level role), the root state's primary datasource alias must NOT resolve to a CUSTOMER kind. The root must open on the scope-asset (or its children) via `currentCustomer`. Per `ba-dashboard-overview-capabilities.md` Customer-Level Role and the `currentCustomer` section above. Stop with:
|
|
209
|
+
|
|
210
|
+
`error: root state of customer-level dashboard for role "<role-name>" resolves to CUSTOMER kind via alias "<alias-name>". Customer is implicit (currentCustomer); root must open on the scope-asset reached via the Manages relation.`
|
|
211
|
+
|
|
212
|
+
**Check 4 — `currentCustomer` aliases use the `CURRENT_CUSTOMER` fallback type.** For every alias with `stateEntityParamName: "currentCustomer"` (and `rootStateEntity: true`), `defaultStateEntity` MUST be `{"entityType": "CURRENT_CUSTOMER", "id": "<real-customer-uuid>"}`. The `CURRENT_CUSTOMER` entity type tells TB to substitute the logged-in customer at runtime; the `id` is just the tenant-preview fallback. Two failure modes to catch:
|
|
213
|
+
|
|
214
|
+
- `defaultStateEntity.entityType == "CUSTOMER"` — locks the fallback to one specific customer at runtime, so every customer user sees that one customer's data instead of their own. Stop with:
|
|
215
|
+
|
|
216
|
+
`error: alias "<alias-name>" uses stateEntityParamName="currentCustomer" but defaultStateEntity.entityType is "CUSTOMER" (locked to customer <uuid>). Must be "CURRENT_CUSTOMER" so TB resolves to the logged-in customer at runtime — the UUID becomes the tenant-preview fallback only.`
|
|
217
|
+
|
|
218
|
+
- `defaultStateEntity == null` — tenant preview renders blank. Stop with:
|
|
219
|
+
|
|
220
|
+
`error: alias "<alias-name>" uses stateEntityParamName="currentCustomer" but defaultStateEntity is null. Set it to {"entityType": "CURRENT_CUSTOMER", "id": "<real-customer-uuid>"} so tenant-admin preview renders against the fallback UUID while customer-user sessions get the runtime currentCustomer.`
|
|
221
|
+
|
|
222
|
+
**Check 5 — `resolveMultiple` matches alias cardinality.** For every alias whose filter is inherently multi-entity, verify `resolveMultiple == true`. A `false` value silently truncates the result to one entity, breaking tables, maps, and any widget that expects a collection.
|
|
223
|
+
|
|
224
|
+
Fail when `resolveMultiple == false` AND the filter is one of:
|
|
225
|
+
- `assetType`, `deviceType` — tenant-wide collections by type.
|
|
226
|
+
- `entitiesByGroupName` — a group's members.
|
|
227
|
+
- `entityList` with more than one entry.
|
|
228
|
+
- `assetSearchQuery` / `deviceSearchQuery` / `relationsQuery` where the resolved leaf relation in `relations.json` has cardinality `1:M` or `M:M`, OR where the alias does not document a 1:1 relation explicitly.
|
|
229
|
+
|
|
230
|
+
Stop with:
|
|
231
|
+
|
|
232
|
+
`error: alias "<alias-name>" has resolveMultiple=false but filter type "<filter-type>" is inherently multi-entity (or the underlying relation is not 1:1). resolveMultiple=false truncates the result to one entity, silently breaking the widget. Set resolveMultiple=true, or change the filter to a 1:1 shape (singleEntity / stateEntity / 1:1 relation query) if the alias really must return one entity.`
|
|
233
|
+
|
|
234
|
+
This check is the most common source of "the widget renders only one row when I expected the whole list" bugs — the alias works, the data exists, the filter is correct, but `resolveMultiple` silently caps the result.
|
|
235
|
+
|
|
236
|
+
These checks are cheap (a single pass over the in-memory state tree) and catch the entire class of "rendered the wrong entity's data" / "drill-down broke the detail state" bugs at the latest sensible moment, before they hit disk.
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## State switching mechanism (switcherDetail states)
|
|
241
|
+
|
|
242
|
+
Sub-state switching inside a `switcherDetail` container is driven by exactly one widget pair, and no others:
|
|
243
|
+
|
|
244
|
+
- **`navigationWidget`** — the only widget allowed to change `subStateId`. Each one is a tab button targeting a single sibling sub-state; its `click` action runs the `custom` JS that sets `params.subStateId` and calls `widgetContext.stateController.updateState(...)`. One navigationWidget per sibling sub-state, all in the header row (`row: 0`) of the `switcherDetail`.
|
|
245
|
+
- **`stateSwitcher`** — a passive container, auto-injected at `{ row: 1, col: 0, sizeX: 24, sizeY: 14 }`. It binds to the `stateEntity` alias and renders whichever sub-state the current `subStateId` points at. Its content updates because `subStateId` changed, not because anything was clicked on the container itself.
|
|
246
|
+
|
|
247
|
+
Hard rules:
|
|
248
|
+
|
|
249
|
+
- Sub-state switching inside a `switcherDetail` is **exclusively** the navigationWidget's responsibility. Do not wire `updateDashboardState`, `openDashboardState`, or custom click functions onto any other widget class to switch sub-states.
|
|
250
|
+
- The `stateSwitcher` is a renderer, not an interactive widget — its `actions` map MUST be `{}`. Do not attach `click`, `rowClick`, or any other action slot.
|
|
251
|
+
- Do not use `actionButton` with a state-changing action to switch sub-states. If a user-facing control needs to switch sub-states, it MUST be a `navigationWidget`.
|
|
252
|
+
- Top-level state navigation (e.g. collection → standardDetail → switcherDetail) still uses `drillDown` / `openDashboardState` from `rowClick` / `tagActions` per the Action Body Catalog — those move between distinct dashboard states, not between sub-states inside a switcher. The rule above does not apply there.
|
|
253
|
+
|
|
254
|
+
Pre-write check (run alongside the validation checklist above): for every `switcherDetail` state, verify that (a) every widget targeting `subStateId` is a `navigationWidget`, (b) the `stateSwitcher`'s `config.actions` is `{}`, and (c) no other widget in the state has an action of type `updateDashboardState`. Loud-fail with:
|
|
255
|
+
|
|
256
|
+
`error: state <state-id> (switcherDetail) has widget <widget-id> (class <widget-class>) attempting to switch sub-states. Sub-state switching is navigationWidget-only — see "State switching mechanism".`
|
|
257
|
+
|
|
258
|
+
This split keeps the switcher predictable: navigationWidget owns the *trigger*, stateSwitcher owns the *render*. Treat any future "I need a different switching trigger" requirement as a design change, not a per-widget shortcut.
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Step 2 — Generate UUIDs
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
python3 -c "import uuid; [print(uuid.uuid4()) for _ in range(60)]"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Assign one UUID to each:
|
|
269
|
+
- The dashboard itself (`dashboard_uuid`)
|
|
270
|
+
- Every widget across all states (`{widgetName}_uuid`)
|
|
271
|
+
- Every unique datasource/alias (`{datasourceId}_alias_uuid`)
|
|
272
|
+
- Every action body (one per action, inline in the state spec)
|
|
273
|
+
- One `stateSwitcherUuid` per `switcherDetail` state (for the auto-injected stateSwitcher widget)
|
|
274
|
+
- One `stateSwitcherAliasUuid` per `switcherDetail` state — this is the UUID of that state's `stateEntity` alias (already assigned above as an alias UUID; just reference it here)
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Step 3 — Build state specs and entityAliases
|
|
279
|
+
|
|
280
|
+
For each state, produce a state spec object with ALL UUIDs pre-filled:
|
|
281
|
+
|
|
282
|
+
```json
|
|
283
|
+
{
|
|
284
|
+
"stateId": "<kebab-case id>",
|
|
285
|
+
"stateName": "<Human Name>",
|
|
286
|
+
"stateType": "collection | standardDetail | switcherDetail | overview | statistics",
|
|
287
|
+
"root": true | false,
|
|
288
|
+
"autoFillHeight": true,
|
|
289
|
+
"entityId": "<UUID of the specific entity this state focuses on — set when root:true and stateType is a detail/switcher (no parent passing an entity via param), or when any alias must use singleEntity. Omit for all other states.>",
|
|
290
|
+
"entityProfiles": "<array of full profile objects from the entityProfiles input that are relevant to this state — include the primary profile plus any child profiles whose entities appear as related entities in this state>",
|
|
291
|
+
"stateSwitcherUuid": "<pre-assigned uuid — only for switcherDetail states>",
|
|
292
|
+
"stateSwitcherAliasUuid": "<uuid of the stateEntity alias — only for switcherDetail states>",
|
|
293
|
+
"widgets": [
|
|
294
|
+
{
|
|
295
|
+
"class": "<widgetClass>",
|
|
296
|
+
"uuid": "<widget-uuid>",
|
|
297
|
+
"sizeX": N, "sizeY": N, "row": N, "col": N,
|
|
298
|
+
"aliasUuid": "<alias-uuid>",
|
|
299
|
+
"imageSourceAliasUuid": "<alias uuid of parent entity with floor plan — only for indoorMap>",
|
|
300
|
+
"stateId": "<target sibling state id — only for navigationWidget>",
|
|
301
|
+
"title": "<optional>",
|
|
302
|
+
"keys": [ { "name": "<key>", "label": "<Label>", "type": "timeseries|attribute|entityField", "units": "<optional>", "decimals": N } ],
|
|
303
|
+
"actions": {
|
|
304
|
+
"rowClick": { "type": "drillDown", "uuid": "<action-uuid>", "targetStateId": "<id>", "stateEntityParamName": "<param>" },
|
|
305
|
+
"headerButton": { "type": "createEntityDialog", "uuid": "<action-uuid>", "dialogTitle": "<title>", "entityType": "ASSET|DEVICE|CUSTOMER", "entitySubType": "<profile>", "entityOwner": "<stateParam or empty>", "targetEntityGroups": ["<profile>"] },
|
|
306
|
+
"actionCellButton": [
|
|
307
|
+
{ "type": "editEntityDialog", "uuid": "<action-uuid>" },
|
|
308
|
+
{ "type": "deleteEntityDialog", "uuid": "<action-uuid>" },
|
|
309
|
+
{ "type": "changeOwnerDialog", "uuid": "<action-uuid>" } // optional — only when entity can be reassigned to a different customer
|
|
310
|
+
],
|
|
311
|
+
"click": { "type": "drillDown | createEntityDialog | editEntityDialog | deleteEntityDialog | custom", "uuid": "<action-uuid>", "targetStateId": "<id — for drillDown>" },
|
|
312
|
+
"tagActions": [ { "type": "drillDown", "uuid": "<action-uuid>", "targetStateId": "<id>", "stateEntityParamName": "<param>" } ]
|
|
313
|
+
}
|
|
314
|
+
// Only include action slots that apply to this widget's class. Omit unused slots entirely.
|
|
315
|
+
}
|
|
316
|
+
],
|
|
317
|
+
"entityAliases": {
|
|
318
|
+
"<aliasUuid>": { "id": "<aliasUuid>", "alias": "<Human Name>", "filter": { ... } }
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
The **top-level `entityAliases` map** (a merged map of all aliases across all states, deduplicated by UUID) is accumulated incrementally in Step 4a as you generate each state. This is used during final assembly.
|
|
324
|
+
|
|
325
|
+
Set `autoFillHeight: false` for `switcherDetail` states.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Step 4 — Generate widget JSON inline for each state
|
|
330
|
+
|
|
331
|
+
For each state designed in Step 3, generate the full `{ widgets, stateLayout }` output **in this agent's context** — do not dispatch subagents.
|
|
332
|
+
|
|
333
|
+
**For each state, work through these sub-steps:**
|
|
334
|
+
|
|
335
|
+
### 4a — Build entityAliases for this state
|
|
336
|
+
|
|
337
|
+
Using the Entity Alias Catalog below, produce the `entityAliases` map for the state. Key by `aliasUuid`; `id` inside each object must equal its map key.
|
|
338
|
+
|
|
339
|
+
Also accumulate every alias into the **top-level entityAliases map** (deduplicated by UUID) — needed for Step 5 assembly.
|
|
340
|
+
|
|
341
|
+
### 4b — Generate each widget's config
|
|
342
|
+
|
|
343
|
+
For each widget in the state spec:
|
|
344
|
+
|
|
345
|
+
1. Find the widget's `class` in the **Widget Config Catalog** below.
|
|
346
|
+
2. Copy the template from the catalog exactly — do not omit any required field.
|
|
347
|
+
3. Substitute the pre-assigned UUIDs, aliasUuids, keys, and actions from the state spec.
|
|
348
|
+
4. For each action slot, find the action type in the **Action Body Catalog** below and fill the body.
|
|
349
|
+
5. Emit the completed widget object under the `widgets` map, keyed by the widget's UUID.
|
|
350
|
+
|
|
351
|
+
Use the example dashboard JSONs (read in Step 1) as the primary reference for field shapes. When a catalog template is ambiguous about a field value or nesting, look at how the same widget class appears in the examples and match it exactly.
|
|
352
|
+
|
|
353
|
+
### 4c — Build stateLayout entry for this state
|
|
354
|
+
|
|
355
|
+
Emit the `stateLayout` entry per the **State Assembly** section below. `autoFillHeight` in `gridSettings` is `"false"` for `switcherDetail` states, `"true"` for all others.
|
|
356
|
+
|
|
357
|
+
For `switcherDetail` states: after generating the header-row widgets, auto-inject the `stateSwitcher` widget at `{ row: 1, col: 0, sizeX: 24, sizeY: 14 }` using `stateSwitcherUuid` and `stateSwitcherAliasUuid` from the state spec.
|
|
358
|
+
|
|
359
|
+
### 4d — Run per-state validation checklist
|
|
360
|
+
|
|
361
|
+
Before moving to the next state, verify:
|
|
362
|
+
|
|
363
|
+
| Check | Rule |
|
|
364
|
+
|-------|------|
|
|
365
|
+
| Widget ↔ layout sync | Every UUID in `stateLayout.<stateId>.layouts.main.widgets` exists in `widgets` map with identical `sizeX`, `sizeY`, `row`, `col`. |
|
|
366
|
+
| Alias cross-references | Every `entityAliasId` in any datasource is a key in the state's `entityAliases`. |
|
|
367
|
+
| Alias `id` field | Inside each alias object, `id` equals the map key. |
|
|
368
|
+
| Row budget | Total rows used equals the budget for `stateType` (see layout capability). |
|
|
369
|
+
| Full row coverage | Every row's `sizeX` values sum to 24. Exception: switcherDetail partial header. |
|
|
370
|
+
| No overlaps | No two widgets share any grid cell. |
|
|
371
|
+
| Placement hierarchy | Cards at top → map/table → alarm/charts. |
|
|
372
|
+
| Header zone only | `headerCard`, `navigationWidget`, `actionButton`, `connectRealDevices` appear only at `row: 0`. |
|
|
373
|
+
| switcherDetail body | Only the auto-injected `stateSwitcher` at `{ row: 1, col: 0, sizeX: 24, sizeY: 14 }`. No other body widgets. |
|
|
374
|
+
| typeFullFqn | Must match the table in Widget Config Catalog exactly. |
|
|
375
|
+
| alarmTable datasource | Alarm data goes into `alarmSource`, not `datasources`. `datasources` must be `[]`. |
|
|
376
|
+
| alarmCount datasource | Uses `"type": "alarmCount"` with `dataKeys: [{name:"count", type:"count"}]`. |
|
|
377
|
+
| statistics state | Contains only chart widgets (`chart`, `rangeChart`, `stateChart`, `pieChart`). |
|
|
378
|
+
| pieChart multi-entity label | When a `pieChart` uses a multi-entity datasource with a single `dataKey`, that key's `label` must be `"${entityName}"` — otherwise every slice gets the same hard-coded label. |
|
|
379
|
+
| overview state | No `headerCard`, no `navigationWidget`, no `actionButton`, no chart widgets. |
|
|
380
|
+
|
|
381
|
+
Repeat sub-steps 4a–4d for every state before proceeding to Step 5.
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## Step 5 — Assemble the full dashboard JSON
|
|
386
|
+
|
|
387
|
+
```json
|
|
388
|
+
{
|
|
389
|
+
"id": { "entityType": "DASHBOARD", "id": "<dashboard_uuid>" },
|
|
390
|
+
"title": "<dashboardName>",
|
|
391
|
+
"configuration": {
|
|
392
|
+
"settings": {
|
|
393
|
+
"stateControllerId": "entity",
|
|
394
|
+
"showTitle": false,
|
|
395
|
+
"showDashboardsSelect": true,
|
|
396
|
+
"showEntitiesSelect": true,
|
|
397
|
+
"showDashboardTimewindow": true,
|
|
398
|
+
"showDashboardExport": true,
|
|
399
|
+
"toolbarAlwaysOpen": true
|
|
400
|
+
},
|
|
401
|
+
"timewindow": {
|
|
402
|
+
"selectedTab": 1,
|
|
403
|
+
"history": { "historyType": 0, "timewindowMs": 604800000 },
|
|
404
|
+
"aggregation": { "type": "NONE" }
|
|
405
|
+
},
|
|
406
|
+
"filters": {},
|
|
407
|
+
"entityAliases": "<top-level entityAliases map from Step 3/4>",
|
|
408
|
+
"widgets": "<merge all per-state widgets generated in Step 4: { ...state1.widgets, ...state2.widgets, ...stateN.widgets }>",
|
|
409
|
+
"states": "<merge all per-state stateLayout entries generated in Step 4: { ...state1.stateLayout, ...state2.stateLayout, ...stateN.stateLayout }>"
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
Emit `settings` and `timewindow` verbatim — do not add, remove, or rename any field.
|
|
415
|
+
|
|
416
|
+
**Post-assembly invariant checks:**
|
|
417
|
+
1. Every widgetUuid in `states[*].layouts.main.widgets` exists in top-level `widgets`.
|
|
418
|
+
2. Every `entityAliasId` in widget datasources exists in `entityAliases`.
|
|
419
|
+
3. Every `targetDashboardStateId` in actions exists in `states`.
|
|
420
|
+
4. Row coverage — for each state, verify that widgets use the full row budget (no partial rows; total rows match the state type budget from the layout capability file).
|
|
421
|
+
|
|
422
|
+
(UUID uniqueness is guaranteed by construction — main agent assigned all IDs.)
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Step 6 — Save, add to dashboard group, validate
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
tb dashboard save --solution <solution> --json '<full-dashboard-json>'
|
|
430
|
+
|
|
431
|
+
# Add the saved dashboard to the per-user-group dashboard group created by
|
|
432
|
+
# entities-generator (Step 3 Pass D). The group name is
|
|
433
|
+
# "Dashboards for <dashboardRole.name>" and the file lives at
|
|
434
|
+
# solutions/<solution>/entity-groups/<slug>-<uuid>.json where <slug> is the
|
|
435
|
+
# lowercase, hyphen-separated form of that name (e.g.
|
|
436
|
+
# "dashboards-for-facility-manager-<uuid>.json"). The UUID suffix is appended
|
|
437
|
+
# by the CLI, so glob by slug prefix to locate the file. Read the group's
|
|
438
|
+
# UUID from the file's id.id field and pass it as the positional arg.
|
|
439
|
+
|
|
440
|
+
GROUP_SLUG="dashboards-for-$(printf '%s' "<dashboardRole.name>" | tr '[:upper:]' '[:lower:]' | tr -c 'a-z0-9' '-' | sed -e 's/-\+/-/g' -e 's/^-//' -e 's/-$//')"
|
|
441
|
+
GROUP_FILE=$(ls solutions/<solution>/entity-groups/${GROUP_SLUG}-*.json 2>/dev/null | head -n 1)
|
|
442
|
+
[ -n "$GROUP_FILE" ] || { echo "error: dashboard group file matching ${GROUP_SLUG}-*.json not found under solutions/<solution>/entity-groups/" >&2; exit 1; }
|
|
443
|
+
GROUP_ID=$(python3 -c "import json,sys; data=json.load(open(sys.argv[1])); print(data['entity']['id']['id'])" "$GROUP_FILE")
|
|
444
|
+
|
|
445
|
+
tb entity-group add-entities "$GROUP_ID" --solution <solution> --json '["<dashboardUuid>"]'
|
|
446
|
+
|
|
447
|
+
tb validate <solution>
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
- `<dashboardRole.name>` is the value passed in via the `dashboardRole` input (matches `dashboards.json[i].assignedTo`).
|
|
451
|
+
- `<dashboardUuid>` is the top-level dashboard `id` UUID assigned by Step 2.
|
|
452
|
+
- If no file matches `solutions/<solution>/entity-groups/<slug>-*.json` (the CLI appends a UUID to the filename), stop and surface an error like `error: dashboard group "Dashboards for <role>" not found under solutions/<solution>/entity-groups/ — entities-generator did not run or iam.json was empty`. Do not create the file from the dashboard agent.
|
|
453
|
+
- The local-mode `tb entity-group add-entities` is idempotent: re-running this step on a dashboard already in the group is a no-op (the membership IDs are deduped).
|
|
454
|
+
- Wrap each `tb ...` line in its own bash invocation so a failure surfaces immediately, halting before `tb validate`.
|
|
455
|
+
|
|
456
|
+
Report back to the caller: `ok dashboard="<title>" states=<S> widgets=<W> group=<GROUP_ID> validate=<ok|warnings|errors>`
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## Entity Alias Catalog
|
|
461
|
+
|
|
462
|
+
`entityAliases` is a map keyed by `aliasUuid`. Each value has `id`, `alias`, and `filter`.
|
|
463
|
+
`id` inside the object **must equal** the map key.
|
|
464
|
+
|
|
465
|
+
**Using `spec.entityId` in aliases:**
|
|
466
|
+
|
|
467
|
+
| Situation | How to use `entityId` |
|
|
468
|
+
|-----------|----------------------|
|
|
469
|
+
| `singleEntity` alias | Set `singleEntity.id` to `spec.entityId` |
|
|
470
|
+
| Root detail/switcher state (`spec.root: true`, no `spec.stateEntityParamName`) | Set `rootStateEntity: false` and `rootEntity: { entityType: "...", id: spec.entityId }` in `assetSearchQuery`, `deviceSearchQuery`, and `relationsQuery` aliases instead of using `stateEntityParamName` |
|
|
471
|
+
| Sibling/detail state alias using `assetSearchQuery`, `deviceSearchQuery`, or `relationsQuery` with `rootStateEntity: true`, when the dashboard's root state is a fixed single entity (i.e., the root uses a `singleEntity` alias) | Also set `defaultStateEntity: { entityType: "...", id: "<root-entity-uuid>" }` — the **same UUID** used by the root's `singleEntity.id`. Mirrors the singleEntity rule so the alias resolves before any drill-down populates the state param. Example: a "House" root with sibling states for rooms — each room alias's `defaultStateEntity` is the house's UUID. |
|
|
472
|
+
| Any other state | Use `stateEntityParamName` from the spec; `entityId` is absent and `defaultStateEntity: null` |
|
|
473
|
+
|
|
474
|
+
### stateEntity
|
|
475
|
+
```json
|
|
476
|
+
{
|
|
477
|
+
"id": "<aliasUuid>",
|
|
478
|
+
"alias": "<Human Name>",
|
|
479
|
+
"filter": {
|
|
480
|
+
"type": "stateEntity",
|
|
481
|
+
"resolveMultiple": false,
|
|
482
|
+
"stateEntityParamName": "<rootStateEntity value, e.g. selectedBuilding>",
|
|
483
|
+
"defaultStateEntity": null
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### assetType
|
|
489
|
+
```json
|
|
490
|
+
{
|
|
491
|
+
"id": "<aliasUuid>",
|
|
492
|
+
"alias": "<Human Name>",
|
|
493
|
+
"filter": {
|
|
494
|
+
"type": "assetType",
|
|
495
|
+
"resolveMultiple": true,
|
|
496
|
+
"assetTypes": ["<AssetProfileName>"]
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### deviceType
|
|
502
|
+
```json
|
|
503
|
+
{
|
|
504
|
+
"id": "<aliasUuid>",
|
|
505
|
+
"alias": "<Human Name>",
|
|
506
|
+
"filter": {
|
|
507
|
+
"type": "deviceType",
|
|
508
|
+
"resolveMultiple": true,
|
|
509
|
+
"deviceTypes": ["<DeviceProfileName>"]
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
### entityType (no profile filter)
|
|
515
|
+
```json
|
|
516
|
+
{
|
|
517
|
+
"id": "<aliasUuid>",
|
|
518
|
+
"alias": "<Human Name>",
|
|
519
|
+
"filter": {
|
|
520
|
+
"type": "entityType",
|
|
521
|
+
"resolveMultiple": true,
|
|
522
|
+
"entityType": "ASSET"
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### customersByGroupName
|
|
528
|
+
|
|
529
|
+
Customers do **not** have a profile concept in ThingsBoard — they belong to **customer groups** identified by name. Use this alias whenever a widget needs a multi-customer datasource. `entityGroupNameFilter` is the literal customer-group name created by `entities-generator` (it matches the `name` of each `customerProfiles[i]` entry in `entity-profiles.json` — that name becomes the group's name on save).
|
|
530
|
+
|
|
531
|
+
```json
|
|
532
|
+
{
|
|
533
|
+
"id": "<aliasUuid>",
|
|
534
|
+
"alias": "<Human Name>",
|
|
535
|
+
"filter": {
|
|
536
|
+
"type": "entitiesByGroupName",
|
|
537
|
+
"resolveMultiple": true,
|
|
538
|
+
"groupStateEntity": false,
|
|
539
|
+
"groupType": "CUSTOMER",
|
|
540
|
+
"entityGroupNameFilter": "<CustomerGroupName>"
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
### customerEntities (assets/devices belonging to selected customer)
|
|
546
|
+
```json
|
|
547
|
+
{
|
|
548
|
+
"id": "<aliasUuid>",
|
|
549
|
+
"alias": "<Human Name>",
|
|
550
|
+
"filter": {
|
|
551
|
+
"type": "entitiesByGroupName",
|
|
552
|
+
"resolveMultiple": true,
|
|
553
|
+
"groupType": "ASSET",
|
|
554
|
+
"entityGroupNameFilter": "<AssetProfileName or All>",
|
|
555
|
+
"groupStateEntity": true,
|
|
556
|
+
"stateEntityParamName": "<selectedCustomer>"
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
### assetSearchQuery
|
|
562
|
+
|
|
563
|
+
> **Note on `defaultStateEntity`** (applies to `assetSearchQuery`, `deviceSearchQuery`, and `relationsQuery` below): When `rootStateEntity: true`, leave `defaultStateEntity: null` only if no fixed default is known. If the dashboard's root state is bound to a single fixed entity via a `singleEntity` alias (e.g., a House), set `defaultStateEntity: { entityType, id }` to that same root entity UUID — see the "Sibling/detail state alias …" row in the table above. The examples below use `null` for the generic case; substitute the real UUID when the rule applies.
|
|
564
|
+
|
|
565
|
+
When the root entity comes from a state param (non-root states):
|
|
566
|
+
```json
|
|
567
|
+
{
|
|
568
|
+
"id": "<aliasUuid>",
|
|
569
|
+
"alias": "<Human Name>",
|
|
570
|
+
"filter": {
|
|
571
|
+
"type": "assetSearchQuery",
|
|
572
|
+
"resolveMultiple": true,
|
|
573
|
+
"rootStateEntity": true,
|
|
574
|
+
"stateEntityParamName": "<selectedBuilding>",
|
|
575
|
+
"rootEntity": null,
|
|
576
|
+
"defaultStateEntity": null,
|
|
577
|
+
"direction": "FROM",
|
|
578
|
+
"maxLevel": 1,
|
|
579
|
+
"fetchLastLevelOnly": false,
|
|
580
|
+
"relationType": "<Contains>",
|
|
581
|
+
"assetTypes": ["<AssetProfileName>"]
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
When the root entity is fixed (`spec.root: true`, no `stateEntityParamName` — use `spec.entityId`):
|
|
587
|
+
```json
|
|
588
|
+
{
|
|
589
|
+
"id": "<aliasUuid>",
|
|
590
|
+
"alias": "<Human Name>",
|
|
591
|
+
"filter": {
|
|
592
|
+
"type": "assetSearchQuery",
|
|
593
|
+
"resolveMultiple": true,
|
|
594
|
+
"rootStateEntity": false,
|
|
595
|
+
"stateEntityParamName": null,
|
|
596
|
+
"rootEntity": { "entityType": "<ASSET>", "id": "<spec.entityId>" },
|
|
597
|
+
"defaultStateEntity": null,
|
|
598
|
+
"direction": "FROM",
|
|
599
|
+
"maxLevel": 1,
|
|
600
|
+
"fetchLastLevelOnly": false,
|
|
601
|
+
"relationType": "<Contains>",
|
|
602
|
+
"assetTypes": ["<AssetProfileName>"]
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### deviceSearchQuery
|
|
608
|
+
|
|
609
|
+
When the root entity comes from a state param:
|
|
610
|
+
```json
|
|
611
|
+
{
|
|
612
|
+
"id": "<aliasUuid>",
|
|
613
|
+
"alias": "<Human Name>",
|
|
614
|
+
"filter": {
|
|
615
|
+
"type": "deviceSearchQuery",
|
|
616
|
+
"resolveMultiple": true,
|
|
617
|
+
"rootStateEntity": true,
|
|
618
|
+
"stateEntityParamName": "<selectedFloor>",
|
|
619
|
+
"rootEntity": null,
|
|
620
|
+
"defaultStateEntity": null,
|
|
621
|
+
"direction": "FROM",
|
|
622
|
+
"maxLevel": 1,
|
|
623
|
+
"fetchLastLevelOnly": false,
|
|
624
|
+
"relationType": "<Contains>",
|
|
625
|
+
"deviceTypes": ["<DeviceProfileName>"]
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
When the root entity is fixed (use `spec.entityId`):
|
|
631
|
+
```json
|
|
632
|
+
{
|
|
633
|
+
"id": "<aliasUuid>",
|
|
634
|
+
"alias": "<Human Name>",
|
|
635
|
+
"filter": {
|
|
636
|
+
"type": "deviceSearchQuery",
|
|
637
|
+
"resolveMultiple": true,
|
|
638
|
+
"rootStateEntity": false,
|
|
639
|
+
"stateEntityParamName": null,
|
|
640
|
+
"rootEntity": { "entityType": "<ASSET>", "id": "<spec.entityId>" },
|
|
641
|
+
"defaultStateEntity": null,
|
|
642
|
+
"direction": "FROM",
|
|
643
|
+
"maxLevel": 1,
|
|
644
|
+
"fetchLastLevelOnly": false,
|
|
645
|
+
"relationType": "<Contains>",
|
|
646
|
+
"deviceTypes": ["<DeviceProfileName>"]
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
### relationsQuery
|
|
652
|
+
|
|
653
|
+
When the root entity comes from a state param:
|
|
654
|
+
```json
|
|
655
|
+
{
|
|
656
|
+
"id": "<aliasUuid>",
|
|
657
|
+
"alias": "<Human Name>",
|
|
658
|
+
"filter": {
|
|
659
|
+
"type": "relationsQuery",
|
|
660
|
+
"resolveMultiple": true,
|
|
661
|
+
"rootStateEntity": true,
|
|
662
|
+
"stateEntityParamName": "<selectedZone>",
|
|
663
|
+
"rootEntity": null,
|
|
664
|
+
"defaultStateEntity": null,
|
|
665
|
+
"direction": "FROM",
|
|
666
|
+
"maxLevel": 1,
|
|
667
|
+
"filters": [
|
|
668
|
+
{ "relationType": "<currentlyInside>", "entityTypes": ["DEVICE"] }
|
|
669
|
+
]
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
When the root entity is fixed (use `spec.entityId`):
|
|
675
|
+
```json
|
|
676
|
+
{
|
|
677
|
+
"id": "<aliasUuid>",
|
|
678
|
+
"alias": "<Human Name>",
|
|
679
|
+
"filter": {
|
|
680
|
+
"type": "relationsQuery",
|
|
681
|
+
"resolveMultiple": true,
|
|
682
|
+
"rootStateEntity": false,
|
|
683
|
+
"stateEntityParamName": null,
|
|
684
|
+
"rootEntity": { "entityType": "<ASSET>", "id": "<spec.entityId>" },
|
|
685
|
+
"defaultStateEntity": null,
|
|
686
|
+
"direction": "FROM",
|
|
687
|
+
"maxLevel": 1,
|
|
688
|
+
"filters": [
|
|
689
|
+
{ "relationType": "<currentlyInside>", "entityTypes": ["DEVICE"] }
|
|
690
|
+
]
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
### singleEntity (single fixed entity, requires a real entity UUID)
|
|
696
|
+
```json
|
|
697
|
+
{
|
|
698
|
+
"id": "<aliasUuid>",
|
|
699
|
+
"alias": "<Human Name>",
|
|
700
|
+
"filter": {
|
|
701
|
+
"type": "singleEntity",
|
|
702
|
+
"resolveMultiple": false,
|
|
703
|
+
"singleEntity": { "entityType": "ASSET", "id": "<real-entity-uuid>" }
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
## Action Body Catalog
|
|
711
|
+
|
|
712
|
+
Actions are embedded inside widget `config.actions` slots. Each action body gets a fresh UUID.
|
|
713
|
+
|
|
714
|
+
### drillDown (slot: `rowClick` for tables, `tagActions` for maps)
|
|
715
|
+
```json
|
|
716
|
+
{
|
|
717
|
+
"type": "openDashboardState",
|
|
718
|
+
"id": "<fresh-uuid>",
|
|
719
|
+
"name": "<label or tag id — see note below>",
|
|
720
|
+
"icon": "more_horiz",
|
|
721
|
+
"targetDashboardStateId": "<target-state-id>",
|
|
722
|
+
"setEntityId": true,
|
|
723
|
+
"stateEntityParamName": "<targetStateEntity, e.g. selectedBuilding>"
|
|
724
|
+
}
|
|
725
|
+
```
|
|
726
|
+
|
|
727
|
+
**On the `name` field:**
|
|
728
|
+
- In `rowClick` (entityTable): `name` is the human-readable label shown in the row's drill-down hover (e.g. `"View Building Details"`).
|
|
729
|
+
- In `tagActions` (map widget tooltip): `name` is the machine identifier that the tooltip's `<link-act name='<id>'>...</link-act>` tag binds to. It must be a stable, link-safe string (e.g. `"view-details"`, `"navigate-to-building-details-from-map"`) and must match the `name` attribute in the corresponding `<link-act>` element exactly. The link text inside `<link-act>...</link-act>` is what the user sees.
|
|
730
|
+
|
|
731
|
+
### changeState (slot: `actionCellButton`)
|
|
732
|
+
```json
|
|
733
|
+
{
|
|
734
|
+
"type": "updateDashboardState",
|
|
735
|
+
"id": "<fresh-uuid>",
|
|
736
|
+
"name": "<label>",
|
|
737
|
+
"icon": "edit",
|
|
738
|
+
"targetDashboardStateId": "<target-state-id>",
|
|
739
|
+
"setEntityId": false,
|
|
740
|
+
"stateEntityParamName": null
|
|
741
|
+
}
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
### createEntityDialog (slot: `headerButton`)
|
|
745
|
+
|
|
746
|
+
This action renders a dialog form using Thymeleaf templates. The `customFunction` (JS) and
|
|
747
|
+
`customHtml` (HTML) are generated from templates in
|
|
748
|
+
`@$TB_RESOURCES/templates/widget-action/`.
|
|
749
|
+
|
|
750
|
+
Read and render the templates to generate the content. Variables needed:
|
|
751
|
+
- `dialogTitle` — spec.dialogTitle
|
|
752
|
+
- `createEntity` — `true`
|
|
753
|
+
- `entityType` — e.g. `ASSET`
|
|
754
|
+
- `entitySubType` — profile name (e.g. `Building`)
|
|
755
|
+
- `entityOwner` — state entity param for owner (e.g. `selectedCustomer`), or empty
|
|
756
|
+
- `targetEntityGroups` — `["Building"]` (profile name list)
|
|
757
|
+
- `entityFieldsControls` — form controls for entity fields (name, label, etc.). **When `entityType` is `CUSTOMER`, the primary name field's `key` MUST be `title`, not `name`.** Example:
|
|
758
|
+
|
|
759
|
+
```json
|
|
760
|
+
{ "key": "title", "keyType": "entityField", "label": "Company Name", "type": "text", "required": true }
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
A CUSTOMER createEntityDialog with `{ "key": "name", ... }` saves an empty title; every customer row in tables / dashboards / drill-down headers then renders blank.
|
|
764
|
+
- `attributesControls` — form controls for attribute fields
|
|
765
|
+
- `attributeKeys` — array of attribute key strings
|
|
766
|
+
- `hasProfile`, `hasAttributes`, `hasRelations` — boolean flags
|
|
767
|
+
- `profileFieldControl`, `relationFieldsControls` — if applicable
|
|
768
|
+
- `createRelations` — relations to create on save (e.g. `[{fromStateEntity, toStateEntity, type}]`)
|
|
769
|
+
|
|
770
|
+
```json
|
|
771
|
+
{
|
|
772
|
+
"type": "customPretty",
|
|
773
|
+
"id": "<fresh-uuid>",
|
|
774
|
+
"name": "<label, e.g. Create Building>",
|
|
775
|
+
"icon": "add",
|
|
776
|
+
"customFunction": "<rendered from entity-dialog.js template>",
|
|
777
|
+
"customHtml": "<rendered from entity-dialog.html template>"
|
|
778
|
+
}
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
### editEntityDialog (slot: `actionCellButton`)
|
|
782
|
+
|
|
783
|
+
Same template as createEntityDialog but with `createEntity: false` and icon `edit`:
|
|
784
|
+
```json
|
|
785
|
+
{
|
|
786
|
+
"type": "customPretty",
|
|
787
|
+
"id": "<fresh-uuid>",
|
|
788
|
+
"name": "<label, e.g. Edit Building>",
|
|
789
|
+
"icon": "edit",
|
|
790
|
+
"customFunction": "<rendered from entity-dialog.js>",
|
|
791
|
+
"customHtml": "<rendered from entity-dialog.html>"
|
|
792
|
+
}
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
### deleteEntityDialog (slot: `actionCellButton`)
|
|
796
|
+
|
|
797
|
+
Rendered from `delete-entity-function.js`. Variables: `deleteEntityTitle`, `deleteEntityPrompt`.
|
|
798
|
+
```json
|
|
799
|
+
{
|
|
800
|
+
"type": "custom",
|
|
801
|
+
"id": "<fresh-uuid>",
|
|
802
|
+
"name": "<label, e.g. Delete Building>",
|
|
803
|
+
"icon": "delete",
|
|
804
|
+
"customFunction": "<rendered from delete-entity-function.js>"
|
|
805
|
+
}
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
### changeOwnerDialog (slot: `actionCellButton`)
|
|
809
|
+
|
|
810
|
+
```json
|
|
811
|
+
{
|
|
812
|
+
"type": "customPretty",
|
|
813
|
+
"id": "<fresh-uuid>",
|
|
814
|
+
"name": "<label, e.g. Assign to Customer>",
|
|
815
|
+
"icon": "transfer_within_a_station",
|
|
816
|
+
"customFunction": "widgetContext.actionsApi.getEntityInfo(entityId).then(entity => { widgetContext.actionsApi.openChangeOwnerDialog(entityId, entity.entityType, entity.name); });"
|
|
817
|
+
}
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
### createMapEntityDialog (slot: `headerButton` on map)
|
|
821
|
+
```json
|
|
822
|
+
{
|
|
823
|
+
"type": "placeMapItem",
|
|
824
|
+
"id": "<fresh-uuid>",
|
|
825
|
+
"name": "<label>",
|
|
826
|
+
"icon": "add",
|
|
827
|
+
"mapItemType": "marker",
|
|
828
|
+
"mapItemTooltips": {},
|
|
829
|
+
"customFunction": "<rendered from entity-dialog.js with map_placement=true>",
|
|
830
|
+
"customHtml": "<rendered from entity-dialog.html>"
|
|
831
|
+
}
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
**To render CRUD dialog templates**, read:
|
|
835
|
+
- `@$TB_RESOURCES/templates/widget-action/entity-dialog.js`
|
|
836
|
+
- `@$TB_RESOURCES/templates/widget-action/delete-entity-function.js`
|
|
837
|
+
- `@$TB_RESOURCES/templates/widget-action/entity-dialog.html`
|
|
838
|
+
|
|
839
|
+
Substitute the template variables (Thymeleaf syntax) with the values from the action spec.
|
|
840
|
+
|
|
841
|
+
---
|
|
842
|
+
|
|
843
|
+
## Icons
|
|
844
|
+
|
|
845
|
+
All widget icon names must come from `@$TB_RESOURCES/prompts/solutions/dashboard/resources/icons.json`. Read the file once and pick the most semantically appropriate icon from the category that matches the widget's domain (e.g. "HVAC Control" for temperature, "Water Metering" for water sensors). Never invent icon names.
|
|
846
|
+
|
|
847
|
+
---
|
|
848
|
+
|
|
849
|
+
## Using `spec.entityProfiles` for widget keys
|
|
850
|
+
|
|
851
|
+
Before configuring any widget's `dataKeys`, look up the key definition in `spec.entityProfiles`. Use the profile metadata to set the following fields correctly — never invent or guess values for keys that are defined in the profiles:
|
|
852
|
+
|
|
853
|
+
| Profile field | Widget field | Notes |
|
|
854
|
+
|---|---|---|
|
|
855
|
+
| `telemetryType: "TIMESERIES"` | `type: "timeseries"` | |
|
|
856
|
+
| `telemetryType: "ATTRIBUTE"` | `type: "attribute"` | |
|
|
857
|
+
| `units` | `units` on dataKey and on config | Omit both when absent in profile |
|
|
858
|
+
| `dataType: "double"` | `decimals: 1` | Default for floating-point |
|
|
859
|
+
| `dataType: "integer"` | `decimals: 0` | |
|
|
860
|
+
| `dataType: "enum"` | widget type: `stateChart` | Use `enumValues` to build the `states` array in settings |
|
|
861
|
+
| `minValue` / `maxValue` | `minValue` / `maxValue` in gauge/progressBar settings | Omit when absent in profile |
|
|
862
|
+
| `classifier: "indoorLocationX"` | `xKey` on indoorMap marker layer | Key name for horizontal position |
|
|
863
|
+
| `classifier: "indoorLocationY"` | `yKey` on indoorMap marker layer | Key name for vertical position |
|
|
864
|
+
| `classifier: "image"` | `imageSource.entityKey` on indoorMap | Key name for the floor plan attribute |
|
|
865
|
+
|
|
866
|
+
Only include keys from `spec.entityProfiles` in datasources — do not add keys that are absent from the profiles.
|
|
867
|
+
|
|
868
|
+
---
|
|
869
|
+
|
|
870
|
+
## Permissions gating — when to emit CRUD actions and `allowRepositioning`
|
|
871
|
+
|
|
872
|
+
The assigned user's permission level is `dashboardRole.permissions`: one of `CRUD`, `RU`, or `R`. Use it to gate which action slots a widget emits, and whether map markers/polygons/circles can be repositioned. **A viewer role must not see create/edit/delete buttons or be able to drag markers.**
|
|
873
|
+
|
|
874
|
+
Create/edit/delete entity actions live on `entityTable` and map widgets only — do not wire `createEntityDialog` / `editEntityDialog` / `deleteEntityDialog` onto generic `actionButton` widgets or any other widget class. Each of `entityTable` and the map widgets independently gets its own CRUD actions when the role allows; one does not require the other on the same state. When both happen to share a state, each gets its full action set targeting the same entity type/profile.
|
|
875
|
+
|
|
876
|
+
| Permission | `entityTable` action slots | Map widget marker actions | Map widget layer edit | Map widget `mapActionButtons` |
|
|
877
|
+
|---|---|---|---|---|
|
|
878
|
+
| `CRUD` | `rowClick` (drillDown), `headerButton` (createEntityDialog), `actionCellButton` (editEntityDialog + deleteEntityDialog) | `tagActions` drillDown in tooltip, plus marker tooltip actions for edit/delete where applicable | `allowRepositioning: true` with `edit.enabledActions: ["add", "move", "remove"]` on every marker/polygon/circle layer | `mapActionButtons: [<placeMapItem action body>]` |
|
|
879
|
+
| `RU` | `rowClick` (drillDown), `actionCellButton` (editEntityDialog only — no create, no delete) | `tagActions` drillDown; no create/delete | `allowRepositioning: true` with `edit.enabledActions: ["add", "move", "remove"]` | omit |
|
|
880
|
+
| `R` | `rowClick` (drillDown) only — omit `headerButton` and `actionCellButton` entirely | `tagActions` drillDown only — no edit/delete actions in marker tooltips | `allowRepositioning: false` (the field defaults to omitted/false) | omit |
|
|
881
|
+
|
|
882
|
+
Apply this gate **per widget**, every time you generate one of these widget classes. If the rule says "omit," do not emit the slot at all — empty action arrays are also not allowed for slots the user can't access.
|
|
883
|
+
|
|
884
|
+
`fitMapBounds` stays `true` for `R`; for `RU` and `CRUD` it follows the existing rule (`true` unless any layer has `allowRepositioning: true`).
|
|
885
|
+
|
|
886
|
+
---
|
|
887
|
+
|
|
888
|
+
## Widget Config Catalog
|
|
889
|
+
|
|
890
|
+
**All fields shown in each widget config template are required.** Do not omit any field that appears in the template. The only exceptions are fields explicitly annotated as optional (e.g. `units`, `decimals`, `minValue`, `maxValue` — omit these only when the entity profile does not define them for the key).
|
|
891
|
+
|
|
892
|
+
Every widget body follows this outer shape:
|
|
893
|
+
|
|
894
|
+
```json
|
|
895
|
+
{
|
|
896
|
+
"id": "<widgetUuid>",
|
|
897
|
+
"type": "<see table>",
|
|
898
|
+
"typeFullFqn": "<see table>",
|
|
899
|
+
"sizeX": N, "sizeY": N, "row": N, "col": N,
|
|
900
|
+
"config": { ... }
|
|
901
|
+
}
|
|
902
|
+
```
|
|
903
|
+
|
|
904
|
+
| widgetClass | type | typeFullFqn |
|
|
905
|
+
|---|---|---|
|
|
906
|
+
| `actionButton` | `latest` | `system.action_button` |
|
|
907
|
+
| `connectRealDevices` | `latest` | `system.action_button` |
|
|
908
|
+
| `navigationWidget` | `latest` | `system.action_button` |
|
|
909
|
+
| `headerCard` | `latest` | `system.cards.markdown_card` |
|
|
910
|
+
| `infoCard` | `latest` | `system.cards.markdown_card` |
|
|
911
|
+
| `stateSwitcher` | `latest` | `system.cards.markdown_card` |
|
|
912
|
+
| `batteryLevel` | `latest` | `system.battery_level` |
|
|
913
|
+
| `signalStrength` | `latest` | `system.signal_strength` |
|
|
914
|
+
| `horizontalValueCard` | `latest` | `system.cards.horizontal_value_card` |
|
|
915
|
+
| `simpleGauge` | `latest` | `system.digital_gauges.simple_gauge_justgage` |
|
|
916
|
+
| `progressBar` | `latest` | `system.progress_bar` |
|
|
917
|
+
| `pieChart` | `latest` | `system.horizontal_doughnut` |
|
|
918
|
+
| `barChart` | `latest` | `system.bars` |
|
|
919
|
+
| `entityTable` | `latest` | `system.cards.entities_table` |
|
|
920
|
+
| `alarmTable` | `alarm` | `system.alarm_widgets.alarms_table` |
|
|
921
|
+
| `alarmCount` | `latest` | `system.alarm_count` |
|
|
922
|
+
| `indoorMap` | `latest` | `system.image_map` |
|
|
923
|
+
| `outdoorMap` | `latest` | `system.map` |
|
|
924
|
+
| `chart` | `timeseries` | `system.time_series_chart` |
|
|
925
|
+
| `valueChartCard` | `timeseries` | `system.simple_value_and_chart_card` |
|
|
926
|
+
| `rangeChart` | `timeseries` | `system.range_chart` |
|
|
927
|
+
| `stateChart` | `timeseries` | `system.state_chart` |
|
|
928
|
+
|
|
929
|
+
---
|
|
930
|
+
|
|
931
|
+
### `connectRealDevices`
|
|
932
|
+
|
|
933
|
+
No datasource. `url` defaults to `https://thingsboard.io/docs/user-guide/connectivity-guide/`
|
|
934
|
+
|
|
935
|
+
```json
|
|
936
|
+
"config": {
|
|
937
|
+
"configMode": "basic",
|
|
938
|
+
"title": "Connect Devices",
|
|
939
|
+
"dropShadow": false,
|
|
940
|
+
"borderRadius": "8px",
|
|
941
|
+
"widgetStyle": {},
|
|
942
|
+
"enableFullscreen": false,
|
|
943
|
+
"enableDataExport": false,
|
|
944
|
+
"showTitle": false,
|
|
945
|
+
"padding": "0px",
|
|
946
|
+
"backgroundColor": "#FFFFFF00",
|
|
947
|
+
"datasources": [],
|
|
948
|
+
"settings": {
|
|
949
|
+
"appearance": {
|
|
950
|
+
"type": "filled",
|
|
951
|
+
"showLabel": true,
|
|
952
|
+
"label": "How to connect real devices?",
|
|
953
|
+
"showIcon": true,
|
|
954
|
+
"icon": "help_outline",
|
|
955
|
+
"mainColor": "var(--tb-primary-500)",
|
|
956
|
+
"backgroundColor": "#FFFFFF",
|
|
957
|
+
"customStyle": {}
|
|
958
|
+
},
|
|
959
|
+
"activatedState": { "action": "DO_NOTHING", "defaultValue": false },
|
|
960
|
+
"disabledState": { "action": "DO_NOTHING", "defaultValue": false }
|
|
961
|
+
},
|
|
962
|
+
"actions": {
|
|
963
|
+
"click": [{
|
|
964
|
+
"type": "openURL",
|
|
965
|
+
"id": "<fresh-uuid>",
|
|
966
|
+
"name": "Open Docs",
|
|
967
|
+
"icon": "help_outline",
|
|
968
|
+
"url": "<connectDevicesUrl>",
|
|
969
|
+
"openNewBrowserTab": true
|
|
970
|
+
}]
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
```
|
|
974
|
+
|
|
975
|
+
---
|
|
976
|
+
|
|
977
|
+
### `headerCard`
|
|
978
|
+
|
|
979
|
+
Shows the selected entity's name (and optionally address) as a page title banner.
|
|
980
|
+
`pattern` is a markdown string using `${entityName}` and optionally `${address}`.
|
|
981
|
+
|
|
982
|
+
```json
|
|
983
|
+
"config": {
|
|
984
|
+
"configMode": "basic",
|
|
985
|
+
"title": "",
|
|
986
|
+
"dropShadow": false,
|
|
987
|
+
"borderRadius": "8px",
|
|
988
|
+
"widgetStyle": {},
|
|
989
|
+
"enableFullscreen": false,
|
|
990
|
+
"enableDataExport": false,
|
|
991
|
+
"showTitle": false,
|
|
992
|
+
"padding": "0px",
|
|
993
|
+
"backgroundColor": "#FFFFFF00",
|
|
994
|
+
"datasources": [{
|
|
995
|
+
"type": "entity",
|
|
996
|
+
"entityAliasId": "<aliasUuid of the stateEntity datasource>",
|
|
997
|
+
"dataKeys": [
|
|
998
|
+
{ "name": "name", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {} }
|
|
999
|
+
]
|
|
1000
|
+
}],
|
|
1001
|
+
"settings": {
|
|
1002
|
+
"useMarkdownTextFunction": false,
|
|
1003
|
+
"markdownTextPattern": "**${Name}**",
|
|
1004
|
+
"applyDefaultMarkdownStyle": true,
|
|
1005
|
+
"markdownCss": ".tb-markdown-view p { display: flex; margin: 0; align-items: center; height: 100%; font-size: 28px; font-weight: 500; color: #212121; padding: 0; }"
|
|
1006
|
+
},
|
|
1007
|
+
"actions": {}
|
|
1008
|
+
}
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
---
|
|
1012
|
+
|
|
1013
|
+
### `infoCard`
|
|
1014
|
+
|
|
1015
|
+
Multi-key labeled summary panel. `dataKeys` lists every key referenced in the rendered content (4–5 max).
|
|
1016
|
+
|
|
1017
|
+
`infoCard` content has two mutually exclusive modes — `useMarkdownTextFunction` picks between them. Pick **pattern** by default; use **function** only when you need conditional formatting that pure substitution can't express.
|
|
1018
|
+
|
|
1019
|
+
**Mode A — Markdown/HTML pattern** (`useMarkdownTextFunction: false`)
|
|
1020
|
+
|
|
1021
|
+
`markdownTextPattern` is a string of markdown or HTML with `${...}` substitutions. Each placeholder resolves at render time:
|
|
1022
|
+
|
|
1023
|
+
- `${entityName}` → the datasource entity's name (always available, no `dataKeys` entry needed).
|
|
1024
|
+
- `${<KeyLabel>}` or `${<keyName>}` → the latest value of a key listed in `dataKeys`. Match the `label` (or the `name` when label is omitted) exactly — placeholders that don't match a declared key render empty.
|
|
1025
|
+
- Use `\n\n` to separate paragraphs in markdown; use `<br/>` inside a paragraph.
|
|
1026
|
+
|
|
1027
|
+
Example pattern: `"**Location**: ${location}\n\n**Model**: ${model}"`.
|
|
1028
|
+
|
|
1029
|
+
**Mode B — Markdown/HTML value function** (`useMarkdownTextFunction: true`)
|
|
1030
|
+
|
|
1031
|
+
`markdownTextFunction` is the **body** of a JS function with signature `(data, ctx) => string`. It must `return` a markdown or HTML string.
|
|
1032
|
+
|
|
1033
|
+
- `data: FormattedData[]` — one entry per resolved datasource entity. Each entry exposes basic entity properties (`entityId`, `entityName`) plus every key declared in `dataKeys` (by both its `name` and its `label`, e.g. `data[0]['First name']` and `data[0].firstName` both work).
|
|
1034
|
+
- `ctx: WidgetContext` — the widget context, with access to dashboard state, timewindow, services, etc.
|
|
1035
|
+
|
|
1036
|
+
Example function body: `"return '# Some title\\n - Entity name: ' + data[0]['entityName'];"`.
|
|
1037
|
+
|
|
1038
|
+
Use a function over a pattern when you need branching (e.g. show a different label depending on a status value, or fall back to a second key when the first is empty).
|
|
1039
|
+
|
|
1040
|
+
**Settings fields** (all four can appear in the same `settings` object; the inactive mode's field is ignored but doesn't have to be removed):
|
|
1041
|
+
|
|
1042
|
+
```json
|
|
1043
|
+
"settings": {
|
|
1044
|
+
"useMarkdownTextFunction": false,
|
|
1045
|
+
"markdownTextPattern": "**Location**: ${location}\n\n**Model**: ${model}",
|
|
1046
|
+
"markdownTextFunction": "return '# Some title\\n - Entity name: ' + data[0]['entityName'];",
|
|
1047
|
+
"applyDefaultMarkdownStyle": true,
|
|
1048
|
+
"markdownCss": ".m { color: red; }"
|
|
1049
|
+
}
|
|
1050
|
+
```
|
|
1051
|
+
|
|
1052
|
+
- `applyDefaultMarkdownStyle: true` — applies the built-in markdown stylesheet (paragraph spacing, font sizes). Keep `true` unless `markdownCss` fully styles the content.
|
|
1053
|
+
- `markdownCss` — extra CSS rules layered on top. Selectors are scoped to the widget's markdown container. Omit (or empty string) when no custom styling is needed.
|
|
1054
|
+
|
|
1055
|
+
Full widget body:
|
|
1056
|
+
|
|
1057
|
+
```json
|
|
1058
|
+
"config": {
|
|
1059
|
+
"configMode": "basic",
|
|
1060
|
+
"title": "",
|
|
1061
|
+
"dropShadow": false,
|
|
1062
|
+
"borderRadius": "8px",
|
|
1063
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1064
|
+
"enableFullscreen": false,
|
|
1065
|
+
"enableDataExport": false,
|
|
1066
|
+
"showTitle": false,
|
|
1067
|
+
"padding": "10px",
|
|
1068
|
+
"datasources": [{
|
|
1069
|
+
"type": "entity",
|
|
1070
|
+
"entityAliasId": "<aliasUuid>",
|
|
1071
|
+
"dataKeys": [
|
|
1072
|
+
{ "name": "<key>", "label": "<Label>", "type": "<entityField|attribute|timeseries>", "color": "#4caf50", "settings": {} }
|
|
1073
|
+
]
|
|
1074
|
+
}],
|
|
1075
|
+
"settings": {
|
|
1076
|
+
"useMarkdownTextFunction": false,
|
|
1077
|
+
"markdownTextPattern": "**<Label>**: ${<key>}\n\n**<Label2>**: ${<key2>}",
|
|
1078
|
+
"applyDefaultMarkdownStyle": true
|
|
1079
|
+
},
|
|
1080
|
+
"actions": {}
|
|
1081
|
+
}
|
|
1082
|
+
```
|
|
1083
|
+
|
|
1084
|
+
---
|
|
1085
|
+
|
|
1086
|
+
### `navigationWidget`
|
|
1087
|
+
|
|
1088
|
+
Tab button that switches the `subStateId` param. One per sibling state in a `switcherDetail`.
|
|
1089
|
+
`stateId` is the target sibling state id (e.g. `"sensor-overview"`).
|
|
1090
|
+
|
|
1091
|
+
**The only widget allowed to switch sub-states inside a `switcherDetail`** — see the **State switching mechanism** section above. Sub-state changes from any other widget class are a hard error.
|
|
1092
|
+
|
|
1093
|
+
```json
|
|
1094
|
+
"config": {
|
|
1095
|
+
"configMode": "basic",
|
|
1096
|
+
"title": "<Tab label, e.g. Overview>",
|
|
1097
|
+
"dropShadow": false,
|
|
1098
|
+
"borderRadius": "8px",
|
|
1099
|
+
"widgetStyle": {},
|
|
1100
|
+
"enableFullscreen": false,
|
|
1101
|
+
"enableDataExport": false,
|
|
1102
|
+
"showTitle": false,
|
|
1103
|
+
"padding": "0px",
|
|
1104
|
+
"backgroundColor": "#FFFFFF00",
|
|
1105
|
+
"datasources": [],
|
|
1106
|
+
"settings": {
|
|
1107
|
+
"appearance": {
|
|
1108
|
+
"type": "outlined",
|
|
1109
|
+
"showLabel": true,
|
|
1110
|
+
"label": "<Tab label>",
|
|
1111
|
+
"showIcon": false,
|
|
1112
|
+
"icon": "",
|
|
1113
|
+
"mainColor": "var(--tb-primary-500)",
|
|
1114
|
+
"backgroundColor": "#FFFFFF00",
|
|
1115
|
+
"customStyle": {}
|
|
1116
|
+
},
|
|
1117
|
+
"activatedState": {
|
|
1118
|
+
"action": "GET_DASHBOARD_STATE_OBJECT",
|
|
1119
|
+
"defaultValue": false,
|
|
1120
|
+
"dataToValue": {
|
|
1121
|
+
"type": "FUNCTION",
|
|
1122
|
+
"compareToValue": true,
|
|
1123
|
+
"dataToValueFunction": "return data.params.subStateId === \"<stateId>\";"
|
|
1124
|
+
}
|
|
1125
|
+
},
|
|
1126
|
+
"disabledState": { "action": "DO_NOTHING" }
|
|
1127
|
+
},
|
|
1128
|
+
"actions": {
|
|
1129
|
+
"click": [{
|
|
1130
|
+
"type": "custom",
|
|
1131
|
+
"id": "<fresh-uuid>",
|
|
1132
|
+
"name": "Navigate",
|
|
1133
|
+
"icon": "edit",
|
|
1134
|
+
"customFunction": "let params = widgetContext.stateController.getStateParams();\n\nparams.subStateId = \"<stateId>\";\n\nwidgetContext.stateController.updateState(widgetContext.stateController.getStateId(), params);\nwidgetContext.updateAliases();"
|
|
1135
|
+
}]
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
```
|
|
1139
|
+
|
|
1140
|
+
---
|
|
1141
|
+
|
|
1142
|
+
### `stateSwitcher`
|
|
1143
|
+
|
|
1144
|
+
Auto-injected in every `switcherDetail` state. Binds to the `stateEntity` alias and renders
|
|
1145
|
+
the currently active sub-state. `defaultSubStateId` is the `stateId` of the first `navigationWidget`.
|
|
1146
|
+
Position: `{ "row": 1, "col": 0, "sizeX": 24, "sizeY": 14 }`.
|
|
1147
|
+
|
|
1148
|
+
**Passive container — it never carries state-switching actions.** Its content updates because `subStateId` changed (driven by a sibling `navigationWidget`), not because anything was clicked on the container itself. `config.actions` MUST be `{}`. See the **State switching mechanism** section above.
|
|
1149
|
+
|
|
1150
|
+
```json
|
|
1151
|
+
"config": {
|
|
1152
|
+
"configMode": "basic",
|
|
1153
|
+
"title": "",
|
|
1154
|
+
"dropShadow": false,
|
|
1155
|
+
"borderRadius": "8px",
|
|
1156
|
+
"widgetStyle": {},
|
|
1157
|
+
"enableFullscreen": false,
|
|
1158
|
+
"enableDataExport": false,
|
|
1159
|
+
"showTitle": false,
|
|
1160
|
+
"padding": "0px",
|
|
1161
|
+
"backgroundColor": "#FFFFFF00",
|
|
1162
|
+
"datasources": [{
|
|
1163
|
+
"type": "entity",
|
|
1164
|
+
"entityAliasId": "<aliasUuid of stateEntity>",
|
|
1165
|
+
"dataKeys": [
|
|
1166
|
+
{ "name": "name", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {} }
|
|
1167
|
+
]
|
|
1168
|
+
}],
|
|
1169
|
+
"settings": {
|
|
1170
|
+
"useMarkdownTextFunction": true,
|
|
1171
|
+
"markdownTextFunction": "let subState = ctx.stateController.getStateParams().subStateId || \"<defaultSubStateId>\";\n\nreturn `<div tb-toast toastTarget=\"layout\" class=\"block\">\n <tb-dashboard-state class=\"state\" [ctx]=\"ctx\" stateId=\"${subState}\" [syncParentStateParams]=\"true\"></tb-dashboard-state>\n </div>`;",
|
|
1172
|
+
"applyDefaultMarkdownStyle": true,
|
|
1173
|
+
"markdownCss": ".block {\n flex-grow: 1;\n width: 100%;\n height: 100%;\n display: flex;\n padding: 0;\n}\n\n.state {\n flex-grow: 1;\n padding: 0;\n width: 100%;\n height: 100%;\n}"
|
|
1174
|
+
},
|
|
1175
|
+
"actions": {}
|
|
1176
|
+
}
|
|
1177
|
+
```
|
|
1178
|
+
|
|
1179
|
+
---
|
|
1180
|
+
|
|
1181
|
+
### `actionButton`
|
|
1182
|
+
|
|
1183
|
+
Trigger button for CRUD dialogs. All actions go to the `click` slot.
|
|
1184
|
+
|
|
1185
|
+
```json
|
|
1186
|
+
"config": {
|
|
1187
|
+
"configMode": "basic",
|
|
1188
|
+
"title": "<label>",
|
|
1189
|
+
"dropShadow": false,
|
|
1190
|
+
"borderRadius": "8px",
|
|
1191
|
+
"widgetStyle": {},
|
|
1192
|
+
"enableFullscreen": false,
|
|
1193
|
+
"enableDataExport": false,
|
|
1194
|
+
"showTitle": false,
|
|
1195
|
+
"padding": "0px",
|
|
1196
|
+
"datasources": [{
|
|
1197
|
+
"type": "entity",
|
|
1198
|
+
"entityAliasId": "<aliasUuid>",
|
|
1199
|
+
"dataKeys": [{ "name": "name", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {}}]
|
|
1200
|
+
}],
|
|
1201
|
+
"settings": {
|
|
1202
|
+
"appearance": {
|
|
1203
|
+
"type": "filled",
|
|
1204
|
+
"showLabel": false,
|
|
1205
|
+
"label": "<label>",
|
|
1206
|
+
"showIcon": true,
|
|
1207
|
+
"icon": "settings",
|
|
1208
|
+
"mainColor": "var(--tb-primary-500)",
|
|
1209
|
+
"backgroundColor": "#FFFFFF",
|
|
1210
|
+
"customStyle": {}
|
|
1211
|
+
},
|
|
1212
|
+
"activatedState": { "action": "DO_NOTHING", "defaultValue": false },
|
|
1213
|
+
"disabledState": { "action": "DO_NOTHING", "defaultValue": false }
|
|
1214
|
+
},
|
|
1215
|
+
"actions": {
|
|
1216
|
+
"click": [ <action body> ]
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1221
|
+
---
|
|
1222
|
+
|
|
1223
|
+
### `horizontalValueCard`
|
|
1224
|
+
|
|
1225
|
+
Latest value strip card. `keyType` is `"timeseries"`, `"attribute"`, or `"entityField"`.
|
|
1226
|
+
|
|
1227
|
+
```json
|
|
1228
|
+
"config": {
|
|
1229
|
+
"configMode": "basic",
|
|
1230
|
+
"title": "<metric label>",
|
|
1231
|
+
"dropShadow": false,
|
|
1232
|
+
"borderRadius": "8px",
|
|
1233
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1234
|
+
"enableFullscreen": false,
|
|
1235
|
+
"enableDataExport": false,
|
|
1236
|
+
"showTitle": false,
|
|
1237
|
+
"padding": "0px",
|
|
1238
|
+
"margin": "0px",
|
|
1239
|
+
"units": "<°C>",
|
|
1240
|
+
"decimals": 1,
|
|
1241
|
+
"widgetCss": "tb-icon { display: inline-flex; justify-content: center; align-items: center; border-radius: 50%; width: 40px!important; height: 40px!important; background-color: var(--tb-primary-50); }\n.tb-value-card-icon-row { width: 50%; justify-content: space-between; }",
|
|
1242
|
+
"datasources": [{
|
|
1243
|
+
"type": "entity",
|
|
1244
|
+
"entityAliasId": "<aliasUuid>",
|
|
1245
|
+
"dataKeys": [{
|
|
1246
|
+
"name": "<key>",
|
|
1247
|
+
"label": "<metric label>",
|
|
1248
|
+
"type": "<timeseries|attribute|entityField>",
|
|
1249
|
+
"color": "var(--tb-primary-500)",
|
|
1250
|
+
"units": "<°C>",
|
|
1251
|
+
"decimals": 1,
|
|
1252
|
+
"settings": {}
|
|
1253
|
+
}]
|
|
1254
|
+
}],
|
|
1255
|
+
"settings": {
|
|
1256
|
+
"layout": "horizontal",
|
|
1257
|
+
"showLabel": true,
|
|
1258
|
+
"labelColor": { "type": "constant", "color": "#000000DE" },
|
|
1259
|
+
"showIcon": true,
|
|
1260
|
+
"icon": "<material-icon-name, e.g. thermostat>",
|
|
1261
|
+
"iconColor": { "type": "constant", "color": "var(--tb-primary-500)" },
|
|
1262
|
+
"iconSize": 24,
|
|
1263
|
+
"iconSizeUnit": "px",
|
|
1264
|
+
"valueColor": { "type": "constant", "color": "#000000DE" },
|
|
1265
|
+
"valueFont": { "size": 30 },
|
|
1266
|
+
"labelFont": { "size": 20 },
|
|
1267
|
+
"showDate": false,
|
|
1268
|
+
"autoScale": true
|
|
1269
|
+
},
|
|
1270
|
+
"actions": {}
|
|
1271
|
+
}
|
|
1272
|
+
```
|
|
1273
|
+
|
|
1274
|
+
Omit `units` and `decimals` from config and dataKey when they are not applicable.
|
|
1275
|
+
|
|
1276
|
+
---
|
|
1277
|
+
|
|
1278
|
+
### `batteryLevel`
|
|
1279
|
+
|
|
1280
|
+
```json
|
|
1281
|
+
"config": {
|
|
1282
|
+
"configMode": "basic",
|
|
1283
|
+
"title": "Battery",
|
|
1284
|
+
"dropShadow": false,
|
|
1285
|
+
"borderRadius": "8px",
|
|
1286
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1287
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1288
|
+
"enableFullscreen": false,
|
|
1289
|
+
"enableDataExport": false,
|
|
1290
|
+
"showTitle": false,
|
|
1291
|
+
"units": "%",
|
|
1292
|
+
"decimals": 0,
|
|
1293
|
+
"datasources": [{
|
|
1294
|
+
"type": "entity",
|
|
1295
|
+
"entityAliasId": "<aliasUuid>",
|
|
1296
|
+
"dataKeys": [{
|
|
1297
|
+
"name": "<batteryLevel>",
|
|
1298
|
+
"label": "<Battery Level>",
|
|
1299
|
+
"type": "timeseries",
|
|
1300
|
+
"color": "var(--tb-primary-500)",
|
|
1301
|
+
"settings": {}
|
|
1302
|
+
}]
|
|
1303
|
+
}],
|
|
1304
|
+
"settings": {
|
|
1305
|
+
"layout": "horizontal_solid",
|
|
1306
|
+
"batteryLevelColor": {
|
|
1307
|
+
"type": "range",
|
|
1308
|
+
"color": "rgb(224, 224, 224)",
|
|
1309
|
+
"rangeList": {
|
|
1310
|
+
"advancedMode": false,
|
|
1311
|
+
"range": [
|
|
1312
|
+
{ "from": null, "to": 25, "color": "rgba(227, 71, 71, 1)" },
|
|
1313
|
+
{ "from": 25, "to": 50, "color": "rgba(246, 206, 67, 1)" },
|
|
1314
|
+
{ "from": 50, "to": null, "color": "rgba(92, 223, 144, 1)" }
|
|
1315
|
+
]
|
|
1316
|
+
}
|
|
1317
|
+
},
|
|
1318
|
+
"batteryShapeColor": {
|
|
1319
|
+
"type": "range",
|
|
1320
|
+
"color": "rgba(224, 224, 224, 0.32)",
|
|
1321
|
+
"rangeList": {
|
|
1322
|
+
"advancedMode": false,
|
|
1323
|
+
"range": [
|
|
1324
|
+
{ "from": null, "to": 25, "color": "rgba(227, 71, 71, 0.32)" },
|
|
1325
|
+
{ "from": 25, "to": 50, "color": "rgba(246, 206, 67, 0.32)" },
|
|
1326
|
+
{ "from": 50, "to": null, "color": "rgba(92, 223, 144, 0.32)" }
|
|
1327
|
+
]
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
},
|
|
1331
|
+
"actions": {}
|
|
1332
|
+
}
|
|
1333
|
+
```
|
|
1334
|
+
|
|
1335
|
+
---
|
|
1336
|
+
|
|
1337
|
+
### `signalStrength`
|
|
1338
|
+
|
|
1339
|
+
`layout` is `"wifi"` for WiFi/Bluetooth or `"cellular"` for mobile.
|
|
1340
|
+
|
|
1341
|
+
```json
|
|
1342
|
+
"config": {
|
|
1343
|
+
"configMode": "basic",
|
|
1344
|
+
"title": "<Signal Strength>",
|
|
1345
|
+
"dropShadow": false,
|
|
1346
|
+
"borderRadius": "8px",
|
|
1347
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1348
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1349
|
+
"enableFullscreen": false,
|
|
1350
|
+
"enableDataExport": false,
|
|
1351
|
+
"showTitle": true,
|
|
1352
|
+
"units": "dBm",
|
|
1353
|
+
"decimals": 0,
|
|
1354
|
+
"datasources": [{
|
|
1355
|
+
"type": "entity",
|
|
1356
|
+
"entityAliasId": "<aliasUuid>",
|
|
1357
|
+
"dataKeys": [{
|
|
1358
|
+
"name": "<rssi>",
|
|
1359
|
+
"label": "<RSSI>",
|
|
1360
|
+
"type": "timeseries",
|
|
1361
|
+
"color": "var(--tb-primary-500)",
|
|
1362
|
+
"settings": {}
|
|
1363
|
+
}]
|
|
1364
|
+
}],
|
|
1365
|
+
"settings": { "layout": "wifi" },
|
|
1366
|
+
"actions": {}
|
|
1367
|
+
}
|
|
1368
|
+
```
|
|
1369
|
+
|
|
1370
|
+
---
|
|
1371
|
+
|
|
1372
|
+
### `simpleGauge`
|
|
1373
|
+
|
|
1374
|
+
`gaugeType` is `"donut"`, `"arc"`, `"horizontalBar"`, or `"verticalBar"`.
|
|
1375
|
+
|
|
1376
|
+
```json
|
|
1377
|
+
"config": {
|
|
1378
|
+
"configMode": "basic",
|
|
1379
|
+
"title": "<metric label>",
|
|
1380
|
+
"dropShadow": false,
|
|
1381
|
+
"borderRadius": "8px",
|
|
1382
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1383
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1384
|
+
"enableFullscreen": false,
|
|
1385
|
+
"enableDataExport": false,
|
|
1386
|
+
"showTitle": false,
|
|
1387
|
+
"units": "<°C>",
|
|
1388
|
+
"decimals": 1,
|
|
1389
|
+
"datasources": [{
|
|
1390
|
+
"type": "entity",
|
|
1391
|
+
"entityAliasId": "<aliasUuid>",
|
|
1392
|
+
"dataKeys": [{
|
|
1393
|
+
"name": "<temperature>",
|
|
1394
|
+
"label": "<Temperature>",
|
|
1395
|
+
"type": "timeseries",
|
|
1396
|
+
"color": "#000000DE",
|
|
1397
|
+
"settings": {}
|
|
1398
|
+
}]
|
|
1399
|
+
}],
|
|
1400
|
+
"settings": {
|
|
1401
|
+
"minValue": 0,
|
|
1402
|
+
"maxValue": 100,
|
|
1403
|
+
"gaugeType": "donut",
|
|
1404
|
+
"showTitle": true,
|
|
1405
|
+
"title": "<metric label>",
|
|
1406
|
+
"titleFont": { "color": "#000000DE" },
|
|
1407
|
+
"labelFont": {},
|
|
1408
|
+
"valueFont": {},
|
|
1409
|
+
"minMaxFont": {},
|
|
1410
|
+
"showMinMax": false,
|
|
1411
|
+
"showValue": true
|
|
1412
|
+
},
|
|
1413
|
+
"actions": {}
|
|
1414
|
+
}
|
|
1415
|
+
```
|
|
1416
|
+
|
|
1417
|
+
Omit `minValue`/`maxValue` from settings when the metric has no fixed bounds.
|
|
1418
|
+
|
|
1419
|
+
---
|
|
1420
|
+
|
|
1421
|
+
### `progressBar`
|
|
1422
|
+
|
|
1423
|
+
```json
|
|
1424
|
+
"config": {
|
|
1425
|
+
"configMode": "basic",
|
|
1426
|
+
"title": "<metric label>",
|
|
1427
|
+
"dropShadow": false,
|
|
1428
|
+
"borderRadius": "8px",
|
|
1429
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1430
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1431
|
+
"enableFullscreen": false,
|
|
1432
|
+
"enableDataExport": false,
|
|
1433
|
+
"showTitle": true,
|
|
1434
|
+
"titleColor": "#000000DE",
|
|
1435
|
+
"units": "%",
|
|
1436
|
+
"decimals": 0,
|
|
1437
|
+
"datasources": [{
|
|
1438
|
+
"type": "entity",
|
|
1439
|
+
"entityAliasId": "<aliasUuid>",
|
|
1440
|
+
"dataKeys": [{
|
|
1441
|
+
"name": "<fillLevel>",
|
|
1442
|
+
"label": "<Fill Level>",
|
|
1443
|
+
"type": "timeseries",
|
|
1444
|
+
"color": "var(--tb-primary-500)",
|
|
1445
|
+
"settings": {}
|
|
1446
|
+
}]
|
|
1447
|
+
}],
|
|
1448
|
+
"settings": {
|
|
1449
|
+
"layout": "simplified",
|
|
1450
|
+
"tickMin": 0,
|
|
1451
|
+
"tickMax": 100,
|
|
1452
|
+
"autoScale": true,
|
|
1453
|
+
"showTicks": false
|
|
1454
|
+
},
|
|
1455
|
+
"actions": {}
|
|
1456
|
+
}
|
|
1457
|
+
```
|
|
1458
|
+
|
|
1459
|
+
---
|
|
1460
|
+
|
|
1461
|
+
### `valueChartCard`
|
|
1462
|
+
|
|
1463
|
+
Latest value + sparkline trend. Datasource has both `dataKeys` and `latestDataKeys` pointing to the same key.
|
|
1464
|
+
|
|
1465
|
+
```json
|
|
1466
|
+
"config": {
|
|
1467
|
+
"configMode": "basic",
|
|
1468
|
+
"title": "<metric label>",
|
|
1469
|
+
"dropShadow": false,
|
|
1470
|
+
"borderRadius": "8px",
|
|
1471
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1472
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1473
|
+
"useDashboardTimewindow": true,
|
|
1474
|
+
"timewindow": {
|
|
1475
|
+
"selectedTab": 1,
|
|
1476
|
+
"history": { "historyType": 0, "timewindowMs": 604800000 },
|
|
1477
|
+
"aggregation": { "type": "NONE" }
|
|
1478
|
+
},
|
|
1479
|
+
"showTitle": true,
|
|
1480
|
+
"enableFullscreen": false,
|
|
1481
|
+
"enableDataExport": false,
|
|
1482
|
+
"units": "<°C>",
|
|
1483
|
+
"decimals": 1,
|
|
1484
|
+
"datasources": [{
|
|
1485
|
+
"type": "entity",
|
|
1486
|
+
"entityAliasId": "<aliasUuid>",
|
|
1487
|
+
"dataKeys": [{
|
|
1488
|
+
"name": "<temperature>",
|
|
1489
|
+
"label": "<Temperature>",
|
|
1490
|
+
"type": "timeseries",
|
|
1491
|
+
"color": "var(--tb-primary-500)",
|
|
1492
|
+
"settings": {}
|
|
1493
|
+
}],
|
|
1494
|
+
"latestDataKeys": [{
|
|
1495
|
+
"name": "<temperature>",
|
|
1496
|
+
"label": "<Temperature>",
|
|
1497
|
+
"type": "timeseries",
|
|
1498
|
+
"color": "var(--tb-primary-500)",
|
|
1499
|
+
"settings": {}
|
|
1500
|
+
}]
|
|
1501
|
+
}],
|
|
1502
|
+
"settings": {},
|
|
1503
|
+
"actions": {}
|
|
1504
|
+
}
|
|
1505
|
+
```
|
|
1506
|
+
|
|
1507
|
+
---
|
|
1508
|
+
|
|
1509
|
+
### `chart` (time-series line chart)
|
|
1510
|
+
|
|
1511
|
+
Each series entry has `name` (key), `label`, `type: "timeseries"`, `color`, `settings: {"yAxis": "default"}`.
|
|
1512
|
+
`yAxes` has one entry per axis; the default axis id is `"default"`.
|
|
1513
|
+
|
|
1514
|
+
```json
|
|
1515
|
+
"config": {
|
|
1516
|
+
"configMode": "basic",
|
|
1517
|
+
"title": "<chart title>",
|
|
1518
|
+
"dropShadow": false,
|
|
1519
|
+
"borderRadius": "8px",
|
|
1520
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1521
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1522
|
+
"useDashboardTimewindow": true,
|
|
1523
|
+
"timewindow": {
|
|
1524
|
+
"selectedTab": 1,
|
|
1525
|
+
"history": { "historyType": 0, "timewindowMs": 604800000 },
|
|
1526
|
+
"aggregation": { "type": "NONE" }
|
|
1527
|
+
},
|
|
1528
|
+
"showTitle": true,
|
|
1529
|
+
"enableFullscreen": true,
|
|
1530
|
+
"enableDataExport": true,
|
|
1531
|
+
"padding": "0px",
|
|
1532
|
+
"margin": "0px",
|
|
1533
|
+
"datasources": [{
|
|
1534
|
+
"type": "entity",
|
|
1535
|
+
"entityAliasId": "<aliasUuid>",
|
|
1536
|
+
"dataKeys": [
|
|
1537
|
+
{ "name": "<temperature>", "label": "<Temperature>", "type": "timeseries", "color": "var(--tb-primary-500)", "settings": { "yAxis": "default" }, "units": "°C", "decimals": 1 },
|
|
1538
|
+
{ "name": "<humidity>", "label": "<Humidity>", "type": "timeseries", "color": "#4CAF50", "settings": { "yAxis": "default" }, "units": "%", "decimals": 0 }
|
|
1539
|
+
]
|
|
1540
|
+
}],
|
|
1541
|
+
"settings": {
|
|
1542
|
+
"dataZoom": false,
|
|
1543
|
+
"showLegend": false,
|
|
1544
|
+
"legendConfig": { "position": "top", "sortDataKeys": false, "showMin": false, "showMax": false, "showAvg": true, "showTotal": false, "showLatest": false },
|
|
1545
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1546
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1547
|
+
"yAxes": {
|
|
1548
|
+
"default": { "id": "default", "label": "<Temperature>", "position": "left", "units": "°C", "decimals": 1, "order": 0 }
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
}
|
|
1552
|
+
```
|
|
1553
|
+
|
|
1554
|
+
---
|
|
1555
|
+
|
|
1556
|
+
### `rangeChart` (time-series with color bands)
|
|
1557
|
+
|
|
1558
|
+
Same structure as `chart` but adds `rangeColors` in settings. Each range entry: `{ "from": N|null, "to": N|null, "color": "<hex>" }`.
|
|
1559
|
+
|
|
1560
|
+
```json
|
|
1561
|
+
"config": {
|
|
1562
|
+
...same as chart up to settings...,
|
|
1563
|
+
"settings": {
|
|
1564
|
+
"dataZoom": false,
|
|
1565
|
+
"showLegend": false,
|
|
1566
|
+
"legendConfig": { "position": "top", "sortDataKeys": false, "showMin": false, "showMax": false, "showAvg": true, "showTotal": false, "showLatest": false },
|
|
1567
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1568
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1569
|
+
"yAxes": {
|
|
1570
|
+
"default": { "id": "default", "label": "<Temperature>", "position": "left", "units": "°C", "decimals": 1, "order": 0 }
|
|
1571
|
+
},
|
|
1572
|
+
"rangeColors": [
|
|
1573
|
+
{ "from": null, "to": 18, "color": "#2196F3" },
|
|
1574
|
+
{ "from": 18, "to": 26, "color": "#4CAF50" },
|
|
1575
|
+
{ "from": 26, "to": null,"color": "#F44336" }
|
|
1576
|
+
]
|
|
1577
|
+
}
|
|
1578
|
+
}
|
|
1579
|
+
```
|
|
1580
|
+
|
|
1581
|
+
---
|
|
1582
|
+
|
|
1583
|
+
### `stateChart` (discrete state bands)
|
|
1584
|
+
|
|
1585
|
+
`states` array maps values to colored labels. Use `constValue` for the raw key value (boolean, string, or number).
|
|
1586
|
+
|
|
1587
|
+
```json
|
|
1588
|
+
"config": {
|
|
1589
|
+
...same outer config as chart (useDashboardTimewindow, timewindow, enableFullscreen)...,
|
|
1590
|
+
"datasources": [{
|
|
1591
|
+
"type": "entity",
|
|
1592
|
+
"entityAliasId": "<aliasUuid>",
|
|
1593
|
+
"dataKeys": [
|
|
1594
|
+
{ "name": "<active>", "label": "<Status>", "type": "timeseries", "color": "var(--tb-primary-500)", "settings": { "yAxis": "default" } }
|
|
1595
|
+
]
|
|
1596
|
+
}],
|
|
1597
|
+
"settings": {
|
|
1598
|
+
"dataZoom": false,
|
|
1599
|
+
"showLegend": false,
|
|
1600
|
+
"legendConfig": { "position": "top", "sortDataKeys": false, "showMin": false, "showMax": false, "showAvg": true, "showTotal": false, "showLatest": false },
|
|
1601
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1602
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1603
|
+
"yAxes": {
|
|
1604
|
+
"default": { "id": "default", "label": "<Status>", "position": "left", "units": "", "decimals": 1, "order": 0 }
|
|
1605
|
+
},
|
|
1606
|
+
"states": [
|
|
1607
|
+
{ "value": true, "label": "Online", "color": "rgba(92, 223, 144, 1)" },
|
|
1608
|
+
{ "value": false, "label": "Offline", "color": "rgba(227, 71, 71, 1)" }
|
|
1609
|
+
]
|
|
1610
|
+
}
|
|
1611
|
+
}
|
|
1612
|
+
```
|
|
1613
|
+
|
|
1614
|
+
---
|
|
1615
|
+
|
|
1616
|
+
### `barChart` (latest values, multiple entities, one key)
|
|
1617
|
+
|
|
1618
|
+
`dataKeys` has exactly one entry with `type: "timeseries"`.
|
|
1619
|
+
|
|
1620
|
+
```json
|
|
1621
|
+
"config": {
|
|
1622
|
+
"configMode": "basic",
|
|
1623
|
+
"title": "<chart title>",
|
|
1624
|
+
"dropShadow": false,
|
|
1625
|
+
"borderRadius": "8px",
|
|
1626
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1627
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1628
|
+
"enableFullscreen": false,
|
|
1629
|
+
"enableDataExport": false,
|
|
1630
|
+
"showTitle": true,
|
|
1631
|
+
"padding": "0px",
|
|
1632
|
+
"margin": "0px",
|
|
1633
|
+
"datasources": [{
|
|
1634
|
+
"type": "entity",
|
|
1635
|
+
"entityAliasId": "<aliasUuid — must be multi-entity alias (assetType, deviceType, etc.)>",
|
|
1636
|
+
"dataKeys": [{
|
|
1637
|
+
"name": "<revenue>",
|
|
1638
|
+
"label": "${entityName}",
|
|
1639
|
+
"type": "timeseries",
|
|
1640
|
+
"color": "var(--tb-primary-500)",
|
|
1641
|
+
"settings": {}
|
|
1642
|
+
}]
|
|
1643
|
+
}],
|
|
1644
|
+
"settings": {
|
|
1645
|
+
"dataZoom": false,
|
|
1646
|
+
"showLegend": false,
|
|
1647
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1648
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1649
|
+
"yAxes": {},
|
|
1650
|
+
"layout": "with_total"
|
|
1651
|
+
},
|
|
1652
|
+
"actions": {}
|
|
1653
|
+
}
|
|
1654
|
+
```
|
|
1655
|
+
|
|
1656
|
+
---
|
|
1657
|
+
|
|
1658
|
+
### `pieChart` (proportional distribution)
|
|
1659
|
+
|
|
1660
|
+
Two patterns — never mix them:
|
|
1661
|
+
- **Single entity, multiple keys**: one datasource, multiple entries in `dataKeys`. Each slice = one key on the same entity. The key's `label` is the slice label.
|
|
1662
|
+
- **Multiple entities, one key**: one multi-entity datasource (`assetType`, `deviceType`, `assetSearchQuery`, `deviceSearchQuery`, etc.), one entry in `dataKeys`. Each slice = one entity contributing its value for that key. The dataKey's `label` **must be `"${entityName}"`** — the placeholder is resolved per-entity at render time, so each slice is labeled with that entity's name. Hard-coding a single string here would give every slice the same label.
|
|
1663
|
+
|
|
1664
|
+
`dataKeys` entries have `type: "timeseries"` and `settings: {"yAxis": "<axisId>"}`.
|
|
1665
|
+
|
|
1666
|
+
**Pattern 1 — Single entity, multiple keys** (e.g. one coffee machine's daily brew breakdown):
|
|
1667
|
+
|
|
1668
|
+
```json
|
|
1669
|
+
"config": {
|
|
1670
|
+
"configMode": "basic",
|
|
1671
|
+
"title": "<chart title>",
|
|
1672
|
+
"dropShadow": false,
|
|
1673
|
+
"borderRadius": "8px",
|
|
1674
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1675
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1676
|
+
"enableFullscreen": false,
|
|
1677
|
+
"enableDataExport": false,
|
|
1678
|
+
"showTitle": true,
|
|
1679
|
+
"padding": "0px",
|
|
1680
|
+
"margin": "0px",
|
|
1681
|
+
"datasources": [{
|
|
1682
|
+
"type": "entity",
|
|
1683
|
+
"entityAliasId": "<aliasUuid>",
|
|
1684
|
+
"dataKeys": [
|
|
1685
|
+
{ "name": "<countOfAmericano>", "label": "<Americano>", "type": "timeseries", "color": "var(--tb-primary-500)", "settings": { "yAxis": "default" } },
|
|
1686
|
+
{ "name": "<countOfEspresso>", "label": "<Espresso>", "type": "timeseries", "color": "#4CAF50", "settings": { "yAxis": "default" } }
|
|
1687
|
+
]
|
|
1688
|
+
}],
|
|
1689
|
+
"settings": {
|
|
1690
|
+
"dataZoom": false,
|
|
1691
|
+
"showLegend": true,
|
|
1692
|
+
"legendConfig": { "position": "top", "sortDataKeys": false, "showMin": false, "showMax": false, "showAvg": true, "showTotal": false, "showLatest": false },
|
|
1693
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1694
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1695
|
+
"yAxes": {
|
|
1696
|
+
"default": { "id": "default", "label": "<Count>", "position": "left", "units": "", "decimals": 0, "order": 0 }
|
|
1697
|
+
},
|
|
1698
|
+
"layout": "with_total"
|
|
1699
|
+
},
|
|
1700
|
+
"actions": {}
|
|
1701
|
+
}
|
|
1702
|
+
```
|
|
1703
|
+
|
|
1704
|
+
**Pattern 2 — Multiple entities, one key** (e.g. share of total daily revenue per shop). Use `${entityName}` as the `label` so each slice is labeled with the contributing entity's name:
|
|
1705
|
+
|
|
1706
|
+
```json
|
|
1707
|
+
"config": {
|
|
1708
|
+
"configMode": "basic",
|
|
1709
|
+
"title": "<chart title, e.g. Revenue Share by Shop>",
|
|
1710
|
+
"dropShadow": false,
|
|
1711
|
+
"borderRadius": "8px",
|
|
1712
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1713
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1714
|
+
"enableFullscreen": false,
|
|
1715
|
+
"enableDataExport": false,
|
|
1716
|
+
"showTitle": true,
|
|
1717
|
+
"padding": "0px",
|
|
1718
|
+
"margin": "0px",
|
|
1719
|
+
"datasources": [{
|
|
1720
|
+
"type": "entity",
|
|
1721
|
+
"entityAliasId": "<aliasUuid — must be a multi-entity alias (assetType, deviceType, assetSearchQuery, …)>",
|
|
1722
|
+
"dataKeys": [
|
|
1723
|
+
{ "name": "<dailyRevenue>", "label": "${entityName}", "type": "timeseries", "color": "var(--tb-primary-500)", "settings": { "yAxis": "default" }, "units": "$", "decimals": 0 }
|
|
1724
|
+
]
|
|
1725
|
+
}],
|
|
1726
|
+
"settings": {
|
|
1727
|
+
"dataZoom": false,
|
|
1728
|
+
"showLegend": true,
|
|
1729
|
+
"legendConfig": { "position": "top", "sortDataKeys": false, "showMin": false, "showMax": false, "showAvg": true, "showTotal": false, "showLatest": false },
|
|
1730
|
+
"xAxis": { "show": true, "position": "bottom" },
|
|
1731
|
+
"yAxis": { "show": true, "position": "left" },
|
|
1732
|
+
"yAxes": {
|
|
1733
|
+
"default": { "id": "default", "label": "<Revenue>", "position": "left", "units": "$", "decimals": 0, "order": 0 }
|
|
1734
|
+
},
|
|
1735
|
+
"layout": "with_total"
|
|
1736
|
+
},
|
|
1737
|
+
"actions": {}
|
|
1738
|
+
}
|
|
1739
|
+
```
|
|
1740
|
+
|
|
1741
|
+
---
|
|
1742
|
+
|
|
1743
|
+
### `entityTable`
|
|
1744
|
+
|
|
1745
|
+
`dataKeys` columns: `type` is `"entityField"`, `"attribute"`, or `"timeseries"`.
|
|
1746
|
+
`config.actions` slots: `rowClick` for `drillDown`, `headerButton` for create, `actionCellButton` for edit/delete.
|
|
1747
|
+
|
|
1748
|
+
**Customer rows — `name` is `title`, not `"name"`:**
|
|
1749
|
+
|
|
1750
|
+
```json
|
|
1751
|
+
{ "label": "Customer", "name": "title", "type": "entityField" }
|
|
1752
|
+
```
|
|
1753
|
+
|
|
1754
|
+
A CUSTOMER row column with `"name": "name"` renders blank — `title` is the customer's display field.
|
|
1755
|
+
|
|
1756
|
+
```json
|
|
1757
|
+
"config": {
|
|
1758
|
+
"configMode": "basic",
|
|
1759
|
+
"title": "<table title>",
|
|
1760
|
+
"dropShadow": false,
|
|
1761
|
+
"borderRadius": "8px",
|
|
1762
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1763
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1764
|
+
"enableFullscreen": false,
|
|
1765
|
+
"enableDataExport": false,
|
|
1766
|
+
"showTitle": true,
|
|
1767
|
+
"padding": "4px",
|
|
1768
|
+
"datasources": [{
|
|
1769
|
+
"type": "entity",
|
|
1770
|
+
"entityAliasId": "<aliasUuid>",
|
|
1771
|
+
"dataKeys": [
|
|
1772
|
+
{ "name": "name", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1773
|
+
{ "name": "<address>", "label": "Address", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1774
|
+
{ "name": "<occupancy>", "label": "Occupancy", "type": "timeseries", "color": "var(--tb-primary-500)", "settings": {}, "units": "%", "decimals": 0 }
|
|
1775
|
+
]
|
|
1776
|
+
}],
|
|
1777
|
+
"settings": {
|
|
1778
|
+
"entitiesTitle": "<table title>",
|
|
1779
|
+
"displayEntityName": false,
|
|
1780
|
+
"displayEntityType": false
|
|
1781
|
+
},
|
|
1782
|
+
"actions": {
|
|
1783
|
+
"rowClick": [ <drillDown action body> ],
|
|
1784
|
+
"headerButton": [ <createEntityDialog action body> ],
|
|
1785
|
+
"actionCellButton": [ <editEntityDialog body>, <deleteEntityDialog body> ]
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
```
|
|
1789
|
+
|
|
1790
|
+
Only include slots that have actions. Empty slot arrays can be omitted.
|
|
1791
|
+
|
|
1792
|
+
**Customer datasources — display-name column.** When the datasource alias resolves to `CUSTOMER` entities (e.g. `customersByGroupName`), the entity-display column **must** use `{ "name": "title", "label": "Name", "type": "entityField" }` — customers store their display name in `title`, not `name`. Emitting `"name": "name"` produces an empty column. The same rule applies to any widget that surfaces a customer's display name through an `entityField` key — `headerCard`, `infoCard`, `actionButton`, `stateSwitcher`, etc.
|
|
1793
|
+
|
|
1794
|
+
Column `settings` for styled cells (e.g. status badge):
|
|
1795
|
+
```json
|
|
1796
|
+
"settings": {
|
|
1797
|
+
"useCellContentFunction": true,
|
|
1798
|
+
"useCellContentFunctionOnExport": true,
|
|
1799
|
+
"cellContentFunction": "let color = '#757575'; let backColor = '#F5F5F5'; let text = 'Inactive'; if (value == 'true') { text = 'Active'; color = '#E8EAF6'; backColor = '#303F9F'; } return `<span style=\"font-size:14px;color:${color};background:${backColor};padding:8px;border-radius:6px;\">${text}</span>`;"
|
|
1800
|
+
}
|
|
1801
|
+
```
|
|
1802
|
+
|
|
1803
|
+
---
|
|
1804
|
+
|
|
1805
|
+
### `alarmTable`
|
|
1806
|
+
|
|
1807
|
+
Fixed 5-column alarm data structure. Alarm source uses `alarmSource` (not `datasources`).
|
|
1808
|
+
`config.actions` same slots as entityTable.
|
|
1809
|
+
|
|
1810
|
+
```json
|
|
1811
|
+
"config": {
|
|
1812
|
+
"configMode": "basic",
|
|
1813
|
+
"title": "Alarms",
|
|
1814
|
+
"dropShadow": false,
|
|
1815
|
+
"borderRadius": "8px",
|
|
1816
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1817
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1818
|
+
"useDashboardTimewindow": true,
|
|
1819
|
+
"timewindow": {
|
|
1820
|
+
"selectedTab": 1,
|
|
1821
|
+
"history": { "historyType": 0, "timewindowMs": 604800000 },
|
|
1822
|
+
"aggregation": { "type": "NONE" }
|
|
1823
|
+
},
|
|
1824
|
+
"enableFullscreen": true,
|
|
1825
|
+
"enableDataExport": true,
|
|
1826
|
+
"showTitle": true,
|
|
1827
|
+
"padding": "4px",
|
|
1828
|
+
"datasources": [],
|
|
1829
|
+
"alarmSource": {
|
|
1830
|
+
"type": "entity",
|
|
1831
|
+
"name": "alarms",
|
|
1832
|
+
"entityAliasId": "<aliasUuid>",
|
|
1833
|
+
"dataKeys": [
|
|
1834
|
+
{ "name": "createdTime", "label": "Created Time", "type": "alarm", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1835
|
+
{ "name": "originator", "label": "Originator", "type": "alarm", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1836
|
+
{ "name": "type", "label": "Type", "type": "alarm", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1837
|
+
{ "name": "severity", "label": "Severity", "type": "alarm", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1838
|
+
{ "name": "status", "label": "Status", "type": "alarm", "color": "var(--tb-primary-500)", "settings": {} }
|
|
1839
|
+
]
|
|
1840
|
+
},
|
|
1841
|
+
"alarmFilterConfig": {
|
|
1842
|
+
"statusList": ["ACTIVE"],
|
|
1843
|
+
"severityList": ["CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"],
|
|
1844
|
+
"typeList": [],
|
|
1845
|
+
"searchPropagatedAlarms": true
|
|
1846
|
+
},
|
|
1847
|
+
"settings": {
|
|
1848
|
+
"alarmsTitle": "Alarms",
|
|
1849
|
+
"enableSelection": true,
|
|
1850
|
+
"enableSearch": true
|
|
1851
|
+
},
|
|
1852
|
+
"actions": {}
|
|
1853
|
+
}
|
|
1854
|
+
```
|
|
1855
|
+
|
|
1856
|
+
---
|
|
1857
|
+
|
|
1858
|
+
### `alarmCount`
|
|
1859
|
+
|
|
1860
|
+
```json
|
|
1861
|
+
"config": {
|
|
1862
|
+
"configMode": "basic",
|
|
1863
|
+
"title": "<Total Alarms>",
|
|
1864
|
+
"dropShadow": false,
|
|
1865
|
+
"borderRadius": "8px",
|
|
1866
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1867
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1868
|
+
"enableFullscreen": false,
|
|
1869
|
+
"enableDataExport": false,
|
|
1870
|
+
"showTitle": false,
|
|
1871
|
+
"datasources": [{
|
|
1872
|
+
"type": "alarmCount",
|
|
1873
|
+
"entityAliasId": "<aliasUuid>",
|
|
1874
|
+
"dataKeys": [{ "name": "count", "label": "count", "type": "count", "settings": {} }],
|
|
1875
|
+
"alarmFilterConfig": {
|
|
1876
|
+
"statusList": ["ACTIVE"],
|
|
1877
|
+
"severityList": ["CRITICAL", "MAJOR", "MINOR", "WARNING", "INDETERMINATE"],
|
|
1878
|
+
"typeList": [],
|
|
1879
|
+
"searchPropagatedAlarms": true
|
|
1880
|
+
}
|
|
1881
|
+
}],
|
|
1882
|
+
"settings": {
|
|
1883
|
+
"label": "<Total Alarms>",
|
|
1884
|
+
"showLabel": true,
|
|
1885
|
+
"layout": "column",
|
|
1886
|
+
"showIcon": true,
|
|
1887
|
+
"icon": "warning",
|
|
1888
|
+
"iconSize": 20,
|
|
1889
|
+
"iconSizeUnit": "px",
|
|
1890
|
+
"showIconBackground": true,
|
|
1891
|
+
"iconBackgroundSize": 36,
|
|
1892
|
+
"iconBackgroundSizeUnit": "px",
|
|
1893
|
+
"iconBackgroundColor": {
|
|
1894
|
+
"type": "range",
|
|
1895
|
+
"color": "rgba(0, 105, 92, 1)",
|
|
1896
|
+
"rangeList": {
|
|
1897
|
+
"advancedMode": false,
|
|
1898
|
+
"range": [
|
|
1899
|
+
{ "from": 0, "to": 1, "color": "rgba(0, 105, 92, 1)" },
|
|
1900
|
+
{ "from": 1, "to": null, "color": "rgba(209, 39, 48, 1)" }
|
|
1901
|
+
]
|
|
1902
|
+
}
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
}
|
|
1906
|
+
```
|
|
1907
|
+
|
|
1908
|
+
---
|
|
1909
|
+
|
|
1910
|
+
### `outdoorMap`
|
|
1911
|
+
|
|
1912
|
+
Each layer in `markers`, `polygons`, `circles` is built per the rules below.
|
|
1913
|
+
`fitMapBounds` is `true` unless any layer has `allowRepositioning: true`.
|
|
1914
|
+
|
|
1915
|
+
```json
|
|
1916
|
+
"config": {
|
|
1917
|
+
"configMode": "basic",
|
|
1918
|
+
"title": "",
|
|
1919
|
+
"dropShadow": false,
|
|
1920
|
+
"borderRadius": "8px",
|
|
1921
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
1922
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
1923
|
+
"enableFullscreen": false,
|
|
1924
|
+
"enableDataExport": false,
|
|
1925
|
+
"showTitle": false,
|
|
1926
|
+
"padding": "0px",
|
|
1927
|
+
"margin": "0px",
|
|
1928
|
+
"datasources": [],
|
|
1929
|
+
"settings": {
|
|
1930
|
+
"mapType": "geoMap",
|
|
1931
|
+
"layers": [
|
|
1932
|
+
{ "label": "{i18n:widgets.maps.layer.roadmap}", "provider": "openstreet", "layerType": "Esri.WorldStreetMap", "referenceLayer": null },
|
|
1933
|
+
{ "label": "{i18n:widgets.maps.layer.satellite}", "provider": "openstreet", "layerType": "Esri.WorldImagery" },
|
|
1934
|
+
{ "label": "{i18n:widgets.maps.layer.hybrid}", "provider": "openstreet", "layerType": "Esri.WorldImagery", "referenceLayer": "openstreetmap_hybrid" }
|
|
1935
|
+
],
|
|
1936
|
+
"markers": [ <marker layer> ],
|
|
1937
|
+
"polygons": [ <polygon layer> ],
|
|
1938
|
+
"circles": [],
|
|
1939
|
+
"fitMapBounds": true,
|
|
1940
|
+
"mapActionButtons": [<placeMapItem action body>]
|
|
1941
|
+
},
|
|
1942
|
+
"actions": {}
|
|
1943
|
+
}
|
|
1944
|
+
```
|
|
1945
|
+
|
|
1946
|
+
**Marker layer** (outdoor, `latitude`/`longitude` keys):
|
|
1947
|
+
```json
|
|
1948
|
+
{
|
|
1949
|
+
"dsType": "entity",
|
|
1950
|
+
"dsEntityAliasId": "<aliasUuid>",
|
|
1951
|
+
"xKey": { "name": "latitude", "label": "Latitude", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1952
|
+
"yKey": { "name": "longitude", "label": "Longitude", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
1953
|
+
"additionalDataKeys": [
|
|
1954
|
+
{ "name": "<name>", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {} }
|
|
1955
|
+
],
|
|
1956
|
+
"markerType": "icon",
|
|
1957
|
+
"markerIcon": { "icon": "location_on", "color": { "type": "constant", "color": "#2196F3" } },
|
|
1958
|
+
"tooltip": {
|
|
1959
|
+
"show": true,
|
|
1960
|
+
"trigger": "click",
|
|
1961
|
+
"type": "pattern",
|
|
1962
|
+
"pattern": "<b>${entityName}</b><br/><b>Status:</b> ${Status}<br/><link-act name='view-details'>View details</link-act>",
|
|
1963
|
+
"tagActions": [ <drillDown action body with name='view-details'> ]
|
|
1964
|
+
},
|
|
1965
|
+
"label": { "show": true, "type": "pattern", "pattern": "${entityName}" }
|
|
1966
|
+
}
|
|
1967
|
+
```
|
|
1968
|
+
|
|
1969
|
+
**Tooltip pattern — never wire drill-down to the marker click itself.** Open a tooltip on click, then let the user follow a `<link-act>` link inside it to navigate. This lets the user read the entity's key values before deciding to drill down.
|
|
1970
|
+
|
|
1971
|
+
- `trigger: "click"` and `type: "pattern"` are always set as above.
|
|
1972
|
+
- `pattern` is HTML (`<b>`, `<br/>` — not `\n`). Include the entity name and 1–3 of the most relevant keys (status, latest reading, occupancy, etc.) using `${KeyLabel}` substitutions. Every `${...}` placeholder must reference a key declared in `xKey`, `yKey`, or `additionalDataKeys` on the **same layer** — otherwise it renders empty. Pick the keys from `spec.entityProfiles` and add them to `additionalDataKeys` if not already there.
|
|
1973
|
+
- End with one `<link-act name='<actionName>'>Label</link-act>` link. The `name` attribute **must match** the `name` field on the corresponding `tagActions` entry — that's how the click is routed.
|
|
1974
|
+
- `tagActions` holds one drillDown action body per link in the pattern; set its `name` to the same string used inside `<link-act name='...'>`.
|
|
1975
|
+
|
|
1976
|
+
When `allowRepositioning` is true, add:
|
|
1977
|
+
```json
|
|
1978
|
+
"edit": { "enabledActions": ["add", "move", "remove"] }
|
|
1979
|
+
```
|
|
1980
|
+
|
|
1981
|
+
**Marker icon** (`markerIcon` on any marker layer — shared by `outdoorMap` and `indoorMap`):
|
|
1982
|
+
|
|
1983
|
+
`icon` is a material-icon name from `icons.json`. `color` has two valid shapes — pick based on whether the marker color depends on live data:
|
|
1984
|
+
|
|
1985
|
+
1. **`constant`** — every marker on the layer uses the same color. Use this when there is no status/state key to drive coloring (e.g. a generic "device" pin).
|
|
1986
|
+
|
|
1987
|
+
```json
|
|
1988
|
+
"markerIcon": {
|
|
1989
|
+
"icon": "bolt",
|
|
1990
|
+
"color": { "type": "constant", "color": "#2196F3" }
|
|
1991
|
+
}
|
|
1992
|
+
```
|
|
1993
|
+
|
|
1994
|
+
2. **`function`** — per-entity color computed at render time from that marker's live data. Use this when the entity has a status/state key whose value should change the pin color (open/closed, online/offline, severity tier, etc.).
|
|
1995
|
+
|
|
1996
|
+
- `colorFunction` is a JS expression that **must return a hex color string**.
|
|
1997
|
+
- Reference live keys via `data.<KeyName>` (the key must be one of `xKey`, `yKey`, or an `additionalDataKeys` entry on the same layer — otherwise the value is undefined at evaluation time).
|
|
1998
|
+
- Always end with a default `return` so a marker with a missing/unexpected value still gets a fallback color.
|
|
1999
|
+
|
|
2000
|
+
```json
|
|
2001
|
+
"markerIcon": {
|
|
2002
|
+
"icon": "electric_meter",
|
|
2003
|
+
"color": {
|
|
2004
|
+
"type": "function",
|
|
2005
|
+
"colorFunction": "if (data.Status === 'closed') { return '#4CAF50'; } else if (data.Status === 'tripped') { return '#F44336'; } else if (data.Status === 'open') { return '#FF9800'; } return '#757575';"
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
```
|
|
2009
|
+
|
|
2010
|
+
Never mix the two shapes — `constant` has `color: "<hex>"`, `function` has `colorFunction: "<js>"`. Picking the wrong shape silently disables the other field.
|
|
2011
|
+
|
|
2012
|
+
**Polygon layer** (perimeter attribute):
|
|
2013
|
+
```json
|
|
2014
|
+
{
|
|
2015
|
+
"dsType": "entity",
|
|
2016
|
+
"dsEntityAliasId": "<aliasUuid>",
|
|
2017
|
+
"polygonKey": { "name": "perimeter", "label": "Perimeter", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
2018
|
+
"additionalDataKeys": [
|
|
2019
|
+
{ "name": "<name>", "label": "Name", "type": "entityField", "color": "var(--tb-primary-500)", "settings": {} }
|
|
2020
|
+
],
|
|
2021
|
+
"fillType": "color",
|
|
2022
|
+
"strokeWeight": 3,
|
|
2023
|
+
"tooltip": {
|
|
2024
|
+
"show": true,
|
|
2025
|
+
"trigger": "click",
|
|
2026
|
+
"type": "pattern",
|
|
2027
|
+
"pattern": "<b>${entityName}</b><br/><link-act name='view-details'>View details</link-act>",
|
|
2028
|
+
"tagActions": [ <drillDown action body with name='view-details'> ]
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
```
|
|
2032
|
+
|
|
2033
|
+
The same tooltip pattern rule from the marker layer applies — open the tooltip on click, embed a `<link-act>` link, and put the drillDown action body in `tagActions` with a matching `name`. The same convention applies to circle layers (when present).
|
|
2034
|
+
|
|
2035
|
+
---
|
|
2036
|
+
|
|
2037
|
+
### `indoorMap`
|
|
2038
|
+
|
|
2039
|
+
`aliasUuid` is the child entity alias (used for markers). `imageSourceAliasUuid` is the parent entity alias (used for the floor plan image source). Both must be present in the state spec for indoorMap widgets.
|
|
2040
|
+
|
|
2041
|
+
**Floor plan image source:** Check `spec.entityProfiles` for a key with `classifier: "image"` on the parent entity profile. If found, use that key name in `imageSource.entityKey`. If no such classifier exists in any profile but positioning keys (`classifier: "indoorLocationX"` / `classifier: "indoorLocationY"`) are present, read `@$TB_RESOURCES/prompts/solutions/dashboard/resources/images.json` and pick the entry whose `type` best matches the solution domain. Use `fileName` as the static image reference in `imageSource`.
|
|
2042
|
+
|
|
2043
|
+
Same structure as `outdoorMap` but uses `xKey`/`yKey` from `xPos`/`yPos` attributes, and `settings.mapType: "image"` with an `imageSource`.
|
|
2044
|
+
|
|
2045
|
+
```json
|
|
2046
|
+
"config": {
|
|
2047
|
+
"configMode": "basic",
|
|
2048
|
+
"title": "",
|
|
2049
|
+
"dropShadow": false,
|
|
2050
|
+
"borderRadius": "8px",
|
|
2051
|
+
"widgetStyle": { "box-shadow": "0px 2px 4px 0px #00000024;" },
|
|
2052
|
+
"titleFont": { "size": 21, "sizeUnit": "px", "weight": "500", "lineHeight": "22px" },
|
|
2053
|
+
"enableFullscreen": false,
|
|
2054
|
+
"enableDataExport": false,
|
|
2055
|
+
"showTitle": false,
|
|
2056
|
+
"padding": "0px",
|
|
2057
|
+
"margin": "0px",
|
|
2058
|
+
"datasources": [],
|
|
2059
|
+
"settings": {
|
|
2060
|
+
"imageSource": {
|
|
2061
|
+
"entityAliasId": "<aliasUuid of parent entity that has the floor plan image attribute>",
|
|
2062
|
+
"sourceType": "entityKey",
|
|
2063
|
+
"entityKey": { "name": "<floorPlan>", "label": "Floor Plan", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} }
|
|
2064
|
+
},
|
|
2065
|
+
"mapType": "image",
|
|
2066
|
+
"markers": [{
|
|
2067
|
+
"dsType": "entity",
|
|
2068
|
+
"dsEntityAliasId": "<aliasUuid of child entities>",
|
|
2069
|
+
"xKey": { "name": "xPos", "label": "X", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
2070
|
+
"yKey": { "name": "yPos", "label": "Y", "type": "attribute", "color": "var(--tb-primary-500)", "settings": {} },
|
|
2071
|
+
"markerType": "icon",
|
|
2072
|
+
"markerIcon": { "icon": "sensors", "color": { "type": "constant", "color": "#2196F3" } },
|
|
2073
|
+
"tooltip": {
|
|
2074
|
+
"show": true,
|
|
2075
|
+
"trigger": "click",
|
|
2076
|
+
"type": "pattern",
|
|
2077
|
+
"pattern": "<b>${entityName}</b><br/><b>Status:</b> ${Status}<br/><link-act name='view-details'>View details</link-act>",
|
|
2078
|
+
"tagActions": [ <drillDown action body with name='view-details'> ]
|
|
2079
|
+
}
|
|
2080
|
+
}],
|
|
2081
|
+
"polygons": [],
|
|
2082
|
+
"circles": [],
|
|
2083
|
+
"fitMapBounds": true,
|
|
2084
|
+
"mapActionButtons": [<placeMapItem action body>]
|
|
2085
|
+
},
|
|
2086
|
+
"actions": {}
|
|
2087
|
+
}
|
|
2088
|
+
```
|
|
2089
|
+
|
|
2090
|
+
If no parent-entity floor plan exists, omit `imageSource` entirely (the map renders as blank until a static image is configured in the UI).
|
|
2091
|
+
|
|
2092
|
+
---
|
|
2093
|
+
|
|
2094
|
+
## State Assembly
|
|
2095
|
+
|
|
2096
|
+
### State body
|
|
2097
|
+
|
|
2098
|
+
```json
|
|
2099
|
+
"<stateId>": {
|
|
2100
|
+
"id": "<stateId>",
|
|
2101
|
+
"name": "<Human State Name>",
|
|
2102
|
+
"root": <true for the state with id "root", false for all others>,
|
|
2103
|
+
"layouts": {
|
|
2104
|
+
"main": {
|
|
2105
|
+
"widgets": {
|
|
2106
|
+
"<widgetUuid>": { "sizeX": N, "sizeY": N, "row": N, "col": N }
|
|
2107
|
+
},
|
|
2108
|
+
"gridSettings": {
|
|
2109
|
+
"layoutType": "default",
|
|
2110
|
+
"backgroundColor": "#EEEEEE",
|
|
2111
|
+
"columns": "24",
|
|
2112
|
+
"margin": 10,
|
|
2113
|
+
"outerMargin": true,
|
|
2114
|
+
"backgroundSizeMode": "100%",
|
|
2115
|
+
"marginBetweenWidgets": "10",
|
|
2116
|
+
"applyMarginToSides": "true",
|
|
2117
|
+
"autoFillHeight": "true",
|
|
2118
|
+
"mobileAutoFillHeight": "false",
|
|
2119
|
+
"mobileRowHeight": "70"
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
2124
|
+
```
|
|
2125
|
+
|
|
2126
|
+
**`switcherDetail` states only:** set `autoFillHeight: "false"` and include only the header-row widgets
|
|
2127
|
+
(headerCard, navigationWidget, connectRealDevices, actionButton) plus the auto-generated `stateSwitcher`
|
|
2128
|
+
widget at `{ row: 1, col: 0, sizeX: 24, sizeY: 14 }`.
|
|
2129
|
+
|
|
2130
|
+
**Position invariant:** every widget UUID in `states[sid].layouts.main.widgets` must appear
|
|
2131
|
+
in the top-level `widgets` map. The `sizeX`, `sizeY`, `row`, `col` values must be **identical**
|
|
2132
|
+
in both places.
|
|
2133
|
+
|
|
2134
|
+
---
|
|
2135
|
+
|
|
2136
|
+
## Critical invariants — verify before returning
|
|
2137
|
+
|
|
2138
|
+
These invariants apply per-state and can be verified from the assembled state output:
|
|
2139
|
+
|
|
2140
|
+
1. **Widget ↔ state sync** — every UUID in `stateLayout.<stateId>.layouts.main.widgets` is in the top-level `widgets` map.
|
|
2141
|
+
2. **Alias cross-references** — every `entityAliasId` inside widget datasources is a key in the state's `entityAliases` map.
|
|
2142
|
+
3. **switcherDetail** — contains only: `headerCard`, `navigationWidget`, `connectRealDevices`, ≤1 `actionButton`, and the auto-injected `stateSwitcher`.
|
|
2143
|
+
4. **statistics** — contains only chart widgets (`chart`, `rangeChart`, `stateChart`, `valueChartCard`, `pieChart`).
|
|
2144
|
+
5. **overview** — no `headerCard`, no `navigationWidget`, no `actionButton`, no chart widgets (`chart`, `rangeChart`, `stateChart`, `pieChart`).
|
|
2145
|
+
6. **typeFullFqn** — must match the table in the Widget Config Catalog exactly; never invent values.
|
|
2146
|
+
7. **alarmTable datasource** — alarm data goes into `alarmSource`, not `datasources`. `datasources` must be `[]`.
|
|
2147
|
+
8. **alarmCount datasource** — uses `"type": "alarmCount"` (not `"entity"`) with `dataKeys: [{name:"count", type:"count"}]`.
|
|
2148
|
+
|
|
2149
|
+
UUID uniqueness, action target state existence, and row coverage are verified by the post-assembly checks in Step 5.
|