package org.wfc.omada.api.sitesetting;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.wfc.omada.config.FeignConfig;
import org.wfc.omada.api.sitesetting.model.ApnProfileConfig;
import org.wfc.omada.api.sitesetting.model.BonjourServiceOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateGroupOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateLdapProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateRadiusProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateRadiusUserOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateRateLimitProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.CreateTimeRangeProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.GatewayQosServiceOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoGatewayQosServiceDetailOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseGridVoRadiusUserOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListApnProfile;
import org.wfc.omada.api.sitesetting.model.OperationResponseListGroupOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListLdapProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListOuiProfileSummaryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListPpskProfileBriefInfo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListRadiusProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListRateLimitProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseListTimeRangeProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseOuiGridVoOuiProfileQueryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponsePpskProfileVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseResIdOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseResponseDataVoBonjourServiceDetailOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseResponseDataVoGatewayQosServiceSummaryOpenApiVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseResponseIdVo;
import org.wfc.omada.api.sitesetting.model.OperationResponseWithoutResult;
import org.wfc.omada.api.sitesetting.model.OuiProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.PpskAutoCreateSetting;
import org.wfc.omada.api.sitesetting.model.PpskProfile;
import org.wfc.omada.api.sitesetting.model.PpskProfileV2;
import org.wfc.omada.api.sitesetting.model.Psk;
import org.wfc.omada.api.sitesetting.model.UpdateRateLimitProfileOpenApiVo;
import org.wfc.omada.api.sitesetting.model.UpdateTimeRangeProfileOpenApiVo;

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

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

    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/ppsk-profile/generate-psk : Auto Create PSKs
     * Auto Create PSKs&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ppskAutoCreateSetting  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Auto Create PSKs", nickname = "autoCreatePPSK", notes = "Auto Create PSKs<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = Psk.class, responseContainer = "List", tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = Psk.class, responseContainer = "List") })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/ppsk-profile/generate-psk",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<List<Psk>> autoCreatePPSK(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PpskAutoCreateSetting ppskAutoCreateSetting);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/apn : Create a new APN profile
     * Create a new APN profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-33506  -  This Profile name already exists.&lt;br/&gt;-33553  -  The LTE WAN port is configured with IPv6 network. Please re-select the APN Profile of IPv6 mode.&lt;br/&gt;-33798  -  The number of APN Profile has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param apnProfileConfig  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create a new APN profile", nickname = "createApnProfile", notes = "Create a new APN profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-33506  -  This Profile name already exists.<br/>-33553  -  The LTE WAN port is configured with IPv6 network. Please re-select the APN Profile of IPv6 mode.<br/>-33798  -  The number of APN Profile has reached the limit.", response = OperationResponseResIdOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResIdOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/apn",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResIdOpenApiVo> createApnProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ApnProfileConfig apnProfileConfig);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/groups : Create a new group profile
     * Create a new group profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-33702  -  This group name already exists.&lt;br/&gt;-33706  -  The number of rules has reached the limit.&lt;br/&gt;-33707  -  This MAC List already exists.&lt;br/&gt;-33708  -  The number of addresses has reached the limit.&lt;br/&gt;-33724  -  The number of IpGroups has reached the limit.&lt;br/&gt;-33725  -  The number of IpPortGroups has reached the limit.&lt;br/&gt;-33726  -  The number of Ips has reached the limit of IpGroup.&lt;br/&gt;-33727  -  The number of Ips has reached the limit of IpPortGroup.&lt;br/&gt;-33728  -  The number of Ports has reached the limit of IpPortGroup.&lt;br/&gt;-33749  -  Duplicate MAC addresses exist in the MAC address list of the MAC group.&lt;br/&gt;-33760  -  The number of IP addresses in the IPv6 group has reached the limit.&lt;br/&gt;-33761  -  The number of IPv6 groups has reached the limit.&lt;br/&gt;-33765  -  The number of IP addresses in the IPv6 Port group has reached the limit.&lt;br/&gt;-33766  -  The number of Ports has reached the limit of Ipv6PortGroup.&lt;br/&gt;-33767  -  The number of IPv6 port groups has reached the limit.&lt;br/&gt;-33770  -  The number of Country groups has reached the limit.&lt;br/&gt;-33815  -  The number of domain groups has reached the limit.&lt;br/&gt;-33817  -  The number of domain names has reached the limit of domain group.&lt;br/&gt;-33819  -  This domain group has wrong type of domain.&lt;br/&gt;-33822  -  This domain group has wrong domain or invalid format port.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createGroupOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create a new group profile", nickname = "createGroupProfile", notes = "Create a new group profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-33702  -  This group name already exists.<br/>-33706  -  The number of rules has reached the limit.<br/>-33707  -  This MAC List already exists.<br/>-33708  -  The number of addresses has reached the limit.<br/>-33724  -  The number of IpGroups has reached the limit.<br/>-33725  -  The number of IpPortGroups has reached the limit.<br/>-33726  -  The number of Ips has reached the limit of IpGroup.<br/>-33727  -  The number of Ips has reached the limit of IpPortGroup.<br/>-33728  -  The number of Ports has reached the limit of IpPortGroup.<br/>-33749  -  Duplicate MAC addresses exist in the MAC address list of the MAC group.<br/>-33760  -  The number of IP addresses in the IPv6 group has reached the limit.<br/>-33761  -  The number of IPv6 groups has reached the limit.<br/>-33765  -  The number of IP addresses in the IPv6 Port group has reached the limit.<br/>-33766  -  The number of Ports has reached the limit of Ipv6PortGroup.<br/>-33767  -  The number of IPv6 port groups has reached the limit.<br/>-33770  -  The number of Country groups has reached the limit.<br/>-33815  -  The number of domain groups has reached the limit.<br/>-33817  -  The number of domain names has reached the limit of domain group.<br/>-33819  -  This domain group has wrong type of domain.<br/>-33822  -  This domain group has wrong domain or invalid format port.", response = OperationResponseResIdOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResIdOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/groups",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResIdOpenApiVo> createGroupProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateGroupOpenApiVo createGroupOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/ldap : Create a new LDAP profile
     * Create a new LDAP profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-43401  -  The LDAP profile does not exist.&lt;br/&gt;-43402  -  The profile name already exists.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createLdapProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create a new LDAP profile", nickname = "createLdapProfile", notes = "Create a new LDAP profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-43401  -  The LDAP profile does not exist.<br/>-43402  -  The profile name already exists.", response = OperationResponseResIdOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResIdOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/ldap",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResIdOpenApiVo> createLdapProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateLdapProfileOpenApiVo createLdapProfileOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/bonjour-service : Create new Bonjour Service
     * Create new Bonjour Service.&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;-1001  -  Invalid request parameters.&lt;br/&gt;-33756  -  This Bonjour Service name already exists.&lt;br/&gt;-33757  -  The number of custom Bonjour Service has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param bonjourServiceOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new Bonjour Service", nickname = "createMdnsProfile", notes = "Create new Bonjour Service.<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/>-1001  -  Invalid request parameters.<br/>-33756  -  This Bonjour Service name already exists.<br/>-33757  -  The number of custom Bonjour Service has reached the limit.", response = OperationResponseResponseIdVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResponseIdVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/bonjour-service",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResponseIdVo> createMdnsProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BonjourServiceOpenApiVo bonjourServiceOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/oui-profiles : Create OUI profile
     * Create OUI profileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-33781  -  This OUI profile already exists.&lt;br/&gt;-33782  -  The number of OUIs has reached the limit.&lt;br/&gt;-33784  -  The OUI profile has duplicate OUIs.&lt;br/&gt;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ouiProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create OUI profile", nickname = "createOuiProfile", notes = "Create OUI profileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-33781  -  This OUI profile already exists.<br/>-33782  -  The number of OUIs has reached the limit.<br/>-33784  -  The OUI profile has duplicate OUIs.<br/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/oui-profiles",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createOuiProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) OuiProfileOpenApiVo ouiProfileOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/ppsk-profile : Create PPSK profile
     * Create PPSK profile This interface has been deprecated. Please use the following interface instead: Create PPSK profile V2&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ppskProfile  (optional)
     * @return OK (status code 200)
     * @deprecated
     */
    @ApiOperation(value = "Create PPSK profile", nickname = "createPPSKProfile", notes = "Create PPSK profile This interface has been deprecated. Please use the following interface instead: Create PPSK profile V2<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/ppsk-profile",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createPPSKProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PpskProfile ppskProfile);


    /**
     * POST /openapi/v2/{omadacId}/sites/{siteId}/ppsk-profile : Create PPSK profile V2
     * Create PPSK profile&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ppskProfileV2  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create PPSK profile V2", nickname = "createPPSKProfileV2", notes = "Create PPSK profile<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/ppsk-profile",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createPPSKProfileV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PpskProfileV2 ppskProfileV2);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius : Create a new Radius profile
     * Create a new Radius profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-34000  -  Interim Update Interval ranges from 60 to 86400.&lt;br/&gt;-34002  -  Accounting port number ranges from 60 to 86400.&lt;br/&gt;-34003  -  Enter the shared secret key of the accounting server using 1-128 printable ASCII characters (including the space).&lt;br/&gt;-34004  -  This RADIUS profile already exists.&lt;br/&gt;-34011  -  Invalid IP address of the RADIUS server.&lt;br/&gt;-34011  -  Invalid IP address of the RADIUS server.&lt;br/&gt;-34014  -  The number of RADIUS profiles has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createRadiusProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create a new Radius profile", nickname = "createRadiusProfile", notes = "Create a new Radius profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-34000  -  Interim Update Interval ranges from 60 to 86400.<br/>-34002  -  Accounting port number ranges from 60 to 86400.<br/>-34003  -  Enter the shared secret key of the accounting server using 1-128 printable ASCII characters (including the space).<br/>-34004  -  This RADIUS profile already exists.<br/>-34011  -  Invalid IP address of the RADIUS server.<br/>-34011  -  Invalid IP address of the RADIUS server.<br/>-34014  -  The number of RADIUS profiles has reached the limit.", response = OperationResponseResIdOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResIdOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResIdOpenApiVo> createRadiusProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateRadiusProfileOpenApiVo createRadiusProfileOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius-server/users : Create a new Build-in Radius profile user
     * Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.&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;-34024  -  The radius user name already exists.&lt;br/&gt;-34025  -  The number of radius users has reached the limit.&lt;br/&gt;-34030  -  The radius user name exists in other sites. Please contact the administrator if necessary.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createRadiusUserOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create a new Build-in Radius profile user", nickname = "createRadiusUser", notes = "Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.<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/>-34024  -  The radius user name already exists.<br/>-34025  -  The number of radius users has reached the limit.<br/>-34030  -  The radius user name exists in other sites. Please contact the administrator if necessary.", response = OperationResponseResIdOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResIdOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius-server/users",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResIdOpenApiVo> createRadiusUser(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateRadiusUserOpenApiVo createRadiusUserOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/rate-limit-profiles : Create rate limit profile
     * Create rate limit profile&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;-33733  -  This Rate Limit profile already exists.&lt;br/&gt;-33734  -  The number of Rate Limit profiles has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createRateLimitProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create rate limit profile", nickname = "createRateLimitProfile", notes = "Create rate limit profile<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/>-33733  -  This Rate Limit profile already exists.<br/>-33734  -  The number of Rate Limit profiles has reached the limit.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/rate-limit-profiles",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createRateLimitProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateRateLimitProfileOpenApiVo createRateLimitProfileOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/profiles/service-type : Create new Gateway QoS Service
     * Create new Gateway QoS Service.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-43300  -  The number of service types has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param gatewayQosServiceOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create new Gateway QoS Service", nickname = "createServiceType", notes = "Create new Gateway QoS Service.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-33006  -  This name already exists in this site.<br/>-43300  -  The number of service types has reached the limit.", response = OperationResponseResponseIdVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResponseIdVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/service-type",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseResponseIdVo> createServiceType(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) GatewayQosServiceOpenApiVo gatewayQosServiceOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/time-range-profiles : Create time range profile
     * Create time range profile&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;-33709  -  This profile already exists.&lt;br/&gt;-33716  -  End time should be later than start time.&lt;br/&gt;-33723  -  The number of profiles has reached the limit.&lt;br/&gt;-33731  -  Timerange is not allowed to be empty.&lt;br/&gt;-33748  -  The number of time range per entry has reached the limit.&lt;br/&gt;-33799  -  Invalid schedule time param of time range profile
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param createTimeRangeProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Create time range profile", nickname = "createTimeRangeProfile", notes = "Create time range profile<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/>-33709  -  This profile already exists.<br/>-33716  -  End time should be later than start time.<br/>-33723  -  The number of profiles has reached the limit.<br/>-33731  -  Timerange is not allowed to be empty.<br/>-33748  -  The number of time range per entry has reached the limit.<br/>-33799  -  Invalid schedule time param of time range profile", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/time-range-profiles",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> createTimeRangeProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateTimeRangeProfileOpenApiVo createTimeRangeProfileOpenApiVo);


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


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/profiles/groups/{groupType}/{groupId} : Delete an exist group profile
     * Delete an exist group profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-33703  -  This group does not exist.&lt;br/&gt;-33704  -  This group does not exist.&lt;br/&gt;-33705  -  Failed to delete this group because it is used in wireless network settings.&lt;br/&gt;-33717  -  This IP group has been used in the ACL rule.&lt;br/&gt;-33718  -  This IP-Port group has been used in the ACL rule.&lt;br/&gt;-33719  -  This MAC group has been used in the ACL rule.&lt;br/&gt;-33720  -  This IP group has been used in URL filtering rule.&lt;br/&gt;-33721  -  This IP group has been used in Transmission settings.&lt;br/&gt;-33729  -  Default IpGroup not allowed to be edited.&lt;br/&gt;-33741  -  This IP-Port group has been used in Policy Routing.&lt;br/&gt;-33762  -  This IPv6 group has been used in QoS class rule.&lt;br/&gt;-33764  -  This IP group has been used in QoS class rule.&lt;br/&gt;-33768  -  This IPv6 group has been used in the ACL rule.&lt;br/&gt;-33769  -  This IPv6 port group has been used in the ACL rule.&lt;br/&gt;-33771  -  This Country group has been used in the ACL rule.&lt;br/&gt;-33775  -  Cannot delete the MAC group because it is used in the MAC Filtering.&lt;br/&gt;-33816  -  Default domain group not allowed to be edited.&lt;br/&gt;-33818  -  This domain group has been used in the ACL rule.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param groupId Group profile id. (required)
     * @param groupType  (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an exist group profile", nickname = "deleteGroupProfile", notes = "Delete an exist group profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-33703  -  This group does not exist.<br/>-33704  -  This group does not exist.<br/>-33705  -  Failed to delete this group because it is used in wireless network settings.<br/>-33717  -  This IP group has been used in the ACL rule.<br/>-33718  -  This IP-Port group has been used in the ACL rule.<br/>-33719  -  This MAC group has been used in the ACL rule.<br/>-33720  -  This IP group has been used in URL filtering rule.<br/>-33721  -  This IP group has been used in Transmission settings.<br/>-33729  -  Default IpGroup not allowed to be edited.<br/>-33741  -  This IP-Port group has been used in Policy Routing.<br/>-33762  -  This IPv6 group has been used in QoS class rule.<br/>-33764  -  This IP group has been used in QoS class rule.<br/>-33768  -  This IPv6 group has been used in the ACL rule.<br/>-33769  -  This IPv6 port group has been used in the ACL rule.<br/>-33771  -  This Country group has been used in the ACL rule.<br/>-33775  -  Cannot delete the MAC group because it is used in the MAC Filtering.<br/>-33816  -  Default domain group not allowed to be edited.<br/>-33818  -  This domain group has been used in the ACL rule.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/groups/{groupType}/{groupId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteGroupProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Group profile id.",required=true) @PathVariable("groupId") String groupId,@ApiParam(value = "",required=true) @PathVariable("groupType") String groupType);


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


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/profiles/bonjour-service/{id} : Delete an existing Bonjour Service
     * Delete an existing Bonjour Service.&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;-33759  -  Build-in Bonjour Service cannot be edited or deleted.&lt;br/&gt;-33763  -  Bonjour Service is used by mDNS rule, cannot be deleted.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Bonjour Service ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing Bonjour Service", nickname = "deleteMdnsProfile", notes = "Delete an existing Bonjour Service.<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/>-33759  -  Build-in Bonjour Service cannot be edited or deleted.<br/>-33763  -  Bonjour Service is used by mDNS rule, cannot be deleted.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/bonjour-service/{id}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteMdnsProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Bonjour Service ID",required=true) @PathVariable("id") String id);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/oui-profiles/{ouiId} : Delete OUI Profile
     * Delete OUI ProfileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-33779  -  This OUI profile does not exist.&lt;br/&gt;-33780  -  OUI Profile has been used in OUI based VLAN.&lt;br/&gt;-34226  -  OUI Profile has been used in Wireless MAC Filter.&lt;br/&gt;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ouiId OUI ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete OUI Profile", nickname = "deleteOuiProfile", notes = "Delete OUI ProfileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-33779  -  This OUI profile does not exist.<br/>-33780  -  OUI Profile has been used in OUI based VLAN.<br/>-34226  -  OUI Profile has been used in Wireless MAC Filter.<br/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/oui-profiles/{ouiId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteOuiProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "OUI ID",required=true) @PathVariable("ouiId") String ouiId);


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


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius/{radiusProfileId} : Delete an exist Radius profile
     * Delete an exist Radius profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-34009  -  The RADIUS profile cannot be deleted because it is applied in MAC-Based Authentication.&lt;br/&gt;-34010  -  The RADIUS profile cannot be deleted because it is applied in Portal Authentication.&lt;br/&gt;-34012  -  Failed to delete this RADIUS profile because it has been used in 802.1X authentication.&lt;br/&gt;-34013  -  Failed to delete this RADIUS profile because it has been used in SSID.&lt;br/&gt;-34023  -  Failed to delete built-in radius profile.&lt;br/&gt;-43001  -  Failed to delete this radius profile because it is already occupied by SSL VPN.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param radiusProfileId Radius profile Id (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an exist Radius profile", nickname = "deleteRadiusProfile", notes = "Delete an exist Radius profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-34009  -  The RADIUS profile cannot be deleted because it is applied in MAC-Based Authentication.<br/>-34010  -  The RADIUS profile cannot be deleted because it is applied in Portal Authentication.<br/>-34012  -  Failed to delete this RADIUS profile because it has been used in 802.1X authentication.<br/>-34013  -  Failed to delete this RADIUS profile because it has been used in SSID.<br/>-34023  -  Failed to delete built-in radius profile.<br/>-43001  -  Failed to delete this radius profile because it is already occupied by SSL VPN.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius/{radiusProfileId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteRadiusProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Radius profile Id",required=true) @PathVariable("radiusProfileId") String radiusProfileId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius-server/users/{userId} : Delete an exist Build-in Radius profile user
     * Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param userId Build-in Radius profile user Id (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an exist Build-in Radius profile user", nickname = "deleteRadiusUser", notes = "Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius-server/users/{userId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteRadiusUser(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Build-in Radius profile user Id",required=true) @PathVariable("userId") String userId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/rate-limit-profile/{profileId} : Delete rate limit profile
     * Delete rate limit profile&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;-33732  -  The Rate Limit profile does not exist.&lt;br/&gt;-33736  -  The default Rate Limit profile cannot be deleted.&lt;br/&gt;-33737  -  Failed to delete the Rate Limit profile because the profile is used by Voucher Code %code%.&lt;br/&gt;-33739  -  Failed to delete the Rate Limit profile because the profile is used by Local User Account %username%.&lt;br/&gt;-33740  -  Failed to delete the Rate Limit profile because the profile is used by the client %MACAddress%.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId Profile ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete rate limit profile", nickname = "deleteRateLimitProfile", notes = "Delete rate limit profile<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/>-33732  -  The Rate Limit profile does not exist.<br/>-33736  -  The default Rate Limit profile cannot be deleted.<br/>-33737  -  Failed to delete the Rate Limit profile because the profile is used by Voucher Code %code%.<br/>-33739  -  Failed to delete the Rate Limit profile because the profile is used by Local User Account %username%.<br/>-33740  -  Failed to delete the Rate Limit profile because the profile is used by the client %MACAddress%.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/rate-limit-profile/{profileId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteRateLimitProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Profile ID",required=true) @PathVariable("profileId") String profileId);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/profiles/service-type/{id} : Delete an existing Gateway QoS Service
     * Delete an existing Gateway QoS Service.&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;-43302  -  The service type is used by the class rule.&lt;br/&gt;-43303  -  Cannot modify or delete the default service type.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Gateway QoS Service ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete an existing Gateway QoS Service", nickname = "deleteServiceType", notes = "Delete an existing Gateway QoS Service.<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/>-43302  -  The service type is used by the class rule.<br/>-43303  -  Cannot modify or delete the default service type.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/service-type/{id}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteServiceType(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway QoS Service ID",required=true) @PathVariable("id") String id);


    /**
     * DELETE /openapi/v1/{omadacId}/sites/{siteId}/time-range-profile/{profileId} : Delete time range profile
     * Delete time range profile&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;-33701  -  Failed to delete this time range profile because it is applied in wireless networks.&lt;br/&gt;-33710  -  This profile does not exist.&lt;br/&gt;-33722  -  Cannot delete the time range. It is being used in PoE Schedule.&lt;br/&gt;-33754  -  Failed to delete this time range profile because it is applied in ACL.&lt;br/&gt;-33776  -  Failed to delete this time range profile because it is applied in IPS.&lt;br/&gt;-34555  -  Cannot delete the time range. It is being used in Port Schedule.&lt;br/&gt;-35106  -  Failed to delete this time range profile because it is applied in DPI.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId Profile ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Delete time range profile", nickname = "deleteTimeRangeProfile", notes = "Delete time range profile<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/>-33701  -  Failed to delete this time range profile because it is applied in wireless networks.<br/>-33710  -  This profile does not exist.<br/>-33722  -  Cannot delete the time range. It is being used in PoE Schedule.<br/>-33754  -  Failed to delete this time range profile because it is applied in ACL.<br/>-33776  -  Failed to delete this time range profile because it is applied in IPS.<br/>-34555  -  Cannot delete the time range. It is being used in Port Schedule.<br/>-35106  -  Failed to delete this time range profile because it is applied in DPI.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/time-range-profile/{profileId}",
        produces = "*/*", 
        method = RequestMethod.DELETE)
    ResponseEntity<OperationResponseWithoutResult> deleteTimeRangeProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Profile ID",required=true) @PathVariable("profileId") String profileId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/apn : Get APN profile list
     * Get APN profile list of the site with the given omadacId and siteId.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get APN profile list", nickname = "getApnProfileList", notes = "Get APN profile list of the site with the given omadacId and siteId.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.", response = OperationResponseListApnProfile.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListApnProfile.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/apn",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListApnProfile> getApnProfileList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/groups : Get group profile list
     * Get group profile list of the site with the given omadacId and siteId.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get group profile list", nickname = "getGroupProfiles", notes = "Get group profile list of the site with the given omadacId and siteId.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.", response = OperationResponseListGroupOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListGroupOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/groups",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListGroupOpenApiVo> getGroupProfiles(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/groups/{groupType} : Get group profile list by type
     * Get a certain type of group profile list of the site with the given omadacId and siteId and type.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param groupType Type of group profile, 0:IP Group; 1:IP Port Group; 2：Mac Group; 3:IPv6 Group; 4:IPv6 Port Group; 5:Country Group; 7:Domain Group. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get group profile list by type", nickname = "getGroupProfilesByType", notes = "Get a certain type of group profile list of the site with the given omadacId and siteId and type.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.", response = OperationResponseListGroupOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListGroupOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/groups/{groupType}",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListGroupOpenApiVo> getGroupProfilesByType(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Type of group profile, 0:IP Group; 1:IP Port Group; 2：Mac Group; 3:IPv6 Group; 4:IPv6 Port Group; 5:Country Group; 7:Domain Group.",required=true) @PathVariable("groupType") String groupType);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/ldap : Get LDAP profile list
     * Get LDAP profile list of the site with the given omadacId and siteId.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get LDAP profile list", nickname = "getLdapProfileList", notes = "Get LDAP profile list of the site with the given omadacId and siteId.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.", response = OperationResponseListLdapProfileOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListLdapProfileOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/ldap",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListLdapProfileOpenApiVo> getLdapProfileList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/oui-profiles/all : Get OUI profile summary list
     * Get OUI profile summary list.This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get OUI profile summary list", nickname = "getOuiProfileFullList", notes = "Get OUI profile summary list.This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseListOuiProfileSummaryOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListOuiProfileSummaryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/oui-profiles/all",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListOuiProfileSummaryOpenApiVo> getOuiProfileFullList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/oui-profiles : Get OUI profile list
     * Get OUI profile list.(Pagination)This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get OUI profile list", nickname = "getOuiProfileList", notes = "Get OUI profile list.(Pagination)This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseOuiGridVoOuiProfileQueryOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseOuiGridVoOuiProfileQueryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/oui-profiles",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseOuiGridVoOuiProfileQueryOpenApiVo> getOuiProfileList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);


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


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/ppsk-profiles : Get PPSK profiles list
     * Get PPSK profiles list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param type PPSK Profile type, should be a value as follows: 0: PPSK Without RADIUS; 1: PPSK With Built-In RADIUS (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get PPSK profiles list", nickname = "getPPSKProfiles", notes = "Get PPSK profiles list<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseListPpskProfileBriefInfo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListPpskProfileBriefInfo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/ppsk-profiles",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListPpskProfileBriefInfo> getPPSKProfiles(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "PPSK Profile type, should be a value as follows: 0: PPSK Without RADIUS; 1: PPSK With Built-In RADIUS", required = true) @Valid @RequestParam(value = "type", required = true) Integer type);


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


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius-server/users : Get Build-in Radius profile user list
     * Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @param sortsUsername Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get Build-in Radius profile user list", nickname = "getRadiusUserList", notes = "Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseGridVoRadiusUserOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoRadiusUserOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius-server/users",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoRadiusUserOpenApiVo> getRadiusUserList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@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.username", required = false) String sortsUsername);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/rate-limit-profiles : Get rate limit profile list
     * Get rate limit profile list&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings 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;-33000  -  This site does not exist.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get rate limit profile list", nickname = "getRateLimitProfileList", notes = "Get rate limit profile list<br/><br/>The interface requires one of the permissions: <br/>Site Settings 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/>-33000  -  This site does not exist.", response = OperationResponseListRateLimitProfileOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseListRateLimitProfileOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/rate-limit-profiles",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseListRateLimitProfileOpenApiVo> getRateLimitProfileList(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/service-type-summary : Get all Gateway QoS Service&#39;s ID and name info
     * Get all Gateway QoS Service&#39;s ID and name info.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get all Gateway QoS Service's ID and name info", nickname = "getServiceTypeSummary", notes = "Get all Gateway QoS Service's ID and name info.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseResponseDataVoGatewayQosServiceSummaryOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseResponseDataVoGatewayQosServiceSummaryOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/service-type-summary",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseResponseDataVoGatewayQosServiceSummaryOpenApiVo> getServiceTypeSummary(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);


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


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


    /**
     * GET /openapi/v1/{omadacId}/sites/{siteId}/profiles/service-type : Get Gateway QoS Service list
     * Get Gateway QoS Service list.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager View Only
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param page Start page number. Start from 1. (required)
     * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Get Gateway QoS Service list", nickname = "listServiceType", notes = "Get Gateway QoS Service list.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager View Only", response = OperationResponseGridVoGatewayQosServiceDetailOpenApiVo.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoGatewayQosServiceDetailOpenApiVo.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/service-type",
        produces = "*/*", 
        method = RequestMethod.GET)
    ResponseEntity<OperationResponseGridVoGatewayQosServiceDetailOpenApiVo> listServiceType(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/profiles/apn/{profileId} : Modify an exist APN profile
     * Modify an exist APN profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-33506  -  This Profile name already exists.&lt;br/&gt;-33553  -  The LTE WAN port is configured with IPv6 network. Please re-select the APN Profile of IPv6 mode.&lt;br/&gt;-33798  -  The number of APN Profile has reached the limit.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId APN profile ID. (required)
     * @param apnProfileConfig  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an exist APN profile", nickname = "modifyApnProfile", notes = "Modify an exist APN profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-33506  -  This Profile name already exists.<br/>-33553  -  The LTE WAN port is configured with IPv6 network. Please re-select the APN Profile of IPv6 mode.<br/>-33798  -  The number of APN Profile has reached the limit.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/apn/{profileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyApnProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "APN profile ID.",required=true) @PathVariable("profileId") String profileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) ApnProfileConfig apnProfileConfig);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/profiles/groups/{groupType}/{groupId} : Modify an exist group profile
     * Modify an exist group profile with the given params.&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;-33702  -  This group name already exists.&lt;br/&gt;-33707  -  This MAC List already exists.&lt;br/&gt;-33729  -  Default IpGroup not allowed to be edited.&lt;br/&gt;-33749  -  Duplicate MAC addresses exist in the MAC address list of the MAC group.&lt;br/&gt;-33816  -  Default domain group not allowed to be edited.&lt;br/&gt;-33819  -  This domain group has wrong type of domain.&lt;br/&gt;-33822  -  This domain group has wrong domain or invalid format port.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param groupType Type of group profile, 0:IP Group; 1:IP Port Group; 2：Mac Group; 3:IPv6 Group; 4:IPv6 Port Group; 5:Country Group; 7:Domain Group. (required)
     * @param groupId Group profile id. (required)
     * @param createGroupOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an exist group profile", nickname = "modifyGroupProfile", notes = "Modify an exist group profile with the given params.<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/>-33702  -  This group name already exists.<br/>-33707  -  This MAC List already exists.<br/>-33729  -  Default IpGroup not allowed to be edited.<br/>-33749  -  Duplicate MAC addresses exist in the MAC address list of the MAC group.<br/>-33816  -  Default domain group not allowed to be edited.<br/>-33819  -  This domain group has wrong type of domain.<br/>-33822  -  This domain group has wrong domain or invalid format port.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/groups/{groupType}/{groupId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyGroupProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Type of group profile, 0:IP Group; 1:IP Port Group; 2：Mac Group; 3:IPv6 Group; 4:IPv6 Port Group; 5:Country Group; 7:Domain Group.",required=true) @PathVariable("groupType") String groupType,@ApiParam(value = "Group profile id.",required=true) @PathVariable("groupId") String groupId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateGroupOpenApiVo createGroupOpenApiVo);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/profiles/ldap/{ldapProfileId} : Modify an exist LDAP profile
     * Modify an exist LDAP profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-43404  -  Cannot delete the LDAP profile. It is being used in L2TP/PPTP/IPSec/OpenVPN.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ldapProfileId LDAP profile ID. (required)
     * @param createLdapProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an exist LDAP profile", nickname = "modifyLdapProfile", notes = "Modify an exist LDAP profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-43404  -  Cannot delete the LDAP profile. It is being used in L2TP/PPTP/IPSec/OpenVPN.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/ldap/{ldapProfileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyLdapProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "LDAP profile ID.",required=true) @PathVariable("ldapProfileId") String ldapProfileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateLdapProfileOpenApiVo createLdapProfileOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/profiles/bonjour-service/{id} : Modify an existing Bonjour Service
     * Modify an existing Bonjour Service.&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;-1001  -  Invalid request parameters.&lt;br/&gt;-33756  -  This Bonjour Service name already exists.&lt;br/&gt;-33758  -  This Bonjour Service does not exist.&lt;br/&gt;-33759  -  Build-in Bonjour Service cannot be edited or deleted.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Bonjour Service ID (required)
     * @param bonjourServiceOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing Bonjour Service", nickname = "modifyMdnsProfile", notes = "Modify an existing Bonjour Service.<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/>-1001  -  Invalid request parameters.<br/>-33756  -  This Bonjour Service name already exists.<br/>-33758  -  This Bonjour Service does not exist.<br/>-33759  -  Build-in Bonjour Service cannot be edited or deleted.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/bonjour-service/{id}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyMdnsProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Bonjour Service ID",required=true) @PathVariable("id") String id,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) BonjourServiceOpenApiVo bonjourServiceOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/oui-profiles/{ouiId} : Modify OUI Profile
     * Modify OUI ProfileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.&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;-33779  -  This OUI profile does not exist.&lt;br/&gt;-33781  -  This OUI profile already exists.&lt;br/&gt;-33782  -  The number of OUIs has reached the limit.&lt;br/&gt;-33782  -  The number of OUIs has reached the limit.&lt;br/&gt;-33784  -  The OUI profile has duplicate OUIs.&lt;br/&gt;-33784  -  The OUI profile has duplicate OUIs.&lt;br/&gt;-34224  -  When the rule is enabled, the same device should not configure OUI-VLAN combination greater than 16.&lt;br/&gt;-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param ouiId OUI ID (required)
     * @param ouiProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify OUI Profile", nickname = "modifyOuiProfile", notes = "Modify OUI ProfileThis interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.<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/>-33779  -  This OUI profile does not exist.<br/>-33781  -  This OUI profile already exists.<br/>-33782  -  The number of OUIs has reached the limit.<br/>-33782  -  The number of OUIs has reached the limit.<br/>-33784  -  The OUI profile has duplicate OUIs.<br/>-33784  -  The OUI profile has duplicate OUIs.<br/>-34224  -  When the rule is enabled, the same device should not configure OUI-VLAN combination greater than 16.<br/>-44119  -  This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/oui-profiles/{ouiId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyOuiProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "OUI ID",required=true) @PathVariable("ouiId") String ouiId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) OuiProfileOpenApiVo ouiProfileOpenApiVo);


    /**
     * POST /openapi/v1/{omadacId}/sites/{siteId}/ppsk-profile/{profileId} : Modify PPSK profile
     * Modify PPSK profile&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId PPSK profile Id (required)
     * @param ppskProfile  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify PPSK profile", nickname = "modifyPPSKProfile", notes = "Modify PPSK profile<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/ppsk-profile/{profileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.POST)
    ResponseEntity<OperationResponseWithoutResult> modifyPPSKProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "PPSK profile Id",required=true) @PathVariable("profileId") String profileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) PpskProfile ppskProfile);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius/{radiusProfileId} : Modify an exist Radius profile
     * Modify an exist Radius profile with the given params.&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;-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.&lt;br/&gt;-34000  -  Interim Update Interval ranges from 60 to 86400.&lt;br/&gt;-34002  -  Accounting port number ranges from 60 to 86400.&lt;br/&gt;-34003  -  Enter the shared secret key of the accounting server using 1-128 printable ASCII characters (including the space).&lt;br/&gt;-34004  -  This RADIUS profile already exists.&lt;br/&gt;-34005  -  This RADIUS profile does not exist.&lt;br/&gt;-34011  -  Invalid IP address of the RADIUS server.&lt;br/&gt;-34011  -  Invalid IP address of the RADIUS server.&lt;br/&gt;-34015  -  The RADIUS profile cannot be modified because it is applied in PPSK with RADIUS.&lt;br/&gt;-34016  -  Unable to set the authentication server URL because the profile is applied in authentications that do not support authentication server URL.&lt;br/&gt;-34018  -  Failed to modify this RADIUS profile because it has been used in 802.1X authentication.&lt;br/&gt;-34022  -  Failed to modify built-in radius profile.&lt;br/&gt;-34027  -  The built-in server is being used, failed to stop built-in radius server.&lt;br/&gt;-43006  -  The RADIUS profile cannot add more than 2 RADIUS servers because it is used by SSL VPN.&lt;br/&gt;-43012  -  The number of Accounting Servers in the radius profile should not be greater than the number of Authentication Servers because the radius profile is used by the SSL VPN server.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param radiusProfileId Radius profile Id (required)
     * @param createRadiusProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an exist Radius profile", nickname = "modifyRadiusProfile", notes = "Modify an exist Radius profile with the given params.<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/>-33004  -  Operation failed because other operations are being performed on this site. Please wait and try again later.<br/>-34000  -  Interim Update Interval ranges from 60 to 86400.<br/>-34002  -  Accounting port number ranges from 60 to 86400.<br/>-34003  -  Enter the shared secret key of the accounting server using 1-128 printable ASCII characters (including the space).<br/>-34004  -  This RADIUS profile already exists.<br/>-34005  -  This RADIUS profile does not exist.<br/>-34011  -  Invalid IP address of the RADIUS server.<br/>-34011  -  Invalid IP address of the RADIUS server.<br/>-34015  -  The RADIUS profile cannot be modified because it is applied in PPSK with RADIUS.<br/>-34016  -  Unable to set the authentication server URL because the profile is applied in authentications that do not support authentication server URL.<br/>-34018  -  Failed to modify this RADIUS profile because it has been used in 802.1X authentication.<br/>-34022  -  Failed to modify built-in radius profile.<br/>-34027  -  The built-in server is being used, failed to stop built-in radius server.<br/>-43006  -  The RADIUS profile cannot add more than 2 RADIUS servers because it is used by SSL VPN.<br/>-43012  -  The number of Accounting Servers in the radius profile should not be greater than the number of Authentication Servers because the radius profile is used by the SSL VPN server.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius/{radiusProfileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyRadiusProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Radius profile Id",required=true) @PathVariable("radiusProfileId") String radiusProfileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateRadiusProfileOpenApiVo createRadiusProfileOpenApiVo);


    /**
     * PATCH /openapi/v1/{omadacId}/sites/{siteId}/profiles/radius-server/users/{userId} : Modify an exist Build-in Radius profile user
     * Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.&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;-34024  -  The radius user name already exists.&lt;br/&gt;-34026  -  The radius user does not exist.&lt;br/&gt;-34030  -  The radius user name exists in other sites. Please contact the administrator if necessary.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param userId Build-in Radius profile user Id (required)
     * @param createRadiusUserOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an exist Build-in Radius profile user", nickname = "modifyRadiusUser", notes = "Get Build-in Radius profile user list of the site with the given omadacId and siteId. Cloud Based Controller does not support built-in radius function, you cannot call this interface through openAPI on Cloud Based Controller.<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/>-34024  -  The radius user name already exists.<br/>-34026  -  The radius user does not exist.<br/>-34030  -  The radius user name exists in other sites. Please contact the administrator if necessary.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/radius-server/users/{userId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PATCH)
    ResponseEntity<OperationResponseWithoutResult> modifyRadiusUser(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Build-in Radius profile user Id",required=true) @PathVariable("userId") String userId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) CreateRadiusUserOpenApiVo createRadiusUserOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/rate-limit-profile/{profileId} : Modify rate limit profile
     * Modify rate limit profile&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;-33732  -  The Rate Limit profile does not exist.&lt;br/&gt;-33733  -  This Rate Limit profile already exists.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId Profile ID (required)
     * @param updateRateLimitProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify rate limit profile", nickname = "modifyRateLimitProfile", notes = "Modify rate limit profile<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/>-33732  -  The Rate Limit profile does not exist.<br/>-33733  -  This Rate Limit profile already exists.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/rate-limit-profile/{profileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyRateLimitProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Profile ID",required=true) @PathVariable("profileId") String profileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateRateLimitProfileOpenApiVo updateRateLimitProfileOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/profiles/service-type/{id} : Modify an existing Gateway QoS Service
     * Modify an existing Gateway QoS Service.&lt;br/&gt;&lt;br/&gt;The interface requires one of the permissions: &lt;br/&gt;Site Settings Manager Modify&lt;br/&gt;&lt;br/&gt;The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): &lt;br/&gt;-33006  -  This name already exists in this site.&lt;br/&gt;-43301  -  The service type does not exist.&lt;br/&gt;-43303  -  Cannot modify or delete the default service type.
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param id Gateway QoS Service ID (required)
     * @param gatewayQosServiceOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify an existing Gateway QoS Service", nickname = "modifyServiceType", notes = "Modify an existing Gateway QoS Service.<br/><br/>The interface requires one of the permissions: <br/>Site Settings Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-33006  -  This name already exists in this site.<br/>-43301  -  The service type does not exist.<br/>-43303  -  Cannot modify or delete the default service type.", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/profiles/service-type/{id}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyServiceType(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway QoS Service ID",required=true) @PathVariable("id") String id,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) GatewayQosServiceOpenApiVo gatewayQosServiceOpenApiVo);


    /**
     * PUT /openapi/v1/{omadacId}/sites/{siteId}/time-range-profile/{profileId} : Modify time range profile
     * Modify time range profile&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;-33709  -  This profile already exists.&lt;br/&gt;-33716  -  End time should be later than start time.&lt;br/&gt;-33731  -  Timerange is not allowed to be empty.&lt;br/&gt;-33748  -  The number of time range per entry has reached the limit.&lt;br/&gt;-33799  -  Invalid schedule time param of time range profile
     *
     * @param omadacId Omada ID (required)
     * @param siteId Site ID (required)
     * @param profileId Profile ID (required)
     * @param updateTimeRangeProfileOpenApiVo  (optional)
     * @return OK (status code 200)
     */
    @ApiOperation(value = "Modify time range profile", nickname = "modifyTimeRangeProfile", notes = "Modify time range profile<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/>-33709  -  This profile already exists.<br/>-33716  -  End time should be later than start time.<br/>-33731  -  Timerange is not allowed to be empty.<br/>-33748  -  The number of time range per entry has reached the limit.<br/>-33799  -  Invalid schedule time param of time range profile", response = OperationResponseWithoutResult.class, tags={ "Omada/Profiles","Profiles", })
    @ApiResponses(value = { 
        @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
    @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/time-range-profile/{profileId}",
        produces = "*/*", 
        consumes = "application/json",
        method = RequestMethod.PUT)
    ResponseEntity<OperationResponseWithoutResult> modifyTimeRangeProfile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Profile ID",required=true) @PathVariable("profileId") String profileId,@ApiParam(value = ""  )  @Valid @RequestBody(required = false) UpdateTimeRangeProfileOpenApiVo updateTimeRangeProfileOpenApiVo);

}
