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,1364 @@
|
|
|
1
|
+
"""``tb extension`` command group.
|
|
2
|
+
|
|
3
|
+
Lifecycle commands for the per-project ThingsBoard extension: unpack the
|
|
4
|
+
vendored starter, build/run/test it, tail logs, and stop a running
|
|
5
|
+
instance. Heavy lifting (snapshot copy, edition resolution, pom patching)
|
|
6
|
+
lives in :mod:`thingsboard_cli.core.extension_starter_unpacker`; this
|
|
7
|
+
file owns the user-facing wiring and subprocess management.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import datetime as _dt
|
|
13
|
+
import os
|
|
14
|
+
import re
|
|
15
|
+
import shutil
|
|
16
|
+
import signal
|
|
17
|
+
import subprocess
|
|
18
|
+
import sys
|
|
19
|
+
import textwrap
|
|
20
|
+
import time
|
|
21
|
+
from contextlib import suppress
|
|
22
|
+
from enum import StrEnum
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
from typing import Annotated
|
|
25
|
+
|
|
26
|
+
import typer
|
|
27
|
+
from rich.panel import Panel
|
|
28
|
+
from rich.table import Table
|
|
29
|
+
|
|
30
|
+
from thingsboard_cli.commands.project import find_project_root
|
|
31
|
+
from thingsboard_cli.config.resolver import resolve_profile
|
|
32
|
+
from thingsboard_cli.core import extension_starter_unpacker as unpacker
|
|
33
|
+
from thingsboard_cli.core.extension_manifest import parse_file
|
|
34
|
+
from thingsboard_cli.core.git_dirty import is_inside_work_tree
|
|
35
|
+
from thingsboard_cli.core.local import (
|
|
36
|
+
ExtensionNameError,
|
|
37
|
+
atomic_write_text,
|
|
38
|
+
diagnose_extension_name,
|
|
39
|
+
read_extension_name,
|
|
40
|
+
validate_extension_name,
|
|
41
|
+
write_extension_name,
|
|
42
|
+
)
|
|
43
|
+
from thingsboard_cli.core.maven_runner import run_mvn
|
|
44
|
+
from thingsboard_cli.core.output import console, error, success, warning
|
|
45
|
+
|
|
46
|
+
extension_app = typer.Typer(help="Manage a custom backend extension for the project.")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# ---------------------------------------------------------------------------
|
|
50
|
+
# Hint templates
|
|
51
|
+
# ---------------------------------------------------------------------------
|
|
52
|
+
#
|
|
53
|
+
# Single-source-of-truth strings for the lifecycle "Next:" hints printed by
|
|
54
|
+
# ``tb extension new``/``build``/``run``/``push``. The HAProxy snippet is the
|
|
55
|
+
# canonical copy-paste payload — kept here as a literal so the run and push
|
|
56
|
+
# hints stay in sync without drifting from each other.
|
|
57
|
+
|
|
58
|
+
HAPROXY_SNIPPET = (
|
|
59
|
+
" acl is_extension path_beg /api/extension/\n"
|
|
60
|
+
" use_backend thingsboard_extension if is_extension\n"
|
|
61
|
+
"\n"
|
|
62
|
+
" backend thingsboard_extension\n"
|
|
63
|
+
" server extension 127.0.0.1:8090 check"
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
NEW_HINT_TEMPLATE = (
|
|
68
|
+
"Next:\n tb extension build build the docker image\n tb extension run start it locally on :8090"
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
BUILD_HINT_TEMPLATE = (
|
|
73
|
+
"Next:\n"
|
|
74
|
+
" tb extension run smoke test locally\n"
|
|
75
|
+
" tb extension push --image-name <reg>/foo publish to a registry"
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# ``{haproxy}`` is filled with HAPROXY_SNIPPET; ``{port}`` is the resolved
|
|
80
|
+
# extension port (from ``application.yml``'s ``server.port`` — see
|
|
81
|
+
# ``unpacker.read_extension_port``). The literal ``{on-premise,cloud}`` brace
|
|
82
|
+
# pair is doubled so ``.format()`` emits it verbatim.
|
|
83
|
+
#
|
|
84
|
+
# The ``restart`` wording deliberately does NOT promise "reload after code
|
|
85
|
+
# edit" — in docker mode, ``restart`` reuses the same image (rebuild via
|
|
86
|
+
# ``tb extension build`` first to pick up new code).
|
|
87
|
+
RUN_HINT_TEMPLATE = (
|
|
88
|
+
"Local:\n"
|
|
89
|
+
" tb extension logs -f tail logs\n"
|
|
90
|
+
" tb extension restart bounce the container (rebuild first with `tb extension build`)\n"
|
|
91
|
+
" tb extension stop stop the container\n"
|
|
92
|
+
"\n"
|
|
93
|
+
"Wire from a rule chain (REST API Call node):\n"
|
|
94
|
+
" POST http://localhost:{port}/api/extension/<your-endpoint>\n"
|
|
95
|
+
" Header: X-Authorization: ApiKey <your-api-key>\n"
|
|
96
|
+
" (Reachable on-prem only — Cloud calls your published image.)\n"
|
|
97
|
+
"\n"
|
|
98
|
+
"Wire from a widget (when ThingsBoard runs on this host) — add to your\n"
|
|
99
|
+
"existing HAProxy frontend, before the TB backend ACL:\n"
|
|
100
|
+
"\n"
|
|
101
|
+
"{haproxy}\n"
|
|
102
|
+
"\n"
|
|
103
|
+
"Widget JS templates: extension/examples/widgets/{{on-premise,cloud}}-button.js"
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
# ``{ref}`` is the user-supplied --image-name. ``{haproxy_indented}`` is
|
|
108
|
+
# HAPROXY_SNIPPET indented by 5 spaces so it lines up under the "5."
|
|
109
|
+
# numbered-list step.
|
|
110
|
+
PUSH_HINT_TEMPLATE = (
|
|
111
|
+
"Deploy on the host that runs ThingsBoard:\n"
|
|
112
|
+
"\n"
|
|
113
|
+
" 1. Copy this project's extension/deploy/ directory to that host, then cd into it\n"
|
|
114
|
+
" 2. cp .env.example .env\n"
|
|
115
|
+
" 3. Edit .env: set IMAGE_NAME={ref}\n"
|
|
116
|
+
" (Cloud TB: also set CORS_ALLOWED_ORIGINS, or widget calls get blocked)\n"
|
|
117
|
+
" 4. docker compose up -d\n"
|
|
118
|
+
" 5. For dashboard widgets, apply this snippet to your HAProxy frontend:\n"
|
|
119
|
+
"\n"
|
|
120
|
+
"{haproxy_indented}"
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
SET_EDITION_HINT = "Next:\n tb extension build rebuild to regenerate API docs for the new edition"
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
# Default platform passed to ``docker build --platform``. The literal lives in
|
|
128
|
+
# one place so the build/run defaults, restart's reuse, and JAR-mode warning
|
|
129
|
+
# checks all derive from the same value. ``--platform`` is exposed as
|
|
130
|
+
# ``Annotated[str | None, ...] = None`` on user-facing commands so we can
|
|
131
|
+
# distinguish "user typed --platform" from "user accepted the default" — the
|
|
132
|
+
# JAR-mode warning fires only on an explicit value.
|
|
133
|
+
_DEFAULT_PLATFORM = "linux/amd64"
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
# ---------------------------------------------------------------------------
|
|
137
|
+
# Shared resolution helpers
|
|
138
|
+
# ---------------------------------------------------------------------------
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def _require_project_root() -> Path:
|
|
142
|
+
"""Return ``find_project_root()`` or exit with a clear error."""
|
|
143
|
+
project_root = find_project_root()
|
|
144
|
+
if project_root is None:
|
|
145
|
+
error("Not inside a ThingsBoard project. Run `tb init` first.")
|
|
146
|
+
return project_root
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def _extension_dir(project_root: Path) -> Path:
|
|
150
|
+
return project_root / "extension"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _git_status_is_clean(extension_dir: Path) -> bool:
|
|
154
|
+
"""Return True if ``extension/`` has no uncommitted changes.
|
|
155
|
+
|
|
156
|
+
Uses ``git rev-parse --is-inside-work-tree`` so layouts where the
|
|
157
|
+
extension lives inside a parent repo (monorepo, dev clone under a
|
|
158
|
+
larger workspace) are detected — a literal ``.git``-exists check
|
|
159
|
+
would miss those and let ``--force`` silently overwrite a dirty
|
|
160
|
+
surrounding tree.
|
|
161
|
+
"""
|
|
162
|
+
# No git on PATH (or not inside a work tree) → can't check. Treat as
|
|
163
|
+
# clean and let the user pass --allow-dirty if they want to be explicit.
|
|
164
|
+
if not is_inside_work_tree(extension_dir.parent):
|
|
165
|
+
return True
|
|
166
|
+
try:
|
|
167
|
+
result = subprocess.run(
|
|
168
|
+
["git", "status", "--porcelain", "--", str(extension_dir.name)],
|
|
169
|
+
cwd=extension_dir.parent,
|
|
170
|
+
capture_output=True,
|
|
171
|
+
text=True,
|
|
172
|
+
check=False,
|
|
173
|
+
)
|
|
174
|
+
except OSError:
|
|
175
|
+
return True
|
|
176
|
+
return result.returncode == 0 and not result.stdout.strip()
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def _resolve_profile_url(profile_name: str | None = None) -> str | None:
|
|
180
|
+
"""Return the active profile's URL, or None if no profile is configured."""
|
|
181
|
+
try:
|
|
182
|
+
profile = resolve_profile(profile_name=profile_name)
|
|
183
|
+
return profile.url or None
|
|
184
|
+
except Exception:
|
|
185
|
+
return None
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
# ---------------------------------------------------------------------------
|
|
189
|
+
# tb extension new
|
|
190
|
+
# ---------------------------------------------------------------------------
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
@extension_app.command("new", help="Create a new extension scaffold under <project>/extension/.")
|
|
194
|
+
def new(
|
|
195
|
+
name: Annotated[
|
|
196
|
+
str | None,
|
|
197
|
+
typer.Option(
|
|
198
|
+
"--name",
|
|
199
|
+
help="Local Docker image name for this extension (written to thingsboard.json).",
|
|
200
|
+
),
|
|
201
|
+
] = None,
|
|
202
|
+
edition: Annotated[
|
|
203
|
+
str | None,
|
|
204
|
+
typer.Option("--edition", help="Target edition (PE for self-hosted, PaaS for ThingsBoard Cloud)."),
|
|
205
|
+
] = None,
|
|
206
|
+
force: Annotated[bool, typer.Option("--force", help="Overwrite an existing extension/ dir.")] = False,
|
|
207
|
+
allow_dirty: Annotated[
|
|
208
|
+
bool,
|
|
209
|
+
typer.Option(
|
|
210
|
+
"--allow-dirty",
|
|
211
|
+
help="With --force, proceed even if extension/ has uncommitted changes.",
|
|
212
|
+
),
|
|
213
|
+
] = False,
|
|
214
|
+
) -> None:
|
|
215
|
+
project_root = _require_project_root()
|
|
216
|
+
cwd_in_solution = unpacker.is_inside_solution_dir(Path.cwd(), project_root)
|
|
217
|
+
if cwd_in_solution:
|
|
218
|
+
warning("Running from inside a solutions/<slug>/ dir — operating on the project root.")
|
|
219
|
+
|
|
220
|
+
extension_dir = _extension_dir(project_root)
|
|
221
|
+
profile_url = _resolve_profile_url()
|
|
222
|
+
try:
|
|
223
|
+
resolved_edition, source = unpacker.resolve_edition(edition, profile_url)
|
|
224
|
+
except ValueError as exc:
|
|
225
|
+
error(str(exc))
|
|
226
|
+
console.print(f"Edition: {resolved_edition} ({source})")
|
|
227
|
+
|
|
228
|
+
# Resolve the name BEFORE unpacking so an invalid --name never reaches
|
|
229
|
+
# the disk-edit phase. The interactive prompt loops on invalid input
|
|
230
|
+
# without ever touching extension/.
|
|
231
|
+
if name is None:
|
|
232
|
+
if not _stdin_is_a_tty():
|
|
233
|
+
error("Pass `--name <name>` — running in non-interactive mode.")
|
|
234
|
+
resolved_name = _prompt_for_extension_name()
|
|
235
|
+
else:
|
|
236
|
+
try:
|
|
237
|
+
validate_extension_name(name)
|
|
238
|
+
except ExtensionNameError as exc:
|
|
239
|
+
error(str(exc))
|
|
240
|
+
resolved_name = name
|
|
241
|
+
|
|
242
|
+
lock_path = extension_dir / unpacker.LOCK_FILENAME
|
|
243
|
+
git_clean = _git_status_is_clean(extension_dir)
|
|
244
|
+
try:
|
|
245
|
+
with unpacker.acquire_lock(lock_path):
|
|
246
|
+
try:
|
|
247
|
+
unpacker.unpack_starter(
|
|
248
|
+
extension_dir,
|
|
249
|
+
resolved_edition,
|
|
250
|
+
force=force,
|
|
251
|
+
git_status_clean=git_clean,
|
|
252
|
+
allow_dirty=allow_dirty,
|
|
253
|
+
)
|
|
254
|
+
except unpacker.UnpackError as exc:
|
|
255
|
+
error(str(exc))
|
|
256
|
+
project_name = project_root.name
|
|
257
|
+
unpacker.write_initial_readme(extension_dir, project_name)
|
|
258
|
+
except unpacker.LockError as exc:
|
|
259
|
+
error(str(exc))
|
|
260
|
+
|
|
261
|
+
added = unpacker.append_gitignore_entries(project_root)
|
|
262
|
+
if added:
|
|
263
|
+
console.print(f"Updated .gitignore: appended {len(added)} entr{'y' if len(added) == 1 else 'ies'}.")
|
|
264
|
+
|
|
265
|
+
# Only claim the name in the manifest once the scaffold is in place —
|
|
266
|
+
# if unpack failed and we exited above, the manifest is left untouched.
|
|
267
|
+
# Catch ExtensionNameError so a malformed thingsboard.json surfaces as a
|
|
268
|
+
# clean error() panel instead of leaking the class name through the
|
|
269
|
+
# global exception fallback in main.py.
|
|
270
|
+
try:
|
|
271
|
+
write_extension_name(project_root, resolved_name)
|
|
272
|
+
except ExtensionNameError as exc:
|
|
273
|
+
error(str(exc))
|
|
274
|
+
|
|
275
|
+
# The success panel is the LAST happy-path output — printing it before
|
|
276
|
+
# the manifest write would let a write failure produce a "succeeded"
|
|
277
|
+
# line the user has already seen.
|
|
278
|
+
_print_success_panel(
|
|
279
|
+
"Created",
|
|
280
|
+
[f"Created extension '{resolved_name}' at extension/"],
|
|
281
|
+
next_hint=NEW_HINT_TEMPLATE,
|
|
282
|
+
)
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def _stdin_is_a_tty() -> bool:
|
|
286
|
+
"""Return True iff this process's stdin is attached to a terminal.
|
|
287
|
+
|
|
288
|
+
Split out from ``new()`` so tests can monkeypatch a single function on the
|
|
289
|
+
module rather than fight ``sys.stdin`` replacement under ``CliRunner``.
|
|
290
|
+
"""
|
|
291
|
+
return sys.stdin.isatty()
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
def _prompt_for_extension_name() -> str:
|
|
295
|
+
"""Print the orientation paragraph (once), then prompt + validate until valid.
|
|
296
|
+
|
|
297
|
+
Empty input or a name that fails :func:`validate_extension_name` re-prompts.
|
|
298
|
+
The orientation paragraph fires exactly once; the prompt label is kept
|
|
299
|
+
short ("Extension name") because the paragraph above it carries the
|
|
300
|
+
explanation.
|
|
301
|
+
"""
|
|
302
|
+
console.print(
|
|
303
|
+
"This name will be used as the local Docker image name for your extension\n"
|
|
304
|
+
"(will appear as <name>:latest, <name>:1.2.3, etc. depending on your build).\n"
|
|
305
|
+
"Pick something descriptive — your project's slug, your company short-name, etc.\n"
|
|
306
|
+
"You can change it later with `tb extension rename <new-name>`."
|
|
307
|
+
)
|
|
308
|
+
while True:
|
|
309
|
+
candidate = typer.prompt("Extension name", default="", show_default=False).strip()
|
|
310
|
+
if not candidate:
|
|
311
|
+
console.print("[red]Extension name cannot be empty.[/red]")
|
|
312
|
+
continue
|
|
313
|
+
try:
|
|
314
|
+
validate_extension_name(candidate)
|
|
315
|
+
except ExtensionNameError as exc:
|
|
316
|
+
console.print(f"[red]{exc}[/red]")
|
|
317
|
+
continue
|
|
318
|
+
return candidate
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
# ---------------------------------------------------------------------------
|
|
322
|
+
# tb extension rename
|
|
323
|
+
# ---------------------------------------------------------------------------
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
@extension_app.command("rename", help="Change the local Docker image name for this project's extension.")
|
|
327
|
+
def rename(
|
|
328
|
+
new_name: Annotated[
|
|
329
|
+
str,
|
|
330
|
+
typer.Argument(help="New local Docker image name (written to thingsboard.json)."),
|
|
331
|
+
],
|
|
332
|
+
) -> None:
|
|
333
|
+
project_root = _require_project_root()
|
|
334
|
+
try:
|
|
335
|
+
validate_extension_name(new_name)
|
|
336
|
+
except ExtensionNameError as exc:
|
|
337
|
+
error(str(exc))
|
|
338
|
+
|
|
339
|
+
# Read the previous name BEFORE the write so the rename message can show
|
|
340
|
+
# the old → new transition. ``read_extension_name`` returns ``None`` for
|
|
341
|
+
# malformed manifests; ``write_extension_name`` is the one that surfaces
|
|
342
|
+
# the malformed-manifest error path.
|
|
343
|
+
old_name = read_extension_name(project_root)
|
|
344
|
+
try:
|
|
345
|
+
write_extension_name(project_root, new_name)
|
|
346
|
+
except ExtensionNameError as exc:
|
|
347
|
+
error(str(exc))
|
|
348
|
+
|
|
349
|
+
if old_name is None:
|
|
350
|
+
success(f"Set extension name to {new_name}.")
|
|
351
|
+
return
|
|
352
|
+
success(f"Renamed extension: {old_name} → {new_name}")
|
|
353
|
+
console.print(
|
|
354
|
+
f"[dim]Note: existing local docker images tagged `{old_name}:*` remain on your daemon\n"
|
|
355
|
+
f" until you remove them (e.g. `docker image rm {old_name}:latest`).[/dim]"
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
# ---------------------------------------------------------------------------
|
|
360
|
+
# tb extension set-edition
|
|
361
|
+
# ---------------------------------------------------------------------------
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
class _SetEditionTarget(StrEnum):
|
|
365
|
+
"""Closed enum of editions accepted by ``tb extension set-edition``."""
|
|
366
|
+
|
|
367
|
+
PE = "pe"
|
|
368
|
+
PAAS = "paas"
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
_SET_EDITION_TO_ARTIFACT_ID: dict[_SetEditionTarget, str] = {
|
|
372
|
+
_SetEditionTarget.PE: "thingsboard-pe-client",
|
|
373
|
+
_SetEditionTarget.PAAS: "thingsboard-paas-client",
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
_SET_EDITION_DISPLAY: dict[_SetEditionTarget, str] = {
|
|
378
|
+
_SetEditionTarget.PE: "PE",
|
|
379
|
+
_SetEditionTarget.PAAS: "PaaS",
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
# Line-anchored on purpose: the spec mandates a single-line surgical edit so
|
|
384
|
+
# the rest of pom.xml — comments, formatting, neighboring properties — never
|
|
385
|
+
# moves. Matches the artifactId tag plus surrounding whitespace; the
|
|
386
|
+
# capturing group preserves the original indentation.
|
|
387
|
+
_ARTIFACT_ID_LINE_RE = re.compile(
|
|
388
|
+
r"^(\s*)<thingsboard-client\.artifactId>.*?</thingsboard-client\.artifactId>\s*$",
|
|
389
|
+
re.MULTILINE,
|
|
390
|
+
)
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
class _ArtifactIdLineMissingError(Exception):
|
|
394
|
+
"""Raised when ``pom.xml`` has no ``<thingsboard-client.artifactId>`` line to patch."""
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
def _patch_root_pom_edition(pom_path: Path, artifact_id: str) -> None:
|
|
398
|
+
"""Rewrite the single ``<thingsboard-client.artifactId>`` line in ``pom_path`` in place.
|
|
399
|
+
|
|
400
|
+
Reads the file as text (no XML parsing) and performs a regex-anchored
|
|
401
|
+
single-line substitution that preserves the original indentation. Writes
|
|
402
|
+
back via :func:`atomic_write_text` so an interrupted call can never leave
|
|
403
|
+
a half-written pom on disk. Raises :class:`_ArtifactIdLineMissingError`
|
|
404
|
+
when no matching line exists — the caller decides how to surface that.
|
|
405
|
+
"""
|
|
406
|
+
text = pom_path.read_text(encoding="utf-8")
|
|
407
|
+
new_text, count = _ARTIFACT_ID_LINE_RE.subn(
|
|
408
|
+
rf"\g<1><thingsboard-client.artifactId>{artifact_id}</thingsboard-client.artifactId>",
|
|
409
|
+
text,
|
|
410
|
+
)
|
|
411
|
+
if count == 0:
|
|
412
|
+
raise _ArtifactIdLineMissingError()
|
|
413
|
+
# Idempotent no-op: avoid an atomic-write cycle when the file already
|
|
414
|
+
# holds the desired value. ``atomic_write_text`` is safe either way; the
|
|
415
|
+
# short-circuit is purely about not bumping mtime on a no-op call.
|
|
416
|
+
if new_text == text:
|
|
417
|
+
return
|
|
418
|
+
atomic_write_text(pom_path, new_text)
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
@extension_app.command(
|
|
422
|
+
"set-edition",
|
|
423
|
+
help="Switch the extension's ThingsBoard edition (pe/paas).",
|
|
424
|
+
)
|
|
425
|
+
def set_edition(
|
|
426
|
+
edition: Annotated[
|
|
427
|
+
_SetEditionTarget,
|
|
428
|
+
typer.Argument(
|
|
429
|
+
help="Target edition: pe or paas.",
|
|
430
|
+
),
|
|
431
|
+
],
|
|
432
|
+
) -> None:
|
|
433
|
+
# ``_require_extension_present()`` already checks for both
|
|
434
|
+
# ``thingsboard.json`` (via ``_require_project_root``) AND the existence
|
|
435
|
+
# of ``extension/pom.xml`` — exactly the two preconditions the spec
|
|
436
|
+
# requires before we touch the pom.
|
|
437
|
+
extension_dir = _require_extension_present()
|
|
438
|
+
pom_path = extension_dir / "pom.xml"
|
|
439
|
+
artifact_id = _SET_EDITION_TO_ARTIFACT_ID[edition]
|
|
440
|
+
try:
|
|
441
|
+
_patch_root_pom_edition(pom_path, artifact_id)
|
|
442
|
+
except _ArtifactIdLineMissingError:
|
|
443
|
+
error("Could not find `<thingsboard-client.artifactId>` in `pom.xml`. Add it under `<properties>` first.")
|
|
444
|
+
display = _SET_EDITION_DISPLAY[edition]
|
|
445
|
+
_print_success_panel(
|
|
446
|
+
"Set edition",
|
|
447
|
+
[f"Set edition to {display} ({artifact_id})"],
|
|
448
|
+
next_hint=SET_EDITION_HINT,
|
|
449
|
+
)
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
# ---------------------------------------------------------------------------
|
|
453
|
+
# tb extension status
|
|
454
|
+
# ---------------------------------------------------------------------------
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
@extension_app.command("status", help="Show the extension's state, exposed features, and health.")
|
|
458
|
+
def status() -> None:
|
|
459
|
+
project_root = _require_project_root()
|
|
460
|
+
extension_dir = _extension_dir(project_root)
|
|
461
|
+
|
|
462
|
+
if not extension_dir.is_dir():
|
|
463
|
+
console.print("Extension: [yellow]not present[/yellow] — run `tb extension new`.")
|
|
464
|
+
raise typer.Exit(code=0)
|
|
465
|
+
|
|
466
|
+
table = Table(show_header=False, box=None, padding=(0, 1))
|
|
467
|
+
table.add_column(style="bold")
|
|
468
|
+
table.add_column(overflow="fold")
|
|
469
|
+
|
|
470
|
+
# ``diagnose_extension_name`` raises on malformed manifest — catch it so the
|
|
471
|
+
# rest of the status table still prints (the user gets actionable info even
|
|
472
|
+
# when the JSON is broken).
|
|
473
|
+
_NAME_UNSET = "[yellow]not set[/yellow] — run `tb extension rename <name>`"
|
|
474
|
+
try:
|
|
475
|
+
ext_name = diagnose_extension_name(project_root)
|
|
476
|
+
except ExtensionNameError:
|
|
477
|
+
ext_name_cell = "[red]thingsboard.json malformed[/red]"
|
|
478
|
+
else:
|
|
479
|
+
ext_name_cell = ext_name if ext_name is not None else _NAME_UNSET
|
|
480
|
+
table.add_row("Extension name", ext_name_cell)
|
|
481
|
+
|
|
482
|
+
pom_path = extension_dir / "pom.xml"
|
|
483
|
+
artifact_id = unpacker.parse_pom_artifact_id(pom_path)
|
|
484
|
+
resolved_edition = unpacker.edition_from_artifact_id(artifact_id)
|
|
485
|
+
edition_label = resolved_edition if resolved_edition is not None else "[yellow]unknown[/yellow]"
|
|
486
|
+
table.add_row(
|
|
487
|
+
"Edition",
|
|
488
|
+
f"{edition_label} ({artifact_id or 'pom.xml missing thingsboard-client.artifactId'})",
|
|
489
|
+
)
|
|
490
|
+
|
|
491
|
+
readme_path = extension_dir / "README.md"
|
|
492
|
+
features_summary = "[dim]none[/dim]"
|
|
493
|
+
if readme_path.is_file():
|
|
494
|
+
manifest = parse_file(readme_path)
|
|
495
|
+
if manifest.features:
|
|
496
|
+
features_summary = ", ".join(f.slug for f in manifest.features)
|
|
497
|
+
table.add_row("Features", features_summary)
|
|
498
|
+
|
|
499
|
+
jar = unpacker.latest_target_jar(extension_dir)
|
|
500
|
+
if jar is None:
|
|
501
|
+
table.add_row("Last build", "[dim]no JAR in extension/extension/target/[/dim]")
|
|
502
|
+
else:
|
|
503
|
+
mtime = _dt.datetime.fromtimestamp(jar.stat().st_mtime, _dt.UTC).isoformat(timespec="seconds")
|
|
504
|
+
table.add_row("Last build", f"{jar.name} ({mtime})")
|
|
505
|
+
|
|
506
|
+
port = unpacker.read_extension_port(extension_dir)
|
|
507
|
+
health = _probe_health(port)
|
|
508
|
+
table.add_row("Health", f"http://localhost:{port}/api/health → {health}")
|
|
509
|
+
|
|
510
|
+
console.print(table)
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
def _probe_health(port: int, timeout: float = 1.5) -> str:
|
|
514
|
+
"""Best-effort GET /api/health probe. Returns a Rich-markup one-liner for the status table.
|
|
515
|
+
|
|
516
|
+
Color picks the user's at-a-glance signal:
|
|
517
|
+
- 2xx → green (the extension is up and reachable)
|
|
518
|
+
- other HTTP statuses → yellow (responded but unhealthy — needs attention)
|
|
519
|
+
- connection refused / DNS / timeout → dim (likely just not running)
|
|
520
|
+
"""
|
|
521
|
+
import urllib.error
|
|
522
|
+
import urllib.request
|
|
523
|
+
|
|
524
|
+
url = f"http://localhost:{port}/api/health"
|
|
525
|
+
try:
|
|
526
|
+
with urllib.request.urlopen(url, timeout=timeout) as resp:
|
|
527
|
+
color = "green" if 200 <= resp.status < 300 else "yellow"
|
|
528
|
+
return f"[{color}]{resp.status} OK[/{color}]"
|
|
529
|
+
except urllib.error.HTTPError as exc:
|
|
530
|
+
return f"[yellow]{exc.code} {exc.reason}[/yellow]"
|
|
531
|
+
except (urllib.error.URLError, OSError):
|
|
532
|
+
return "[dim]no response (not running?)[/dim]"
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
# ---------------------------------------------------------------------------
|
|
536
|
+
# tb extension build / test
|
|
537
|
+
# ---------------------------------------------------------------------------
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
@extension_app.command("build", help="Build the extension as a Docker image (use --jar for the Maven JAR path).")
|
|
541
|
+
def build(
|
|
542
|
+
jar: Annotated[bool, typer.Option("--jar", help="Use the Maven JAR path instead of Docker.")] = False,
|
|
543
|
+
quiet: Annotated[bool, typer.Option("--quiet", "-q", help="Suppress Maven output (JAR mode only).")] = False,
|
|
544
|
+
image_tag: Annotated[
|
|
545
|
+
str | None,
|
|
546
|
+
typer.Option("--image-tag", help="Tag for the built image. Defaults to 'latest'."),
|
|
547
|
+
] = None,
|
|
548
|
+
platform: Annotated[
|
|
549
|
+
str | None,
|
|
550
|
+
typer.Option(
|
|
551
|
+
"--platform",
|
|
552
|
+
help=(
|
|
553
|
+
"Target platform for the docker image (e.g. linux/amd64, linux/arm64). "
|
|
554
|
+
f"Defaults to {_DEFAULT_PLATFORM} for portability."
|
|
555
|
+
),
|
|
556
|
+
),
|
|
557
|
+
] = None,
|
|
558
|
+
) -> None:
|
|
559
|
+
extension_dir = _require_extension_present()
|
|
560
|
+
if jar:
|
|
561
|
+
# ``--platform`` only applies to docker mode; the JAR is the same
|
|
562
|
+
# bytecode regardless of host architecture. Warn whenever the user
|
|
563
|
+
# passed it explicitly — including the default ``linux/amd64`` — so
|
|
564
|
+
# script writers get feedback that the flag does nothing here.
|
|
565
|
+
if platform is not None:
|
|
566
|
+
warning("--platform is only meaningful with docker mode; ignored in --jar mode.")
|
|
567
|
+
_require_java()
|
|
568
|
+
# Tests have their own command (`tb extension test`); build skips them
|
|
569
|
+
# so users can iterate without paying the test phase every time.
|
|
570
|
+
args = ["-B", "package", "-DskipTests"]
|
|
571
|
+
if quiet:
|
|
572
|
+
args.append("-q")
|
|
573
|
+
run_mvn(args, cwd=extension_dir)
|
|
574
|
+
# Maven scrolls a wall of [INFO] lines past the user; a single green "OK" line gets
|
|
575
|
+
# mistaken for one of them. A green-bordered panel is unmistakable.
|
|
576
|
+
jar_path = _find_extension_jar(extension_dir)
|
|
577
|
+
if jar_path is not None:
|
|
578
|
+
size_mb = jar_path.stat().st_size / 1_048_576
|
|
579
|
+
_print_build_success_panel([f"{jar_path.name} ({size_mb:.1f} MB)"])
|
|
580
|
+
else:
|
|
581
|
+
_print_build_success_panel(["Build complete."])
|
|
582
|
+
return
|
|
583
|
+
# Docker is the default mode.
|
|
584
|
+
if quiet:
|
|
585
|
+
warning("--quiet is only meaningful with --jar; ignored in docker mode.")
|
|
586
|
+
image_name = _require_extension_name()
|
|
587
|
+
_require_docker()
|
|
588
|
+
_require_java()
|
|
589
|
+
_build_docker_image(extension_dir, image_name, image_tag, platform or _DEFAULT_PLATFORM)
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
@extension_app.command("test", help="Run the extension's tests.")
|
|
593
|
+
def test() -> None:
|
|
594
|
+
extension_dir = _require_extension_present()
|
|
595
|
+
_require_java()
|
|
596
|
+
run_mvn(["-B", "test"], cwd=extension_dir)
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
def _print_success_panel(title: str, body_lines: list[str], *, next_hint: str | None = None) -> None:
|
|
600
|
+
"""Render a green-bordered Rich panel — used by lifecycle commands to surface a result
|
|
601
|
+
line plus an optional next-step hint, visually distinct from regular console output.
|
|
602
|
+
|
|
603
|
+
``next_hint`` appends a blank line and the supplied multi-line hint below the body so
|
|
604
|
+
the user sees the "Next:" prompt in the same visual chunk as the success line.
|
|
605
|
+
"""
|
|
606
|
+
body = "\n".join(f"[green]•[/green] [bold]{line}[/bold]" for line in body_lines)
|
|
607
|
+
if next_hint:
|
|
608
|
+
body = f"{body}\n\n{next_hint}"
|
|
609
|
+
console.print("")
|
|
610
|
+
console.print(Panel(body, title=f"[bold green]{title}[/bold green]", border_style="green", expand=False))
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
def _print_build_success_panel(artifact_lines: list[str]) -> None:
|
|
614
|
+
"""Thin wrapper for the JAR-mode minimal-hint build path.
|
|
615
|
+
|
|
616
|
+
The docker-mode build path calls :func:`_print_success_panel` directly so its next-step
|
|
617
|
+
hint stays explicit at the call site.
|
|
618
|
+
"""
|
|
619
|
+
_print_success_panel("Build succeeded", artifact_lines)
|
|
620
|
+
|
|
621
|
+
|
|
622
|
+
# ---------------------------------------------------------------------------
|
|
623
|
+
# tb extension run / restart / logs / stop
|
|
624
|
+
# ---------------------------------------------------------------------------
|
|
625
|
+
|
|
626
|
+
|
|
627
|
+
@extension_app.command("run", help="Run the extension as a Docker container (use --jar for the Maven JAR path).")
|
|
628
|
+
def run(
|
|
629
|
+
jar: Annotated[bool, typer.Option("--jar", help="Use the Maven JAR path instead of Docker.")] = False,
|
|
630
|
+
detach: Annotated[bool, typer.Option("--detach", "-d", help="Run in the background (Docker mode only).")] = False,
|
|
631
|
+
image_tag: Annotated[
|
|
632
|
+
str | None,
|
|
633
|
+
typer.Option("--image-tag", help="Tag for the built image. Defaults to 'latest'."),
|
|
634
|
+
] = None,
|
|
635
|
+
platform: Annotated[
|
|
636
|
+
str | None,
|
|
637
|
+
typer.Option(
|
|
638
|
+
"--platform",
|
|
639
|
+
help=(
|
|
640
|
+
"Target platform for the docker image (e.g. linux/amd64, linux/arm64). "
|
|
641
|
+
f"Defaults to {_DEFAULT_PLATFORM} for portability."
|
|
642
|
+
),
|
|
643
|
+
),
|
|
644
|
+
] = None,
|
|
645
|
+
) -> None:
|
|
646
|
+
extension_dir = _require_extension_present()
|
|
647
|
+
port = unpacker.read_extension_port(extension_dir)
|
|
648
|
+
if _port_in_use(port):
|
|
649
|
+
offender = _pid_for_port(port)
|
|
650
|
+
hint = f" (PID {offender})" if offender else ""
|
|
651
|
+
# If the leftover is a docker compose stack we started, plain `tb extension stop` (which
|
|
652
|
+
# runs `docker compose down`) is the right move — `--force` would just SIGTERM the
|
|
653
|
+
# docker-proxy PID, which won't free the port. Tailor the hint to the actual state.
|
|
654
|
+
stop_cmd = "tb extension stop" if _docker_running(extension_dir) else "tb extension stop --force"
|
|
655
|
+
error(f"Port {port} is already in use{hint}. `{stop_cmd}` to clear it.")
|
|
656
|
+
if jar:
|
|
657
|
+
if detach:
|
|
658
|
+
warning("--detach is only meaningful with docker; running JAR in the foreground.")
|
|
659
|
+
if platform is not None:
|
|
660
|
+
warning("--platform is only meaningful with docker mode; ignored in --jar mode.")
|
|
661
|
+
_require_java()
|
|
662
|
+
_run_extension_jar(extension_dir)
|
|
663
|
+
return
|
|
664
|
+
# Docker is the default mode.
|
|
665
|
+
image_name = _require_extension_name()
|
|
666
|
+
_require_docker()
|
|
667
|
+
_run_extension_docker(
|
|
668
|
+
extension_dir,
|
|
669
|
+
image_name=image_name,
|
|
670
|
+
image_tag=image_tag,
|
|
671
|
+
detach=detach,
|
|
672
|
+
platform=platform or _DEFAULT_PLATFORM,
|
|
673
|
+
)
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
@extension_app.command("restart", help="Stop the running extension and start it again.")
|
|
677
|
+
def restart() -> None:
|
|
678
|
+
extension_dir = _require_extension_present()
|
|
679
|
+
if _docker_running(extension_dir):
|
|
680
|
+
_require_docker()
|
|
681
|
+
# Read what's ACTUALLY running before we tear down — the manifest's
|
|
682
|
+
# extension.name may not match the live image (e.g. user launched
|
|
683
|
+
# ``tb extension run --image-tag 1.2.3`` against a registry path).
|
|
684
|
+
ref = _discover_running_compose_image(extension_dir)
|
|
685
|
+
if ref is None:
|
|
686
|
+
error(
|
|
687
|
+
"Could not determine the running image (docker compose ps returned no image). "
|
|
688
|
+
"Stop the stack with `tb extension stop` and start it again with `tb extension run`. "
|
|
689
|
+
"(Usually orphan containers from a previous compose project — "
|
|
690
|
+
"`docker compose down -v` clears those if `tb extension stop` alone doesn't help.)"
|
|
691
|
+
)
|
|
692
|
+
image_name, image_tag = _split_image_ref(ref)
|
|
693
|
+
resolved_image = f"{image_name}:{image_tag or 'latest'}"
|
|
694
|
+
# ``restart`` reuses the already-built image. If the local image was
|
|
695
|
+
# removed between ``run`` and ``restart``, silently rebuilding here
|
|
696
|
+
# would lose the user's original ``--platform`` choice — so refuse
|
|
697
|
+
# and steer the user back through ``build`` where they can set it.
|
|
698
|
+
if not _docker_image_exists(resolved_image):
|
|
699
|
+
error(
|
|
700
|
+
f"Image `{resolved_image}` is no longer available locally. "
|
|
701
|
+
"Run `tb extension build` (pass `--platform` if you need a non-default architecture), "
|
|
702
|
+
"then `tb extension restart` again to bring the stack back up."
|
|
703
|
+
)
|
|
704
|
+
_run_subprocess(["docker", "compose", "down"], cwd=extension_dir, check=False)
|
|
705
|
+
# Image presence verified above, so ``_run_extension_docker``'s
|
|
706
|
+
# auto-build branch can never fire here. The ``platform`` value below
|
|
707
|
+
# is therefore dead — pass the default for signature consistency.
|
|
708
|
+
_run_extension_docker(
|
|
709
|
+
extension_dir,
|
|
710
|
+
image_name=image_name,
|
|
711
|
+
image_tag=image_tag,
|
|
712
|
+
detach=True,
|
|
713
|
+
platform=_DEFAULT_PLATFORM,
|
|
714
|
+
)
|
|
715
|
+
return
|
|
716
|
+
_require_java()
|
|
717
|
+
port = unpacker.read_extension_port(extension_dir)
|
|
718
|
+
pid = _pid_for_port(port)
|
|
719
|
+
if pid is not None:
|
|
720
|
+
_kill_pid(pid, port)
|
|
721
|
+
_run_extension_jar(extension_dir)
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
@extension_app.command("logs", help="Tail the extension's logs (Docker only).")
|
|
725
|
+
def logs(
|
|
726
|
+
follow: Annotated[bool, typer.Option("-f", "--follow", help="Stream new logs as they arrive.")] = False,
|
|
727
|
+
) -> None:
|
|
728
|
+
extension_dir = _require_extension_present()
|
|
729
|
+
if not _docker_running(extension_dir):
|
|
730
|
+
error("No docker compose stack is running. `tb extension run --detach` to start one.")
|
|
731
|
+
cmd = ["docker", "compose", "logs"]
|
|
732
|
+
if follow:
|
|
733
|
+
cmd.append("-f")
|
|
734
|
+
_run_subprocess(cmd, cwd=extension_dir, forward_signals=True)
|
|
735
|
+
|
|
736
|
+
|
|
737
|
+
@extension_app.command("stop", help="Stop the extension.")
|
|
738
|
+
def stop(
|
|
739
|
+
force: Annotated[
|
|
740
|
+
bool,
|
|
741
|
+
typer.Option(
|
|
742
|
+
"--force",
|
|
743
|
+
help="Force-stop any leftover process holding the extension's port.",
|
|
744
|
+
),
|
|
745
|
+
] = False,
|
|
746
|
+
) -> None:
|
|
747
|
+
extension_dir = _require_extension_present()
|
|
748
|
+
if _docker_running(extension_dir):
|
|
749
|
+
_run_subprocess(["docker", "compose", "down"], cwd=extension_dir)
|
|
750
|
+
return
|
|
751
|
+
if not force:
|
|
752
|
+
console.print("Nothing to stop (no docker compose running). Pass --force to kill any port-bound java pid.")
|
|
753
|
+
return
|
|
754
|
+
port = unpacker.read_extension_port(extension_dir)
|
|
755
|
+
pid = _pid_for_port(port)
|
|
756
|
+
if pid is None:
|
|
757
|
+
console.print(f"Nothing listening on port {port}.")
|
|
758
|
+
return
|
|
759
|
+
_kill_pid(pid, port)
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
def _kill_pid(pid: int, port: int) -> None:
|
|
763
|
+
"""SIGTERM the PID listening on ``port``; escalate to SIGKILL after 5s if it stays alive."""
|
|
764
|
+
cmdline = _process_cmdline(pid) or "<unknown>"
|
|
765
|
+
console.print(f"Sending SIGTERM to PID {pid} ({cmdline}) on port {port}...")
|
|
766
|
+
try:
|
|
767
|
+
os.kill(pid, signal.SIGTERM)
|
|
768
|
+
except ProcessLookupError:
|
|
769
|
+
console.print(f"PID {pid} already gone.")
|
|
770
|
+
return
|
|
771
|
+
if _wait_for_death(pid, timeout=5.0):
|
|
772
|
+
success(f"PID {pid} stopped.")
|
|
773
|
+
return
|
|
774
|
+
console.print(f"PID {pid} did not exit after 5s — sending SIGKILL.")
|
|
775
|
+
with suppress(ProcessLookupError):
|
|
776
|
+
os.kill(pid, signal.SIGKILL)
|
|
777
|
+
success(f"PID {pid} killed.")
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
# ---------------------------------------------------------------------------
|
|
781
|
+
# tb extension mvn-path
|
|
782
|
+
# ---------------------------------------------------------------------------
|
|
783
|
+
|
|
784
|
+
|
|
785
|
+
@extension_app.command(
|
|
786
|
+
"mvn-path",
|
|
787
|
+
help="Print the absolute path to the user-resident Maven wrapper (for IDE Maven settings).",
|
|
788
|
+
)
|
|
789
|
+
def mvn_path() -> None:
|
|
790
|
+
from thingsboard_cli.core.maven_runner import mvnw_path
|
|
791
|
+
|
|
792
|
+
console.print(str(mvnw_path()))
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
# ---------------------------------------------------------------------------
|
|
796
|
+
# tb extension push
|
|
797
|
+
# ---------------------------------------------------------------------------
|
|
798
|
+
|
|
799
|
+
|
|
800
|
+
@extension_app.command("push", help="Push the locally-built Docker image to a registry.")
|
|
801
|
+
def push(
|
|
802
|
+
image_name: Annotated[
|
|
803
|
+
str,
|
|
804
|
+
typer.Option(
|
|
805
|
+
"--image-name",
|
|
806
|
+
help=(
|
|
807
|
+
"Publish target including any registry/org prefix "
|
|
808
|
+
"(e.g. myuser/acme-ext, registry.example.com/team/foo)."
|
|
809
|
+
),
|
|
810
|
+
),
|
|
811
|
+
],
|
|
812
|
+
image_tag: Annotated[
|
|
813
|
+
str | None,
|
|
814
|
+
typer.Option("--image-tag", help="Tag to push. Defaults to 'latest'."),
|
|
815
|
+
] = None,
|
|
816
|
+
no_latest: Annotated[
|
|
817
|
+
bool,
|
|
818
|
+
typer.Option(
|
|
819
|
+
"--no-latest",
|
|
820
|
+
help=(
|
|
821
|
+
"Skip the implicit `:latest` push when --image-tag is set. Use this for RC/preview "
|
|
822
|
+
"tags so you don't overwrite the registry's `:latest`."
|
|
823
|
+
),
|
|
824
|
+
),
|
|
825
|
+
] = False,
|
|
826
|
+
yes: Annotated[
|
|
827
|
+
bool,
|
|
828
|
+
typer.Option("--yes", "-y", help="Skip the confirmation prompt."),
|
|
829
|
+
] = False,
|
|
830
|
+
) -> None:
|
|
831
|
+
# Reject bare names like ``foo`` up front. Docker Hub only accepts pushes
|
|
832
|
+
# to ``<user>/<image>`` (or to ``library/<image>`` for the official org,
|
|
833
|
+
# which users can't publish to), so a slash-less name without an explicit
|
|
834
|
+
# ``localhost`` registry prefix is guaranteed to fail later inside
|
|
835
|
+
# ``docker push`` with an unfriendly error. The ``localhost`` carve-out is
|
|
836
|
+
# narrow on purpose — only ``localhost/...`` and ``localhost:<port>/...``
|
|
837
|
+
# are legitimate local-registry refs; bare ``localhost`` or ``localhost-foo``
|
|
838
|
+
# would still fail in ``docker push`` and should be rejected here.
|
|
839
|
+
if "/" not in image_name and not image_name.startswith(("localhost/", "localhost:")):
|
|
840
|
+
error(
|
|
841
|
+
f"--image-name `{image_name}` looks unpushable. "
|
|
842
|
+
"Use `<user>/<image>` for Docker Hub (e.g. `myuser/acme-ext`) "
|
|
843
|
+
"or include a registry host (e.g. `registry.example.com/team/foo`)."
|
|
844
|
+
)
|
|
845
|
+
|
|
846
|
+
local_name = _require_extension_name()
|
|
847
|
+
# Fast-fail on a missing docker daemon BEFORE rendering the confirmation
|
|
848
|
+
# panel — otherwise the user types `y` only to get a cryptic docker error.
|
|
849
|
+
_require_docker()
|
|
850
|
+
|
|
851
|
+
tag = image_tag or "latest"
|
|
852
|
+
local_ref = f"{local_name}:{tag}"
|
|
853
|
+
if not _docker_image_exists(local_ref):
|
|
854
|
+
error(f"Local image `{local_ref}` not found. Run `tb extension build` first.")
|
|
855
|
+
|
|
856
|
+
# `tag == "latest"` (the default when `--image-tag` is omitted) → single
|
|
857
|
+
# target ref. Any explicit non-latest tag → dual: <target>:<tag> AND :latest
|
|
858
|
+
# so the registry always has a `:latest` that mirrors the freshly pushed
|
|
859
|
+
# build, UNLESS the user passed --no-latest (opt out for RC/preview builds
|
|
860
|
+
# so they don't overwrite the registry's ``:latest``).
|
|
861
|
+
if tag == "latest":
|
|
862
|
+
target_refs = [f"{image_name}:latest"]
|
|
863
|
+
if no_latest:
|
|
864
|
+
warning("--no-latest is a no-op without --image-tag (you'd be pushing only `:latest` anyway).")
|
|
865
|
+
elif no_latest:
|
|
866
|
+
target_refs = [f"{image_name}:{tag}"]
|
|
867
|
+
else:
|
|
868
|
+
target_refs = [f"{image_name}:{tag}", f"{image_name}:latest"]
|
|
869
|
+
|
|
870
|
+
registry_host = _registry_host_for(image_name)
|
|
871
|
+
body_lines = ["About to push:"]
|
|
872
|
+
for ref in target_refs:
|
|
873
|
+
body_lines.append(f" {ref}")
|
|
874
|
+
body_lines.append(f"to registry: {registry_host}")
|
|
875
|
+
if len(target_refs) > 1:
|
|
876
|
+
body_lines.append("`:latest` will also be pushed so the registry's `:latest` matches this build.")
|
|
877
|
+
body_lines.append("Pass --no-latest to skip it.")
|
|
878
|
+
console.print(Panel("\n".join(body_lines), border_style="cyan", expand=False))
|
|
879
|
+
|
|
880
|
+
if not yes:
|
|
881
|
+
prompt = "Push this image?" if len(target_refs) == 1 else "Push these images?"
|
|
882
|
+
if not typer.confirm(prompt, default=False):
|
|
883
|
+
console.print("Push cancelled.")
|
|
884
|
+
return
|
|
885
|
+
|
|
886
|
+
_push_docker_image(local_ref, target_refs)
|
|
887
|
+
# The success panel reflects the user's INTENT (single primary ref) rather
|
|
888
|
+
# than the dual-tag mechanics — when an explicit tag is given we also
|
|
889
|
+
# push :latest, but surfacing that on top of the panel would muddle the
|
|
890
|
+
# "what did I just publish?" answer.
|
|
891
|
+
haproxy_indented = textwrap.indent(HAPROXY_SNIPPET, " ")
|
|
892
|
+
_print_success_panel(
|
|
893
|
+
"Pushed",
|
|
894
|
+
[f"Pushed {image_name}:{tag}"],
|
|
895
|
+
next_hint=PUSH_HINT_TEMPLATE.format(ref=image_name, haproxy_indented=haproxy_indented),
|
|
896
|
+
)
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
# ---------------------------------------------------------------------------
|
|
900
|
+
# Subprocess + environment helpers
|
|
901
|
+
# ---------------------------------------------------------------------------
|
|
902
|
+
|
|
903
|
+
|
|
904
|
+
def _require_extension_present() -> Path:
|
|
905
|
+
project_root = _require_project_root()
|
|
906
|
+
extension_dir = _extension_dir(project_root)
|
|
907
|
+
if not (extension_dir / "pom.xml").is_file():
|
|
908
|
+
error(f"No extension at {extension_dir.relative_to(project_root)}/. Run `tb extension new` first.")
|
|
909
|
+
return extension_dir
|
|
910
|
+
|
|
911
|
+
|
|
912
|
+
def _require_extension_name() -> str:
|
|
913
|
+
"""Return ``extension.name`` from the project manifest or exit with a remediation hint.
|
|
914
|
+
|
|
915
|
+
Used by docker-touching commands (``build``, ``run``, ``restart`` when a stack is up)
|
|
916
|
+
that need a local image name. Distinguishes two failure modes so the user sees the
|
|
917
|
+
right remediation:
|
|
918
|
+
|
|
919
|
+
- ``thingsboard.json`` is malformed or not a JSON object — surface that directly so
|
|
920
|
+
the user fixes the file (``tb extension rename`` would also refuse to write to a
|
|
921
|
+
malformed manifest, so steering them there is a dead-end).
|
|
922
|
+
- The manifest is valid but ``extension.name`` is unset — point at ``tb extension
|
|
923
|
+
rename`` to claim a name. This is the common upgrade path for projects that
|
|
924
|
+
pre-date the new naming model.
|
|
925
|
+
"""
|
|
926
|
+
project_root = _require_project_root()
|
|
927
|
+
try:
|
|
928
|
+
name = diagnose_extension_name(project_root)
|
|
929
|
+
except ExtensionNameError as exc:
|
|
930
|
+
error(str(exc))
|
|
931
|
+
if name is None:
|
|
932
|
+
error("No extension.name set in thingsboard.json. Run `tb extension rename <name>` to set it.")
|
|
933
|
+
return name
|
|
934
|
+
|
|
935
|
+
|
|
936
|
+
def _require_java() -> None:
|
|
937
|
+
"""Bail if Java < 17 is the active JDK (or none is installed)."""
|
|
938
|
+
java = shutil.which("java")
|
|
939
|
+
if java is None:
|
|
940
|
+
error("Java is not on PATH. Install JDK 17+ (e.g. `brew install openjdk@17`) and re-run.")
|
|
941
|
+
try:
|
|
942
|
+
result = subprocess.run([java, "-version"], capture_output=True, text=True, check=False)
|
|
943
|
+
except OSError as exc:
|
|
944
|
+
error(f"Failed to invoke java: {exc}")
|
|
945
|
+
# java -version writes to stderr.
|
|
946
|
+
output = (result.stderr or result.stdout or "").strip()
|
|
947
|
+
major = _java_major_version(output)
|
|
948
|
+
if major is not None and major < 17:
|
|
949
|
+
error(f"Java {major} found but JDK 17+ is required. Set JAVA_HOME to a 17+ JDK.")
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
def _java_major_version(version_output: str) -> int | None:
|
|
953
|
+
"""Pull the numeric major version out of ``java -version`` output."""
|
|
954
|
+
import re
|
|
955
|
+
|
|
956
|
+
m = re.search(r'version "([^"]+)"', version_output)
|
|
957
|
+
if not m:
|
|
958
|
+
return None
|
|
959
|
+
parts = m.group(1).split(".")
|
|
960
|
+
try:
|
|
961
|
+
if parts[0] == "1" and len(parts) > 1:
|
|
962
|
+
return int(parts[1]) # Java 8 reports as "1.8.0_..."
|
|
963
|
+
return int(parts[0])
|
|
964
|
+
except (ValueError, IndexError):
|
|
965
|
+
return None
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
def _require_docker() -> None:
|
|
969
|
+
"""Bail if the docker daemon isn't reachable."""
|
|
970
|
+
docker = shutil.which("docker")
|
|
971
|
+
if docker is None:
|
|
972
|
+
error("`docker` is not on PATH. Install Docker Desktop / docker-engine and re-run.")
|
|
973
|
+
# ``OSError`` covers the race where ``docker`` disappears (uninstalled,
|
|
974
|
+
# path change) between ``shutil.which`` and the actual invocation — surface
|
|
975
|
+
# the same clean error() panel as the unreachable-daemon case.
|
|
976
|
+
try:
|
|
977
|
+
result = subprocess.run([docker, "info"], capture_output=True, text=True, check=False)
|
|
978
|
+
except OSError:
|
|
979
|
+
error("Docker daemon is not reachable. Start Docker Desktop (or `systemctl start docker`) and re-run.")
|
|
980
|
+
if result.returncode != 0:
|
|
981
|
+
error("Docker daemon is not reachable. Start Docker Desktop (or `systemctl start docker`) and re-run.")
|
|
982
|
+
|
|
983
|
+
|
|
984
|
+
def _docker_running(extension_dir: Path) -> bool:
|
|
985
|
+
"""Best-effort: are there containers from the extension's compose project?"""
|
|
986
|
+
if shutil.which("docker") is None:
|
|
987
|
+
return False
|
|
988
|
+
try:
|
|
989
|
+
result = subprocess.run(
|
|
990
|
+
["docker", "compose", "ps", "-q"],
|
|
991
|
+
cwd=extension_dir,
|
|
992
|
+
capture_output=True,
|
|
993
|
+
text=True,
|
|
994
|
+
check=False,
|
|
995
|
+
)
|
|
996
|
+
except OSError:
|
|
997
|
+
return False
|
|
998
|
+
return result.returncode == 0 and bool(result.stdout.strip())
|
|
999
|
+
|
|
1000
|
+
|
|
1001
|
+
def _discover_running_compose_image(extension_dir: Path) -> str | None:
|
|
1002
|
+
"""Return the image ref of the first running compose container, or ``None``.
|
|
1003
|
+
|
|
1004
|
+
Uses ``docker compose ps --format '{{.Image}}'`` so ``restart`` can bounce
|
|
1005
|
+
the stack with the SAME image the user launched — the manifest's
|
|
1006
|
+
``extension.name`` is irrelevant once a container is up (the user may
|
|
1007
|
+
have launched a registry path or a specific tag via ``--image-tag``).
|
|
1008
|
+
"""
|
|
1009
|
+
if shutil.which("docker") is None:
|
|
1010
|
+
return None
|
|
1011
|
+
try:
|
|
1012
|
+
result = subprocess.run(
|
|
1013
|
+
["docker", "compose", "ps", "--format", "{{.Image}}"],
|
|
1014
|
+
cwd=extension_dir,
|
|
1015
|
+
capture_output=True,
|
|
1016
|
+
text=True,
|
|
1017
|
+
check=False,
|
|
1018
|
+
)
|
|
1019
|
+
except OSError:
|
|
1020
|
+
return None
|
|
1021
|
+
if result.returncode != 0:
|
|
1022
|
+
return None
|
|
1023
|
+
for line in result.stdout.splitlines():
|
|
1024
|
+
stripped = line.strip()
|
|
1025
|
+
if stripped:
|
|
1026
|
+
return stripped
|
|
1027
|
+
return None
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
def _split_image_ref(ref: str) -> tuple[str, str | None]:
|
|
1031
|
+
"""Split a docker image reference into ``(image_name, image_tag)``.
|
|
1032
|
+
|
|
1033
|
+
``rsplit(":", 1)`` is intentional — registry-path refs like
|
|
1034
|
+
``localhost:5000/foo:1.2.3`` contain a port colon on the left, and we
|
|
1035
|
+
want the LAST colon (the tag separator) to do the split. A ref without
|
|
1036
|
+
any colon (``foo``) returns ``("foo", None)``; a ref where the last
|
|
1037
|
+
colon is part of a port (``localhost:5000/foo``) is misclassified by
|
|
1038
|
+
naive rsplit, so we recover by checking that the right-hand side does
|
|
1039
|
+
not contain a slash.
|
|
1040
|
+
"""
|
|
1041
|
+
if ":" not in ref:
|
|
1042
|
+
return ref, None
|
|
1043
|
+
left, right = ref.rsplit(":", 1)
|
|
1044
|
+
# If the "tag" contains a slash, the colon we split on was actually a
|
|
1045
|
+
# port separator (``localhost:5000/foo``) — restore the original ref
|
|
1046
|
+
# and treat it as untagged.
|
|
1047
|
+
if "/" in right:
|
|
1048
|
+
return ref, None
|
|
1049
|
+
return left, right
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
def _registry_host_for(image_name: str) -> str:
|
|
1053
|
+
"""Return the registry host portion of *image_name* for display.
|
|
1054
|
+
|
|
1055
|
+
Mirrors docker's own reference-parsing rule: the first ``/``-segment is
|
|
1056
|
+
treated as a registry host if it contains a ``.`` or ``:`` or equals
|
|
1057
|
+
``localhost``. Otherwise the implicit registry is Docker Hub.
|
|
1058
|
+
"""
|
|
1059
|
+
first = image_name.split("/", 1)[0]
|
|
1060
|
+
if "." in first or ":" in first or first == "localhost":
|
|
1061
|
+
return first
|
|
1062
|
+
return "docker.io"
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
def _find_extension_jar(extension_dir: Path) -> Path | None:
|
|
1066
|
+
"""Return the executable Spring Boot fat JAR under ``extension/extension/target/``.
|
|
1067
|
+
|
|
1068
|
+
Spring Boot's repackage goal renames the pre-repackage artifact to
|
|
1069
|
+
``*.jar.original``, so we exclude that suffix to land on the runnable
|
|
1070
|
+
JAR. ``-sources.jar`` and ``-javadoc.jar`` are also skipped.
|
|
1071
|
+
"""
|
|
1072
|
+
target = extension_dir / "extension" / "target"
|
|
1073
|
+
if not target.is_dir():
|
|
1074
|
+
return None
|
|
1075
|
+
candidates = [
|
|
1076
|
+
p
|
|
1077
|
+
for p in target.glob("thingsboard-extension-*.jar")
|
|
1078
|
+
if p.is_file()
|
|
1079
|
+
and not p.name.endswith(".jar.original")
|
|
1080
|
+
and not p.name.endswith("-sources.jar")
|
|
1081
|
+
and not p.name.endswith("-javadoc.jar")
|
|
1082
|
+
]
|
|
1083
|
+
if not candidates:
|
|
1084
|
+
return None
|
|
1085
|
+
# Multiple matches shouldn't happen in practice, but if they do, prefer
|
|
1086
|
+
# the most recently built JAR.
|
|
1087
|
+
return max(candidates, key=lambda p: p.stat().st_mtime)
|
|
1088
|
+
|
|
1089
|
+
|
|
1090
|
+
def _run_extension_jar(extension_dir: Path) -> None:
|
|
1091
|
+
"""Find (or build, once) the extension JAR and run it with ``java -jar``."""
|
|
1092
|
+
jar = _find_extension_jar(extension_dir)
|
|
1093
|
+
if jar is None:
|
|
1094
|
+
console.print("No extension JAR in extension/extension/target/ — building first (one-time)...")
|
|
1095
|
+
run_mvn(["-B", "package", "-DskipTests"], cwd=extension_dir)
|
|
1096
|
+
jar = _find_extension_jar(extension_dir)
|
|
1097
|
+
if jar is None:
|
|
1098
|
+
error("Build did not produce a JAR — check extension/extension/target/.")
|
|
1099
|
+
console.print(f"Starting ThingsBoard Extension from {jar}...")
|
|
1100
|
+
_run_subprocess(["java", "-jar", str(jar)], cwd=extension_dir, forward_signals=True)
|
|
1101
|
+
|
|
1102
|
+
|
|
1103
|
+
def _build_docker_image(
|
|
1104
|
+
extension_dir: Path,
|
|
1105
|
+
image_name: str,
|
|
1106
|
+
image_tag: str | None,
|
|
1107
|
+
platform: str,
|
|
1108
|
+
) -> None:
|
|
1109
|
+
"""Package the extension and build a Docker image.
|
|
1110
|
+
|
|
1111
|
+
Tagging rules (uniform across ``build`` and ``run``'s auto-build):
|
|
1112
|
+
|
|
1113
|
+
- ``image_tag is None`` → single ``-t <image_name>:latest``.
|
|
1114
|
+
- ``image_tag`` set → dual ``-t <image_name>:<image_tag>`` AND
|
|
1115
|
+
``-t <image_name>:latest`` so the most recent local build always wins
|
|
1116
|
+
under the canonical ``:latest`` name.
|
|
1117
|
+
|
|
1118
|
+
``platform`` is forwarded to ``docker build --platform`` so the resulting
|
|
1119
|
+
image is portable to the deployment host's architecture. The caller is
|
|
1120
|
+
expected to resolve the default before invoking us.
|
|
1121
|
+
|
|
1122
|
+
Shared between ``tb extension build`` (docker default) and the "image
|
|
1123
|
+
missing" branch of ``tb extension run`` (docker default).
|
|
1124
|
+
"""
|
|
1125
|
+
run_mvn(["package", "-DskipTests", "-q"], cwd=extension_dir)
|
|
1126
|
+
if image_tag is None:
|
|
1127
|
+
docker_cmd = ["docker", "build", "--platform", platform, "-t", f"{image_name}:latest", "."]
|
|
1128
|
+
artifact_lines = [f"{image_name}:latest"]
|
|
1129
|
+
else:
|
|
1130
|
+
docker_cmd = [
|
|
1131
|
+
"docker",
|
|
1132
|
+
"build",
|
|
1133
|
+
"--platform",
|
|
1134
|
+
platform,
|
|
1135
|
+
"-t",
|
|
1136
|
+
f"{image_name}:{image_tag}",
|
|
1137
|
+
"-t",
|
|
1138
|
+
f"{image_name}:latest",
|
|
1139
|
+
".",
|
|
1140
|
+
]
|
|
1141
|
+
artifact_lines = [f"{image_name}:{image_tag}", f"{image_name}:latest"]
|
|
1142
|
+
_run_subprocess(docker_cmd, cwd=extension_dir)
|
|
1143
|
+
# Docker build output is a wall of layer hashes; a single "OK" line is easy to miss in the
|
|
1144
|
+
# scrollback. Surface produced tags inside a green-bordered panel, plus a next-step hint
|
|
1145
|
+
# so users learn how to publish without hunting through `--help`.
|
|
1146
|
+
_print_success_panel("Build succeeded", artifact_lines, next_hint=BUILD_HINT_TEMPLATE)
|
|
1147
|
+
|
|
1148
|
+
|
|
1149
|
+
def _push_docker_image(local_ref: str, target_refs: list[str]) -> None:
|
|
1150
|
+
"""Tag ``local_ref`` as each ``target_refs`` entry and ``docker push`` it.
|
|
1151
|
+
|
|
1152
|
+
``docker tag`` is skipped when source equals target (defensive — slashes
|
|
1153
|
+
aren't allowed in the manifest name so collisions are unlikely, but the
|
|
1154
|
+
no-op tag would just clutter the output).
|
|
1155
|
+
"""
|
|
1156
|
+
project_root = _require_project_root()
|
|
1157
|
+
extension_dir = _extension_dir(project_root)
|
|
1158
|
+
for target in target_refs:
|
|
1159
|
+
if target != local_ref:
|
|
1160
|
+
_run_subprocess(["docker", "tag", local_ref, target], cwd=extension_dir)
|
|
1161
|
+
_run_subprocess(["docker", "push", target], cwd=extension_dir)
|
|
1162
|
+
|
|
1163
|
+
|
|
1164
|
+
def _docker_image_exists(image: str) -> bool:
|
|
1165
|
+
"""Return True iff ``docker image inspect <image>`` reports the image is local."""
|
|
1166
|
+
if shutil.which("docker") is None:
|
|
1167
|
+
return False
|
|
1168
|
+
try:
|
|
1169
|
+
result = subprocess.run(
|
|
1170
|
+
["docker", "image", "inspect", image],
|
|
1171
|
+
capture_output=True,
|
|
1172
|
+
text=True,
|
|
1173
|
+
check=False,
|
|
1174
|
+
)
|
|
1175
|
+
except OSError:
|
|
1176
|
+
return False
|
|
1177
|
+
return result.returncode == 0
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
def _run_extension_docker(
|
|
1181
|
+
extension_dir: Path,
|
|
1182
|
+
*,
|
|
1183
|
+
image_name: str,
|
|
1184
|
+
image_tag: str | None,
|
|
1185
|
+
detach: bool,
|
|
1186
|
+
platform: str,
|
|
1187
|
+
) -> None:
|
|
1188
|
+
"""Bring up the docker compose stack, building the image once if absent.
|
|
1189
|
+
|
|
1190
|
+
The resolved ``<image_name>:<tag>`` is passed to compose via the
|
|
1191
|
+
``TB_EXTENSION_IMAGE`` env var so ``compose.yaml`` picks it up. When not
|
|
1192
|
+
detaching, also tails container logs so the user sees the boot output.
|
|
1193
|
+
|
|
1194
|
+
``platform`` is only consulted by the auto-build branch (when the image
|
|
1195
|
+
is missing) — the compose stack itself runs whichever local image already
|
|
1196
|
+
matches the resolved tag.
|
|
1197
|
+
"""
|
|
1198
|
+
resolved_tag = image_tag or "latest"
|
|
1199
|
+
resolved_image = f"{image_name}:{resolved_tag}"
|
|
1200
|
+
if not _docker_image_exists(resolved_image):
|
|
1201
|
+
console.print(f"No image {resolved_image} found — building first...")
|
|
1202
|
+
# Pass the user's original ``image_tag`` (None when ``--image-tag`` was
|
|
1203
|
+
# omitted) so the auto-build behaves identically to an explicit
|
|
1204
|
+
# ``tb extension build``: missing tag → single ``-t :latest``, explicit
|
|
1205
|
+
# tag → dual ``-t :<tag>`` and ``-t :latest``.
|
|
1206
|
+
_build_docker_image(extension_dir, image_name, image_tag, platform)
|
|
1207
|
+
# Export EXTENSION_PORT so compose maps host:container ports consistently
|
|
1208
|
+
# and Spring inside the container listens on the same port the success
|
|
1209
|
+
# panel advertises. ``read_extension_port`` is the single source of truth
|
|
1210
|
+
# (env > application.yml > default 8090).
|
|
1211
|
+
port = unpacker.read_extension_port(extension_dir)
|
|
1212
|
+
env = {**os.environ, "TB_EXTENSION_IMAGE": resolved_image, "EXTENSION_PORT": str(port)}
|
|
1213
|
+
# Always start detached so the parent owns container lifetime explicitly. For foreground
|
|
1214
|
+
# mode we attach a ``logs -f`` tail and tear the stack down once it exits — Ctrl-C then
|
|
1215
|
+
# behaves like a normal ``docker compose up`` (stop everything) instead of leaving the
|
|
1216
|
+
# container bound to the extension's port.
|
|
1217
|
+
#
|
|
1218
|
+
# ``--progress=plain`` swaps compose's animated TUI for line-by-line output. The TUI
|
|
1219
|
+
# uses cursor moves + ``\r`` to redraw a single status line, which wraps and clobbers
|
|
1220
|
+
# itself when the line exceeds the terminal width (e.g. the platform-mismatch warning).
|
|
1221
|
+
# Plain output renders the same info as a tidy log instead of a smearing redraw.
|
|
1222
|
+
# ``--progress`` is a top-level ``docker compose`` flag, not an ``up`` subcommand flag,
|
|
1223
|
+
# so it must precede ``up`` — older compose versions reject it in the trailing position.
|
|
1224
|
+
_run_subprocess(["docker", "compose", "--progress=plain", "up", "-d"], cwd=extension_dir, env=env)
|
|
1225
|
+
# Print the run hint once the stack is up — surfaced for BOTH detach and
|
|
1226
|
+
# foreground modes so users always see the rule-chain / widget / HAProxy
|
|
1227
|
+
# wiring info. Foreground mode then continues into ``logs -f`` below.
|
|
1228
|
+
_print_success_panel(
|
|
1229
|
+
"Running",
|
|
1230
|
+
[f"Running '{image_name}' at http://localhost:{port}"],
|
|
1231
|
+
next_hint=RUN_HINT_TEMPLATE.format(port=port, haproxy=HAPROXY_SNIPPET),
|
|
1232
|
+
)
|
|
1233
|
+
if detach:
|
|
1234
|
+
return
|
|
1235
|
+
try:
|
|
1236
|
+
_run_subprocess(
|
|
1237
|
+
["docker", "compose", "logs", "-f"],
|
|
1238
|
+
cwd=extension_dir,
|
|
1239
|
+
env=env,
|
|
1240
|
+
forward_signals=True,
|
|
1241
|
+
)
|
|
1242
|
+
finally:
|
|
1243
|
+
_run_subprocess(["docker", "compose", "down"], cwd=extension_dir, env=env, check=False)
|
|
1244
|
+
|
|
1245
|
+
|
|
1246
|
+
def _run_subprocess(
|
|
1247
|
+
cmd: list[str],
|
|
1248
|
+
*,
|
|
1249
|
+
cwd: Path,
|
|
1250
|
+
check: bool = True,
|
|
1251
|
+
forward_signals: bool = False,
|
|
1252
|
+
env: dict[str, str] | None = None,
|
|
1253
|
+
) -> None:
|
|
1254
|
+
"""Run ``cmd`` and inherit stdin/stdout/stderr.
|
|
1255
|
+
|
|
1256
|
+
If ``forward_signals``, Ctrl-C is passed through to the child rather
|
|
1257
|
+
than killing the CLI process group abruptly — important for foreground
|
|
1258
|
+
run modes where the child needs a clean shutdown signal.
|
|
1259
|
+
|
|
1260
|
+
``env`` defaults to ``None``, which means the child inherits the parent's
|
|
1261
|
+
environment as-is. Pass a fully-populated mapping to override.
|
|
1262
|
+
"""
|
|
1263
|
+
console.print(f"[dim]$ {' '.join(cmd)} (in {cwd})[/dim]")
|
|
1264
|
+
process = subprocess.Popen(cmd, cwd=cwd, env=env)
|
|
1265
|
+
if forward_signals:
|
|
1266
|
+
|
|
1267
|
+
def _forward(signum: int, _frame: object) -> None:
|
|
1268
|
+
with suppress(ProcessLookupError):
|
|
1269
|
+
process.send_signal(signum)
|
|
1270
|
+
|
|
1271
|
+
previous_int = signal.signal(signal.SIGINT, _forward)
|
|
1272
|
+
previous_term = signal.signal(signal.SIGTERM, _forward)
|
|
1273
|
+
try:
|
|
1274
|
+
returncode = process.wait()
|
|
1275
|
+
finally:
|
|
1276
|
+
signal.signal(signal.SIGINT, previous_int)
|
|
1277
|
+
signal.signal(signal.SIGTERM, previous_term)
|
|
1278
|
+
# 128 + SIGINT/SIGTERM. With forward_signals=True the user just sent that signal via
|
|
1279
|
+
# Ctrl-C (or a stop command), so the non-zero exit is the requested shutdown — not a
|
|
1280
|
+
# failure the CLI should announce.
|
|
1281
|
+
if returncode in (130, 143):
|
|
1282
|
+
return
|
|
1283
|
+
else:
|
|
1284
|
+
returncode = process.wait()
|
|
1285
|
+
if check and returncode != 0:
|
|
1286
|
+
error(f"{cmd[0]} exited with status {returncode}.")
|
|
1287
|
+
|
|
1288
|
+
|
|
1289
|
+
def _port_in_use(port: int) -> bool:
|
|
1290
|
+
"""Return True if anything is listening on ``port`` (best-effort)."""
|
|
1291
|
+
return _pid_for_port(port) is not None
|
|
1292
|
+
|
|
1293
|
+
|
|
1294
|
+
def _pid_for_port(port: int) -> int | None:
|
|
1295
|
+
"""Return one PID listening on ``port``, preferring lsof, falling back to fuser."""
|
|
1296
|
+
lsof = shutil.which("lsof")
|
|
1297
|
+
if lsof is not None:
|
|
1298
|
+
try:
|
|
1299
|
+
result = subprocess.run(
|
|
1300
|
+
[lsof, "-ti", f"tcp:{port}", "-sTCP:LISTEN"],
|
|
1301
|
+
capture_output=True,
|
|
1302
|
+
text=True,
|
|
1303
|
+
check=False,
|
|
1304
|
+
)
|
|
1305
|
+
except OSError:
|
|
1306
|
+
result = None
|
|
1307
|
+
if result is not None and result.returncode == 0 and result.stdout.strip():
|
|
1308
|
+
first = result.stdout.strip().splitlines()[0].strip()
|
|
1309
|
+
if first.isdigit():
|
|
1310
|
+
return int(first)
|
|
1311
|
+
fuser = shutil.which("fuser")
|
|
1312
|
+
if fuser is not None:
|
|
1313
|
+
try:
|
|
1314
|
+
result = subprocess.run(
|
|
1315
|
+
[fuser, "-n", "tcp", str(port)],
|
|
1316
|
+
capture_output=True,
|
|
1317
|
+
text=True,
|
|
1318
|
+
check=False,
|
|
1319
|
+
)
|
|
1320
|
+
except OSError:
|
|
1321
|
+
result = None
|
|
1322
|
+
if result is not None and result.returncode == 0 and result.stdout.strip():
|
|
1323
|
+
tokens = result.stdout.replace("/", " ").split()
|
|
1324
|
+
for token in tokens:
|
|
1325
|
+
if token.isdigit():
|
|
1326
|
+
return int(token)
|
|
1327
|
+
return None
|
|
1328
|
+
|
|
1329
|
+
|
|
1330
|
+
def _process_cmdline(pid: int) -> str | None:
|
|
1331
|
+
"""Best-effort ``ps -o command=`` lookup. Returns None on any error."""
|
|
1332
|
+
ps = shutil.which("ps")
|
|
1333
|
+
if ps is None:
|
|
1334
|
+
return None
|
|
1335
|
+
try:
|
|
1336
|
+
result = subprocess.run(
|
|
1337
|
+
[ps, "-p", str(pid), "-o", "command="],
|
|
1338
|
+
capture_output=True,
|
|
1339
|
+
text=True,
|
|
1340
|
+
check=False,
|
|
1341
|
+
)
|
|
1342
|
+
except OSError:
|
|
1343
|
+
return None
|
|
1344
|
+
if result.returncode != 0 or not result.stdout.strip():
|
|
1345
|
+
return None
|
|
1346
|
+
return result.stdout.strip()
|
|
1347
|
+
|
|
1348
|
+
|
|
1349
|
+
def _wait_for_death(pid: int, timeout: float = 5.0, poll_interval: float = 0.1) -> bool:
|
|
1350
|
+
"""Poll for process exit. Returns True if the PID is gone within ``timeout``."""
|
|
1351
|
+
deadline = time.monotonic() + timeout
|
|
1352
|
+
while time.monotonic() < deadline:
|
|
1353
|
+
try:
|
|
1354
|
+
os.kill(pid, 0)
|
|
1355
|
+
except ProcessLookupError:
|
|
1356
|
+
return True
|
|
1357
|
+
except PermissionError:
|
|
1358
|
+
return False
|
|
1359
|
+
time.sleep(poll_interval)
|
|
1360
|
+
try:
|
|
1361
|
+
os.kill(pid, 0)
|
|
1362
|
+
except ProcessLookupError:
|
|
1363
|
+
return True
|
|
1364
|
+
return False
|