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.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.device.model.BatchProfileOverride;
import org.wfc.omada.api.device.model.EasyManagedSwitchGeneralConfig;
import org.wfc.omada.api.device.model.OperationResponseEasyManageOverviewInfo;
import org.wfc.omada.api.device.model.OperationResponseEasyManagedSwitchGeneralConfig;
import org.wfc.omada.api.device.model.OperationResponseListNetworkPortsAssociationVo;
import org.wfc.omada.api.device.model.OperationResponseSwitchGeneralConfig;
import org.wfc.omada.api.device.model.OperationResponseSwitchOverviewInfo;
import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
import org.wfc.omada.api.device.model.PortNameList;
import org.wfc.omada.api.device.model.ProfileOverride;
import org.wfc.omada.api.device.model.SwitchGeneralConfig;
import org.wfc.omada.api.device.model.SwitchPortName;
import org.wfc.omada.api.device.model.SwitchPortPoe;
import org.wfc.omada.api.device.model.SwitchPortStatus;
import org.wfc.omada.api.device.model.SwitchPortsPoe;
import org.wfc.omada.api.device.model.SwitchPortsStatus;
import org.wfc.omada.api.device.model.SwitchProfileId;

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

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

    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/name : Batch set name for given ports
     * Batch set name for given ports.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param portNameList  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch set name for given ports", nickname = "batchSetNameForGivenPorts", notes = "Batch set name for given ports.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/name",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> batchSetNameForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PortNameList portNameList);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/poe-mode : Batch set poe mode for given ports
     * Batch set poe mode for given ports. Please enable profile override first to use this interface.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-39737  -  Profile override setting is disabled.&lt;br/&gt;-39747  -  This switch does not support PoE.&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param switchPortsPoe  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch set poe mode for given ports", nickname = "batchSetPoeModeForGivenPorts", notes = "Batch set poe mode for given ports. Please enable profile override first to use this interface.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-39737  -  Profile override setting is disabled.<br/>-39747  -  This switch does not support PoE.<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/poe-mode",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> batchSetPoeModeForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchPortsPoe switchPortsPoe);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/status : Batch set status for given ports
     * Batch set status for given ports. &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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-39723  -  Cannot choose mirroring or aggregating ports to batch modify.&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param switchPortsStatus  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch set status for given ports", nickname = "batchSetPortStatusForGivenPorts", notes = "Batch set status for given ports. <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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-39723  -  Cannot choose mirroring or aggregating ports to batch modify.<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/status",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> batchSetPortStatusForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchPortsStatus switchPortsStatus);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/profile-override : Batch set profile-override for given ports
     * Batch set profile-override for given ports.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param batchProfileOverride  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Batch set profile-override for given ports", nickname = "batchSetProfileOverrideForGivenPorts", notes = "Batch set profile-override for given ports.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/profile-override",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> batchSetProfileOverrideForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BatchProfileOverride batchProfileOverride);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/general-config : Get switch general config (easy managed switch)
     * Get easy managed switch general config.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-39700  -  Switch does not exist&lt;br/&gt;-39743  -  The smart switch should use the corresponding path.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get switch general config (easy managed switch)", nickname = "getESGeneralConfig", notes = "Get easy managed switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-39700  -  Switch does not exist<br/>-39743  -  The smart switch should use the corresponding path.", response = OperationResponseEasyManagedSwitchGeneralConfig.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseEasyManagedSwitchGeneralConfig.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/general-config",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseEasyManagedSwitchGeneralConfig> getESGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac} : Get switch info (easy managed switch)
     * Get easy managed switch info.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-39050  -  This device does not exist.&lt;br/&gt;-39743  -  The smart switch should use the corresponding path.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get switch info (easy managed switch)", nickname = "getESInfo", notes = "Get easy managed switch info.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-39050  -  This device does not exist.<br/>-39743  -  The smart switch should use the corresponding path.", response = OperationResponseEasyManageOverviewInfo.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseEasyManageOverviewInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseEasyManageOverviewInfo> getESInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/network-overview : Query easy managed switch valid network
     * Query easy managed switch valid network.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-39700  -  Switch does not exist&lt;br/&gt;-39748  -  This request is only for the Easy Managed Switch.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Query easy managed switch valid network", nickname = "getESNetworkOverview", notes = "Query easy managed switch valid network.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-39700  -  Switch does not exist<br/>-39748  -  This request is only for the Easy Managed Switch.", response = OperationResponseListNetworkPortsAssociationVo.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListNetworkPortsAssociationVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/network-overview",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListNetworkPortsAssociationVo> getESNetworkOverview(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/general-config : Get switch general config
     * Get switch general config.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-39700  -  Switch does not exist&lt;br/&gt;-39742  -  The Easy Managed Switch should use the corresponding path.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get switch general config", nickname = "getGeneralConfig", notes = "Get switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-39700  -  Switch does not exist<br/>-39742  -  The Easy Managed Switch should use the corresponding path.", response = OperationResponseSwitchGeneralConfig.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSwitchGeneralConfig.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/general-config",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseSwitchGeneralConfig> getGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac} : Get switch info
     * Get switch info.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Device 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;-39050  -  This device does not exist.&lt;br/&gt;-39742  -  The Easy Managed Switch should use the corresponding path.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get switch info", nickname = "getSwitchInfo", notes = "Get switch info.<br/><br/>The interface requires one of the permissions: <br/>Site Device 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/>-39050  -  This device does not exist.<br/>-39742  -  The Easy Managed Switch should use the corresponding path.", response = OperationResponseSwitchOverviewInfo.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseSwitchOverviewInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseSwitchOverviewInfo> getSwitchInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/general-config : Modify switch general config (easy managed switch)
     * Modify easy managed switch general config.&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;-39700  -  Switch does not exist&lt;br/&gt;-39743  -  The smart switch should use the corresponding path.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param easyManagedSwitchGeneralConfig  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify switch general config (easy managed switch)", nickname = "modifyESGeneralConfig", notes = "Modify easy managed switch general config.<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/>-39700  -  Switch does not exist<br/>-39743  -  The smart switch should use the corresponding path.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/general-config",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyESGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) EasyManagedSwitchGeneralConfig easyManagedSwitchGeneralConfig);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/general-config : Modify switch general config
     * Modify switch general config.&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;-39700  -  Switch does not exist&lt;br/&gt;-39742  -  The Easy Managed Switch should use the corresponding path.&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param switchGeneralConfig  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify switch general config", nickname = "modifyGeneralConfig", notes = "Modify switch general config.<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/>-39700  -  Switch does not exist<br/>-39742  -  The Easy Managed Switch should use the corresponding path.<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/general-config",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchGeneralConfig switchGeneralConfig);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/name : Set name for given port
     * Set name for given port.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param port Port ID (required)
     * @param switchPortName  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Set name for given port", nickname = "setNameForGivenPort", notes = "Set name for given port.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/name",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> setNameForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchPortName switchPortName);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/poe-mode : Set poe mode for given port
     * Set poe mode for given port. Please enable profile override first to use this interface.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-39737  -  Profile override setting is disabled.&lt;br/&gt;-39747  -  This switch does not support PoE.&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param port  (required)
     * @param switchPortPoe  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Set poe mode for given port", nickname = "setPoeModeForGivenPort", notes = "Set poe mode for given port. Please enable profile override first to use this interface.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-39737  -  Profile override setting is disabled.<br/>-39747  -  This switch does not support PoE.<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/poe-mode",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> setPoeModeForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "",required=true) @PathVariable("port") String port,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchPortPoe switchPortPoe);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/status : Set port status for given port
     * Set port status for given port. &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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-39738  -  Cannot choose mirroring or aggregating port to modify status.&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param port Port (required)
     * @param switchPortStatus  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Set port status for given port", nickname = "setPortModeForGivenPort", notes = "Set port status for given port. <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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-39738  -  Cannot choose mirroring or aggregating port to modify status.<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/status",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> setPortModeForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port",required=true) @PathVariable("port") String port,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchPortStatus switchPortStatus);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile : Set profile for given port
     * Set profile for given port.&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;-33507  -  This profile does not exist.&lt;br/&gt;-33558  -  The profile does not support the Easy Managed Switch.&lt;br/&gt;-33564  -  The number of VLANs has reached the limit of the Easy Managed Switch.&lt;br/&gt;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param port Port ID (required)
     * @param switchProfileId  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Set profile for given port", nickname = "setProfileForGivenPort", notes = "Set profile for given port.<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/>-33507  -  This profile does not exist.<br/>-33558  -  The profile does not support the Easy Managed Switch.<br/>-33564  -  The number of VLANs has reached the limit of the Easy Managed Switch.<br/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> setProfileForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) SwitchProfileId switchProfileId);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile-override : Set profile-override for given port
     * Set profile-override for given port.&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;-39050  -  This device does not exist.&lt;br/&gt;-39701  -  This port does not exist&lt;br/&gt;-40205  -  The device has been added to the stack group and related configurations cannot be modified.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
     * @param port Port ID (required)
     * @param profileOverride  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Set profile-override for given port", nickname = "setProfileOverrideForGivenPort", notes = "Set profile-override for given port.<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/>-39050  -  This device does not exist.<br/>-39701  -  This port does not exist<br/>-40205  -  The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile-override",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> setProfileOverrideForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ProfileOverride profileOverride);

}
