{"files":{"SKILL.md":"---\nname: hardware-sentry-truesight-presentation-server-rest-api\ndescription: \"Hardware Sentry TrueSight Presentation Server REST API skill. Use when working with Hardware Sentry TrueSight Presentation Server REST for hardware. Covers 23 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Hardware Sentry TrueSight Presentation Server REST API\nAPI version: 11.1.00\n\n## Auth\nApiKey Cookie in header\n\n## Base URL\n/tsws/10.0/api/\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /hardware/applications -- verify access\n3. POST /hardware/actions/{deviceId}/collect-now -- create first collect-now\n\n## Endpoints\n\n23 endpoints across 1 groups. See references/api-spec.lap for full details.\n\n### hardware\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /hardware/actions/{deviceId}/collect-now | Triggers a new collect on a specific device. |\n| POST | /hardware/actions/{deviceId}/rediscover | Triggers a new discovery on a specific device. |\n| POST | /hardware/actions/{deviceId}/reinitialize | Sends a 'Reinitialize KM' command. |\n| POST | /hardware/actions/{deviceId}/remove | Removes a specific instance from the monitoring environment. |\n| POST | /hardware/actions/{deviceId}/reset-error-count | Resets the Error Count parameter. |\n| GET | /hardware/applications | Gets summarized information about all monitored applications. |\n| GET | /hardware/applications/{applicationId} | Gets detailed information for a specific application. |\n| GET | /hardware/device-monitors/{deviceId} | Gets the Monitors for a specific device. |\n| GET | /hardware/devices | Gets summarized information about all monitored devices. |\n| GET | /hardware/devices-summary | Gets overall information for all devices. |\n| GET | /hardware/devices/{deviceId} | Gets detailed information about a specific device. |\n| GET | /hardware/devices/{deviceId}/agent | Gets detailed information about an Agent. |\n| GET | /hardware/devices/{deviceId}/agent-devices | Gets a list of all the devices monitored by an Agent. |\n| GET | /hardware/devices/{deviceId}/parameter-history | Gets data history for a parameter of a specific device over a given period. |\n| GET | /hardware/energy-usage/{deviceId} | Gets the energy usage for a specific device and a given period. |\n| GET | /hardware/groups | Gets all group summaries. |\n| GET | /hardware/groups/{groupId} | Gets detailed information about a specific group. |\n| PUT | /hardware/groups/{groupId} | Updates the values of the energy footprint parameter for a specific group. |\n| GET | /hardware/heating-margin-devices | Gets the heating margin values for each monitored device, when available. |\n| GET | /hardware/history | Gets historical data for a specific group, application or service. |\n| GET | /hardware/search-devices | Searches devices by name, model, manufacturer or serial number. |\n| GET | /hardware/services | Gets summarized information about all monitored services. |\n| GET | /hardware/services/{serviceId} | Gets detailed information about a specific service. |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a collect-now?\" -> POST /hardware/actions/{deviceId}/collect-now\n- \"Create a rediscover?\" -> POST /hardware/actions/{deviceId}/rediscover\n- \"Create a reinitialize?\" -> POST /hardware/actions/{deviceId}/reinitialize\n- \"Create a remove?\" -> POST /hardware/actions/{deviceId}/remove\n- \"Create a reset-error-count?\" -> POST /hardware/actions/{deviceId}/reset-error-count\n- \"List all applications?\" -> GET /hardware/applications\n- \"Get application details?\" -> GET /hardware/applications/{applicationId}\n- \"Get device-monitor details?\" -> GET /hardware/device-monitors/{deviceId}\n- \"List all devices?\" -> GET /hardware/devices\n- \"List all devices-summary?\" -> GET /hardware/devices-summary\n- \"Get device details?\" -> GET /hardware/devices/{deviceId}\n- \"List all agent?\" -> GET /hardware/devices/{deviceId}/agent\n- \"List all agent-devices?\" -> GET /hardware/devices/{deviceId}/agent-devices\n- \"List all parameter-history?\" -> GET /hardware/devices/{deviceId}/parameter-history\n- \"Get energy-usage details?\" -> GET /hardware/energy-usage/{deviceId}\n- \"List all groups?\" -> GET /hardware/groups\n- \"Get group details?\" -> GET /hardware/groups/{groupId}\n- \"Update a group?\" -> PUT /hardware/groups/{groupId}\n- \"List all heating-margin-devices?\" -> GET /hardware/heating-margin-devices\n- \"List all history?\" -> GET /hardware/history\n- \"List all search-devices?\" -> GET /hardware/search-devices\n- \"List all services?\" -> GET /hardware/services\n- \"Get service details?\" -> GET /hardware/services/{serviceId}\n- \"How to authenticate?\" -> See Auth section\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- List endpoints may support pagination; check for limit, offset, or cursor params\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get hardware-sentry-truesight-presentation-server-rest-api -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search hardware-sentry-truesight-presentation-server-rest-api\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Hardware Sentry TrueSight Presentation Server REST API\n@base /tsws/10.0/api/\n@version 11.1.00\n@auth ApiKey Cookie in header\n@endpoints 23\n@hint download_for_search\n@toc hardware(23)\n\n@endpoint POST /hardware/actions/{deviceId}/collect-now\n@desc Triggers a new collect on a specific device.\n@required {deviceId: int(int32) # The ID of the device., monitorClass: str # The Monitor Class of the device.}\n@returns(200) Successful operation\n@errors {403: Forbidden operation, 500: Unexpected error}\n\n@endpoint POST /hardware/actions/{deviceId}/rediscover\n@desc Triggers a new discovery on a specific device.\n@required {deviceId: int(int32) # The ID of the device.}\n@returns(200) Successful operation\n@errors {403: Forbidden operation, 500: Unexpected error}\n\n@endpoint POST /hardware/actions/{deviceId}/reinitialize\n@desc Sends a 'Reinitialize KM' command.\n@required {deviceId: int(int32) # The ID of the device.}\n@optional {resetDiscoveryAndPollingIntervals: int(int32)(0/1) # When set to <em>1</em>, removes all user-defined frequencies for discovery and polling processes to their default values (respectively 1 hour and 2 minutes)., resetAlertAfterNTimes: int(int32)(0/1) # When set to <em>1</em>, resets the number of times thresholds can be breached before triggering an alert to their default values (1 time) for numeric, discrete, connector status and present parameters., resetAlertActions: int(int32)(0/1) # When set to <em>1</em>, removes all manually set Alert Actions and reverts to basic default actions i.e. trigger a PATROL event and annotate a parameter graph., resetOtherAlertSettings: int(int32)(0/1) # When set to <em>1</em>, reverts any manually performed configuration changes to the default Hardware Sentry values., resetDebugMode: int(int32)(0/1) # When set to <em>1</em>, deactivates the debug mode when it was manually enabled., resetRemovedPausedObjectList: int(int32)(0/1) # When set to <em>1</em>, reactivates the monitoring of all paused or removed objects., resetReportSettings: int(int32)(0/1) # When set to <em>1</em>, clears the report schedule., resetJavaSettings: int(int32)(0/1) # When set to <em>1</em>, removes the custom Java settings (path and credentials). The KM will try to automatically find a suitable JRE., resetThresholds: int(int32)(0/1) # When set to <em>1</em>, resets all thresholds.}\n@returns(200) Successful operation\n@errors {403: Forbidden operation, 500: Unexpected error}\n\n@endpoint POST /hardware/actions/{deviceId}/remove\n@desc Removes a specific instance from the monitoring environment.\n@required {deviceId: int(int32) # The ID of the device., monitorClass: str # The Monitor Class of the device., monitorSid: str # The Monitor SID of the device.}\n@returns(200) Successful operation\n@errors {403: Forbidden operation, 500: Unexpected error}\n\n@endpoint POST /hardware/actions/{deviceId}/reset-error-count\n@desc Resets the Error Count parameter.\n@required {deviceId: int(int32) # The ID of the device., monitorClass: str # The Monitor Class of the device., monitorSid: str # The Monitor SID of the device.}\n@returns(200) Successful operation\n@errors {403: Forbidden operation, 500: Unexpected error}\n\n@endpoint GET /hardware/applications\n@desc Gets summarized information about all monitored applications.\n@optional {page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page., direction: str(asc/desc)=asc # The sorting order (case insensitive)., sort: str=name # The column to sort by (case insensitive).}\n@returns(200) Successful operation\n@errors {404: No applications found, 500: Unexpected error}\n\n@endpoint GET /hardware/applications/{applicationId}\n@desc Gets detailed information for a specific application.\n@required {applicationId: str # The ID of the application.}\n@returns(200) Successful operation\n@errors {404: No applications found, 500: Unexpected error}\n\n@endpoint GET /hardware/device-monitors/{deviceId}\n@desc Gets the Monitors for a specific device.\n@required {deviceId: int(int32) # The ID of the device.}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/devices\n@desc Gets summarized information about all monitored devices.\n@optional {page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page., direction: str(asc/desc)=asc # The sorting order (case insensitive)., sort: str=name # The column to sort by (case insensitive)., groupId: str # The ID of the group., applicationId: str # The ID of the application., serviceId: str # The ID of the service.}\n@returns(200) Successful operation\n@errors {404: No devices found, 500: Unexpected error}\n\n@endpoint GET /hardware/devices-summary\n@desc Gets overall information for all devices.\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/devices/{deviceId}\n@desc Gets detailed information about a specific device.\n@required {deviceId: int(int32) # The ID of the device.}\n@returns(200) Successful operation\n@errors {404: No devices found, 500: Unexpected error}\n\n@endpoint GET /hardware/devices/{deviceId}/agent\n@desc Gets detailed information about an Agent.\n@required {deviceId: int(int32) # The ID of the device.}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/devices/{deviceId}/agent-devices\n@desc Gets a list of all the devices monitored by an Agent.\n@required {deviceId: int(int32) # The ID of the device.}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/devices/{deviceId}/parameter-history\n@desc Gets data history for a parameter of a specific device over a given period.\n@required {deviceId: int(int32) # The ID of the device., parameterName: str # The name of the parameter., monitorType: str # The unique name of the Monitor type.}\n@optional {from: int(int64) # Beginning of the period (Epoch time, in seconds)., to: int(int64) # End of the period (Epoch time, in seconds)., monitorSid: str # The Monitor SID (to filter the list of Monitors).}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/energy-usage/{deviceId}\n@desc Gets the energy usage for a specific device and a given period.\n@required {deviceId: int(int32) # The ID of the device.}\n@optional {rollPeriod: str(ONE_DAY/ONE_WEEK/ONE_MONTH/SIX_MONTHS/ONE_YEAR)=ONE_DAY # The period for which you wish to retrieve energy usage data., basis: str(MONTHLY/DAILY/HOURLY)=HOURLY # Subdivision of the period for which you wish to retrieve energy usage data.}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/groups\n@desc Gets all group summaries.\n@optional {page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page., direction: str(asc/desc)=asc # The sorting order (case insensitive)., sort: str=name # The column to sort by (case insensitive).}\n@returns(200) Successful operation\n@errors {404: No groups found, 500: Unexpected error}\n\n@endpoint GET /hardware/groups/{groupId}\n@desc Gets detailed information about a specific group.\n@required {groupId: str # The ID of the group.}\n@returns(200) Successful operation\n@errors {404: No groups found, 500: Unexpected error}\n\n@endpoint PUT /hardware/groups/{groupId}\n@desc Updates the values of the energy footprint parameter for a specific group.\n@required {groupId: str # The ID of the group.}\n@optional {energyCost: num(double) # Updates the electricity rate (unit: $/kWh)., co2Emission: num(double) # Updates the CO<sub>2</sub> emission (unit: kg/kWh)., groupNameFilter: str # Updates the regular expression used to filter the groups for which the power consumption should be reported.}\n@returns(200) Successful operation\n@errors {404: No settings or groups found, 500: Unexpected error}\n\n@endpoint GET /hardware/heating-margin-devices\n@desc Gets the heating margin values for each monitored device, when available.\n@optional {covered: bool=True # If set to <em>true</em>, only gets devices whose heating margin information is available.<br>Otherwise, gets any other devices., page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page., direction: str(asc/desc)=asc # The sorting order (case insensitive)., sort: str=name # The column to sort by (case insensitive)., groupId: str # The ID of the group., applicationId: str # The ID of the application., serviceId: str # The ID of the service.}\n@returns(200) Successful operation\n@errors {404: No devices found, 500: Unexpected error}\n\n@endpoint GET /hardware/history\n@desc Gets historical data for a specific group, application or service.\n@optional {groupId: str # The ID of the group., applicationId: str # The ID of the application., serviceId: str # The ID of the service., from: int(int64) # Beginning of the period (Epoch time, in seconds)., to: int(int64) # End of the period (Epoch time, in seconds).}\n@returns(200) Successful operation\n@errors {500: Unexpected error}\n\n@endpoint GET /hardware/search-devices\n@desc Searches devices by name, model, manufacturer or serial number.\n@required {searchTerms: str # Space-separated search criteria.}\n@optional {groupId: str # The ID of the group., applicationId: str # The ID of the application., serviceId: str # The ID of the service., page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page.}\n@returns(200) Successful operation\n@errors {404: No devices found, 500: Unexpected error}\n\n@endpoint GET /hardware/services\n@desc Gets summarized information about all monitored services.\n@optional {page: str(int32)=0 # The page number to retrieve (first page is 0)., limit: int(int32)=100 # The maximum number of entries per page., direction: str(asc/desc)=asc # The sorting order (case insensitive)., sort: str=name # The column to sort by (case insensitive).}\n@returns(200) Successful operation\n@errors {404: No services found, 500: Unexpected error}\n\n@endpoint GET /hardware/services/{serviceId}\n@desc Gets detailed information about a specific service.\n@required {serviceId: str # The ID of the service.}\n@returns(200) Successful operation\n@errors {404: No services found, 500: Unexpected error}\n\n@end\n"}}