Browse Source

fixed openapi issue with defaultImpl, deleted redundant allOf

pull/14929/head
dashevchenko 7 months ago
parent
commit
549e8ba12b
  1. 1
      application/src/test/java/org/thingsboard/server/edge/NotificationEdgeTest.java
  2. 1
      application/src/test/java/org/thingsboard/server/service/sync/vc/VersionControlTest.java
  3. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/DurationAlarmCondition.java
  4. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/RepeatingAlarmCondition.java
  5. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/SimpleAlarmCondition.java
  6. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/BooleanFilterPredicate.java
  7. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/ComplexFilterPredicate.java
  8. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/NoDataFilterPredicate.java
  9. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/NumericFilterPredicate.java
  10. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/StringFilterPredicate.java
  11. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/AnyTimeSchedule.java
  12. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/CustomTimeSchedule.java
  13. 2
      common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/SpecificTimeSchedule.java
  14. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/AlarmCalculatedFieldConfiguration.java
  15. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/PropagationCalculatedFieldConfiguration.java
  16. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ScriptCalculatedFieldConfiguration.java
  17. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/SimpleCalculatedFieldConfiguration.java
  18. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/RelatedEntitiesAggregationCalculatedFieldConfiguration.java
  19. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/EntityAggregationCalculatedFieldConfiguration.java
  20. 2
      common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/geofencing/GeofencingCalculatedFieldConfiguration.java
  21. 2
      common/data/src/main/java/org/thingsboard/server/common/data/device/data/DefaultDeviceConfiguration.java
  22. 2
      common/data/src/main/java/org/thingsboard/server/common/data/device/profile/DefaultDeviceProfileConfiguration.java
  23. 2
      common/data/src/main/java/org/thingsboard/server/common/data/job/DummyJobConfiguration.java
  24. 59
      common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/DefaultNotificationRuleRecipientsConfig.java
  25. 2
      common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/EscalatedNotificationRuleRecipientsConfig.java
  26. 26
      common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/NotificationRuleRecipientsConfig.java
  27. 49
      common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/EntityExportData.java

1
application/src/test/java/org/thingsboard/server/edge/NotificationEdgeTest.java

