device profile data documentation
This commit is contained in:
parent
b0912519e4
commit
cbadb87296
@ -244,11 +244,50 @@ public abstract class BaseController {
|
||||
protected static final String EVENT_DEBUG_RULE_NODE_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"DEBUG_RULE_NODE\"," + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END;
|
||||
protected static final String EVENT_DEBUG_RULE_CHAIN_FILTER_OBJ = MARKDOWN_CODE_BLOCK_START + "{ \"eventType\": \"DEBUG_RULE_CHAIN\"," + DEBUG_FILTER_OBJ + MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String DEVICE_PROFILE_ALARM_CREATE_RULES_EXAMPLE = MARKDOWN_CODE_BLOCK_START + "{ \"createRules\": { \"MAJOR\": { \"schedule\": null, \"condition\": { \"spec\": { \"type\": \"SIMPLE\" }, " +
|
||||
"\"condition\": [{ \"key\": { \"key\": \"temp\", \"type\": \"TIME_SERIES\" }, \"value\": null, \"predicate\": { \"type\": \"NUMERIC\", \"value\": { \"userValue\": null, \"defaultValue\": 30.0, \"dynamicValue\": null }, " +
|
||||
"\"operation\": \"GREATER\" }, \"valueType\": \"NUMERIC\" }] }, \"dashboardId\": null, \"alarmDetails\": null }, \"CRITICAL\": { \"schedule\": null, \"condition\": { \"spec\": { \"type\": \"SIMPLE\" }, \"condition\": " +
|
||||
"[{ \"key\": { \"key\": \"temp\", \"type\": \"TIME_SERIES\" }, \"value\": null, \"predicate\": { \"type\": \"NUMERIC\", \"value\": { \"userValue\": null, \"defaultValue\": 50.0, \"dynamicValue\": null }, \"operation\": \"GREATER\" }, " +
|
||||
"\"valueType\": \"NUMERIC\" }] }, \"dashboardId\": null, \"alarmDetails\": null } } }" + MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String DEVICE_PROFILE_ALARM_SCHEDULE_SPECIFIC_TIME_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"schedule\": { \"type\": \"SPECIFIC_TIME\", \"endsOn\": 64800000, \"startsOn\": 43200000, \"timezone\": \"Europe/Kiev\", \"daysOfWeek\": [1, 3, 7] } }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
protected static final String DEVICE_PROFILE_ALARM_SCHEDULE_CUSTOM_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"schedule\": { \"type\": \"CUSTOM\", \"items\": [{ \"endsOn\": 64800000, \"enabled\": true, \"startsOn\": 43200000, \"dayOfWeek\": 1 }, " +
|
||||
"{ \"endsOn\": 0, \"enabled\": false, \"startsOn\": 0, \"dayOfWeek\": 2 }, { \"endsOn\": 57600000, \"enabled\": true, \"startsOn\": 36000000, \"dayOfWeek\": 3 }, " +
|
||||
"{ \"endsOn\": 0, \"enabled\": false, \"startsOn\": 0, \"dayOfWeek\": 4 }, { \"endsOn\": 68400000, \"enabled\": true, \"startsOn\": 32400000, \"dayOfWeek\": 5 }, " +
|
||||
"{ \"endsOn\": 0, \"enabled\": false, \"startsOn\": 0, \"dayOfWeek\": 6 }, { \"endsOn\": 0, \"enabled\": false, \"startsOn\": 0, \"dayOfWeek\": 7 }], \"timezone\": \"Europe/Kiev\" } }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
protected static final String DEVICE_PROFILE_ALARM_SCHEDULE_ALWAYS_EXAMPLE = MARKDOWN_CODE_BLOCK_START + "{\"schedule\": null}" + MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String DEVICE_PROFILE_ALARM_CONDITION_REPEATING_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"spec\": { \"type\": \"DURATION\", \"unit\": \"MINUTES\", \"predicate\": { \"userValue\": null, \"defaultValue\": 30, \"dynamicValue\": null } } }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
protected static final String DEVICE_PROFILE_ALARM_CONDITION_DURATION_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"spec\": { \"type\": \"REPEATING\", \"predicate\": { \"userValue\": null, \"defaultValue\": 3, \"dynamicValue\": " +
|
||||
"{ \"inherit\": false, \"sourceType\": \"CURRENT_DEVICE\", \"sourceAttribute\": \"repeatingLimit\" } } } }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String DEVICE_PROFILE_CONDITIONS_TIME_SERIES_NUMERIC_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"condition\": [{ \"key\": { \"key\": \"temp\", \"type\": \"TIME_SERIES\" }, " +
|
||||
"\"value\": null, \"predicate\": { \"type\": \"NUMERIC\", \"value\": { \"userValue\": null, \"defaultValue\": 30.0, \"dynamicValue\": null }, \"operation\": \"GREATER\" }, " +
|
||||
"\"valueType\": \"NUMERIC\" }] }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String DEVICE_PROFILE_CONDITIONS_CONSTANT_EXAMPLE = MARKDOWN_CODE_BLOCK_START +
|
||||
"{ \"condition\": [{ \"key\": { \"key\": \"constantKey\", \"type\": \"CONSTANT\" }, \"value\": true, \"predicate\": { \"type\": \"BOOLEAN\", \"value\": " +
|
||||
"{ \"userValue\": null, \"defaultValue\": false, \"dynamicValue\": { \"inherit\": false, \"sourceType\": \"CURRENT_TENANT\", \"sourceAttribute\": \"alarmEnabled\" } }, " +
|
||||
"\"operation\": \"EQUAL\" }, \"valueType\": \"BOOLEAN\" }] }" +
|
||||
MARKDOWN_CODE_BLOCK_END;
|
||||
|
||||
protected static final String RELATION_TYPE_PARAM_DESCRIPTION = "A string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.";
|
||||
protected static final String RELATION_TYPE_GROUP_PARAM_DESCRIPTION = "A string value representing relation type group. For example, 'COMMON'";
|
||||
|
||||
protected static final String ADMINISTRATOR_AUTHORITY_ONLY = "Available for users with 'Tenant Administrator' authority only.";
|
||||
|
||||
protected static final String NEW_LINE = "\n\n";
|
||||
|
||||
public static final String INCORRECT_TENANT_ID = "Incorrect tenantId ";
|
||||
protected static final String DEFAULT_DASHBOARD = "defaultDashboardId";
|
||||
protected static final String HOME_DASHBOARD = "homeDashboardId";
|
||||
|
||||
@ -174,7 +174,19 @@ public class DeviceProfileController extends BaseController {
|
||||
"The newly created device profile id will be present in the response. " +
|
||||
"Specify existing device profile id to update the device profile. " +
|
||||
"Referencing non-existing device profile Id will cause 'Not Found' error. " +
|
||||
"\n\nDevice profile name is unique in the scope of tenant. Only one 'default' device profile may exist in scope of tenant." + TENANT_AUTHORITY_PARAGRAPH,
|
||||
"\n\nDevice profile name is unique in the scope of tenant. Only one 'default' device profile may exist in scope of tenant." + TENANT_AUTHORITY_PARAGRAPH +
|
||||
NEW_LINE + "See the object example below for createRules field:" + NEW_LINE + DEVICE_PROFILE_ALARM_CREATE_RULES_EXAMPLE +
|
||||
NEW_LINE + "See alarm schedule objects examples below. Note," + NEW_LINE + DEVICE_PROFILE_ALARM_SCHEDULE_ALWAYS_EXAMPLE + NEW_LINE + " means alarm rule is active all the time. " +
|
||||
"'daysOfWeek' field represents Monday as 1, Tuesday as 2 and so on. 'startsOn' and 'endsOn' represent hours in millis. " +
|
||||
"'enabled' flag represents if custom rule is active for specific day of the week:" + NEW_LINE +
|
||||
DEVICE_PROFILE_ALARM_SCHEDULE_SPECIFIC_TIME_EXAMPLE + NEW_LINE + DEVICE_PROFILE_ALARM_SCHEDULE_CUSTOM_EXAMPLE + NEW_LINE +
|
||||
"Alarm condition type ('spec') can be either simple, duration, or repeating. For example, 5 times in a row or during 5 minutes. See examples below. " + NEW_LINE +
|
||||
DEVICE_PROFILE_ALARM_CONDITION_REPEATING_EXAMPLE + NEW_LINE + DEVICE_PROFILE_ALARM_CONDITION_DURATION_EXAMPLE + NEW_LINE +
|
||||
"Note, 'userValue' field is not used, 'dynamicValue' is used for condition appliance from the 'sourceAttribute' or else 'defaultValue' is used. " +
|
||||
"'sourceType' of the 'sourceAttribute' can be CURRENT_DEVICE/CURRENT_CUSTOMER/CURRENT_TENANT or inherited from the owner if set to true (for device and customer)." +
|
||||
NEW_LINE + "Condition array examples for alarm rule activation:" + NEW_LINE + DEVICE_PROFILE_CONDITIONS_TIME_SERIES_NUMERIC_EXAMPLE + NEW_LINE +
|
||||
DEVICE_PROFILE_CONDITIONS_CONSTANT_EXAMPLE + NEW_LINE +
|
||||
"Note, see description of predicate fields above for 'spec' object. Navigate to Docs or Alarm Rules on ThingsBoard UI for more details and examples of fields possible values. ",
|
||||
produces = "application/json",
|
||||
consumes = "application/json")
|
||||
@PreAuthorize("hasAuthority('TENANT_ADMIN')")
|
||||
|
||||
@ -45,8 +45,6 @@ import org.thingsboard.server.service.security.permission.Operation;
|
||||
@RequestMapping("/api")
|
||||
public class EventController extends BaseController {
|
||||
|
||||
private static final String NEW_LINE = "\n\n";
|
||||
|
||||
@Autowired
|
||||
private EventService eventService;
|
||||
|
||||
|
||||
@ -69,8 +69,8 @@ public class Alarm extends BaseData<AlarmId> implements HasName, HasTenantId, Ha
|
||||
@ApiModelProperty(position = 15, value = "Propagation flag to specify if alarm should be propagated to parent entities of alarm originator", example = "true")
|
||||
private boolean propagate;
|
||||
@ApiModelProperty(position = 16, value = "JSON array of relation types that should be used for propagation. " +
|
||||
"By default, 'propagateRelationTypes' array is empty which means that the alarm will propagate based on any relation type to parent entities. " +
|
||||
"This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will ignoned.")
|
||||
"By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. " +
|
||||
"This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.")
|
||||
private List<String> propagateRelationTypes;
|
||||
|
||||
public Alarm() {
|
||||
|
||||
@ -15,11 +15,11 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.data;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.thingsboard.server.common.data.DeviceProfileType;
|
||||
|
||||
@ApiModel
|
||||
@ -32,7 +32,7 @@ import org.thingsboard.server.common.data.DeviceProfileType;
|
||||
@JsonSubTypes.Type(value = DefaultDeviceConfiguration.class, name = "DEFAULT")})
|
||||
public interface DeviceConfiguration {
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty(position = 1, value = "Device profile type", allowableValues = "DEFAULT")
|
||||
DeviceProfileType getType();
|
||||
|
||||
}
|
||||
|
||||
@ -16,13 +16,16 @@
|
||||
package org.thingsboard.server.common.data.device.data;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class DeviceData {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "Device configuration for device profile type. DEFAULT is only supported value for now")
|
||||
private DeviceConfiguration configuration;
|
||||
@ApiModelProperty(position = 2, value = "Device transport configuration used to connect the device")
|
||||
private DeviceTransportConfiguration transportConfiguration;
|
||||
|
||||
}
|
||||
|
||||
@ -15,11 +15,11 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.data;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.thingsboard.server.common.data.DeviceTransportType;
|
||||
|
||||
import java.io.Serializable;
|
||||
@ -37,7 +37,8 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = Lwm2mDeviceTransportConfiguration.class, name = "LWM2M"),
|
||||
@JsonSubTypes.Type(value = SnmpDeviceTransportConfiguration.class, name = "SNMP")})
|
||||
public interface DeviceTransportConfiguration extends Serializable {
|
||||
@JsonIgnore
|
||||
|
||||
@ApiModelProperty(position = 1, value = "Device transport type", example = "MQTT")
|
||||
DeviceTransportType getType();
|
||||
|
||||
default void validate() {
|
||||
|
||||
@ -16,18 +16,23 @@
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AlarmCondition implements Serializable {
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(position = 1, value = "JSON array of alarm condition filters")
|
||||
private List<AlarmConditionFilter> condition;
|
||||
@ApiModelProperty(position = 2, value = "JSON object representing alarm condition type")
|
||||
private AlarmConditionSpec spec;
|
||||
|
||||
}
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.thingsboard.server.common.data.query.EntityKeyValueType;
|
||||
import org.thingsboard.server.common.data.query.KeyFilterPredicate;
|
||||
@ -24,15 +26,20 @@ import javax.validation.Valid;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class AlarmConditionFilter implements Serializable {
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(position = 1, value = "JSON object for specifying alarm condition by specific key")
|
||||
private AlarmConditionFilterKey key;
|
||||
@ApiModelProperty(position = 2, value = "String representation of the type of the value", example = "NUMERIC")
|
||||
private EntityKeyValueType valueType;
|
||||
@NoXss
|
||||
@ApiModelProperty(position = 3, value = "Value used in Constant comparison. For other types, such as TIME_SERIES or ATTRIBUTE, the predicate condition is used")
|
||||
private Object value;
|
||||
@Valid
|
||||
@ApiModelProperty(position = 4, value = "JSON object representing filter condition")
|
||||
private KeyFilterPredicate predicate;
|
||||
|
||||
}
|
||||
|
||||
@ -15,16 +15,21 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.thingsboard.server.common.data.validation.NoXss;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class AlarmConditionFilterKey implements Serializable {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "The key type", example = "TIME_SERIES")
|
||||
private final AlarmConditionKeyType type;
|
||||
@NoXss
|
||||
@ApiModelProperty(position = 2, value = "String value representing the key", example = "temp")
|
||||
private final String key;
|
||||
|
||||
}
|
||||
|
||||
@ -15,13 +15,15 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
@ -33,7 +35,7 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = RepeatingAlarmConditionSpec.class, name = "REPEATING")})
|
||||
public interface AlarmConditionSpec extends Serializable {
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty(position = 1, value = "String value representing alarm condition type. See method implementation notes for more examples")
|
||||
AlarmConditionSpecType getType();
|
||||
|
||||
}
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.thingsboard.server.common.data.id.DashboardId;
|
||||
import org.thingsboard.server.common.data.validation.NoXss;
|
||||
@ -23,15 +25,20 @@ import javax.validation.Valid;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class AlarmRule implements Serializable {
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(position = 1, value = "JSON object representing the alarm rule condition")
|
||||
private AlarmCondition condition;
|
||||
@ApiModelProperty(position = 2, value = "JSON object representing time interval during which the rule is active")
|
||||
private AlarmSchedule schedule;
|
||||
// Advanced
|
||||
@NoXss
|
||||
@ApiModelProperty(position = 3, value = "String value representing the additional details for an alarm rule")
|
||||
private String alarmDetails;
|
||||
@ApiModelProperty(position = 4, value = "JSON object with the dashboard Id representing the reference to alarm details dashboard used by mobile application")
|
||||
private DashboardId dashboardId;
|
||||
|
||||
}
|
||||
|
||||
@ -18,9 +18,12 @@ package org.thingsboard.server.common.data.device.profile;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
@ -32,6 +35,7 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = CustomTimeSchedule.class, name = "CUSTOM")})
|
||||
public interface AlarmSchedule extends Serializable {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "Alarm schedule type. See method implementation notes for more examples", example = "ANY_TIME")
|
||||
AlarmScheduleType getType();
|
||||
|
||||
}
|
||||
|
||||
@ -15,6 +15,8 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.thingsboard.server.common.data.alarm.AlarmSeverity;
|
||||
import org.thingsboard.server.common.data.validation.NoXss;
|
||||
@ -24,19 +26,29 @@ import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class DeviceProfileAlarm implements Serializable {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "String value representing the alarm rule id", example = "highTemperatureAlarmID")
|
||||
private String id;
|
||||
@NoXss
|
||||
@ApiModelProperty(position = 2, value = "String value representing type of the Alarm", example = "High Temperature Alarm")
|
||||
private String alarmType;
|
||||
|
||||
@Valid
|
||||
@ApiModelProperty(position = 3, value = "Complex JSON object representing create alarm rules. The unique create alarm rule can be created for each alarm severity type. " +
|
||||
"There can be 5 create alarm rules configured per a single alarm type. See method implementation notes and AlarmRule model for more details")
|
||||
private TreeMap<AlarmSeverity, AlarmRule> createRules;
|
||||
@Valid
|
||||
@ApiModelProperty(position = 4, value = "JSON object representing clear alarm rule")
|
||||
private AlarmRule clearRule;
|
||||
|
||||
// Hidden in advanced settings
|
||||
@ApiModelProperty(position = 5, value = "Propagation flag to specify if alarm should be propagated to parent entities of alarm originator", example = "true")
|
||||
private boolean propagate;
|
||||
@ApiModelProperty(position = 6, value = "JSON array of relation types that should be used for propagation. " +
|
||||
"By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation type to parent entities. " +
|
||||
"This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.")
|
||||
private List<String> propagateRelationTypes;
|
||||
}
|
||||
|
||||
@ -15,14 +15,16 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.thingsboard.server.common.data.DeviceProfileType;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
@ -32,7 +34,7 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = DefaultDeviceProfileConfiguration.class, name = "DEFAULT")})
|
||||
public interface DeviceProfileConfiguration extends Serializable {
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty(position = 1, value = "Device profile type", allowableValues = "DEFAULT")
|
||||
DeviceProfileType getType();
|
||||
|
||||
}
|
||||
|
||||
@ -15,20 +15,27 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.device.profile;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel
|
||||
@Data
|
||||
public class DeviceProfileData implements Serializable {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "JSON object of device profile configuration for device profile type")
|
||||
private DeviceProfileConfiguration configuration;
|
||||
@Valid
|
||||
@ApiModelProperty(position = 2, value = "JSON object of device profile transport configuration")
|
||||
private DeviceProfileTransportConfiguration transportConfiguration;
|
||||
@ApiModelProperty(position = 3, value = "JSON object of provisioning strategy type per device profile")
|
||||
private DeviceProfileProvisionConfiguration provisionConfiguration;
|
||||
@Valid
|
||||
@ApiModelProperty(position = 4, value = "JSON array of alarm rules configuration per device profile")
|
||||
private List<DeviceProfileAlarm> alarms;
|
||||
|
||||
}
|
||||
|
||||
@ -19,11 +19,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import org.thingsboard.server.common.data.DeviceProfileProvisionType;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@ApiModel
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
@ -35,9 +37,10 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration.class, name = "CHECK_PRE_PROVISIONED_DEVICES")})
|
||||
public interface DeviceProfileProvisionConfiguration extends Serializable {
|
||||
|
||||
@ApiModelProperty(position = 1, value = "String value representing the secret key used to verify provisioning of the device defined in the device profile", example = "bjrj9172va82hvwqtp5b")
|
||||
String getProvisionDeviceSecret();
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty(position = 2, value = "Device provisioning strategy for device profile", example = "ALLOW_CREATE_NEW_DEVICES")
|
||||
DeviceProfileProvisionType getType();
|
||||
|
||||
}
|
||||
|
||||
@ -15,12 +15,14 @@
|
||||
*/
|
||||
package org.thingsboard.server.common.data.query;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@ApiModel
|
||||
@JsonTypeInfo(
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
include = JsonTypeInfo.As.PROPERTY,
|
||||
@ -32,7 +34,7 @@ import java.io.Serializable;
|
||||
@JsonSubTypes.Type(value = ComplexFilterPredicate.class, name = "COMPLEX")})
|
||||
public interface KeyFilterPredicate extends Serializable {
|
||||
|
||||
@JsonIgnore
|
||||
@ApiModelProperty(position = 1, value = "String value representing filter predicate type. See method implementation notes for more examples", example = "BOOLEAN")
|
||||
FilterPredicateType getType();
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user