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.springframework.web.bind.annotation.RequestParam;
import org.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.msp.model.CreateMspUserVo;
import org.wfc.omada.api.msp.model.DeleteUserVo;
import org.wfc.omada.api.msp.model.ModifyMspRoleVo;
import org.wfc.omada.api.msp.model.ModifyMspUserVo;
import org.wfc.omada.api.msp.model.ModifyRoleVo;
import org.wfc.omada.api.msp.model.OperationResponseCreateRoleResultVo;
import org.wfc.omada.api.msp.model.OperationResponseCreateUserResultVo;
import org.wfc.omada.api.msp.model.OperationResponseGridVoMspUserDetailVo;
import org.wfc.omada.api.msp.model.OperationResponseListControllerRoleDetailVo;
import org.wfc.omada.api.msp.model.OperationResponseListMspRoleDetailVo;
import org.wfc.omada.api.msp.model.OperationResponseMspRoleDetailVo;
import org.wfc.omada.api.msp.model.OperationResponseMspUserDetailVo;
import org.wfc.omada.api.msp.model.OperationResponseObject;

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

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

    /**
     * POST /openapi/v1/msp/{mspId}/roles : Create new msp role
     * Create new msp role&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles 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;-30156  -  This role already exists.&lt;br/&gt;-30158  -  An error occurred while creating the role.&lt;br/&gt;-30161  -  The number of roles has reached the limit.
     *
     * @param mspId MSP ID (required)
     * @param modifyMspRoleVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new msp role", nickname = "createNewMspRole", notes = "Create new msp role<br/><br/>The interface requires one of the permissions: <br/>MSP Roles 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/>-30156  -  This role already exists.<br/>-30158  -  An error occurred while creating the role.<br/>-30161  -  The number of roles has reached the limit.", response = OperationResponseCreateRoleResultVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateRoleResultVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/roles",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseCreateRoleResultVo> createNewMspRole(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModifyMspRoleVo modifyMspRoleVo);


    /**
     * POST /openapi/v1/msp/{mspId}/users : Create new msp user
     * Create new msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Users 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;-30103  -  Invalid email address.&lt;br/&gt;-30104  -  Invalid username.&lt;br/&gt;-30105  -  Invalid password.&lt;br/&gt;-30106  -  This username is already registered.&lt;br/&gt;-30124  -  The number of users has reached the limit.&lt;br/&gt;-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
     *
     * @param mspId MSP ID (required)
     * @param createMspUserVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new msp user", nickname = "createNewMspUser", notes = "Create new msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>MSP Users 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/>-30103  -  Invalid email address.<br/>-30104  -  Invalid username.<br/>-30105  -  Invalid password.<br/>-30106  -  This username is already registered.<br/>-30124  -  The number of users has reached the limit.<br/>-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseCreateUserResultVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUserResultVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/users",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseCreateUserResultVo> createNewMspUser(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateMspUserVo createMspUserVo);


    /**
     * DELETE /openapi/v1/msp/{mspId}/roles/{roleId} : Delete an existing msp role
     * Delete an existing msp role&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles 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;-30102  -  This role does not exist.&lt;br/&gt;-30153  -  The default role cannot be deleted.&lt;br/&gt;-30154  -  An error occurred while deleting the role.&lt;br/&gt;-30155  -  The role cannot be deleted since someone has bound to it.&lt;br/&gt;-30173  -  The SSO bound role cannot be deleted!
     *
     * @param mspId MSP ID (required)
     * @param roleId Role ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing msp role", nickname = "deleteMspRole", notes = "Delete an existing msp role<br/><br/>The interface requires one of the permissions: <br/>MSP Roles 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/>-30102  -  This role does not exist.<br/>-30153  -  The default role cannot be deleted.<br/>-30154  -  An error occurred while deleting the role.<br/>-30155  -  The role cannot be deleted since someone has bound to it.<br/>-30173  -  The SSO bound role cannot be deleted!", response = OperationResponseObject.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/roles/{roleId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseObject> deleteMspRole(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId);


    /**
     * DELETE /openapi/v1/msp/{mspId}/users/{userID} : Delete an existing msp user
     * Delete an existing msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Users 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;-30112  -  This user does not exist.&lt;br/&gt;-30114  -  An error occurred while deleting the user.&lt;br/&gt;-30132  -  Are you sure you want to delete Administrator %Username%? When it is deleted, the viewer accounts it has created will be moved to your account.&lt;br/&gt;-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
     *
     * @param mspId MSP ID (required)
     * @param userID  (required)
     * @param deleteUserVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing msp user", nickname = "deleteMspUser", notes = "Delete an existing msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>MSP Users 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/>-30112  -  This user does not exist.<br/>-30114  -  An error occurred while deleting the user.<br/>-30132  -  Are you sure you want to delete Administrator %Username%? When it is deleted, the viewer accounts it has created will be moved to your account.<br/>-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseObject.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/users/{userID}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseObject> deleteMspUser(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "",required=true) @PathVariable("userID") String userID,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) DeleteUserVo deleteUserVo);


    /**
     * GET /openapi/v1/msp/{mspId}/customer-roles : Get customer role list in msp
     * Get customer role list in msp&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles Manager View Only
     *
     * @param mspId MSP ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get customer role list in msp", nickname = "getAllCustomerRoles", notes = "Get customer role list in msp<br/><br/>The interface requires one of the permissions: <br/>MSP Roles Manager View Only", response = OperationResponseListControllerRoleDetailVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListControllerRoleDetailVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/customer-roles",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListControllerRoleDetailVo> getAllCustomerRoles(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId);


    /**
     * GET /openapi/v1/msp/{mspId}/roles : Get msp role list
     * Get msp role list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles Manager View Only
     *
     * @param mspId MSP ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp role list", nickname = "getAllMspRoles", notes = "Get msp role list<br/><br/>The interface requires one of the permissions: <br/>MSP Roles Manager View Only", response = OperationResponseListMspRoleDetailVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListMspRoleDetailVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/roles",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListMspRoleDetailVo> getAllMspRoles(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId);


    /**
     * GET /openapi/v1/msp/{mspId}/users : Get msp user list
     * Get msp user list. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Users 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;-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
     *
     * @param mspId MSP 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 sortsName 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 sortsRoleId 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 sortsEmail 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 sortsCustomerRoleId 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 searchKey Fuzzy query parameters, support field userName (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp user list", nickname = "getGridUsers", notes = "Get msp user list. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>MSP Users 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/>-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseGridVoMspUserDetailVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoMspUserDetailVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/users",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoMspUserDetailVo> getGridUsers(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@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 = "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.name", required = false) String sortsName,@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.roleId", required = false) String sortsRoleId,@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.email", required = false) String sortsEmail,@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.customerRoleId", required = false) String sortsCustomerRoleId,@ApiParam(value = "Fuzzy query parameters, support field userName") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/msp/{mspId}/roles/{roleId} : Get msp role info
     * Get msp role info&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles 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;-30102  -  This role does not exist.
     *
     * @param mspId  (required)
     * @param roleId Role ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp role info", nickname = "getMspRole", notes = "Get msp role info<br/><br/>The interface requires one of the permissions: <br/>MSP Roles 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/>-30102  -  This role does not exist.", response = OperationResponseMspRoleDetailVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseMspRoleDetailVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/roles/{roleId}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseMspRoleDetailVo> getMspRole(@ApiParam(value = "",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId);


    /**
     * GET /openapi/v1/msp/{mspId}/users/{userID} : Get msp user info
     * Get msp user info. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Users Manager View Only
     *
     * @param mspId MSP ID (required)
     * @param userID  (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get msp user info", nickname = "getUser", notes = "Get msp user info. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>MSP Users Manager View Only", response = OperationResponseMspUserDetailVo.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseMspUserDetailVo.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/users/{userID}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseMspUserDetailVo> getUser(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "",required=true) @PathVariable("userID") String userID);


    /**
     * PUT /openapi/v1/msp/{mspId}/roles/{roleId} : Modify an existing msp role
     * Modify an existing msp role.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Roles 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;-30102  -  This role does not exist.&lt;br/&gt;-30156  -  This role already exists.&lt;br/&gt;-30157  -  An error occurred while modifying the role.&lt;br/&gt;-30159  -  The default role cannot be modified.&lt;br/&gt;-30162  -  Cannot change the target account. Its role permission scope cannot be greater than its manager.
     *
     * @param mspId MSP ID (required)
     * @param roleId Role ID (required)
     * @param modifyRoleVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing msp role", nickname = "modifyMspRole", notes = "Modify an existing msp role.<br/><br/>The interface requires one of the permissions: <br/>MSP Roles 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/>-30102  -  This role does not exist.<br/>-30156  -  This role already exists.<br/>-30157  -  An error occurred while modifying the role.<br/>-30159  -  The default role cannot be modified.<br/>-30162  -  Cannot change the target account. Its role permission scope cannot be greater than its manager.", response = OperationResponseObject.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/roles/{roleId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> modifyMspRole(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModifyRoleVo modifyRoleVo);


    /**
     * PUT /openapi/v1/msp/{mspId}/users/{userID} : Modify an existing msp user
     * Modify an existing msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;MSP Users 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;-30103  -  Invalid email address.&lt;br/&gt;-30104  -  Invalid username.&lt;br/&gt;-30105  -  Invalid password.&lt;br/&gt;-30106  -  This username is already registered.&lt;br/&gt;-30108  -  This username does not exist.&lt;br/&gt;-30133  -  Failed to remove Site %Site name%. The administrator account should not have privileges to fewer sites than that of the viewer accounts it has created.&lt;br/&gt;-30134  -  Failed to add Site %Site name%. The viewer account should not have privileges to more sites thatn that of its immediate superior account.&lt;br/&gt;-30135  -  Are you sure you want to change the role of %Username% from Administrator to Viewer?If its role is changed, the viewer accounts it has created will be moved to your account.&lt;br/&gt;-30136  -  Failed to save. If the editing is saved, the viewer account will have privileges to more sites than that of its immediate superior account.&lt;br/&gt;-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
     *
     * @param mspId MSP ID (required)
     * @param userID  (required)
     * @param modifyMspUserVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing msp user", nickname = "modifyMspUser", notes = "Modify an existing msp user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>MSP Users 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/>-30103  -  Invalid email address.<br/>-30104  -  Invalid username.<br/>-30105  -  Invalid password.<br/>-30106  -  This username is already registered.<br/>-30108  -  This username does not exist.<br/>-30133  -  Failed to remove Site %Site name%. The administrator account should not have privileges to fewer sites than that of the viewer accounts it has created.<br/>-30134  -  Failed to add Site %Site name%. The viewer account should not have privileges to more sites thatn that of its immediate superior account.<br/>-30135  -  Are you sure you want to change the role of %Username% from Administrator to Viewer?If its role is changed, the viewer accounts it has created will be moved to your account.<br/>-30136  -  Failed to save. If the editing is saved, the viewer account will have privileges to more sites than that of its immediate superior account.<br/>-44118  -  This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseObject.class, tags={ "Omada/MSP User and Role","MSP User and Role", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/msp/{mspId}/users/{userID}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseObject> modifyMspUser(@ApiParam(value = "MSP ID",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "",required=true) @PathVariable("userID") String userID,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModifyMspUserVo modifyMspUserVo);

}
