Skip to content

Repository files navigation

Highlight.Api

Codacy BadgeNuGet VersionNuGet DownloadsLicense: MIT

Introduction

A .NET 10 client library for the Highlight API, designed to interact with the Highlight performance testing and reporting features.

Installation

dotnet add package Highlight.Api

Documentation

Official API documentation: https://help.highlight.net/reporting/reporting-api

Breaking Changes in v2.0.12

Version 2.0.12 introduces a new request object pattern for all API methods. The old method signatures with individual parameters are now marked as [Obsolete] and will cause compile-time errors that include instructions on how to migrate. The migration to the new pattern is straightforward and improves code readability and maintainability.

Migration Guide

Before (deprecated):

// This will cause a compile-time errorvarresult=awaitclient.BearerSummary.GetAsync(lastNDays:7,outputAvailability:true,cancellationToken:token);

After (recommended):

varrequest=newBearerSummaryRequest{LastNDays=7,OutputAvailability=true};varresult=awaitclient.BearerSummary.GetAsync(request,token);

To migrate your code:

  1. Create a new request object (e.g., BearerSummaryRequest, PerformanceSummaryRequest)
  2. Set the properties on the request object instead of passing individual parameters
  3. Call the method with the request object and cancellation token

The obsolete methods are marked with [Obsolete("...", true)] which generates compile-time errors. Follow the compiler messages to identify which calls need to be updated.

Quick Start

usingHighlight.Api;usingHighlight.Api.Data;varclient=newHighlightClient(newHighlightClientOptions{ApiKey=Guid.Parse("your_api_key_here"),BaseAddress=newUri("https://reportingapi.highlighter.net")});// Using request objects (recommended)varrequest=newPerformanceSummaryRequest{LastNDays=7,IsBusinessHours=true};varresult=awaitclient.PerformanceTestSummary.GetPrecisionAsync(request,CancellationToken.None);

Available Endpoints

The client provides access to the following API endpoints:

PropertyDescription
BearerSummaryBearer circuit summary data (ADSL, SDSL, Dedicated Access)
BroadbandSummaryBroadband connection summary data
CellularSummaryCellular connection summary data
DeviceInventorySNMP device inventory data
FoldersFolder/location hierarchy
PerformanceTestSummaryPerformance test results (ICMP/TCP/UDP, Precision, MOS, HTTP Server)
SlaComplianceSummarySLA compliance summary data
SwitchPortCapacitySummarySwitch port capacity summary data
TunnelSummarySD-WAN VPN tunnel summary data
WatchNodesWatch node information
WirelessAccessPointsWireless access point summary data

Request Objects

All summary endpoints accept request objects that encapsulate query parameters:

Common Parameters (SummaryRequestBase)

PropertyTypeDescription
IsBusinessHoursbool?Filter by business hours (true) or 24-hour period (false)
LastNDaysint?Number of days to look back from today
FromDatestring?Start date for the time window
ToDatestring?End date for the time window
DateGranularitystring?"Day" or "Month"
FolderIdsList<int>?Filter by specific folder IDs

Endpoint-Specific Request Objects

Request ClassAdditional Properties
BearerSummaryRequestOutputAvailability, OutputLoad, OutputHealth
BroadbandSummaryRequest-
CellularSummaryRequest-
DeviceInventoryRequestFolderIds only
PerformanceSummaryRequestOutputHealth
SlaComplianceSummaryRequestOutputAvailability, OutputLoad, OutputHealth
SwitchPortCapacitySummaryRequest-
TunnelSummaryRequestOutputAvailability, OutputLoad, OutputHealth
WirelessAccessPointSummaryRequestOutputAvailability, OutputHealth
WatchNodesRequestFolderIds only

Examples

Get Bearer Summary with Health Data

varrequest=newBearerSummaryRequest{LastNDays=30,OutputAvailability=true,OutputLoad=true,OutputHealth=true};varbearers=awaitclient.BearerSummary.GetAsync(request,cancellationToken);

Get Performance Test Results

varrequest=newPerformanceSummaryRequest{LastNDays=7,DateGranularity="Day"};// Different test types availablevarprecision=awaitclient.PerformanceTestSummary.GetPrecisionAsync(request,cancellationToken);varicmpTcpUdp=awaitclient.PerformanceTestSummary.GetIcmpTcpUdpAsync(request,cancellationToken);varmos=awaitclient.PerformanceTestSummary.GetMosAsync(request,cancellationToken);varhttpServer=awaitclient.PerformanceTestSummary.GetHttpServerAsync(request,cancellationToken);

Get Folders and Watch Nodes

// Get all foldersvarfolders=awaitclient.Folders.GetAllAsync(cancellationToken);// Get watch nodes for specific foldersvarwatchRequest=newWatchNodesRequest{FolderIds=[1,2,3]};varwatchNodes=awaitclient.WatchNodes.GetAsync(watchRequest,cancellationToken);

Get Device Inventory

varrequest=newDeviceInventoryRequest();vardevices=awaitclient.DeviceInventory.GetAsync(request,cancellationToken);

Get SLA Compliance Summary

varrequest=newSlaComplianceSummaryRequest{LastNDays=30,OutputAvailability=true,OutputHealth=true};varcompliance=awaitclient.SlaComplianceSummary.GetAsync(request,cancellationToken);

License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright

Copyright © 2025 Panoramic Data Limited. All rights reserved.

About

Client library for Highlight

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages