package org.wfc.omada.api.msp;

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.msp.model.ModifyMspGeneralSettingOpenApiVo;
import org.wfc.omada.api.msp.model.MspUiInterfaceOpenApiVo;
import org.wfc.omada.api.msp.model.OperationResponseMspGeneralSettingOpenApiVo;
import org.wfc.omada.api.msp.model.OperationResponseMspUiInterfaceOpenApiVo;
import org.wfc.omada.api.msp.model.OperationResponseWithoutResult;

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

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

    /**
     * GET /openapi/v1/msp/{mspId}/general-setting : Get msp general setting
     * Get msp general setting&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Other Settings View Only
     *
     * @param mspId MSP ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp general setting", nickname = "getGeneralSetting", notes = "Get msp general setting<br/><br/>The interface requires one of the permissions: <br/>MSP Other Settings View Only", response = OperationResponseMspGeneralSettingOpenApiVo.class, tags={ "Omada/Msp setting","Msp setting", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseMspGeneralSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/general-setting",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseMspGeneralSettingOpenApiVo> getGeneralSetting(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId);


    /**
     * GET /openapi/v1/msp/{mspId}/ui-interface : Get msp ui interface
     * Get msp ui interface&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Other Settings 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;-7131  -  Controller ID not exist.
     *
     * @param mspId MSP ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp ui interface", nickname = "getUiInterface", notes = "Get msp ui interface<br/><br/>The interface requires one of the permissions: <br/>MSP Other Settings 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/>-7131  -  Controller ID not exist.", response = OperationResponseMspUiInterfaceOpenApiVo.class, tags={ "Omada/Msp setting","Msp setting", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseMspUiInterfaceOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/ui-interface",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseMspUiInterfaceOpenApiVo> getUiInterface(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId);


    /**
     * PATCH /openapi/v1/msp/{mspId}/general-setting : Modify msp general setting
     * Modify msp general setting&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Other Settings Modify
     *
     * @param mspId MSP ID (required)
     * @param modifyMspGeneralSettingOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify msp general setting", nickname = "modifyGeneralSetting", notes = "Modify msp general setting<br/><br/>The interface requires one of the permissions: <br/>MSP Other Settings Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Msp setting","Msp setting", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/general-setting",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyGeneralSetting(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModifyMspGeneralSettingOpenApiVo modifyMspGeneralSettingOpenApiVo);


    /**
     * PATCH /openapi/v1/msp/{mspId}/ui-interface : Modify msp ui interface
     * Modify msp ui interface&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Other Settings 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;-7131  -  Controller ID not exist.
     *
     * @param mspId MSP ID (required)
     * @param mspUiInterfaceOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify msp ui interface", nickname = "modifyUiInterface", notes = "Modify msp ui interface<br/><br/>The interface requires one of the permissions: <br/>MSP Other Settings 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/>-7131  -  Controller ID not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Msp setting","Msp setting", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/ui-interface",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyUiInterface(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) MspUiInterfaceOpenApiVo mspUiInterfaceOpenApiVo);

}
