package org.wfc.omada.api.monitor;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.monitor.model.BatchEditTabs;
import org.wfc.omada.api.monitor.model.CreateTabOpenApiVo;
import org.wfc.omada.api.monitor.model.OperationResponseApChannelStats;
import org.wfc.omada.api.monitor.model.OperationResponseApInterferences;
import org.wfc.omada.api.monitor.model.OperationResponseGetDashboardOverview;
import org.wfc.omada.api.monitor.model.OperationResponseListActiveDevice;
import org.wfc.omada.api.monitor.model.OperationResponseListCpuUsage;
import org.wfc.omada.api.monitor.model.OperationResponseListDashboardVpnStats;
import org.wfc.omada.api.monitor.model.OperationResponseListIpsecVpnStats;
import org.wfc.omada.api.monitor.model.OperationResponseListIspLoad;
import org.wfc.omada.api.monitor.model.OperationResponseListListTabs;
import org.wfc.omada.api.monitor.model.OperationResponseListMemUsage;
import org.wfc.omada.api.monitor.model.OperationResponseListPoeUsage;
import org.wfc.omada.api.monitor.model.OperationResponseRetryDropRate;
import org.wfc.omada.api.monitor.model.OperationResponseSwitchSummary;
import org.wfc.omada.api.monitor.model.OperationResponseTrafficActivities;
import org.wfc.omada.api.monitor.model.OperationResponseTrafficDistribution;
import org.wfc.omada.api.monitor.model.OperationResponseWifiSummary;
import org.wfc.omada.api.monitor.model.OperationResponseWithoutResult;
import org.wfc.omada.api.monitor.model.UpdateTabOpenApiVo;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:38:02.841+08:00[Asia/Shanghai]")