@ -266,7 +266,6 @@ public class NotificationEdgeTest extends AbstractEdgeTest {
notificationRule.setTriggerConfig(triggerConfig);
EscalatedNotificationRuleRecipientsConfig recipientsConfig = new EscalatedNotificationRuleRecipientsConfig();
recipientsConfig.setTriggerType(NotificationRuleTriggerType.ALARM);
Map<Integer, List<UUID>> escalationTable = new HashMap<>();
escalationTable.put(Integer.valueOf("1"), new ArrayList<>());
recipientsConfig.setEscalationTable(escalationTable);

1
application/src/test/java/org/thingsboard/server/service/sync/vc/VersionControlTest.java

@ -942,7 +942,6 @@ public class VersionControlTest extends AbstractControllerTest {
}
return result.getResult().stream().collect(Collectors.toMap(EntityTypeLoadResult::getEntityType, r -> r));
}
private List<EntityVersion> listVersions() throws Exception {
PageData<EntityVersion> versions = doGetAsyncTyped("/api/entities/vc/version?branch=" + branch + "&pageSize=100&page=0&sortProperty=timestamp&sortOrder=DESC", new TypeReference<PageData<EntityVersion>>() {});
return versions.getData();

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/DurationAlarmCondition.java

@ -25,7 +25,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import java.util.concurrent.TimeUnit;
@Schema(name = "AlarmRuleDurationCondition", allOf = AlarmCondition.class)
@Schema(name = "AlarmRuleDurationCondition")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/RepeatingAlarmCondition.java

@ -22,7 +22,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(name = "AlarmRuleRepeatingCondition", allOf = AlarmCondition.class)
@Schema(name = "AlarmRuleRepeatingCondition")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/SimpleAlarmCondition.java

@ -17,7 +17,7 @@ package org.thingsboard.server.common.data.alarm.rule.condition;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(name = "AlarmRuleSimpleCondition", allOf = AlarmCondition.class)
@Schema(name = "AlarmRuleSimpleCondition")
public class SimpleAlarmCondition extends AlarmCondition {
@Override

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/BooleanFilterPredicate.java

@ -21,7 +21,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import org.thingsboard.server.common.data.alarm.rule.condition.AlarmConditionValue;
@Schema(name = "AlarmRuleBooleanFilterPredicate", allOf = KeyFilterPredicate.class)
@Schema(name = "AlarmRuleBooleanFilterPredicate")
@Data
public class BooleanFilterPredicate implements SimpleKeyFilterPredicate<Boolean> {

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/ComplexFilterPredicate.java

@ -22,7 +22,7 @@ import org.thingsboard.server.common.data.alarm.rule.condition.expression.Comple
import java.util.List;
@Schema(name = "AlarmRuleComplexFilterPredicate", allOf = KeyFilterPredicate.class)
@Schema(name = "AlarmRuleComplexFilterPredicate")
@Data
public class ComplexFilterPredicate implements KeyFilterPredicate {

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/NoDataFilterPredicate.java

@ -25,7 +25,7 @@ import org.thingsboard.server.common.data.alarm.rule.condition.AlarmConditionVal
import java.util.concurrent.TimeUnit;
@Schema(name = "AlarmRuleNoDataFilterPredicate", allOf = KeyFilterPredicate.class)
@Schema(name = "AlarmRuleNoDataFilterPredicate")
@Data
@AllArgsConstructor
@NoArgsConstructor

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/NumericFilterPredicate.java

@ -23,7 +23,7 @@ import lombok.NoArgsConstructor;
import io.swagger.v3.oas.annotations.media.Schema;
import org.thingsboard.server.common.data.alarm.rule.condition.AlarmConditionValue;
@Schema(name = "AlarmRuleNumericFilterPredicate", allOf = KeyFilterPredicate.class)
@Schema(name = "AlarmRuleNumericFilterPredicate")
@Data
@AllArgsConstructor
@NoArgsConstructor

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/expression/predicate/StringFilterPredicate.java

@ -21,7 +21,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import org.thingsboard.server.common.data.alarm.rule.condition.AlarmConditionValue;
@Schema(name = "AlarmRuleStringFilterPredicate", allOf = KeyFilterPredicate.class)
@Schema(name = "AlarmRuleStringFilterPredicate")
@Data
public class StringFilterPredicate implements SimpleKeyFilterPredicate<String> {

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/AnyTimeSchedule.java

@ -17,7 +17,7 @@ package org.thingsboard.server.common.data.alarm.rule.condition.schedule;
import io.swagger.v3.oas.annotations.media.Schema;
@Schema(name = "AlarmRuleAnyTimeSchedule", allOf = AlarmSchedule.class)
@Schema(name = "AlarmRuleAnyTimeSchedule")
public class AnyTimeSchedule implements AlarmSchedule {
@Override

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/CustomTimeSchedule.java

@ -20,7 +20,7 @@ import lombok.Data;
import java.util.List;
@Schema(name = "AlarmRuleCustomTimeSchedule", allOf = AlarmSchedule.class)
@Schema(name = "AlarmRuleCustomTimeSchedule")
@Data
public class CustomTimeSchedule implements AlarmSchedule {

2
common/data/src/main/java/org/thingsboard/server/common/data/alarm/rule/condition/schedule/SpecificTimeSchedule.java

@ -20,7 +20,7 @@ import lombok.Data;
import java.util.Set;
@Schema(name = "AlarmRuleSpecificTimeSchedule", allOf = AlarmSchedule.class)
@Schema(name = "AlarmRuleSpecificTimeSchedule")
@Data
public class SpecificTimeSchedule implements AlarmSchedule {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/AlarmCalculatedFieldConfiguration.java

@ -35,7 +35,7 @@ import java.util.stream.Stream;
import static java.util.Map.Entry.comparingByKey;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
public class AlarmCalculatedFieldConfiguration implements ArgumentsBasedCalculatedFieldConfiguration {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/PropagationCalculatedFieldConfiguration.java

@ -27,7 +27,7 @@ import org.thingsboard.server.common.data.relation.RelationPathLevel;
import java.util.List;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
@EqualsAndHashCode(callSuper = true)
public class PropagationCalculatedFieldConfiguration extends BaseCalculatedFieldConfiguration implements HasRelationPathLevel, HasUseLatestTsConfig {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/ScriptCalculatedFieldConfiguration.java

@ -21,7 +21,7 @@ import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.cf.CalculatedFieldType;
@Data
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@EqualsAndHashCode(callSuper = true)
public class ScriptCalculatedFieldConfiguration extends BaseCalculatedFieldConfiguration implements ArgumentsBasedCalculatedFieldConfiguration {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/SimpleCalculatedFieldConfiguration.java

@ -21,7 +21,7 @@ import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.cf.CalculatedFieldType;
@Data
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@EqualsAndHashCode(callSuper = true)
public class SimpleCalculatedFieldConfiguration extends BaseCalculatedFieldConfiguration implements ExpressionBasedCalculatedFieldConfiguration, HasUseLatestTsConfig {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/RelatedEntitiesAggregationCalculatedFieldConfiguration.java

@ -32,7 +32,7 @@ import org.thingsboard.server.common.data.relation.RelationPathLevel;
import java.util.Map;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
public class RelatedEntitiesAggregationCalculatedFieldConfiguration implements ArgumentsBasedCalculatedFieldConfiguration, ScheduledUpdateSupportedCalculatedFieldConfiguration, HasRelationPathLevel, HasUseLatestTsConfig {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/aggregation/single/EntityAggregationCalculatedFieldConfiguration.java

@ -33,7 +33,7 @@ import org.thingsboard.server.common.data.cf.configuration.aggregation.single.in
import java.util.Map;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
public class EntityAggregationCalculatedFieldConfiguration implements ArgumentsBasedCalculatedFieldConfiguration {

2
common/data/src/main/java/org/thingsboard/server/common/data/cf/configuration/geofencing/GeofencingCalculatedFieldConfiguration.java

@ -38,7 +38,7 @@ import java.util.Set;
import static java.util.stream.Collectors.toSet;
@Schema(allOf = CalculatedFieldConfiguration.class)
@Schema
@Data
public class GeofencingCalculatedFieldConfiguration implements ArgumentsBasedCalculatedFieldConfiguration, ScheduledUpdateSupportedCalculatedFieldConfiguration, HasUseLatestTsConfig {

2
common/data/src/main/java/org/thingsboard/server/common/data/device/data/DefaultDeviceConfiguration.java

@ -19,7 +19,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.thingsboard.server.common.data.DeviceProfileType;
@Schema(description = "Default device configuration", allOf = DeviceConfiguration.class)
@Schema(description = "Default device configuration")
@Data
public class DefaultDeviceConfiguration implements DeviceConfiguration {

2
common/data/src/main/java/org/thingsboard/server/common/data/device/profile/DefaultDeviceProfileConfiguration.java

@ -19,7 +19,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.thingsboard.server.common.data.DeviceProfileType;
@Schema(description = "Default device profile configuration", allOf = DeviceProfileConfiguration.class)
@Schema(description = "Default device profile configuration")
@Data
public class DefaultDeviceProfileConfiguration implements DeviceProfileConfiguration {

2
common/data/src/main/java/org/thingsboard/server/common/data/job/DummyJobConfiguration.java

@ -25,7 +25,7 @@ import lombok.ToString;
import java.util.List;
@Schema(description = "Dummy job configuration", allOf = JobConfiguration.class)
@Schema(description = "Dummy job configuration")
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor

59
common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/DefaultNotificationRuleRecipientsConfig.java

@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.thingsboard.server.common.data.notification.rule.trigger.config.NotificationRuleTriggerType;
import java.util.List;
import java.util.Map;
@ -32,9 +33,67 @@ public class DefaultNotificationRuleRecipientsConfig extends NotificationRuleRec
@NotEmpty
private List<UUID> targets;
@Override
@Schema(hidden = true)
public NotificationRuleTriggerType getTriggerType() {
return super.getTriggerType();
}
@Override
public Map<Integer, List<UUID>> getTargetsTable() {
return Map.of(0, targets);
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class EntityActionRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class AlarmCommentRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class AlarmAssignmentRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class DeviceActivityRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class RuleEngineComponentLifecycleEventRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class EdgeConnectionRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class EdgeCommunicationFailureRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class NewPlatformVersionRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class EntitiesLimitRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class ApiUsageLimitRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class RateLimitsRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class TaskProcessingFailureRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
@Schema(allOf = DefaultNotificationRuleRecipientsConfig.class)
public static class ResourceShortageRecipientsConfig extends DefaultNotificationRuleRecipientsConfig {
}
}

2
common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/EscalatedNotificationRuleRecipientsConfig.java

@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
@Schema(description = "Escalated notification rule recipients configuration", allOf = NotificationRuleRecipientsConfig.class)
@Schema(description = "Escalated notification rule recipients configuration")
@Data
@EqualsAndHashCode(callSuper = true)
public class EscalatedNotificationRuleRecipientsConfig extends NotificationRuleRecipientsConfig {

26
common/data/src/main/java/org/thingsboard/server/common/data/notification/rule/NotificationRuleRecipientsConfig.java

@ -34,20 +34,20 @@ import java.util.UUID;
@Schema(
discriminatorProperty = "triggerType",
discriminatorMapping = {
@DiscriminatorMapping(value = "ENTITY_ACTION", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "ENTITY_ACTION", schema = DefaultNotificationRuleRecipientsConfig.EntityActionRecipientsConfig.class),
@DiscriminatorMapping(value = "ALARM", schema = EscalatedNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "ALARM_COMMENT", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "ALARM_ASSIGNMENT", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "DEVICE_ACTIVITY", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "EDGE_CONNECTION", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "EDGE_COMMUNICATION_FAILURE", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "NEW_PLATFORM_VERSION", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "ENTITIES_LIMIT", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "API_USAGE_LIMIT", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "RATE_LIMITS", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "TASK_PROCESSING_FAILURE", schema = DefaultNotificationRuleRecipientsConfig.class),
@DiscriminatorMapping(value = "RESOURCES_SHORTAGE", schema = DefaultNotificationRuleRecipientsConfig.class)
@DiscriminatorMapping(value = "ALARM_COMMENT", schema = DefaultNotificationRuleRecipientsConfig.AlarmCommentRecipientsConfig.class),
@DiscriminatorMapping(value = "ALARM_ASSIGNMENT", schema = DefaultNotificationRuleRecipientsConfig.AlarmAssignmentRecipientsConfig.class),
@DiscriminatorMapping(value = "DEVICE_ACTIVITY", schema = DefaultNotificationRuleRecipientsConfig.DeviceActivityRecipientsConfig.class),
@DiscriminatorMapping(value = "RULE_ENGINE_COMPONENT_LIFECYCLE_EVENT", schema = DefaultNotificationRuleRecipientsConfig.RuleEngineComponentLifecycleEventRecipientsConfig.class),
@DiscriminatorMapping(value = "EDGE_CONNECTION", schema = DefaultNotificationRuleRecipientsConfig.EdgeConnectionRecipientsConfig.class),
@DiscriminatorMapping(value = "EDGE_COMMUNICATION_FAILURE", schema = DefaultNotificationRuleRecipientsConfig.EdgeCommunicationFailureRecipientsConfig.class),
@DiscriminatorMapping(value = "NEW_PLATFORM_VERSION", schema = DefaultNotificationRuleRecipientsConfig.NewPlatformVersionRecipientsConfig.class),
@DiscriminatorMapping(value = "ENTITIES_LIMIT", schema = DefaultNotificationRuleRecipientsConfig.EntitiesLimitRecipientsConfig.class),
@DiscriminatorMapping(value = "API_USAGE_LIMIT", schema = DefaultNotificationRuleRecipientsConfig.ApiUsageLimitRecipientsConfig.class),
@DiscriminatorMapping(value = "RATE_LIMITS", schema = DefaultNotificationRuleRecipientsConfig.RateLimitsRecipientsConfig.class),
@DiscriminatorMapping(value = "TASK_PROCESSING_FAILURE", schema = DefaultNotificationRuleRecipientsConfig.TaskProcessingFailureRecipientsConfig.class),
@DiscriminatorMapping(value = "RESOURCES_SHORTAGE", schema = DefaultNotificationRuleRecipientsConfig.ResourceShortageRecipientsConfig.class)
})
@JsonIgnoreProperties
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "triggerType", visible = true, include = JsonTypeInfo.As.EXISTING_PROPERTY, defaultImpl = DefaultNotificationRuleRecipientsConfig.class)

49
common/data/src/main/java/org/thingsboard/server/common/data/sync/ie/EntityExportData.java

@ -27,10 +27,21 @@ import io.swagger.v3.oas.annotations.media.ArraySchema;
import io.swagger.v3.oas.annotations.media.DiscriminatorMapping;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.Dashboard;
import org.thingsboard.server.common.data.DeviceProfile;
import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.EntityView;
import org.thingsboard.server.common.data.ExportableEntity;
import org.thingsboard.server.common.data.TbResource;
import org.thingsboard.server.common.data.ai.AiModel;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.AssetProfile;
import org.thingsboard.server.common.data.cf.CalculatedField;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.notification.rule.NotificationRule;
import org.thingsboard.server.common.data.notification.targets.NotificationTarget;
import org.thingsboard.server.common.data.notification.template.NotificationTemplate;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.sync.JsonTbEntity;
@ -39,13 +50,24 @@ import java.util.List;
import java.util.Map;
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "entityType", include = As.EXISTING_PROPERTY, visible = true, defaultImpl = EntityExportData.class)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "entityType", include = As.EXISTING_PROPERTY, visible = true)
@JsonSubTypes({
@Type(name = "CUSTOMER", value = EntityExportData.CustomerExportData.class),
@Type(name = "DEVICE", value = DeviceExportData.class),
@Type(name = "RULE_CHAIN", value = RuleChainExportData.class),
@Type(name = "WIDGET_TYPE", value = WidgetTypeExportData.class),
@Type(name = "WIDGETS_BUNDLE", value = WidgetsBundleExportData.class),
@Type(name = "OTA_PACKAGE", value = OtaPackageExportData.class)
@Type(name = "OTA_PACKAGE", value = OtaPackageExportData.class),
@Type(name = "TB_RESOURCE", value = EntityExportData.TbResourceExportData.class),
@Type(name = "DASHBOARD", value = EntityExportData.DashboardExportData.class),
@Type(name = "ASSET_PROFILE", value = EntityExportData.AssetProfileExportData.class),
@Type(name = "ASSET", value = EntityExportData.AssetExportData.class),
@Type(name = "DEVICE_PROFILE", value = EntityExportData.DeviceProfileExportData.class),
@Type(name = "ENTITY_VIEW", value = EntityExportData.EntityViewExportData.class),
@Type(name = "NOTIFICATION_TEMPLATE", value = EntityExportData.NotificationTemplateExportData.class),
@Type(name = "NOTIFICATION_TARGET", value = EntityExportData.NotificationTargetExportData.class),
@Type(name = "NOTIFICATION_RULE", value = EntityExportData.NotificationRuleExportData.class),
@Type(name = "AI_MODEL", value = EntityExportData.AiModelExportData.class),
})
@JsonInclude(JsonInclude.Include.NON_NULL)
@Schema(
@ -130,4 +152,27 @@ public class EntityExportData<E extends ExportableEntity<? extends EntityId>> {
return calculatedFields != null && !calculatedFields.isEmpty();
}
@Schema
public static class CustomerExportData extends EntityExportData<Customer> {}
@Schema
public static class TbResourceExportData extends EntityExportData<TbResource> {}
@Schema
public static class DashboardExportData extends EntityExportData<Dashboard> {}
@Schema
public static class AssetProfileExportData extends EntityExportData<AssetProfile> {}
@Schema
public static class AssetExportData extends EntityExportData<Asset> {}
@Schema
public static class DeviceProfileExportData extends EntityExportData<DeviceProfile> {}
@Schema
public static class EntityViewExportData extends EntityExportData<EntityView> {}
@Schema
public static class NotificationTemplateExportData extends EntityExportData<NotificationTemplate> {}
@Schema
public static class NotificationTargetExportData extends EntityExportData<NotificationTarget> {}
@Schema
public static class NotificationRuleExportData extends EntityExportData<NotificationRule> {}
@Schema
public static class AiModelExportData extends EntityExportData<AiModel> {}
}

Loading…
Cancel
Save