package org.wfc.omada.api.device;

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.device.model.AutoCheckUpgradeCreateInfo;
import org.wfc.omada.api.device.model.InlineObject;
import org.wfc.omada.api.device.model.ModelFwReleaseNoteReqInfo;
import org.wfc.omada.api.device.model.ModelUpgradeInfo;
import org.wfc.omada.api.device.model.ModelUpgradeSiteReqInfo;
import org.wfc.omada.api.device.model.OperationResponseCreateAutoCheckResInfo;
import org.wfc.omada.api.device.model.OperationResponseCreateUpgradePlanResinfo;
import org.wfc.omada.api.device.model.OperationResponseCriticalModelNum;
import org.wfc.omada.api.device.model.OperationResponseGridVoAutoCheckUpgradeInfo;
import org.wfc.omada.api.device.model.OperationResponseGridVoFirmwareInfo;
import org.wfc.omada.api.device.model.OperationResponseGridVoPlanUpgradeInfo;
import org.wfc.omada.api.device.model.OperationResponseGridVoPlanUpgradeModelList;
import org.wfc.omada.api.device.model.OperationResponseGridVoUpgradeFailedDeviceInfo;
import org.wfc.omada.api.device.model.OperationResponseGridVoUpgradeLogOpenApiInfo;
import org.wfc.omada.api.device.model.OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo;
import org.wfc.omada.api.device.model.OperationResponseModelFwOemReleaseNoteInfo;
import org.wfc.omada.api.device.model.OperationResponseModelUpgradeSiteInfo;
import org.wfc.omada.api.device.model.OperationResponsePlanUpgradeModelInfo;
import org.wfc.omada.api.device.model.OperationResponseUpgradeSettingTryBeta;
import org.wfc.omada.api.device.model.OperationResponseUpgradeSiteModelInfo;
import org.wfc.omada.api.device.model.OperationResponseUploadFirmwareResInfo;
import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
import org.wfc.omada.api.device.model.PlanFirmwareUpgradeCreateInfo;
import org.wfc.omada.api.device.model.PlanUpgradeCreateInfo;
import org.wfc.omada.api.device.model.PlanUpgradeEditInfo;
import org.wfc.omada.api.device.model.RollbackCreateInfo;
import org.wfc.omada.api.device.model.UpgradeSettingTryBeta;
import org.wfc.omada.api.device.model.UpgradeSiteModelReqInfo;

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

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

    /**
     * POST /openapi/v1/{omadacId}/upgrade/autoCheck : Create autocheck upgrade plan
     * Create autocheck upgrade plan&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30100  -  Please select at least one site.&lt;br/&gt;-7131  -  Controller ID not exist.
     *
     * @param omadacId Omada ID (required)
     * @param autoCheckUpgradeCreateInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create autocheck upgrade plan", nickname = "createAutoCheckUpgrade", notes = "Create autocheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30028  -  The system is busy. Please try again later.<br/>-30100  -  Please select at least one site.<br/>-7131  -  Controller ID not exist.", response = OperationResponseCreateAutoCheckResInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateAutoCheckResInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/autoCheck",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseCreateAutoCheckResInfo> createAutoCheckUpgrade(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AutoCheckUpgradeCreateInfo autoCheckUpgradeCreateInfo);


    /**
     * POST /openapi/v1/{omadacId}/firmwares/{firmwareId}/upgrade/plan : Create firmware upgrade plan based on manually uploaded firmware
     * Create an upgrade plan based on manually uploaded firmware&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30100  -  Please select at least one site.&lt;br/&gt;-39021  -  Invalid file for upgrading.&lt;br/&gt;-7131  -  Controller ID not exist.
     *
     * @param omadacId Omada ID (required)
     * @param firmwareId Firmware ID (required)
     * @param planFirmwareUpgradeCreateInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create firmware upgrade plan based on manually uploaded firmware", nickname = "createFirmwareUpgradePlan", notes = "Create an upgrade plan based on manually uploaded firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30028  -  The system is busy. Please try again later.<br/>-30100  -  Please select at least one site.<br/>-39021  -  Invalid file for upgrading.<br/>-7131  -  Controller ID not exist.", response = OperationResponseCreateUpgradePlanResinfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUpgradePlanResinfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/firmwares/{firmwareId}/upgrade/plan",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseCreateUpgradePlanResinfo> createFirmwareUpgradePlan(@ApiParam(value = "Firmware ID",required=true) @PathVariable("firmwareId") String firmwareId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PlanFirmwareUpgradeCreateInfo planFirmwareUpgradeCreateInfo);


    /**
     * POST /openapi/v1/{omadacId}/logs/{upgradeLogId}/upgrade/overview/rollback : Create rollback plan
     * You can choose a specific time to create a rollback plan&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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 omadacId Omada ID (required)
     * @param upgradeLogId  (required)
     * @param rollbackCreateInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create rollback plan", nickname = "createRollback", notes = "You can choose a specific time to create a rollback plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/logs/{upgradeLogId}/upgrade/overview/rollback",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createRollback(@ApiParam(value = "",required=true) @PathVariable("upgradeLogId") String upgradeLogId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) RollbackCreateInfo rollbackCreateInfo);


    /**
     * POST /openapi/v1/{omadacId}/upgrade/overview/plans : Create firmware upgrade plan
     * Create firmware upgrade plan.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param planUpgradeCreateInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create firmware upgrade plan", nickname = "createUpgradePlan", notes = "Create firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30028  -  The system is busy. Please try again later.", response = OperationResponseCreateUpgradePlanResinfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUpgradePlanResinfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/plans",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseCreateUpgradePlanResinfo> createUpgradePlan(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PlanUpgradeCreateInfo planUpgradeCreateInfo);


    /**
     * DELETE /openapi/v1/{omadacId}/autoCheck/{autoCheckId}/upgrade : Delete autoCheck upgrade plan
     * Delete autoCheck upgrade plan&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1005  -  Operation forbidden.&lt;br/&gt;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-7131  -  Controller ID not exist.
     *
     * @param omadacId Omada ID (required)
     * @param autoCheckId Auto Check ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete autoCheck upgrade plan", nickname = "deleteAutoCheckUpgrade", notes = "Delete autoCheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005  -  Operation forbidden.<br/>-30028  -  The system is busy. Please try again later.<br/>-7131  -  Controller ID not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/autoCheck/{autoCheckId}/upgrade",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteAutoCheckUpgrade(@ApiParam(value = "Auto Check ID",required=true) @PathVariable("autoCheckId") String autoCheckId);


    /**
     * DELETE /openapi/v1/{omadacId}/firmwares/{firmwareId}/upgrade : Delete upgrade firmware
     * Delete the manually uploaded firmware&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param firmwareId Firmware ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete upgrade firmware", nickname = "deleteUpgradeFirmware", notes = "Delete the manually uploaded firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30028  -  The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/firmwares/{firmwareId}/upgrade",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteUpgradeFirmware(@ApiParam(value = "Firmware ID",required=true) @PathVariable("firmwareId") String firmwareId);


    /**
     * DELETE /openapi/v1/{omadacId}/plans/{planId}/upgrade/overview : Delete firmware upgrade plan
     * Delete firmware upgrade plan.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param planId Upgrade Plan ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete firmware upgrade plan", nickname = "deleteUpgradePlan", notes = "Delete firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-30028  -  The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/plans/{planId}/upgrade/overview",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteUpgradePlan(@ApiParam(value = "Upgrade Plan ID",required=true) @PathVariable("planId") String planId);


    /**
     * PATCH /openapi/v1/{omadacId}/autoCheck/{autoCheckId}/upgrade : Edit autoCheck upgrade plan
     * Edit autoCheck upgrade plan&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1005  -  Operation forbidden.
     *
     * @param omadacId Omada ID (required)
     * @param autoCheckId Auto Check ID (required)
     * @param autoCheckUpgradeCreateInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Edit autoCheck upgrade plan", nickname = "editAutoCheckUpgrade", notes = "Edit autoCheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005  -  Operation forbidden.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/autoCheck/{autoCheckId}/upgrade",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> editAutoCheckUpgrade(@ApiParam(value = "Auto Check ID",required=true) @PathVariable("autoCheckId") String autoCheckId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) AutoCheckUpgradeCreateInfo autoCheckUpgradeCreateInfo);


    /**
     * PATCH /openapi/v1/{omadacId}/plans/{planId}/upgrade/overview : Edit firmware upgrade plan
     * Edit firmware upgrade plan.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1005  -  Operation forbidden.&lt;br/&gt;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param planId Upgrade Plan ID (required)
     * @param planUpgradeEditInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Edit firmware upgrade plan", nickname = "editUpgradePlan", notes = "Edit firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005  -  Operation forbidden.<br/>-30028  -  The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/plans/{planId}/upgrade/overview",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> editUpgradePlan(@ApiParam(value = "Upgrade Plan ID",required=true) @PathVariable("planId") String planId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PlanUpgradeEditInfo planUpgradeEditInfo);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/autoCheck : Get autocheck upgrade plan
     * Paging to get autocheck upgrade plan&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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 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. (required)
     * @param sortsAutoCheckTime 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 upgrade (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get autocheck upgrade plan", nickname = "getGridAutoCheckUpgrade", notes = "Paging to get autocheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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 = OperationResponseGridVoAutoCheckUpgradeInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoAutoCheckUpgradeInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/autoCheck",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoAutoCheckUpgradeInfo> getGridAutoCheckUpgrade(@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.autoCheckTime", required = false) String sortsAutoCheckTime,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/firmwares : Get the uploaded firmware list
     * Paging to get the uploaded firmware list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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. (required)
     * @param sortsModelTypeInfo 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 sortsUploadTime 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 upgrade (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the uploaded firmware list", nickname = "getGridFirmwareList", notes = "Paging to get the uploaded firmware list<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoFirmwareInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoFirmwareInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/firmwares",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoFirmwareInfo> getGridFirmwareList(@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@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.uploadTime", required = false) String sortsUploadTime,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/overview/firmwares : Get firmware pool list
     * Paging to get firmware pool list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1501  -  Omada Cloud Platform error.
     *
     * @param omadacId Omada ID (required)
     * @param channel Channel should be a value as follows: 0: stable; 1: Release Candidate(RC); 2: Beta. (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 sortsModelTypeInfo 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 sortsReleaseTime 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)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get firmware pool list", nickname = "getGridFirmwarePoolList", notes = "Paging to get firmware pool list<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501  -  Omada Cloud Platform error.", response = OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/firmwares",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo> getGridFirmwarePoolList(@NotNull @ApiParam(value = "Channel should be a value as follows: 0: stable; 1: Release Candidate(RC); 2: Beta.", required = true) @Valid @RequestParam(value = "channel", required = true) Integer channel,@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@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.releaseTime", required = false) String sortsReleaseTime);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/plan/models : Get the list of models
     * Get the list of models on the Controller upgrade plan page.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1501  -  Omada Cloud Platform error.
     *
     * @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. (required)
     * @param sortsModelTypeInfo 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 upgrade (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the list of models", nickname = "getGridPlanUpgradeModelList", notes = "Get the list of models on the Controller upgrade plan page.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501  -  Omada Cloud Platform error.", response = OperationResponseGridVoPlanUpgradeModelList.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPlanUpgradeModelList.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/models",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoPlanUpgradeModelList> getGridPlanUpgradeModelList(@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


    /**
     * POST /openapi/v1/{omadacId}/upgrade/plan/sites : Get the sites of the selected model
     * Paging to get the sites of the selected model&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade View Only
     *
     * @param omadacId Omada ID (required)
     * @param modelUpgradeSiteReqInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the sites of the selected model", nickname = "getGridPlanUpgradeSiteList", notes = "Paging to get the sites of the selected model<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseModelUpgradeSiteInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseModelUpgradeSiteInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/sites",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseModelUpgradeSiteInfo> getGridPlanUpgradeSiteList(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModelUpgradeSiteReqInfo modelUpgradeSiteReqInfo);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/overview/logs : Get firmware upgrade logs
     * Paging to get firmware upgrade logs.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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 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. (required)
     * @param sortsUpgradeTime 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 sortsModelTypeInfo 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)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get firmware upgrade logs", nickname = "getGridUpgradeLogs", notes = "Paging to get firmware upgrade logs.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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 = OperationResponseGridVoUpgradeLogOpenApiInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoUpgradeLogOpenApiInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/logs",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoUpgradeLogOpenApiInfo> getGridUpgradeLogs(@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.upgradeTime", required = false) String sortsUpgradeTime,@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.modelTypeInfo", required = false) String sortsModelTypeInfo);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/overview/plans : Get firmware upgrade plans
     * Paging to get firmware upgrade plans.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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. (required)
     * @param sortsScheduledUpgradeTime 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 sortsModelTypeInfo 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)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get firmware upgrade plans", nickname = "getGridUpgradePlans", notes = "Paging to get firmware upgrade plans.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoPlanUpgradeInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPlanUpgradeInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/plans",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoPlanUpgradeInfo> getGridUpgradePlans(@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.scheduledUpgradeTime", required = false) String sortsScheduledUpgradeTime,@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.modelTypeInfo", required = false) String sortsModelTypeInfo);


    /**
     * POST /openapi/v1/{omadacId}/upgrade/models : Get the model of the specified site
     * Get the model of the specified site. If no site is specified, it defaults to all authorized sites&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade View Only
     *
     * @param omadacId Omada ID (required)
     * @param upgradeSiteModelReqInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the model of the specified site", nickname = "getModelBySites", notes = "Get the model of the specified site. If no site is specified, it defaults to all authorized sites<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseUpgradeSiteModelInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeSiteModelInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/models",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseUpgradeSiteModelInfo> getModelBySites(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpgradeSiteModelReqInfo upgradeSiteModelReqInfo);


    /**
     * POST /openapi/v1/{omadacId}/upgrade/overview/firmwares/release-note : Get release notes information
     * Get release notes information of a firmware series&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1501  -  Omada Cloud Platform error.
     *
     * @param omadacId Omada ID (required)
     * @param modelFwReleaseNoteReqInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get release notes information", nickname = "getModelFirmwareReleaseNotes", notes = "Get release notes information of a firmware series<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501  -  Omada Cloud Platform error.", response = OperationResponseModelFwOemReleaseNoteInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseModelFwOemReleaseNoteInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/firmwares/release-note",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseModelFwOemReleaseNoteInfo> getModelFirmwareReleaseNotes(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModelFwReleaseNoteReqInfo modelFwReleaseNoteReqInfo);


    /**
     * POST /openapi/v1/{omadacId}/upgrade/plan/firmware : Get the upgradeable information of the selected model
     * Get the upgradeable information of the selected model.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1501  -  Omada Cloud Platform error.
     *
     * @param omadacId Omada ID (required)
     * @param modelUpgradeInfo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the upgradeable information of the selected model", nickname = "getPlanUpgradeModelInfo", notes = "Get the upgradeable information of the selected model.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501  -  Omada Cloud Platform error.", response = OperationResponsePlanUpgradeModelInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponsePlanUpgradeModelInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/firmware",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponsePlanUpgradeModelInfo> getPlanUpgradeModelInfo(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ModelUpgradeInfo modelUpgradeInfo);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/overview/try-beta : Get try-beta switch status
     * You can get try-beta switch status&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade View Only
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get try-beta switch status", nickname = "getTryBetaStatus", notes = "You can get try-beta switch status<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseUpgradeSettingTryBeta.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeSettingTryBeta.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/try-beta",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseUpgradeSettingTryBeta> getTryBetaStatus(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/logs/{upgradeLogId}/upgrade/overview/failed-devices : Get the list of devices which upgrade failed
     * Get the list of devices which upgrade failed through upgrade logs&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade View Only
     *
     * @param omadacId Omada ID (required)
     * @param upgradeLogId  (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)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the list of devices which upgrade failed", nickname = "getUpgradeFailedDeviceInfos", notes = "Get the list of devices which upgrade failed through upgrade logs<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoUpgradeFailedDeviceInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoUpgradeFailedDeviceInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/logs/{upgradeLogId}/upgrade/overview/failed-devices",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoUpgradeFailedDeviceInfo> getUpgradeFailedDeviceInfos(@ApiParam(value = "",required=true) @PathVariable("upgradeLogId") String upgradeLogId,@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);


    /**
     * GET /openapi/v1/{omadacId}/upgrade/overview/critical : Get the number of critical models
     * You can get the number of critical models.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-1501  -  Omada Cloud Platform error.
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get the number of critical models", nickname = "getcriticalModelNum", notes = "You can get the number of critical models.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501  -  Omada Cloud Platform error.", response = OperationResponseCriticalModelNum.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseCriticalModelNum.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/critical",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseCriticalModelNum> getcriticalModelNum(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * PATCH /openapi/v1/{omadacId}/upgrade/overview/try-beta : Modify try-beta switch status
     * You can modify the try-beta switch status&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-34556  -  Try Beta switch cannot be turned off after being turned on.
     *
     * @param omadacId Omada ID (required)
     * @param upgradeSettingTryBeta  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify try-beta switch status", nickname = "modifyTryBetaStatus", notes = "You can modify the try-beta switch status<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-34556  -  Try Beta switch cannot be turned off after being turned on.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/try-beta",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyTryBetaStatus(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpgradeSettingTryBeta upgradeSettingTryBeta);


    /**
     * POST /openapi/v1/{omadacId}/files/upgrade/firmware : Upload upgrade firmware
     * Upload upgrade firmware&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Manual Firmware Upgrade 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;-30402  -  Failed to upload the firmware file for upgrade.&lt;br/&gt;-39022  -  This file size is too large.&lt;br/&gt;-39027  -  Invalid upgrade file.
     *
     * @param omadacId Omada ID (required)
     * @param description Description of upload firmware (required)
     * @param showModel ShowModel of upload firmware, you can also get this field throw: \&quot;Get the model of the specified site\&quot; (required)
     * @param compoundModel CompoundModel of upload firmware, you can also get this field throw: \&quot;Get the model of the specified site\&quot; (required)
     * @param targetEnable Do the sites set up specified firmware, it should be a value as follows: true, false (required)
     * @param targetSites Target sites ID, it exists when \&quot;targetEnable\&quot; is true (required)
     * @param inlineObject  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Upload upgrade firmware", nickname = "uploadUpgradeFirmware", notes = "Upload upgrade firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30402  -  Failed to upload the firmware file for upgrade.<br/>-39022  -  This file size is too large.<br/>-39027  -  Invalid upgrade file.", response = OperationResponseUploadFirmwareResInfo.class, tags={ "Omada/Firmware","Firmware", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseUploadFirmwareResInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/files/upgrade/firmware",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseUploadFirmwareResInfo> uploadUpgradeFirmware(@NotNull @ApiParam(value = "Description of upload firmware", required = true) @Valid @RequestParam(value = "description", required = true) String description,@NotNull @ApiParam(value = "ShowModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\"", required = true) @Valid @RequestParam(value = "showModel", required = true) String showModel,@NotNull @ApiParam(value = "CompoundModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\"", required = true) @Valid @RequestParam(value = "compoundModel", required = true) String compoundModel,@NotNull @ApiParam(value = "Do the sites set up specified firmware, it should be a value as follows: true, false", required = true) @Valid @RequestParam(value = "targetEnable", required = true) Boolean targetEnable,@NotNull @ApiParam(value = "Target sites ID, it exists when \"targetEnable\" is true", required = true) @Valid @RequestParam(value = "targetSites", required = true) List<String> targetSites,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) InlineObject inlineObject);

}
