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.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.log.model.AuditLogNotificationSettingEditOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseAuditLogNotificationSettingOpenApiVo;
import org.wfc.omada.api.log.model.OperationResponseWithoutResult;

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

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

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


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

}
