package org.wfc.omada.api.sitesetting;

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.sitesetting.model.OperationResponseGridVoPoeScheduleQueryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoPortScheduleQueryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListPoeDeviceDetail;
import org.wfc.omada.api.sitesetting.model.OperationResponseListPortDeviceDetail;
import org.wfc.omada.api.sitesetting.model.OperationResponseListRebootScheduleQueryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListUpgradeScheduleQueryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseWithoutResult;
import org.wfc.omada.api.sitesetting.model.PoeScheduleOpenApiVo;
import org.wfc.omada.api.sitesetting.model.PortScheduleOpenApiVo;
import org.wfc.omada.api.sitesetting.model.RebootScheduleOpenApiVo;
import org.wfc.omada.api.sitesetting.model.UpgradeScheduleOpenApiVo;

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

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

    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/poe-schedules : Create new PoE Schedule
     * Create new Poe Schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33000  -  This site does not exist.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-33603  -  Source or Destination entry does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param poeScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new PoE Schedule", nickname = "createPoeSchedule", notes = "Create new Poe Schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33000  -  This site does not exist.<br/>-33006  -  This name already exists in this site.<br/>-33603  -  Source or Destination entry does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/poe-schedules",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createPoeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PoeScheduleOpenApiVo poeScheduleOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/port-schedules : Create new Port Schedule
     * Create new Port Schedule.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33000  -  This site does not exist.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-33603  -  Source or Destination entry does not exist.&lt;br/&gt;-34554  -  The number of Port schedules has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param portScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new Port Schedule", nickname = "createPortSchedule", notes = "Create new Port Schedule.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33000  -  This site does not exist.<br/>-33006  -  This name already exists in this site.<br/>-33603  -  Source or Destination entry does not exist.<br/>-34554  -  The number of Port schedules has reached the limit.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/port-schedules",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createPortSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PortScheduleOpenApiVo portScheduleOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/reboot-schedules : Create new reboot schedule
     * Create new reboot schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-34501  -  The number of RebootSchedules has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param rebootScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new reboot schedule", nickname = "createRebootSchedule", notes = "Create new reboot schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33006  -  This name already exists in this site.<br/>-34501  -  The number of RebootSchedules has reached the limit.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/reboot-schedules",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createRebootSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) RebootScheduleOpenApiVo rebootScheduleOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/upgrade-schedules : Create new upgrade schedule
     * Create new upgrade schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-34547  -  Please select at least one device.&lt;br/&gt;-34550  -  The number of upgrade schedules has reached the limit.&lt;br/&gt;-34551  -  The execution time cannot be earlier than the current system time.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param upgradeScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new upgrade schedule", nickname = "createUpgradeSchedule", notes = "Create new upgrade schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33006  -  This name already exists in this site.<br/>-34547  -  Please select at least one device.<br/>-34550  -  The number of upgrade schedules has reached the limit.<br/>-34551  -  The execution time cannot be earlier than the current system time.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/upgrade-schedules",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createUpgradeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpgradeScheduleOpenApiVo upgradeScheduleOpenApiVo);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/poe-schedules/{poeScheduleId} : Delete PoE Schedule
     * Delete Poe Schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33000  -  This site does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param poeScheduleId PoE Schedule ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete PoE Schedule", nickname = "deletePoeSchedule", notes = "Delete Poe Schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33000  -  This site does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/poe-schedules/{poeScheduleId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deletePoeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "PoE Schedule ID",required=true) @PathVariable("poeScheduleId") String poeScheduleId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/port-schedules/{portScheduleId} : Delete Port Schedule
     * Delete Port Schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param portScheduleId Port Schedule ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete Port Schedule", nickname = "deletePortSchedule", notes = "Delete Port Schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/port-schedules/{portScheduleId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deletePortSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Port Schedule ID",required=true) @PathVariable("portScheduleId") String portScheduleId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/reboot-schedules/{id} : Delete reboot schedule
     * Delete reboot schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33000  -  This site does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Reboot Schedule ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete reboot schedule", nickname = "deleteRebootSchedule", notes = "Delete reboot schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33000  -  This site does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/reboot-schedules/{id}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteRebootSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Reboot Schedule ID",required=true) @PathVariable("id") String id);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/upgrade-schedules/{id} : Delete upgrade schedule
     * Delete upgrade schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33000  -  This site does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Upgrade Schedule ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete upgrade schedule", nickname = "deleteUpgradeSchedule", notes = "Delete upgrade schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33000  -  This site does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/upgrade-schedules/{id}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteUpgradeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Upgrade Schedule ID",required=true) @PathVariable("id") String id);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/poe-ports : Get PoE ports list
     * Get PoE ports list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get PoE ports list", nickname = "getPoePortsList", notes = "Get PoE ports list<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseListPoeDeviceDetail.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListPoeDeviceDetail.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/poe-ports",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListPoeDeviceDetail> getPoePortsList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/poe-schedules : Get PoE schedule list
     * Get poe schedule list.(Pagination)&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get PoE schedule list", nickname = "getPoeScheduleList", notes = "Get poe schedule list.(Pagination)<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseGridVoPoeScheduleQueryOpenApiVo.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPoeScheduleQueryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/poe-schedules",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoPoeScheduleQueryOpenApiVo> getPoeScheduleList(@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.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/port-schedules : Get port schedule list
     * Get port schedule list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get port schedule list", nickname = "getPortScheduleList", notes = "Get port schedule list<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseGridVoPortScheduleQueryOpenApiVo.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPortScheduleQueryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/port-schedules",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoPortScheduleQueryOpenApiVo> getPortScheduleList(@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.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/port-status-ports : Get device ports list supporting port schedule
     * Get device ports list supporting port schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get device ports list supporting port schedule", nickname = "getPortSchedulePorts", notes = "Get device ports list supporting port schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseListPortDeviceDetail.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListPortDeviceDetail.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/port-status-ports",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListPortDeviceDetail> getPortSchedulePorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/reboot-schedules : Get reboot schedule list
     * Get reboot schedule list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get reboot schedule list", nickname = "getRebootScheduleList", notes = "Get reboot schedule list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseListRebootScheduleQueryOpenApiVo.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListRebootScheduleQueryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/reboot-schedules",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListRebootScheduleQueryOpenApiVo> getRebootScheduleList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/upgrade-schedules : Get upgrade schedule list
     * Get upgrade schedule list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get upgrade schedule list", nickname = "getUpgradeScheduleList", notes = "Get upgrade schedule list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseListUpgradeScheduleQueryOpenApiVo.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListUpgradeScheduleQueryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/upgrade-schedules",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListUpgradeScheduleQueryOpenApiVo> getUpgradeScheduleList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/poe-schedules/{poeScheduleId} : Modify PoE Schedule
     * Modify Poe Schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-33603  -  Source or Destination entry does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param poeScheduleId PoE Schedule ID (required)
     * @param poeScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify PoE Schedule", nickname = "modifyPoeSchedule", notes = "Modify Poe Schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33006  -  This name already exists in this site.<br/>-33603  -  Source or Destination entry does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/poe-schedules/{poeScheduleId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyPoeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "PoE Schedule ID",required=true) @PathVariable("poeScheduleId") String poeScheduleId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PoeScheduleOpenApiVo poeScheduleOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/port-schedules/{portScheduleId} : Modify Port Schedule
     * Modify Port Schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33006  -  This name already exists in this site.&lt;br/&gt;-33603  -  Source or Destination entry does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param portScheduleId Port Schedule ID (required)
     * @param portScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify Port Schedule", nickname = "modifyPortSchedule", notes = "Modify Port Schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33006  -  This name already exists in this site.<br/>-33603  -  Source or Destination entry does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/port-schedules/{portScheduleId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyPortSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Port Schedule ID",required=true) @PathVariable("portScheduleId") String portScheduleId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PortScheduleOpenApiVo portScheduleOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/reboot-schedules/{id} : Modify reboot schedule
     * Modify reboot schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33006  -  This name already exists in this site.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Reboot Schedule ID (required)
     * @param rebootScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify reboot schedule", nickname = "modifyRebootSchedule", notes = "Modify reboot schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33006  -  This name already exists in this site.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/reboot-schedules/{id}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyRebootSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Reboot Schedule ID",required=true) @PathVariable("id") String id,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) RebootScheduleOpenApiVo rebootScheduleOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/upgrade-schedules/{id} : Modify upgrade schedule
     * Modify upgrade schedule&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-1004  -  Invalid request type.&lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-34547  -  Please select at least one device.&lt;br/&gt;-34551  -  The execution time cannot be earlier than the current system time.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Upgrade Schedule ID (required)
     * @param upgradeScheduleOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify upgrade schedule", nickname = "modifyUpgradeSchedule", notes = "Modify upgrade schedule<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-1004  -  Invalid request type.<br/>-33006  -  This name already exists in this site.<br/>-34547  -  Please select at least one device.<br/>-34551  -  The execution time cannot be earlier than the current system time.", response = OperationResponseWithoutResult.class, tags={ "Omada/Schedule","Schedule", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/upgrade-schedules/{id}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyUpgradeSchedule(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Upgrade Schedule ID",required=true) @PathVariable("id") String id,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpgradeScheduleOpenApiVo upgradeScheduleOpenApiVo);

}
