package org.wfc.omada.api.maintenance;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.maintenance.model.BackupFileListVo;
import org.wfc.omada.api.maintenance.model.BackupResultOpenApiVo;
import org.wfc.omada.api.maintenance.model.BatchSiteBackupVo;
import org.wfc.omada.api.maintenance.model.BatchSiteFileServerRestoreVo;
import org.wfc.omada.api.maintenance.model.BatchSiteSelfRestoreVo;
import org.wfc.omada.api.maintenance.model.FileServerGlobalBackupVo;
import org.wfc.omada.api.maintenance.model.FileServerGlobalRestoreVo;
import org.wfc.omada.api.maintenance.model.FileServerSiteBackupVo;
import org.wfc.omada.api.maintenance.model.OperationResponseWithoutResult;
import org.wfc.omada.api.maintenance.model.RestoreResultVo;
import org.wfc.omada.api.maintenance.model.SelfGlobalBackupVo;
import org.wfc.omada.api.maintenance.model.SelfGlobalRestoreVo;

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

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

    /**
     * POST /openapi/v1/{omadacId}/maintenance/backup/file-server : Backup controller config to file server
     * Backup controller config to file server. &lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30301  -  Backing up...&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30309  -  Failed to back up the configurations.&lt;br/&gt;-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.
     *
     * @param omadacId Omada ID (required)
     * @param fileServerGlobalBackupVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Backup controller config to file server", nickname = "backupFileServer", notes = "Backup controller config to file server. <br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30301  -  Backing up...<br/>-30304  -  Restoring...<br/>-30309  -  Failed to back up the configurations.<br/>-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/backup/file-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> backupFileServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) FileServerGlobalBackupVo fileServerGlobalBackupVo);


    /**
     * POST /openapi/v1/{omadacId}/maintenance/backup/self-server : Backup controller config to cloud server
     * Backup controller config to cloud server. &lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30301  -  Backing up...&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30309  -  Failed to back up the configurations.
     *
     * @param omadacId Omada ID (required)
     * @param selfGlobalBackupVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Backup controller config to cloud server", nickname = "backupSelfServer", notes = "Backup controller config to cloud server. <br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30301  -  Backing up...<br/>-30304  -  Restoring...<br/>-30309  -  Failed to back up the configurations.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/backup/self-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> backupSelfServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SelfGlobalBackupVo selfGlobalBackupVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/maintenance/multi-backup/file-server : Backup multi sites config to file server
     * Backup multi sites config to file server. At most 300 sites can backup.&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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30301  -  Backing up...&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30309  -  Failed to back up the configurations.&lt;br/&gt;-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.
     *
     * @param omadacId Omada ID (required)
     * @param fileServerSiteBackupVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Backup multi sites config to file server", nickname = "backupSitesFileServer", notes = "Backup multi sites config to file server. At most 300 sites can backup.<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/>-30028  -  The system is busy. Please try again later.<br/>-30301  -  Backing up...<br/>-30304  -  Restoring...<br/>-30309  -  Failed to back up the configurations.<br/>-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/maintenance/multi-backup/file-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> backupSitesFileServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) FileServerSiteBackupVo fileServerSiteBackupVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/maintenance/multi-backup/self-server : Backup multi sites config to self server
     * Backup multi sites config to self server. At most 300 sites can backup.&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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30301  -  Backing up...&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30309  -  Failed to back up the configurations.
     *
     * @param omadacId Omada ID (required)
     * @param batchSiteBackupVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Backup multi sites config to self server", nickname = "backupSitesSelfServer", notes = "Backup multi sites config to self server. At most 300 sites can backup.<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/>-30028  -  The system is busy. Please try again later.<br/>-30301  -  Backing up...<br/>-30304  -  Restoring...<br/>-30309  -  Failed to back up the configurations.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/maintenance/multi-backup/self-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> backupSitesSelfServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchSiteBackupVo batchSiteBackupVo);


    /**
     * GET /openapi/v1/{omadacId}/maintenance/backup/result : Get controller backup result
     * Get controller backup result.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30309  -  Failed to back up the configurations.
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get controller backup result", nickname = "getBackupResult", notes = "Get controller backup result.<br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30028  -  The system is busy. Please try again later.<br/>-30309  -  Failed to back up the configurations.", response = BackupResultOpenApiVo.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = BackupResultOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/backup/result",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<BackupResultOpenApiVo> getBackupResult(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/maintenance/restore/result : Get controller restore result
     * Get controller restore result.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting View Only&lt;br/&gt;Site Settings Manager View Only&lt;br/&gt;Site Dashboard 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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30303  -  Failed to restore because the file is incompatible.&lt;br/&gt;-30305  -  Failed to restore because of unexpected errors. Please try again later.&lt;br/&gt;-30307  -  Invalid configuration file. Please select the configuration file of the same integrated router model.&lt;br/&gt;-30317  -  Cannot restore a site-level backup file into the controller. Please go to global Dashboard &gt; Site List to import&lt;br/&gt;-30318  -  Invalid file. To restore controller data, please go to Settings &gt; Maintenance &gt; Backup &amp; Restore.&lt;br/&gt;-30319  -  Failed to restore due to database anomaly, please try again later.&lt;br/&gt;-30326  -  The devices in the customer configuration file are duplicate with the adopted devices and cannot be imported.
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get controller restore result", nickname = "getRestoreResult", notes = "Get controller restore result.<br/><br/>The interface requires one of the permissions: <br/>Global Other Setting View Only<br/>Site Settings Manager View Only<br/>Site Dashboard 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/>-30028  -  The system is busy. Please try again later.<br/>-30303  -  Failed to restore because the file is incompatible.<br/>-30305  -  Failed to restore because of unexpected errors. Please try again later.<br/>-30307  -  Invalid configuration file. Please select the configuration file of the same integrated router model.<br/>-30317  -  Cannot restore a site-level backup file into the controller. Please go to global Dashboard > Site List to import<br/>-30318  -  Invalid file. To restore controller data, please go to Settings > Maintenance > Backup & Restore.<br/>-30319  -  Failed to restore due to database anomaly, please try again later.<br/>-30326  -  The devices in the customer configuration file are duplicate with the adopted devices and cannot be imported.", response = RestoreResultVo.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = RestoreResultVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/restore/result",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<RestoreResultVo> getRestoreResult(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/maintenance/backup/files : Get controller backup file list in self server
     * Get controller backup file list in self server.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get controller backup file list in self server", nickname = "getSelfServerFileList", notes = "Get controller backup file list in self server.<br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30028  -  The system is busy. Please try again later.", response = BackupFileListVo.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = BackupFileListVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/backup/files",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<BackupFileListVo> getSelfServerFileList(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/maintenance/backup/files : Get site backup file list in self server
     * Get site backup file list in self server.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only&lt;br/&gt;Global Dashboard 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;-30028  -  The system is busy. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site backup file list in self server", nickname = "getSelfServerSiteFileList", notes = "Get site backup file list in self server.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only<br/>Global Dashboard 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/>-30028  -  The system is busy. Please try again later.", response = BackupFileListVo.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = BackupFileListVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/maintenance/backup/files",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<BackupFileListVo> getSelfServerSiteFileList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/backup/result : Get site backup result
     * Get site backup result.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only&lt;br/&gt;Global Dashboard 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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30309  -  Failed to back up the configurations.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site backup result", nickname = "getSiteBackupResult", notes = "Get site backup result.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only<br/>Global Dashboard 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/>-30028  -  The system is busy. Please try again later.<br/>-30309  -  Failed to back up the configurations.", response = BackupResultOpenApiVo.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = BackupResultOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/backup/result",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<BackupResultOpenApiVo> getSiteBackupResult(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * POST /openapi/v1/{omadacId}/maintenance/restore/file-server : Restore controller config from file server
     * Restore controller config from file server.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30304  -  Restoring...&lt;br/&gt;-30305  -  Failed to restore because of unexpected errors. Please try again later.&lt;br/&gt;-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.
     *
     * @param omadacId Omada ID (required)
     * @param fileServerGlobalRestoreVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Restore controller config from file server", nickname = "restoreFileServer", notes = "Restore controller config from file server.<br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30304  -  Restoring...<br/>-30305  -  Failed to restore because of unexpected errors. Please try again later.<br/>-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/restore/file-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> restoreFileServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) FileServerGlobalRestoreVo fileServerGlobalRestoreVo);


    /**
     * POST /openapi/v1/{omadacId}/maintenance/restore/self-server : Restore controller config from cloud server
     * Restore controller config from cloud server.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Other Setting 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;-30304  -  Restoring...&lt;br/&gt;-30305  -  Failed to restore because of unexpected errors. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param selfGlobalRestoreVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Restore controller config from cloud server", nickname = "restoreSelfServer", notes = "Restore controller config from cloud server.<br/><br/>The interface requires one of the permissions: <br/>Global Other Setting 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/>-30304  -  Restoring...<br/>-30305  -  Failed to restore because of unexpected errors. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/maintenance/restore/self-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> restoreSelfServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SelfGlobalRestoreVo selfGlobalRestoreVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/maintenance/multi-restore/file-server : Restore multi sites config from file server
     * Restore multi sites config from file server. At most 300 sites can be restored.&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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30305  -  Failed to restore because of unexpected errors. Please try again later.&lt;br/&gt;-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.
     *
     * @param omadacId Omada ID (required)
     * @param batchSiteFileServerRestoreVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Restore multi sites config from file server", nickname = "restoreSitesFileServer", notes = "Restore multi sites config from file server. At most 300 sites can be restored.<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/>-30028  -  The system is busy. Please try again later.<br/>-30304  -  Restoring...<br/>-30305  -  Failed to restore because of unexpected errors. Please try again later.<br/>-30320  -  Failed to connect to the file server. The file server may not exist or it is temporarily unavailable. Please check the information and your network connection, and try again.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/maintenance/multi-restore/file-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> restoreSitesFileServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchSiteFileServerRestoreVo batchSiteFileServerRestoreVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/maintenance/multi-restore/self-server : Restore multi sites config from self server
     * Restore multi sites config from self server. At most 300 sites can be restored.&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;-30028  -  The system is busy. Please try again later.&lt;br/&gt;-30304  -  Restoring...&lt;br/&gt;-30305  -  Failed to restore because of unexpected errors. Please try again later.
     *
     * @param omadacId Omada ID (required)
     * @param batchSiteSelfRestoreVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Restore multi sites config from self server", nickname = "restoreSitesSelfServer", notes = "Restore multi sites config from self server. At most 300 sites can be restored.<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/>-30028  -  The system is busy. Please try again later.<br/>-30304  -  Restoring...<br/>-30305  -  Failed to restore because of unexpected errors. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Backup and Restore","Backup and Restore", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/maintenance/multi-restore/self-server",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> restoreSitesSelfServer(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchSiteSelfRestoreVo batchSiteSelfRestoreVo);

}
