privatestaticfinalStringALARM_SECURITY_CHECK="If the user has the authority of 'Tenant Administrator', the server checks that the originator of alarm is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the originator of alarm belongs to the customer. ";
privatestaticfinalStringALARM_QUERY_SEARCH_STATUS_DESCRIPTION="A string value representing one of the AlarmSearchStatus enumeration value";
privatestaticfinalStringALARM_QUERY_TEXT_SEARCH_DESCRIPTION="The case insensitive 'startsWith' filter based on of next alarm fields: type, severity or status";
privatestaticfinalStringALARM_QUERY_START_TIME_DESCRIPTION="The start timestamp(milliseconds) of the search time range over the alarm object field: 'createdTime'.";
privatestaticfinalStringALARM_QUERY_END_TIME_DESCRIPTION="The end timestamp(milliseconds) of the search time range over the alarm object field: 'createdTime'.";
privatestaticfinalStringALARM_QUERY_FETCH_ORIGINATOR_DESCRIPTION="A boolean value to specify if the alarm originator name will be "+
"filled in the AlarmInfo object field: 'originatorName' or will returns as null.";
@ApiOperation(value="Create or update Alarm (saveAlarm)",
notes="Creates or Updates the Alarm. "+
"When creating alarm, platform generates Alarm Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address). "+
"The newly created Alarm id will be present in the response. Specify existing Alarm id to update the alarm. "+
"Referencing non-existing Alarm Id will cause 'Not Found' error. "+
"\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. "
@ -169,21 +210,36 @@ public class AlarmController extends BaseController {
}
}
@ApiOperation(value="Get Alarms (getAlarms)",
notes="Returns a page of alarms for the selected entity. Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error. "+
notes="Search the alarms by originator ('entityType' and entityId') and optional 'status' or 'searchStatus' filters and returns the highest AlarmSeverity(CRITICAL, MAJOR, MINOR, WARNING or INDETERMINATE). "+
"Specifying both parameters 'searchStatus' and 'status' at the same time will cause an error."
@ -75,10 +77,15 @@ public class AssetController extends BaseController {
publicstaticfinalStringASSET_ID="assetId";
@ApiOperation(value="Get Asset (getAssetById)",
notes="Fetch the Asset object based on the provided Asset Id. "+
"If the user has the authority of 'Tenant Administrator', the server checks that the asset is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the asset is assigned to the same customer.",produces=MediaType.APPLICATION_JSON_VALUE)
@ -88,10 +95,15 @@ public class AssetController extends BaseController {
}
}
@ApiOperation(value="Get Asset Info (getAssetInfoById)",
notes="Fetch the Asset Info object based on the provided Asset Id. "+
"If the user has the authority of 'Tenant Administrator', the server checks that the asset is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the asset is assigned to the same customer. "+ASSET_INFO_DESCRIPTION,produces=MediaType.APPLICATION_JSON_VALUE)
@ -101,10 +113,15 @@ public class AssetController extends BaseController {
}
}
@ApiOperation(value="Create Or Update Asset (saveAsset)",
notes="Creates or Updates the Asset. When creating asset, platform generates Asset Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address) "+
"The newly created Asset id will be present in the response. "+
"Specify existing Asset id to update the asset. "+
"Referencing non-existing Asset Id will cause 'Not Found' error.",produces=MediaType.APPLICATION_JSON_VALUE)
@ -374,10 +443,13 @@ public class AssetController extends BaseController {
}
}
@ApiOperation(value="Get Assets By Ids (getAssetsByIds)",
notes="Requested assets must be owned by tenant or assigned to customer which user is performing the request. ",produces=MediaType.APPLICATION_JSON_VALUE)
notes="Returns a set of unique asset types based on assets that are either owned by the tenant or assigned to the customer which user is performing the request.",produces=MediaType.APPLICATION_JSON_VALUE)
@ -438,11 +516,15 @@ public class AssetController extends BaseController {
}
}
@ApiOperation(value="Assign asset to edge (assignAssetToEdge)",
notes="Creates assignment of an existing asset to an instance of The Edge. "+
"The Edge is a software product for edge computing. "+
"It allows bringing data analysis and management to the edge, while seamlessly synchronizing with the platform server (cloud). ",produces=MediaType.APPLICATION_JSON_VALUE)
@ -85,6 +96,8 @@ public class AuthController extends BaseController {
}
}
@ApiOperation(value="Logout (logout)",
notes="Special API call to record the 'logout' of the user to the Audit Logs. Since platform uses [JWT](https://jwt.io/), the actual logout is the procedure of clearing the [JWT](https://jwt.io/) token on the client side. ")
@ -92,13 +105,17 @@ public class AuthController extends BaseController {
logLogoutAction(request);
}
@ApiOperation(value="Change password for current User (changePassword)",
notes="Change the password for the User which credentials are used to perform this REST API call. Be aware that previously generated [JWT](https://jwt.io/) tokens will be still valid until they expire.")
@ -135,8 +154,13 @@ public class AuthController extends BaseController {
}
}
@ApiOperation(value="Check Activate User Token (checkActivateToken)",
notes="Checks the activation token and forwards user to 'Create Password' page. "+
"If token is valid, returns '303 See Other' (redirect) response code with the correct address of 'Create Password' page and same 'activateToken' specified in the URL parameters. "+
notes="Checks the password reset token and forwards user to 'Reset Password' page. "+
"If token is valid, returns '303 See Other' (redirect) response code with the correct address of 'Reset Password' page and same 'resetToken' specified in the URL parameters. "+
publicstaticfinalStringPAGE_DATA_PARAMETERS="You can specify parameters to filter the results. "+
"The result is wrapped with PageData object that allows you to iterate over result set using pagination. "+
"See the 'Model' tab of the Response Class for more details. ";
publicstaticfinalStringDASHBOARD_ID_PARAM_DESCRIPTION="A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringDEVICE_ID_PARAM_DESCRIPTION="A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringDEVICE_PROFILE_ID_DESCRIPTION="A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringTENANT_ID_PARAM_DESCRIPTION="A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringEDGE_ID_PARAM_DESCRIPTION="A string value representing the edge id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringCUSTOMER_ID_PARAM_DESCRIPTION="A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringASSET_ID_PARAM_DESCRIPTION="A string value representing the asset id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringALARM_ID_PARAM_DESCRIPTION="A string value representing the alarm id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringENTITY_ID_PARAM_DESCRIPTION="A string value representing the entity id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
publicstaticfinalStringENTITY_TYPE_PARAM_DESCRIPTION="A string value representing the entity type. For example, 'DEVICE'";
publicstaticfinalStringRULE_CHAIN_ID_PARAM_DESCRIPTION="A string value representing the rule chain id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
protectedfinalStringPAGE_SIZE_DESCRIPTION="Maximum amount of entities in a one page";
protectedfinalStringPAGE_NUMBER_DESCRIPTION="Sequence number of page starting from 0";
protectedfinalStringDEVICE_TYPE_DESCRIPTION="Device type as the name of the device profile";
protectedfinalStringDEVICE_INFO_DESCRIPTION="Device Info is an extension of the default Device object that contains information about the assigned customer name and device profile name. ";
protectedfinalStringASSET_INFO_DESCRIPTION="Asset Info is an extension of the default Asset object that contains information about the assigned customer name. ";
protectedfinalStringALARM_INFO_DESCRIPTION="Alarm Info is an extension of the default Alarm object that also contains name of the alarm originator.";
protectedfinalStringRELATION_INFO_DESCRIPTION="Relation Info is an extension of the default Relation object that contains information about the 'from' and 'to' entity names. ";
protectedfinalStringEDGE_TYPE_DESCRIPTION="A string value representing the edge type. For example, 'default'";
protectedfinalStringEDGE_TEXT_SEARCH_DESCRIPTION="The case insensitive 'startsWith' filter based on the edge name.";
protectedfinalStringDEVICE_NAME_DESCRIPTION="A string value representing the Device name.";
protectedfinalStringASSET_NAME_DESCRIPTION="A string value representing the Asset name.";
protectedfinalStringEVENT_START_TIME_DESCRIPTION="Timestamp. Events with creation time before it won't be queried.";
protectedfinalStringEVENT_END_TIME_DESCRIPTION="Timestamp. Events with creation time after it won't be queried.";
protectedstaticfinalStringRELATION_TYPE_PARAM_DESCRIPTION="A string value representing relation type between entities. For example, 'Contains', 'Manages'. It can be any string value.";
protectedstaticfinalStringRELATION_TYPE_GROUP_PARAM_DESCRIPTION="A string value representing relation type group. For example, 'COMMON'";
publicstaticfinalStringCUSTOMER_SECURITY_CHECK="If the user has the authority of 'Tenant Administrator', the server checks that the customer is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the user belongs to the customer.";
@ -120,9 +119,10 @@ public class CustomerController extends BaseController {
}
@ApiOperation(value="Create or update Customer (saveCustomer)",
notes="Creates or Updates the Customer. Platform generates random Customer Id during device creation. "+
"The Customer Id will be present in the response. Specify the Customer Id when you would like to update the Customer. "+
"Referencing non-existing Customer Id will cause an error.")
notes="Creates or Updates the Customer. When creating customer, platform generates Customer Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address) "+
"The newly created Customer Id will be present in the response. "+
"Specify existing Customer Id to update the Customer. "+
"Referencing non-existing Customer Id will cause 'Not Found' error.")
publicstaticfinalStringDASHBOARD_INFO_DEFINITION="The Dashboard Info object contains lightweight information about the dashboard (e.g. title, image, assigned customers) but does not contain the heavyweight configuration JSON.";
publicstaticfinalStringDASHBOARD_DEFINITION="The Dashboard object is a heavyweight object that contains information about the dashboard (e.g. title, image, assigned customers) and also configuration JSON (e.g. layouts, widgets, entity aliases).";
publicstaticfinalStringHIDDEN_FOR_MOBILE="Exclude dashboards that are hidden for mobile";
@Value("${dashboard.max_datapoints_limit}")
privatelongmaxDatapointsLimit;
@ApiOperation(value="Get server time (getServerTime)",
notes="Get the server time (milliseconds since January 1, 1970 UTC). "+
"Used to adjust view of the dashboards according to the difference between browser and server time.")
@ -113,10 +138,20 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Create Or Update Dashboard (saveDashboard)",
notes="Create or update the Dashboard. When creating dashboard, platform generates Dashboard Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)."+
"The newly created Dashboard id will be present in the response. "+
"Specify existing Dashboard id to update the dashboard. "+
"Referencing non-existing dashboard Id will cause 'Not Found' error. "+
"Only users with 'TENANT_ADMIN') authority may create the dashboards.",
@ -235,11 +288,20 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Update the Dashboard Customers (updateDashboardCustomers)",
notes="Updates the list of Customers that this Dashboard is assigned to. Removes previous assignments to customers that are not in the provided list. "+
"Returns the Dashboard object. Only users with 'TENANT_ADMIN') authority may assign the dashboards to customers.",
@ -301,11 +363,19 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Adds the Dashboard Customers (addDashboardCustomers)",
notes="Adds the list of Customers to the existing list of assignments for the Dashboard. Keeps previous assignments to customers that are not in the provided list. "+
"Returns the Dashboard object. Only users with 'TENANT_ADMIN') authority may assign the dashboards to customers.",
@ -345,11 +415,19 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Remove the Dashboard Customers (removeDashboardCustomers)",
notes="Removes the list of Customers from the existing list of assignments for the Dashboard. Keeps other assignments to customers that are not in the provided list. "+
"Returns the Dashboard object. Only users with 'TENANT_ADMIN') authority may assign the dashboards to customers.",
@ -415,10 +503,16 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Unassign the Dashboard from Public Customer (unassignDashboardFromPublicCustomer)",
notes="Unassigns the dashboard from a special, auto-generated 'Public' Customer. Once unassigned, unauthenticated users may no longer browse the dashboard. "+
"Returns the Dashboard object. Only users with 'TENANT_ADMIN') authority may assign the dashboards to customers.",
@ -512,6 +637,13 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Get Home Dashboard (getHomeDashboard)",
notes="Returns the home dashboard object that is configured as 'homeDashboardId' parameter in the 'additionalInfo' of the User. "+
"If 'homeDashboardId' parameter is not set on the User level and the User has authority 'CUSTOMER_USER', check the same parameter for the corresponding Customer. "+
"If 'homeDashboardId' parameter is not set on the User and Customer levels then checks the same parameter for the Tenant that owns the user. "
+DASHBOARD_DEFINITION+" "+
"Only users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority should use this method.",
@ -543,6 +675,12 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Get Home Dashboard Info (getHomeDashboardInfo)",
notes="Returns the home dashboard info object that is configured as 'homeDashboardId' parameter in the 'additionalInfo' of the User. "+
"If 'homeDashboardId' parameter is not set on the User level and the User has authority 'CUSTOMER_USER', check the same parameter for the corresponding Customer. "+
"If 'homeDashboardId' parameter is not set on the User and Customer levels then checks the same parameter for the Tenant that owns the user. "+
"Only users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority should use this method.",
@ -574,6 +712,10 @@ public class DashboardController extends BaseController {
}
}
@ApiOperation(value="Get Tenant Home Dashboard Info (getTenantHomeDashboardInfo)",
notes="Returns the home dashboard info object that is configured as 'homeDashboardId' parameter in the 'additionalInfo' of the corresponding tenant. "+
"Only users with 'TENANT_ADMIN' authority may use this method.",
@ -137,9 +137,12 @@ public class DeviceController extends BaseController {
}
@ApiOperation(value="Create Or Update Device (saveDevice)",
notes="Creates or Updates the Device. Platform generates random device Id and credentials (access token) during device creation. "+
"The device id will be present in the response. "+
"Specify the device id when you would like to update the device. Referencing non-existing device Id will cause an error.")
notes="Create or update the Device. When creating device, platform generates Device Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address). "+
"Device credentials are also generated if not provided in the 'accessToken' request parameter. "+
"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.")
privatestaticfinalStringSECURITY_CHECKS_ENTITIES_DESCRIPTION="\n\nIf the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. "+
"If the user has the authority of 'Tenant Administrator', the server checks that 'from' and 'to' entities are owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the 'from' and 'to' entities are assigned to the same customer.";
privatestaticfinalStringSECURITY_CHECKS_ENTITY_DESCRIPTION="\n\nIf the user has the authority of 'System Administrator', the server checks that 'from' and 'to' entities are owned by the sysadmin. "+
"If the user has the authority of 'Tenant Administrator', the server checks that the entity is owned by the same tenant. "+
"If the user has the authority of 'Customer User', the server checks that the entity is assigned to the same customer.";
privatestaticfinalStringATTRIBUTES_SCOPE_DESCRIPTION="A string value representing the attributes scope. For example, 'SERVER_SCOPE'.";
privatestaticfinalStringATTRIBUTES_KEYS_DESCRIPTION="A string value representing the comma-separated list of attributes keys. For example, 'active,inactivityAlarmTime'.";
privatestaticfinalStringATTRIBUTES_JSON_REQUEST_DESCRIPTION="A string value representing the json object. For example, '{\"key\":\"value\"}'";
privatestaticfinalStringTELEMETRY_KEYS_DESCRIPTION="A string value representing the comma-separated list of timeseries keys. If keys are not selected, the result will return all latest timeseries. For example, 'temp,humidity'.";
privatestaticfinalStringTELEMETRY_SCOPE_DESCRIPTION="Value is not used in the API call implementation";
privatestaticfinalStringTELEMETRY_JSON_REQUEST_DESCRIPTION="A string value representing the json object. For example, '{\"key\":\"value\"}' or '{\"ts\":1527863043000,\"values\":{\"key1\":\"value1\",\"key2\":\"value2\"}}'";
privatestaticfinalStringSTRICT_DATA_TYPES_DESCRIPTION="A boolean value to specify if values of selected timeseries keys will representing a string (by default) or use strict data type.";
@Autowired
privateTimeseriesServicetsService;
@ -133,62 +145,81 @@ public class TelemetryController extends BaseController {
}
}
@ApiOperation(value="Get all attribute keys (getAttributeKeys)",
notes="Returns key names for the selected entity.")
@ApiParam(value="If the parameter is set to true, the latest telemetry will be rewritten if the current latest value was removed, otherwise, the new latest value will not set.")
log.trace("[{}][{}][{}][{}] Received stale subscription update: {}",sessionId,cmdId,subscriptionUpdate.getSubscriptionId(),keyType,subscriptionUpdate);
@ -55,41 +56,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
@Test
publicvoidtestPushTelemetry()throwsException{
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null);
@ -121,14 +88,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
" }\n"+
"}";
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null,schemaStr,null,null,null,null,null,DeviceProfileProvisionType.DISABLED);
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null);
@ -237,14 +190,7 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
" }\n"+
"}";
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null,schemaStr,null,null,null,null,null,DeviceProfileProvisionType.DISABLED);
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null);
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null);
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,POST_DATA_TELEMETRY_TOPIC,null);
super.processBeforeTest("Test Post Telemetry device proto payload","Test Post Telemetry gateway proto payload",TransportPayloadType.PROTOBUF,null,null,null,null,null,null,null,null,DeviceProfileProvisionType.DISABLED);
@ -310,6 +276,48 @@ public abstract class AbstractMqttTimeseriesProtoIntegrationTest extends Abstrac
@ -86,6 +108,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)
publicbooleanisMobileHide(){
returnmobileHide;
}
@ -94,6 +117,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)
publicIntegergetMobileOrder(){
returnmobileOrder;
}
@ -152,6 +176,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=9,value="Title of the Customer that owns the asset.",readOnly=true)
privateStringcustomerTitle;
@ApiModelProperty(position=10,value="Indicates special 'Public' Customer that is auto-generated to use the assets on public dashboards.",readOnly=true)
@ApiModelProperty(position=1,value="Array of the entities.",readOnly=true)
@ApiModelProperty(position=1,value="Array of the entities",readOnly=true)
publicList<T>getData(){
returndata;
}
@ApiModelProperty(position=2,value="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria.",readOnly=true)
@ApiModelProperty(position=2,value="Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria",readOnly=true)
publicintgetTotalPages(){
returntotalPages;
}
@ApiModelProperty(position=3,value="Total number of elements in all available pages.",readOnly=true)
@ApiModelProperty(position=3,value="Total number of elements in all available pages",readOnly=true)
publiclonggetTotalElements(){
returntotalElements;
}
@ApiModelProperty(position=4,value="'false' value indicates the end of the result set.",readOnly=true)
@ApiModelProperty(position=4,value="'false' value indicates the end of the result set",readOnly=true)
@ApiModelProperty(position=3,value="Type of the Rule Node",readOnly=true)
@Getter@SetterprivateComponentTypetype;
@ApiModelProperty(position=4,value="Scope of the Rule Node. Always set to 'TENANT', since no rule chains on the 'SYSTEM' level yet.",readOnly=true,allowableValues="TENANT",example="TENANT")
@Getter@SetterprivateComponentScopescope;
@ApiModelProperty(position=5,value="Name of the Rule Node. Taken from the @RuleNode annotation.",readOnly=true,example="Custom Rule Node")
@Getter@SetterprivateStringname;
@ApiModelProperty(position=6,value="Full name of the Java class that implements the Rule Engine Node interface.",readOnly=true,example="com.mycompany.CustomRuleNode")
@Getter@SetterprivateStringclazz;
@ApiModelProperty(position=7,value="Complex JSON object that represents the Rule Node configuration.",readOnly=true)