.content(getErrorContent(ThingsboardErrorResponse.of("You don't have permission to perform this operation!",ThingsboardErrorCode.PERMISSION_DENIED,HttpStatus.FORBIDDEN))));
apiResponses.addApiResponse("429",newApiResponse().description("Too Many Requests")
.content(getErrorContent(ThingsboardErrorResponse.of("Too many requests for current tenant!",ThingsboardErrorCode.TOO_MANY_REQUESTS,HttpStatus.TOO_MANY_REQUESTS))));
AdminSettingsadminSettings=checkNotNull(adminSettingsService.findAdminSettingsByKey(TenantId.SYS_TENANT_ID,key),"No Administration settings found for key: "+key);
@ -142,7 +145,7 @@ public class AdminController extends BaseController {
notes="Updates the JWT Settings object that contains JWT token policy, etc. The tokenSigningKey field is a Base64 encoded string."+SYSTEM_AUTHORITY_PARAGRAPH,
@ -69,12 +70,12 @@ public class AlarmCommentController extends BaseController {
"\n\n To create new Alarm comment entity it is enough to specify 'comment' json element with 'text' node, for example: {\"comment\": { \"text\": \"my comment\"}}. "+
"\n\n If comment type is not specified the default value 'OTHER' will be saved. If 'alarmId' or 'userId' specified in body it will be ignored."+
@PathVariable(ALARM_ID)StringstrAlarmId,@ApiParam(value="A JSON value representing the comment.")@RequestBodyAlarmCommentalarmComment)throwsThingsboardException{
@PathVariable(ALARM_ID)StringstrAlarmId,@Parameter(description="A JSON value representing the comment.")@RequestBodyAlarmCommentalarmComment)throwsThingsboardException{
notes="Deletes the Alarm comment. Referencing non-existing Alarm comment Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
notes="Deletes the Alarm comment. Referencing non-existing Alarm comment Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -91,11 +92,8 @@ public class AlarmController extends BaseController {
privatestaticfinalStringALARM_QUERY_SEARCH_STATUS_DESCRIPTION="A string value representing one of the AlarmSearchStatus enumeration value";
privatestaticfinalStringALARM_QUERY_SEARCH_STATUS_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing one of the AlarmSearchStatus enumeration value";
privatestaticfinalStringALARM_QUERY_SEVERITY_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing one of the AlarmSeverity enumeration value";
privatestaticfinalStringALARM_QUERY_TYPE_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing alarm types";
privatestaticfinalStringALARM_QUERY_ASSIGNEE_DESCRIPTION="A string value representing the assignee user id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'";
@ -106,11 +104,11 @@ public class AlarmController extends BaseController {
"filled in the AlarmInfo object field: 'originatorName' or will returns as null.";
@ApiOperation(value="Get Alarm (getAlarmById)",
notes="Fetch the Alarm object based on the provided Alarm Id. "+ALARM_SECURITY_CHECK,produces=MediaType.APPLICATION_JSON_VALUE)
notes="Fetch the Alarm object based on the provided Alarm Id. "+ALARM_SECURITY_CHECK,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
publicAlarmsaveAlarm(@ApiParam(value="A JSON value representing the alarm.")@RequestBodyAlarmalarm)throwsThingsboardException{
publicAlarmsaveAlarm(@Parameter(description="A JSON value representing the alarm.")@RequestBodyAlarmalarm)throwsThingsboardException{
alarm.setTenantId(getTenantId());
checkNotNull(alarm.getOriginator());
checkEntity(alarm.getId(),alarm,Resource.ALARM);
@ -157,11 +155,11 @@ public class AlarmController extends BaseController {
}
@ApiOperation(value="Delete Alarm (deleteAlarm)",
notes="Deletes the Alarm. Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
notes="Deletes the Alarm. Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
"Once acknowledged, the 'ack_ts' field will be set to current timestamp and special rule chain event 'ALARM_ACK' will be generated. "+
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -186,11 +184,11 @@ public class AlarmController extends BaseController {
@ApiOperation(value="Clear Alarm (clearAlarm)",
notes="Clear the Alarm. "+
"Once cleared, the 'clear_ts' field will be set to current timestamp and special rule chain event 'ALARM_CLEAR' will be generated. "+
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -202,13 +200,13 @@ public class AlarmController extends BaseController {
notes="Assign the Alarm. "+
"Once assigned, the 'assign_ts' field will be set to current timestamp and special rule chain event 'ALARM_ASSIGNED' "+
"(or ALARM_REASSIGNED in case of assigning already assigned alarm) will be generated. "+
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
"Once unassigned, the 'assign_ts' field will be set to current timestamp and special rule chain event 'ALARM_UNASSIGNED' will be generated. "+
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"Referencing non-existing Alarm Id will cause an error."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -238,36 +236,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."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH
notes="Returns a set of unique alarm types based on alarms that are either owned by the tenant or assigned to the customer which user is performing the request.",produces=MediaType.APPLICATION_JSON_VALUE)
notes="Returns a set of unique alarm types based on alarms that are either owned by the tenant or assigned to the customer which user is performing the request.",
@ -102,11 +103,11 @@ public class AssetController extends BaseController {
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."+TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH
@ -157,12 +158,12 @@ public class AssetController extends BaseController {
}
@ApiOperation(value="Assign asset to customer (assignAssetToCustomer)",
notes="Creates assignment of the asset to customer. Customer will be able to query asset afterwards."+TENANT_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
notes="Creates assignment of the asset to customer. Customer will be able to query asset afterwards."+TENANT_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -173,11 +174,11 @@ public class AssetController extends BaseController {
}
@ApiOperation(value="Unassign asset from customer (unassignAssetFromCustomer)",
notes="Clears assignment of the asset to customer. Customer will not be able to query asset afterwards."+TENANT_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
notes="Clears assignment of the asset to customer. Customer will not be able to query asset afterwards."+TENANT_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -191,11 +192,11 @@ public class AssetController extends BaseController {
@ApiOperation(value="Make asset publicly available (assignAssetToPublicCustomer)",
notes="Asset will be available for non-authorized (not logged-in) users. "+
"This is useful to create dashboards that you plan to share/embed on a publicly available website. "+
"However, users that are logged-in and belong to different tenant will not be able to access the asset."+TENANT_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"However, users that are logged-in and belong to different tenant will not be able to access the asset."+TENANT_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
notes="Requested asset must be owned by tenant that the user belongs to. "+
"Asset name is an unique property of asset. So it can be used to identify the asset."+TENANT_AUTHORITY_PARAGRAPH,produces=MediaType.APPLICATION_JSON_VALUE)
"Asset name is an unique property of asset. So it can be used to identify the asset."+TENANT_AUTHORITY_PARAGRAPH,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -348,12 +349,12 @@ 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="Requested assets must be owned by tenant or assigned to customer which user is performing the request. ",responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -509,7 +510,7 @@ public class AssetController extends BaseController {
}
@ApiOperation(value="Import the bulk of assets (processAssetsBulkImport)",
notes="There's an ability to import the bulk of assets using the only .csv file.",produces=MediaType.APPLICATION_JSON_VALUE)
notes="There's an ability to import the bulk of assets using the only .csv file.",responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
@ -95,34 +95,8 @@ public class ControllerConstants {
protectedstaticfinalStringEVENT_TEXT_SEARCH_DESCRIPTION="The value is not used in searching.";
protectedstaticfinalStringAUDIT_LOG_TEXT_SEARCH_DESCRIPTION="The case insensitive 'substring' filter based on one of the next properties: entityType, entityName, userName, actionType, actionStatus.";
protectedstaticfinalStringSORT_PROPERTY_DESCRIPTION="Property of entity to sort by";
protectedstaticfinalStringDEVICE_INFO_DESCRIPTION="Device Info is an extension of the default Device object that contains information about the assigned customer name and device profile name. ";
protectedstaticfinalStringASSET_INFO_DESCRIPTION="Asset Info is an extension of the default Asset object that contains information about the assigned customer name. ";
protectedstaticfinalStringALARM_INFO_DESCRIPTION="Alarm Info is an extension of the default Alarm object that also contains name of the alarm originator.";
@ -132,28 +106,21 @@ public class ControllerConstants {
protectedstaticfinalStringASSET_PROFILE_INFO_DESCRIPTION="Asset Profile Info is a lightweight object that includes main information about Asset Profile. ";
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. ";
protectedstaticfinalStringRESOURCE_INFO_DESCRIPTION="Resource Info is a lightweight object that includes main information about the Resource excluding the heavyweight data. ";
protectedstaticfinalStringRESOURCE_DESCRIPTION="Resource is a heavyweight object that includes main information about the Resource and also data. ";
protectedstaticfinalStringRESOURCE_INCLUDE_SYSTEM_IMAGES_DESCRIPTION="Use 'true' to include system images. Disabled by default. Ignored for requests by users with system administrator authority.";
protectedstaticfinalStringRESOURCE_TEXT_SEARCH_DESCRIPTION="The case insensitive 'substring' filter based on the resource title.";
protectedstaticfinalStringRESOURCE_TYPE="A string value representing the resource type.";
protectedstaticfinalStringLWM2M_OBJECT_DESCRIPTION="LwM2M Object is a object that includes information about the LwM2M model which can be used in transport configuration for the LwM2M device profile. ";
protectedstaticfinalStringDEVICE_NAME_DESCRIPTION="A string value representing the Device name.";
protectedstaticfinalStringASSET_NAME_DESCRIPTION="A string value representing the Asset name.";
@ -1632,8 +1599,6 @@ public class ControllerConstants {
protectedstaticfinalStringATTRIBUTES_SCOPE_DESCRIPTION="A string value representing the attributes scope. For example, 'SERVER_SCOPE'.";
protectedstaticfinalStringATTRIBUTES_KEYS_DESCRIPTION="A string value representing the comma-separated list of attributes keys. For example, 'active,inactivityAlarmTime'.";
protectedstaticfinalStringATTRIBUTES_JSON_REQUEST_DESCRIPTION="A string value representing the json object. For example, '{\"key\":\"value\"}'. See API call description for more details.";
protectedstaticfinalStringTELEMETRY_KEYS_BASE_DESCRIPTION="A string value representing the comma-separated list of telemetry keys.";
@ -250,16 +248,15 @@ 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. "+TENANT_AUTHORITY_PARAGRAPH,
@ -271,15 +268,14 @@ 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."+TENANT_AUTHORITY_PARAGRAPH,
@ -291,15 +287,14 @@ 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."+TENANT_AUTHORITY_PARAGRAPH,
@ -331,12 +326,12 @@ 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."+TENANT_AUTHORITY_PARAGRAPH,
@ -438,7 +433,7 @@ public class DashboardController extends BaseController {
"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. "
@ -471,7 +466,7 @@ public class DashboardController extends BaseController {
"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. "+
@ -502,7 +497,7 @@ 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. "+
@ -93,7 +108,7 @@ public class DeviceConnectivityController extends BaseController {
@ApiOperation(value="Download server certificate using file path defined in device.connectivity properties (downloadServerCertificate)",notes="Download server certificate.")
@ -136,12 +137,12 @@ public class DeviceProfileController extends BaseController {
"The call is used for auto-complete in the UI forms. "+
"The implementation limits the number of devices that participate in search to 100 as a trade of between accurate results and time-consuming queries. "+
@ -160,12 +161,12 @@ public class DeviceProfileController extends BaseController {
"The call is used for auto-complete in the UI forms. "+
"The implementation limits the number of devices that participate in search to 100 as a trade of between accurate results and time-consuming queries. "+
@ -152,11 +153,11 @@ public class EdgeController extends BaseController {
"\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. "+
notes="Returns a set of unique edge types based on edges that are either owned by the tenant or assigned to the customer which user is performing the request."
@ApiParam(value="A string value representing external entity id. This is `externalId` property of an entity, or otherwise if not set - simply id of this entity.")
@Parameter(description="A string value representing external entity id. This is `externalId` property of an entity, or otherwise if not set - simply id of this entity.")
@ -294,11 +296,11 @@ public class EntityRelationController extends BaseController {
@ApiOperation(value="Find related entity infos (findInfoByQuery)",
notes="Returns all entity infos that are related to the specific entity. "+
"The entity id, relation type, entity types, depth of the search, and other query parameters defined using complex 'EntityRelationsQuery' object. "+
"See 'Model' tab of the Parameters for more info. "+RELATION_INFO_DESCRIPTION,produces=MediaType.APPLICATION_JSON_VALUE)
"See 'Model' tab of the Parameters for more info. "+RELATION_INFO_DESCRIPTION,responses=@ApiResponse(content=@Content(mediaType=MediaType.APPLICATION_JSON_VALUE)))
notes="Get the Lwm2m Bootstrap SecurityInfo object (of the current server) based on the provided isBootstrapServer parameter. If isBootstrapServer == true, get the parameters of the current Bootstrap Server. If isBootstrapServer == false, get the parameters of the current Lwm2m Server. Used for client settings when starting the client in Bootstrap mode. "+
publicList<NotificationTarget>getNotificationTargetsByIds(@ApiParam(value="Comma-separated list of uuids representing targets ids",required=true)
publicList<NotificationTarget>getNotificationTargetsByIds(@Parameter(description="Comma-separated list of uuids representing targets ids",required=true)
@RequestParam("ids")UUID[]ids,
@AuthenticationPrincipalSecurityUseruser){
// PE: generic permission
@ -170,15 +170,15 @@ public class NotificationTargetController extends BaseController {
publicvoiddeleteClientRegistrationTemplate(@ApiParam(value="String representation of client registration template id to delete",example="139b1f81-2f5d-11ec-9dbe-9b627e1a88f4")
publicvoiddeleteClientRegistrationTemplate(@Parameter(description="String representation of client registration template id to delete",example="139b1f81-2f5d-11ec-9dbe-9b627e1a88f4")
@ApiResponse(code=200,message="Persistent RPC request was saved to the database or lightweight RPC request was sent to the device."),
@ApiResponse(code=400,message="Invalid structure of the request."),
@ApiResponse(code=401,message="User is not authorized to send the RPC request. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=504,message="Timeout to process the RPC call. Most likely, device is offline."),
@ApiResponse(responseCode="200",description="Persistent RPC request was saved to the database or lightweight RPC request was sent to the device."),
@ApiResponse(responseCode="400",description="Invalid structure of the request."),
@ApiResponse(responseCode="401",description="User is not authorized to send the RPC request. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="504",description="Timeout to process the RPC call. Most likely, device is offline."),
@ApiResponse(code=200,message="Persistent RPC request was saved to the database or lightweight RPC response received."),
@ApiResponse(code=400,message="Invalid structure of the request."),
@ApiResponse(code=401,message="User is not authorized to send the RPC request. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=504,message="Timeout to process the RPC call. Most likely, device is offline."),
@ApiResponse(responseCode="200",description="Persistent RPC request was saved to the database or lightweight RPC response received."),
@ApiResponse(responseCode="400",description="Invalid structure of the request."),
@ApiResponse(responseCode="401",description="User is not authorized to send the RPC request. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="504",description="Timeout to process the RPC call. Most likely, device is offline."),
@ -93,7 +92,7 @@ public class TbResourceController extends BaseController {
@ApiOperation(value="Download Resource (downloadResource)",notes="Download Resource based on the provided Resource Id."+SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH)
@Parameter(description="A long value representing the start timestamp of the time range in milliseconds, UTC.")
@RequestParam(name="startTs")LongstartTs,
@ApiParam(value="A long value representing the end timestamp of the time range in milliseconds, UTC.")
@Parameter(description="A long value representing the end timestamp of the time range in milliseconds, UTC.")
@RequestParam(name="endTs")LongendTs,
@ApiParam(value="A string value representing the type fo the interval.",allowableValues="MILLISECONDS, WEEK, WEEK_ISO, MONTH, QUARTER")
@Parameter(description="A string value representing the type fo the interval.",schema=@Schema(allowableValues={"MILLISECONDS","WEEK","WEEK_ISO","MONTH","QUARTER"}))
@ApiParam(value="A string value representing the timezone that will be used to calculate exact timestamps for 'WEEK', 'WEEK_ISO', 'MONTH' and 'QUARTER' interval types.")
@Parameter(description="A string value representing the timezone that will be used to calculate exact timestamps for 'WEEK', 'WEEK_ISO', 'MONTH' and 'QUARTER' interval types.")
@ApiResponse(code=401,message="User is not authorized to save device attributes for selected device. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=500,message="The exception was thrown during processing the request. "+
@ApiResponse(responseCode="401",description="User is not authorized to save device attributes for selected device. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="500",description="The exception was thrown during processing the request. "+
"Platform creates an audit log event about device attributes updates with action type 'ATTRIBUTES_UPDATED' that includes an error stacktrace."),
@ -477,31 +477,31 @@ public class TelemetryController extends BaseController {
" Use 'rewriteLatestIfDeleted' to rewrite latest value (stored in separate table for performance) if the value's timestamp matches the time-range and 'deleteLatest' param is true."+
" The replacement value will be fetched from the 'time-series' table, and its timestamp will be the most recent one before the defined time-range. "+
@ApiResponse(code=200,message="Timeseries for the selected keys in the request was removed. "+
@ApiResponse(responseCode="200",description="Timeseries for the selected keys in the request was removed. "+
"Platform creates an audit log event about entity timeseries removal with action type 'TIMESERIES_DELETED'."),
@ApiResponse(code=400,message="Platform returns a bad request in case if keys list is empty or start and end timestamp values is empty when deleteAllDataForKeys is set to false."),
@ApiResponse(code=401,message="User is not authorized to delete entity timeseries for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=500,message="The exception was thrown during processing the request. "+
@ApiResponse(responseCode="400",description="Platform returns a bad request in case if keys list is empty or start and end timestamp values is empty when deleteAllDataForKeys is set to false."),
@ApiResponse(responseCode="401",description="User is not authorized to delete entity timeseries for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="500",description="The exception was thrown during processing the request. "+
"Platform creates an audit log event about entity timeseries removal with action type 'TIMESERIES_DELETED' that includes an error stacktrace."),
@ApiParam(value="If the parameter is set to true, the latest telemetry can be removed, otherwise, in case that parameter is set to false the latest value will not removed.")
@Parameter(description="If the parameter is set to true, the latest telemetry can be removed, otherwise, in case that parameter is set to false the latest value will not removed.")
@ApiParam(value="If the parameter is set to true, the latest telemetry will be rewritten in case that current latest value was removed, otherwise, in case that parameter is set to false the new latest value will not set.")
@Parameter(description="If the parameter is set to true, the latest telemetry will be rewritten in case that current latest value was removed, otherwise, in case that parameter is set to false the new latest value will not set.")
@ApiResponse(code=200,message="Device attributes was removed for the selected keys in the request. "+
@ApiResponse(responseCode="200",description="Device attributes was removed for the selected keys in the request. "+
"Platform creates an audit log event about device attributes removal with action type 'ATTRIBUTES_DELETED'."),
@ApiResponse(code=400,message="Platform returns a bad request in case if keys or scope are not specified."),
@ApiResponse(code=401,message="User is not authorized to delete device attributes for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=500,message="The exception was thrown during processing the request. "+
@ApiResponse(responseCode="400",description="Platform returns a bad request in case if keys or scope are not specified."),
@ApiResponse(responseCode="401",description="User is not authorized to delete device attributes for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="500",description="The exception was thrown during processing the request. "+
"Platform creates an audit log event about device attributes removal with action type 'ATTRIBUTES_DELETED' that includes an error stacktrace."),
@ApiResponse(code=200,message="Entity attributes was removed for the selected keys in the request. "+
@ApiResponse(responseCode="200",description="Entity attributes was removed for the selected keys in the request. "+
"Platform creates an audit log event about entity attributes removal with action type 'ATTRIBUTES_DELETED'."),
@ApiResponse(code=400,message="Platform returns a bad request in case if keys or scope are not specified."),
@ApiResponse(code=401,message="User is not authorized to delete entity attributes for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(code=500,message="The exception was thrown during processing the request. "+
@ApiResponse(responseCode="400",description="Platform returns a bad request in case if keys or scope are not specified."),
@ApiResponse(responseCode="401",description="User is not authorized to delete entity attributes for selected entity. Most likely, User belongs to different Customer or Tenant."),
@ApiResponse(responseCode="500",description="The exception was thrown during processing the request. "+
"Platform creates an audit log event about entity attributes removal with action type 'ATTRIBUTES_DELETED' that includes an error stacktrace."),
publicTwoFaAccountConfiggenerateTwoFaAccountConfig(@ApiParam(value="2FA provider type to generate new account config for",defaultValue="TOTP",required=true)
publicTwoFaAccountConfiggenerateTwoFaAccountConfig(@Parameter(description="2FA provider type to generate new account config for",schema=@Schema(defaultValue="TOTP",required=true))
publicvoidputUserSettings(@ApiParam(value="Settings type, case insensitive, one of: \"general\", \"quick_links\", \"doc_links\" or \"dashboards\".")
publicvoidputUserSettings(@Parameter(description="Settings type, case insensitive, one of: \"general\", \"quick_links\", \"doc_links\" or \"dashboards\".")
publicJsonNodegetUserSettings(@ApiParam(value="Settings type, case insensitive, one of: \"general\", \"quick_links\", \"doc_links\" or \"dashboards\".")
publicJsonNodegetUserSettings(@Parameter(description="Settings type, case insensitive, one of: \"general\", \"quick_links\", \"doc_links\" or \"dashboards\".")
@ -83,11 +83,9 @@ public class WidgetTypeController extends AutoCommitController {
privatestaticfinalStringWIDGET_TYPE_INFO_DESCRIPTION="Widget Type Info is a lightweight object that represents Widget Type but does not contain the heavyweight widget descriptor JSON";
privatestaticfinalStringTENANT_ONLY_PARAM_DESCRIPTION="Optional boolean parameter indicating whether only tenant widget types should be returned";
privatestaticfinalStringFULL_SEARCH_PARAM_DESCRIPTION="Optional boolean parameter indicating whether search widgets by description not only by name";
privatestaticfinalStringDEPRECATED_FILTER_PARAM_DESCRIPTION="Optional string parameter indicating whether to include deprecated widgets";
privatestaticfinalStringUPDATE_EXISTING_BY_FQN_PARAM_DESCRIPTION="Optional boolean parameter indicating whether to update existing widget type by FQN if present instead of creating new one";
privatestaticfinalStringWIDGET_TYPE_ARRAY_DESCRIPTION="A list of string values separated by comma ',' representing one of the widget type value";