package org.wfc.omada.api.log;

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.log.model.AuditLogNotificationSettingEditOpenApiVo;
import org.wfc.omada.api.log.model.LogNotificationSettingEditOpenApiV2Vo;
import org.wfc.omada.api.log.model.LogNotificationSettingEditOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseAuditLogNotificationSettingOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseGridVoAuditLogOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseLogNotificationSettingOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseWithoutResult;

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

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

    /**
     * GET /openapi/v1/{omadacId}/audit-notification : Get global audit log notification
     * Get global audit log notification.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;Global Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get global audit log notification", nickname = "getAuditLogSettingForGlobal", notes = "Get global audit log notification.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/>Global Log & Audit Log Manager View Only", response = OperationResponseAuditLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseAuditLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/audit-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseAuditLogNotificationSettingOpenApiVo> getAuditLogSettingForGlobal(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/site/audit-notification : Get site audit log notification
     * Get site audit log notification.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 Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site audit log notification", nickname = "getAuditLogSettingForMsp1", notes = "Get site audit log notification.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 Log & Audit Log Manager View Only", response = OperationResponseAuditLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseAuditLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/site/audit-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseAuditLogNotificationSettingOpenApiVo> getAuditLogSettingForMsp1(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/audit-logs : Get global audit log list
     * Get audit logs in global audit page.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;Global Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada 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.(value:10,15,20,30,50,100) (required)
     * @param sortsTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
     * @param filtersResult Filter query parameters, support field result,it should be a value as follows: 0: successful; 1: failed,example:0 (optional)
     * @param filtersLevel Filter query parameters, support field level,it should be a value as follows: Error; Warning; Information, example:Error (optional)
     * @param filtersAuditTypes Filter query parameters, support field auditTypes, for the values of auditLog type, refer to section 5.2.2 of the Open API Access Guide, example:Log,Cloud Access,User Interface. (optional)
     * @param filtersTimes Filter query parameters, support field times, example:[{\&quot;timeStart\&quot;:1678060800000,\&quot;timeEnd\&quot;:1678665599999}](UrlEncode:%5B%7B%22timeStart%22%3A1678060800000%2C%22timeEnd%22%3A1678665599999%7D%5D).If this parameter is not specified (not included or empty array), the interface will query data within the default time period: [{\&quot;timeStart\&quot;:  Current timestamp minus milliseconds of 7 days,\&quot;timeEnd\&quot;: Current timestamp}]. (optional)
     * @param searchKey Fuzzy query parameters, support field content (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get global audit log list", nickname = "getAuditLogsForGlobal", notes = "Get audit logs in global audit page.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/>Global Log & Audit Log Manager View Only", response = OperationResponseGridVoAuditLogOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoAuditLogOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/audit-logs",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoAuditLogOpenApiVo> getAuditLogsForGlobal(@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.(value:10,15,20,30,50,100)", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect") @Valid @RequestParam(value = "sorts.time", required = false) String sortsTime,@ApiParam(value = "Filter query parameters, support field result,it should be a value as follows: 0: successful; 1: failed,example:0") @Valid @RequestParam(value = "filters.result", required = false) Integer filtersResult,@ApiParam(value = "Filter query parameters, support field level,it should be a value as follows: Error; Warning; Information, example:Error") @Valid @RequestParam(value = "filters.level", required = false) String filtersLevel,@ApiParam(value = "Filter query parameters, support field auditTypes, for the values of auditLog type, refer to section 5.2.2 of the Open API Access Guide, example:Log,Cloud Access,User Interface.") @Valid @RequestParam(value = "filters.auditTypes", required = false) String filtersAuditTypes,@ApiParam(value = "Filter query parameters, support field times, example:[{\"timeStart\":1678060800000,\"timeEnd\":1678665599999}](UrlEncode:%5B%7B%22timeStart%22%3A1678060800000%2C%22timeEnd%22%3A1678665599999%7D%5D).If this parameter is not specified (not included or empty array), the interface will query data within the default time period: [{\"timeStart\":  Current timestamp minus milliseconds of 7 days,\"timeEnd\": Current timestamp}].") @Valid @RequestParam(value = "filters.times", required = false) String filtersTimes,@ApiParam(value = "Fuzzy query parameters, support field content") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/audit-logs : Get site audit log list
     * Get audit logs in site audit page.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 Log &amp; Audit Log Manager View Only
     *
     * @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.(value:10,15,20,30,50,100) (required)
     * @param sortsTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
     * @param filtersResult Filter query parameters, support field result,it should be a value as follows: 0: successful; 1: failed,example:0 (optional)
     * @param filtersLevel Filter query parameters, support field level,it should be a value as follows: Error; Warning; Information, example:Error (optional)
     * @param filtersAuditTypes Filter query parameters, support field auditTypes, for the values of auditLog type, refer to section 5.2.2 of the Open API Access Guide, example:Log,Cloud Access,User Interface. (optional)
     * @param filtersTimes Filter query parameters, support field times, example:[{\&quot;timeStart\&quot;:1678060800000,\&quot;timeEnd\&quot;:1678665599999}](UrlEncode:%5B%7B%22timeStart%22%3A1678060800000%2C%22timeEnd%22%3A1678665599999%7D%5D).If this parameter is not specified (not included or empty array), the interface will query data within the default time period: [{\&quot;timeStart\&quot;:  Current timestamp minus milliseconds of 7 days,\&quot;timeEnd\&quot;: Current timestamp}]. (optional)
     * @param searchKey Fuzzy query parameters, support field content (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site audit log list", nickname = "getAuditLogsForSite", notes = "Get audit logs in site audit page.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 Log & Audit Log Manager View Only", response = OperationResponseGridVoAuditLogOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoAuditLogOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/audit-logs",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoAuditLogOpenApiVo> getAuditLogsForSite(@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.(value:10,15,20,30,50,100)", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect") @Valid @RequestParam(value = "sorts.time", required = false) String sortsTime,@ApiParam(value = "Filter query parameters, support field result,it should be a value as follows: 0: successful; 1: failed,example:0") @Valid @RequestParam(value = "filters.result", required = false) Integer filtersResult,@ApiParam(value = "Filter query parameters, support field level,it should be a value as follows: Error; Warning; Information, example:Error") @Valid @RequestParam(value = "filters.level", required = false) String filtersLevel,@ApiParam(value = "Filter query parameters, support field auditTypes, for the values of auditLog type, refer to section 5.2.2 of the Open API Access Guide, example:Log,Cloud Access,User Interface.") @Valid @RequestParam(value = "filters.auditTypes", required = false) String filtersAuditTypes,@ApiParam(value = "Filter query parameters, support field times, example:[{\"timeStart\":1678060800000,\"timeEnd\":1678665599999}](UrlEncode:%5B%7B%22timeStart%22%3A1678060800000%2C%22timeEnd%22%3A1678665599999%7D%5D).If this parameter is not specified (not included or empty array), the interface will query data within the default time period: [{\"timeStart\":  Current timestamp minus milliseconds of 7 days,\"timeEnd\": Current timestamp}].") @Valid @RequestParam(value = "filters.times", required = false) String filtersTimes,@ApiParam(value = "Fuzzy query parameters, support field content") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/{omadacId}/log-notification : Get global log notification
     * Get global log notification.This interface has been deprecated.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     * @deprecated
     */
    @ApiOperation(value = "Get global log notification", nickname = "getLogSettingForGlobal", notes = "Get global log notification.This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Global Log & Audit Log Manager View Only", response = OperationResponseLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/log-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseLogNotificationSettingOpenApiVo> getLogSettingForGlobal(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v2/{omadacId}/log-notification : Get global log notification
     * Get global log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get global log notification", nickname = "getLogSettingForGlobalV2", notes = "Get global log notification.<br/><br/>The interface requires one of the permissions: <br/>Global Log & Audit Log Manager View Only", response = OperationResponseLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v2/{omadacId}/log-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseLogNotificationSettingOpenApiVo> getLogSettingForGlobalV2(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/site/log-notification : Get site log notification
     * Get site log notification.This interface has been deprecated.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     * @deprecated
     */
    @ApiOperation(value = "Get site log notification", nickname = "getLogSettingForSite", notes = "Get site log notification.This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Log & Audit Log Manager View Only", response = OperationResponseLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/site/log-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseLogNotificationSettingOpenApiVo> getLogSettingForSite(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sitetemplates/{siteTemplateId}/site/log-notification : Get site template log notification
     * Get site template log notification.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;Global Site Template Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteTemplateId Site Template ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site template log notification", nickname = "getLogSettingForSiteTemplate", notes = "Get site template log notification.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/>Global Site Template Manager View Only", response = OperationResponseLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sitetemplates/{siteTemplateId}/site/log-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseLogNotificationSettingOpenApiVo> getLogSettingForSiteTemplate(@ApiParam(value = "Site Template ID",required=true) @PathVariable("siteTemplateId") String siteTemplateId);


    /**
     * GET /openapi/v2/{omadacId}/sites/{siteId}/site/log-notification : Get site log notification
     * Get site log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Log &amp; Audit Log Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site log notification", nickname = "getLogSettingForSiteV2", notes = "Get site log notification.<br/><br/>The interface requires one of the permissions: <br/>Site Log & Audit Log Manager View Only", response = OperationResponseLogNotificationSettingOpenApiVo.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseLogNotificationSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/site/log-notification",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseLogNotificationSettingOpenApiVo> getLogSettingForSiteV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * PATCH /openapi/v1/{omadacId}/audit-notification : Modify global audit log notification
     * Modify global audit log notification.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;Global Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param auditLogNotificationSettingEditOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify global audit log notification", nickname = "modifyAuditLogSettingGlobal", notes = "Modify global audit log notification.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/>Global Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/audit-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyAuditLogSettingGlobal(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AuditLogNotificationSettingEditOpenApiVo auditLogNotificationSettingEditOpenApiVo);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/site/audit-notification : Modify site audit log notification
     * Modify site audit log notification.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 Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param auditLogNotificationSettingEditOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify site audit log notification", nickname = "modifyAuditLogSettingSite1", notes = "Modify site audit log notification.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 Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/site/audit-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyAuditLogSettingSite1(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AuditLogNotificationSettingEditOpenApiVo auditLogNotificationSettingEditOpenApiVo);


    /**
     * PATCH /openapi/v1/{omadacId}/log-notification : Modify global log notification
     * Modify global log notification.This interface has been deprecated.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param logNotificationSettingEditOpenApiVo  (optional)
     * @return OK (status code 200)
     * @deprecated
     */
    @ApiOperation(value = "Modify global log notification", nickname = "modifyLogSettingGlobal", notes = "Modify global log notification.This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Global Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/log-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLogSettingGlobal(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) LogNotificationSettingEditOpenApiVo logNotificationSettingEditOpenApiVo);


    /**
     * PATCH /openapi/v2/{omadacId}/log-notification : Modify global log notification
     * Modify global log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param logNotificationSettingEditOpenApiV2Vo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify global log notification", nickname = "modifyLogSettingGlobalV2", notes = "Modify global log notification.<br/><br/>The interface requires one of the permissions: <br/>Global Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v2/{omadacId}/log-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLogSettingGlobalV2(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) LogNotificationSettingEditOpenApiV2Vo logNotificationSettingEditOpenApiV2Vo);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/site/log-notification : Modify site log notification
     * Modify site log notification.This interface has been deprecated.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param logNotificationSettingEditOpenApiVo  (optional)
     * @return OK (status code 200)
     * @deprecated
     */
    @ApiOperation(value = "Modify site log notification", nickname = "modifyLogSettingSite", notes = "Modify site log notification.This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/site/log-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLogSettingSite(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) LogNotificationSettingEditOpenApiVo logNotificationSettingEditOpenApiVo);


    /**
     * PATCH /openapi/v1/{omadacId}/sitetemplates/{siteTemplateId}/site/log-notification : Modify site template log notification
     * Modify site template log notification.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;Global Site Template Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteTemplateId Site Template ID (required)
     * @param logNotificationSettingEditOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify site template log notification", nickname = "modifyLogSettingSiteTemplate", notes = "Modify site template log notification.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/>Global Site Template Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sitetemplates/{siteTemplateId}/site/log-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLogSettingSiteTemplate(@ApiParam(value = "Site Template ID",required=true) @PathVariable("siteTemplateId") String siteTemplateId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) LogNotificationSettingEditOpenApiVo logNotificationSettingEditOpenApiVo);


    /**
     * PATCH /openapi/v2/{omadacId}/sites/{siteId}/site/log-notification : Modify site log notification
     * Modify site log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param logNotificationSettingEditOpenApiV2Vo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify site log notification", nickname = "modifyLogSettingSiteV2", notes = "Modify site log notification.<br/><br/>The interface requires one of the permissions: <br/>Site Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/site/log-notification",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLogSettingSiteV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) LogNotificationSettingEditOpenApiV2Vo logNotificationSettingEditOpenApiV2Vo);


    /**
     * POST /openapi/v1/{omadacId}/reset/log-notification : Reset global log notification
     * Reset global log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Reset global log notification", nickname = "resetLogSettingGlobal", notes = "Reset global log notification.<br/><br/>The interface requires one of the permissions: <br/>Global Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/reset/log-notification",
        produces = "*/*", 
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> resetLogSettingGlobal(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/site/reset/log-notification : Reset site log notification
     * Reset site log notification.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Log &amp; Audit Log Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Reset site log notification", nickname = "resetLogSettingSite", notes = "Reset site log notification.<br/><br/>The interface requires one of the permissions: <br/>Site Log & Audit Log Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/site/reset/log-notification",
        produces = "*/*", 
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> resetLogSettingSite(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * POST /openapi/v1/{omadacId}/sitetemplates/{siteTemplateId}/site/reset/log-notification : Reset site template log notification
     * Reset site template log notification.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;Global Site Template Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteTemplateId Site Template ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Reset site template log notification", nickname = "resetLogSettingSiteTemplate", notes = "Reset site template log notification.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/>Global Site Template Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Log","Log", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sitetemplates/{siteTemplateId}/site/reset/log-notification",
        produces = "*/*", 
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> resetLogSettingSiteTemplate(@ApiParam(value = "Site Template ID",required=true) @PathVariable("siteTemplateId") String siteTemplateId);

}
