package org.wfc.omada.api.organization;

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.organization.model.BatchSiteCopyVo;
import org.wfc.omada.api.organization.model.BatchSiteImportVo;
import org.wfc.omada.api.organization.model.CreateSiteByTemplate;
import org.wfc.omada.api.organization.model.CreateSiteEntity;
import org.wfc.omada.api.organization.model.CreateSiteTagOpenApiVo;
import org.wfc.omada.api.organization.model.DeleteSiteTagOpenApiVo;
import org.wfc.omada.api.organization.model.DeviceAccountSettingOpenApiVo;
import org.wfc.omada.api.organization.model.OperationResponseDeviceAccountSettingOpenApiVo;
import org.wfc.omada.api.organization.model.OperationResponseGridVoSiteSummaryInfo;
import org.wfc.omada.api.organization.model.OperationResponseListString;
import org.wfc.omada.api.organization.model.OperationResponseObject;
import org.wfc.omada.api.organization.model.OperationResponseSiteEntity;
import org.wfc.omada.api.organization.model.OperationResponseSiteResultVo;
import org.wfc.omada.api.organization.model.OperationResponseWithoutResult;
import org.wfc.omada.api.organization.model.Scenario;
import org.wfc.omada.api.organization.model.SiteTag;
import org.wfc.omada.api.organization.model.UpdateSiteEntity;

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:17:09.288+08:00[Asia/Shanghai]")

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

    /**
     * POST /openapi/v1/{omadacId}/scenarios : Create new scenario
     * Create new scenario&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 scenario  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new scenario", nickname = "addScenario", notes = "Create new scenario<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseListString.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListString.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/scenarios",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseListString> addScenario(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) Scenario scenario);


    /**
     * POST /openapi/v1/{omadacId}/sites/tags : Create new site tag
     * Create new site tag.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param createSiteTagOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new site tag", nickname = "addTag", notes = "Create new site tag.<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard Manager Modify", response = SiteTag.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = SiteTag.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/tags",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<SiteTag> addTag(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateSiteTagOpenApiVo createSiteTagOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/copy : Batch create sites by copying from existing site
     * Batch create sites by copying from existing site&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard 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 batchSiteCopyVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch create sites by copying from existing site", nickname = "batchSiteCopy", notes = "Batch create sites by copying from existing site<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard 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 = OperationResponseSiteResultVo.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSiteResultVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/copy",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseSiteResultVo> batchSiteCopy(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchSiteCopyVo batchSiteCopyVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/multi-import : Batch create sites by importing site backup files from file server
     * Batch create sites by importing site backup files from file server.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Dashboard 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 batchSiteImportVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch create sites by importing site backup files from file server", nickname = "batchSiteImport", notes = "Batch create sites by importing site backup files from file server.<br/><br/>The interface requires one of the permissions: <br/>Site Dashboard 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 = OperationResponseSiteResultVo.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSiteResultVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/multi-import",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseSiteResultVo> batchSiteImport(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchSiteImportVo batchSiteImportVo);


    /**
     * POST /openapi/v1/{omadacId}/sites : Create new site
     * Create new site&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard 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;-33101  -  This name already exists. Please enter another name for this site.&lt;br/&gt;-33104  -  The number of sites has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param createSiteEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new site", nickname = "createNewSite", notes = "Create new site<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard 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/>-33101  -  This name already exists. Please enter another name for this site.<br/>-33104  -  The number of sites has reached the limit.", response = OperationResponseObject.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseObject> createNewSite(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateSiteEntity createSiteEntity);


    /**
     * POST /openapi/v1/{omadacId}/sites/template : Create new site from site template
     * Create new site from site template&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard 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;-33101  -  This name already exists. Please enter another name for this site.&lt;br/&gt;-33104  -  The number of sites has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param createSiteByTemplate  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new site from site template", nickname = "createNewSiteByTemplate", notes = "Create new site from site template<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard 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/>-33101  -  This name already exists. Please enter another name for this site.<br/>-33104  -  The number of sites has reached the limit.", response = OperationResponseObject.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/template",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseObject> createNewSiteByTemplate(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateSiteByTemplate createSiteByTemplate);


    /**
     * DELETE /openapi/v1/{omadacId}/scenarios : Delete site scenario
     * Delete site scenario&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 scenario  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete site scenario", nickname = "deleteScenario", notes = "Delete site scenario<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/scenarios",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteScenario(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) Scenario scenario);


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


    /**
     * DELETE /openapi/v1/{omadacId}/sites/tags : Delete an existing site tag
     * Delete an existing site tag.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param deleteSiteTagOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing site tag", nickname = "deleteTag", notes = "Delete an existing site tag.<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/tags",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteTag(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) DeleteSiteTagOpenApiVo deleteSiteTagOpenApiVo);


    /**
     * GET /openapi/v1/{omadacId}/scenarios : Get scenario list
     * Get scenario list
     *
     * @param omadacId Omada ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get scenario list", nickname = "getScenarioList", notes = "Get scenario list", response = OperationResponseListString.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListString.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/scenarios",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListString> getScenarioList(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/device-account : Get site device account setting
     * Get site device account setting&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &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;-1300  -  Failed to get site information.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site device account setting", nickname = "getSiteDeviceAccountSetting", notes = "Get site device account setting<br/><br/>The interface requires one of the permissions: <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/>-1300  -  Failed to get site information.", response = OperationResponseDeviceAccountSettingOpenApiVo.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAccountSettingOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/device-account",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseDeviceAccountSettingOpenApiVo> getSiteDeviceAccountSetting(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId} : Get site info
     * Get site info&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &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;-1300  -  Failed to get site information.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site info", nickname = "getSiteEntity", notes = "Get site info<br/><br/>The interface requires one of the permissions: <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/>-1300  -  Failed to get site information.", response = OperationResponseSiteEntity.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSiteEntity.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseSiteEntity> getSiteEntity(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites : Get site list
     * Get site list
     *
     * @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 sortsName Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
     * @param searchKey Fuzzy query parameters, support field name (optional)
     * @param filtersTag Filter query parameters, support field tag ID (optional)
     * @param filtersType Filter query parameters, support field site type. 0: basic site; 1: pro site. (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get site list", nickname = "getSiteList", notes = "Get site list", response = OperationResponseGridVoSiteSummaryInfo.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoSiteSummaryInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoSiteSummaryInfo> getSiteList(@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect") @Valid @RequestParam(value = "sorts.name", required = false) String sortsName,@ApiParam(value = "Fuzzy query parameters, support field name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey,@ApiParam(value = "Filter query parameters, support field tag ID") @Valid @RequestParam(value = "filters.tag", required = false) String filtersTag,@ApiParam(value = "Filter query parameters, support field site type. 0: basic site; 1: pro site.") @Valid @RequestParam(value = "filters.type", required = false) String filtersType);

    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites",
            produces = "*/*",
            method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoSiteSummaryInfo> getSiteList(@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);

    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites",
            produces = "*/*",
            method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoSiteSummaryInfo> getSiteList(@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 = "Fuzzy query parameters, support field name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);


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


    /**
     * PATCH /openapi/v1/{omadacId}/sites/tags : Modify an existing site tag
     * Modify an existing site tag.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteTag  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing site tag", nickname = "modifyTag", notes = "Modify an existing site tag.<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/tags",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyTag(@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SiteTag siteTag);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/device-account : Update site device account setting
     * Update site device account settin&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify&lt;br/&gt;Global Dashboard 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;-1300  -  Failed to get site information.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param deviceAccountSettingOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Update site device account setting", nickname = "updateSiteDeviceAccountSetting", notes = "Update site device account settin<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify<br/>Global Dashboard 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/>-1300  -  Failed to get site information.", response = OperationResponseWithoutResult.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/device-account",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> updateSiteDeviceAccountSetting(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) DeviceAccountSettingOpenApiVo deviceAccountSettingOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId} : Modify an existing site
     * Modify an existing site&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Global Dashboard 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;-1300  -  Failed to get site information.&lt;br/&gt;-33101  -  This name already exists. Please enter another name for this site.&lt;br/&gt;-33104  -  The number of sites has reached the limit.&lt;br/&gt;-33809  -  This scenario does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param updateSiteEntity  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing site", nickname = "updateSiteEntity", notes = "Modify an existing site<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard 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/>-1300  -  Failed to get site information.<br/>-33101  -  This name already exists. Please enter another name for this site.<br/>-33104  -  The number of sites has reached the limit.<br/>-33809  -  This scenario does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Site","Site", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> updateSiteEntity(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateSiteEntity updateSiteEntity);

}
