@ -126,7 +126,9 @@ public class AlarmController extends BaseController {
"\n\nPlatform also deduplicate the alarms based on the entity id of originator and alarm 'type'. "+
"For example, if the user or system component create the alarm with the type 'HighTemperature' for device 'Device A' the new active alarm is created. "+
"If the user tries to create 'HighTemperature' alarm for the same device again, the previous alarm will be updated (the 'end_ts' will be set to current timestamp). "+
"If the user clears the alarm (see 'Clear Alarm(clearAlarm)'), than new alarm with the same type and same device may be created. "+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH
"If the user clears the alarm (see 'Clear Alarm(clearAlarm)'), than new alarm with the same type and same device may be created. "+
"Remove 'id', 'tenantId' and optionally 'customerId' from the request body example (below) to create new Alarm entity. "+
@ -112,6 +112,10 @@ public class ControllerConstants {
protectedstaticfinalStringDEVICE_PROFILE_INFO_DESCRIPTION="Device Profile Info is a lightweight object that includes main information about Device Profile excluding the heavyweight configuration object. ";
protectedstaticfinalStringQUEUE_SERVICE_TYPE_DESCRIPTION="Service type (implemented only for the TB-RULE-ENGINE)";
protectedstaticfinalStringQUEUE_ID_PARAM_DESCRIPTION="A string value representing the queue id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
protectedstaticfinalStringQUEUE_NAME_PARAM_DESCRIPTION="A string value representing the queue id. For example, 'Main'";
protectedstaticfinalStringOTA_PACKAGE_INFO_DESCRIPTION="OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight data. ";
protectedstaticfinalStringOTA_PACKAGE_DESCRIPTION="OTA Package is a heavyweight object that includes main information about the OTA Package and also data. ";
@ -158,8 +158,9 @@ public class DeviceController extends BaseController {
"The newly created device id will be present in the response. "+
"Specify existing Device id to update the device. "+
"Referencing non-existing device Id will cause 'Not Found' error."+
"\n\nDevice name is unique in the scope of tenant. Use unique identifiers like MAC or IMEI for the device names and non-unique 'label' field for user-friendly visualization purposes."
+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH)
"\n\nDevice name is unique in the scope of tenant. Use unique identifiers like MAC or IMEI for the device names and non-unique 'label' field for user-friendly visualization purposes."+
"Remove 'id', 'tenantId' and optionally 'customerId' from the request body example (below) to create new Device entity. "+
@ -141,8 +141,9 @@ public class EdgeController extends BaseController {
"The newly created edge id will be present in the response. "+
"Specify existing Edge id to update the edge. "+
"Referencing non-existing Edge Id will cause 'Not Found' error."+
"\n\nEdge name is unique in the scope of tenant. Use unique identifiers like MAC or IMEI for the edge names and non-unique 'label' field for user-friendly visualization purposes."
+TENANT_AUTHORITY_PARAGRAPH,
"\n\nEdge name is unique in the scope of tenant. Use unique identifiers like MAC or IMEI for the edge names and non-unique 'label' field for user-friendly visualization purposes."+
"Remove 'id', 'tenantId' and optionally 'customerId' from the request body example (below) to create new Edge entity. "+
@ -89,8 +89,9 @@ public class WidgetsBundleController extends BaseController {
"Specify existing Widget Bundle id to update the Widget Bundle. "+
"Referencing non-existing Widget Bundle Id will cause 'Not Found' error."+
"\n\nWidget Bundle alias is unique in the scope of tenant. "+
"Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create bundle request is sent by user with 'SYS_ADMIN' authority."
+SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
"Special Tenant Id '13814000-1dd2-11b2-8080-808080808080' is automatically used if the create bundle request is sent by user with 'SYS_ADMIN' authority."+
"Remove 'id', 'tenantId' from the request body example (below) to create new Widgets Bundle entity."+
log.trace("[{}] {} to process message: {}, Last Rule Node: {}",TenantId.fromUUID(newUUID(tmp.getTenantIdMSB(),tmp.getTenantIdLSB())),prefix,tmpMsg,ruleNodeInfo);
@ -461,8 +461,8 @@ public class DefaultTbRuleEngineConsumerService extends AbstractConsumerService<
@ -125,7 +125,7 @@ public class TbRuleEngineProcessingStrategyFactory {
}
log.debug("[{}] Going to reprocess {} messages",queueName,toReprocess.size());
if(log.isTraceEnabled()){
toReprocess.forEach((id,msg)->log.trace("Going to reprocess [{}]: {}",id,TbMsg.fromBytes(result.getQueueId(),msg.getValue().getTbMsg().toByteArray(),TbMsgCallback.EMPTY)));
toReprocess.forEach((id,msg)->log.trace("Going to reprocess [{}]: {}",id,TbMsg.fromBytes(result.getQueueName(),msg.getValue().getTbMsg().toByteArray(),TbMsgCallback.EMPTY)));
}
if(pauseBetweenRetries>0){
try{
@ -164,10 +164,10 @@ public class TbRuleEngineProcessingStrategyFactory {
log.debug("[{}] Reprocessing skipped for {} failed and {} timeout messages",queueName,result.getFailedMap().size(),result.getPendingMap().size());
@ -32,17 +32,17 @@ public class AttributeData implements Comparable<AttributeData>{
this.value=value;
}
@ApiModelProperty(position=1,value="Timestamp last updated attribute, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=1,value="Timestamp last updated attribute, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -30,12 +30,12 @@ public class TsData implements Comparable<TsData>{
this.value=value;
}
@ApiModelProperty(position=1,value="Timestamp last updated timeseries, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=1,value="Timestamp last updated timeseries, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publiclonggetTs(){
returnts;
}
@ApiModelProperty(position=2,value="Object representing value of timeseries key",example="20",readOnly=true)
@ApiModelProperty(position=2,value="Object representing value of timeseries key",example="20",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -58,13 +58,13 @@ public class AdminSettings extends BaseData<AdminSettingsId> implements HasTenan
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the settings creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the settings creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publiclonggetCreatedTime(){
returnsuper.getCreatedTime();
}
@ApiModelProperty(position=3,value="JSON object with Tenant Id.",readOnly=true)
@ApiModelProperty(position=3,value="JSON object with Tenant Id.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -83,7 +83,7 @@ public class Customer extends ContactBased<CustomerId> implements HasTenantId, E
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the customer creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the customer creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publiclonggetCreatedTime(){
returnsuper.getCreatedTime();
@ -159,7 +159,7 @@ public class Customer extends ContactBased<CustomerId> implements HasTenantId, E
@Override
@JsonProperty(access=Access.READ_ONLY)
@ApiModelProperty(position=4,value="Name of the customer. Read-only, duplicated from title for backward compatibility",example="Company A",readOnly=true)
@ApiModelProperty(position=4,value="Name of the customer. Read-only, duplicated from title for backward compatibility",example="Company A",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -71,13 +71,13 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the dashboard creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the dashboard creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publiclonggetCreatedTime(){
returnsuper.getCreatedTime();
}
@ApiModelProperty(position=3,value="JSON object with Tenant Id. Tenant Id of the dashboard can't be changed.",readOnly=true)
@ApiModelProperty(position=3,value="JSON object with Tenant Id. Tenant Id of the dashboard can't be changed.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publicTenantIdgetTenantId(){
returntenantId;
}
@ -95,7 +95,7 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
this.title=title;
}
@ApiModelProperty(position=8,value="Thumbnail picture for rendering of the dashboards in a grid view on mobile devices.",readOnly=true)
@ApiModelProperty(position=8,value="Thumbnail picture for rendering of the dashboards in a grid view on mobile devices.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publicStringgetImage(){
returnimage;
}
@ -104,7 +104,7 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
this.image=image;
}
@ApiModelProperty(position=5,value="List of assigned customers with their info.",readOnly=true)
@ApiModelProperty(position=5,value="List of assigned customers with their info.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -113,7 +113,7 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
this.assignedCustomers=assignedCustomers;
}
@ApiModelProperty(position=6,value="Hide dashboard from mobile devices. Useful if the dashboard is not designed for small screens.",readOnly=true)
@ApiModelProperty(position=6,value="Hide dashboard from mobile devices. Useful if the dashboard is not designed for small screens.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publicbooleanisMobileHide(){
returnmobileHide;
}
@ -122,7 +122,7 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
this.mobileHide=mobileHide;
}
@ApiModelProperty(position=7,value="Order on mobile devices. Useful to adjust sorting of the dashboards for mobile applications",readOnly=true)
@ApiModelProperty(position=7,value="Order on mobile devices. Useful to adjust sorting of the dashboards for mobile applications",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publicIntegergetMobileOrder(){
returnmobileOrder;
}
@ -180,7 +180,7 @@ public class DashboardInfo extends SearchTextBased<DashboardId> implements HasNa
}
}
@ApiModelProperty(position=4,value="Same as title of the dashboard. Read-only field. Update the 'title' to change the 'name' of the dashboard.",readOnly=true)
@ApiModelProperty(position=4,value="Same as title of the dashboard. Read-only field. Update the 'title' to change the 'name' of the dashboard.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -112,13 +112,13 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the device creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the device creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publiclonggetCreatedTime(){
returnsuper.getCreatedTime();
}
@ApiModelProperty(position=3,value="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.",readOnly=true)
@ApiModelProperty(position=3,value="JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
publicTenantIdgetTenantId(){
returntenantId;
}
@ -127,7 +127,7 @@ public class Device extends SearchTextBasedWithAdditionalInfo<DeviceId> implemen
this.tenantId=tenantId;
}
@ApiModelProperty(position=4,value="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.",readOnly=true)
@ApiModelProperty(position=4,value="JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ApiModelProperty(position=13,value="Title of the Customer that owns the device.",readOnly=true)
@ApiModelProperty(position=13,value="Title of the Customer that owns the device.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
privateStringcustomerTitle;
@ApiModelProperty(position=14,value="Indicates special 'Public' Customer that is auto-generated to use the devices on public dashboards.",readOnly=true)
@ApiModelProperty(position=14,value="Indicates special 'Public' Customer that is auto-generated to use the devices on public dashboards.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
privatebooleancustomerIsPublic;
@ApiModelProperty(position=15,value="Name of the corresponding Device Profile.",readOnly=true)
@ApiModelProperty(position=15,value="Name of the corresponding Device Profile.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ApiModelProperty(position=3,value="JSON object with Tenant Id that owns the profile.",readOnly=true)
@ApiModelProperty(position=3,value="JSON object with Tenant Id that owns the profile.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
privateTenantIdtenantId;
@NoXss
@Length(fieldName="name")
@ -74,12 +74,11 @@ public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements H
privateRuleChainIddefaultRuleChainId;
@ApiModelProperty(position=6,value="Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.")
privateDashboardIddefaultDashboardId;
@NoXss
@ApiModelProperty(position=8,value="Reference to the rule engine queue. "+
@ -130,7 +129,7 @@ public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements H
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the profile creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the profile creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publiclonggetCreatedTime(){
returnsuper.getCreatedTime();
@ -174,13 +173,4 @@ public class DeviceProfile extends SearchTextBased<DeviceProfileId> implements H
@ -87,7 +87,7 @@ public class EntityView extends SearchTextBasedWithAdditionalInfo<EntityViewId>
returngetName()/*What the ...*/;
}
@ApiModelProperty(position=4,value="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.",readOnly=true)
@ApiModelProperty(position=4,value="JSON object with Customer Id. Use 'assignEntityViewToCustomer' to change the Customer Id.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publicCustomerIdgetCustomerId(){
returncustomerId;
@ -98,7 +98,7 @@ public class EntityView extends SearchTextBasedWithAdditionalInfo<EntityViewId>
returnname;
}
@ApiModelProperty(position=3,value="JSON object with Tenant Id.",readOnly=true)
@ApiModelProperty(position=3,value="JSON object with Tenant Id.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@Override
publicTenantIdgetTenantId(){
returntenantId;
@ -113,7 +113,7 @@ public class EntityView extends SearchTextBasedWithAdditionalInfo<EntityViewId>
returnsuper.getId();
}
@ApiModelProperty(position=2,value="Timestamp of the Entity View creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=2,value="Timestamp of the Entity View creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ApiModelProperty(position=12,value="Title of the Customer that owns the entity view.",readOnly=true)
@ApiModelProperty(position=12,value="Title of the Customer that owns the entity view.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
privateStringcustomerTitle;
@ApiModelProperty(position=13,value="Indicates special 'Public' Customer that is auto-generated to use the entity view on public dashboards.",readOnly=true)
@ApiModelProperty(position=13,value="Indicates special 'Public' Customer that is auto-generated to use the entity view on public dashboards.",accessMode=ApiModelProperty.AccessMode.READ_ONLY)
@ -53,7 +53,7 @@ public class Event extends BaseData<EventId> {
super(event);
}
@ApiModelProperty(position=6,value="Timestamp of the event creation, in milliseconds",example="1609459200000",readOnly=true)
@ApiModelProperty(position=6,value="Timestamp of the event creation, in milliseconds",example="1609459200000",accessMode=ApiModelProperty.AccessMode.READ_ONLY)