package org.wfc.omada.api.sitesetting;

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.sitesetting.model.AddFilterEntity;
import org.wfc.omada.api.sitesetting.model.AddRuleEntity;
import org.wfc.omada.api.sitesetting.model.ClearDpiDataRequest;
import org.wfc.omada.api.sitesetting.model.DpiSettings;
import org.wfc.omada.api.sitesetting.model.EditFilterEntity;
import org.wfc.omada.api.sitesetting.model.EditRuleEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseDpiSettings;
import org.wfc.omada.api.sitesetting.model.OperationResponseFilterEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoApplicationEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoFilterEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoRestrictionEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoRuleEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseListFamilyEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseObject;
import org.wfc.omada.api.sitesetting.model.OperationResponseRestrictionEntity;
import org.wfc.omada.api.sitesetting.model.OperationResponseRuleEntity;
import org.wfc.omada.api.sitesetting.model.RestrictionEntity;

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

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

    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/restrictions : Create new restriction assigned to lan network
     * Create new restriction assigned to lan network.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35108  -  Dpi restrictions reach entry limits.&lt;br/&gt;-35111  -  Restriction has applied to this lan network.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param restrictionEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new restriction assigned to lan network", nickname = "addAssignRestriction", notes = "Create new restriction assigned to lan network.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35108  -  Dpi restrictions reach entry limits.<br/>-35111  -  Restriction has applied to this lan network.", response = OperationResponseRestrictionEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseRestrictionEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/restrictions",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseRestrictionEntity> addAssignRestriction(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) RestrictionEntity restrictionEntity);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/filters : Create new filter
     * Create new filter.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35103  -  Rules should not be empty.&lt;br/&gt;-35104  -  Filter name already exist.&lt;br/&gt;-35109  -  Dpi filters reach entry limits.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param addFilterEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new filter", nickname = "addFilter", notes = "Create new filter.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35103  -  Rules should not be empty.<br/>-35104  -  Filter name already exist.<br/>-35109  -  Dpi filters reach entry limits.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseFilterEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseFilterEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/filters",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseFilterEntity> addFilter(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AddFilterEntity addFilterEntity);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/rules : Create new rule
     * Create new rule.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35102  -  Applications should not be empty.&lt;br/&gt;-35105  -  Rule name already exist.&lt;br/&gt;-35110  -  Dpi rules reach entry limits.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param addRuleEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new rule", nickname = "addRule", notes = "Create new rule.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35102  -  Applications should not be empty.<br/>-35105  -  Rule name already exist.<br/>-35110  -  Dpi rules reach entry limits.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseRuleEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseRuleEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/rules",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseRuleEntity> addRule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AddRuleEntity addRuleEntity);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/stat/dpi : Clear DPI data
     * Clear all DPI data.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify&lt;br/&gt;Site Statics Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param clearDpiDataRequest  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Clear DPI data", nickname = "clearDpiData", notes = "Clear all DPI data.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify<br/>Site Statics Manager Modify", response = OperationResponseListFamilyEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListFamilyEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/stat/dpi",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseListFamilyEntity> clearDpiData(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ClearDpiDataRequest clearDpiDataRequest);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/restrictions/{restrictionId} : Delete an existing restriction
     * Delete an existing restriction.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param restrictionId Restriction ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing restriction", nickname = "deleteAssignRestrictions", notes = "Delete an existing restriction.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/restrictions/{restrictionId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseObject> deleteAssignRestrictions(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Restriction ID",required=true) @PathVariable("restrictionId") String restrictionId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/filters/{filterId} : Delete an existing filter
     * Delete an existing filter.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35101  -  Failed to delete filter. Please check whether filter is used by restriction.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param filterId Filter ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing filter", nickname = "deleteFilters", notes = "Delete an existing filter.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35101  -  Failed to delete filter. Please check whether filter is used by restriction.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/filters/{filterId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseObject> deleteFilters(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Filter ID",required=true) @PathVariable("filterId") String filterId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/rules/{ruleId} : Delete an existing rule
     * Delete an existing rule.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35100  -  Failed to delete rule. Please check whether rule is used by filter.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ruleId Rule ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing rule", nickname = "deleteRules", notes = "Delete an existing rule.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35100  -  Failed to delete rule. Please check whether rule is used by filter.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/rules/{ruleId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseObject> deleteRules(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Rule ID",required=true) @PathVariable("ruleId") String ruleId);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/status : Modify application control general settings
     * Modify application control general settings.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param dpiSettings  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify application control general settings", nickname = "editApplicationControlStatus", notes = "Modify application control general settings.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/status",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> editApplicationControlStatus(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) DpiSettings dpiSettings);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/restrictions/{restrictionId} : Modify an existing restriction
     * Modify an existing restriction.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param restrictionId Restriction ID (required)
     * @param restrictionEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing restriction", nickname = "editAssignRestrictions", notes = "Modify an existing restriction.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/restrictions/{restrictionId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> editAssignRestrictions(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Restriction ID",required=true) @PathVariable("restrictionId") String restrictionId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) RestrictionEntity restrictionEntity);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/filters/{filterId} : Modify an existing filter
     * Modify an existing filter.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35103  -  Rules should not be empty.&lt;br/&gt;-35104  -  Filter name already exist.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param filterId Filter ID (required)
     * @param editFilterEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing filter", nickname = "editFilters", notes = "Modify an existing filter.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35103  -  Rules should not be empty.<br/>-35104  -  Filter name already exist.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/filters/{filterId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> editFilters(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Filter ID",required=true) @PathVariable("filterId") String filterId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) EditFilterEntity editFilterEntity);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/rules/{ruleId} : Modify an existing rule
     * Modify an existing rule.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35102  -  Applications should not be empty.&lt;br/&gt;-35105  -  Rule name already exist.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ruleId Rule ID (required)
     * @param editRuleEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing rule", nickname = "editRule", notes = "Modify an existing rule.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35102  -  Applications should not be empty.<br/>-35105  -  Rule name already exist.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseObject.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/rules/{ruleId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> editRule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Rule ID",required=true) @PathVariable("ruleId") String ruleId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) EditRuleEntity editRuleEntity);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/status : Get application control general settings
     * Get application control general settings with the given omadacId, siteId.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get application control general settings", nickname = "getApplicationControlStatus", notes = "Get application control general settings with the given omadacId, siteId.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseDpiSettings.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseDpiSettings.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/status",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseDpiSettings> getApplicationControlStatus(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/applications : Get application list
     * Get application list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35107  -  Dpi protocols are updating.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @param searchKey Fuzzy query parameters, support field application name (optional)
     * @param filtersFamilyId Filter query parameters, support field 0 (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get application list", nickname = "getApplications", notes = "Get application list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35107  -  Dpi protocols are updating.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseGridVoApplicationEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoApplicationEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/applications",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoApplicationEntity> getApplications(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Fuzzy query parameters, support field application name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey,@ApiParam(value = "Filter query parameters, support field 0") @Valid @RequestParam(value = "filtersFamilyId", required = false) Integer filtersFamilyId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/restrictions : Get application control assigned restriction list
     * Get application control assigned restriction list with the given omadacId, siteId.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get application control assigned restriction list", nickname = "getAssignRestrictions", notes = "Get application control assigned restriction list with the given omadacId, siteId.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseGridVoRestrictionEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoRestrictionEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/restrictions",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoRestrictionEntity> getAssignRestrictions(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/families : Get family list
     * Get family list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35107  -  Dpi protocols are updating.&lt;br/&gt;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get family list", nickname = "getFamilies", notes = "Get family list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35107  -  Dpi protocols are updating.<br/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseListFamilyEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListFamilyEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/families",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListFamilyEntity> getFamilies(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/filters : Get filter list
     * Get filter list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @param searchKey Fuzzy query parameters, support field filter name (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get filter list", nickname = "getFilters", notes = "Get filter list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseGridVoFilterEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoFilterEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/filters",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoFilterEntity> getFilters(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Fuzzy query parameters, support field filter name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/applicationControl/rules : Get rule list
     * Get rule list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-35112  -  Gateway is not existed&lt;br/&gt;-35113  -  Gateway is not support dpi
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @param searchKey Fuzzy query parameters, support field rule name (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get rule list", nickname = "getRules", notes = "Get rule list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-35112  -  Gateway is not existed<br/>-35113  -  Gateway is not support dpi", response = OperationResponseGridVoRuleEntity.class, tags={ "Omada/Application Control","Application Control", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoRuleEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/applicationControl/rules",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoRuleEntity> getRules(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Fuzzy query parameters, support field rule name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);

}