@Validated
@Api(value = "OmadaDashboard", description = "the OmadaDashboard API")
@FeignClient(name="OmadaDashboardApi", url = "${omada.omada-url}", configuration = FeignConfig.class)
public interface OmadaDashboardApi {

    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/dashboard/multi-tabs/config : Batch set tab config
     * Batch set tab configurations, add or delete tabs.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.&lt;br/&gt;-34701  -  This tab does not exist in the dashboard.&lt;br/&gt;-34702  -  This tab name already exists.&lt;br/&gt;-34704  -  Non-overall tabs do not allow editing system cards.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param batchEditTabs  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch set tab config", nickname = "batchConfigTab", notes = "Batch set tab configurations, add or delete tabs.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.<br/>-34701  -  This tab does not exist in the dashboard.<br/>-34702  -  This tab name already exists.<br/>-34704  -  Non-overall tabs do not allow editing system cards.", response = OperationResponseWithoutResult.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/multi-tabs/config",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> batchConfigTab(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchEditTabs batchEditTabs);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/dashboard/tabs : Create new tab
     * Create tab.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.&lt;br/&gt;-34702  -  This tab name already exists.&lt;br/&gt;-34703  -  The number of tabs has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createTabOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new tab", nickname = "createTab", notes = "Create tab.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.<br/>-34702  -  This tab name already exists.<br/>-34703  -  The number of tabs has reached the limit.", response = OperationResponseWithoutResult.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/tabs",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createTab(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateTabOpenApiVo createTabOpenApiVo);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/most-active-eaps : Get the most active eap list
     * Obtain the top 5 APs with the highest device traffic within the time range (in Bytes)..&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the most active eap list", nickname = "getActiveAps", notes = "Obtain the top 5 APs with the highest device traffic within the time range (in Bytes)..<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListActiveDevice.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListActiveDevice.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/most-active-eaps",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListActiveDevice> getActiveAps(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/most-active-switches : Get most active switch list
     * Obtain the top 5 switches with the highest device traffic within the time range (in Bytes)&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get most active switch list", nickname = "getActiveSwitches", notes = "Obtain the top 5 switches with the highest device traffic within the time range (in Bytes)<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListActiveDevice.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListActiveDevice.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/most-active-switches",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListActiveDevice> getActiveSwitches(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/channels : Get channel distribution and usage
     * Get channel distribution and usage.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get channel distribution and usage", nickname = "getChannels", notes = "Get channel distribution and usage.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseApChannelStats.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseApChannelStats.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/channels",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseApChannelStats> getChannels(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/lpset-tunnel-stats : Get grid dashboard lpsec tunnel statistic list
     * Obtain the status, IP address, and other information of the established IPsec VPN connection&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get grid dashboard lpsec tunnel statistic list", nickname = "getGridDashboardIpsecTunnelStats", notes = "Obtain the status, IP address, and other information of the established IPsec VPN connection<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListIpsecVpnStats.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListIpsecVpnStats.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/lpset-tunnel-stats",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListIpsecVpnStats> getGridDashboardIpsecTunnelStats(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/open-vpn-tunnel-stats : Get grid dashboard open vpn tunnel statistic list
     * Obtain the status, traffic, and other information of the established open VPN connection&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param type type: 0:Server, 1:Client (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get grid dashboard open vpn tunnel statistic list", nickname = "getGridDashboardOpenVpnTunnelStats", notes = "Obtain the status, traffic, and other information of the established open VPN connection<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListDashboardVpnStats.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListDashboardVpnStats.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/open-vpn-tunnel-stats",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListDashboardVpnStats> getGridDashboardOpenVpnTunnelStats(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "type: 0:Server, 1:Client", required = true) @Valid @RequestParam(value = "type", required = true) Integer type);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/vpn-tunnel-stats : Get grid dashboard tunnel statistic list
     * Get the status, IP address, and other information of the established dashboard tunnel statistic VPN connection&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param type Type should be a value as follows: 0:Server,1:Client (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get grid dashboard tunnel statistic list", nickname = "getGridDashboardTunnelStats", notes = "Get the status, IP address, and other information of the established dashboard tunnel statistic VPN connection<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListDashboardVpnStats.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListDashboardVpnStats.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/vpn-tunnel-stats",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListDashboardVpnStats> getGridDashboardTunnelStats(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Type should be a value as follows: 0:Server,1:Client", required = true) @Valid @RequestParam(value = "type", required = true) Integer type);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/top-interference : Get top interference
     * Obtain the 5 APs with the highest interference intensity in different frequency bands within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get top interference", nickname = "getInterference", notes = "Obtain the 5 APs with the highest interference intensity in different frequency bands within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseApInterferences.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseApInterferences.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/top-interference",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseApInterferences> getInterference(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/isp-load : Get isp load info
     * Obtain IPS load data for the gateway within the time range.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get isp load info", nickname = "getIspLoad", notes = "Obtain IPS load data for the gateway within the time range.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListIspLoad.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListIspLoad.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/isp-load",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListIspLoad> getIspLoad(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/overview-diagram : Get site overview diagram info
     * Get site overview diagram info.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site overview diagram info", nickname = "getOverview", notes = "Get site overview diagram info.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseGetDashboardOverview.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGetDashboardOverview.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/overview-diagram",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGetDashboardOverview> getOverview(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/poe-usage : Get poe usage
     * Obtain the PoE usage of the switch within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get poe usage", nickname = "getPoeUsage", notes = "Obtain the PoE usage of the switch within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListPoeUsage.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListPoeUsage.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/poe-usage",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListPoeUsage> getPoeUsage(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/retry-dropped-rate : Get retried rate and dropped rate
     * Get retried rate and dropped rate.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get retried rate and dropped rate", nickname = "getRetryAndDroppedRate", notes = "Get retried rate and dropped rate.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseRetryDropRate.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseRetryDropRate.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/retry-dropped-rate",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseRetryDropRate> getRetryAndDroppedRate(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/switch-summary : Get switch summary
     * Get switch summary&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get switch summary", nickname = "getSwitchSummary", notes = "Get switch summary<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseSwitchSummary.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSwitchSummary.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/switch-summary",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseSwitchSummary> getSwitchSummary(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/top-device-cpu-usage : Get top device cpu usage
     * Obtain the top 5 CPU usage devices within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get top device cpu usage", nickname = "getTopCpuUsageWithTimeRange", notes = "Obtain the top 5 CPU usage devices within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListCpuUsage.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListCpuUsage.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/top-device-cpu-usage",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListCpuUsage> getTopCpuUsageWithTimeRange(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/top-device-memory-usage : Get top device memory usage
     * Obtain the top 5 memory usage devices within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get top device memory usage", nickname = "getTopMemoryUsageWithTimeRange", notes = "Obtain the top 5 memory usage devices within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseListMemUsage.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListMemUsage.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/top-device-memory-usage",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListMemUsage> getTopMemoryUsageWithTimeRange(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/traffic-activities : Get traffic activity
     * Obtain AP and Switch traffic Activities within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get traffic activity", nickname = "getTrafficActivities", notes = "Obtain AP and Switch traffic Activities within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseTrafficActivities.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseTrafficActivities.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/traffic-activities",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseTrafficActivities> getTrafficActivities(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/traffic-distribution : Get traffic distribution
     * Obtain wired/wireless traffic distribution data within the time range&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get traffic distribution", nickname = "getTrafficDistribution", notes = "Obtain wired/wireless traffic distribution data within the time range<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseTrafficDistribution.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseTrafficDistribution.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/traffic-distribution",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseTrafficDistribution> getTrafficDistribution(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/wifi-summary : Get wifi summary
     * Get wifi summary.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param start Start timestamp, in seconds, such as 1682000000 (required)
     * @param end End timestamp, in seconds, such as 1682000000 (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get wifi summary", nickname = "getWifiSummary", notes = "Get wifi summary.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only", response = OperationResponseWifiSummary.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWifiSummary.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/wifi-summary",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseWifiSummary> getWifiSummary(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "start", required = true) Long start,@NotNull @ApiParam(value = "End timestamp, in seconds, such as 1682000000", required = true) @Valid @RequestParam(value = "end", required = true) Long end);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/tabs : Get tab list
     * Get tab list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get tab list", nickname = "listAllTabs", notes = "Get tab list.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.", response = OperationResponseListListTabs.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListListTabs.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/tabs",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListListTabs> listAllTabs(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/dashboard/without-overall-tabs : Get tab without overall tab list
     * Get tabs without Overall Tab.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager View Only&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get tab without overall tab list", nickname = "listTabs", notes = "Get tabs without Overall Tab.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.", response = OperationResponseListListTabs.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListListTabs.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/without-overall-tabs",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListListTabs> listTabs(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/dashboard/tabs/{tabId} : Delete an existing tab
     * Delete an existing tab.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.&lt;br/&gt;-34705  -  Overall tab not allowed to be deleted.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param tabId Tab ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing tab", nickname = "removeTab", notes = "Delete an existing tab.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.<br/>-34705  -  Overall tab not allowed to be deleted.", response = OperationResponseWithoutResult.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/tabs/{tabId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> removeTab(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Tab ID",required=true) @PathVariable("tabId") String tabId);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/dashboard/tabs/{tabId} : Modify an existing tab
     * Modify an existing tab.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-34700  -  The dashboard page does not exist in current site.&lt;br/&gt;-34701  -  This tab does not exist in the dashboard.&lt;br/&gt;-34702  -  This tab name already exists.&lt;br/&gt;-34704  -  Non-overall tabs do not allow editing system cards.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param tabId Tab ID (required)
     * @param updateTabOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing tab", nickname = "updateTab", notes = "Modify an existing tab.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34700  -  The dashboard page does not exist in current site.<br/>-34701  -  This tab does not exist in the dashboard.<br/>-34702  -  This tab name already exists.<br/>-34704  -  Non-overall tabs do not allow editing system cards.", response = OperationResponseWithoutResult.class, tags={ "Omada/Dashboard","Dashboard", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/dashboard/tabs/{tabId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> updateTab(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Tab ID",required=true) @PathVariable("tabId") String tabId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateTabOpenApiVo updateTabOpenApiVo);

}
