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.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.sitesetting.model.OperationResponseWidsConfigOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseWipsConfigOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseWithoutResult;
import org.wfc.omada.api.sitesetting.model.UpdateWidsConfigOpenApiVo;
import org.wfc.omada.api.sitesetting.model.UpdateWipsConfigOpenApiVo;

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

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

    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/network-security/wireless-ids : Get wireless IDS config
     * Get wireless IDS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get wireless IDS config", nickname = "getWidsConfig", notes = "Get wireless IDS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWidsConfigOpenApiVo.class, tags={ "Omada/Wireless IDS/IPS","Wireless IDS/IPS", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWidsConfigOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/network-security/wireless-ids",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseWidsConfigOpenApiVo> getWidsConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/network-security/wireless-ips : Get wireless IPS config
     * Get wireless IPS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get wireless IPS config", nickname = "getWipsConfig", notes = "Get wireless IPS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWipsConfigOpenApiVo.class, tags={ "Omada/Wireless IDS/IPS","Wireless IDS/IPS", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWipsConfigOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/network-security/wireless-ips",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseWipsConfigOpenApiVo> getWipsConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/network-security/wireless-ids : Modify wireless IDS config
     * Modify wireless IDS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param updateWidsConfigOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify wireless IDS config", nickname = "modifyWidsConfig", notes = "Modify wireless IDS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWithoutResult.class, tags={ "Omada/Wireless IDS/IPS","Wireless IDS/IPS", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/network-security/wireless-ids",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyWidsConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateWidsConfigOpenApiVo updateWidsConfigOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/network-security/wireless-ips : Modify wireless IPS config
     * Modify wireless IPS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param updateWipsConfigOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify wireless IPS config", nickname = "modifyWipsConfig", notes = "Modify wireless IPS config. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWithoutResult.class, tags={ "Omada/Wireless IDS/IPS","Wireless IDS/IPS", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/network-security/wireless-ips",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyWipsConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateWipsConfigOpenApiVo updateWipsConfigOpenApiVo);

}
