diff --git a/pom.xml b/pom.xml
index 4c91398..125f1db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,6 +35,7 @@
2.14.4
5.8.33
1.18.36
+ 1.6.2
1.6.2
@@ -248,6 +249,13 @@
${wfc.version}
+
+
+ io.swagger
+ swagger-annotations
+ ${swagger.core.version}
+
+
org.wfc
diff --git a/wfc-api/wfc-api-omada/pom.xml b/wfc-api/wfc-api-omada/pom.xml
index 661b0d3..4e585c2 100644
--- a/wfc-api/wfc-api-omada/pom.xml
+++ b/wfc-api/wfc-api-omada/pom.xml
@@ -26,5 +26,12 @@
wfc-common-redis
+
+
+ io.swagger
+ swagger-annotations
+
+
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaSsoApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaSsoApi.java
new file mode 100644
index 0000000..0b54a43
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaSsoApi.java
@@ -0,0 +1,201 @@
+package org.wfc.omada.api.account;
+
+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.api.account.model.ExternalUserGroupOpenApiVo;
+import org.wfc.omada.api.account.model.IdpMetadataOpenApiVo;
+import org.wfc.omada.api.account.model.OperationResponseGridVoExternalUserDetailOpenApiVo;
+import org.wfc.omada.api.account.model.OperationResponseGridVoExternalUserGroupDetailOpenApiVo;
+import org.wfc.omada.api.account.model.OperationResponseGridVoIdpMetadataDetailOpenApiVo;
+import org.wfc.omada.api.account.model.OperationResponseResponseIdVo;
+import org.wfc.omada.api.account.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:45:24.733+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaSso", description = "the OmadaSso API")
+@FeignClient(name="OmadaSsoApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaSsoApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/sso/external-user-groups : Create new external user group
+ * Create new external user group. 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/>Global Saml Roles 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/>-30102 - This role does not exist.<br/>-30172 - The SAML role name already exists.<br/>-30179 - The SAML roles number has reached the upper limit.<br/>-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 externalUserGroupOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create new external user group", nickname = "createExternalUserGroup", notes = "Create new external user group. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30102 - This role does not exist.
-30172 - The SAML role name already exists.
-30179 - The SAML roles number has reached the upper limit.
-44119 - This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseResponseIdVo.class, tags={ "Omada/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseResponseIdVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/external-user-groups",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createExternalUserGroup(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ExternalUserGroupOpenApiVo externalUserGroupOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sso/saml-idps : Create new idp
+ * Create new idp.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/>Global Saml SSO 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/>-30170 - The SAML sso metadata entityId already exists.<br/>-30171 - The SAML sso metadata name already exist.<br/>-30178 - The SAML sso number has reached the upper limit.<br/>-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 idpMetadataOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create new idp", nickname = "createIdpMetadata", notes = "Create new idp.This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml SSO Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30170 - The SAML sso metadata entityId already exists.
-30171 - The SAML sso metadata name already exist.
-30178 - The SAML sso number has reached the upper limit.
-44119 - This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseResponseIdVo.class, tags={ "Omada/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseResponseIdVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/saml-idps",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createIdpMetadata(@ApiParam(value = "" ) @Valid @RequestBody(required = false) IdpMetadataOpenApiVo idpMetadataOpenApiVo);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/sso/external-user-groups/{externalUserGroupId} : Delete an existing external user group
+ * Delete an existing external user group. 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/>Global Saml Roles 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/>-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 externalUserGroupId External user group ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete an existing external user group", nickname = "deleteExternalUserGroup", notes = "Delete an existing external user group. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-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/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/external-user-groups/{externalUserGroupId}",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteExternalUserGroup(@ApiParam(value = "External user group ID",required=true) @PathVariable("externalUserGroupId") String externalUserGroupId);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/sso/saml-idps/{idpId} : Delete an existing idp
+ * Delete an existing idp.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/>Global Saml SSO 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/>-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 idpId IdP ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete an existing idp", nickname = "deleteIdpMetadata", notes = "Delete an existing idp.This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml SSO Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-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/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/saml-idps/{idpId}",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteIdpMetadata(@ApiParam(value = "IdP ID",required=true) @PathVariable("idpId") String idpId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sso/external-user-groups : Get external user group list
+ * Get external user group 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/>Global Saml Roles 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.
+ *
+ * @param omadacId (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsName Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field name (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get external user group list", nickname = "getExternalUserGroupList", notes = "Get external user group list. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml Roles Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-44119 - This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseGridVoExternalUserGroupDetailOpenApiVo.class, tags={ "Omada/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoExternalUserGroupDetailOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/external-user-groups",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getExternalUserGroupList(@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect") @Valid @RequestParam(value = "sorts.name", required = false) String sortsName,@ApiParam(value = "Fuzzy query parameters, support field name") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sso/external-users : Get external user list
+ * Get external user 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/>Global Saml Users 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.
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param 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)
+ * @param searchKey Fuzzy query parameters, support field userName (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get external user list", nickname = "getExternalUserList", notes = "Get external user list. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml Users Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-44119 - This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseGridVoExternalUserDetailOpenApiVo.class, tags={ "Omada/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoExternalUserDetailOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/external-users",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getExternalUserList(@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,@ApiParam(value = "Fuzzy query parameters, support field userName") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sso/saml-idps : Get idp list
+ * Get idp 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/>Global Saml SSO 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.
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsIdpName 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 idp list", nickname = "getIdpMetadataList", notes = "Get idp list.This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml SSO Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-44119 - This interface applies to the Omada Pro only. Please do not use it for non-Pro controllers or sites.", response = OperationResponseGridVoIdpMetadataDetailOpenApiVo.class, tags={ "Omada/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoIdpMetadataDetailOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/saml-idps",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getIdpMetadataList(@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.idpName", required = false) String sortsIdpName);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sso/external-user-groups/{externalUserGroupId} : Modify an existing external user group
+ * Modify an existing external user group. 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/>Global Saml Roles 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/>-30102 - This role does not exist.<br/>-30172 - The SAML role name already exists.<br/>-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 externalUserGroupId External user group ID (required)
+ * @param externalUserGroupOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify an existing external user group", nickname = "modifyExternalUserGroup", notes = "Modify an existing external user group. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30102 - This role does not exist.
-30172 - The SAML role name already exists.
-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/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/external-user-groups/{externalUserGroupId}",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyExternalUserGroup(@ApiParam(value = "External user group ID",required=true) @PathVariable("externalUserGroupId") String externalUserGroupId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ExternalUserGroupOpenApiVo externalUserGroupOpenApiVo);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sso/saml-idps/{idpId} : Modify an existing idp
+ * Modify an existing idp. 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/>Global Saml SSO 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/>-30170 - The SAML sso metadata entityId already exists.<br/>-30171 - The SAML sso metadata name already exist.<br/>-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 idpId IdP id (required)
+ * @param idpMetadataOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify an existing idp", nickname = "modifyIdpMetadata", notes = "Modify an existing idp. This interface applies to the Omada Pro Controller only. Please do not use it for non-Pro controllers.
The interface requires one of the permissions:
Global Saml SSO Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30170 - The SAML sso metadata entityId already exists.
-30171 - The SAML sso metadata name already exist.
-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/SSO","SSO", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sso/saml-idps/{idpId}",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyIdpMetadata(@ApiParam(value = "IdP id",required=true) @PathVariable("idpId") String idpId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) IdpMetadataOpenApiVo idpMetadataOpenApiVo);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaUserAndRoleApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaUserAndRoleApi.java
new file mode 100644
index 0000000..b101bf3
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/OmadaUserAndRoleApi.java
@@ -0,0 +1,221 @@
+package org.wfc.omada.api.account;
+
+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.api.account.model.CreateUserVo;
+import org.wfc.omada.api.account.model.DeleteUserVo;
+import org.wfc.omada.api.account.model.ModifyControllerRoleVo;
+import org.wfc.omada.api.account.model.ModifyUserVo;
+import org.wfc.omada.api.account.model.OperationResponseControllerRoleDetailVo;
+import org.wfc.omada.api.account.model.OperationResponseCreateRoleResultVo;
+import org.wfc.omada.api.account.model.OperationResponseCreateUserResultVo;
+import org.wfc.omada.api.account.model.OperationResponseGridVoUserDetailVo;
+import org.wfc.omada.api.account.model.OperationResponseListControllerRoleDetailVo;
+import org.wfc.omada.api.account.model.OperationResponseObject;
+import org.wfc.omada.api.account.model.OperationResponseUserDetailVo;
+import org.wfc.omada.api.account.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:45:24.733+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaUserAndRole", description = "the OmadaUserAndRole API")
+@FeignClient(name="OmadaUserAndRoleApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaUserAndRoleApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/roles : Create new role
+ * Create new role. Only user with all permissions modify can use this interface.<br/><br/>The interface requires one of the permissions: <br/>Global Roles 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/>-30156 - This role already exists.<br/>-30158 - An error occurred while creating the role.<br/>-30161 - The number of roles has reached the limit.
+ *
+ * @param omadacId Omada ID (required)
+ * @param modifyControllerRoleVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create new role", nickname = "createNewRole", notes = "Create new role. Only user with all permissions modify can use this interface.
The interface requires one of the permissions:
Global Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30156 - This role already exists.
-30158 - An error occurred while creating the role.
-30161 - The number of roles has reached the limit.", response = OperationResponseCreateRoleResultVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateRoleResultVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/roles",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createNewRole(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModifyControllerRoleVo modifyControllerRoleVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/users : Create new user
+ * Create new user.<br/><br/>The interface requires one of the permissions: <br/>Global Users 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/>-30103 - Invalid email address.<br/>-30104 - Invalid username.<br/>-30105 - Invalid password.<br/>-30106 - This username is already registered.<br/>-30124 - The number of users has reached the limit.<br/>-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
+ *
+ * @param omadacId Omada ID (required)
+ * @param createUserVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create new user", nickname = "createNewUser", notes = "Create new user.
The interface requires one of the permissions:
Global Users Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30103 - Invalid email address.
-30104 - Invalid username.
-30105 - Invalid password.
-30106 - This username is already registered.
-30124 - The number of users has reached the limit.
-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseCreateUserResultVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUserResultVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/users",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createNewUser(@ApiParam(value = "" ) @Valid @RequestBody(required = false) CreateUserVo createUserVo);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/roles/{roleId} : Delete an existing role
+ * Delete an existing role. Only user with all permissions modify can use this interface<br/><br/>The interface requires one of the permissions: <br/>Global Roles 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/>-30102 - This role does not exist.<br/>-30153 - The default role cannot be deleted.<br/>-30154 - An error occurred while deleting the role.<br/>-30155 - The role cannot be deleted since someone has bound to it.<br/>-30173 - The SSO bound role cannot be deleted!
+ *
+ * @param omadacId Omada ID (required)
+ * @param roleId Role ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete an existing role", nickname = "deleteRole", notes = "Delete an existing role. Only user with all permissions modify can use this interface
The interface requires one of the permissions:
Global Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30102 - This role does not exist.
-30153 - The default role cannot be deleted.
-30154 - An error occurred while deleting the role.
-30155 - The role cannot be deleted since someone has bound to it.
-30173 - The SSO bound role cannot be deleted!", response = OperationResponseWithoutResult.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/roles/{roleId}",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteRole(@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/users/{userID} : Delete an existing user
+ * Delete an existing user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>Global Users 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/>-30112 - This user does not exist.<br/>-30114 - An error occurred while deleting the user.<br/>-30132 - Are you sure you want to delete Administrator %Username%? When it is deleted, the viewer accounts it has created will be moved to your account.<br/>-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
+ *
+ * @param omadacId Omada ID (required)
+ * @param userID (required)
+ * @param deleteUserVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete an existing user", nickname = "deleteUser", notes = "Delete an existing user. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
The interface requires one of the permissions:
Global Users Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30112 - This user does not exist.
-30114 - An error occurred while deleting the user.
-30132 - Are you sure you want to delete Administrator %Username%? When it is deleted, the viewer accounts it has created will be moved to your account.
-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseWithoutResult.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/users/{userID}",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteUser(@ApiParam(value = "",required=true) @PathVariable("userID") String userID,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeleteUserVo deleteUserVo);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/roles : Get role list
+ * Get role list<br/><br/>The interface requires one of the permissions: <br/>Global Roles Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get role list", nickname = "getAllRoles", notes = "Get role list
The interface requires one of the permissions:
Global Roles Manager View Only", response = OperationResponseListControllerRoleDetailVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseListControllerRoleDetailVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/roles",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getAllRoles(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/users : Get user list
+ * Get user list. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>Global Users 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/>-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
+ *
+ * @param omadacId (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsName Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsRoleId Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsEmail Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field userName (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get user list", nickname = "getGridUsers", notes = "Get user list. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
The interface requires one of the permissions:
Global Users Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseGridVoUserDetailVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoUserDetailVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/users",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridUsers(@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId,@NotNull @ApiParam(value = "Start page number. Start from 1.", required = true) @Valid @RequestParam(value = "page", required = true) Integer page,@NotNull @ApiParam(value = "Number of entries per page. It should be within the range of 1–1000.", required = true) @Valid @RequestParam(value = "pageSize", required = true) Integer pageSize,@ApiParam(value = "Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect") @Valid @RequestParam(value = "sorts.name", required = false) String sortsName,@ApiParam(value = "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.roleId", required = false) String sortsRoleId,@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.email", required = false) String sortsEmail,@ApiParam(value = "Fuzzy query parameters, support field userName") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/roles/{roleId} : Get role info
+ * Get role info<br/><br/>The interface requires one of the permissions: <br/>Global Roles Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param roleId Role ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get role info", nickname = "getRole", notes = "Get role info
The interface requires one of the permissions:
Global Roles Manager View Only", response = OperationResponseControllerRoleDetailVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseControllerRoleDetailVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/roles/{roleId}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRole(@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/users/{userID} : Get user info
+ * Get user info. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.<br/><br/>The interface requires one of the permissions: <br/>Global Users 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/>-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
+ *
+ * @param omadacId Omada ID (required)
+ * @param userID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get user info", nickname = "getUser", notes = "Get user info. This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
The interface requires one of the permissions:
Global Users Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseUserDetailVo.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUserDetailVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/users/{userID}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getUser(@ApiParam(value = "",required=true) @PathVariable("userID") String userID);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/roles/{roleId} : Modify an existing role
+ * Modify an existing role. Only user with all permissions modify can use this interface.<br/><br/>The interface requires one of the permissions: <br/>Global Roles 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/>-30102 - This role does not exist.<br/>-30156 - This role already exists.<br/>-30157 - An error occurred while modifying the role.<br/>-30159 - The default role cannot be modified.<br/>-30162 - Cannot change the target account. Its role permission scope cannot be greater than its manager.
+ *
+ * @param omadacId Omada ID (required)
+ * @param roleId Role ID (required)
+ * @param modifyControllerRoleVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify an existing role", nickname = "modifyRole", notes = "Modify an existing role. Only user with all permissions modify can use this interface.
The interface requires one of the permissions:
Global Roles Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30102 - This role does not exist.
-30156 - This role already exists.
-30157 - An error occurred while modifying the role.
-30159 - The default role cannot be modified.
-30162 - Cannot change the target account. Its role permission scope cannot be greater than its manager.", response = OperationResponseObject.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/roles/{roleId}",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyRole(@ApiParam(value = "Role ID",required=true) @PathVariable("roleId") String roleId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModifyControllerRoleVo modifyControllerRoleVo);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/users/{userID} : Modify an existing user
+ * Modify an existing user.<br/><br/>The interface requires one of the permissions: <br/>Global Users 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/>-30103 - Invalid email address.<br/>-30104 - Invalid username.<br/>-30105 - Invalid password.<br/>-30106 - This username is already registered.<br/>-30108 - This username does not exist.<br/>-30133 - Failed to remove Site %Site name%. The administrator account should not have privileges to fewer sites than that of the viewer accounts it has created.<br/>-30134 - Failed to add Site %Site name%. The viewer account should not have privileges to more sites thatn that of its immediate superior account.<br/>-30135 - Are you sure you want to change the role of %Username% from Administrator to Viewer?If its role is changed, the viewer accounts it has created will be moved to your account.<br/>-30136 - Failed to save. If the editing is saved, the viewer account will have privileges to more sites than that of its immediate superior account.<br/>-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.
+ *
+ * @param omadacId Omada ID (required)
+ * @param userID (required)
+ * @param modifyUserVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify an existing user", nickname = "modifyUser", notes = "Modify an existing user.
The interface requires one of the permissions:
Global Users Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30103 - Invalid email address.
-30104 - Invalid username.
-30105 - Invalid password.
-30106 - This username is already registered.
-30108 - This username does not exist.
-30133 - Failed to remove Site %Site name%. The administrator account should not have privileges to fewer sites than that of the viewer accounts it has created.
-30134 - Failed to add Site %Site name%. The viewer account should not have privileges to more sites thatn that of its immediate superior account.
-30135 - Are you sure you want to change the role of %Username% from Administrator to Viewer?If its role is changed, the viewer accounts it has created will be moved to your account.
-30136 - Failed to save. If the editing is saved, the viewer account will have privileges to more sites than that of its immediate superior account.
-44118 - This interface only supports the authorization code mode, not the client mode. Please call this interface in authorization code mode.", response = OperationResponseObject.class, tags={ "Omada/User and Role","User and Role", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseObject.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/users/{userID}",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyUser(@ApiParam(value = "",required=true) @PathVariable("userID") String userID,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModifyUserVo modifyUserVo);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleDetailVo.java
new file mode 100644
index 0000000..b2a5acd
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleDetailVo.java
@@ -0,0 +1,203 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * ControllerRoleDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ControllerRoleDetailVo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("type")
+ private Integer type;
+
+ @JsonProperty("defaultRole")
+ private Boolean defaultRole;
+
+ @JsonProperty("source")
+ private Integer source;
+
+ @JsonProperty("privilege")
+ private ControllerRoleVo privilege;
+
+ public ControllerRoleDetailVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Role ID
+ * @return id
+ */
+ @ApiModelProperty(value = "Role ID")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ControllerRoleDetailVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Role Name
+ * @return name
+ */
+ @ApiModelProperty(value = "Role Name")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ControllerRoleDetailVo type(Integer type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Role Type should be a value as follows: 0: standard; 1: customer; 2: msp.
+ * @return type
+ */
+ @ApiModelProperty(value = "Role Type should be a value as follows: 0: standard; 1: customer; 2: msp.")
+
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public ControllerRoleDetailVo defaultRole(Boolean defaultRole) {
+ this.defaultRole = defaultRole;
+ return this;
+ }
+
+ /**
+ * Whether role is default role
+ * @return defaultRole
+ */
+ @ApiModelProperty(value = "Whether role is default role")
+
+
+ public Boolean getDefaultRole() {
+ return defaultRole;
+ }
+
+ public void setDefaultRole(Boolean defaultRole) {
+ this.defaultRole = defaultRole;
+ }
+
+ public ControllerRoleDetailVo source(Integer source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Role created resource. It should be a value as follows: 0: default; 1:create by standard controller or customer controller; 2: create by MSP
+ * @return source
+ */
+ @ApiModelProperty(value = "Role created resource. It should be a value as follows: 0: default; 1:create by standard controller or customer controller; 2: create by MSP")
+
+
+ public Integer getSource() {
+ return source;
+ }
+
+ public void setSource(Integer source) {
+ this.source = source;
+ }
+
+ public ControllerRoleDetailVo privilege(ControllerRoleVo privilege) {
+ this.privilege = privilege;
+ return this;
+ }
+
+ /**
+ * Get privilege
+ * @return privilege
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ControllerRoleVo getPrivilege() {
+ return privilege;
+ }
+
+ public void setPrivilege(ControllerRoleVo privilege) {
+ this.privilege = privilege;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ControllerRoleDetailVo controllerRoleDetailVo = (ControllerRoleDetailVo) o;
+ return Objects.equals(this.id, controllerRoleDetailVo.id) &&
+ Objects.equals(this.name, controllerRoleDetailVo.name) &&
+ Objects.equals(this.type, controllerRoleDetailVo.type) &&
+ Objects.equals(this.defaultRole, controllerRoleDetailVo.defaultRole) &&
+ Objects.equals(this.source, controllerRoleDetailVo.source) &&
+ Objects.equals(this.privilege, controllerRoleDetailVo.privilege);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, type, defaultRole, source, privilege);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ControllerRoleDetailVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" defaultRole: ").append(toIndentedString(defaultRole)).append("\n");
+ sb.append(" source: ").append(toIndentedString(source)).append("\n");
+ sb.append(" privilege: ").append(toIndentedString(privilege)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleVo.java
new file mode 100644
index 0000000..3d5f7a3
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ControllerRoleVo.java
@@ -0,0 +1,953 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * Role privilege
+ */
+@ApiModel(description = "Role privilege")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ControllerRoleVo {
+ @JsonProperty("license")
+ private Integer license;
+
+ @JsonProperty("globalDashboard")
+ private Integer globalDashboard;
+
+ @JsonProperty("dashboard")
+ private Integer dashboard;
+
+ @JsonProperty("devices")
+ private Integer devices;
+
+ @JsonProperty("adopt")
+ private Integer adopt;
+
+ @JsonProperty("addDevices")
+ private Integer addDevices;
+
+ @JsonProperty("addAdoptDevice")
+ private Integer addAdoptDevice;
+
+ @JsonProperty("manualUpgrade")
+ private Integer manualUpgrade;
+
+ @JsonProperty("globalLog")
+ private Integer globalLog;
+
+ @JsonProperty("log")
+ private Integer log;
+
+ @JsonProperty("licenseBind")
+ private Integer licenseBind;
+
+ @JsonProperty("users")
+ private Integer users;
+
+ @JsonProperty("roles")
+ private Integer roles;
+
+ @JsonProperty("samlUsers")
+ private Integer samlUsers;
+
+ @JsonProperty("samlRoles")
+ private Integer samlRoles;
+
+ @JsonProperty("samlSsos")
+ private Integer samlSsos;
+
+ @JsonProperty("globalSetting")
+ private Integer globalSetting;
+
+ @JsonProperty("exportData")
+ private Integer exportData;
+
+ @JsonProperty("globalExportData")
+ private Integer globalExportData;
+
+ @JsonProperty("exportGlobalLog")
+ private Integer exportGlobalLog;
+
+ @JsonProperty("hotspot")
+ private Integer hotspot;
+
+ @JsonProperty("statics")
+ private Integer statics;
+
+ @JsonProperty("map")
+ private Integer map;
+
+ @JsonProperty("clients")
+ private Integer clients;
+
+ @JsonProperty("insight")
+ private Integer insight;
+
+ @JsonProperty("report")
+ private Integer report;
+
+ @JsonProperty("network")
+ private Integer network;
+
+ @JsonProperty("deviceAccount")
+ private Integer deviceAccount;
+
+ @JsonProperty("anomaly")
+ private Integer anomaly;
+
+ @JsonProperty("analyze")
+ private Integer analyze;
+
+ @JsonProperty("siteAnalyze")
+ private Integer siteAnalyze;
+
+ @JsonProperty("globalSecurity")
+ private Integer globalSecurity;
+
+ @JsonProperty("globalWebhook")
+ private Integer globalWebhook;
+
+ @JsonProperty("globalMapToken")
+ private Integer globalMapToken;
+
+ @JsonProperty("siteTemplate")
+ private Integer siteTemplate;
+
+ @JsonProperty("firmwareManager")
+ private Integer firmwareManager;
+
+ public ControllerRoleVo license(Integer license) {
+ this.license = license;
+ return this;
+ }
+
+ /**
+ * License permission, it should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return license
+ */
+ @ApiModelProperty(value = "License permission, it should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getLicense() {
+ return license;
+ }
+
+ public void setLicense(Integer license) {
+ this.license = license;
+ }
+
+ public ControllerRoleVo globalDashboard(Integer globalDashboard) {
+ this.globalDashboard = globalDashboard;
+ return this;
+ }
+
+ /**
+ * Dashboard permission in global view. It should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return globalDashboard
+ */
+ @ApiModelProperty(value = "Dashboard permission in global view. It should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getGlobalDashboard() {
+ return globalDashboard;
+ }
+
+ public void setGlobalDashboard(Integer globalDashboard) {
+ this.globalDashboard = globalDashboard;
+ }
+
+ public ControllerRoleVo dashboard(Integer dashboard) {
+ this.dashboard = dashboard;
+ return this;
+ }
+
+ /**
+ * Dashboard permission in site view. It should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return dashboard
+ */
+ @ApiModelProperty(value = "Dashboard permission in site view. It should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getDashboard() {
+ return dashboard;
+ }
+
+ public void setDashboard(Integer dashboard) {
+ this.dashboard = dashboard;
+ }
+
+ public ControllerRoleVo devices(Integer devices) {
+ this.devices = devices;
+ return this;
+ }
+
+ /**
+ * Devices permission in site view and global view. It should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return devices
+ */
+ @ApiModelProperty(value = "Devices permission in site view and global view. It should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getDevices() {
+ return devices;
+ }
+
+ public void setDevices(Integer devices) {
+ this.devices = devices;
+ }
+
+ public ControllerRoleVo adopt(Integer adopt) {
+ this.adopt = adopt;
+ return this;
+ }
+
+ /**
+ * Adopt permission should be a value as follows: 0:block; 2:access
+ * @return adopt
+ */
+ @ApiModelProperty(value = "Adopt permission should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getAdopt() {
+ return adopt;
+ }
+
+ public void setAdopt(Integer adopt) {
+ this.adopt = adopt;
+ }
+
+ public ControllerRoleVo addDevices(Integer addDevices) {
+ this.addDevices = addDevices;
+ return this;
+ }
+
+ /**
+ * Add devices permission should be a value as follows: 0:block; 2:access
+ * @return addDevices
+ */
+ @ApiModelProperty(value = "Add devices permission should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getAddDevices() {
+ return addDevices;
+ }
+
+ public void setAddDevices(Integer addDevices) {
+ this.addDevices = addDevices;
+ }
+
+ public ControllerRoleVo addAdoptDevice(Integer addAdoptDevice) {
+ this.addAdoptDevice = addAdoptDevice;
+ return this;
+ }
+
+ /**
+ * Add and adopt devices permission should be a value as follows: 0:block; 2:access
+ * @return addAdoptDevice
+ */
+ @ApiModelProperty(value = "Add and adopt devices permission should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getAddAdoptDevice() {
+ return addAdoptDevice;
+ }
+
+ public void setAddAdoptDevice(Integer addAdoptDevice) {
+ this.addAdoptDevice = addAdoptDevice;
+ }
+
+ public ControllerRoleVo manualUpgrade(Integer manualUpgrade) {
+ this.manualUpgrade = manualUpgrade;
+ return this;
+ }
+
+ /**
+ * Manual Upgrade permission should be a value as follows: 0:block; 2:access
+ * @return manualUpgrade
+ */
+ @ApiModelProperty(value = "Manual Upgrade permission should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getManualUpgrade() {
+ return manualUpgrade;
+ }
+
+ public void setManualUpgrade(Integer manualUpgrade) {
+ this.manualUpgrade = manualUpgrade;
+ }
+
+ public ControllerRoleVo globalLog(Integer globalLog) {
+ this.globalLog = globalLog;
+ return this;
+ }
+
+ /**
+ * Log permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return globalLog
+ */
+ @ApiModelProperty(value = "Log permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getGlobalLog() {
+ return globalLog;
+ }
+
+ public void setGlobalLog(Integer globalLog) {
+ this.globalLog = globalLog;
+ }
+
+ public ControllerRoleVo log(Integer log) {
+ this.log = log;
+ return this;
+ }
+
+ /**
+ * Log permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return log
+ */
+ @ApiModelProperty(value = "Log permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getLog() {
+ return log;
+ }
+
+ public void setLog(Integer log) {
+ this.log = log;
+ }
+
+ public ControllerRoleVo licenseBind(Integer licenseBind) {
+ this.licenseBind = licenseBind;
+ return this;
+ }
+
+ /**
+ * License bind permission should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return licenseBind
+ */
+ @ApiModelProperty(value = "License bind permission should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getLicenseBind() {
+ return licenseBind;
+ }
+
+ public void setLicenseBind(Integer licenseBind) {
+ this.licenseBind = licenseBind;
+ }
+
+ public ControllerRoleVo users(Integer users) {
+ this.users = users;
+ return this;
+ }
+
+ /**
+ * Users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return users
+ */
+ @ApiModelProperty(value = "Users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getUsers() {
+ return users;
+ }
+
+ public void setUsers(Integer users) {
+ this.users = users;
+ }
+
+ public ControllerRoleVo roles(Integer roles) {
+ this.roles = roles;
+ return this;
+ }
+
+ /**
+ * Roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return roles
+ */
+ @ApiModelProperty(value = "Roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getRoles() {
+ return roles;
+ }
+
+ public void setRoles(Integer roles) {
+ this.roles = roles;
+ }
+
+ public ControllerRoleVo samlUsers(Integer samlUsers) {
+ this.samlUsers = samlUsers;
+ return this;
+ }
+
+ /**
+ * Saml users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return samlUsers
+ */
+ @ApiModelProperty(value = "Saml users permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getSamlUsers() {
+ return samlUsers;
+ }
+
+ public void setSamlUsers(Integer samlUsers) {
+ this.samlUsers = samlUsers;
+ }
+
+ public ControllerRoleVo samlRoles(Integer samlRoles) {
+ this.samlRoles = samlRoles;
+ return this;
+ }
+
+ /**
+ * Saml roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return samlRoles
+ */
+ @ApiModelProperty(value = "Saml roles permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getSamlRoles() {
+ return samlRoles;
+ }
+
+ public void setSamlRoles(Integer samlRoles) {
+ this.samlRoles = samlRoles;
+ }
+
+ public ControllerRoleVo samlSsos(Integer samlSsos) {
+ this.samlSsos = samlSsos;
+ return this;
+ }
+
+ /**
+ * Saml ssos permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return samlSsos
+ */
+ @ApiModelProperty(value = "Saml ssos permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getSamlSsos() {
+ return samlSsos;
+ }
+
+ public void setSamlSsos(Integer samlSsos) {
+ this.samlSsos = samlSsos;
+ }
+
+ public ControllerRoleVo globalSetting(Integer globalSetting) {
+ this.globalSetting = globalSetting;
+ return this;
+ }
+
+ /**
+ * Settings permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return globalSetting
+ */
+ @ApiModelProperty(value = "Settings permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getGlobalSetting() {
+ return globalSetting;
+ }
+
+ public void setGlobalSetting(Integer globalSetting) {
+ this.globalSetting = globalSetting;
+ }
+
+ public ControllerRoleVo exportData(Integer exportData) {
+ this.exportData = exportData;
+ return this;
+ }
+
+ /**
+ * Export data permission in site view should be a value as follows: 0:block; 2:access
+ * @return exportData
+ */
+ @ApiModelProperty(value = "Export data permission in site view should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getExportData() {
+ return exportData;
+ }
+
+ public void setExportData(Integer exportData) {
+ this.exportData = exportData;
+ }
+
+ public ControllerRoleVo globalExportData(Integer globalExportData) {
+ this.globalExportData = globalExportData;
+ return this;
+ }
+
+ /**
+ * Export data permission in global view should be a value as follows: 0:block; 2:access
+ * @return globalExportData
+ */
+ @ApiModelProperty(value = "Export data permission in global view should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getGlobalExportData() {
+ return globalExportData;
+ }
+
+ public void setGlobalExportData(Integer globalExportData) {
+ this.globalExportData = globalExportData;
+ }
+
+ public ControllerRoleVo exportGlobalLog(Integer exportGlobalLog) {
+ this.exportGlobalLog = exportGlobalLog;
+ return this;
+ }
+
+ /**
+ * Export global log data permission in global view should be a value as follows: 0:block; 2:access
+ * @return exportGlobalLog
+ */
+ @ApiModelProperty(value = "Export global log data permission in global view should be a value as follows: 0:block; 2:access")
+
+
+ public Integer getExportGlobalLog() {
+ return exportGlobalLog;
+ }
+
+ public void setExportGlobalLog(Integer exportGlobalLog) {
+ this.exportGlobalLog = exportGlobalLog;
+ }
+
+ public ControllerRoleVo hotspot(Integer hotspot) {
+ this.hotspot = hotspot;
+ return this;
+ }
+
+ /**
+ * Hotspot permission should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return hotspot
+ */
+ @ApiModelProperty(value = "Hotspot permission should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getHotspot() {
+ return hotspot;
+ }
+
+ public void setHotspot(Integer hotspot) {
+ this.hotspot = hotspot;
+ }
+
+ public ControllerRoleVo statics(Integer statics) {
+ this.statics = statics;
+ return this;
+ }
+
+ /**
+ * Statics permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return statics
+ */
+ @ApiModelProperty(value = "Statics permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getStatics() {
+ return statics;
+ }
+
+ public void setStatics(Integer statics) {
+ this.statics = statics;
+ }
+
+ public ControllerRoleVo map(Integer map) {
+ this.map = map;
+ return this;
+ }
+
+ /**
+ * Map permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return map
+ */
+ @ApiModelProperty(value = "Map permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getMap() {
+ return map;
+ }
+
+ public void setMap(Integer map) {
+ this.map = map;
+ }
+
+ public ControllerRoleVo clients(Integer clients) {
+ this.clients = clients;
+ return this;
+ }
+
+ /**
+ * Clients permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return clients
+ */
+ @ApiModelProperty(value = "Clients permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getClients() {
+ return clients;
+ }
+
+ public void setClients(Integer clients) {
+ this.clients = clients;
+ }
+
+ public ControllerRoleVo insight(Integer insight) {
+ this.insight = insight;
+ return this;
+ }
+
+ /**
+ * Insight permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return insight
+ */
+ @ApiModelProperty(value = "Insight permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getInsight() {
+ return insight;
+ }
+
+ public void setInsight(Integer insight) {
+ this.insight = insight;
+ }
+
+ public ControllerRoleVo report(Integer report) {
+ this.report = report;
+ return this;
+ }
+
+ /**
+ * Network report permission in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return report
+ */
+ @ApiModelProperty(value = "Network report permission in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getReport() {
+ return report;
+ }
+
+ public void setReport(Integer report) {
+ this.report = report;
+ }
+
+ public ControllerRoleVo network(Integer network) {
+ this.network = network;
+ return this;
+ }
+
+ /**
+ * Site network settings permission in site view -> settings should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return network
+ */
+ @ApiModelProperty(value = "Site network settings permission in site view -> settings should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getNetwork() {
+ return network;
+ }
+
+ public void setNetwork(Integer network) {
+ this.network = network;
+ }
+
+ public ControllerRoleVo deviceAccount(Integer deviceAccount) {
+ this.deviceAccount = deviceAccount;
+ return this;
+ }
+
+ /**
+ * Device account permission in site view -> site settings should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return deviceAccount
+ */
+ @ApiModelProperty(value = "Device account permission in site view -> site settings should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getDeviceAccount() {
+ return deviceAccount;
+ }
+
+ public void setDeviceAccount(Integer deviceAccount) {
+ this.deviceAccount = deviceAccount;
+ }
+
+ public ControllerRoleVo anomaly(Integer anomaly) {
+ this.anomaly = anomaly;
+ return this;
+ }
+
+ /**
+ * Anomaly permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return anomaly
+ */
+ @ApiModelProperty(value = "Anomaly permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getAnomaly() {
+ return anomaly;
+ }
+
+ public void setAnomaly(Integer anomaly) {
+ this.anomaly = anomaly;
+ }
+
+ public ControllerRoleVo analyze(Integer analyze) {
+ this.analyze = analyze;
+ return this;
+ }
+
+ /**
+ * Tools permission in global view. Only for hardware controller should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return analyze
+ */
+ @ApiModelProperty(value = "Tools permission in global view. Only for hardware controller should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getAnalyze() {
+ return analyze;
+ }
+
+ public void setAnalyze(Integer analyze) {
+ this.analyze = analyze;
+ }
+
+ public ControllerRoleVo siteAnalyze(Integer siteAnalyze) {
+ this.siteAnalyze = siteAnalyze;
+ return this;
+ }
+
+ /**
+ * Tools in site view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return siteAnalyze
+ */
+ @ApiModelProperty(value = "Tools in site view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getSiteAnalyze() {
+ return siteAnalyze;
+ }
+
+ public void setSiteAnalyze(Integer siteAnalyze) {
+ this.siteAnalyze = siteAnalyze;
+ }
+
+ public ControllerRoleVo globalSecurity(Integer globalSecurity) {
+ this.globalSecurity = globalSecurity;
+ return this;
+ }
+
+ /**
+ * Security permission in global view should be a value as follows: 0:block; 1:view only; 2:modify
+ * @return globalSecurity
+ */
+ @ApiModelProperty(value = "Security permission in global view should be a value as follows: 0:block; 1:view only; 2:modify")
+
+
+ public Integer getGlobalSecurity() {
+ return globalSecurity;
+ }
+
+ public void setGlobalSecurity(Integer globalSecurity) {
+ this.globalSecurity = globalSecurity;
+ }
+
+ public ControllerRoleVo globalWebhook(Integer globalWebhook) {
+ this.globalWebhook = globalWebhook;
+ return this;
+ }
+
+ /**
+ * Webhook in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
+ * @return globalWebhook
+ */
+ @ApiModelProperty(value = "Webhook in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")
+
+
+ public Integer getGlobalWebhook() {
+ return globalWebhook;
+ }
+
+ public void setGlobalWebhook(Integer globalWebhook) {
+ this.globalWebhook = globalWebhook;
+ }
+
+ public ControllerRoleVo globalMapToken(Integer globalMapToken) {
+ this.globalMapToken = globalMapToken;
+ return this;
+ }
+
+ /**
+ * MapToken in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
+ * @return globalMapToken
+ */
+ @ApiModelProperty(value = "MapToken in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")
+
+
+ public Integer getGlobalMapToken() {
+ return globalMapToken;
+ }
+
+ public void setGlobalMapToken(Integer globalMapToken) {
+ this.globalMapToken = globalMapToken;
+ }
+
+ public ControllerRoleVo siteTemplate(Integer siteTemplate) {
+ this.siteTemplate = siteTemplate;
+ return this;
+ }
+
+ /**
+ * SiteTemplate in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
+ * @return siteTemplate
+ */
+ @ApiModelProperty(value = "SiteTemplate in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")
+
+
+ public Integer getSiteTemplate() {
+ return siteTemplate;
+ }
+
+ public void setSiteTemplate(Integer siteTemplate) {
+ this.siteTemplate = siteTemplate;
+ }
+
+ public ControllerRoleVo firmwareManager(Integer firmwareManager) {
+ this.firmwareManager = firmwareManager;
+ return this;
+ }
+
+ /**
+ * FirmwareManager in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller
+ * @return firmwareManager
+ */
+ @ApiModelProperty(value = "FirmwareManager in global view should be a value as follows: 0:block; 1:view only; 2:modify, only for pro controller")
+
+
+ public Integer getFirmwareManager() {
+ return firmwareManager;
+ }
+
+ public void setFirmwareManager(Integer firmwareManager) {
+ this.firmwareManager = firmwareManager;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ControllerRoleVo controllerRoleVo = (ControllerRoleVo) o;
+ return Objects.equals(this.license, controllerRoleVo.license) &&
+ Objects.equals(this.globalDashboard, controllerRoleVo.globalDashboard) &&
+ Objects.equals(this.dashboard, controllerRoleVo.dashboard) &&
+ Objects.equals(this.devices, controllerRoleVo.devices) &&
+ Objects.equals(this.adopt, controllerRoleVo.adopt) &&
+ Objects.equals(this.addDevices, controllerRoleVo.addDevices) &&
+ Objects.equals(this.addAdoptDevice, controllerRoleVo.addAdoptDevice) &&
+ Objects.equals(this.manualUpgrade, controllerRoleVo.manualUpgrade) &&
+ Objects.equals(this.globalLog, controllerRoleVo.globalLog) &&
+ Objects.equals(this.log, controllerRoleVo.log) &&
+ Objects.equals(this.licenseBind, controllerRoleVo.licenseBind) &&
+ Objects.equals(this.users, controllerRoleVo.users) &&
+ Objects.equals(this.roles, controllerRoleVo.roles) &&
+ Objects.equals(this.samlUsers, controllerRoleVo.samlUsers) &&
+ Objects.equals(this.samlRoles, controllerRoleVo.samlRoles) &&
+ Objects.equals(this.samlSsos, controllerRoleVo.samlSsos) &&
+ Objects.equals(this.globalSetting, controllerRoleVo.globalSetting) &&
+ Objects.equals(this.exportData, controllerRoleVo.exportData) &&
+ Objects.equals(this.globalExportData, controllerRoleVo.globalExportData) &&
+ Objects.equals(this.exportGlobalLog, controllerRoleVo.exportGlobalLog) &&
+ Objects.equals(this.hotspot, controllerRoleVo.hotspot) &&
+ Objects.equals(this.statics, controllerRoleVo.statics) &&
+ Objects.equals(this.map, controllerRoleVo.map) &&
+ Objects.equals(this.clients, controllerRoleVo.clients) &&
+ Objects.equals(this.insight, controllerRoleVo.insight) &&
+ Objects.equals(this.report, controllerRoleVo.report) &&
+ Objects.equals(this.network, controllerRoleVo.network) &&
+ Objects.equals(this.deviceAccount, controllerRoleVo.deviceAccount) &&
+ Objects.equals(this.anomaly, controllerRoleVo.anomaly) &&
+ Objects.equals(this.analyze, controllerRoleVo.analyze) &&
+ Objects.equals(this.siteAnalyze, controllerRoleVo.siteAnalyze) &&
+ Objects.equals(this.globalSecurity, controllerRoleVo.globalSecurity) &&
+ Objects.equals(this.globalWebhook, controllerRoleVo.globalWebhook) &&
+ Objects.equals(this.globalMapToken, controllerRoleVo.globalMapToken) &&
+ Objects.equals(this.siteTemplate, controllerRoleVo.siteTemplate) &&
+ Objects.equals(this.firmwareManager, controllerRoleVo.firmwareManager);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(license, globalDashboard, dashboard, devices, adopt, addDevices, addAdoptDevice, manualUpgrade, globalLog, log, licenseBind, users, roles, samlUsers, samlRoles, samlSsos, globalSetting, exportData, globalExportData, exportGlobalLog, hotspot, statics, map, clients, insight, report, network, deviceAccount, anomaly, analyze, siteAnalyze, globalSecurity, globalWebhook, globalMapToken, siteTemplate, firmwareManager);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ControllerRoleVo {\n");
+
+ sb.append(" license: ").append(toIndentedString(license)).append("\n");
+ sb.append(" globalDashboard: ").append(toIndentedString(globalDashboard)).append("\n");
+ sb.append(" dashboard: ").append(toIndentedString(dashboard)).append("\n");
+ sb.append(" devices: ").append(toIndentedString(devices)).append("\n");
+ sb.append(" adopt: ").append(toIndentedString(adopt)).append("\n");
+ sb.append(" addDevices: ").append(toIndentedString(addDevices)).append("\n");
+ sb.append(" addAdoptDevice: ").append(toIndentedString(addAdoptDevice)).append("\n");
+ sb.append(" manualUpgrade: ").append(toIndentedString(manualUpgrade)).append("\n");
+ sb.append(" globalLog: ").append(toIndentedString(globalLog)).append("\n");
+ sb.append(" log: ").append(toIndentedString(log)).append("\n");
+ sb.append(" licenseBind: ").append(toIndentedString(licenseBind)).append("\n");
+ sb.append(" users: ").append(toIndentedString(users)).append("\n");
+ sb.append(" roles: ").append(toIndentedString(roles)).append("\n");
+ sb.append(" samlUsers: ").append(toIndentedString(samlUsers)).append("\n");
+ sb.append(" samlRoles: ").append(toIndentedString(samlRoles)).append("\n");
+ sb.append(" samlSsos: ").append(toIndentedString(samlSsos)).append("\n");
+ sb.append(" globalSetting: ").append(toIndentedString(globalSetting)).append("\n");
+ sb.append(" exportData: ").append(toIndentedString(exportData)).append("\n");
+ sb.append(" globalExportData: ").append(toIndentedString(globalExportData)).append("\n");
+ sb.append(" exportGlobalLog: ").append(toIndentedString(exportGlobalLog)).append("\n");
+ sb.append(" hotspot: ").append(toIndentedString(hotspot)).append("\n");
+ sb.append(" statics: ").append(toIndentedString(statics)).append("\n");
+ sb.append(" map: ").append(toIndentedString(map)).append("\n");
+ sb.append(" clients: ").append(toIndentedString(clients)).append("\n");
+ sb.append(" insight: ").append(toIndentedString(insight)).append("\n");
+ sb.append(" report: ").append(toIndentedString(report)).append("\n");
+ sb.append(" network: ").append(toIndentedString(network)).append("\n");
+ sb.append(" deviceAccount: ").append(toIndentedString(deviceAccount)).append("\n");
+ sb.append(" anomaly: ").append(toIndentedString(anomaly)).append("\n");
+ sb.append(" analyze: ").append(toIndentedString(analyze)).append("\n");
+ sb.append(" siteAnalyze: ").append(toIndentedString(siteAnalyze)).append("\n");
+ sb.append(" globalSecurity: ").append(toIndentedString(globalSecurity)).append("\n");
+ sb.append(" globalWebhook: ").append(toIndentedString(globalWebhook)).append("\n");
+ sb.append(" globalMapToken: ").append(toIndentedString(globalMapToken)).append("\n");
+ sb.append(" siteTemplate: ").append(toIndentedString(siteTemplate)).append("\n");
+ sb.append(" firmwareManager: ").append(toIndentedString(firmwareManager)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateRoleResultVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateRoleResultVo.java
new file mode 100644
index 0000000..2a18293
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateRoleResultVo.java
@@ -0,0 +1,76 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * CreateRoleResultVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class CreateRoleResultVo {
+ @JsonProperty("roleId")
+ private String roleId;
+
+ public CreateRoleResultVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * Role ID
+ * @return roleId
+ */
+ @ApiModelProperty(value = "Role ID")
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateRoleResultVo createRoleResultVo = (CreateRoleResultVo) o;
+ return Objects.equals(this.roleId, createRoleResultVo.roleId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(roleId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateRoleResultVo {\n");
+
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserResultVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserResultVo.java
new file mode 100644
index 0000000..1c0612c
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserResultVo.java
@@ -0,0 +1,76 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * CreateUserResultVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class CreateUserResultVo {
+ @JsonProperty("userId")
+ private String userId;
+
+ public CreateUserResultVo userId(String userId) {
+ this.userId = userId;
+ return this;
+ }
+
+ /**
+ * User ID
+ * @return userId
+ */
+ @ApiModelProperty(value = "User ID")
+
+
+ public String getUserId() {
+ return userId;
+ }
+
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateUserResultVo createUserResultVo = (CreateUserResultVo) o;
+ return Objects.equals(this.userId, createUserResultVo.userId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(userId);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateUserResultVo {\n");
+
+ sb.append(" userId: ").append(toIndentedString(userId)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserVo.java
new file mode 100644
index 0000000..58bd791
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/CreateUserVo.java
@@ -0,0 +1,294 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * CreateUserVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class CreateUserVo {
+ @JsonProperty("type")
+ private Integer type;
+
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("password")
+ private String password;
+
+ @JsonProperty("email")
+ private String email;
+
+ @JsonProperty("alert")
+ private Boolean alert;
+
+ @JsonProperty("incidentNotification")
+ private Boolean incidentNotification;
+
+ @JsonProperty("sites")
+ @Valid
+ private List sites = null;
+
+ @JsonProperty("allSite")
+ private Boolean allSite;
+
+ public CreateUserVo type(Integer type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Type of user should be a value as follows: 0: local user; 1: cloud user.
+ * @return type
+ */
+ @ApiModelProperty(required = true, value = "Type of user should be a value as follows: 0: local user; 1: cloud user.")
+ @NotNull
+
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public CreateUserVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * This field represents Role ID. Role can be created using 'Create new role' interface, and Role ID can be obtained from 'Get role list' interface.
+ * @return roleId
+ */
+ @ApiModelProperty(required = true, value = "This field represents Role ID. Role can be created using 'Create new role' interface, and Role ID can be obtained from 'Get role list' interface.")
+ @NotNull
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public CreateUserVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * User name should contain 1 to 128 characters. When creating cloud user, you should set TP-LINK ID.
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "User name should contain 1 to 128 characters. When creating cloud user, you should set TP-LINK ID.")
+ @NotNull
+
+@Pattern(regexp="^[\\041-\\0176]$|^[\\041-\\0176][\\040-\\0176]{0,126}[\\041-\\0176]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public CreateUserVo password(String password) {
+ this.password = password;
+ return this;
+ }
+
+ /**
+ * Password of local user should contain 8 to 128 characters. And password must be a combination of uppercase letters, lowercase letters, numbers, and special symbols. Symbols such as ! # $ % & * @ ^ are supported.
+ * @return password
+ */
+ @ApiModelProperty(value = "Password of local user should contain 8 to 128 characters. And password must be a combination of uppercase letters, lowercase letters, numbers, and special symbols. Symbols such as ! # $ % & * @ ^ are supported.")
+
+@Pattern(regexp="^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[\\!\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\./\\:\\;\\<\\=\\>\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~])(?!.*[\\00-\\040\\042\\077\\0177]).{8,128}$")
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public CreateUserVo email(String email) {
+ this.email = email;
+ return this;
+ }
+
+ /**
+ * Email of user.
+ * @return email
+ */
+ @ApiModelProperty(value = "Email of user.")
+
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public CreateUserVo alert(Boolean alert) {
+ this.alert = alert;
+ return this;
+ }
+
+ /**
+ * Whether this user want to receive alert emails. Make sure your email is not null
+ * @return alert
+ */
+ @ApiModelProperty(value = "Whether this user want to receive alert emails. Make sure your email is not null")
+
+
+ public Boolean getAlert() {
+ return alert;
+ }
+
+ public void setAlert(Boolean alert) {
+ this.alert = alert;
+ }
+
+ public CreateUserVo incidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ return this;
+ }
+
+ /**
+ * Incident notification
+ * @return incidentNotification
+ */
+ @ApiModelProperty(value = "Incident notification")
+
+
+ public Boolean getIncidentNotification() {
+ return incidentNotification;
+ }
+
+ public void setIncidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ }
+
+ public CreateUserVo sites(List sites) {
+ this.sites = sites;
+ return this;
+ }
+
+ public CreateUserVo addSitesItem(String sitesItem) {
+ if (this.sites == null) {
+ this.sites = new ArrayList<>();
+ }
+ this.sites.add(sitesItem);
+ return this;
+ }
+
+ /**
+ * User site privilege list
+ * @return sites
+ */
+ @ApiModelProperty(value = "User site privilege list")
+
+
+ public List getSites() {
+ return sites;
+ }
+
+ public void setSites(List sites) {
+ this.sites = sites;
+ }
+
+ public CreateUserVo allSite(Boolean allSite) {
+ this.allSite = allSite;
+ return this;
+ }
+
+ /**
+ * Whether user has all site permission, including new created site.
+ * @return allSite
+ */
+ @ApiModelProperty(required = true, value = "Whether user has all site permission, including new created site.")
+ @NotNull
+
+
+ public Boolean getAllSite() {
+ return allSite;
+ }
+
+ public void setAllSite(Boolean allSite) {
+ this.allSite = allSite;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CreateUserVo createUserVo = (CreateUserVo) o;
+ return Objects.equals(this.type, createUserVo.type) &&
+ Objects.equals(this.roleId, createUserVo.roleId) &&
+ Objects.equals(this.name, createUserVo.name) &&
+ Objects.equals(this.password, createUserVo.password) &&
+ Objects.equals(this.email, createUserVo.email) &&
+ Objects.equals(this.alert, createUserVo.alert) &&
+ Objects.equals(this.incidentNotification, createUserVo.incidentNotification) &&
+ Objects.equals(this.sites, createUserVo.sites) &&
+ Objects.equals(this.allSite, createUserVo.allSite);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(type, roleId, name, password, email, alert, incidentNotification, sites, allSite);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CreateUserVo {\n");
+
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" password: ").append(toIndentedString(password)).append("\n");
+ sb.append(" email: ").append(toIndentedString(email)).append("\n");
+ sb.append(" alert: ").append(toIndentedString(alert)).append("\n");
+ sb.append(" incidentNotification: ").append(toIndentedString(incidentNotification)).append("\n");
+ sb.append(" sites: ").append(toIndentedString(sites)).append("\n");
+ sb.append(" allSite: ").append(toIndentedString(allSite)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/DeleteUserVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/DeleteUserVo.java
new file mode 100644
index 0000000..83f85af
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/DeleteUserVo.java
@@ -0,0 +1,76 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * DeleteUserVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class DeleteUserVo {
+ @JsonProperty("forceDelete")
+ private Boolean forceDelete;
+
+ public DeleteUserVo forceDelete(Boolean forceDelete) {
+ this.forceDelete = forceDelete;
+ return this;
+ }
+
+ /**
+ * Force delete target user. If false, target user can not be deleted, when target user has child users. If true, target user will be deleted anyway. Target user's child users will be root's child user.
+ * @return forceDelete
+ */
+ @ApiModelProperty(value = "Force delete target user. If false, target user can not be deleted, when target user has child users. If true, target user will be deleted anyway. Target user's child users will be root's child user.")
+
+
+ public Boolean getForceDelete() {
+ return forceDelete;
+ }
+
+ public void setForceDelete(Boolean forceDelete) {
+ this.forceDelete = forceDelete;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DeleteUserVo deleteUserVo = (DeleteUserVo) o;
+ return Objects.equals(this.forceDelete, deleteUserVo.forceDelete);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(forceDelete);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class DeleteUserVo {\n");
+
+ sb.append(" forceDelete: ").append(toIndentedString(forceDelete)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserDetailOpenApiVo.java
new file mode 100644
index 0000000..d5c7dc5
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserDetailOpenApiVo.java
@@ -0,0 +1,228 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * ExternalUserDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ExternalUserDetailOpenApiVo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("idpId")
+ private String idpId;
+
+ @JsonProperty("idpName")
+ private String idpName;
+
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("roleName")
+ private String roleName;
+
+ @JsonProperty("privilege")
+ private PrivilegeOpenApiVo privilege;
+
+ public ExternalUserDetailOpenApiVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * External user ID.
+ * @return id
+ */
+ @ApiModelProperty(value = "External user ID.")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ExternalUserDetailOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * External user name.
+ * @return name
+ */
+ @ApiModelProperty(value = "External user name.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ExternalUserDetailOpenApiVo idpId(String idpId) {
+ this.idpId = idpId;
+ return this;
+ }
+
+ /**
+ * The ID of IdP which is used by this user.
+ * @return idpId
+ */
+ @ApiModelProperty(value = "The ID of IdP which is used by this user.")
+
+
+ public String getIdpId() {
+ return idpId;
+ }
+
+ public void setIdpId(String idpId) {
+ this.idpId = idpId;
+ }
+
+ public ExternalUserDetailOpenApiVo idpName(String idpName) {
+ this.idpName = idpName;
+ return this;
+ }
+
+ /**
+ * The name of IdP which is used by this user.
+ * @return idpName
+ */
+ @ApiModelProperty(value = "The name of IdP which is used by this user.")
+
+
+ public String getIdpName() {
+ return idpName;
+ }
+
+ public void setIdpName(String idpName) {
+ this.idpName = idpName;
+ }
+
+ public ExternalUserDetailOpenApiVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * The ID of role which is used by this user.
+ * @return roleId
+ */
+ @ApiModelProperty(value = "The ID of role which is used by this user.")
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public ExternalUserDetailOpenApiVo roleName(String roleName) {
+ this.roleName = roleName;
+ return this;
+ }
+
+ /**
+ * The name of role which is used by this user.
+ * @return roleName
+ */
+ @ApiModelProperty(value = "The name of role which is used by this user.")
+
+
+ public String getRoleName() {
+ return roleName;
+ }
+
+ public void setRoleName(String roleName) {
+ this.roleName = roleName;
+ }
+
+ public ExternalUserDetailOpenApiVo privilege(PrivilegeOpenApiVo privilege) {
+ this.privilege = privilege;
+ return this;
+ }
+
+ /**
+ * Get privilege
+ * @return privilege
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public PrivilegeOpenApiVo getPrivilege() {
+ return privilege;
+ }
+
+ public void setPrivilege(PrivilegeOpenApiVo privilege) {
+ this.privilege = privilege;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ExternalUserDetailOpenApiVo externalUserDetailOpenApiVo = (ExternalUserDetailOpenApiVo) o;
+ return Objects.equals(this.id, externalUserDetailOpenApiVo.id) &&
+ Objects.equals(this.name, externalUserDetailOpenApiVo.name) &&
+ Objects.equals(this.idpId, externalUserDetailOpenApiVo.idpId) &&
+ Objects.equals(this.idpName, externalUserDetailOpenApiVo.idpName) &&
+ Objects.equals(this.roleId, externalUserDetailOpenApiVo.roleId) &&
+ Objects.equals(this.roleName, externalUserDetailOpenApiVo.roleName) &&
+ Objects.equals(this.privilege, externalUserDetailOpenApiVo.privilege);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, idpId, idpName, roleId, roleName, privilege);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ExternalUserDetailOpenApiVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" idpId: ").append(toIndentedString(idpId)).append("\n");
+ sb.append(" idpName: ").append(toIndentedString(idpName)).append("\n");
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" roleName: ").append(toIndentedString(roleName)).append("\n");
+ sb.append(" privilege: ").append(toIndentedString(privilege)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupDetailOpenApiVo.java
new file mode 100644
index 0000000..2304fbb
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupDetailOpenApiVo.java
@@ -0,0 +1,239 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ExternalUserGroupDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ExternalUserGroupDetailOpenApiVo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("roleName")
+ private String roleName;
+
+ @JsonProperty("roleType")
+ private Integer roleType;
+
+ @JsonProperty("allSite")
+ private Boolean allSite;
+
+ @JsonProperty("sites")
+ @Valid
+ private List sites = null;
+
+ public ExternalUserGroupDetailOpenApiVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * External user group ID.
+ * @return id
+ */
+ @ApiModelProperty(value = "External user group ID.")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * External user group name.
+ * @return name
+ */
+ @ApiModelProperty(value = "External user group name.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * Role ID.
+ * @return roleId
+ */
+ @ApiModelProperty(value = "Role ID.")
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo roleName(String roleName) {
+ this.roleName = roleName;
+ return this;
+ }
+
+ /**
+ * Role name.
+ * @return roleName
+ */
+ @ApiModelProperty(value = "Role name.")
+
+
+ public String getRoleName() {
+ return roleName;
+ }
+
+ public void setRoleName(String roleName) {
+ this.roleName = roleName;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo roleType(Integer roleType) {
+ this.roleType = roleType;
+ return this;
+ }
+
+ /**
+ * Role type. It should be a value as follows: 0: standard, 1: customer, 2: msp.
+ * @return roleType
+ */
+ @ApiModelProperty(value = "Role type. It should be a value as follows: 0: standard, 1: customer, 2: msp.")
+
+
+ public Integer getRoleType() {
+ return roleType;
+ }
+
+ public void setRoleType(Integer roleType) {
+ this.roleType = roleType;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo allSite(Boolean allSite) {
+ this.allSite = allSite;
+ return this;
+ }
+
+ /**
+ * Whether having all site permissions.
+ * @return allSite
+ */
+ @ApiModelProperty(value = "Whether having all site permissions.")
+
+
+ public Boolean getAllSite() {
+ return allSite;
+ }
+
+ public void setAllSite(Boolean allSite) {
+ this.allSite = allSite;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo sites(List sites) {
+ this.sites = sites;
+ return this;
+ }
+
+ public ExternalUserGroupDetailOpenApiVo addSitesItem(SiteInfoOpenApiVo sitesItem) {
+ if (this.sites == null) {
+ this.sites = new ArrayList<>();
+ }
+ this.sites.add(sitesItem);
+ return this;
+ }
+
+ /**
+ * The sites which can be accessed.
+ * @return sites
+ */
+ @ApiModelProperty(value = "The sites which can be accessed.")
+
+ @Valid
+
+ public List getSites() {
+ return sites;
+ }
+
+ public void setSites(List sites) {
+ this.sites = sites;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ExternalUserGroupDetailOpenApiVo externalUserGroupDetailOpenApiVo = (ExternalUserGroupDetailOpenApiVo) o;
+ return Objects.equals(this.id, externalUserGroupDetailOpenApiVo.id) &&
+ Objects.equals(this.name, externalUserGroupDetailOpenApiVo.name) &&
+ Objects.equals(this.roleId, externalUserGroupDetailOpenApiVo.roleId) &&
+ Objects.equals(this.roleName, externalUserGroupDetailOpenApiVo.roleName) &&
+ Objects.equals(this.roleType, externalUserGroupDetailOpenApiVo.roleType) &&
+ Objects.equals(this.allSite, externalUserGroupDetailOpenApiVo.allSite) &&
+ Objects.equals(this.sites, externalUserGroupDetailOpenApiVo.sites);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, roleId, roleName, roleType, allSite, sites);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ExternalUserGroupDetailOpenApiVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" roleName: ").append(toIndentedString(roleName)).append("\n");
+ sb.append(" roleType: ").append(toIndentedString(roleType)).append("\n");
+ sb.append(" allSite: ").append(toIndentedString(allSite)).append("\n");
+ sb.append(" sites: ").append(toIndentedString(sites)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupOpenApiVo.java
new file mode 100644
index 0000000..d6beaf2
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ExternalUserGroupOpenApiVo.java
@@ -0,0 +1,168 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ExternalUserGroupOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ExternalUserGroupOpenApiVo {
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("allSite")
+ private Boolean allSite;
+
+ @JsonProperty("sites")
+ @Valid
+ private List sites = null;
+
+ public ExternalUserGroupOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * External user group name should contain 1 to 128 characters.
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "External user group name should contain 1 to 128 characters.")
+ @NotNull
+
+@Pattern(regexp="^[\\041-\\0176]$|^[\\041-\\0176][\\040-\\0176]{0,126}[\\041-\\0176]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ExternalUserGroupOpenApiVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * Role ID which can be obtained from 'Get role list' interface.
+ * @return roleId
+ */
+ @ApiModelProperty(required = true, value = "Role ID which can be obtained from 'Get role list' interface.")
+ @NotNull
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public ExternalUserGroupOpenApiVo allSite(Boolean allSite) {
+ this.allSite = allSite;
+ return this;
+ }
+
+ /**
+ * Whether having all site permissions.
+ * @return allSite
+ */
+ @ApiModelProperty(required = true, value = "Whether having all site permissions.")
+ @NotNull
+
+
+ public Boolean getAllSite() {
+ return allSite;
+ }
+
+ public void setAllSite(Boolean allSite) {
+ this.allSite = allSite;
+ }
+
+ public ExternalUserGroupOpenApiVo sites(List sites) {
+ this.sites = sites;
+ return this;
+ }
+
+ public ExternalUserGroupOpenApiVo addSitesItem(String sitesItem) {
+ if (this.sites == null) {
+ this.sites = new ArrayList<>();
+ }
+ this.sites.add(sitesItem);
+ return this;
+ }
+
+ /**
+ * The site IDs that can be accessed. Effective when allSite is false.
+ * @return sites
+ */
+ @ApiModelProperty(value = "The site IDs that can be accessed. Effective when allSite is false.")
+
+
+ public List getSites() {
+ return sites;
+ }
+
+ public void setSites(List sites) {
+ this.sites = sites;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ExternalUserGroupOpenApiVo externalUserGroupOpenApiVo = (ExternalUserGroupOpenApiVo) o;
+ return Objects.equals(this.name, externalUserGroupOpenApiVo.name) &&
+ Objects.equals(this.roleId, externalUserGroupOpenApiVo.roleId) &&
+ Objects.equals(this.allSite, externalUserGroupOpenApiVo.allSite) &&
+ Objects.equals(this.sites, externalUserGroupOpenApiVo.sites);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, roleId, allSite, sites);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ExternalUserGroupOpenApiVo {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" allSite: ").append(toIndentedString(allSite)).append("\n");
+ sb.append(" sites: ").append(toIndentedString(sites)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserDetailOpenApiVo.java
new file mode 100644
index 0000000..e730da8
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserDetailOpenApiVo.java
@@ -0,0 +1,164 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * GridVoExternalUserDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class GridVoExternalUserDetailOpenApiVo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ public GridVoExternalUserDetailOpenApiVo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public GridVoExternalUserDetailOpenApiVo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public GridVoExternalUserDetailOpenApiVo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public GridVoExternalUserDetailOpenApiVo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public GridVoExternalUserDetailOpenApiVo addDataItem(ExternalUserDetailOpenApiVo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GridVoExternalUserDetailOpenApiVo gridVoExternalUserDetailOpenApiVo = (GridVoExternalUserDetailOpenApiVo) o;
+ return Objects.equals(this.totalRows, gridVoExternalUserDetailOpenApiVo.totalRows) &&
+ Objects.equals(this.currentPage, gridVoExternalUserDetailOpenApiVo.currentPage) &&
+ Objects.equals(this.currentSize, gridVoExternalUserDetailOpenApiVo.currentSize) &&
+ Objects.equals(this.data, gridVoExternalUserDetailOpenApiVo.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GridVoExternalUserDetailOpenApiVo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserGroupDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserGroupDetailOpenApiVo.java
new file mode 100644
index 0000000..24a51ea
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoExternalUserGroupDetailOpenApiVo.java
@@ -0,0 +1,164 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * GridVoExternalUserGroupDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class GridVoExternalUserGroupDetailOpenApiVo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ public GridVoExternalUserGroupDetailOpenApiVo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public GridVoExternalUserGroupDetailOpenApiVo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public GridVoExternalUserGroupDetailOpenApiVo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public GridVoExternalUserGroupDetailOpenApiVo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public GridVoExternalUserGroupDetailOpenApiVo addDataItem(ExternalUserGroupDetailOpenApiVo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GridVoExternalUserGroupDetailOpenApiVo gridVoExternalUserGroupDetailOpenApiVo = (GridVoExternalUserGroupDetailOpenApiVo) o;
+ return Objects.equals(this.totalRows, gridVoExternalUserGroupDetailOpenApiVo.totalRows) &&
+ Objects.equals(this.currentPage, gridVoExternalUserGroupDetailOpenApiVo.currentPage) &&
+ Objects.equals(this.currentSize, gridVoExternalUserGroupDetailOpenApiVo.currentSize) &&
+ Objects.equals(this.data, gridVoExternalUserGroupDetailOpenApiVo.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GridVoExternalUserGroupDetailOpenApiVo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoIdpMetadataDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoIdpMetadataDetailOpenApiVo.java
new file mode 100644
index 0000000..028f3cc
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoIdpMetadataDetailOpenApiVo.java
@@ -0,0 +1,164 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * GridVoIdpMetadataDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class GridVoIdpMetadataDetailOpenApiVo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ public GridVoIdpMetadataDetailOpenApiVo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public GridVoIdpMetadataDetailOpenApiVo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public GridVoIdpMetadataDetailOpenApiVo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public GridVoIdpMetadataDetailOpenApiVo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public GridVoIdpMetadataDetailOpenApiVo addDataItem(IdpMetadataDetailOpenApiVo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GridVoIdpMetadataDetailOpenApiVo gridVoIdpMetadataDetailOpenApiVo = (GridVoIdpMetadataDetailOpenApiVo) o;
+ return Objects.equals(this.totalRows, gridVoIdpMetadataDetailOpenApiVo.totalRows) &&
+ Objects.equals(this.currentPage, gridVoIdpMetadataDetailOpenApiVo.currentPage) &&
+ Objects.equals(this.currentSize, gridVoIdpMetadataDetailOpenApiVo.currentSize) &&
+ Objects.equals(this.data, gridVoIdpMetadataDetailOpenApiVo.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GridVoIdpMetadataDetailOpenApiVo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoUserDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoUserDetailVo.java
new file mode 100644
index 0000000..21d13eb
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/GridVoUserDetailVo.java
@@ -0,0 +1,164 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * GridVoUserDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class GridVoUserDetailVo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ public GridVoUserDetailVo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public GridVoUserDetailVo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public GridVoUserDetailVo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public GridVoUserDetailVo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public GridVoUserDetailVo addDataItem(UserDetailVo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GridVoUserDetailVo gridVoUserDetailVo = (GridVoUserDetailVo) o;
+ return Objects.equals(this.totalRows, gridVoUserDetailVo.totalRows) &&
+ Objects.equals(this.currentPage, gridVoUserDetailVo.currentPage) &&
+ Objects.equals(this.currentSize, gridVoUserDetailVo.currentSize) &&
+ Objects.equals(this.data, gridVoUserDetailVo.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GridVoUserDetailVo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataDetailOpenApiVo.java
new file mode 100644
index 0000000..618a9b0
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataDetailOpenApiVo.java
@@ -0,0 +1,251 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * IdpMetadataDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class IdpMetadataDetailOpenApiVo {
+ @JsonProperty("idpId")
+ private String idpId;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("description")
+ private String description;
+
+ @JsonProperty("entityId")
+ private String entityId;
+
+ @JsonProperty("loginUrl")
+ private String loginUrl;
+
+ @JsonProperty("x509Certificate")
+ private String x509Certificate;
+
+ @JsonProperty("entityUrl")
+ private String entityUrl;
+
+ @JsonProperty("signOnUrl")
+ private String signOnUrl;
+
+ public IdpMetadataDetailOpenApiVo idpId(String idpId) {
+ this.idpId = idpId;
+ return this;
+ }
+
+ /**
+ * IdP ID(resource ID).
+ * @return idpId
+ */
+ @ApiModelProperty(value = "IdP ID(resource ID).")
+
+
+ public String getIdpId() {
+ return idpId;
+ }
+
+ public void setIdpId(String idpId) {
+ this.idpId = idpId;
+ }
+
+ public IdpMetadataDetailOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * IdP name.
+ * @return name
+ */
+ @ApiModelProperty(value = "IdP name.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public IdpMetadataDetailOpenApiVo description(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Description.
+ * @return description
+ */
+ @ApiModelProperty(value = "Description.")
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public IdpMetadataDetailOpenApiVo entityId(String entityId) {
+ this.entityId = entityId;
+ return this;
+ }
+
+ /**
+ * The IdP entity ID which must be unique in same Omadac.
+ * @return entityId
+ */
+ @ApiModelProperty(value = "The IdP entity ID which must be unique in same Omadac.")
+
+
+ public String getEntityId() {
+ return entityId;
+ }
+
+ public void setEntityId(String entityId) {
+ this.entityId = entityId;
+ }
+
+ public IdpMetadataDetailOpenApiVo loginUrl(String loginUrl) {
+ this.loginUrl = loginUrl;
+ return this;
+ }
+
+ /**
+ * Login url.
+ * @return loginUrl
+ */
+ @ApiModelProperty(value = "Login url.")
+
+
+ public String getLoginUrl() {
+ return loginUrl;
+ }
+
+ public void setLoginUrl(String loginUrl) {
+ this.loginUrl = loginUrl;
+ }
+
+ public IdpMetadataDetailOpenApiVo x509Certificate(String x509Certificate) {
+ this.x509Certificate = x509Certificate;
+ return this;
+ }
+
+ /**
+ * BASE64 encoded string of x509 certificate.
+ * @return x509Certificate
+ */
+ @ApiModelProperty(value = "BASE64 encoded string of x509 certificate.")
+
+
+ public String getX509Certificate() {
+ return x509Certificate;
+ }
+
+ public void setX509Certificate(String x509Certificate) {
+ this.x509Certificate = x509Certificate;
+ }
+
+ public IdpMetadataDetailOpenApiVo entityUrl(String entityUrl) {
+ this.entityUrl = entityUrl;
+ return this;
+ }
+
+ /**
+ * Entity url.
+ * @return entityUrl
+ */
+ @ApiModelProperty(value = "Entity url.")
+
+
+ public String getEntityUrl() {
+ return entityUrl;
+ }
+
+ public void setEntityUrl(String entityUrl) {
+ this.entityUrl = entityUrl;
+ }
+
+ public IdpMetadataDetailOpenApiVo signOnUrl(String signOnUrl) {
+ this.signOnUrl = signOnUrl;
+ return this;
+ }
+
+ /**
+ * Sign On url.
+ * @return signOnUrl
+ */
+ @ApiModelProperty(value = "Sign On url.")
+
+
+ public String getSignOnUrl() {
+ return signOnUrl;
+ }
+
+ public void setSignOnUrl(String signOnUrl) {
+ this.signOnUrl = signOnUrl;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ IdpMetadataDetailOpenApiVo idpMetadataDetailOpenApiVo = (IdpMetadataDetailOpenApiVo) o;
+ return Objects.equals(this.idpId, idpMetadataDetailOpenApiVo.idpId) &&
+ Objects.equals(this.name, idpMetadataDetailOpenApiVo.name) &&
+ Objects.equals(this.description, idpMetadataDetailOpenApiVo.description) &&
+ Objects.equals(this.entityId, idpMetadataDetailOpenApiVo.entityId) &&
+ Objects.equals(this.loginUrl, idpMetadataDetailOpenApiVo.loginUrl) &&
+ Objects.equals(this.x509Certificate, idpMetadataDetailOpenApiVo.x509Certificate) &&
+ Objects.equals(this.entityUrl, idpMetadataDetailOpenApiVo.entityUrl) &&
+ Objects.equals(this.signOnUrl, idpMetadataDetailOpenApiVo.signOnUrl);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(idpId, name, description, entityId, loginUrl, x509Certificate, entityUrl, signOnUrl);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class IdpMetadataDetailOpenApiVo {\n");
+
+ sb.append(" idpId: ").append(toIndentedString(idpId)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" entityId: ").append(toIndentedString(entityId)).append("\n");
+ sb.append(" loginUrl: ").append(toIndentedString(loginUrl)).append("\n");
+ sb.append(" x509Certificate: ").append(toIndentedString(x509Certificate)).append("\n");
+ sb.append(" entityUrl: ").append(toIndentedString(entityUrl)).append("\n");
+ sb.append(" signOnUrl: ").append(toIndentedString(signOnUrl)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataOpenApiVo.java
new file mode 100644
index 0000000..1286801
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/IdpMetadataOpenApiVo.java
@@ -0,0 +1,182 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.Objects;
+
+/**
+ * IdpMetadataOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class IdpMetadataOpenApiVo {
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("description")
+ private String description;
+
+ @JsonProperty("entityId")
+ private String entityId;
+
+ @JsonProperty("loginUrl")
+ private String loginUrl;
+
+ @JsonProperty("x509Certificate")
+ private String x509Certificate;
+
+ public IdpMetadataOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * IdP name should contain 1 to 32 characters.
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "IdP name should contain 1 to 32 characters.")
+ @NotNull
+
+@Pattern(regexp="^[^ ]$|^[^ ].{0,30}[^ ]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public IdpMetadataOpenApiVo description(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * IdP description should contain 0 to 128 characters.
+ * @return description
+ */
+ @ApiModelProperty(value = "IdP description should contain 0 to 128 characters.")
+
+@Pattern(regexp="^$|^[^ ]$|^[^ ].{0,126}[^ ]$")
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public IdpMetadataOpenApiVo entityId(String entityId) {
+ this.entityId = entityId;
+ return this;
+ }
+
+ /**
+ * The IdP entity id which must be unique in same Omadac.
+ * @return entityId
+ */
+ @ApiModelProperty(required = true, value = "The IdP entity id which must be unique in same Omadac.")
+ @NotNull
+
+@Pattern(regexp="^(?=^.{3,255}$)(http(s)?://)(www\\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\\d+)*(/[\\w-]*(\\.[\\w-]+)?)*([\\?&][\\w-]+=[\\w-]*)*$")
+ public String getEntityId() {
+ return entityId;
+ }
+
+ public void setEntityId(String entityId) {
+ this.entityId = entityId;
+ }
+
+ public IdpMetadataOpenApiVo loginUrl(String loginUrl) {
+ this.loginUrl = loginUrl;
+ return this;
+ }
+
+ /**
+ * Login url
+ * @return loginUrl
+ */
+ @ApiModelProperty(required = true, value = "Login url")
+ @NotNull
+
+@Pattern(regexp="^(?=^.{3,255}$)(http(s)?://)(www\\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\\d+)*(/[\\w-]*(\\.[\\w-]+)?)*([\\?&][\\w-]+=[\\w-]*)*$")
+ public String getLoginUrl() {
+ return loginUrl;
+ }
+
+ public void setLoginUrl(String loginUrl) {
+ this.loginUrl = loginUrl;
+ }
+
+ public IdpMetadataOpenApiVo x509Certificate(String x509Certificate) {
+ this.x509Certificate = x509Certificate;
+ return this;
+ }
+
+ /**
+ * BASE64 encoded string of x509 certificate.
+ * @return x509Certificate
+ */
+ @ApiModelProperty(required = true, value = "BASE64 encoded string of x509 certificate.")
+ @NotNull
+
+
+ public String getX509Certificate() {
+ return x509Certificate;
+ }
+
+ public void setX509Certificate(String x509Certificate) {
+ this.x509Certificate = x509Certificate;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ IdpMetadataOpenApiVo idpMetadataOpenApiVo = (IdpMetadataOpenApiVo) o;
+ return Objects.equals(this.name, idpMetadataOpenApiVo.name) &&
+ Objects.equals(this.description, idpMetadataOpenApiVo.description) &&
+ Objects.equals(this.entityId, idpMetadataOpenApiVo.entityId) &&
+ Objects.equals(this.loginUrl, idpMetadataOpenApiVo.loginUrl) &&
+ Objects.equals(this.x509Certificate, idpMetadataOpenApiVo.x509Certificate);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, description, entityId, loginUrl, x509Certificate);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class IdpMetadataOpenApiVo {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" entityId: ").append(toIndentedString(entityId)).append("\n");
+ sb.append(" loginUrl: ").append(toIndentedString(loginUrl)).append("\n");
+ sb.append(" x509Certificate: ").append(toIndentedString(x509Certificate)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyControllerRoleVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyControllerRoleVo.java
new file mode 100644
index 0000000..ff8dfb9
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyControllerRoleVo.java
@@ -0,0 +1,106 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.Objects;
+
+/**
+ * ModifyControllerRoleVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ModifyControllerRoleVo {
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("privilege")
+ private ControllerRoleVo privilege;
+
+ public ModifyControllerRoleVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Role name should contain 1 to 128 characters.
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "Role name should contain 1 to 128 characters.")
+ @NotNull
+
+@Pattern(regexp="^[\\041-\\0176]$|^[\\041-\\0176][\\040-\\0176]{0,126}[\\041-\\0176]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ModifyControllerRoleVo privilege(ControllerRoleVo privilege) {
+ this.privilege = privilege;
+ return this;
+ }
+
+ /**
+ * Get privilege
+ * @return privilege
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ControllerRoleVo getPrivilege() {
+ return privilege;
+ }
+
+ public void setPrivilege(ControllerRoleVo privilege) {
+ this.privilege = privilege;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModifyControllerRoleVo modifyControllerRoleVo = (ModifyControllerRoleVo) o;
+ return Objects.equals(this.name, modifyControllerRoleVo.name) &&
+ Objects.equals(this.privilege, modifyControllerRoleVo.privilege);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, privilege);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModifyControllerRoleVo {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" privilege: ").append(toIndentedString(privilege)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyUserVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyUserVo.java
new file mode 100644
index 0000000..b3d6f46
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ModifyUserVo.java
@@ -0,0 +1,293 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ModifyUserVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ModifyUserVo {
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("password")
+ private String password;
+
+ @JsonProperty("email")
+ private String email;
+
+ @JsonProperty("alert")
+ private Boolean alert;
+
+ @JsonProperty("forceModify")
+ private Boolean forceModify;
+
+ @JsonProperty("incidentNotification")
+ private Boolean incidentNotification;
+
+ @JsonProperty("sites")
+ @Valid
+ private List sites = null;
+
+ @JsonProperty("allSite")
+ private Boolean allSite;
+
+ public ModifyUserVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * This field represents Role ID. Role can be created using 'Create new role' interface, and Role ID can be obtained from 'Get role list' interface.
+ * @return roleId
+ */
+ @ApiModelProperty(required = true, value = "This field represents Role ID. Role can be created using 'Create new role' interface, and Role ID can be obtained from 'Get role list' interface.")
+ @NotNull
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public ModifyUserVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * User name should contain 1 to 128 characters. When creating cloud user, you should set TP-LINK ID.
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "User name should contain 1 to 128 characters. When creating cloud user, you should set TP-LINK ID.")
+ @NotNull
+
+@Pattern(regexp="^[\\041-\\0176]$|^[\\041-\\0176][\\040-\\0176]{0,126}[\\041-\\0176]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ModifyUserVo password(String password) {
+ this.password = password;
+ return this;
+ }
+
+ /**
+ * Password of local user should contain 8 to 128 characters. And password must be a combination of uppercase letters, lowercase letters, numbers, and special symbols. Symbols such as ! # $ % & * @ ^ are supported.
+ * @return password
+ */
+ @ApiModelProperty(value = "Password of local user should contain 8 to 128 characters. And password must be a combination of uppercase letters, lowercase letters, numbers, and special symbols. Symbols such as ! # $ % & * @ ^ are supported.")
+
+@Pattern(regexp="^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[\\!\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\./\\:\\;\\<\\=\\>\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~])(?!.*[\\00-\\040\\042\\077\\0177]).{8,128}$")
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public ModifyUserVo email(String email) {
+ this.email = email;
+ return this;
+ }
+
+ /**
+ * Email of user
+ * @return email
+ */
+ @ApiModelProperty(value = "Email of user")
+
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public ModifyUserVo alert(Boolean alert) {
+ this.alert = alert;
+ return this;
+ }
+
+ /**
+ * Alert email
+ * @return alert
+ */
+ @ApiModelProperty(value = "Alert email")
+
+
+ public Boolean getAlert() {
+ return alert;
+ }
+
+ public void setAlert(Boolean alert) {
+ this.alert = alert;
+ }
+
+ public ModifyUserVo forceModify(Boolean forceModify) {
+ this.forceModify = forceModify;
+ return this;
+ }
+
+ /**
+ * Force modify
+ * @return forceModify
+ */
+ @ApiModelProperty(value = "Force modify")
+
+
+ public Boolean getForceModify() {
+ return forceModify;
+ }
+
+ public void setForceModify(Boolean forceModify) {
+ this.forceModify = forceModify;
+ }
+
+ public ModifyUserVo incidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ return this;
+ }
+
+ /**
+ * Incident notification
+ * @return incidentNotification
+ */
+ @ApiModelProperty(value = "Incident notification")
+
+
+ public Boolean getIncidentNotification() {
+ return incidentNotification;
+ }
+
+ public void setIncidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ }
+
+ public ModifyUserVo sites(List sites) {
+ this.sites = sites;
+ return this;
+ }
+
+ public ModifyUserVo addSitesItem(String sitesItem) {
+ if (this.sites == null) {
+ this.sites = new ArrayList<>();
+ }
+ this.sites.add(sitesItem);
+ return this;
+ }
+
+ /**
+ * User site privilege list
+ * @return sites
+ */
+ @ApiModelProperty(value = "User site privilege list")
+
+
+ public List getSites() {
+ return sites;
+ }
+
+ public void setSites(List sites) {
+ this.sites = sites;
+ }
+
+ public ModifyUserVo allSite(Boolean allSite) {
+ this.allSite = allSite;
+ return this;
+ }
+
+ /**
+ * Whether user has all site permission, including new created site.
+ * @return allSite
+ */
+ @ApiModelProperty(required = true, value = "Whether user has all site permission, including new created site.")
+ @NotNull
+
+
+ public Boolean getAllSite() {
+ return allSite;
+ }
+
+ public void setAllSite(Boolean allSite) {
+ this.allSite = allSite;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ModifyUserVo modifyUserVo = (ModifyUserVo) o;
+ return Objects.equals(this.roleId, modifyUserVo.roleId) &&
+ Objects.equals(this.name, modifyUserVo.name) &&
+ Objects.equals(this.password, modifyUserVo.password) &&
+ Objects.equals(this.email, modifyUserVo.email) &&
+ Objects.equals(this.alert, modifyUserVo.alert) &&
+ Objects.equals(this.forceModify, modifyUserVo.forceModify) &&
+ Objects.equals(this.incidentNotification, modifyUserVo.incidentNotification) &&
+ Objects.equals(this.sites, modifyUserVo.sites) &&
+ Objects.equals(this.allSite, modifyUserVo.allSite);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(roleId, name, password, email, alert, forceModify, incidentNotification, sites, allSite);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ModifyUserVo {\n");
+
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" password: ").append(toIndentedString(password)).append("\n");
+ sb.append(" email: ").append(toIndentedString(email)).append("\n");
+ sb.append(" alert: ").append(toIndentedString(alert)).append("\n");
+ sb.append(" forceModify: ").append(toIndentedString(forceModify)).append("\n");
+ sb.append(" incidentNotification: ").append(toIndentedString(incidentNotification)).append("\n");
+ sb.append(" sites: ").append(toIndentedString(sites)).append("\n");
+ sb.append(" allSite: ").append(toIndentedString(allSite)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseControllerRoleDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseControllerRoleDetailVo.java
new file mode 100644
index 0000000..8b5e43e
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseControllerRoleDetailVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseControllerRoleDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseControllerRoleDetailVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private ControllerRoleDetailVo result;
+
+ public OperationResponseControllerRoleDetailVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseControllerRoleDetailVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseControllerRoleDetailVo result(ControllerRoleDetailVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ControllerRoleDetailVo getResult() {
+ return result;
+ }
+
+ public void setResult(ControllerRoleDetailVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseControllerRoleDetailVo operationResponseControllerRoleDetailVo = (OperationResponseControllerRoleDetailVo) o;
+ return Objects.equals(this.errorCode, operationResponseControllerRoleDetailVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseControllerRoleDetailVo.msg) &&
+ Objects.equals(this.result, operationResponseControllerRoleDetailVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseControllerRoleDetailVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateRoleResultVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateRoleResultVo.java
new file mode 100644
index 0000000..d215481
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateRoleResultVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseCreateRoleResultVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseCreateRoleResultVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private CreateRoleResultVo result;
+
+ public OperationResponseCreateRoleResultVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseCreateRoleResultVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseCreateRoleResultVo result(CreateRoleResultVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public CreateRoleResultVo getResult() {
+ return result;
+ }
+
+ public void setResult(CreateRoleResultVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseCreateRoleResultVo operationResponseCreateRoleResultVo = (OperationResponseCreateRoleResultVo) o;
+ return Objects.equals(this.errorCode, operationResponseCreateRoleResultVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseCreateRoleResultVo.msg) &&
+ Objects.equals(this.result, operationResponseCreateRoleResultVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseCreateRoleResultVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateUserResultVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateUserResultVo.java
new file mode 100644
index 0000000..d783e22
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseCreateUserResultVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseCreateUserResultVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseCreateUserResultVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private CreateUserResultVo result;
+
+ public OperationResponseCreateUserResultVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseCreateUserResultVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseCreateUserResultVo result(CreateUserResultVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public CreateUserResultVo getResult() {
+ return result;
+ }
+
+ public void setResult(CreateUserResultVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseCreateUserResultVo operationResponseCreateUserResultVo = (OperationResponseCreateUserResultVo) o;
+ return Objects.equals(this.errorCode, operationResponseCreateUserResultVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseCreateUserResultVo.msg) &&
+ Objects.equals(this.result, operationResponseCreateUserResultVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseCreateUserResultVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserDetailOpenApiVo.java
new file mode 100644
index 0000000..9fedda4
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserDetailOpenApiVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseGridVoExternalUserDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseGridVoExternalUserDetailOpenApiVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private GridVoExternalUserDetailOpenApiVo result;
+
+ public OperationResponseGridVoExternalUserDetailOpenApiVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseGridVoExternalUserDetailOpenApiVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseGridVoExternalUserDetailOpenApiVo result(GridVoExternalUserDetailOpenApiVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public GridVoExternalUserDetailOpenApiVo getResult() {
+ return result;
+ }
+
+ public void setResult(GridVoExternalUserDetailOpenApiVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseGridVoExternalUserDetailOpenApiVo operationResponseGridVoExternalUserDetailOpenApiVo = (OperationResponseGridVoExternalUserDetailOpenApiVo) o;
+ return Objects.equals(this.errorCode, operationResponseGridVoExternalUserDetailOpenApiVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseGridVoExternalUserDetailOpenApiVo.msg) &&
+ Objects.equals(this.result, operationResponseGridVoExternalUserDetailOpenApiVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseGridVoExternalUserDetailOpenApiVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserGroupDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserGroupDetailOpenApiVo.java
new file mode 100644
index 0000000..40f800f
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoExternalUserGroupDetailOpenApiVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseGridVoExternalUserGroupDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseGridVoExternalUserGroupDetailOpenApiVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private GridVoExternalUserGroupDetailOpenApiVo result;
+
+ public OperationResponseGridVoExternalUserGroupDetailOpenApiVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseGridVoExternalUserGroupDetailOpenApiVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseGridVoExternalUserGroupDetailOpenApiVo result(GridVoExternalUserGroupDetailOpenApiVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public GridVoExternalUserGroupDetailOpenApiVo getResult() {
+ return result;
+ }
+
+ public void setResult(GridVoExternalUserGroupDetailOpenApiVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseGridVoExternalUserGroupDetailOpenApiVo operationResponseGridVoExternalUserGroupDetailOpenApiVo = (OperationResponseGridVoExternalUserGroupDetailOpenApiVo) o;
+ return Objects.equals(this.errorCode, operationResponseGridVoExternalUserGroupDetailOpenApiVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseGridVoExternalUserGroupDetailOpenApiVo.msg) &&
+ Objects.equals(this.result, operationResponseGridVoExternalUserGroupDetailOpenApiVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseGridVoExternalUserGroupDetailOpenApiVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoIdpMetadataDetailOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoIdpMetadataDetailOpenApiVo.java
new file mode 100644
index 0000000..23ee98a
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoIdpMetadataDetailOpenApiVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseGridVoIdpMetadataDetailOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseGridVoIdpMetadataDetailOpenApiVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private GridVoIdpMetadataDetailOpenApiVo result;
+
+ public OperationResponseGridVoIdpMetadataDetailOpenApiVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseGridVoIdpMetadataDetailOpenApiVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseGridVoIdpMetadataDetailOpenApiVo result(GridVoIdpMetadataDetailOpenApiVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public GridVoIdpMetadataDetailOpenApiVo getResult() {
+ return result;
+ }
+
+ public void setResult(GridVoIdpMetadataDetailOpenApiVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseGridVoIdpMetadataDetailOpenApiVo operationResponseGridVoIdpMetadataDetailOpenApiVo = (OperationResponseGridVoIdpMetadataDetailOpenApiVo) o;
+ return Objects.equals(this.errorCode, operationResponseGridVoIdpMetadataDetailOpenApiVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseGridVoIdpMetadataDetailOpenApiVo.msg) &&
+ Objects.equals(this.result, operationResponseGridVoIdpMetadataDetailOpenApiVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseGridVoIdpMetadataDetailOpenApiVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoUserDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoUserDetailVo.java
new file mode 100644
index 0000000..829e600
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseGridVoUserDetailVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseGridVoUserDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseGridVoUserDetailVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private GridVoUserDetailVo result;
+
+ public OperationResponseGridVoUserDetailVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseGridVoUserDetailVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseGridVoUserDetailVo result(GridVoUserDetailVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public GridVoUserDetailVo getResult() {
+ return result;
+ }
+
+ public void setResult(GridVoUserDetailVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseGridVoUserDetailVo operationResponseGridVoUserDetailVo = (OperationResponseGridVoUserDetailVo) o;
+ return Objects.equals(this.errorCode, operationResponseGridVoUserDetailVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseGridVoUserDetailVo.msg) &&
+ Objects.equals(this.result, operationResponseGridVoUserDetailVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseGridVoUserDetailVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseListControllerRoleDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseListControllerRoleDetailVo.java
new file mode 100644
index 0000000..cbc576e
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseListControllerRoleDetailVo.java
@@ -0,0 +1,139 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * OperationResponseListControllerRoleDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseListControllerRoleDetailVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ @Valid
+ private List result = null;
+
+ public OperationResponseListControllerRoleDetailVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseListControllerRoleDetailVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseListControllerRoleDetailVo result(List result) {
+ this.result = result;
+ return this;
+ }
+
+ public OperationResponseListControllerRoleDetailVo addResultItem(ControllerRoleDetailVo resultItem) {
+ if (this.result == null) {
+ this.result = new ArrayList<>();
+ }
+ this.result.add(resultItem);
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getResult() {
+ return result;
+ }
+
+ public void setResult(List result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseListControllerRoleDetailVo operationResponseListControllerRoleDetailVo = (OperationResponseListControllerRoleDetailVo) o;
+ return Objects.equals(this.errorCode, operationResponseListControllerRoleDetailVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseListControllerRoleDetailVo.msg) &&
+ Objects.equals(this.result, operationResponseListControllerRoleDetailVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseListControllerRoleDetailVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseObject.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseObject.java
new file mode 100644
index 0000000..6bc1bde
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseObject.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseObject
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseObject {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private Object result;
+
+ public OperationResponseObject errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseObject msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseObject result(Object result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public Object getResult() {
+ return result;
+ }
+
+ public void setResult(Object result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseObject operationResponseObject = (OperationResponseObject) o;
+ return Objects.equals(this.errorCode, operationResponseObject.errorCode) &&
+ Objects.equals(this.msg, operationResponseObject.msg) &&
+ Objects.equals(this.result, operationResponseObject.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseObject {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseResponseIdVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseResponseIdVo.java
new file mode 100644
index 0000000..79e0d4f
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseResponseIdVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseResponseIdVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseResponseIdVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private ResponseIdVo result;
+
+ public OperationResponseResponseIdVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseResponseIdVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseResponseIdVo result(ResponseIdVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ResponseIdVo getResult() {
+ return result;
+ }
+
+ public void setResult(ResponseIdVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseResponseIdVo operationResponseResponseIdVo = (OperationResponseResponseIdVo) o;
+ return Objects.equals(this.errorCode, operationResponseResponseIdVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseResponseIdVo.msg) &&
+ Objects.equals(this.result, operationResponseResponseIdVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseResponseIdVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseUserDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseUserDetailVo.java
new file mode 100644
index 0000000..116bdda
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseUserDetailVo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseUserDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseUserDetailVo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private UserDetailVo result;
+
+ public OperationResponseUserDetailVo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseUserDetailVo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseUserDetailVo result(UserDetailVo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public UserDetailVo getResult() {
+ return result;
+ }
+
+ public void setResult(UserDetailVo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseUserDetailVo operationResponseUserDetailVo = (OperationResponseUserDetailVo) o;
+ return Objects.equals(this.errorCode, operationResponseUserDetailVo.errorCode) &&
+ Objects.equals(this.msg, operationResponseUserDetailVo.msg) &&
+ Objects.equals(this.result, operationResponseUserDetailVo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseUserDetailVo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseWithoutResult.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseWithoutResult.java
new file mode 100644
index 0000000..70853c6
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/OperationResponseWithoutResult.java
@@ -0,0 +1,101 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * OperationResponseWithoutResult
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class OperationResponseWithoutResult {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ public OperationResponseWithoutResult errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseWithoutResult msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseWithoutResult operationResponseWithoutResult = (OperationResponseWithoutResult) o;
+ return Objects.equals(this.errorCode, operationResponseWithoutResult.errorCode) &&
+ Objects.equals(this.msg, operationResponseWithoutResult.msg);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseWithoutResult {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/PrivilegeOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/PrivilegeOpenApiVo.java
new file mode 100644
index 0000000..c3f4eb5
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/PrivilegeOpenApiVo.java
@@ -0,0 +1,115 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * The site's privilege of this user.
+ */
+@ApiModel(description = "The site's privilege of this user.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class PrivilegeOpenApiVo {
+ @JsonProperty("all")
+ private Boolean all;
+
+ @JsonProperty("sites")
+ @Valid
+ private List sites = null;
+
+ public PrivilegeOpenApiVo all(Boolean all) {
+ this.all = all;
+ return this;
+ }
+
+ /**
+ * Whether having all site privilege.
+ * @return all
+ */
+ @ApiModelProperty(value = "Whether having all site privilege.")
+
+
+ public Boolean getAll() {
+ return all;
+ }
+
+ public void setAll(Boolean all) {
+ this.all = all;
+ }
+
+ public PrivilegeOpenApiVo sites(List sites) {
+ this.sites = sites;
+ return this;
+ }
+
+ public PrivilegeOpenApiVo addSitesItem(String sitesItem) {
+ if (this.sites == null) {
+ this.sites = new ArrayList<>();
+ }
+ this.sites.add(sitesItem);
+ return this;
+ }
+
+ /**
+ * The IDs of site that can be accessed by this user.
+ * @return sites
+ */
+ @ApiModelProperty(value = "The IDs of site that can be accessed by this user.")
+
+
+ public List getSites() {
+ return sites;
+ }
+
+ public void setSites(List sites) {
+ this.sites = sites;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ PrivilegeOpenApiVo privilegeOpenApiVo = (PrivilegeOpenApiVo) o;
+ return Objects.equals(this.all, privilegeOpenApiVo.all) &&
+ Objects.equals(this.sites, privilegeOpenApiVo.sites);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(all, sites);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class PrivilegeOpenApiVo {\n");
+
+ sb.append(" all: ").append(toIndentedString(all)).append("\n");
+ sb.append(" sites: ").append(toIndentedString(sites)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ResponseIdVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ResponseIdVo.java
new file mode 100644
index 0000000..324a5f5
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/ResponseIdVo.java
@@ -0,0 +1,76 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * ResponseIdVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class ResponseIdVo {
+ @JsonProperty("id")
+ private String id;
+
+ public ResponseIdVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get id
+ * @return id
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ResponseIdVo responseIdVo = (ResponseIdVo) o;
+ return Objects.equals(this.id, responseIdVo.id);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ResponseIdVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/SiteInfoOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/SiteInfoOpenApiVo.java
new file mode 100644
index 0000000..ccb5772
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/SiteInfoOpenApiVo.java
@@ -0,0 +1,104 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Pattern;
+import java.util.Objects;
+
+/**
+ * The sites which can be accessed.
+ */
+@ApiModel(description = "The sites which can be accessed.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class SiteInfoOpenApiVo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("name")
+ private String name;
+
+ public SiteInfoOpenApiVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Site ID
+ * @return id
+ */
+ @ApiModelProperty(value = "Site ID")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public SiteInfoOpenApiVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Site name should contain 0 to 64 characters.
+ * @return name
+ */
+ @ApiModelProperty(value = "Site name should contain 0 to 64 characters.")
+
+@Pattern(regexp="^[^ \\+\\-\\@\\=]$|^[^ \\+\\-\\@\\=].{0,62}[^ ]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ SiteInfoOpenApiVo siteInfoOpenApiVo = (SiteInfoOpenApiVo) o;
+ return Objects.equals(this.id, siteInfoOpenApiVo.id) &&
+ Objects.equals(this.name, siteInfoOpenApiVo.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class SiteInfoOpenApiVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/UserDetailVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/UserDetailVo.java
new file mode 100644
index 0000000..a8d3727
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/account/model/UserDetailVo.java
@@ -0,0 +1,447 @@
+package org.wfc.omada.api.account.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * UserDetailVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:44:52.771+08:00[Asia/Shanghai]")
+
+public class UserDetailVo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("type")
+ private Integer type;
+
+ @JsonProperty("roleId")
+ private String roleId;
+
+ @JsonProperty("roleName")
+ private String roleName;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("email")
+ private String email;
+
+ @JsonProperty("omadacId")
+ private String omadacId;
+
+ @JsonProperty("verified")
+ private Boolean verified;
+
+ @JsonProperty("alert")
+ private Boolean alert;
+
+ @JsonProperty("allSite")
+ private Boolean allSite;
+
+ @JsonProperty("siteIds")
+ @Valid
+ private List siteIds = null;
+
+ @JsonProperty("parentUserId")
+ private String parentUserId;
+
+ @JsonProperty("favorites")
+ @Valid
+ private List favorites = null;
+
+ @JsonProperty("incidentNotification")
+ private Boolean incidentNotification;
+
+ @JsonProperty("userLevel")
+ private Integer userLevel;
+
+ public UserDetailVo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * User ID
+ * @return id
+ */
+ @ApiModelProperty(value = "User ID")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public UserDetailVo type(Integer type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Type of user, type should be a value as follows: 0:local user; 1: cloud user
+ * @return type
+ */
+ @ApiModelProperty(value = "Type of user, type should be a value as follows: 0:local user; 1: cloud user")
+
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public UserDetailVo roleId(String roleId) {
+ this.roleId = roleId;
+ return this;
+ }
+
+ /**
+ * User role ID
+ * @return roleId
+ */
+ @ApiModelProperty(value = "User role ID")
+
+
+ public String getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(String roleId) {
+ this.roleId = roleId;
+ }
+
+ public UserDetailVo roleName(String roleName) {
+ this.roleName = roleName;
+ return this;
+ }
+
+ /**
+ * User bind role name
+ * @return roleName
+ */
+ @ApiModelProperty(value = "User bind role name")
+
+
+ public String getRoleName() {
+ return roleName;
+ }
+
+ public void setRoleName(String roleName) {
+ this.roleName = roleName;
+ }
+
+ public UserDetailVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * User name
+ * @return name
+ */
+ @ApiModelProperty(value = "User name")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public UserDetailVo email(String email) {
+ this.email = email;
+ return this;
+ }
+
+ /**
+ * User email
+ * @return email
+ */
+ @ApiModelProperty(value = "User email")
+
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public UserDetailVo omadacId(String omadacId) {
+ this.omadacId = omadacId;
+ return this;
+ }
+
+ /**
+ * Omada ID
+ * @return omadacId
+ */
+ @ApiModelProperty(value = "Omada ID")
+
+
+ public String getOmadacId() {
+ return omadacId;
+ }
+
+ public void setOmadacId(String omadacId) {
+ this.omadacId = omadacId;
+ }
+
+ public UserDetailVo verified(Boolean verified) {
+ this.verified = verified;
+ return this;
+ }
+
+ /**
+ * Whether this cloud user has verified
+ * @return verified
+ */
+ @ApiModelProperty(value = "Whether this cloud user has verified")
+
+
+ public Boolean getVerified() {
+ return verified;
+ }
+
+ public void setVerified(Boolean verified) {
+ this.verified = verified;
+ }
+
+ public UserDetailVo alert(Boolean alert) {
+ this.alert = alert;
+ return this;
+ }
+
+ /**
+ * Whether this user want to receive alert emails
+ * @return alert
+ */
+ @ApiModelProperty(value = "Whether this user want to receive alert emails")
+
+
+ public Boolean getAlert() {
+ return alert;
+ }
+
+ public void setAlert(Boolean alert) {
+ this.alert = alert;
+ }
+
+ public UserDetailVo allSite(Boolean allSite) {
+ this.allSite = allSite;
+ return this;
+ }
+
+ /**
+ * Whether user has all site permission, including new created site
+ * @return allSite
+ */
+ @ApiModelProperty(value = "Whether user has all site permission, including new created site")
+
+
+ public Boolean getAllSite() {
+ return allSite;
+ }
+
+ public void setAllSite(Boolean allSite) {
+ this.allSite = allSite;
+ }
+
+ public UserDetailVo siteIds(List siteIds) {
+ this.siteIds = siteIds;
+ return this;
+ }
+
+ public UserDetailVo addSiteIdsItem(String siteIdsItem) {
+ if (this.siteIds == null) {
+ this.siteIds = new ArrayList<>();
+ }
+ this.siteIds.add(siteIdsItem);
+ return this;
+ }
+
+ /**
+ * User site privilege list
+ * @return siteIds
+ */
+ @ApiModelProperty(value = "User site privilege list")
+
+
+ public List getSiteIds() {
+ return siteIds;
+ }
+
+ public void setSiteIds(List siteIds) {
+ this.siteIds = siteIds;
+ }
+
+ public UserDetailVo parentUserId(String parentUserId) {
+ this.parentUserId = parentUserId;
+ return this;
+ }
+
+ /**
+ * User's parent user id
+ * @return parentUserId
+ */
+ @ApiModelProperty(value = "User's parent user id")
+
+
+ public String getParentUserId() {
+ return parentUserId;
+ }
+
+ public void setParentUserId(String parentUserId) {
+ this.parentUserId = parentUserId;
+ }
+
+ public UserDetailVo favorites(List favorites) {
+ this.favorites = favorites;
+ return this;
+ }
+
+ public UserDetailVo addFavoritesItem(String favoritesItem) {
+ if (this.favorites == null) {
+ this.favorites = new ArrayList<>();
+ }
+ this.favorites.add(favoritesItem);
+ return this;
+ }
+
+ /**
+ * User favorite site list
+ * @return favorites
+ */
+ @ApiModelProperty(value = "User favorite site list")
+
+
+ public List getFavorites() {
+ return favorites;
+ }
+
+ public void setFavorites(List favorites) {
+ this.favorites = favorites;
+ }
+
+ public UserDetailVo incidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ return this;
+ }
+
+ /**
+ * Incident notification
+ * @return incidentNotification
+ */
+ @ApiModelProperty(value = "Incident notification")
+
+
+ public Boolean getIncidentNotification() {
+ return incidentNotification;
+ }
+
+ public void setIncidentNotification(Boolean incidentNotification) {
+ this.incidentNotification = incidentNotification;
+ }
+
+ public UserDetailVo userLevel(Integer userLevel) {
+ this.userLevel = userLevel;
+ return this;
+ }
+
+ /**
+ * User level, user level should be a value as follows: 0:standard user; 1:customer user; 2:msp user
+ * @return userLevel
+ */
+ @ApiModelProperty(value = "User level, user level should be a value as follows: 0:standard user; 1:customer user; 2:msp user")
+
+
+ public Integer getUserLevel() {
+ return userLevel;
+ }
+
+ public void setUserLevel(Integer userLevel) {
+ this.userLevel = userLevel;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ UserDetailVo userDetailVo = (UserDetailVo) o;
+ return Objects.equals(this.id, userDetailVo.id) &&
+ Objects.equals(this.type, userDetailVo.type) &&
+ Objects.equals(this.roleId, userDetailVo.roleId) &&
+ Objects.equals(this.roleName, userDetailVo.roleName) &&
+ Objects.equals(this.name, userDetailVo.name) &&
+ Objects.equals(this.email, userDetailVo.email) &&
+ Objects.equals(this.omadacId, userDetailVo.omadacId) &&
+ Objects.equals(this.verified, userDetailVo.verified) &&
+ Objects.equals(this.alert, userDetailVo.alert) &&
+ Objects.equals(this.allSite, userDetailVo.allSite) &&
+ Objects.equals(this.siteIds, userDetailVo.siteIds) &&
+ Objects.equals(this.parentUserId, userDetailVo.parentUserId) &&
+ Objects.equals(this.favorites, userDetailVo.favorites) &&
+ Objects.equals(this.incidentNotification, userDetailVo.incidentNotification) &&
+ Objects.equals(this.userLevel, userDetailVo.userLevel);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, type, roleId, roleName, name, email, omadacId, verified, alert, allSite, siteIds, parentUserId, favorites, incidentNotification, userLevel);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class UserDetailVo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" type: ").append(toIndentedString(type)).append("\n");
+ sb.append(" roleId: ").append(toIndentedString(roleId)).append("\n");
+ sb.append(" roleName: ").append(toIndentedString(roleName)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" email: ").append(toIndentedString(email)).append("\n");
+ sb.append(" omadacId: ").append(toIndentedString(omadacId)).append("\n");
+ sb.append(" verified: ").append(toIndentedString(verified)).append("\n");
+ sb.append(" alert: ").append(toIndentedString(alert)).append("\n");
+ sb.append(" allSite: ").append(toIndentedString(allSite)).append("\n");
+ sb.append(" siteIds: ").append(toIndentedString(siteIds)).append("\n");
+ sb.append(" parentUserId: ").append(toIndentedString(parentUserId)).append("\n");
+ sb.append(" favorites: ").append(toIndentedString(favorites)).append("\n");
+ sb.append(" incidentNotification: ").append(toIndentedString(incidentNotification)).append("\n");
+ sb.append(" userLevel: ").append(toIndentedString(userLevel)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/OmadaBatchOpenApiApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/OmadaBatchOpenApiApi.java
new file mode 100644
index 0000000..f11cb09
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/OmadaBatchOpenApiApi.java
@@ -0,0 +1,45 @@
+package org.wfc.omada.api.batch;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.wfc.omada.api.batch.model.BatchRequestEntity;
+import org.wfc.omada.api.batch.model.OperationResponseBatchResponseEntity;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+
+import javax.validation.Valid;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:27.319+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaBatchOpenApi", description = "the OmadaBatchOpenApi API")
+@FeignClient(name="OmadaBatchOpenApiApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaBatchOpenApiApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/batch : Batch Processing OpenAPIs
+ * Batch processing of multiple OpenAPIs under the same Omada controller through this OpenAPI.<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/>-1600 - Unsupported request path.<br/>-1619 - Execution has been interrupted due to unsuccessful execution of the pre action request.<br/>-1620 - Error occurred while executing action.<br/>-44112 - The access token has expired. Please re-initiate the refreshToken process to obtain the access token.<br/>-44113 - The Access Token is Invalid.<br/>-7132 - Our server is receiving too many requests now. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param batchRequestEntity (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch Processing OpenAPIs", nickname = "batchController", notes = "Batch processing of multiple OpenAPIs under the same Omada controller through this OpenAPI.
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1001 - Invalid request parameters.
-1600 - Unsupported request path.
-1619 - Execution has been interrupted due to unsuccessful execution of the pre action request.
-1620 - Error occurred while executing action.
-44112 - The access token has expired. Please re-initiate the refreshToken process to obtain the access token.
-44113 - The Access Token is Invalid.
-7132 - Our server is receiving too many requests now. Please try again later.", response = OperationResponseBatchResponseEntity.class, tags={ "Omada/Batch OpenAPI","Batch OpenAPI", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseBatchResponseEntity.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/batch",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity batchController(@ApiParam(value = "" ) @Valid @RequestBody(required = false) BatchRequestEntity batchRequestEntity);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchRequestEntity.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchRequestEntity.java
new file mode 100644
index 0000000..6dfc4cc
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchRequestEntity.java
@@ -0,0 +1,114 @@
+package org.wfc.omada.api.batch.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * BatchRequestEntity
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:33.899+08:00[Asia/Shanghai]")
+
+public class BatchRequestEntity {
+ @JsonProperty("interrupt")
+ private Boolean interrupt;
+
+ @JsonProperty("actions")
+ @Valid
+ private List actions = null;
+
+ public BatchRequestEntity interrupt(Boolean interrupt) {
+ this.interrupt = interrupt;
+ return this;
+ }
+
+ /**
+ * Indicates whether to interrupt execution when encountering an error while executing openAPI, defaults to true
+ * @return interrupt
+ */
+ @ApiModelProperty(value = "Indicates whether to interrupt execution when encountering an error while executing openAPI, defaults to true")
+
+
+ public Boolean getInterrupt() {
+ return interrupt;
+ }
+
+ public void setInterrupt(Boolean interrupt) {
+ this.interrupt = interrupt;
+ }
+
+ public BatchRequestEntity actions(List actions) {
+ this.actions = actions;
+ return this;
+ }
+
+ public BatchRequestEntity addActionsItem(RequestActionEntity actionsItem) {
+ if (this.actions == null) {
+ this.actions = new ArrayList<>();
+ }
+ this.actions.add(actionsItem);
+ return this;
+ }
+
+ /**
+ * List of OpenAPIs that require batch execution. Up to 20 entries are allowed for the action list
+ * @return actions
+ */
+ @ApiModelProperty(value = "List of OpenAPIs that require batch execution. Up to 20 entries are allowed for the action list")
+
+ @Valid
+
+ public List getActions() {
+ return actions;
+ }
+
+ public void setActions(List actions) {
+ this.actions = actions;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BatchRequestEntity batchRequestEntity = (BatchRequestEntity) o;
+ return Objects.equals(this.interrupt, batchRequestEntity.interrupt) &&
+ Objects.equals(this.actions, batchRequestEntity.actions);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(interrupt, actions);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BatchRequestEntity {\n");
+
+ sb.append(" interrupt: ").append(toIndentedString(interrupt)).append("\n");
+ sb.append(" actions: ").append(toIndentedString(actions)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchResponseEntity.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchResponseEntity.java
new file mode 100644
index 0000000..a9fd6ac
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/BatchResponseEntity.java
@@ -0,0 +1,89 @@
+package org.wfc.omada.api.batch.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * BatchResponseEntity
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:33.899+08:00[Asia/Shanghai]")
+
+public class BatchResponseEntity {
+ @JsonProperty("response")
+ @Valid
+ private List response = null;
+
+ public BatchResponseEntity response(List response) {
+ this.response = response;
+ return this;
+ }
+
+ public BatchResponseEntity addResponseItem(OperationResponse responseItem) {
+ if (this.response == null) {
+ this.response = new ArrayList<>();
+ }
+ this.response.add(responseItem);
+ return this;
+ }
+
+ /**
+ * A response list
+ * @return response
+ */
+ @ApiModelProperty(value = "A response list")
+
+ @Valid
+
+ public List getResponse() {
+ return response;
+ }
+
+ public void setResponse(List response) {
+ this.response = response;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BatchResponseEntity batchResponseEntity = (BatchResponseEntity) o;
+ return Objects.equals(this.response, batchResponseEntity.response);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(response);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BatchResponseEntity {\n");
+
+ sb.append(" response: ").append(toIndentedString(response)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponse.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponse.java
new file mode 100644
index 0000000..c5e6476
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponse.java
@@ -0,0 +1,130 @@
+package org.wfc.omada.api.batch.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * A response list
+ */
+@ApiModel(description = "A response list")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:33.899+08:00[Asia/Shanghai]")
+
+public class OperationResponse {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private Object result;
+
+ public OperationResponse errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponse msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponse result(Object result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public Object getResult() {
+ return result;
+ }
+
+ public void setResult(Object result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponse operationResponse = (OperationResponse) o;
+ return Objects.equals(this.errorCode, operationResponse.errorCode) &&
+ Objects.equals(this.msg, operationResponse.msg) &&
+ Objects.equals(this.result, operationResponse.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponse {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponseBatchResponseEntity.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponseBatchResponseEntity.java
new file mode 100644
index 0000000..8ebf2c0
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/OperationResponseBatchResponseEntity.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.batch.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseBatchResponseEntity
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:33.899+08:00[Asia/Shanghai]")
+
+public class OperationResponseBatchResponseEntity {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private BatchResponseEntity result;
+
+ public OperationResponseBatchResponseEntity errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseBatchResponseEntity msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseBatchResponseEntity result(BatchResponseEntity result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public BatchResponseEntity getResult() {
+ return result;
+ }
+
+ public void setResult(BatchResponseEntity result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseBatchResponseEntity operationResponseBatchResponseEntity = (OperationResponseBatchResponseEntity) o;
+ return Objects.equals(this.errorCode, operationResponseBatchResponseEntity.errorCode) &&
+ Objects.equals(this.msg, operationResponseBatchResponseEntity.msg) &&
+ Objects.equals(this.result, operationResponseBatchResponseEntity.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseBatchResponseEntity {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/RequestActionEntity.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/RequestActionEntity.java
new file mode 100644
index 0000000..460b1f7
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/batch/model/RequestActionEntity.java
@@ -0,0 +1,156 @@
+package org.wfc.omada.api.batch.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import java.util.Objects;
+
+/**
+ * List of OpenAPIs that require batch execution. Up to 20 entries are allowed for the action list
+ */
+@ApiModel(description = "List of OpenAPIs that require batch execution. Up to 20 entries are allowed for the action list")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:47:33.899+08:00[Asia/Shanghai]")
+
+public class RequestActionEntity {
+ @JsonProperty("path")
+ private String path;
+
+ @JsonProperty("method")
+ private String method;
+
+ @JsonProperty("body")
+ private String body;
+
+ @JsonProperty("query")
+ private String query;
+
+ public RequestActionEntity path(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * OpenAPI request path. Same as regular OpenAPI, file upload and download are not supported.
+ * @return path
+ */
+ @ApiModelProperty(required = true, value = "OpenAPI request path. Same as regular OpenAPI, file upload and download are not supported.")
+ @NotNull
+
+
+ public String getPath() {
+ return path;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public RequestActionEntity method(String method) {
+ this.method = method;
+ return this;
+ }
+
+ /**
+ * OpenAPI request method. Same as regular OpenAPI, it should be a value as follows: POST, PATCH, PUT, DELETE.
+ * @return method
+ */
+ @ApiModelProperty(required = true, value = "OpenAPI request method. Same as regular OpenAPI, it should be a value as follows: POST, PATCH, PUT, DELETE.")
+ @NotNull
+
+
+ public String getMethod() {
+ return method;
+ }
+
+ public void setMethod(String method) {
+ this.method = method;
+ }
+
+ public RequestActionEntity body(String body) {
+ this.body = body;
+ return this;
+ }
+
+ /**
+ * OpenAPI request body, same as regular OpenAPI. Should be a JSON object but not a string.
+ * @return body
+ */
+ @ApiModelProperty(value = "OpenAPI request body, same as regular OpenAPI. Should be a JSON object but not a string.")
+
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+ public RequestActionEntity query(String query) {
+ this.query = query;
+ return this;
+ }
+
+ /**
+ * OpenAPI request query of the path, same as regular OpenAPI.
+ * @return query
+ */
+ @ApiModelProperty(value = "OpenAPI request query of the path, same as regular OpenAPI.")
+
+
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ RequestActionEntity requestActionEntity = (RequestActionEntity) o;
+ return Objects.equals(this.path, requestActionEntity.path) &&
+ Objects.equals(this.method, requestActionEntity.method) &&
+ Objects.equals(this.body, requestActionEntity.body) &&
+ Objects.equals(this.query, requestActionEntity.query);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(path, method, body, query);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class RequestActionEntity {\n");
+
+ sb.append(" path: ").append(toIndentedString(path)).append("\n");
+ sb.append(" method: ").append(toIndentedString(method)).append("\n");
+ sb.append(" body: ").append(toIndentedString(body)).append("\n");
+ sb.append(" query: ").append(toIndentedString(query)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java
new file mode 100644
index 0000000..d5bc852
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientApi.java
@@ -0,0 +1,193 @@
+package org.wfc.omada.api.client;
+
+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.api.client.model.ClientLockToApSetting1;
+import org.wfc.omada.api.client.model.ClientNameSetting;
+import org.wfc.omada.api.client.model.ClientRateLimitSetting;
+import org.wfc.omada.api.client.model.OperationResponseClientDetail;
+import org.wfc.omada.api.client.model.OperationResponseClientGridVoClientInfo;
+import org.wfc.omada.api.client.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:32.050+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaClient", description = "the OmadaClient API")
+@FeignClient(name="OmadaClientApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaClientApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/block : Block the client
+ * Block the client.<br/><br/>The interface requires one of the permissions: <br/>Site Clients Manager Modify<br/>Site Insight 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/>-41002 - This client does not exist.<br/>-41003 - The number of clients to be blocked has reached the limit.<br/>-41023 - Clients locked to AP cannot be blocked.<br/>-41024 - This device is installed with the controller and cannot be blocked.<br/>-41026 - The Easy Managed Switch cannot block clients.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Block the client", nickname = "blockClient", notes = "Block the client.
The interface requires one of the permissions:
Site Clients Manager Modify
Site Insight Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-41002 - This client does not exist.
-41003 - The number of clients to be blocked has reached the limit.
-41023 - Clients locked to AP cannot be blocked.
-41024 - This device is installed with the controller and cannot be blocked.
-41026 - The Easy Managed Switch cannot block clients.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/block",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity blockClient(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac} : Get client info
+ * Get client info.<br/><br/>The interface requires one of the permissions: <br/>Site Clients Manager View Only<br/>Site Device Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get client info", nickname = "getClientDetail", notes = "Get client info.
The interface requires one of the permissions:
Site Clients Manager View Only
Site Device Manager View Only", response = OperationResponseClientDetail.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseClientDetail.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getClientDetail(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/clients : Get client list
+ * Get all clients.<br/><br/>The interface requires one of the permissions: <br/>Site Clients Manager View Only<br/>Site Device 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 sortsName Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsMac Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsIp Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param filtersWireless Filter query parameters, support field wireless: true/false. (optional)
+ * @param filtersRadioId Filter query parameters, support field radioId: 0: 2G, 1: 5G1, 2: 5G2, 3: 6G (optional)
+ * @param filtersApMac Filter query parameters, support field ap mac (optional)
+ * @param filtersSwitchMac Filter query parameters, support field switch mac (optional)
+ * @param filtersGatewayMac Filter query parameters, support field gateway mac (optional)
+ * @param searchKey Fuzzy query parameters, support field clientName,clientMac,ip,channel,ssid,apName,apMac,switchMac,switchName,gatewayMac,gatewayName. (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get client list", nickname = "getGridActiveClients", notes = "Get all clients.
The interface requires one of the permissions:
Site Clients Manager View Only
Site Device Manager View Only", response = OperationResponseClientGridVoClientInfo.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseClientGridVoClientInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridActiveClients(@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.name", required = false) String sortsName,@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.mac", required = false) String sortsMac,@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.ip", required = false) String sortsIp,@ApiParam(value = "Filter query parameters, support field wireless: true/false.") @Valid @RequestParam(value = "filters.wireless", required = false) String filtersWireless,@ApiParam(value = "Filter query parameters, support field radioId: 0: 2G, 1: 5G1, 2: 5G2, 3: 6G") @Valid @RequestParam(value = "filters.radioId", required = false) String filtersRadioId,@ApiParam(value = "Filter query parameters, support field ap mac") @Valid @RequestParam(value = "filters.apMac", required = false) String filtersApMac,@ApiParam(value = "Filter query parameters, support field switch mac") @Valid @RequestParam(value = "filters.switchMac", required = false) String filtersSwitchMac,@ApiParam(value = "Filter query parameters, support field gateway mac") @Valid @RequestParam(value = "filters.gatewayMac", required = false) String filtersGatewayMac,@ApiParam(value = "Fuzzy query parameters, support field clientName,clientMac,ip,channel,ssid,apName,apMac,switchMac,switchName,gatewayMac,gatewayName.") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/reconnect : Reconnect the client
+ * Reconnect the client.<br/><br/>The interface requires one of the permissions: <br/>Site Clients 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/>-41011 - This client does not exist.<br/>-41025 - Unable to reconnect wired client.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Reconnect the client", nickname = "reconnectClient", notes = "Reconnect the client.
The interface requires one of the permissions:
Site Clients Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-41011 - This client does not exist.
-41025 - Unable to reconnect wired client.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/reconnect",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity reconnectClient(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/unblock : Unblock the client
+ * Unblock the client.<br/><br/>The interface requires one of the permissions: <br/>Site Clients Manager Modify<br/>Site Insight 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/>-41004 - This client does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Unblock the client", nickname = "unblockClient", notes = "Unblock the client.
The interface requires one of the permissions:
Site Clients Manager Modify
Site Insight Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-41004 - This client does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/unblock",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity unblockClient(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/lock-to-ap : Lock the given client to aps
+ * Lock the given client to aps.<br/><br/>The interface requires one of the permissions: <br/>Site Clients 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/>-41011 - This client does not exist.<br/>-41020 - Only wireless clients support Lock to AP.<br/>-41021 - The number of Lock to AP entries has reached the upper limit.<br/>-41022 - Blocked clients cannot be locked to AP.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @param clientLockToApSetting1 (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Lock the given client to aps", nickname = "updateClientLockToApSetting", notes = "Lock the given client to aps.
The interface requires one of the permissions:
Site Clients Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-41011 - This client does not exist.
-41020 - Only wireless clients support Lock to AP.
-41021 - The number of Lock to AP entries has reached the upper limit.
-41022 - Blocked clients cannot be locked to AP.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/lock-to-ap",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity updateClientLockToApSetting(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ClientLockToApSetting1 clientLockToApSetting1);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/name : Set name for given client
+ * Set name for given client.<br/><br/>The interface requires one of the permissions: <br/>Site Clients 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/>-41011 - This client does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @param clientNameSetting (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set name for given client", nickname = "updateClientName", notes = "Set name for given client.
The interface requires one of the permissions:
Site Clients Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-41011 - This client does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/name",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity updateClientName(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ClientNameSetting clientNameSetting);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/clients/{clientMac}/ratelimit : Set ratelimit setting for given client
+ * Set ratelimit setting for given client.<br/><br/>The interface requires one of the permissions: <br/>Site Clients 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/>-41008 - The number of clients to be configured with Rate Limit has reached the limit.<br/>-41011 - This client does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param clientMac Client MAC (required)
+ * @param clientRateLimitSetting (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set ratelimit setting for given client", nickname = "updateClientRateLimitSetting", notes = "Set ratelimit setting for given client.
The interface requires one of the permissions:
Site Clients Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-33732 - The Rate Limit profile does not exist.
-41008 - The number of clients to be configured with Rate Limit has reached the limit.
-41011 - This client does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Client","Client", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/clients/{clientMac}/ratelimit",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity updateClientRateLimitSetting(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Client MAC",required=true) @PathVariable("clientMac") String clientMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ClientRateLimitSetting clientRateLimitSetting);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientInsightApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientInsightApi.java
new file mode 100644
index 0000000..a201c72
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/OmadaClientInsightApi.java
@@ -0,0 +1,51 @@
+package org.wfc.omada.api.client;
+
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.wfc.omada.api.client.model.OperationResponseGridVoClientHistoryInfo;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:32.050+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaClientInsight", description = "the OmadaClientInsight API")
+@FeignClient(value = "OmadaClientInsightApi",url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaClientInsightApi {
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/insight/past-connection : Get client past connection list
+ * Get client past connection list.<br/><br/>The interface requires one of the permissions: <br/>Site Insight 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 sortsLastSeen Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param filtersTimeStart Filter query parameters, support field time range: start timestamp (ms). (optional)
+ * @param filtersTimeEnd Filter query parameters, support field time range: end timestamp (ms). (optional)
+ * @param filtersGuest Filter query parameters, support field guest: true/false. (optional)
+ * @param searchKey Fuzzy query parameters, support field name,mac,ssid. (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get client past connection list", nickname = "getGridPastConnections", notes = "Get client past connection list.
The interface requires one of the permissions:
Site Insight Manager View Only", response = OperationResponseGridVoClientHistoryInfo.class, tags={ "Omada/Client Insight","Client Insight", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoClientHistoryInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/insight/past-connection",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridPastConnections(@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.lastSeen", required = false) String sortsLastSeen,@ApiParam(value = "Filter query parameters, support field time range: start timestamp (ms).") @Valid @RequestParam(value = "filters.timeStart", required = false) String filtersTimeStart,@ApiParam(value = "Filter query parameters, support field time range: end timestamp (ms).") @Valid @RequestParam(value = "filters.timeEnd", required = false) String filtersTimeEnd,@ApiParam(value = "Filter query parameters, support field guest: true/false.") @Valid @RequestParam(value = "filters.guest", required = false) String filtersGuest,@ApiParam(value = "Fuzzy query parameters, support field name,mac,ssid.") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ApBriefInfoVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ApBriefInfoVo.java
new file mode 100644
index 0000000..0c9234c
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ApBriefInfoVo.java
@@ -0,0 +1,103 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * AP name and MAC info list.
+ */
+@ApiModel(description = "AP name and MAC info list.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ApBriefInfoVo {
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("mac")
+ private String mac;
+
+ public ApBriefInfoVo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * AP name.
+ * @return name
+ */
+ @ApiModelProperty(value = "AP name.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ApBriefInfoVo mac(String mac) {
+ this.mac = mac;
+ return this;
+ }
+
+ /**
+ * AP MAC, for example: AA-AA-AA-AA-AA-AA.
+ * @return mac
+ */
+ @ApiModelProperty(value = "AP MAC, for example: AA-AA-AA-AA-AA-AA.")
+
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ApBriefInfoVo apBriefInfoVo = (ApBriefInfoVo) o;
+ return Objects.equals(this.name, apBriefInfoVo.name) &&
+ Objects.equals(this.mac, apBriefInfoVo.mac);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, mac);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ApBriefInfoVo {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" mac: ").append(toIndentedString(mac)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientDetail.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientDetail.java
new file mode 100644
index 0000000..b308494
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientDetail.java
@@ -0,0 +1,1585 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ClientDetail
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientDetail {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("mac")
+ private String mac;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("hostName")
+ private String hostName;
+
+ @JsonProperty("vendor")
+ private String vendor;
+
+ @JsonProperty("deviceType")
+ private String deviceType;
+
+ @JsonProperty("deviceCategory")
+ private String deviceCategory;
+
+ @JsonProperty("osName")
+ private String osName;
+
+ @JsonProperty("ip")
+ private String ip;
+
+ @JsonProperty("ipv6List")
+ @Valid
+ private List ipv6List = null;
+
+ @JsonProperty("connectType")
+ private Integer connectType;
+
+ @JsonProperty("connectDevType")
+ private String connectDevType;
+
+ @JsonProperty("connectedToWirelessRouter")
+ private Boolean connectedToWirelessRouter;
+
+ @JsonProperty("wireless")
+ private Boolean wireless;
+
+ @JsonProperty("ssid")
+ private String ssid;
+
+ @JsonProperty("signalLevel")
+ private Integer signalLevel;
+
+ @JsonProperty("signalRank")
+ private Integer signalRank;
+
+ @JsonProperty("wifiMode")
+ private Integer wifiMode;
+
+ @JsonProperty("apName")
+ private String apName;
+
+ @JsonProperty("apMac")
+ private String apMac;
+
+ @JsonProperty("radioId")
+ private Integer radioId;
+
+ @JsonProperty("channel")
+ private Integer channel;
+
+ @JsonProperty("rxRate")
+ private Long rxRate;
+
+ @JsonProperty("txRate")
+ private Long txRate;
+
+ @JsonProperty("powerSave")
+ private Boolean powerSave;
+
+ @JsonProperty("rssi")
+ private Integer rssi;
+
+ @JsonProperty("snr")
+ private Integer snr;
+
+ @JsonProperty("switchMac")
+ private String switchMac;
+
+ @JsonProperty("switchName")
+ private String switchName;
+
+ @JsonProperty("gatewayMac")
+ private String gatewayMac;
+
+ @JsonProperty("gatewayName")
+ private String gatewayName;
+
+ @JsonProperty("vid")
+ private Integer vid;
+
+ @JsonProperty("networkName")
+ private String networkName;
+
+ @JsonProperty("dot1xIdentity")
+ private String dot1xIdentity;
+
+ @JsonProperty("dot1xVlan")
+ private Integer dot1xVlan;
+
+ @JsonProperty("port")
+ private Integer port;
+
+ @JsonProperty("lagId")
+ private Integer lagId;
+
+ @JsonProperty("activity")
+ private Long activity;
+
+ @JsonProperty("trafficDown")
+ private Long trafficDown;
+
+ @JsonProperty("trafficUp")
+ private Long trafficUp;
+
+ @JsonProperty("uptime")
+ private Long uptime;
+
+ @JsonProperty("lastSeen")
+ private Long lastSeen;
+
+ @JsonProperty("authStatus")
+ private Integer authStatus;
+
+ @JsonProperty("blocked")
+ private Boolean blocked;
+
+ @JsonProperty("guest")
+ private Boolean guest;
+
+ @JsonProperty("active")
+ private Boolean active;
+
+ @JsonProperty("manager")
+ private Boolean manager;
+
+ @JsonProperty("ipSetting")
+ private ClientIpSetting ipSetting;
+
+ @JsonProperty("downPacket")
+ private Long downPacket;
+
+ @JsonProperty("upPacket")
+ private Long upPacket;
+
+ @JsonProperty("rateLimit")
+ private ClientRateLimitSetting rateLimit;
+
+ @JsonProperty("clientLockToApSetting")
+ private ClientLockToApSetting clientLockToApSetting;
+
+ @JsonProperty("multiLink")
+ @Valid
+ private List multiLink = null;
+
+ @JsonProperty("unit")
+ private Integer unit;
+
+ @JsonProperty("standardPort")
+ private String standardPort;
+
+ @JsonProperty("blockDisable")
+ private Boolean blockDisable;
+
+ @JsonProperty("dhcpLeaseTime")
+ private Long dhcpLeaseTime;
+
+ @JsonProperty("systemName")
+ private String systemName;
+
+ @JsonProperty("description")
+ private String description;
+
+ @JsonProperty("capabilities")
+ @Valid
+ private List capabilities = null;
+
+ public ClientDetail id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Client ID.
+ * @return id
+ */
+ @ApiModelProperty(value = "Client ID.")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ClientDetail mac(String mac) {
+ this.mac = mac;
+ return this;
+ }
+
+ /**
+ * Client MAC Address.
+ * @return mac
+ */
+ @ApiModelProperty(value = "Client MAC Address.")
+
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+
+ public ClientDetail name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Client Name, alias.
+ * @return name
+ */
+ @ApiModelProperty(value = "Client Name, alias.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ClientDetail hostName(String hostName) {
+ this.hostName = hostName;
+ return this;
+ }
+
+ /**
+ * Host name, device name.
+ * @return hostName
+ */
+ @ApiModelProperty(value = "Host name, device name.")
+
+
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public ClientDetail vendor(String vendor) {
+ this.vendor = vendor;
+ return this;
+ }
+
+ /**
+ * Vendor.
+ * @return vendor
+ */
+ @ApiModelProperty(value = "Vendor.")
+
+
+ public String getVendor() {
+ return vendor;
+ }
+
+ public void setVendor(String vendor) {
+ this.vendor = vendor;
+ }
+
+ public ClientDetail deviceType(String deviceType) {
+ this.deviceType = deviceType;
+ return this;
+ }
+
+ /**
+ * Device Type: iphone, ipod, android, pc, printer, tv...
+ * @return deviceType
+ */
+ @ApiModelProperty(value = "Device Type: iphone, ipod, android, pc, printer, tv...")
+
+
+ public String getDeviceType() {
+ return deviceType;
+ }
+
+ public void setDeviceType(String deviceType) {
+ this.deviceType = deviceType;
+ }
+
+ public ClientDetail deviceCategory(String deviceCategory) {
+ this.deviceCategory = deviceCategory;
+ return this;
+ }
+
+ /**
+ * Device Category: loT, TV, computer, phone...
+ * @return deviceCategory
+ */
+ @ApiModelProperty(value = "Device Category: loT, TV, computer, phone...")
+
+
+ public String getDeviceCategory() {
+ return deviceCategory;
+ }
+
+ public void setDeviceCategory(String deviceCategory) {
+ this.deviceCategory = deviceCategory;
+ }
+
+ public ClientDetail osName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Device system version.
+ * @return osName
+ */
+ @ApiModelProperty(value = "Device system version.")
+
+
+ public String getOsName() {
+ return osName;
+ }
+
+ public void setOsName(String osName) {
+ this.osName = osName;
+ }
+
+ public ClientDetail ip(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ /**
+ * IP Address.
+ * @return ip
+ */
+ @ApiModelProperty(value = "IP Address.")
+
+
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public ClientDetail ipv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ return this;
+ }
+
+ public ClientDetail addIpv6ListItem(String ipv6ListItem) {
+ if (this.ipv6List == null) {
+ this.ipv6List = new ArrayList<>();
+ }
+ this.ipv6List.add(ipv6ListItem);
+ return this;
+ }
+
+ /**
+ * IPv6 Address.
+ * @return ipv6List
+ */
+ @ApiModelProperty(value = "IPv6 Address.")
+
+
+ public List getIpv6List() {
+ return ipv6List;
+ }
+
+ public void setIpv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ }
+
+ public ClientDetail connectType(Integer connectType) {
+ this.connectType = connectType;
+ return this;
+ }
+
+ /**
+ * Connect type should be a value as follows: 0: wireless guest; 1: wireless user; 2: wired user.
+ * @return connectType
+ */
+ @ApiModelProperty(value = "Connect type should be a value as follows: 0: wireless guest; 1: wireless user; 2: wired user.")
+
+
+ public Integer getConnectType() {
+ return connectType;
+ }
+
+ public void setConnectType(Integer connectType) {
+ this.connectType = connectType;
+ }
+
+ public ClientDetail connectDevType(String connectDevType) {
+ this.connectDevType = connectDevType;
+ return this;
+ }
+
+ /**
+ * connect device type should be a value as follows: ap, switch, gateway.
+ * @return connectDevType
+ */
+ @ApiModelProperty(value = "connect device type should be a value as follows: ap, switch, gateway.")
+
+
+ public String getConnectDevType() {
+ return connectDevType;
+ }
+
+ public void setConnectDevType(String connectDevType) {
+ this.connectDevType = connectDevType;
+ }
+
+ public ClientDetail connectedToWirelessRouter(Boolean connectedToWirelessRouter) {
+ this.connectedToWirelessRouter = connectedToWirelessRouter;
+ return this;
+ }
+
+ /**
+ * true: Client is connecting to a wireless router.
+ * @return connectedToWirelessRouter
+ */
+ @ApiModelProperty(value = "true: Client is connecting to a wireless router.")
+
+
+ public Boolean getConnectedToWirelessRouter() {
+ return connectedToWirelessRouter;
+ }
+
+ public void setConnectedToWirelessRouter(Boolean connectedToWirelessRouter) {
+ this.connectedToWirelessRouter = connectedToWirelessRouter;
+ }
+
+ public ClientDetail wireless(Boolean wireless) {
+ this.wireless = wireless;
+ return this;
+ }
+
+ /**
+ * true: Wireless device (connectDevType=ap); false: Not wireless device(connectDevType=switch or gateway)
+ * @return wireless
+ */
+ @ApiModelProperty(value = "true: Wireless device (connectDevType=ap); false: Not wireless device(connectDevType=switch or gateway)")
+
+
+ public Boolean getWireless() {
+ return wireless;
+ }
+
+ public void setWireless(Boolean wireless) {
+ this.wireless = wireless;
+ }
+
+ public ClientDetail ssid(String ssid) {
+ this.ssid = ssid;
+ return this;
+ }
+
+ /**
+ * (Wireless) SSID name.
+ * @return ssid
+ */
+ @ApiModelProperty(value = "(Wireless) SSID name.")
+
+
+ public String getSsid() {
+ return ssid;
+ }
+
+ public void setSsid(String ssid) {
+ this.ssid = ssid;
+ }
+
+ public ClientDetail signalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength percentage should be within the range of 0-100.
+ * @return signalLevel
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength percentage should be within the range of 0-100.")
+
+
+ public Integer getSignalLevel() {
+ return signalLevel;
+ }
+
+ public void setSignalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ }
+
+ public ClientDetail signalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength level should be within the range of 0-5.
+ * @return signalRank
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength level should be within the range of 0-5.")
+
+
+ public Integer getSignalRank() {
+ return signalRank;
+ }
+
+ public void setSignalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ }
+
+ public ClientDetail wifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ return this;
+ }
+
+ /**
+ * (Wireless) Wifi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg; 8: 11beg; 9: 11bea.
+ * @return wifiMode
+ */
+ @ApiModelProperty(value = "(Wireless) Wifi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg; 8: 11beg; 9: 11bea.")
+
+
+ public Integer getWifiMode() {
+ return wifiMode;
+ }
+
+ public void setWifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ }
+
+ public ClientDetail apName(String apName) {
+ this.apName = apName;
+ return this;
+ }
+
+ /**
+ * (Wireless) AP Name.
+ * @return apName
+ */
+ @ApiModelProperty(value = "(Wireless) AP Name.")
+
+
+ public String getApName() {
+ return apName;
+ }
+
+ public void setApName(String apName) {
+ this.apName = apName;
+ }
+
+ public ClientDetail apMac(String apMac) {
+ this.apMac = apMac;
+ return this;
+ }
+
+ /**
+ * (Wireless) AP MAC Address.
+ * @return apMac
+ */
+ @ApiModelProperty(value = "(Wireless) AP MAC Address.")
+
+
+ public String getApMac() {
+ return apMac;
+ }
+
+ public void setApMac(String apMac) {
+ this.apMac = apMac;
+ }
+
+ public ClientDetail radioId(Integer radioId) {
+ this.radioId = radioId;
+ return this;
+ }
+
+ /**
+ * (Wireless) Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.
+ * @return radioId
+ */
+ @ApiModelProperty(value = "(Wireless) Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.")
+
+
+ public Integer getRadioId() {
+ return radioId;
+ }
+
+ public void setRadioId(Integer radioId) {
+ this.radioId = radioId;
+ }
+
+ public ClientDetail channel(Integer channel) {
+ this.channel = channel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Actual channel.
+ * @return channel
+ */
+ @ApiModelProperty(value = "(Wireless) Actual channel.")
+
+
+ public Integer getChannel() {
+ return channel;
+ }
+
+ public void setChannel(Integer channel) {
+ this.channel = channel;
+ }
+
+ public ClientDetail rxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Uplink negotiation rate (Kbit/s).
+ * @return rxRate
+ */
+ @ApiModelProperty(value = "(Wireless) Uplink negotiation rate (Kbit/s).")
+
+
+ public Long getRxRate() {
+ return rxRate;
+ }
+
+ public void setRxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ }
+
+ public ClientDetail txRate(Long txRate) {
+ this.txRate = txRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Downlink negotiation rate (Kbit/s).
+ * @return txRate
+ */
+ @ApiModelProperty(value = "(Wireless) Downlink negotiation rate (Kbit/s).")
+
+
+ public Long getTxRate() {
+ return txRate;
+ }
+
+ public void setTxRate(Long txRate) {
+ this.txRate = txRate;
+ }
+
+ public ClientDetail powerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ return this;
+ }
+
+ /**
+ * (Wireless) true: Power save mode enabled.
+ * @return powerSave
+ */
+ @ApiModelProperty(value = "(Wireless) true: Power save mode enabled.")
+
+
+ public Boolean getPowerSave() {
+ return powerSave;
+ }
+
+ public void setPowerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ }
+
+ public ClientDetail rssi(Integer rssi) {
+ this.rssi = rssi;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength, unit: dBm.
+ * @return rssi
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength, unit: dBm.")
+
+
+ public Integer getRssi() {
+ return rssi;
+ }
+
+ public void setRssi(Integer rssi) {
+ this.rssi = rssi;
+ }
+
+ public ClientDetail snr(Integer snr) {
+ this.snr = snr;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal Noise Ratio.
+ * @return snr
+ */
+ @ApiModelProperty(value = "(Wireless) Signal Noise Ratio.")
+
+
+ public Integer getSnr() {
+ return snr;
+ }
+
+ public void setSnr(Integer snr) {
+ this.snr = snr;
+ }
+
+ public ClientDetail switchMac(String switchMac) {
+ this.switchMac = switchMac;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=switch) Switch MAC address.
+ * @return switchMac
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=switch) Switch MAC address.")
+
+
+ public String getSwitchMac() {
+ return switchMac;
+ }
+
+ public void setSwitchMac(String switchMac) {
+ this.switchMac = switchMac;
+ }
+
+ public ClientDetail switchName(String switchName) {
+ this.switchName = switchName;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=switch) Switch name.
+ * @return switchName
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=switch) Switch name.")
+
+
+ public String getSwitchName() {
+ return switchName;
+ }
+
+ public void setSwitchName(String switchName) {
+ this.switchName = switchName;
+ }
+
+ public ClientDetail gatewayMac(String gatewayMac) {
+ this.gatewayMac = gatewayMac;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=gateway) Gateway MAC Address.
+ * @return gatewayMac
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=gateway) Gateway MAC Address.")
+
+
+ public String getGatewayMac() {
+ return gatewayMac;
+ }
+
+ public void setGatewayMac(String gatewayMac) {
+ this.gatewayMac = gatewayMac;
+ }
+
+ public ClientDetail gatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=gateway) Gateway name.
+ * @return gatewayName
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=gateway) Gateway name.")
+
+
+ public String getGatewayName() {
+ return gatewayName;
+ }
+
+ public void setGatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ }
+
+ public ClientDetail vid(Integer vid) {
+ this.vid = vid;
+ return this;
+ }
+
+ /**
+ * (Wired) vlan.
+ * @return vid
+ */
+ @ApiModelProperty(value = "(Wired) vlan.")
+
+
+ public Integer getVid() {
+ return vid;
+ }
+
+ public void setVid(Integer vid) {
+ this.vid = vid;
+ }
+
+ public ClientDetail networkName(String networkName) {
+ this.networkName = networkName;
+ return this;
+ }
+
+ /**
+ * (Wired) Network name.
+ * @return networkName
+ */
+ @ApiModelProperty(value = "(Wired) Network name.")
+
+
+ public String getNetworkName() {
+ return networkName;
+ }
+
+ public void setNetworkName(String networkName) {
+ this.networkName = networkName;
+ }
+
+ public ClientDetail dot1xIdentity(String dot1xIdentity) {
+ this.dot1xIdentity = dot1xIdentity;
+ return this;
+ }
+
+ /**
+ * (Wired) 802.1x authentication identity.
+ * @return dot1xIdentity
+ */
+ @ApiModelProperty(value = "(Wired) 802.1x authentication identity.")
+
+
+ public String getDot1xIdentity() {
+ return dot1xIdentity;
+ }
+
+ public void setDot1xIdentity(String dot1xIdentity) {
+ this.dot1xIdentity = dot1xIdentity;
+ }
+
+ public ClientDetail dot1xVlan(Integer dot1xVlan) {
+ this.dot1xVlan = dot1xVlan;
+ return this;
+ }
+
+ /**
+ * (Wired) Network name corresponding to the VLAN obtained by 802.1x D-VLAN.
+ * @return dot1xVlan
+ */
+ @ApiModelProperty(value = "(Wired) Network name corresponding to the VLAN obtained by 802.1x D-VLAN.")
+
+
+ public Integer getDot1xVlan() {
+ return dot1xVlan;
+ }
+
+ public void setDot1xVlan(Integer dot1xVlan) {
+ this.dot1xVlan = dot1xVlan;
+ }
+
+ public ClientDetail port(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * (Wired) Port ID.
+ * @return port
+ */
+ @ApiModelProperty(value = "(Wired) Port ID.")
+
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public ClientDetail lagId(Integer lagId) {
+ this.lagId = lagId;
+ return this;
+ }
+
+ /**
+ * (Wired) LAG ID. Exists only when the client is connected to the LAG.
+ * @return lagId
+ */
+ @ApiModelProperty(value = "(Wired) LAG ID. Exists only when the client is connected to the LAG.")
+
+
+ public Integer getLagId() {
+ return lagId;
+ }
+
+ public void setLagId(Integer lagId) {
+ this.lagId = lagId;
+ }
+
+ public ClientDetail activity(Long activity) {
+ this.activity = activity;
+ return this;
+ }
+
+ /**
+ * Real-time downlink rate (Byte/s).
+ * @return activity
+ */
+ @ApiModelProperty(value = "Real-time downlink rate (Byte/s).")
+
+
+ public Long getActivity() {
+ return activity;
+ }
+
+ public void setActivity(Long activity) {
+ this.activity = activity;
+ }
+
+ public ClientDetail trafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ return this;
+ }
+
+ /**
+ * Downstream traffic (Byte).
+ * @return trafficDown
+ */
+ @ApiModelProperty(value = "Downstream traffic (Byte).")
+
+
+ public Long getTrafficDown() {
+ return trafficDown;
+ }
+
+ public void setTrafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ }
+
+ public ClientDetail trafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ return this;
+ }
+
+ /**
+ * Upstream traffic (Byte).
+ * @return trafficUp
+ */
+ @ApiModelProperty(value = "Upstream traffic (Byte).")
+
+
+ public Long getTrafficUp() {
+ return trafficUp;
+ }
+
+ public void setTrafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ }
+
+ public ClientDetail uptime(Long uptime) {
+ this.uptime = uptime;
+ return this;
+ }
+
+ /**
+ * Up time (unit: s).
+ * @return uptime
+ */
+ @ApiModelProperty(value = "Up time (unit: s).")
+
+
+ public Long getUptime() {
+ return uptime;
+ }
+
+ public void setUptime(Long uptime) {
+ this.uptime = uptime;
+ }
+
+ public ClientDetail lastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ return this;
+ }
+
+ /**
+ * Last found time, timestamp (ms).
+ * @return lastSeen
+ */
+ @ApiModelProperty(value = "Last found time, timestamp (ms).")
+
+
+ public Long getLastSeen() {
+ return lastSeen;
+ }
+
+ public void setLastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ }
+
+ public ClientDetail authStatus(Integer authStatus) {
+ this.authStatus = authStatus;
+ return this;
+ }
+
+ /**
+ * Authentication status should be a value as follows: 0: CONNECTED // Access without any authentication method; 1: PENDING // Access to Portal, but authentication failed; 2: AUTHORIZED // Pass through portal, pass other authentication without portal; 3: AUTH-FREE // No portal authentication required.
+ * @return authStatus
+ */
+ @ApiModelProperty(value = "Authentication status should be a value as follows: 0: CONNECTED // Access without any authentication method; 1: PENDING // Access to Portal, but authentication failed; 2: AUTHORIZED // Pass through portal, pass other authentication without portal; 3: AUTH-FREE // No portal authentication required.")
+
+
+ public Integer getAuthStatus() {
+ return authStatus;
+ }
+
+ public void setAuthStatus(Integer authStatus) {
+ this.authStatus = authStatus;
+ }
+
+ public ClientDetail blocked(Boolean blocked) {
+ this.blocked = blocked;
+ return this;
+ }
+
+ /**
+ * Whether the client is blocked.
+ * @return blocked
+ */
+ @ApiModelProperty(value = "Whether the client is blocked.")
+
+
+ public Boolean getBlocked() {
+ return blocked;
+ }
+
+ public void setBlocked(Boolean blocked) {
+ this.blocked = blocked;
+ }
+
+ public ClientDetail guest(Boolean guest) {
+ this.guest = guest;
+ return this;
+ }
+
+ /**
+ * (Wireless) Whether it is Guest (used to display the wireless Guest client icon).
+ * @return guest
+ */
+ @ApiModelProperty(value = "(Wireless) Whether it is Guest (used to display the wireless Guest client icon).")
+
+
+ public Boolean getGuest() {
+ return guest;
+ }
+
+ public void setGuest(Boolean guest) {
+ this.guest = guest;
+ }
+
+ public ClientDetail active(Boolean active) {
+ this.active = active;
+ return this;
+ }
+
+ /**
+ * Whether the client is online.
+ * @return active
+ */
+ @ApiModelProperty(value = "Whether the client is online.")
+
+
+ public Boolean getActive() {
+ return active;
+ }
+
+ public void setActive(Boolean active) {
+ this.active = active;
+ }
+
+ public ClientDetail manager(Boolean manager) {
+ this.manager = manager;
+ return this;
+ }
+
+ /**
+ * Whether it is the client currently being managed.
+ * @return manager
+ */
+ @ApiModelProperty(value = "Whether it is the client currently being managed.")
+
+
+ public Boolean getManager() {
+ return manager;
+ }
+
+ public void setManager(Boolean manager) {
+ this.manager = manager;
+ }
+
+ public ClientDetail ipSetting(ClientIpSetting ipSetting) {
+ this.ipSetting = ipSetting;
+ return this;
+ }
+
+ /**
+ * Get ipSetting
+ * @return ipSetting
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientIpSetting getIpSetting() {
+ return ipSetting;
+ }
+
+ public void setIpSetting(ClientIpSetting ipSetting) {
+ this.ipSetting = ipSetting;
+ }
+
+ public ClientDetail downPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ return this;
+ }
+
+ /**
+ * Number of downstream packets.
+ * @return downPacket
+ */
+ @ApiModelProperty(value = "Number of downstream packets.")
+
+
+ public Long getDownPacket() {
+ return downPacket;
+ }
+
+ public void setDownPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ }
+
+ public ClientDetail upPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ return this;
+ }
+
+ /**
+ * Number of upstream packets.
+ * @return upPacket
+ */
+ @ApiModelProperty(value = "Number of upstream packets.")
+
+
+ public Long getUpPacket() {
+ return upPacket;
+ }
+
+ public void setUpPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ }
+
+ public ClientDetail rateLimit(ClientRateLimitSetting rateLimit) {
+ this.rateLimit = rateLimit;
+ return this;
+ }
+
+ /**
+ * Get rateLimit
+ * @return rateLimit
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientRateLimitSetting getRateLimit() {
+ return rateLimit;
+ }
+
+ public void setRateLimit(ClientRateLimitSetting rateLimit) {
+ this.rateLimit = rateLimit;
+ }
+
+ public ClientDetail clientLockToApSetting(ClientLockToApSetting clientLockToApSetting) {
+ this.clientLockToApSetting = clientLockToApSetting;
+ return this;
+ }
+
+ /**
+ * Get clientLockToApSetting
+ * @return clientLockToApSetting
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientLockToApSetting getClientLockToApSetting() {
+ return clientLockToApSetting;
+ }
+
+ public void setClientLockToApSetting(ClientLockToApSetting clientLockToApSetting) {
+ this.clientLockToApSetting = clientLockToApSetting;
+ }
+
+ public ClientDetail multiLink(List multiLink) {
+ this.multiLink = multiLink;
+ return this;
+ }
+
+ public ClientDetail addMultiLinkItem(ClientMultifrequencyInfo multiLinkItem) {
+ if (this.multiLink == null) {
+ this.multiLink = new ArrayList<>();
+ }
+ this.multiLink.add(multiLinkItem);
+ return this;
+ }
+
+ /**
+ * (Wireless) Client multifrequency info list.
+ * @return multiLink
+ */
+ @ApiModelProperty(value = "(Wireless) Client multifrequency info list.")
+
+ @Valid
+
+ public List getMultiLink() {
+ return multiLink;
+ }
+
+ public void setMultiLink(List multiLink) {
+ this.multiLink = multiLink;
+ }
+
+ public ClientDetail unit(Integer unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Unit ID.
+ * @return unit
+ */
+ @ApiModelProperty(value = "Unit ID.")
+
+
+ public Integer getUnit() {
+ return unit;
+ }
+
+ public void setUnit(Integer unit) {
+ this.unit = unit;
+ }
+
+ public ClientDetail standardPort(String standardPort) {
+ this.standardPort = standardPort;
+ return this;
+ }
+
+ /**
+ * Standard port.
+ * @return standardPort
+ */
+ @ApiModelProperty(value = "Standard port.")
+
+
+ public String getStandardPort() {
+ return standardPort;
+ }
+
+ public void setStandardPort(String standardPort) {
+ this.standardPort = standardPort;
+ }
+
+ public ClientDetail blockDisable(Boolean blockDisable) {
+ this.blockDisable = blockDisable;
+ return this;
+ }
+
+ /**
+ * Block client disabled, default value: false
+ * @return blockDisable
+ */
+ @ApiModelProperty(value = "Block client disabled, default value: false")
+
+
+ public Boolean getBlockDisable() {
+ return blockDisable;
+ }
+
+ public void setBlockDisable(Boolean blockDisable) {
+ this.blockDisable = blockDisable;
+ }
+
+ public ClientDetail dhcpLeaseTime(Long dhcpLeaseTime) {
+ this.dhcpLeaseTime = dhcpLeaseTime;
+ return this;
+ }
+
+ /**
+ * DHCP lease time, unit seconds
+ * @return dhcpLeaseTime
+ */
+ @ApiModelProperty(value = "DHCP lease time, unit seconds")
+
+
+ public Long getDhcpLeaseTime() {
+ return dhcpLeaseTime;
+ }
+
+ public void setDhcpLeaseTime(Long dhcpLeaseTime) {
+ this.dhcpLeaseTime = dhcpLeaseTime;
+ }
+
+ public ClientDetail systemName(String systemName) {
+ this.systemName = systemName;
+ return this;
+ }
+
+ /**
+ * Device system name.
+ * @return systemName
+ */
+ @ApiModelProperty(value = "Device system name.")
+
+
+ public String getSystemName() {
+ return systemName;
+ }
+
+ public void setSystemName(String systemName) {
+ this.systemName = systemName;
+ }
+
+ public ClientDetail description(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Device description.
+ * @return description
+ */
+ @ApiModelProperty(value = "Device description.")
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ClientDetail capabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ public ClientDetail addCapabilitiesItem(String capabilitiesItem) {
+ if (this.capabilities == null) {
+ this.capabilities = new ArrayList<>();
+ }
+ this.capabilities.add(capabilitiesItem);
+ return this;
+ }
+
+ /**
+ * One or more of the following values: Station、DOCSIS cable device、Telephone、Router、WLAN access point、Bridge、Repeater、other.
+ * @return capabilities
+ */
+ @ApiModelProperty(value = "One or more of the following values: Station、DOCSIS cable device、Telephone、Router、WLAN access point、Bridge、Repeater、other.")
+
+
+ public List getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientDetail clientDetail = (ClientDetail) o;
+ return Objects.equals(this.id, clientDetail.id) &&
+ Objects.equals(this.mac, clientDetail.mac) &&
+ Objects.equals(this.name, clientDetail.name) &&
+ Objects.equals(this.hostName, clientDetail.hostName) &&
+ Objects.equals(this.vendor, clientDetail.vendor) &&
+ Objects.equals(this.deviceType, clientDetail.deviceType) &&
+ Objects.equals(this.deviceCategory, clientDetail.deviceCategory) &&
+ Objects.equals(this.osName, clientDetail.osName) &&
+ Objects.equals(this.ip, clientDetail.ip) &&
+ Objects.equals(this.ipv6List, clientDetail.ipv6List) &&
+ Objects.equals(this.connectType, clientDetail.connectType) &&
+ Objects.equals(this.connectDevType, clientDetail.connectDevType) &&
+ Objects.equals(this.connectedToWirelessRouter, clientDetail.connectedToWirelessRouter) &&
+ Objects.equals(this.wireless, clientDetail.wireless) &&
+ Objects.equals(this.ssid, clientDetail.ssid) &&
+ Objects.equals(this.signalLevel, clientDetail.signalLevel) &&
+ Objects.equals(this.signalRank, clientDetail.signalRank) &&
+ Objects.equals(this.wifiMode, clientDetail.wifiMode) &&
+ Objects.equals(this.apName, clientDetail.apName) &&
+ Objects.equals(this.apMac, clientDetail.apMac) &&
+ Objects.equals(this.radioId, clientDetail.radioId) &&
+ Objects.equals(this.channel, clientDetail.channel) &&
+ Objects.equals(this.rxRate, clientDetail.rxRate) &&
+ Objects.equals(this.txRate, clientDetail.txRate) &&
+ Objects.equals(this.powerSave, clientDetail.powerSave) &&
+ Objects.equals(this.rssi, clientDetail.rssi) &&
+ Objects.equals(this.snr, clientDetail.snr) &&
+ Objects.equals(this.switchMac, clientDetail.switchMac) &&
+ Objects.equals(this.switchName, clientDetail.switchName) &&
+ Objects.equals(this.gatewayMac, clientDetail.gatewayMac) &&
+ Objects.equals(this.gatewayName, clientDetail.gatewayName) &&
+ Objects.equals(this.vid, clientDetail.vid) &&
+ Objects.equals(this.networkName, clientDetail.networkName) &&
+ Objects.equals(this.dot1xIdentity, clientDetail.dot1xIdentity) &&
+ Objects.equals(this.dot1xVlan, clientDetail.dot1xVlan) &&
+ Objects.equals(this.port, clientDetail.port) &&
+ Objects.equals(this.lagId, clientDetail.lagId) &&
+ Objects.equals(this.activity, clientDetail.activity) &&
+ Objects.equals(this.trafficDown, clientDetail.trafficDown) &&
+ Objects.equals(this.trafficUp, clientDetail.trafficUp) &&
+ Objects.equals(this.uptime, clientDetail.uptime) &&
+ Objects.equals(this.lastSeen, clientDetail.lastSeen) &&
+ Objects.equals(this.authStatus, clientDetail.authStatus) &&
+ Objects.equals(this.blocked, clientDetail.blocked) &&
+ Objects.equals(this.guest, clientDetail.guest) &&
+ Objects.equals(this.active, clientDetail.active) &&
+ Objects.equals(this.manager, clientDetail.manager) &&
+ Objects.equals(this.ipSetting, clientDetail.ipSetting) &&
+ Objects.equals(this.downPacket, clientDetail.downPacket) &&
+ Objects.equals(this.upPacket, clientDetail.upPacket) &&
+ Objects.equals(this.rateLimit, clientDetail.rateLimit) &&
+ Objects.equals(this.clientLockToApSetting, clientDetail.clientLockToApSetting) &&
+ Objects.equals(this.multiLink, clientDetail.multiLink) &&
+ Objects.equals(this.unit, clientDetail.unit) &&
+ Objects.equals(this.standardPort, clientDetail.standardPort) &&
+ Objects.equals(this.blockDisable, clientDetail.blockDisable) &&
+ Objects.equals(this.dhcpLeaseTime, clientDetail.dhcpLeaseTime) &&
+ Objects.equals(this.systemName, clientDetail.systemName) &&
+ Objects.equals(this.description, clientDetail.description) &&
+ Objects.equals(this.capabilities, clientDetail.capabilities);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, mac, name, hostName, vendor, deviceType, deviceCategory, osName, ip, ipv6List, connectType, connectDevType, connectedToWirelessRouter, wireless, ssid, signalLevel, signalRank, wifiMode, apName, apMac, radioId, channel, rxRate, txRate, powerSave, rssi, snr, switchMac, switchName, gatewayMac, gatewayName, vid, networkName, dot1xIdentity, dot1xVlan, port, lagId, activity, trafficDown, trafficUp, uptime, lastSeen, authStatus, blocked, guest, active, manager, ipSetting, downPacket, upPacket, rateLimit, clientLockToApSetting, multiLink, unit, standardPort, blockDisable, dhcpLeaseTime, systemName, description, capabilities);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientDetail {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" mac: ").append(toIndentedString(mac)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" hostName: ").append(toIndentedString(hostName)).append("\n");
+ sb.append(" vendor: ").append(toIndentedString(vendor)).append("\n");
+ sb.append(" deviceType: ").append(toIndentedString(deviceType)).append("\n");
+ sb.append(" deviceCategory: ").append(toIndentedString(deviceCategory)).append("\n");
+ sb.append(" osName: ").append(toIndentedString(osName)).append("\n");
+ sb.append(" ip: ").append(toIndentedString(ip)).append("\n");
+ sb.append(" ipv6List: ").append(toIndentedString(ipv6List)).append("\n");
+ sb.append(" connectType: ").append(toIndentedString(connectType)).append("\n");
+ sb.append(" connectDevType: ").append(toIndentedString(connectDevType)).append("\n");
+ sb.append(" connectedToWirelessRouter: ").append(toIndentedString(connectedToWirelessRouter)).append("\n");
+ sb.append(" wireless: ").append(toIndentedString(wireless)).append("\n");
+ sb.append(" ssid: ").append(toIndentedString(ssid)).append("\n");
+ sb.append(" signalLevel: ").append(toIndentedString(signalLevel)).append("\n");
+ sb.append(" signalRank: ").append(toIndentedString(signalRank)).append("\n");
+ sb.append(" wifiMode: ").append(toIndentedString(wifiMode)).append("\n");
+ sb.append(" apName: ").append(toIndentedString(apName)).append("\n");
+ sb.append(" apMac: ").append(toIndentedString(apMac)).append("\n");
+ sb.append(" radioId: ").append(toIndentedString(radioId)).append("\n");
+ sb.append(" channel: ").append(toIndentedString(channel)).append("\n");
+ sb.append(" rxRate: ").append(toIndentedString(rxRate)).append("\n");
+ sb.append(" txRate: ").append(toIndentedString(txRate)).append("\n");
+ sb.append(" powerSave: ").append(toIndentedString(powerSave)).append("\n");
+ sb.append(" rssi: ").append(toIndentedString(rssi)).append("\n");
+ sb.append(" snr: ").append(toIndentedString(snr)).append("\n");
+ sb.append(" switchMac: ").append(toIndentedString(switchMac)).append("\n");
+ sb.append(" switchName: ").append(toIndentedString(switchName)).append("\n");
+ sb.append(" gatewayMac: ").append(toIndentedString(gatewayMac)).append("\n");
+ sb.append(" gatewayName: ").append(toIndentedString(gatewayName)).append("\n");
+ sb.append(" vid: ").append(toIndentedString(vid)).append("\n");
+ sb.append(" networkName: ").append(toIndentedString(networkName)).append("\n");
+ sb.append(" dot1xIdentity: ").append(toIndentedString(dot1xIdentity)).append("\n");
+ sb.append(" dot1xVlan: ").append(toIndentedString(dot1xVlan)).append("\n");
+ sb.append(" port: ").append(toIndentedString(port)).append("\n");
+ sb.append(" lagId: ").append(toIndentedString(lagId)).append("\n");
+ sb.append(" activity: ").append(toIndentedString(activity)).append("\n");
+ sb.append(" trafficDown: ").append(toIndentedString(trafficDown)).append("\n");
+ sb.append(" trafficUp: ").append(toIndentedString(trafficUp)).append("\n");
+ sb.append(" uptime: ").append(toIndentedString(uptime)).append("\n");
+ sb.append(" lastSeen: ").append(toIndentedString(lastSeen)).append("\n");
+ sb.append(" authStatus: ").append(toIndentedString(authStatus)).append("\n");
+ sb.append(" blocked: ").append(toIndentedString(blocked)).append("\n");
+ sb.append(" guest: ").append(toIndentedString(guest)).append("\n");
+ sb.append(" active: ").append(toIndentedString(active)).append("\n");
+ sb.append(" manager: ").append(toIndentedString(manager)).append("\n");
+ sb.append(" ipSetting: ").append(toIndentedString(ipSetting)).append("\n");
+ sb.append(" downPacket: ").append(toIndentedString(downPacket)).append("\n");
+ sb.append(" upPacket: ").append(toIndentedString(upPacket)).append("\n");
+ sb.append(" rateLimit: ").append(toIndentedString(rateLimit)).append("\n");
+ sb.append(" clientLockToApSetting: ").append(toIndentedString(clientLockToApSetting)).append("\n");
+ sb.append(" multiLink: ").append(toIndentedString(multiLink)).append("\n");
+ sb.append(" unit: ").append(toIndentedString(unit)).append("\n");
+ sb.append(" standardPort: ").append(toIndentedString(standardPort)).append("\n");
+ sb.append(" blockDisable: ").append(toIndentedString(blockDisable)).append("\n");
+ sb.append(" dhcpLeaseTime: ").append(toIndentedString(dhcpLeaseTime)).append("\n");
+ sb.append(" systemName: ").append(toIndentedString(systemName)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientGridVoClientInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientGridVoClientInfo.java
new file mode 100644
index 0000000..9452c82
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientGridVoClientInfo.java
@@ -0,0 +1,190 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ClientGridVoClientInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientGridVoClientInfo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ @JsonProperty("clientStat")
+ private ClientStatVo clientStat;
+
+ public ClientGridVoClientInfo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public ClientGridVoClientInfo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public ClientGridVoClientInfo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public ClientGridVoClientInfo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public ClientGridVoClientInfo addDataItem(ClientInfo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public ClientGridVoClientInfo clientStat(ClientStatVo clientStat) {
+ this.clientStat = clientStat;
+ return this;
+ }
+
+ /**
+ * Get clientStat
+ * @return clientStat
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientStatVo getClientStat() {
+ return clientStat;
+ }
+
+ public void setClientStat(ClientStatVo clientStat) {
+ this.clientStat = clientStat;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientGridVoClientInfo clientGridVoClientInfo = (ClientGridVoClientInfo) o;
+ return Objects.equals(this.totalRows, clientGridVoClientInfo.totalRows) &&
+ Objects.equals(this.currentPage, clientGridVoClientInfo.currentPage) &&
+ Objects.equals(this.currentSize, clientGridVoClientInfo.currentSize) &&
+ Objects.equals(this.data, clientGridVoClientInfo.data) &&
+ Objects.equals(this.clientStat, clientGridVoClientInfo.clientStat);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data, clientStat);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientGridVoClientInfo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append(" clientStat: ").append(toIndentedString(clientStat)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientHistoryInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientHistoryInfo.java
new file mode 100644
index 0000000..05bad45
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientHistoryInfo.java
@@ -0,0 +1,438 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ClientHistoryInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientHistoryInfo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("mac")
+ private String mac;
+
+ @JsonProperty("download")
+ private Long download;
+
+ @JsonProperty("upload")
+ private Long upload;
+
+ @JsonProperty("duration")
+ private Long duration;
+
+ @JsonProperty("firstSeen")
+ private Long firstSeen;
+
+ @JsonProperty("lastSeen")
+ private Long lastSeen;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("ssid")
+ private String ssid;
+
+ @JsonProperty("port")
+ private Integer port;
+
+ @JsonProperty("guest")
+ private Boolean guest;
+
+ @JsonProperty("deviceName")
+ private String deviceName;
+
+ @JsonProperty("associationTime")
+ private Integer associationTime;
+
+ @JsonProperty("ip")
+ private String ip;
+
+ @JsonProperty("ipv6List")
+ @Valid
+ private List ipv6List = null;
+
+ public ClientHistoryInfo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Client History ID.
+ * @return id
+ */
+ @ApiModelProperty(value = "Client History ID.")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ClientHistoryInfo mac(String mac) {
+ this.mac = mac;
+ return this;
+ }
+
+ /**
+ * Client MAC Address.
+ * @return mac
+ */
+ @ApiModelProperty(value = "Client MAC Address.")
+
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+
+ public ClientHistoryInfo download(Long download) {
+ this.download = download;
+ return this;
+ }
+
+ /**
+ * Downstream traffic (Byte).
+ * @return download
+ */
+ @ApiModelProperty(value = "Downstream traffic (Byte).")
+
+
+ public Long getDownload() {
+ return download;
+ }
+
+ public void setDownload(Long download) {
+ this.download = download;
+ }
+
+ public ClientHistoryInfo upload(Long upload) {
+ this.upload = upload;
+ return this;
+ }
+
+ /**
+ * Upstream traffic (Byte).
+ * @return upload
+ */
+ @ApiModelProperty(value = "Upstream traffic (Byte).")
+
+
+ public Long getUpload() {
+ return upload;
+ }
+
+ public void setUpload(Long upload) {
+ this.upload = upload;
+ }
+
+ public ClientHistoryInfo duration(Long duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Up time (unit: s).
+ * @return duration
+ */
+ @ApiModelProperty(value = "Up time (unit: s).")
+
+
+ public Long getDuration() {
+ return duration;
+ }
+
+ public void setDuration(Long duration) {
+ this.duration = duration;
+ }
+
+ public ClientHistoryInfo firstSeen(Long firstSeen) {
+ this.firstSeen = firstSeen;
+ return this;
+ }
+
+ /**
+ * The timestamp (ms) when the client connected.
+ * @return firstSeen
+ */
+ @ApiModelProperty(value = "The timestamp (ms) when the client connected.")
+
+
+ public Long getFirstSeen() {
+ return firstSeen;
+ }
+
+ public void setFirstSeen(Long firstSeen) {
+ this.firstSeen = firstSeen;
+ }
+
+ public ClientHistoryInfo lastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ return this;
+ }
+
+ /**
+ * Last found time, timestamp (ms).
+ * @return lastSeen
+ */
+ @ApiModelProperty(value = "Last found time, timestamp (ms).")
+
+
+ public Long getLastSeen() {
+ return lastSeen;
+ }
+
+ public void setLastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ }
+
+ public ClientHistoryInfo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Client Name.
+ * @return name
+ */
+ @ApiModelProperty(value = "Client Name.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ClientHistoryInfo ssid(String ssid) {
+ this.ssid = ssid;
+ return this;
+ }
+
+ /**
+ * (Wireless) SSID name.
+ * @return ssid
+ */
+ @ApiModelProperty(value = "(Wireless) SSID name.")
+
+
+ public String getSsid() {
+ return ssid;
+ }
+
+ public void setSsid(String ssid) {
+ this.ssid = ssid;
+ }
+
+ public ClientHistoryInfo port(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * (Wired) Port ID.
+ * @return port
+ */
+ @ApiModelProperty(value = "(Wired) Port ID.")
+
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public ClientHistoryInfo guest(Boolean guest) {
+ this.guest = guest;
+ return this;
+ }
+
+ /**
+ * (Wireless) Whether it is Guest (used to display the wireless Guest client icon).
+ * @return guest
+ */
+ @ApiModelProperty(value = "(Wireless) Whether it is Guest (used to display the wireless Guest client icon).")
+
+
+ public Boolean getGuest() {
+ return guest;
+ }
+
+ public void setGuest(Boolean guest) {
+ this.guest = guest;
+ }
+
+ public ClientHistoryInfo deviceName(String deviceName) {
+ this.deviceName = deviceName;
+ return this;
+ }
+
+ /**
+ * Device name.
+ * @return deviceName
+ */
+ @ApiModelProperty(value = "Device name.")
+
+
+ public String getDeviceName() {
+ return deviceName;
+ }
+
+ public void setDeviceName(String deviceName) {
+ this.deviceName = deviceName;
+ }
+
+ public ClientHistoryInfo associationTime(Integer associationTime) {
+ this.associationTime = associationTime;
+ return this;
+ }
+
+ /**
+ * (Wireless) The time (ms) it takes for the client to connect to SSID.
+ * @return associationTime
+ */
+ @ApiModelProperty(value = "(Wireless) The time (ms) it takes for the client to connect to SSID.")
+
+
+ public Integer getAssociationTime() {
+ return associationTime;
+ }
+
+ public void setAssociationTime(Integer associationTime) {
+ this.associationTime = associationTime;
+ }
+
+ public ClientHistoryInfo ip(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ /**
+ * IP Address.
+ * @return ip
+ */
+ @ApiModelProperty(value = "IP Address.")
+
+
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public ClientHistoryInfo ipv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ return this;
+ }
+
+ public ClientHistoryInfo addIpv6ListItem(String ipv6ListItem) {
+ if (this.ipv6List == null) {
+ this.ipv6List = new ArrayList<>();
+ }
+ this.ipv6List.add(ipv6ListItem);
+ return this;
+ }
+
+ /**
+ * IPv6 Address.
+ * @return ipv6List
+ */
+ @ApiModelProperty(value = "IPv6 Address.")
+
+
+ public List getIpv6List() {
+ return ipv6List;
+ }
+
+ public void setIpv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientHistoryInfo clientHistoryInfo = (ClientHistoryInfo) o;
+ return Objects.equals(this.id, clientHistoryInfo.id) &&
+ Objects.equals(this.mac, clientHistoryInfo.mac) &&
+ Objects.equals(this.download, clientHistoryInfo.download) &&
+ Objects.equals(this.upload, clientHistoryInfo.upload) &&
+ Objects.equals(this.duration, clientHistoryInfo.duration) &&
+ Objects.equals(this.firstSeen, clientHistoryInfo.firstSeen) &&
+ Objects.equals(this.lastSeen, clientHistoryInfo.lastSeen) &&
+ Objects.equals(this.name, clientHistoryInfo.name) &&
+ Objects.equals(this.ssid, clientHistoryInfo.ssid) &&
+ Objects.equals(this.port, clientHistoryInfo.port) &&
+ Objects.equals(this.guest, clientHistoryInfo.guest) &&
+ Objects.equals(this.deviceName, clientHistoryInfo.deviceName) &&
+ Objects.equals(this.associationTime, clientHistoryInfo.associationTime) &&
+ Objects.equals(this.ip, clientHistoryInfo.ip) &&
+ Objects.equals(this.ipv6List, clientHistoryInfo.ipv6List);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, mac, download, upload, duration, firstSeen, lastSeen, name, ssid, port, guest, deviceName, associationTime, ip, ipv6List);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientHistoryInfo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" mac: ").append(toIndentedString(mac)).append("\n");
+ sb.append(" download: ").append(toIndentedString(download)).append("\n");
+ sb.append(" upload: ").append(toIndentedString(upload)).append("\n");
+ sb.append(" duration: ").append(toIndentedString(duration)).append("\n");
+ sb.append(" firstSeen: ").append(toIndentedString(firstSeen)).append("\n");
+ sb.append(" lastSeen: ").append(toIndentedString(lastSeen)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" ssid: ").append(toIndentedString(ssid)).append("\n");
+ sb.append(" port: ").append(toIndentedString(port)).append("\n");
+ sb.append(" guest: ").append(toIndentedString(guest)).append("\n");
+ sb.append(" deviceName: ").append(toIndentedString(deviceName)).append("\n");
+ sb.append(" associationTime: ").append(toIndentedString(associationTime)).append("\n");
+ sb.append(" ip: ").append(toIndentedString(ip)).append("\n");
+ sb.append(" ipv6List: ").append(toIndentedString(ipv6List)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientInfo.java
new file mode 100644
index 0000000..53f12c4
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientInfo.java
@@ -0,0 +1,1610 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ClientInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientInfo {
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("mac")
+ private String mac;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("hostName")
+ private String hostName;
+
+ @JsonProperty("vendor")
+ private String vendor;
+
+ @JsonProperty("deviceType")
+ private String deviceType;
+
+ @JsonProperty("deviceCategory")
+ private String deviceCategory;
+
+ @JsonProperty("osName")
+ private String osName;
+
+ @JsonProperty("ip")
+ private String ip;
+
+ @JsonProperty("ipv6List")
+ @Valid
+ private List ipv6List = null;
+
+ @JsonProperty("connectType")
+ private Integer connectType;
+
+ @JsonProperty("connectDevType")
+ private String connectDevType;
+
+ @JsonProperty("connectedToWirelessRouter")
+ private Boolean connectedToWirelessRouter;
+
+ @JsonProperty("wireless")
+ private Boolean wireless;
+
+ @JsonProperty("ssid")
+ private String ssid;
+
+ @JsonProperty("signalLevel")
+ private Integer signalLevel;
+
+ @JsonProperty("healthScore")
+ private Integer healthScore;
+
+ @JsonProperty("signalRank")
+ private Integer signalRank;
+
+ @JsonProperty("wifiMode")
+ private Integer wifiMode;
+
+ @JsonProperty("apName")
+ private String apName;
+
+ @JsonProperty("apMac")
+ private String apMac;
+
+ @JsonProperty("radioId")
+ private Integer radioId;
+
+ @JsonProperty("channel")
+ private Integer channel;
+
+ @JsonProperty("rxRate")
+ private Long rxRate;
+
+ @JsonProperty("txRate")
+ private Long txRate;
+
+ @JsonProperty("powerSave")
+ private Boolean powerSave;
+
+ @JsonProperty("rssi")
+ private Integer rssi;
+
+ @JsonProperty("snr")
+ private Integer snr;
+
+ @JsonProperty("switchMac")
+ private String switchMac;
+
+ @JsonProperty("switchName")
+ private String switchName;
+
+ @JsonProperty("gatewayMac")
+ private String gatewayMac;
+
+ @JsonProperty("gatewayName")
+ private String gatewayName;
+
+ @JsonProperty("vid")
+ private Integer vid;
+
+ @JsonProperty("networkName")
+ private String networkName;
+
+ @JsonProperty("dot1xIdentity")
+ private String dot1xIdentity;
+
+ @JsonProperty("dot1xVlan")
+ private Integer dot1xVlan;
+
+ @JsonProperty("port")
+ private Integer port;
+
+ @JsonProperty("lagId")
+ private Integer lagId;
+
+ @JsonProperty("activity")
+ private Long activity;
+
+ @JsonProperty("trafficDown")
+ private Long trafficDown;
+
+ @JsonProperty("trafficUp")
+ private Long trafficUp;
+
+ @JsonProperty("uptime")
+ private Long uptime;
+
+ @JsonProperty("lastSeen")
+ private Long lastSeen;
+
+ @JsonProperty("authStatus")
+ private Integer authStatus;
+
+ @JsonProperty("blocked")
+ private Boolean blocked;
+
+ @JsonProperty("guest")
+ private Boolean guest;
+
+ @JsonProperty("active")
+ private Boolean active;
+
+ @JsonProperty("manager")
+ private Boolean manager;
+
+ @JsonProperty("ipSetting")
+ private ClientIpSetting ipSetting;
+
+ @JsonProperty("downPacket")
+ private Long downPacket;
+
+ @JsonProperty("upPacket")
+ private Long upPacket;
+
+ @JsonProperty("rateLimit")
+ private ClientRateLimitSetting rateLimit;
+
+ @JsonProperty("clientLockToApSetting")
+ private ClientLockToApSetting clientLockToApSetting;
+
+ @JsonProperty("multiLink")
+ @Valid
+ private List multiLink = null;
+
+ @JsonProperty("unit")
+ private Integer unit;
+
+ @JsonProperty("standardPort")
+ private String standardPort;
+
+ @JsonProperty("systemName")
+ private String systemName;
+
+ @JsonProperty("description")
+ private String description;
+
+ @JsonProperty("capabilities")
+ @Valid
+ private List capabilities = null;
+
+ @JsonProperty("blockDisable")
+ private Boolean blockDisable;
+
+ @JsonProperty("dhcpLeaseTime")
+ private Long dhcpLeaseTime;
+
+ public ClientInfo id(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Client ID.
+ * @return id
+ */
+ @ApiModelProperty(value = "Client ID.")
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ClientInfo mac(String mac) {
+ this.mac = mac;
+ return this;
+ }
+
+ /**
+ * Client MAC Address.
+ * @return mac
+ */
+ @ApiModelProperty(value = "Client MAC Address.")
+
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+
+ public ClientInfo name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Client Name, alias.
+ * @return name
+ */
+ @ApiModelProperty(value = "Client Name, alias.")
+
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ClientInfo hostName(String hostName) {
+ this.hostName = hostName;
+ return this;
+ }
+
+ /**
+ * Host name, device name.
+ * @return hostName
+ */
+ @ApiModelProperty(value = "Host name, device name.")
+
+
+ public String getHostName() {
+ return hostName;
+ }
+
+ public void setHostName(String hostName) {
+ this.hostName = hostName;
+ }
+
+ public ClientInfo vendor(String vendor) {
+ this.vendor = vendor;
+ return this;
+ }
+
+ /**
+ * Vendor.
+ * @return vendor
+ */
+ @ApiModelProperty(value = "Vendor.")
+
+
+ public String getVendor() {
+ return vendor;
+ }
+
+ public void setVendor(String vendor) {
+ this.vendor = vendor;
+ }
+
+ public ClientInfo deviceType(String deviceType) {
+ this.deviceType = deviceType;
+ return this;
+ }
+
+ /**
+ * Device Type: iphone, ipod, android, pc, printer, tv...
+ * @return deviceType
+ */
+ @ApiModelProperty(value = "Device Type: iphone, ipod, android, pc, printer, tv...")
+
+
+ public String getDeviceType() {
+ return deviceType;
+ }
+
+ public void setDeviceType(String deviceType) {
+ this.deviceType = deviceType;
+ }
+
+ public ClientInfo deviceCategory(String deviceCategory) {
+ this.deviceCategory = deviceCategory;
+ return this;
+ }
+
+ /**
+ * Device Category: loT, TV, computer, phone...
+ * @return deviceCategory
+ */
+ @ApiModelProperty(value = "Device Category: loT, TV, computer, phone...")
+
+
+ public String getDeviceCategory() {
+ return deviceCategory;
+ }
+
+ public void setDeviceCategory(String deviceCategory) {
+ this.deviceCategory = deviceCategory;
+ }
+
+ public ClientInfo osName(String osName) {
+ this.osName = osName;
+ return this;
+ }
+
+ /**
+ * Device system version.
+ * @return osName
+ */
+ @ApiModelProperty(value = "Device system version.")
+
+
+ public String getOsName() {
+ return osName;
+ }
+
+ public void setOsName(String osName) {
+ this.osName = osName;
+ }
+
+ public ClientInfo ip(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ /**
+ * IP Address.
+ * @return ip
+ */
+ @ApiModelProperty(value = "IP Address.")
+
+
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+ public ClientInfo ipv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ return this;
+ }
+
+ public ClientInfo addIpv6ListItem(String ipv6ListItem) {
+ if (this.ipv6List == null) {
+ this.ipv6List = new ArrayList<>();
+ }
+ this.ipv6List.add(ipv6ListItem);
+ return this;
+ }
+
+ /**
+ * IPv6 Address.
+ * @return ipv6List
+ */
+ @ApiModelProperty(value = "IPv6 Address.")
+
+
+ public List getIpv6List() {
+ return ipv6List;
+ }
+
+ public void setIpv6List(List ipv6List) {
+ this.ipv6List = ipv6List;
+ }
+
+ public ClientInfo connectType(Integer connectType) {
+ this.connectType = connectType;
+ return this;
+ }
+
+ /**
+ * Connect type should be a value as follows: 0: wireless guest; 1: wireless user; 2: wired user.
+ * @return connectType
+ */
+ @ApiModelProperty(value = "Connect type should be a value as follows: 0: wireless guest; 1: wireless user; 2: wired user.")
+
+
+ public Integer getConnectType() {
+ return connectType;
+ }
+
+ public void setConnectType(Integer connectType) {
+ this.connectType = connectType;
+ }
+
+ public ClientInfo connectDevType(String connectDevType) {
+ this.connectDevType = connectDevType;
+ return this;
+ }
+
+ /**
+ * connect device type should be a value as follows: ap, switch, gateway.
+ * @return connectDevType
+ */
+ @ApiModelProperty(value = "connect device type should be a value as follows: ap, switch, gateway.")
+
+
+ public String getConnectDevType() {
+ return connectDevType;
+ }
+
+ public void setConnectDevType(String connectDevType) {
+ this.connectDevType = connectDevType;
+ }
+
+ public ClientInfo connectedToWirelessRouter(Boolean connectedToWirelessRouter) {
+ this.connectedToWirelessRouter = connectedToWirelessRouter;
+ return this;
+ }
+
+ /**
+ * true: Client is connecting to a wireless router.
+ * @return connectedToWirelessRouter
+ */
+ @ApiModelProperty(value = "true: Client is connecting to a wireless router.")
+
+
+ public Boolean getConnectedToWirelessRouter() {
+ return connectedToWirelessRouter;
+ }
+
+ public void setConnectedToWirelessRouter(Boolean connectedToWirelessRouter) {
+ this.connectedToWirelessRouter = connectedToWirelessRouter;
+ }
+
+ public ClientInfo wireless(Boolean wireless) {
+ this.wireless = wireless;
+ return this;
+ }
+
+ /**
+ * true: Wireless device (connectDevType=ap); false: Not wireless device(connectDevType=switch or gateway).
+ * @return wireless
+ */
+ @ApiModelProperty(value = "true: Wireless device (connectDevType=ap); false: Not wireless device(connectDevType=switch or gateway).")
+
+
+ public Boolean getWireless() {
+ return wireless;
+ }
+
+ public void setWireless(Boolean wireless) {
+ this.wireless = wireless;
+ }
+
+ public ClientInfo ssid(String ssid) {
+ this.ssid = ssid;
+ return this;
+ }
+
+ /**
+ * (Wireless) SSID name.
+ * @return ssid
+ */
+ @ApiModelProperty(value = "(Wireless) SSID name.")
+
+
+ public String getSsid() {
+ return ssid;
+ }
+
+ public void setSsid(String ssid) {
+ this.ssid = ssid;
+ }
+
+ public ClientInfo signalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength percentage should be within the range of 0-100.
+ * @return signalLevel
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength percentage should be within the range of 0-100.")
+
+
+ public Integer getSignalLevel() {
+ return signalLevel;
+ }
+
+ public void setSignalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ }
+
+ public ClientInfo healthScore(Integer healthScore) {
+ this.healthScore = healthScore;
+ return this;
+ }
+
+ /**
+ * 1~3: poor; 4~7: fair; 0: no data; 8~10 good.
+ * @return healthScore
+ */
+ @ApiModelProperty(value = "1~3: poor; 4~7: fair; 0: no data; 8~10 good.")
+
+
+ public Integer getHealthScore() {
+ return healthScore;
+ }
+
+ public void setHealthScore(Integer healthScore) {
+ this.healthScore = healthScore;
+ }
+
+ public ClientInfo signalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength level should be within the range of 0-5.
+ * @return signalRank
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength level should be within the range of 0-5.")
+
+
+ public Integer getSignalRank() {
+ return signalRank;
+ }
+
+ public void setSignalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ }
+
+ public ClientInfo wifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ return this;
+ }
+
+ /**
+ * (Wireless) Wifi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg; 8: 11beg; 9: 11bea.
+ * @return wifiMode
+ */
+ @ApiModelProperty(value = "(Wireless) Wifi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg; 8: 11beg; 9: 11bea.")
+
+
+ public Integer getWifiMode() {
+ return wifiMode;
+ }
+
+ public void setWifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ }
+
+ public ClientInfo apName(String apName) {
+ this.apName = apName;
+ return this;
+ }
+
+ /**
+ * (Wireless) AP Name.
+ * @return apName
+ */
+ @ApiModelProperty(value = "(Wireless) AP Name.")
+
+
+ public String getApName() {
+ return apName;
+ }
+
+ public void setApName(String apName) {
+ this.apName = apName;
+ }
+
+ public ClientInfo apMac(String apMac) {
+ this.apMac = apMac;
+ return this;
+ }
+
+ /**
+ * (Wireless) AP MAC Address.
+ * @return apMac
+ */
+ @ApiModelProperty(value = "(Wireless) AP MAC Address.")
+
+
+ public String getApMac() {
+ return apMac;
+ }
+
+ public void setApMac(String apMac) {
+ this.apMac = apMac;
+ }
+
+ public ClientInfo radioId(Integer radioId) {
+ this.radioId = radioId;
+ return this;
+ }
+
+ /**
+ * (Wireless) Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.
+ * @return radioId
+ */
+ @ApiModelProperty(value = "(Wireless) Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.")
+
+
+ public Integer getRadioId() {
+ return radioId;
+ }
+
+ public void setRadioId(Integer radioId) {
+ this.radioId = radioId;
+ }
+
+ public ClientInfo channel(Integer channel) {
+ this.channel = channel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Actual channel.
+ * @return channel
+ */
+ @ApiModelProperty(value = "(Wireless) Actual channel.")
+
+
+ public Integer getChannel() {
+ return channel;
+ }
+
+ public void setChannel(Integer channel) {
+ this.channel = channel;
+ }
+
+ public ClientInfo rxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Uplink negotiation rate (Kbit/s).
+ * @return rxRate
+ */
+ @ApiModelProperty(value = "(Wireless) Uplink negotiation rate (Kbit/s).")
+
+
+ public Long getRxRate() {
+ return rxRate;
+ }
+
+ public void setRxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ }
+
+ public ClientInfo txRate(Long txRate) {
+ this.txRate = txRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Downlink negotiation rate (Kbit/s).
+ * @return txRate
+ */
+ @ApiModelProperty(value = "(Wireless) Downlink negotiation rate (Kbit/s).")
+
+
+ public Long getTxRate() {
+ return txRate;
+ }
+
+ public void setTxRate(Long txRate) {
+ this.txRate = txRate;
+ }
+
+ public ClientInfo powerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ return this;
+ }
+
+ /**
+ * (Wireless) true: Power save mode enabled.
+ * @return powerSave
+ */
+ @ApiModelProperty(value = "(Wireless) true: Power save mode enabled.")
+
+
+ public Boolean getPowerSave() {
+ return powerSave;
+ }
+
+ public void setPowerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ }
+
+ public ClientInfo rssi(Integer rssi) {
+ this.rssi = rssi;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength, unit: dBm.
+ * @return rssi
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength, unit: dBm.")
+
+
+ public Integer getRssi() {
+ return rssi;
+ }
+
+ public void setRssi(Integer rssi) {
+ this.rssi = rssi;
+ }
+
+ public ClientInfo snr(Integer snr) {
+ this.snr = snr;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal Noise Ratio.
+ * @return snr
+ */
+ @ApiModelProperty(value = "(Wireless) Signal Noise Ratio.")
+
+
+ public Integer getSnr() {
+ return snr;
+ }
+
+ public void setSnr(Integer snr) {
+ this.snr = snr;
+ }
+
+ public ClientInfo switchMac(String switchMac) {
+ this.switchMac = switchMac;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=switch) Switch MAC address.
+ * @return switchMac
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=switch) Switch MAC address.")
+
+
+ public String getSwitchMac() {
+ return switchMac;
+ }
+
+ public void setSwitchMac(String switchMac) {
+ this.switchMac = switchMac;
+ }
+
+ public ClientInfo switchName(String switchName) {
+ this.switchName = switchName;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=switch) Switch name.
+ * @return switchName
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=switch) Switch name.")
+
+
+ public String getSwitchName() {
+ return switchName;
+ }
+
+ public void setSwitchName(String switchName) {
+ this.switchName = switchName;
+ }
+
+ public ClientInfo gatewayMac(String gatewayMac) {
+ this.gatewayMac = gatewayMac;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=gateway) Gateway MAC Address.
+ * @return gatewayMac
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=gateway) Gateway MAC Address.")
+
+
+ public String getGatewayMac() {
+ return gatewayMac;
+ }
+
+ public void setGatewayMac(String gatewayMac) {
+ this.gatewayMac = gatewayMac;
+ }
+
+ public ClientInfo gatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ return this;
+ }
+
+ /**
+ * (Wired, connectDevType=gateway) Gateway name.
+ * @return gatewayName
+ */
+ @ApiModelProperty(value = "(Wired, connectDevType=gateway) Gateway name.")
+
+
+ public String getGatewayName() {
+ return gatewayName;
+ }
+
+ public void setGatewayName(String gatewayName) {
+ this.gatewayName = gatewayName;
+ }
+
+ public ClientInfo vid(Integer vid) {
+ this.vid = vid;
+ return this;
+ }
+
+ /**
+ * (Wired) vlan.
+ * @return vid
+ */
+ @ApiModelProperty(value = "(Wired) vlan.")
+
+
+ public Integer getVid() {
+ return vid;
+ }
+
+ public void setVid(Integer vid) {
+ this.vid = vid;
+ }
+
+ public ClientInfo networkName(String networkName) {
+ this.networkName = networkName;
+ return this;
+ }
+
+ /**
+ * (Wired) Network name.
+ * @return networkName
+ */
+ @ApiModelProperty(value = "(Wired) Network name.")
+
+
+ public String getNetworkName() {
+ return networkName;
+ }
+
+ public void setNetworkName(String networkName) {
+ this.networkName = networkName;
+ }
+
+ public ClientInfo dot1xIdentity(String dot1xIdentity) {
+ this.dot1xIdentity = dot1xIdentity;
+ return this;
+ }
+
+ /**
+ * (Wired) 802.1x authentication identity.
+ * @return dot1xIdentity
+ */
+ @ApiModelProperty(value = "(Wired) 802.1x authentication identity.")
+
+
+ public String getDot1xIdentity() {
+ return dot1xIdentity;
+ }
+
+ public void setDot1xIdentity(String dot1xIdentity) {
+ this.dot1xIdentity = dot1xIdentity;
+ }
+
+ public ClientInfo dot1xVlan(Integer dot1xVlan) {
+ this.dot1xVlan = dot1xVlan;
+ return this;
+ }
+
+ /**
+ * (Wired) Network name corresponding to the VLAN obtained by 802.1x D-VLAN.
+ * @return dot1xVlan
+ */
+ @ApiModelProperty(value = "(Wired) Network name corresponding to the VLAN obtained by 802.1x D-VLAN.")
+
+
+ public Integer getDot1xVlan() {
+ return dot1xVlan;
+ }
+
+ public void setDot1xVlan(Integer dot1xVlan) {
+ this.dot1xVlan = dot1xVlan;
+ }
+
+ public ClientInfo port(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * (Wired) Port ID.
+ * @return port
+ */
+ @ApiModelProperty(value = "(Wired) Port ID.")
+
+
+ public Integer getPort() {
+ return port;
+ }
+
+ public void setPort(Integer port) {
+ this.port = port;
+ }
+
+ public ClientInfo lagId(Integer lagId) {
+ this.lagId = lagId;
+ return this;
+ }
+
+ /**
+ * (Wired) LAG ID. Exists only when the client is connected to the LAG.
+ * @return lagId
+ */
+ @ApiModelProperty(value = "(Wired) LAG ID. Exists only when the client is connected to the LAG.")
+
+
+ public Integer getLagId() {
+ return lagId;
+ }
+
+ public void setLagId(Integer lagId) {
+ this.lagId = lagId;
+ }
+
+ public ClientInfo activity(Long activity) {
+ this.activity = activity;
+ return this;
+ }
+
+ /**
+ * Real-time downlink rate (Byte/s).
+ * @return activity
+ */
+ @ApiModelProperty(value = "Real-time downlink rate (Byte/s).")
+
+
+ public Long getActivity() {
+ return activity;
+ }
+
+ public void setActivity(Long activity) {
+ this.activity = activity;
+ }
+
+ public ClientInfo trafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ return this;
+ }
+
+ /**
+ * Downstream traffic (Byte).
+ * @return trafficDown
+ */
+ @ApiModelProperty(value = "Downstream traffic (Byte).")
+
+
+ public Long getTrafficDown() {
+ return trafficDown;
+ }
+
+ public void setTrafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ }
+
+ public ClientInfo trafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ return this;
+ }
+
+ /**
+ * Upstream traffic (Byte).
+ * @return trafficUp
+ */
+ @ApiModelProperty(value = "Upstream traffic (Byte).")
+
+
+ public Long getTrafficUp() {
+ return trafficUp;
+ }
+
+ public void setTrafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ }
+
+ public ClientInfo uptime(Long uptime) {
+ this.uptime = uptime;
+ return this;
+ }
+
+ /**
+ * Up time (unit: s).
+ * @return uptime
+ */
+ @ApiModelProperty(value = "Up time (unit: s).")
+
+
+ public Long getUptime() {
+ return uptime;
+ }
+
+ public void setUptime(Long uptime) {
+ this.uptime = uptime;
+ }
+
+ public ClientInfo lastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ return this;
+ }
+
+ /**
+ * Last found time, timestamp (ms).
+ * @return lastSeen
+ */
+ @ApiModelProperty(value = "Last found time, timestamp (ms).")
+
+
+ public Long getLastSeen() {
+ return lastSeen;
+ }
+
+ public void setLastSeen(Long lastSeen) {
+ this.lastSeen = lastSeen;
+ }
+
+ public ClientInfo authStatus(Integer authStatus) {
+ this.authStatus = authStatus;
+ return this;
+ }
+
+ /**
+ * Authentication status should be a value as follows: 0: CONNECTED // Access without any authentication method; 1: PENDING // Access to Portal, but authentication failed; 2: AUTHORIZED // Pass through portal, pass other authentication without portal; 3: AUTH-FREE // No portal authentication required.
+ * @return authStatus
+ */
+ @ApiModelProperty(value = "Authentication status should be a value as follows: 0: CONNECTED // Access without any authentication method; 1: PENDING // Access to Portal, but authentication failed; 2: AUTHORIZED // Pass through portal, pass other authentication without portal; 3: AUTH-FREE // No portal authentication required.")
+
+
+ public Integer getAuthStatus() {
+ return authStatus;
+ }
+
+ public void setAuthStatus(Integer authStatus) {
+ this.authStatus = authStatus;
+ }
+
+ public ClientInfo blocked(Boolean blocked) {
+ this.blocked = blocked;
+ return this;
+ }
+
+ /**
+ * Whether the client is blocked.
+ * @return blocked
+ */
+ @ApiModelProperty(value = "Whether the client is blocked.")
+
+
+ public Boolean getBlocked() {
+ return blocked;
+ }
+
+ public void setBlocked(Boolean blocked) {
+ this.blocked = blocked;
+ }
+
+ public ClientInfo guest(Boolean guest) {
+ this.guest = guest;
+ return this;
+ }
+
+ /**
+ * (Wireless) Whether it is Guest (used to display the wireless Guest client icon).
+ * @return guest
+ */
+ @ApiModelProperty(value = "(Wireless) Whether it is Guest (used to display the wireless Guest client icon).")
+
+
+ public Boolean getGuest() {
+ return guest;
+ }
+
+ public void setGuest(Boolean guest) {
+ this.guest = guest;
+ }
+
+ public ClientInfo active(Boolean active) {
+ this.active = active;
+ return this;
+ }
+
+ /**
+ * Whether the client is online.
+ * @return active
+ */
+ @ApiModelProperty(value = "Whether the client is online.")
+
+
+ public Boolean getActive() {
+ return active;
+ }
+
+ public void setActive(Boolean active) {
+ this.active = active;
+ }
+
+ public ClientInfo manager(Boolean manager) {
+ this.manager = manager;
+ return this;
+ }
+
+ /**
+ * Whether it is the client currently being managed.
+ * @return manager
+ */
+ @ApiModelProperty(value = "Whether it is the client currently being managed.")
+
+
+ public Boolean getManager() {
+ return manager;
+ }
+
+ public void setManager(Boolean manager) {
+ this.manager = manager;
+ }
+
+ public ClientInfo ipSetting(ClientIpSetting ipSetting) {
+ this.ipSetting = ipSetting;
+ return this;
+ }
+
+ /**
+ * Get ipSetting
+ * @return ipSetting
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientIpSetting getIpSetting() {
+ return ipSetting;
+ }
+
+ public void setIpSetting(ClientIpSetting ipSetting) {
+ this.ipSetting = ipSetting;
+ }
+
+ public ClientInfo downPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ return this;
+ }
+
+ /**
+ * Number of downstream packets.
+ * @return downPacket
+ */
+ @ApiModelProperty(value = "Number of downstream packets.")
+
+
+ public Long getDownPacket() {
+ return downPacket;
+ }
+
+ public void setDownPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ }
+
+ public ClientInfo upPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ return this;
+ }
+
+ /**
+ * Number of upstream packets.
+ * @return upPacket
+ */
+ @ApiModelProperty(value = "Number of upstream packets.")
+
+
+ public Long getUpPacket() {
+ return upPacket;
+ }
+
+ public void setUpPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ }
+
+ public ClientInfo rateLimit(ClientRateLimitSetting rateLimit) {
+ this.rateLimit = rateLimit;
+ return this;
+ }
+
+ /**
+ * Get rateLimit
+ * @return rateLimit
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientRateLimitSetting getRateLimit() {
+ return rateLimit;
+ }
+
+ public void setRateLimit(ClientRateLimitSetting rateLimit) {
+ this.rateLimit = rateLimit;
+ }
+
+ public ClientInfo clientLockToApSetting(ClientLockToApSetting clientLockToApSetting) {
+ this.clientLockToApSetting = clientLockToApSetting;
+ return this;
+ }
+
+ /**
+ * Get clientLockToApSetting
+ * @return clientLockToApSetting
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientLockToApSetting getClientLockToApSetting() {
+ return clientLockToApSetting;
+ }
+
+ public void setClientLockToApSetting(ClientLockToApSetting clientLockToApSetting) {
+ this.clientLockToApSetting = clientLockToApSetting;
+ }
+
+ public ClientInfo multiLink(List multiLink) {
+ this.multiLink = multiLink;
+ return this;
+ }
+
+ public ClientInfo addMultiLinkItem(ClientMultifrequencyInfo multiLinkItem) {
+ if (this.multiLink == null) {
+ this.multiLink = new ArrayList<>();
+ }
+ this.multiLink.add(multiLinkItem);
+ return this;
+ }
+
+ /**
+ * (Wireless) Client multifrequency info list.
+ * @return multiLink
+ */
+ @ApiModelProperty(value = "(Wireless) Client multifrequency info list.")
+
+ @Valid
+
+ public List getMultiLink() {
+ return multiLink;
+ }
+
+ public void setMultiLink(List multiLink) {
+ this.multiLink = multiLink;
+ }
+
+ public ClientInfo unit(Integer unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Unit ID.
+ * @return unit
+ */
+ @ApiModelProperty(value = "Unit ID.")
+
+
+ public Integer getUnit() {
+ return unit;
+ }
+
+ public void setUnit(Integer unit) {
+ this.unit = unit;
+ }
+
+ public ClientInfo standardPort(String standardPort) {
+ this.standardPort = standardPort;
+ return this;
+ }
+
+ /**
+ * Standard port.
+ * @return standardPort
+ */
+ @ApiModelProperty(value = "Standard port.")
+
+
+ public String getStandardPort() {
+ return standardPort;
+ }
+
+ public void setStandardPort(String standardPort) {
+ this.standardPort = standardPort;
+ }
+
+ public ClientInfo systemName(String systemName) {
+ this.systemName = systemName;
+ return this;
+ }
+
+ /**
+ * Device system name.
+ * @return systemName
+ */
+ @ApiModelProperty(value = "Device system name.")
+
+
+ public String getSystemName() {
+ return systemName;
+ }
+
+ public void setSystemName(String systemName) {
+ this.systemName = systemName;
+ }
+
+ public ClientInfo description(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Device description.
+ * @return description
+ */
+ @ApiModelProperty(value = "Device description.")
+
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ClientInfo capabilities(List capabilities) {
+ this.capabilities = capabilities;
+ return this;
+ }
+
+ public ClientInfo addCapabilitiesItem(String capabilitiesItem) {
+ if (this.capabilities == null) {
+ this.capabilities = new ArrayList<>();
+ }
+ this.capabilities.add(capabilitiesItem);
+ return this;
+ }
+
+ /**
+ * One or more of the following values: Station、DOCSIS cable device、Telephone、Router、WLAN access point、Bridge、Repeater、other.
+ * @return capabilities
+ */
+ @ApiModelProperty(value = "One or more of the following values: Station、DOCSIS cable device、Telephone、Router、WLAN access point、Bridge、Repeater、other.")
+
+
+ public List getCapabilities() {
+ return capabilities;
+ }
+
+ public void setCapabilities(List capabilities) {
+ this.capabilities = capabilities;
+ }
+
+ public ClientInfo blockDisable(Boolean blockDisable) {
+ this.blockDisable = blockDisable;
+ return this;
+ }
+
+ /**
+ * Block client disabled, default value: false.
+ * @return blockDisable
+ */
+ @ApiModelProperty(value = "Block client disabled, default value: false.")
+
+
+ public Boolean getBlockDisable() {
+ return blockDisable;
+ }
+
+ public void setBlockDisable(Boolean blockDisable) {
+ this.blockDisable = blockDisable;
+ }
+
+ public ClientInfo dhcpLeaseTime(Long dhcpLeaseTime) {
+ this.dhcpLeaseTime = dhcpLeaseTime;
+ return this;
+ }
+
+ /**
+ * DHCP lease time, unit seconds
+ * @return dhcpLeaseTime
+ */
+ @ApiModelProperty(value = "DHCP lease time, unit seconds")
+
+
+ public Long getDhcpLeaseTime() {
+ return dhcpLeaseTime;
+ }
+
+ public void setDhcpLeaseTime(Long dhcpLeaseTime) {
+ this.dhcpLeaseTime = dhcpLeaseTime;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientInfo clientInfo = (ClientInfo) o;
+ return Objects.equals(this.id, clientInfo.id) &&
+ Objects.equals(this.mac, clientInfo.mac) &&
+ Objects.equals(this.name, clientInfo.name) &&
+ Objects.equals(this.hostName, clientInfo.hostName) &&
+ Objects.equals(this.vendor, clientInfo.vendor) &&
+ Objects.equals(this.deviceType, clientInfo.deviceType) &&
+ Objects.equals(this.deviceCategory, clientInfo.deviceCategory) &&
+ Objects.equals(this.osName, clientInfo.osName) &&
+ Objects.equals(this.ip, clientInfo.ip) &&
+ Objects.equals(this.ipv6List, clientInfo.ipv6List) &&
+ Objects.equals(this.connectType, clientInfo.connectType) &&
+ Objects.equals(this.connectDevType, clientInfo.connectDevType) &&
+ Objects.equals(this.connectedToWirelessRouter, clientInfo.connectedToWirelessRouter) &&
+ Objects.equals(this.wireless, clientInfo.wireless) &&
+ Objects.equals(this.ssid, clientInfo.ssid) &&
+ Objects.equals(this.signalLevel, clientInfo.signalLevel) &&
+ Objects.equals(this.healthScore, clientInfo.healthScore) &&
+ Objects.equals(this.signalRank, clientInfo.signalRank) &&
+ Objects.equals(this.wifiMode, clientInfo.wifiMode) &&
+ Objects.equals(this.apName, clientInfo.apName) &&
+ Objects.equals(this.apMac, clientInfo.apMac) &&
+ Objects.equals(this.radioId, clientInfo.radioId) &&
+ Objects.equals(this.channel, clientInfo.channel) &&
+ Objects.equals(this.rxRate, clientInfo.rxRate) &&
+ Objects.equals(this.txRate, clientInfo.txRate) &&
+ Objects.equals(this.powerSave, clientInfo.powerSave) &&
+ Objects.equals(this.rssi, clientInfo.rssi) &&
+ Objects.equals(this.snr, clientInfo.snr) &&
+ Objects.equals(this.switchMac, clientInfo.switchMac) &&
+ Objects.equals(this.switchName, clientInfo.switchName) &&
+ Objects.equals(this.gatewayMac, clientInfo.gatewayMac) &&
+ Objects.equals(this.gatewayName, clientInfo.gatewayName) &&
+ Objects.equals(this.vid, clientInfo.vid) &&
+ Objects.equals(this.networkName, clientInfo.networkName) &&
+ Objects.equals(this.dot1xIdentity, clientInfo.dot1xIdentity) &&
+ Objects.equals(this.dot1xVlan, clientInfo.dot1xVlan) &&
+ Objects.equals(this.port, clientInfo.port) &&
+ Objects.equals(this.lagId, clientInfo.lagId) &&
+ Objects.equals(this.activity, clientInfo.activity) &&
+ Objects.equals(this.trafficDown, clientInfo.trafficDown) &&
+ Objects.equals(this.trafficUp, clientInfo.trafficUp) &&
+ Objects.equals(this.uptime, clientInfo.uptime) &&
+ Objects.equals(this.lastSeen, clientInfo.lastSeen) &&
+ Objects.equals(this.authStatus, clientInfo.authStatus) &&
+ Objects.equals(this.blocked, clientInfo.blocked) &&
+ Objects.equals(this.guest, clientInfo.guest) &&
+ Objects.equals(this.active, clientInfo.active) &&
+ Objects.equals(this.manager, clientInfo.manager) &&
+ Objects.equals(this.ipSetting, clientInfo.ipSetting) &&
+ Objects.equals(this.downPacket, clientInfo.downPacket) &&
+ Objects.equals(this.upPacket, clientInfo.upPacket) &&
+ Objects.equals(this.rateLimit, clientInfo.rateLimit) &&
+ Objects.equals(this.clientLockToApSetting, clientInfo.clientLockToApSetting) &&
+ Objects.equals(this.multiLink, clientInfo.multiLink) &&
+ Objects.equals(this.unit, clientInfo.unit) &&
+ Objects.equals(this.standardPort, clientInfo.standardPort) &&
+ Objects.equals(this.systemName, clientInfo.systemName) &&
+ Objects.equals(this.description, clientInfo.description) &&
+ Objects.equals(this.capabilities, clientInfo.capabilities) &&
+ Objects.equals(this.blockDisable, clientInfo.blockDisable) &&
+ Objects.equals(this.dhcpLeaseTime, clientInfo.dhcpLeaseTime);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, mac, name, hostName, vendor, deviceType, deviceCategory, osName, ip, ipv6List, connectType, connectDevType, connectedToWirelessRouter, wireless, ssid, signalLevel, healthScore, signalRank, wifiMode, apName, apMac, radioId, channel, rxRate, txRate, powerSave, rssi, snr, switchMac, switchName, gatewayMac, gatewayName, vid, networkName, dot1xIdentity, dot1xVlan, port, lagId, activity, trafficDown, trafficUp, uptime, lastSeen, authStatus, blocked, guest, active, manager, ipSetting, downPacket, upPacket, rateLimit, clientLockToApSetting, multiLink, unit, standardPort, systemName, description, capabilities, blockDisable, dhcpLeaseTime);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientInfo {\n");
+
+ sb.append(" id: ").append(toIndentedString(id)).append("\n");
+ sb.append(" mac: ").append(toIndentedString(mac)).append("\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" hostName: ").append(toIndentedString(hostName)).append("\n");
+ sb.append(" vendor: ").append(toIndentedString(vendor)).append("\n");
+ sb.append(" deviceType: ").append(toIndentedString(deviceType)).append("\n");
+ sb.append(" deviceCategory: ").append(toIndentedString(deviceCategory)).append("\n");
+ sb.append(" osName: ").append(toIndentedString(osName)).append("\n");
+ sb.append(" ip: ").append(toIndentedString(ip)).append("\n");
+ sb.append(" ipv6List: ").append(toIndentedString(ipv6List)).append("\n");
+ sb.append(" connectType: ").append(toIndentedString(connectType)).append("\n");
+ sb.append(" connectDevType: ").append(toIndentedString(connectDevType)).append("\n");
+ sb.append(" connectedToWirelessRouter: ").append(toIndentedString(connectedToWirelessRouter)).append("\n");
+ sb.append(" wireless: ").append(toIndentedString(wireless)).append("\n");
+ sb.append(" ssid: ").append(toIndentedString(ssid)).append("\n");
+ sb.append(" signalLevel: ").append(toIndentedString(signalLevel)).append("\n");
+ sb.append(" healthScore: ").append(toIndentedString(healthScore)).append("\n");
+ sb.append(" signalRank: ").append(toIndentedString(signalRank)).append("\n");
+ sb.append(" wifiMode: ").append(toIndentedString(wifiMode)).append("\n");
+ sb.append(" apName: ").append(toIndentedString(apName)).append("\n");
+ sb.append(" apMac: ").append(toIndentedString(apMac)).append("\n");
+ sb.append(" radioId: ").append(toIndentedString(radioId)).append("\n");
+ sb.append(" channel: ").append(toIndentedString(channel)).append("\n");
+ sb.append(" rxRate: ").append(toIndentedString(rxRate)).append("\n");
+ sb.append(" txRate: ").append(toIndentedString(txRate)).append("\n");
+ sb.append(" powerSave: ").append(toIndentedString(powerSave)).append("\n");
+ sb.append(" rssi: ").append(toIndentedString(rssi)).append("\n");
+ sb.append(" snr: ").append(toIndentedString(snr)).append("\n");
+ sb.append(" switchMac: ").append(toIndentedString(switchMac)).append("\n");
+ sb.append(" switchName: ").append(toIndentedString(switchName)).append("\n");
+ sb.append(" gatewayMac: ").append(toIndentedString(gatewayMac)).append("\n");
+ sb.append(" gatewayName: ").append(toIndentedString(gatewayName)).append("\n");
+ sb.append(" vid: ").append(toIndentedString(vid)).append("\n");
+ sb.append(" networkName: ").append(toIndentedString(networkName)).append("\n");
+ sb.append(" dot1xIdentity: ").append(toIndentedString(dot1xIdentity)).append("\n");
+ sb.append(" dot1xVlan: ").append(toIndentedString(dot1xVlan)).append("\n");
+ sb.append(" port: ").append(toIndentedString(port)).append("\n");
+ sb.append(" lagId: ").append(toIndentedString(lagId)).append("\n");
+ sb.append(" activity: ").append(toIndentedString(activity)).append("\n");
+ sb.append(" trafficDown: ").append(toIndentedString(trafficDown)).append("\n");
+ sb.append(" trafficUp: ").append(toIndentedString(trafficUp)).append("\n");
+ sb.append(" uptime: ").append(toIndentedString(uptime)).append("\n");
+ sb.append(" lastSeen: ").append(toIndentedString(lastSeen)).append("\n");
+ sb.append(" authStatus: ").append(toIndentedString(authStatus)).append("\n");
+ sb.append(" blocked: ").append(toIndentedString(blocked)).append("\n");
+ sb.append(" guest: ").append(toIndentedString(guest)).append("\n");
+ sb.append(" active: ").append(toIndentedString(active)).append("\n");
+ sb.append(" manager: ").append(toIndentedString(manager)).append("\n");
+ sb.append(" ipSetting: ").append(toIndentedString(ipSetting)).append("\n");
+ sb.append(" downPacket: ").append(toIndentedString(downPacket)).append("\n");
+ sb.append(" upPacket: ").append(toIndentedString(upPacket)).append("\n");
+ sb.append(" rateLimit: ").append(toIndentedString(rateLimit)).append("\n");
+ sb.append(" clientLockToApSetting: ").append(toIndentedString(clientLockToApSetting)).append("\n");
+ sb.append(" multiLink: ").append(toIndentedString(multiLink)).append("\n");
+ sb.append(" unit: ").append(toIndentedString(unit)).append("\n");
+ sb.append(" standardPort: ").append(toIndentedString(standardPort)).append("\n");
+ sb.append(" systemName: ").append(toIndentedString(systemName)).append("\n");
+ sb.append(" description: ").append(toIndentedString(description)).append("\n");
+ sb.append(" capabilities: ").append(toIndentedString(capabilities)).append("\n");
+ sb.append(" blockDisable: ").append(toIndentedString(blockDisable)).append("\n");
+ sb.append(" dhcpLeaseTime: ").append(toIndentedString(dhcpLeaseTime)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientIpSetting.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientIpSetting.java
new file mode 100644
index 0000000..4960a84
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientIpSetting.java
@@ -0,0 +1,131 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.Objects;
+
+/**
+ * Client IP setting.
+ */
+@ApiModel(description = "Client IP setting.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientIpSetting {
+ @JsonProperty("useFixedAddr")
+ private Boolean useFixedAddr;
+
+ @JsonProperty("netId")
+ private String netId;
+
+ @JsonProperty("ip")
+ private String ip;
+
+ public ClientIpSetting useFixedAddr(Boolean useFixedAddr) {
+ this.useFixedAddr = useFixedAddr;
+ return this;
+ }
+
+ /**
+ * Whether to use the specified IP.
+ * @return useFixedAddr
+ */
+ @ApiModelProperty(required = true, value = "Whether to use the specified IP.")
+ @NotNull
+
+
+ public Boolean getUseFixedAddr() {
+ return useFixedAddr;
+ }
+
+ public void setUseFixedAddr(Boolean useFixedAddr) {
+ this.useFixedAddr = useFixedAddr;
+ }
+
+ public ClientIpSetting netId(String netId) {
+ this.netId = netId;
+ return this;
+ }
+
+ /**
+ * LAN network ID.
+ * @return netId
+ */
+ @ApiModelProperty(value = "LAN network ID.")
+
+
+ public String getNetId() {
+ return netId;
+ }
+
+ public void setNetId(String netId) {
+ this.netId = netId;
+ }
+
+ public ClientIpSetting ip(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ /**
+ * Client IP.
+ * @return ip
+ */
+ @ApiModelProperty(value = "Client IP.")
+
+@Pattern(regexp="\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b")
+ public String getIp() {
+ return ip;
+ }
+
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientIpSetting clientIpSetting = (ClientIpSetting) o;
+ return Objects.equals(this.useFixedAddr, clientIpSetting.useFixedAddr) &&
+ Objects.equals(this.netId, clientIpSetting.netId) &&
+ Objects.equals(this.ip, clientIpSetting.ip);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(useFixedAddr, netId, ip);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientIpSetting {\n");
+
+ sb.append(" useFixedAddr: ").append(toIndentedString(useFixedAddr)).append("\n");
+ sb.append(" netId: ").append(toIndentedString(netId)).append("\n");
+ sb.append(" ip: ").append(toIndentedString(ip)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting.java
new file mode 100644
index 0000000..549e7f5
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting.java
@@ -0,0 +1,116 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Client lock to ap setting.
+ */
+@ApiModel(description = "Client lock to ap setting.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientLockToApSetting {
+ @JsonProperty("enable")
+ private Boolean enable;
+
+ @JsonProperty("aps")
+ @Valid
+ private List aps = null;
+
+ public ClientLockToApSetting enable(Boolean enable) {
+ this.enable = enable;
+ return this;
+ }
+
+ /**
+ * Lock to AP enable.
+ * @return enable
+ */
+ @ApiModelProperty(value = "Lock to AP enable.")
+
+
+ public Boolean getEnable() {
+ return enable;
+ }
+
+ public void setEnable(Boolean enable) {
+ this.enable = enable;
+ }
+
+ public ClientLockToApSetting aps(List aps) {
+ this.aps = aps;
+ return this;
+ }
+
+ public ClientLockToApSetting addApsItem(ApBriefInfoVo apsItem) {
+ if (this.aps == null) {
+ this.aps = new ArrayList<>();
+ }
+ this.aps.add(apsItem);
+ return this;
+ }
+
+ /**
+ * AP name and MAC info list.
+ * @return aps
+ */
+ @ApiModelProperty(value = "AP name and MAC info list.")
+
+ @Valid
+
+ public List getAps() {
+ return aps;
+ }
+
+ public void setAps(List aps) {
+ this.aps = aps;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientLockToApSetting clientLockToApSetting = (ClientLockToApSetting) o;
+ return Objects.equals(this.enable, clientLockToApSetting.enable) &&
+ Objects.equals(this.aps, clientLockToApSetting.aps);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enable, aps);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientLockToApSetting {\n");
+
+ sb.append(" enable: ").append(toIndentedString(enable)).append("\n");
+ sb.append(" aps: ").append(toIndentedString(aps)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting1.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting1.java
new file mode 100644
index 0000000..969abcd
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientLockToApSetting1.java
@@ -0,0 +1,115 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ClientLockToApSetting1
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientLockToApSetting1 {
+ @JsonProperty("enable")
+ private Boolean enable;
+
+ @JsonProperty("aps")
+ @Valid
+ private List aps = null;
+
+ public ClientLockToApSetting1 enable(Boolean enable) {
+ this.enable = enable;
+ return this;
+ }
+
+ /**
+ * Lock to AP enable
+ * @return enable
+ */
+ @ApiModelProperty(required = true, value = "Lock to AP enable")
+ @NotNull
+
+
+ public Boolean getEnable() {
+ return enable;
+ }
+
+ public void setEnable(Boolean enable) {
+ this.enable = enable;
+ }
+
+ public ClientLockToApSetting1 aps(List aps) {
+ this.aps = aps;
+ return this;
+ }
+
+ public ClientLockToApSetting1 addApsItem(String apsItem) {
+ if (this.aps == null) {
+ this.aps = new ArrayList<>();
+ }
+ this.aps.add(apsItem);
+ return this;
+ }
+
+ /**
+ * AP MAC list. Use capital letters and separator, for example: AA-AA-AA-AA-AA-AA.
+ * @return aps
+ */
+ @ApiModelProperty(value = "AP MAC list. Use capital letters and separator, for example: AA-AA-AA-AA-AA-AA.")
+
+
+ public List getAps() {
+ return aps;
+ }
+
+ public void setAps(List aps) {
+ this.aps = aps;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientLockToApSetting1 clientLockToApSetting1 = (ClientLockToApSetting1) o;
+ return Objects.equals(this.enable, clientLockToApSetting1.enable) &&
+ Objects.equals(this.aps, clientLockToApSetting1.aps);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enable, aps);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientLockToApSetting1 {\n");
+
+ sb.append(" enable: ").append(toIndentedString(enable)).append("\n");
+ sb.append(" aps: ").append(toIndentedString(aps)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientMultifrequencyInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientMultifrequencyInfo.java
new file mode 100644
index 0000000..2f09619
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientMultifrequencyInfo.java
@@ -0,0 +1,453 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * (Wireless) Client multifrequency info list.
+ */
+@ApiModel(description = "(Wireless) Client multifrequency info list.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientMultifrequencyInfo {
+ @JsonProperty("radioId")
+ private Integer radioId;
+
+ @JsonProperty("wifiMode")
+ private Integer wifiMode;
+
+ @JsonProperty("channel")
+ private Integer channel;
+
+ @JsonProperty("rxRate")
+ private Long rxRate;
+
+ @JsonProperty("txRate")
+ private Long txRate;
+
+ @JsonProperty("powerSave")
+ private Boolean powerSave;
+
+ @JsonProperty("rssi")
+ private Integer rssi;
+
+ @JsonProperty("snr")
+ private Integer snr;
+
+ @JsonProperty("signalLevel")
+ private Integer signalLevel;
+
+ @JsonProperty("signalRank")
+ private Integer signalRank;
+
+ @JsonProperty("upPacket")
+ private Long upPacket;
+
+ @JsonProperty("downPacket")
+ private Long downPacket;
+
+ @JsonProperty("trafficDown")
+ private Long trafficDown;
+
+ @JsonProperty("trafficUp")
+ private Long trafficUp;
+
+ @JsonProperty("activity")
+ private Long activity;
+
+ @JsonProperty("signalLevelAndRank")
+ private Integer signalLevelAndRank;
+
+ public ClientMultifrequencyInfo radioId(Integer radioId) {
+ this.radioId = radioId;
+ return this;
+ }
+
+ /**
+ * Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.
+ * @return radioId
+ */
+ @ApiModelProperty(value = "Radio ID should be a value as follows: 0: 2.4GHz; 1: 5GHz-1; 2:5GHz-2; 3: 6GHz.")
+
+
+ public Integer getRadioId() {
+ return radioId;
+ }
+
+ public void setRadioId(Integer radioId) {
+ this.radioId = radioId;
+ }
+
+ public ClientMultifrequencyInfo wifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ return this;
+ }
+
+ /**
+ * Wi-Fi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg.
+ * @return wifiMode
+ */
+ @ApiModelProperty(value = "Wi-Fi mode should be a value as follows: 0: 11a; 1: 11b; 2: 11g; 3: 11na; 4: 11ng; 5: 11ac; 6: 11axa; 7: 11axg.")
+
+
+ public Integer getWifiMode() {
+ return wifiMode;
+ }
+
+ public void setWifiMode(Integer wifiMode) {
+ this.wifiMode = wifiMode;
+ }
+
+ public ClientMultifrequencyInfo channel(Integer channel) {
+ this.channel = channel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Actual channel.
+ * @return channel
+ */
+ @ApiModelProperty(value = "(Wireless) Actual channel.")
+
+
+ public Integer getChannel() {
+ return channel;
+ }
+
+ public void setChannel(Integer channel) {
+ this.channel = channel;
+ }
+
+ public ClientMultifrequencyInfo rxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Uplink negotiation rate (Kbit/s).
+ * @return rxRate
+ */
+ @ApiModelProperty(value = "(Wireless) Uplink negotiation rate (Kbit/s).")
+
+
+ public Long getRxRate() {
+ return rxRate;
+ }
+
+ public void setRxRate(Long rxRate) {
+ this.rxRate = rxRate;
+ }
+
+ public ClientMultifrequencyInfo txRate(Long txRate) {
+ this.txRate = txRate;
+ return this;
+ }
+
+ /**
+ * (Wireless) Downlink negotiation rate (Kbit/s).
+ * @return txRate
+ */
+ @ApiModelProperty(value = "(Wireless) Downlink negotiation rate (Kbit/s).")
+
+
+ public Long getTxRate() {
+ return txRate;
+ }
+
+ public void setTxRate(Long txRate) {
+ this.txRate = txRate;
+ }
+
+ public ClientMultifrequencyInfo powerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ return this;
+ }
+
+ /**
+ * (Wireless) true: Power save mode enabled.
+ * @return powerSave
+ */
+ @ApiModelProperty(value = "(Wireless) true: Power save mode enabled.")
+
+
+ public Boolean getPowerSave() {
+ return powerSave;
+ }
+
+ public void setPowerSave(Boolean powerSave) {
+ this.powerSave = powerSave;
+ }
+
+ public ClientMultifrequencyInfo rssi(Integer rssi) {
+ this.rssi = rssi;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength, unit: dBm.
+ * @return rssi
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength, unit: dBm.")
+
+
+ public Integer getRssi() {
+ return rssi;
+ }
+
+ public void setRssi(Integer rssi) {
+ this.rssi = rssi;
+ }
+
+ public ClientMultifrequencyInfo snr(Integer snr) {
+ this.snr = snr;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal Noise Ratio.
+ * @return snr
+ */
+ @ApiModelProperty(value = "(Wireless) Signal Noise Ratio.")
+
+
+ public Integer getSnr() {
+ return snr;
+ }
+
+ public void setSnr(Integer snr) {
+ this.snr = snr;
+ }
+
+ public ClientMultifrequencyInfo signalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength percentage should be within the range of 0-100.
+ * @return signalLevel
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength percentage should be within the range of 0-100.")
+
+
+ public Integer getSignalLevel() {
+ return signalLevel;
+ }
+
+ public void setSignalLevel(Integer signalLevel) {
+ this.signalLevel = signalLevel;
+ }
+
+ public ClientMultifrequencyInfo signalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ return this;
+ }
+
+ /**
+ * (Wireless) Signal strength level should be within the range of 0-5.
+ * @return signalRank
+ */
+ @ApiModelProperty(value = "(Wireless) Signal strength level should be within the range of 0-5.")
+
+
+ public Integer getSignalRank() {
+ return signalRank;
+ }
+
+ public void setSignalRank(Integer signalRank) {
+ this.signalRank = signalRank;
+ }
+
+ public ClientMultifrequencyInfo upPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ return this;
+ }
+
+ /**
+ * Number of upstream packets.
+ * @return upPacket
+ */
+ @ApiModelProperty(value = "Number of upstream packets.")
+
+
+ public Long getUpPacket() {
+ return upPacket;
+ }
+
+ public void setUpPacket(Long upPacket) {
+ this.upPacket = upPacket;
+ }
+
+ public ClientMultifrequencyInfo downPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ return this;
+ }
+
+ /**
+ * Number of downstream packets.
+ * @return downPacket
+ */
+ @ApiModelProperty(value = "Number of downstream packets.")
+
+
+ public Long getDownPacket() {
+ return downPacket;
+ }
+
+ public void setDownPacket(Long downPacket) {
+ this.downPacket = downPacket;
+ }
+
+ public ClientMultifrequencyInfo trafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ return this;
+ }
+
+ /**
+ * Downstream traffic (Byte).
+ * @return trafficDown
+ */
+ @ApiModelProperty(value = "Downstream traffic (Byte).")
+
+
+ public Long getTrafficDown() {
+ return trafficDown;
+ }
+
+ public void setTrafficDown(Long trafficDown) {
+ this.trafficDown = trafficDown;
+ }
+
+ public ClientMultifrequencyInfo trafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ return this;
+ }
+
+ /**
+ * Upstream traffic (Byte).
+ * @return trafficUp
+ */
+ @ApiModelProperty(value = "Upstream traffic (Byte).")
+
+
+ public Long getTrafficUp() {
+ return trafficUp;
+ }
+
+ public void setTrafficUp(Long trafficUp) {
+ this.trafficUp = trafficUp;
+ }
+
+ public ClientMultifrequencyInfo activity(Long activity) {
+ this.activity = activity;
+ return this;
+ }
+
+ /**
+ * Real-time downlink rate (Byte/s).
+ * @return activity
+ */
+ @ApiModelProperty(value = "Real-time downlink rate (Byte/s).")
+
+
+ public Long getActivity() {
+ return activity;
+ }
+
+ public void setActivity(Long activity) {
+ this.activity = activity;
+ }
+
+ public ClientMultifrequencyInfo signalLevelAndRank(Integer signalLevelAndRank) {
+ this.signalLevelAndRank = signalLevelAndRank;
+ return this;
+ }
+
+ /**
+ * Get signalLevelAndRank
+ * @return signalLevelAndRank
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getSignalLevelAndRank() {
+ return signalLevelAndRank;
+ }
+
+ public void setSignalLevelAndRank(Integer signalLevelAndRank) {
+ this.signalLevelAndRank = signalLevelAndRank;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientMultifrequencyInfo clientMultifrequencyInfo = (ClientMultifrequencyInfo) o;
+ return Objects.equals(this.radioId, clientMultifrequencyInfo.radioId) &&
+ Objects.equals(this.wifiMode, clientMultifrequencyInfo.wifiMode) &&
+ Objects.equals(this.channel, clientMultifrequencyInfo.channel) &&
+ Objects.equals(this.rxRate, clientMultifrequencyInfo.rxRate) &&
+ Objects.equals(this.txRate, clientMultifrequencyInfo.txRate) &&
+ Objects.equals(this.powerSave, clientMultifrequencyInfo.powerSave) &&
+ Objects.equals(this.rssi, clientMultifrequencyInfo.rssi) &&
+ Objects.equals(this.snr, clientMultifrequencyInfo.snr) &&
+ Objects.equals(this.signalLevel, clientMultifrequencyInfo.signalLevel) &&
+ Objects.equals(this.signalRank, clientMultifrequencyInfo.signalRank) &&
+ Objects.equals(this.upPacket, clientMultifrequencyInfo.upPacket) &&
+ Objects.equals(this.downPacket, clientMultifrequencyInfo.downPacket) &&
+ Objects.equals(this.trafficDown, clientMultifrequencyInfo.trafficDown) &&
+ Objects.equals(this.trafficUp, clientMultifrequencyInfo.trafficUp) &&
+ Objects.equals(this.activity, clientMultifrequencyInfo.activity) &&
+ Objects.equals(this.signalLevelAndRank, clientMultifrequencyInfo.signalLevelAndRank);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(radioId, wifiMode, channel, rxRate, txRate, powerSave, rssi, snr, signalLevel, signalRank, upPacket, downPacket, trafficDown, trafficUp, activity, signalLevelAndRank);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientMultifrequencyInfo {\n");
+
+ sb.append(" radioId: ").append(toIndentedString(radioId)).append("\n");
+ sb.append(" wifiMode: ").append(toIndentedString(wifiMode)).append("\n");
+ sb.append(" channel: ").append(toIndentedString(channel)).append("\n");
+ sb.append(" rxRate: ").append(toIndentedString(rxRate)).append("\n");
+ sb.append(" txRate: ").append(toIndentedString(txRate)).append("\n");
+ sb.append(" powerSave: ").append(toIndentedString(powerSave)).append("\n");
+ sb.append(" rssi: ").append(toIndentedString(rssi)).append("\n");
+ sb.append(" snr: ").append(toIndentedString(snr)).append("\n");
+ sb.append(" signalLevel: ").append(toIndentedString(signalLevel)).append("\n");
+ sb.append(" signalRank: ").append(toIndentedString(signalRank)).append("\n");
+ sb.append(" upPacket: ").append(toIndentedString(upPacket)).append("\n");
+ sb.append(" downPacket: ").append(toIndentedString(downPacket)).append("\n");
+ sb.append(" trafficDown: ").append(toIndentedString(trafficDown)).append("\n");
+ sb.append(" trafficUp: ").append(toIndentedString(trafficUp)).append("\n");
+ sb.append(" activity: ").append(toIndentedString(activity)).append("\n");
+ sb.append(" signalLevelAndRank: ").append(toIndentedString(signalLevelAndRank)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientNameSetting.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientNameSetting.java
new file mode 100644
index 0000000..b61954e
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientNameSetting.java
@@ -0,0 +1,79 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.Objects;
+
+/**
+ * ClientNameSetting
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientNameSetting {
+ @JsonProperty("name")
+ private String name;
+
+ public ClientNameSetting name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Client Name should contain 1 to 128 characters
+ * @return name
+ */
+ @ApiModelProperty(required = true, value = "Client Name should contain 1 to 128 characters")
+ @NotNull
+
+@Pattern(regexp="^$|^[^ \\+\\-\\@\\=]$|^[^ \\+\\-\\@\\=].{0,126}[^ ]$")
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientNameSetting clientNameSetting = (ClientNameSetting) o;
+ return Objects.equals(this.name, clientNameSetting.name);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientNameSetting {\n");
+
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientRateLimitSetting.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientRateLimitSetting.java
new file mode 100644
index 0000000..4e14012
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientRateLimitSetting.java
@@ -0,0 +1,130 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.Objects;
+
+/**
+ * ClientRateLimitSetting
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientRateLimitSetting {
+ @JsonProperty("mode")
+ private Integer mode;
+
+ @JsonProperty("rateLimitProfileId")
+ private String rateLimitProfileId;
+
+ @JsonProperty("customRateLimit")
+ private CustomRateLimitEntity customRateLimit;
+
+ public ClientRateLimitSetting mode(Integer mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Rate limit mode should be a value as follows:
0: Custom mode. Apply the given rate limit value to the client;
1: Rate limit profile mode. Find the corresponding rate limit file with rate limit ID and apply it to the client.
+ * @return mode
+ */
+ @ApiModelProperty(required = true, value = "Rate limit mode should be a value as follows:
0: Custom mode. Apply the given rate limit value to the client;
1: Rate limit profile mode. Find the corresponding rate limit file with rate limit ID and apply it to the client.")
+ @NotNull
+
+
+ public Integer getMode() {
+ return mode;
+ }
+
+ public void setMode(Integer mode) {
+ this.mode = mode;
+ }
+
+ public ClientRateLimitSetting rateLimitProfileId(String rateLimitProfileId) {
+ this.rateLimitProfileId = rateLimitProfileId;
+ return this;
+ }
+
+ /**
+ * Rate limit profile ID. Required when ratelimit mode is 1
+ * @return rateLimitProfileId
+ */
+ @ApiModelProperty(value = "Rate limit profile ID. Required when ratelimit mode is 1")
+
+
+ public String getRateLimitProfileId() {
+ return rateLimitProfileId;
+ }
+
+ public void setRateLimitProfileId(String rateLimitProfileId) {
+ this.rateLimitProfileId = rateLimitProfileId;
+ }
+
+ public ClientRateLimitSetting customRateLimit(CustomRateLimitEntity customRateLimit) {
+ this.customRateLimit = customRateLimit;
+ return this;
+ }
+
+ /**
+ * Get customRateLimit
+ * @return customRateLimit
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public CustomRateLimitEntity getCustomRateLimit() {
+ return customRateLimit;
+ }
+
+ public void setCustomRateLimit(CustomRateLimitEntity customRateLimit) {
+ this.customRateLimit = customRateLimit;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientRateLimitSetting clientRateLimitSetting = (ClientRateLimitSetting) o;
+ return Objects.equals(this.mode, clientRateLimitSetting.mode) &&
+ Objects.equals(this.rateLimitProfileId, clientRateLimitSetting.rateLimitProfileId) &&
+ Objects.equals(this.customRateLimit, clientRateLimitSetting.customRateLimit);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mode, rateLimitProfileId, customRateLimit);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientRateLimitSetting {\n");
+
+ sb.append(" mode: ").append(toIndentedString(mode)).append("\n");
+ sb.append(" rateLimitProfileId: ").append(toIndentedString(rateLimitProfileId)).append("\n");
+ sb.append(" customRateLimit: ").append(toIndentedString(customRateLimit)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientStatVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientStatVo.java
new file mode 100644
index 0000000..76853c8
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/ClientStatVo.java
@@ -0,0 +1,551 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * ClientStatVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class ClientStatVo {
+ @JsonProperty("total")
+ private Integer total;
+
+ @JsonProperty("wireless")
+ private Integer wireless;
+
+ @JsonProperty("wired")
+ private Integer wired;
+
+ @JsonProperty("num2g")
+ private Integer num2g;
+
+ @JsonProperty("num5g")
+ private Integer num5g;
+
+ @JsonProperty("num6g")
+ private Integer num6g;
+
+ @JsonProperty("numUser")
+ private Integer numUser;
+
+ @JsonProperty("numGuest")
+ private Integer numGuest;
+
+ @JsonProperty("numWirelessUser")
+ private Integer numWirelessUser;
+
+ @JsonProperty("numWirelessGuest")
+ private Integer numWirelessGuest;
+
+ @JsonProperty("num2gUser")
+ private Integer num2gUser;
+
+ @JsonProperty("num5gUser")
+ private Integer num5gUser;
+
+ @JsonProperty("num6gUser")
+ private Integer num6gUser;
+
+ @JsonProperty("num2gGuest")
+ private Integer num2gGuest;
+
+ @JsonProperty("num5gGuest")
+ private Integer num5gGuest;
+
+ @JsonProperty("num6gGuest")
+ private Integer num6gGuest;
+
+ @JsonProperty("poor")
+ private Integer poor;
+
+ @JsonProperty("fair")
+ private Integer fair;
+
+ @JsonProperty("noData")
+ private Integer noData;
+
+ @JsonProperty("good")
+ private Integer good;
+
+ public ClientStatVo total(Integer total) {
+ this.total = total;
+ return this;
+ }
+
+ /**
+ * Get total
+ * @return total
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getTotal() {
+ return total;
+ }
+
+ public void setTotal(Integer total) {
+ this.total = total;
+ }
+
+ public ClientStatVo wireless(Integer wireless) {
+ this.wireless = wireless;
+ return this;
+ }
+
+ /**
+ * Get wireless
+ * @return wireless
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getWireless() {
+ return wireless;
+ }
+
+ public void setWireless(Integer wireless) {
+ this.wireless = wireless;
+ }
+
+ public ClientStatVo wired(Integer wired) {
+ this.wired = wired;
+ return this;
+ }
+
+ /**
+ * Get wired
+ * @return wired
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getWired() {
+ return wired;
+ }
+
+ public void setWired(Integer wired) {
+ this.wired = wired;
+ }
+
+ public ClientStatVo num2g(Integer num2g) {
+ this.num2g = num2g;
+ return this;
+ }
+
+ /**
+ * Get num2g
+ * @return num2g
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum2g() {
+ return num2g;
+ }
+
+ public void setNum2g(Integer num2g) {
+ this.num2g = num2g;
+ }
+
+ public ClientStatVo num5g(Integer num5g) {
+ this.num5g = num5g;
+ return this;
+ }
+
+ /**
+ * Get num5g
+ * @return num5g
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum5g() {
+ return num5g;
+ }
+
+ public void setNum5g(Integer num5g) {
+ this.num5g = num5g;
+ }
+
+ public ClientStatVo num6g(Integer num6g) {
+ this.num6g = num6g;
+ return this;
+ }
+
+ /**
+ * Get num6g
+ * @return num6g
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum6g() {
+ return num6g;
+ }
+
+ public void setNum6g(Integer num6g) {
+ this.num6g = num6g;
+ }
+
+ public ClientStatVo numUser(Integer numUser) {
+ this.numUser = numUser;
+ return this;
+ }
+
+ /**
+ * Get numUser
+ * @return numUser
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNumUser() {
+ return numUser;
+ }
+
+ public void setNumUser(Integer numUser) {
+ this.numUser = numUser;
+ }
+
+ public ClientStatVo numGuest(Integer numGuest) {
+ this.numGuest = numGuest;
+ return this;
+ }
+
+ /**
+ * Get numGuest
+ * @return numGuest
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNumGuest() {
+ return numGuest;
+ }
+
+ public void setNumGuest(Integer numGuest) {
+ this.numGuest = numGuest;
+ }
+
+ public ClientStatVo numWirelessUser(Integer numWirelessUser) {
+ this.numWirelessUser = numWirelessUser;
+ return this;
+ }
+
+ /**
+ * Get numWirelessUser
+ * @return numWirelessUser
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNumWirelessUser() {
+ return numWirelessUser;
+ }
+
+ public void setNumWirelessUser(Integer numWirelessUser) {
+ this.numWirelessUser = numWirelessUser;
+ }
+
+ public ClientStatVo numWirelessGuest(Integer numWirelessGuest) {
+ this.numWirelessGuest = numWirelessGuest;
+ return this;
+ }
+
+ /**
+ * Get numWirelessGuest
+ * @return numWirelessGuest
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNumWirelessGuest() {
+ return numWirelessGuest;
+ }
+
+ public void setNumWirelessGuest(Integer numWirelessGuest) {
+ this.numWirelessGuest = numWirelessGuest;
+ }
+
+ public ClientStatVo num2gUser(Integer num2gUser) {
+ this.num2gUser = num2gUser;
+ return this;
+ }
+
+ /**
+ * Get num2gUser
+ * @return num2gUser
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum2gUser() {
+ return num2gUser;
+ }
+
+ public void setNum2gUser(Integer num2gUser) {
+ this.num2gUser = num2gUser;
+ }
+
+ public ClientStatVo num5gUser(Integer num5gUser) {
+ this.num5gUser = num5gUser;
+ return this;
+ }
+
+ /**
+ * Get num5gUser
+ * @return num5gUser
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum5gUser() {
+ return num5gUser;
+ }
+
+ public void setNum5gUser(Integer num5gUser) {
+ this.num5gUser = num5gUser;
+ }
+
+ public ClientStatVo num6gUser(Integer num6gUser) {
+ this.num6gUser = num6gUser;
+ return this;
+ }
+
+ /**
+ * Get num6gUser
+ * @return num6gUser
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum6gUser() {
+ return num6gUser;
+ }
+
+ public void setNum6gUser(Integer num6gUser) {
+ this.num6gUser = num6gUser;
+ }
+
+ public ClientStatVo num2gGuest(Integer num2gGuest) {
+ this.num2gGuest = num2gGuest;
+ return this;
+ }
+
+ /**
+ * Get num2gGuest
+ * @return num2gGuest
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum2gGuest() {
+ return num2gGuest;
+ }
+
+ public void setNum2gGuest(Integer num2gGuest) {
+ this.num2gGuest = num2gGuest;
+ }
+
+ public ClientStatVo num5gGuest(Integer num5gGuest) {
+ this.num5gGuest = num5gGuest;
+ return this;
+ }
+
+ /**
+ * Get num5gGuest
+ * @return num5gGuest
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum5gGuest() {
+ return num5gGuest;
+ }
+
+ public void setNum5gGuest(Integer num5gGuest) {
+ this.num5gGuest = num5gGuest;
+ }
+
+ public ClientStatVo num6gGuest(Integer num6gGuest) {
+ this.num6gGuest = num6gGuest;
+ return this;
+ }
+
+ /**
+ * Get num6gGuest
+ * @return num6gGuest
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNum6gGuest() {
+ return num6gGuest;
+ }
+
+ public void setNum6gGuest(Integer num6gGuest) {
+ this.num6gGuest = num6gGuest;
+ }
+
+ public ClientStatVo poor(Integer poor) {
+ this.poor = poor;
+ return this;
+ }
+
+ /**
+ * Get poor
+ * @return poor
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getPoor() {
+ return poor;
+ }
+
+ public void setPoor(Integer poor) {
+ this.poor = poor;
+ }
+
+ public ClientStatVo fair(Integer fair) {
+ this.fair = fair;
+ return this;
+ }
+
+ /**
+ * Get fair
+ * @return fair
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getFair() {
+ return fair;
+ }
+
+ public void setFair(Integer fair) {
+ this.fair = fair;
+ }
+
+ public ClientStatVo noData(Integer noData) {
+ this.noData = noData;
+ return this;
+ }
+
+ /**
+ * Get noData
+ * @return noData
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getNoData() {
+ return noData;
+ }
+
+ public void setNoData(Integer noData) {
+ this.noData = noData;
+ }
+
+ public ClientStatVo good(Integer good) {
+ this.good = good;
+ return this;
+ }
+
+ /**
+ * Get good
+ * @return good
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getGood() {
+ return good;
+ }
+
+ public void setGood(Integer good) {
+ this.good = good;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ClientStatVo clientStatVo = (ClientStatVo) o;
+ return Objects.equals(this.total, clientStatVo.total) &&
+ Objects.equals(this.wireless, clientStatVo.wireless) &&
+ Objects.equals(this.wired, clientStatVo.wired) &&
+ Objects.equals(this.num2g, clientStatVo.num2g) &&
+ Objects.equals(this.num5g, clientStatVo.num5g) &&
+ Objects.equals(this.num6g, clientStatVo.num6g) &&
+ Objects.equals(this.numUser, clientStatVo.numUser) &&
+ Objects.equals(this.numGuest, clientStatVo.numGuest) &&
+ Objects.equals(this.numWirelessUser, clientStatVo.numWirelessUser) &&
+ Objects.equals(this.numWirelessGuest, clientStatVo.numWirelessGuest) &&
+ Objects.equals(this.num2gUser, clientStatVo.num2gUser) &&
+ Objects.equals(this.num5gUser, clientStatVo.num5gUser) &&
+ Objects.equals(this.num6gUser, clientStatVo.num6gUser) &&
+ Objects.equals(this.num2gGuest, clientStatVo.num2gGuest) &&
+ Objects.equals(this.num5gGuest, clientStatVo.num5gGuest) &&
+ Objects.equals(this.num6gGuest, clientStatVo.num6gGuest) &&
+ Objects.equals(this.poor, clientStatVo.poor) &&
+ Objects.equals(this.fair, clientStatVo.fair) &&
+ Objects.equals(this.noData, clientStatVo.noData) &&
+ Objects.equals(this.good, clientStatVo.good);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(total, wireless, wired, num2g, num5g, num6g, numUser, numGuest, numWirelessUser, numWirelessGuest, num2gUser, num5gUser, num6gUser, num2gGuest, num5gGuest, num6gGuest, poor, fair, noData, good);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ClientStatVo {\n");
+
+ sb.append(" total: ").append(toIndentedString(total)).append("\n");
+ sb.append(" wireless: ").append(toIndentedString(wireless)).append("\n");
+ sb.append(" wired: ").append(toIndentedString(wired)).append("\n");
+ sb.append(" num2g: ").append(toIndentedString(num2g)).append("\n");
+ sb.append(" num5g: ").append(toIndentedString(num5g)).append("\n");
+ sb.append(" num6g: ").append(toIndentedString(num6g)).append("\n");
+ sb.append(" numUser: ").append(toIndentedString(numUser)).append("\n");
+ sb.append(" numGuest: ").append(toIndentedString(numGuest)).append("\n");
+ sb.append(" numWirelessUser: ").append(toIndentedString(numWirelessUser)).append("\n");
+ sb.append(" numWirelessGuest: ").append(toIndentedString(numWirelessGuest)).append("\n");
+ sb.append(" num2gUser: ").append(toIndentedString(num2gUser)).append("\n");
+ sb.append(" num5gUser: ").append(toIndentedString(num5gUser)).append("\n");
+ sb.append(" num6gUser: ").append(toIndentedString(num6gUser)).append("\n");
+ sb.append(" num2gGuest: ").append(toIndentedString(num2gGuest)).append("\n");
+ sb.append(" num5gGuest: ").append(toIndentedString(num5gGuest)).append("\n");
+ sb.append(" num6gGuest: ").append(toIndentedString(num6gGuest)).append("\n");
+ sb.append(" poor: ").append(toIndentedString(poor)).append("\n");
+ sb.append(" fair: ").append(toIndentedString(fair)).append("\n");
+ sb.append(" noData: ").append(toIndentedString(noData)).append("\n");
+ sb.append(" good: ").append(toIndentedString(good)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/CustomRateLimitEntity.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/CustomRateLimitEntity.java
new file mode 100644
index 0000000..aba9dc4
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/CustomRateLimitEntity.java
@@ -0,0 +1,203 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * Custom configuration rate limit.
+ */
+@ApiModel(description = "Custom configuration rate limit.")
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class CustomRateLimitEntity {
+ @JsonProperty("upEnable")
+ private Boolean upEnable;
+
+ @JsonProperty("upUnit")
+ private Integer upUnit;
+
+ @JsonProperty("upLimit")
+ private Integer upLimit;
+
+ @JsonProperty("downEnable")
+ private Boolean downEnable;
+
+ @JsonProperty("downUnit")
+ private Integer downUnit;
+
+ @JsonProperty("downLimit")
+ private Integer downLimit;
+
+ public CustomRateLimitEntity upEnable(Boolean upEnable) {
+ this.upEnable = upEnable;
+ return this;
+ }
+
+ /**
+ * Up limit enable
+ * @return upEnable
+ */
+ @ApiModelProperty(value = "Up limit enable")
+
+
+ public Boolean getUpEnable() {
+ return upEnable;
+ }
+
+ public void setUpEnable(Boolean upEnable) {
+ this.upEnable = upEnable;
+ }
+
+ public CustomRateLimitEntity upUnit(Integer upUnit) {
+ this.upUnit = upUnit;
+ return this;
+ }
+
+ /**
+ * Up limit unit should be a value as follows: 1: Kbps; 2: Mbps
+ * @return upUnit
+ */
+ @ApiModelProperty(value = "Up limit unit should be a value as follows: 1: Kbps; 2: Mbps")
+
+
+ public Integer getUpUnit() {
+ return upUnit;
+ }
+
+ public void setUpUnit(Integer upUnit) {
+ this.upUnit = upUnit;
+ }
+
+ public CustomRateLimitEntity upLimit(Integer upLimit) {
+ this.upLimit = upLimit;
+ return this;
+ }
+
+ /**
+ * Up limit should be within the range of 1–1024.
+ * @return upLimit
+ */
+ @ApiModelProperty(value = "Up limit should be within the range of 1–1024.")
+
+
+ public Integer getUpLimit() {
+ return upLimit;
+ }
+
+ public void setUpLimit(Integer upLimit) {
+ this.upLimit = upLimit;
+ }
+
+ public CustomRateLimitEntity downEnable(Boolean downEnable) {
+ this.downEnable = downEnable;
+ return this;
+ }
+
+ /**
+ * Down limit enable
+ * @return downEnable
+ */
+ @ApiModelProperty(value = "Down limit enable")
+
+
+ public Boolean getDownEnable() {
+ return downEnable;
+ }
+
+ public void setDownEnable(Boolean downEnable) {
+ this.downEnable = downEnable;
+ }
+
+ public CustomRateLimitEntity downUnit(Integer downUnit) {
+ this.downUnit = downUnit;
+ return this;
+ }
+
+ /**
+ * Down limit unit should be a value as follows: 1: Kbps; 2: Mbps
+ * @return downUnit
+ */
+ @ApiModelProperty(value = "Down limit unit should be a value as follows: 1: Kbps; 2: Mbps")
+
+
+ public Integer getDownUnit() {
+ return downUnit;
+ }
+
+ public void setDownUnit(Integer downUnit) {
+ this.downUnit = downUnit;
+ }
+
+ public CustomRateLimitEntity downLimit(Integer downLimit) {
+ this.downLimit = downLimit;
+ return this;
+ }
+
+ /**
+ * Down limit should be within the range of 1–1024.
+ * @return downLimit
+ */
+ @ApiModelProperty(value = "Down limit should be within the range of 1–1024.")
+
+
+ public Integer getDownLimit() {
+ return downLimit;
+ }
+
+ public void setDownLimit(Integer downLimit) {
+ this.downLimit = downLimit;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CustomRateLimitEntity customRateLimitEntity = (CustomRateLimitEntity) o;
+ return Objects.equals(this.upEnable, customRateLimitEntity.upEnable) &&
+ Objects.equals(this.upUnit, customRateLimitEntity.upUnit) &&
+ Objects.equals(this.upLimit, customRateLimitEntity.upLimit) &&
+ Objects.equals(this.downEnable, customRateLimitEntity.downEnable) &&
+ Objects.equals(this.downUnit, customRateLimitEntity.downUnit) &&
+ Objects.equals(this.downLimit, customRateLimitEntity.downLimit);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(upEnable, upUnit, upLimit, downEnable, downUnit, downLimit);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CustomRateLimitEntity {\n");
+
+ sb.append(" upEnable: ").append(toIndentedString(upEnable)).append("\n");
+ sb.append(" upUnit: ").append(toIndentedString(upUnit)).append("\n");
+ sb.append(" upLimit: ").append(toIndentedString(upLimit)).append("\n");
+ sb.append(" downEnable: ").append(toIndentedString(downEnable)).append("\n");
+ sb.append(" downUnit: ").append(toIndentedString(downUnit)).append("\n");
+ sb.append(" downLimit: ").append(toIndentedString(downLimit)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/GridVoClientHistoryInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/GridVoClientHistoryInfo.java
new file mode 100644
index 0000000..8efd4e6
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/GridVoClientHistoryInfo.java
@@ -0,0 +1,164 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * GridVoClientHistoryInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class GridVoClientHistoryInfo {
+ @JsonProperty("totalRows")
+ private Long totalRows;
+
+ @JsonProperty("currentPage")
+ private Integer currentPage;
+
+ @JsonProperty("currentSize")
+ private Integer currentSize;
+
+ @JsonProperty("data")
+ @Valid
+ private List data = null;
+
+ public GridVoClientHistoryInfo totalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ return this;
+ }
+
+ /**
+ * Total rows of all items.
+ * @return totalRows
+ */
+ @ApiModelProperty(value = "Total rows of all items.")
+
+
+ public Long getTotalRows() {
+ return totalRows;
+ }
+
+ public void setTotalRows(Long totalRows) {
+ this.totalRows = totalRows;
+ }
+
+ public GridVoClientHistoryInfo currentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ return this;
+ }
+
+ /**
+ * Current page number.
+ * @return currentPage
+ */
+ @ApiModelProperty(value = "Current page number.")
+
+
+ public Integer getCurrentPage() {
+ return currentPage;
+ }
+
+ public void setCurrentPage(Integer currentPage) {
+ this.currentPage = currentPage;
+ }
+
+ public GridVoClientHistoryInfo currentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ return this;
+ }
+
+ /**
+ * Number of entries per page.
+ * @return currentSize
+ */
+ @ApiModelProperty(value = "Number of entries per page.")
+
+
+ public Integer getCurrentSize() {
+ return currentSize;
+ }
+
+ public void setCurrentSize(Integer currentSize) {
+ this.currentSize = currentSize;
+ }
+
+ public GridVoClientHistoryInfo data(List data) {
+ this.data = data;
+ return this;
+ }
+
+ public GridVoClientHistoryInfo addDataItem(ClientHistoryInfo dataItem) {
+ if (this.data == null) {
+ this.data = new ArrayList<>();
+ }
+ this.data.add(dataItem);
+ return this;
+ }
+
+ /**
+ * Get data
+ * @return data
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GridVoClientHistoryInfo gridVoClientHistoryInfo = (GridVoClientHistoryInfo) o;
+ return Objects.equals(this.totalRows, gridVoClientHistoryInfo.totalRows) &&
+ Objects.equals(this.currentPage, gridVoClientHistoryInfo.currentPage) &&
+ Objects.equals(this.currentSize, gridVoClientHistoryInfo.currentSize) &&
+ Objects.equals(this.data, gridVoClientHistoryInfo.data);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(totalRows, currentPage, currentSize, data);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GridVoClientHistoryInfo {\n");
+
+ sb.append(" totalRows: ").append(toIndentedString(totalRows)).append("\n");
+ sb.append(" currentPage: ").append(toIndentedString(currentPage)).append("\n");
+ sb.append(" currentSize: ").append(toIndentedString(currentSize)).append("\n");
+ sb.append(" data: ").append(toIndentedString(data)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientDetail.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientDetail.java
new file mode 100644
index 0000000..4c8cd25
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientDetail.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseClientDetail
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class OperationResponseClientDetail {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private ClientDetail result;
+
+ public OperationResponseClientDetail errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseClientDetail msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseClientDetail result(ClientDetail result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientDetail getResult() {
+ return result;
+ }
+
+ public void setResult(ClientDetail result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseClientDetail operationResponseClientDetail = (OperationResponseClientDetail) o;
+ return Objects.equals(this.errorCode, operationResponseClientDetail.errorCode) &&
+ Objects.equals(this.msg, operationResponseClientDetail.msg) &&
+ Objects.equals(this.result, operationResponseClientDetail.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseClientDetail {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientGridVoClientInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientGridVoClientInfo.java
new file mode 100644
index 0000000..ef6d020
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseClientGridVoClientInfo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseClientGridVoClientInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class OperationResponseClientGridVoClientInfo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private ClientGridVoClientInfo result;
+
+ public OperationResponseClientGridVoClientInfo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseClientGridVoClientInfo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseClientGridVoClientInfo result(ClientGridVoClientInfo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public ClientGridVoClientInfo getResult() {
+ return result;
+ }
+
+ public void setResult(ClientGridVoClientInfo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseClientGridVoClientInfo operationResponseClientGridVoClientInfo = (OperationResponseClientGridVoClientInfo) o;
+ return Objects.equals(this.errorCode, operationResponseClientGridVoClientInfo.errorCode) &&
+ Objects.equals(this.msg, operationResponseClientGridVoClientInfo.msg) &&
+ Objects.equals(this.result, operationResponseClientGridVoClientInfo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseClientGridVoClientInfo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseGridVoClientHistoryInfo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseGridVoClientHistoryInfo.java
new file mode 100644
index 0000000..0599a56
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseGridVoClientHistoryInfo.java
@@ -0,0 +1,128 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import java.util.Objects;
+
+/**
+ * OperationResponseGridVoClientHistoryInfo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class OperationResponseGridVoClientHistoryInfo {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ @JsonProperty("result")
+ private GridVoClientHistoryInfo result;
+
+ public OperationResponseGridVoClientHistoryInfo errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseGridVoClientHistoryInfo msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public OperationResponseGridVoClientHistoryInfo result(GridVoClientHistoryInfo result) {
+ this.result = result;
+ return this;
+ }
+
+ /**
+ * Get result
+ * @return result
+ */
+ @ApiModelProperty(value = "")
+
+ @Valid
+
+ public GridVoClientHistoryInfo getResult() {
+ return result;
+ }
+
+ public void setResult(GridVoClientHistoryInfo result) {
+ this.result = result;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseGridVoClientHistoryInfo operationResponseGridVoClientHistoryInfo = (OperationResponseGridVoClientHistoryInfo) o;
+ return Objects.equals(this.errorCode, operationResponseGridVoClientHistoryInfo.errorCode) &&
+ Objects.equals(this.msg, operationResponseGridVoClientHistoryInfo.msg) &&
+ Objects.equals(this.result, operationResponseGridVoClientHistoryInfo.result);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg, result);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseGridVoClientHistoryInfo {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append(" result: ").append(toIndentedString(result)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseWithoutResult.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseWithoutResult.java
new file mode 100644
index 0000000..84bb152
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/client/model/OperationResponseWithoutResult.java
@@ -0,0 +1,101 @@
+package org.wfc.omada.api.client.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * OperationResponseWithoutResult
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T10:16:05.926+08:00[Asia/Shanghai]")
+
+public class OperationResponseWithoutResult {
+ @JsonProperty("errorCode")
+ private Integer errorCode;
+
+ @JsonProperty("msg")
+ private String msg;
+
+ public OperationResponseWithoutResult errorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get errorCode
+ * @return errorCode
+ */
+ @ApiModelProperty(value = "")
+
+
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public OperationResponseWithoutResult msg(String msg) {
+ this.msg = msg;
+ return this;
+ }
+
+ /**
+ * Get msg
+ * @return msg
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ OperationResponseWithoutResult operationResponseWithoutResult = (OperationResponseWithoutResult) o;
+ return Objects.equals(this.errorCode, operationResponseWithoutResult.errorCode) &&
+ Objects.equals(this.msg, operationResponseWithoutResult.msg);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(errorCode, msg);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class OperationResponseWithoutResult {\n");
+
+ sb.append(" errorCode: ").append(toIndentedString(errorCode)).append("\n");
+ sb.append(" msg: ").append(toIndentedString(msg)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/config/FeignConfig.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/config/FeignConfig.java
index 3e6464f..eaf3321 100644
--- a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/config/FeignConfig.java
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/config/FeignConfig.java
@@ -83,6 +83,7 @@ public class FeignConfig implements RequestInterceptor {
if (omadaResult == null) {
return;
}
+ // 如果返回结果未成功,重新调获取访问令牌接口
String accessToken = omadaResult.getResult().getAccessToken();
String refreshToken = omadaResult.getResult().getRefreshToken();
authorization = PRE_ACCESS_TOKEN + accessToken;
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaApApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaApApi.java
new file mode 100644
index 0000000..52b9640
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaApApi.java
@@ -0,0 +1,562 @@
+package org.wfc.omada.api.device;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+import org.wfc.omada.api.device.model.ApBridgeConfig;
+import org.wfc.omada.api.device.model.ApGeneralConfig;
+import org.wfc.omada.api.device.model.ApIpSetting;
+import org.wfc.omada.api.device.model.ApRadiosConfig;
+import org.wfc.omada.api.device.model.ApSsidOverrideOpenApiV2Vo;
+import org.wfc.omada.api.device.model.ApSsidOverrideOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseApAvailableChannelOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseApBridgeConfig;
+import org.wfc.omada.api.device.model.OperationResponseApGeneralConfig;
+import org.wfc.omada.api.device.model.OperationResponseApIpSetting;
+import org.wfc.omada.api.device.model.OperationResponseApLanTraffic;
+import org.wfc.omada.api.device.model.OperationResponseApOfdmaConfigOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseApOverviewInfo;
+import org.wfc.omada.api.device.model.OperationResponseApPowerSavingConfigOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseApRadiosConfig;
+import org.wfc.omada.api.device.model.OperationResponseApRadiosDetail;
+import org.wfc.omada.api.device.model.OperationResponseApRfScanInfo;
+import org.wfc.omada.api.device.model.OperationResponseApRfScanResult;
+import org.wfc.omada.api.device.model.OperationResponseApSsidWlansOpenApiV2Vo;
+import org.wfc.omada.api.device.model.OperationResponseApSsidWlansOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseApWiredDownlink;
+import org.wfc.omada.api.device.model.OperationResponseApWiredUplink;
+import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.device.model.RfScanCommand;
+import org.wfc.omada.api.device.model.UpdateApChannelConfigOpenApiVo;
+import org.wfc.omada.api.device.model.UpdateApOfdmaConfigOpenApiVo;
+import org.wfc.omada.api.device.model.UpdateApPowerSavingConfigOpenApiVo;
+
+import javax.validation.Valid;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:16.669+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaAp", description = "the OmadaAp API")
+@FeignClient(name="OmadaApApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaApApi {
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/bridge : Get P2P bridge config
+ * Get P2P bridge config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get P2P bridge config", nickname = "getApBridgeInfo", notes = "Get P2P bridge config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApBridgeConfig.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApBridgeConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/bridge",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getApBridgeInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/ofdma : Get ap OFDMA config
+ * Get ap OFDMA config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap OFDMA config", nickname = "getApOfdmaConfig", notes = "Get ap OFDMA config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApOfdmaConfigOpenApiVo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApOfdmaConfigOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/ofdma",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getApOfdmaConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/available-channel : Get available channel list of ap
+ * Get available channel list of ap<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.<br/>-60004 - The device is not activated.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get available channel list of ap", nickname = "getAvailableChannelOfAp", notes = "Get available channel list of ap
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.
-60004 - The device is not activated. ", response = OperationResponseApAvailableChannelOpenApiVo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApAvailableChannelOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/available-channel",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getAvailableChannelOfAp(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/wired-downlink : Get ap downlink(wired) device list
+ * Get ap downlink(wired) device list<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-1001 - Invalid request parameters.<br/>-1005 - Operation forbidden.<br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap downlink(wired) device list", nickname = "getDownlinkWiredDevices", notes = "Get ap downlink(wired) device list
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1001 - Invalid request parameters.
-1005 - Operation forbidden.
-39303 - AP does not exist.", response = OperationResponseApWiredDownlink.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApWiredDownlink.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/wired-downlink",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getDownlinkWiredDevices(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/general-config : Get ap general config
+ * Get ap general config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap general config", nickname = "getGeneralConfig2", notes = "Get ap general config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApGeneralConfig.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApGeneralConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/general-config",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGeneralConfig2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/ip-setting : Get ap ip setting
+ * Get ap IP setting<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap ip setting", nickname = "getIpSettingConfig", notes = "Get ap IP setting
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApIpSetting.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApIpSetting.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/ip-setting",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getIpSettingConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/lan-traffic-info : Get ap lan traffic info
+ * Get ap lan traffic info<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap lan traffic info", nickname = "getLanDetail", notes = "Get ap lan traffic info
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApLanTraffic.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApLanTraffic.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/lan-traffic-info",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getLanDetail(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac} : Get ap info
+ * Get ap info<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap info", nickname = "getOverviewDetail", notes = "Get ap info
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApOverviewInfo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApOverviewInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getOverviewDetail(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/power-saving : Get ap power saving config
+ * Get ap power saving config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap power saving config", nickname = "getPowerSavingConfig", notes = "Get ap power saving config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApPowerSavingConfigOpenApiVo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApPowerSavingConfigOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/power-saving",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getPowerSavingConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/rf-scan-result : Get rf scan result
+ * Get rf scan result. This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34808 - This AP is not connected.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ * @deprecated
+ */
+ @ApiOperation(value = "Get rf scan result", nickname = "getRFScanResult", notes = "Get rf scan result. This interface has been deprecated.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-34808 - This AP is not connected.", response = OperationResponseApRfScanInfo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApRfScanInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/rf-scan-result",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRFScanResult(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/rf-scan-result : Get rf scan result
+ * Get rf scan result<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34808 - This AP is not connected.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get rf scan result", nickname = "getRFScanResultV2", notes = "Get rf scan result
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-34808 - This AP is not connected.", response = OperationResponseApRfScanResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApRfScanResult.class) })
+ @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/rf-scan-result",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRFScanResultV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/radio-config : Get ap radio config
+ * Get ap radio config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap radio config", nickname = "getRadiosConfig", notes = "Get ap radio config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApRadiosConfig.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApRadiosConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/radio-config",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRadiosConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/radios : Get ap radio detail
+ * Get ap radio detail<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap radio detail", nickname = "getRadiosDetail", notes = "Get ap radio detail
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApRadiosDetail.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApRadiosDetail.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/radios",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRadiosDetail(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/wired-uplink : Get ap uplink(wired) detail
+ * Get ap uplink(wired) detail<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap uplink(wired) detail", nickname = "getUplinkWiredDetail", notes = "Get ap uplink(wired) detail
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApWiredUplink.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApWiredUplink.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/wired-uplink",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getUplinkWiredDetail(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/override : Get ap WLANs override config
+ * Get ap WLANs override config. This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ * @deprecated
+ */
+ @ApiOperation(value = "Get ap WLANs override config", nickname = "getWlansConfig", notes = "Get ap WLANs override config. This interface has been deprecated.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApSsidWlansOpenApiVo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApSsidWlansOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/override",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getWlansConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * GET /openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/override : Get ap WLANs override config
+ * Get ap WLANs override config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get ap WLANs override config", nickname = "getWlansConfigV2", notes = "Get ap WLANs override config.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseApSsidWlansOpenApiV2Vo.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseApSsidWlansOpenApiV2Vo.class) })
+ @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/override",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getWlansConfigV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/bridge : Modify P2P bridge config
+ * Modify P2P bridge config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apBridgeConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify P2P bridge config", nickname = "modifyApBridgeInfo", notes = "Modify P2P bridge config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/bridge",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyApBridgeInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApBridgeConfig apBridgeConfig);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/channel-config : Modify ap channel config
+ * Modify ap channel config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param updateApChannelConfigOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap channel config", nickname = "modifyApChannelConfig", notes = "Modify ap channel config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/channel-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyApChannelConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpdateApChannelConfigOpenApiVo updateApChannelConfigOpenApiVo);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/ofdma : Modify ap OFDMA config
+ * Modify ap OFDMA config; If the device does not support this feature, it cannot be modified successfully.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param updateApOfdmaConfigOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap OFDMA config", nickname = "modifyApOfdmaConfig", notes = "Modify ap OFDMA config; If the device does not support this feature, it cannot be modified successfully.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/ofdma",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyApOfdmaConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpdateApOfdmaConfigOpenApiVo updateApOfdmaConfigOpenApiVo);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/general-config : Modify ap general config
+ * Modify ap general config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apGeneralConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap general config", nickname = "modifyGeneralConfig2", notes = "Modify ap general config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/general-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyGeneralConfig2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApGeneralConfig apGeneralConfig);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/ip-setting : Modify ap ip setting
+ * Modify ap IP setting<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apIpSetting (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap ip setting", nickname = "modifyIpSettingConfig", notes = "Modify ap IP setting
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/ip-setting",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyIpSettingConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApIpSetting apIpSetting);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/power-saving : Modify ap power saving config
+ * Modify ap power saving config; If the device does not support this feature, it cannot be modified successfully.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.<br/>-44205 - The device does not support this feature.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param updateApPowerSavingConfigOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap power saving config", nickname = "modifyPowerSavingConfig", notes = "Modify ap power saving config; If the device does not support this feature, it cannot be modified successfully.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.
-44205 - The device does not support this feature.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/power-saving",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity modifyPowerSavingConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpdateApPowerSavingConfigOpenApiVo updateApPowerSavingConfigOpenApiVo);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/radio-config : Modify ap radio config
+ * Modify ap radio config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apRadiosConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap radio config", nickname = "modifyRadiosConfig", notes = "Modify ap radio config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/radio-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyRadiosConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApRadiosConfig apRadiosConfig);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/override : Modify ap WLANs override config
+ * Modify ap WLANs override config. This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apSsidOverrideOpenApiVo (optional)
+ * @return OK (status code 200)
+ * @deprecated
+ */
+ @ApiOperation(value = "Modify ap WLANs override config", nickname = "modifyWlansConfig", notes = "Modify ap WLANs override config. This interface has been deprecated.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/override",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyWlansConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApSsidOverrideOpenApiVo apSsidOverrideOpenApiVo);
+
+
+ /**
+ * PATCH /openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/override : Modify ap WLANs override config
+ * Modify ap WLANs override config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39303 - AP does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param apSsidOverrideOpenApiV2Vo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify ap WLANs override config", nickname = "modifyWlansConfigV2", notes = "Modify ap WLANs override config.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39303 - AP does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/override",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyWlansConfigV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ApSsidOverrideOpenApiV2Vo apSsidOverrideOpenApiV2Vo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/aps/{apMac}/start-rf-scan : Start rf scan
+ * Wi-Fi connection will lost for several minutes during the scanning. Please select a spare time of network to start scanning. This interface has been deprecated.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34800 - No SSIDs are configured on the corresponding radio band.<br/>-34802 - RF scan failed. Please turn on the radio.<br/>-34803 - Optimizing WLAN... Please wait.<br/>-34808 - This AP is not connected.<br/>-34809 - This AP does not support RF Scanning.<br/>-34810 - Mesh APs do not support RF Scanning.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ * @deprecated
+ */
+ @ApiOperation(value = "Start rf scan", nickname = "triggerRadioFrequencyScan", notes = "Wi-Fi connection will lost for several minutes during the scanning. Please select a spare time of network to start scanning. This interface has been deprecated.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-34800 - No SSIDs are configured on the corresponding radio band.
-34802 - RF scan failed. Please turn on the radio.
-34803 - Optimizing WLAN... Please wait.
-34808 - This AP is not connected.
-34809 - This AP does not support RF Scanning.
-34810 - Mesh APs do not support RF Scanning.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/aps/{apMac}/start-rf-scan",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity triggerRadioFrequencyScan(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac);
+
+
+ /**
+ * POST /openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/start-rf-scan : Start rf scan
+ * Wi-Fi connection will lost for several minutes during the scanning. Please select a spare time of network to start scanning.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-34800 - No SSIDs are configured on the corresponding radio band.<br/>-34802 - RF scan failed. Please turn on the radio.<br/>-34803 - Optimizing WLAN... Please wait.<br/>-34808 - This AP is not connected.<br/>-34809 - This AP does not support RF Scanning.<br/>-34810 - Mesh APs do not support RF Scanning.<br/>-34824 - Rogue AP scanning... Please wait.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param apMac AP MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param rfScanCommand (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start rf scan", nickname = "triggerRadioFrequencyScanV2", notes = "Wi-Fi connection will lost for several minutes during the scanning. Please select a spare time of network to start scanning.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-34800 - No SSIDs are configured on the corresponding radio band.
-34802 - RF scan failed. Please turn on the radio.
-34803 - Optimizing WLAN... Please wait.
-34808 - This AP is not connected.
-34809 - This AP does not support RF Scanning.
-34810 - Mesh APs do not support RF Scanning.
-34824 - Rogue AP scanning... Please wait.", response = OperationResponseWithoutResult.class, tags={ "Omada/Ap","Ap", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v2/{omadacId}/sites/{siteId}/aps/{apMac}/start-rf-scan",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity triggerRadioFrequencyScanV2(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "AP MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("apMac") String apMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) RfScanCommand rfScanCommand);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java
new file mode 100644
index 0000000..8b929c7
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaDeviceApi.java
@@ -0,0 +1,811 @@
+package org.wfc.omada.api.device;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+import org.wfc.omada.api.device.model.ActiveDeviceMultiSiteOpenApiVo;
+import org.wfc.omada.api.device.model.ActiveDeviceOpenApiVo;
+import org.wfc.omada.api.device.model.ActiveDeviceRespVo;
+import org.wfc.omada.api.device.model.ActiveDeviceSnOpenApiVo;
+import org.wfc.omada.api.device.model.ActiveDeviceSnRespVo;
+import org.wfc.omada.api.device.model.AdoptDeviceRequest;
+import org.wfc.omada.api.device.model.BatchTagRespOpenApiVo;
+import org.wfc.omada.api.device.model.DeleteTagOpenApiVo;
+import org.wfc.omada.api.device.model.DeviceCopyConfigurationOpenApiVo;
+import org.wfc.omada.api.device.model.DeviceListAddBySnOpenApiVo;
+import org.wfc.omada.api.device.model.DeviceListAddMultiSiteBySnOpenApiVo;
+import org.wfc.omada.api.device.model.DeviceListAddOpenApiVo;
+import org.wfc.omada.api.device.model.DeviceMoveSiteOpenApiVo;
+import org.wfc.omada.api.device.model.LocateDeviceRequest;
+import org.wfc.omada.api.device.model.ModifyTagOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseAdoptResult;
+import org.wfc.omada.api.device.model.OperationResponseCheckFirmwareRes;
+import org.wfc.omada.api.device.model.OperationResponseDeviceAddProcessRespVo;
+import org.wfc.omada.api.device.model.OperationResponseDeviceAddRespOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseDeviceFirmwareInfo;
+import org.wfc.omada.api.device.model.OperationResponseFile;
+import org.wfc.omada.api.device.model.OperationResponseGridVoDeviceInfo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoGlobalKnownDeviceOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoGlobalUnknownDeviceOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseOnlineUpgradeRes;
+import org.wfc.omada.api.device.model.OperationResponseRetryAddDeviceRespOpenApiVo;
+import org.wfc.omada.api.device.model.OperationResponseRollingUpgradeRes;
+import org.wfc.omada.api.device.model.OperationResponseUpgradeRes;
+import org.wfc.omada.api.device.model.OperationResponseUpgradeTask;
+import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.device.model.RetryAddDeviceOpenApiVo;
+import org.wfc.omada.api.device.model.RollingUpgradeRequest;
+import org.wfc.omada.api.device.model.SetTagOpenApiVo;
+import org.wfc.omada.api.device.model.TagOpenApiVo;
+import org.wfc.omada.api.device.model.TagRespOpenApiVo;
+import org.wfc.omada.api.device.model.UnbindActiveDeviceSnOpenApiVo;
+import org.wfc.omada.api.device.model.UnbindDeviceOpenApiVo;
+import org.wfc.omada.api.device.model.UnbindDeviceRespVo;
+import org.wfc.omada.api.device.model.UnbindDeviceSnOpenApiVo;
+import org.wfc.omada.api.device.model.UnbindDeviceSnRespVo;
+import org.wfc.omada.api.device.model.UpgradeRequest;
+
+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:26:16.669+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaDevice", description = "the OmadaDevice API")
+@FeignClient(name="OmadaDeviceApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaDeviceApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/active : Batch active devices
+ * Batch active devices.<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param activeDeviceOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch active devices", nickname = "activeDevice", notes = "Batch active devices.
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = ActiveDeviceRespVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = ActiveDeviceRespVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/active",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity> activeDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ActiveDeviceOpenApiVo activeDeviceOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/sn-active : Batch active devices by SN
+ * Batch active devices by SN.<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param activeDeviceSnOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch active devices by SN", nickname = "activeDeviceBySn", notes = "Batch active devices by SN.
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = ActiveDeviceSnRespVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = ActiveDeviceSnRespVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/sn-active",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity> activeDeviceBySn(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ActiveDeviceSnOpenApiVo activeDeviceSnOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/multi-devices/active : Batch active devices with multi site
+ * Batch active devices with multi site.<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param activeDeviceMultiSiteOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch active devices with multi site", nickname = "activeDeviceWithMultiSite", notes = "Batch active devices with multi site.
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = ActiveDeviceRespVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = ActiveDeviceRespVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/multi-devices/active",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity> activeDeviceWithMultiSite(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ActiveDeviceMultiSiteOpenApiVo activeDeviceMultiSiteOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/multi-add : Batch add devices
+ * Batch add devices.This interface has been deprecated. Please use the following interface instead: Batch add devices by SN<br/><br/>The interface requires one of the permissions: <br/>Site Adopt Device Manager Access<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/>-39039 - Too many devices imported at a time.<br/>-39042 - Invalid device serial number in the imported file.<br/>-39043 - Importing... Please wait.<br/>-53125 - The Add Devices function has been locked due to too many invalid attempts.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceListAddOpenApiVo (optional)
+ * @return OK (status code 200)
+ * @deprecated
+ */
+ @ApiOperation(value = "Batch add devices", nickname = "addDevices", notes = "Batch add devices.This interface has been deprecated. Please use the following interface instead: Batch add devices by SN
The interface requires one of the permissions:
Site Adopt Device Manager Access
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39039 - Too many devices imported at a time.
-39042 - Invalid device serial number in the imported file.
-39043 - Importing... Please wait.
-53125 - The Add Devices function has been locked due to too many invalid attempts.", response = OperationResponseDeviceAddRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAddRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/multi-add",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity addDevices(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeviceListAddOpenApiVo deviceListAddOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/sn-add : Batch add devices by SN
+ * Batch add devices by SN.<br/><br/>The interface requires one of the permissions: <br/>Site Adopt Device Manager Access<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/>-39039 - Too many devices imported at a time.<br/>-39042 - Invalid device serial number in the imported file.<br/>-39043 - Importing... Please wait.<br/>-53125 - The Add Devices function has been locked due to too many invalid attempts.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceListAddBySnOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch add devices by SN", nickname = "addDevicesBySn", notes = "Batch add devices by SN.
The interface requires one of the permissions:
Site Adopt Device Manager Access
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39039 - Too many devices imported at a time.
-39042 - Invalid device serial number in the imported file.
-39043 - Importing... Please wait.
-53125 - The Add Devices function has been locked due to too many invalid attempts.", response = OperationResponseDeviceAddRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAddRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/sn-add",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity addDevicesBySn(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeviceListAddBySnOpenApiVo deviceListAddBySnOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/multi-devices/sn-add : Batch add devices by SN with multi site
+ * Batch add devices by SN with multi site.<br/><br/>The interface requires one of the permissions: <br/>Site Adopt Device Manager Access<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/>-39039 - Too many devices imported at a time.<br/>-39042 - Invalid device serial number in the imported file.<br/>-39043 - Importing... Please wait.<br/>-53125 - The Add Devices function has been locked due to too many invalid attempts.
+ *
+ * @param omadacId Omada ID (required)
+ * @param deviceListAddMultiSiteBySnOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch add devices by SN with multi site", nickname = "addDevicesBySnWithMultiSite", notes = "Batch add devices by SN with multi site.
The interface requires one of the permissions:
Site Adopt Device Manager Access
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39039 - Too many devices imported at a time.
-39042 - Invalid device serial number in the imported file.
-39043 - Importing... Please wait.
-53125 - The Add Devices function has been locked due to too many invalid attempts.", response = OperationResponseDeviceAddRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAddRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/multi-devices/sn-add",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity addDevicesBySnWithMultiSite(@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeviceListAddMultiSiteBySnOpenApiVo deviceListAddMultiSiteBySnOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/tag : Create new tag
+ * Create new tag.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param tagOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create new tag", nickname = "addTag", notes = "Create new tag.
The interface requires one of the permissions:
Site Device Manager Modify", response = TagRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = TagRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/tag",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity addTag(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) TagOpenApiVo tagOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/start-adopt : Start adopt device
+ * Start adopt device.This interface does not return the actual adoptive result, you need to use the interface:Get device adopt result to obtain the adoptive result<br/><br/>The interface requires one of the permissions: <br/>Site Adopt Device Manager Access
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param adoptDeviceRequest (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start adopt device", nickname = "adoptDevice", notes = "Start adopt device.This interface does not return the actual adoptive result, you need to use the interface:Get device adopt result to obtain the adoptive result
The interface requires one of the permissions:
Site Adopt Device Manager Access", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/start-adopt",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity adoptDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) AdoptDeviceRequest adoptDeviceRequest);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/rolling-upgrade-tasks/{taskId} : End the rolling upgrade task
+ * Cancel the rolling upgrade task in the site. But the devices which have completed the upgrade will not be rolled back to the old version<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param taskId Task ID. The ID is the return value of 'Start batch rolling upgrade' interface. (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "End the rolling upgrade task", nickname = "cancelRollingUpgrade", notes = "Cancel the rolling upgrade task in the site. But the devices which have completed the upgrade will not be rolled back to the old version
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/rolling-upgrade-tasks/{taskId}",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity cancelRollingUpgrade(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Task ID. The ID is the return value of 'Start batch rolling upgrade' interface.",required=true) @PathVariable("taskId") String taskId);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/copy : Copy configuration
+ * Copy the configuration of one device to another device of the same model. Only for switch and access point.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39056 - Failed to copy config because of source device not exist.<br/>-39057 - Failed to copy config because of the copied device is different from the model of the source device.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceCopyConfigurationOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Copy configuration", nickname = "copyDeviceConfiguration", notes = "Copy the configuration of one device to another device of the same model. Only for switch and access point.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39056 - Failed to copy config because of source device not exist.
-39057 - Failed to copy config because of the copied device is different from the model of the source device.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/copy",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity copyDeviceConfiguration(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeviceCopyConfigurationOpenApiVo deviceCopyConfigurationOpenApiVo);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/sites/{siteId}/devices/tag : Delete an existing tag
+ * Delete an existing tag.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deleteTagOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete an existing tag", nickname = "deleteTag", notes = "Delete an existing tag.
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/tag",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteTag(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeleteTagOpenApiVo deleteTagOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/force-provision : Force provision device
+ * Force provision device.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-1 - Something went wrong. Please try again later or contact our technical support.<br/>-1001 - Invalid request parameters.<br/>-1200 - You have been logged out of the controller. This may have been caused by data restore, reboot, session timeout or disabled cloud access. Please try to log in again later.<br/>-39050 - This device does not exist.<br/>-39051 - Operation failed. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Force provision device", nickname = "forceProvisionDevice", notes = "Force provision device.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1 - Something went wrong. Please try again later or contact our technical support.
-1001 - Invalid request parameters.
-1200 - You have been logged out of the controller. This may have been caused by data restore, reboot, session timeout or disabled cloud access. Please try to log in again later.
-39050 - This device does not exist.
-39051 - Operation failed. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/force-provision",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity forceProvisionDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/forget : Forget device
+ * Forget device.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/>MSP Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39013 - Deletion failed. This device does not exist.<br/>-39014 - To avoid damage, please do not forget the device during upgrading.<br/>-39054 - Controller failed to forget device.<br/>-39055 - Controller has forgotten the device but failed to reset it.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Forget device", nickname = "forgetDevice", notes = "Forget device.
The interface requires one of the permissions:
Site Device Manager Modify
MSP Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39013 - Deletion failed. This device does not exist.
-39014 - To avoid damage, please do not forget the device during upgrading.
-39054 - Controller failed to forget device.
-39055 - Controller has forgotten the device but failed to reset it.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/forget",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity forgetDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/add/{operateId}/status : Batch get added device status
+ * Batch get added device status.<br/><br/>The interface requires one of the permissions: <br/>Site Add Device Manager Access
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param operateId (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch get added device status", nickname = "getAddDevicesStatus", notes = "Batch get added device status.
The interface requires one of the permissions:
Site Add Device Manager Access", response = OperationResponseDeviceAddProcessRespVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAddProcessRespVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/add/{operateId}/status",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getAddDevicesStatus(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "",required=true) @PathVariable("operateId") String operateId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/multi-devices/add/{operateId}/status : Batch get added device status with multi site
+ * Batch get added device status with multi site.<br/><br/>The interface requires one of the permissions: <br/>Site Add Device Manager Access
+ *
+ * @param omadacId Omada ID (required)
+ * @param operateId (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch get added device status with multi site", nickname = "getAddDevicesStatusMultiSite", notes = "Batch get added device status with multi site.
The interface requires one of the permissions:
Site Add Device Manager Access", response = OperationResponseDeviceAddProcessRespVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceAddProcessRespVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/multi-devices/add/{operateId}/status",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getAddDevicesStatusMultiSite(@ApiParam(value = "",required=true) @PathVariable("operateId") String operateId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/all-devices/check-latest-firmware-tasks/{taskId} : Get the result of the given check latest firmware task
+ * Get the result of the firmware update task, containing a list of devices with firmware updates<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param taskId Task ID. The ID is the return value of 'Start check latest firmware for all devices' interface (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the result of the given check latest firmware task", nickname = "getCheckFirmwareTaskResult", notes = "Get the result of the firmware update task, containing a list of devices with firmware updates
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseCheckFirmwareRes.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCheckFirmwareRes.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/all-devices/check-latest-firmware-tasks/{taskId}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getCheckFirmwareTaskResult(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Task ID. The ID is the return value of 'Start check latest firmware for all devices' interface",required=true) @PathVariable("taskId") String taskId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/adopt-result : Get device adopt result
+ * Get device adopt result.<br/><br/>The interface requires one of the permissions: <br/>Site Adopt Device Manager Access
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get device adopt result", nickname = "getDeviceAdoptResult", notes = "Get device adopt result.
The interface requires one of the permissions:
Site Adopt Device Manager Access", response = OperationResponseAdoptResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseAdoptResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/adopt-result",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getDeviceAdoptResult(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/devices : Get site device list
+ * Get site device list.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/>MSP Device 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 sortsName Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsStatus Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsIp Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field name,mac,ip (optional)
+ * @param filtersTag Filter query parameters, support field tag name (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get site device list", nickname = "getDeviceList", notes = "Get site device list.
The interface requires one of the permissions:
Site Device Manager View Only
MSP Device Manager View Only", response = OperationResponseGridVoDeviceInfo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoDeviceInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getDeviceList(@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.name", required = false) String sortsName,@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.status", required = false) String sortsStatus,@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.ip", required = false) String sortsIp,@ApiParam(value = "Fuzzy query parameters, support field name,mac,ip") @Valid @RequestParam(value = "searchKey", required = false) String searchKey,@ApiParam(value = "Filter query parameters, support field tag name") @Valid @RequestParam(value = "filters.tag", required = false) String filtersTag);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/latest-firmware-info : Get the latest firmware info of the device
+ * Get latest firmware info of the device, including the latest firmware version and release logs.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the latest firmware info of the device", nickname = "getFirmwareInfo", notes = "Get latest firmware info of the device, including the latest firmware version and release logs.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.", response = OperationResponseDeviceFirmwareInfo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseDeviceFirmwareInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/latest-firmware-info",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getFirmwareInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/devices/known-devices : Get global known device list
+ * Get global known device list.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/>MSP Device Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsMac Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchMacs Fuzzy query parameters, support field mac (optional)
+ * @param searchNames Fuzzy query parameters, support field name (optional)
+ * @param searchModels Fuzzy query parameters, support field model (optional)
+ * @param searchSns Fuzzy query parameters, support field sn (optional)
+ * @param filtersTag Filter query parameters, support field tag ID (optional)
+ * @param filtersDeviceSeriesType Filter query parameters, support field Device series type. 0: basic; 1: pro. (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get global known device list", nickname = "getGlobalKnownDeviceList", notes = "Get global known device list.
The interface requires one of the permissions:
Site Device Manager View Only
MSP Device Manager View Only", response = OperationResponseGridVoGlobalKnownDeviceOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoGlobalKnownDeviceOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/devices/known-devices",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGlobalKnownDeviceList(@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.mac", required = false) String sortsMac,@ApiParam(value = "Fuzzy query parameters, support field mac") @Valid @RequestParam(value = "searchMacs", required = false) String searchMacs,@ApiParam(value = "Fuzzy query parameters, support field name") @Valid @RequestParam(value = "searchNames", required = false) String searchNames,@ApiParam(value = "Fuzzy query parameters, support field model") @Valid @RequestParam(value = "searchModels", required = false) String searchModels,@ApiParam(value = "Fuzzy query parameters, support field sn") @Valid @RequestParam(value = "searchSns", required = false) String searchSns,@ApiParam(value = "Filter query parameters, support field tag ID") @Valid @RequestParam(value = "filters.tag", required = false) String filtersTag,@ApiParam(value = "Filter query parameters, support field Device series type. 0: basic; 1: pro.") @Valid @RequestParam(value = "filters.deviceSeriesType", required = false) String filtersDeviceSeriesType);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/devices/unknown-devices : Get global unknown device list
+ * Get global unknown device list.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/>MSP Device Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsMac Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchMacs Fuzzy query parameters, support field mac (optional)
+ * @param searchNames Fuzzy query parameters, support field name (optional)
+ * @param searchModels Fuzzy query parameters, support field model (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get global unknown device list", nickname = "getGlobalUnknownDeviceList", notes = "Get global unknown device list.
The interface requires one of the permissions:
Site Device Manager View Only
MSP Device Manager View Only", response = OperationResponseGridVoGlobalUnknownDeviceOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoGlobalUnknownDeviceOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/devices/unknown-devices",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGlobalUnknownDeviceList(@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.mac", required = false) String sortsMac,@ApiParam(value = "Fuzzy query parameters, support field mac") @Valid @RequestParam(value = "searchMacs", required = false) String searchMacs,@ApiParam(value = "Fuzzy query parameters, support field name") @Valid @RequestParam(value = "searchNames", required = false) String searchNames,@ApiParam(value = "Fuzzy query parameters, support field model") @Valid @RequestParam(value = "searchModels", required = false) String searchModels);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/manually-upgrade-tasks/{taskId} : Get the result of the given manually upgrade task
+ * Get the result of the manually upgrade task. The results include whether the task is finished and how many devices have not completed the upgrade.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Access
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param taskId Task ID. The ID is the return value of 'Start manually upgrade' interface. (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the result of the given manually upgrade task", nickname = "getManuallyUpgradeRes", notes = "Get the result of the manually upgrade task. The results include whether the task is finished and how many devices have not completed the upgrade.
The interface requires one of the permissions:
Site Manual Firmware Upgrade Access", response = OperationResponseUpgradeRes.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeRes.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/manually-upgrade-tasks/{taskId}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getManuallyUpgradeRes(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Task ID. The ID is the return value of 'Start manually upgrade' interface.",required=true) @PathVariable("taskId") String taskId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/online-upgrade-result : Get online upgrade result
+ * Get the result of the online upgrade.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get online upgrade result", nickname = "getOnlineUpgradeRes", notes = "Get the result of the online upgrade.
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseOnlineUpgradeRes.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseOnlineUpgradeRes.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/online-upgrade-result",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getOnlineUpgradeRes(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/rolling-upgrade-tasks/{taskId} : Get the result of the given rolling upgrade task
+ * Get the result of the rolling upgrade task. The results include whether the task is finished and how many devices have not completed the upgrade.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param taskId Task ID. The ID is the return value of 'Start batch rolling upgrade' interface. (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the result of the given rolling upgrade task", nickname = "getRollingUpgradeRes", notes = "Get the result of the rolling upgrade task. The results include whether the task is finished and how many devices have not completed the upgrade.
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseRollingUpgradeRes.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseRollingUpgradeRes.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/rolling-upgrade-tasks/{taskId}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getRollingUpgradeRes(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Task ID. The ID is the return value of 'Start batch rolling upgrade' interface.",required=true) @PathVariable("taskId") String taskId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/devices/tag : Get tag list
+ * Get tag list.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/>Site Map Manager View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get tag list", nickname = "getTags", notes = "Get tag list.
The interface requires one of the permissions:
Site Device Manager View Only
Site Map Manager View Only", response = TagRespOpenApiVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = TagRespOpenApiVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/tag",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity> getTags(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/locate : Locate device
+ * Locate device.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39005 - Failed to adopt this device because the device is not connected.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param locateDeviceRequest (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Locate device", nickname = "locateDevice", notes = "Locate device.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39005 - Failed to adopt this device because the device is not connected.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/locate",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity locateDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) LocateDeviceRequest locateDeviceRequest);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/start-manually-upgrade : Start manually upgrade
+ * Manually upgrade the devices of the same model in the site. The firmware needs to be uploaded first. Note: Each site can only execute one multi-device upgrade task at a time, and there is a number limit of the tasks that can be executed simultaneously in the controller.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Access<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/>-39020 - Failed to upgrade because no device is ready for upgrading.<br/>-39050 - This device does not exist.<br/>-43704 - The file has expired.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param upgradeRequest (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start manually upgrade", nickname = "manuallyUpgrade", notes = "Manually upgrade the devices of the same model in the site. The firmware needs to be uploaded first. Note: Each site can only execute one multi-device upgrade task at a time, and there is a number limit of the tasks that can be executed simultaneously in the controller.
The interface requires one of the permissions:
Site Manual Firmware Upgrade Access
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39020 - Failed to upgrade because no device is ready for upgrading.
-39050 - This device does not exist.
-43704 - The file has expired.", response = OperationResponseUpgradeTask.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeTask.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/start-manually-upgrade",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity manuallyUpgrade(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpgradeRequest upgradeRequest);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/devices/tag : Modify an existing tag
+ * Modify an existing tag.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param modifyTagOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify an existing tag", nickname = "modifyTag", notes = "Modify an existing tag.
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/tag",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyTag(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModifyTagOpenApiVo modifyTagOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/site-move : Move site
+ * Move the device to another site<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-33000 - This site does not exist.<br/>-33421 - The gateway model in the target site is different from the gateway model configured in the WAN Settings Overrides in the original site.<br/>-39050 - This device does not exist.<br/>-39094 - The site type does not match the device series, pro site can only manage Omada Pro device.<br/>-39095 - The site type does not match the device series, basic site can only manage Omada device.<br/>-39502 - Failed to move the gateway. The target site already has a gateway.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param deviceMoveSiteOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Move site", nickname = "moveSite", notes = "Move the device to another site
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-33000 - This site does not exist.
-33421 - The gateway model in the target site is different from the gateway model configured in the WAN Settings Overrides in the original site.
-39050 - This device does not exist.
-39094 - The site type does not match the device series, pro site can only manage Omada Pro device.
-39095 - The site type does not match the device series, basic site can only manage Omada device.
-39502 - Failed to move the gateway. The target site already has a gateway.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/site-move",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity moveSite(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) DeviceMoveSiteOpenApiVo deviceMoveSiteOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/all-devices/start-check-latest-firmware : Start check latest firmware for all devices
+ * Start a task to query the latest firmware of all devices in the cloud.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start check latest firmware for all devices", nickname = "onlineCheckUpgrade", notes = "Start a task to query the latest firmware of all devices in the cloud.
The interface requires one of the permissions:
Site Device Manager Modify", response = OperationResponseUpgradeTask.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeTask.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/all-devices/start-check-latest-firmware",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity onlineCheckUpgrade(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/start-rolling-upgrade : Start batch rolling upgrade
+ * Batch online upgrade the devices in a certain order in the site. It is suggested to check firmware update before the operation, or the firmware might not be the latest<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39020 - Failed to upgrade because no device is ready for upgrading.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param rollingUpgradeRequest (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start batch rolling upgrade", nickname = "onlineRollingUpgrade", notes = "Batch online upgrade the devices in a certain order in the site. It is suggested to check firmware update before the operation, or the firmware might not be the latest
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39020 - Failed to upgrade because no device is ready for upgrading.", response = OperationResponseUpgradeTask.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeTask.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/start-rolling-upgrade",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity onlineRollingUpgrade(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) RollingUpgradeRequest rollingUpgradeRequest);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/start-online-upgrade : Start online upgrade
+ * Upgrade the device with the latest firmware in the cloud. It is suggested to check firmware update before the operation, or the firmware might not be the latest<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39020 - Failed to upgrade because no device is ready for upgrading.<br/>-39026 - The upgrade file is the same with the current version.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Start online upgrade", nickname = "onlineUpgrade", notes = "Upgrade the device with the latest firmware in the cloud. It is suggested to check firmware update before the operation, or the firmware might not be the latest
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39020 - Failed to upgrade because no device is ready for upgrading.
-39026 - The upgrade file is the same with the current version.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/start-online-upgrade",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity onlineUpgrade(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/{deviceMac}/reboot : Reboot device
+ * Reboot device.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39006 - Operation failed. This device does not exist.<br/>-39007 - Failed to reboot this device because the device is not connected.<br/>-39008 - To avoid damage, please do not reboot the device during upgrading.<br/>-39009 - Rebooting... Please wait.<br/>-39010 - Failed to reboot. The device is synchronizing configurations.<br/>-39011 - Failed to reboot. The controller is making provision for the device.<br/>-39012 - Failed to send the reboot command to the device.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Reboot device", nickname = "rebootDevice", notes = "Reboot device.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39006 - Operation failed. This device does not exist.
-39007 - Failed to reboot this device because the device is not connected.
-39008 - To avoid damage, please do not reboot the device during upgrading.
-39009 - Rebooting... Please wait.
-39010 - Failed to reboot. The device is synchronizing configurations.
-39011 - Failed to reboot. The controller is making provision for the device.
-39012 - Failed to send the reboot command to the device.", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/{deviceMac}/reboot",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity rebootDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac);
+
+
+ /**
+ * POST /openapi/v1/msp/{mspId}/customers/{customerId}/sites/{siteId}/devices/{deviceMac}/add/retry : retry add device in msp view
+ * retry add device in msp view<br/><br/>The interface requires one of the permissions: <br/>MSP Adopt Device Manager Access<br/>MSP Add Device Manager Access
+ *
+ * @param customerId Omada ID (required)
+ * @param deviceMac Device MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param mspId (required)
+ * @param siteId (required)
+ * @param retryAddDeviceOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "retry add device in msp view", nickname = "retryAddDeviceByMsp", notes = "retry add device in msp view
The interface requires one of the permissions:
MSP Adopt Device Manager Access
MSP Add Device Manager Access", response = OperationResponseRetryAddDeviceRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseRetryAddDeviceRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/msp/{mspId}/customers/{customerId}/sites/{siteId}/devices/{deviceMac}/add/retry",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity retryAddDeviceByMsp(@ApiParam(value = "Omada ID",required=true) @PathVariable("customerId") String customerId,@ApiParam(value = "Device MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("deviceMac") String deviceMac,@ApiParam(value = "",required=true) @PathVariable("mspId") String mspId,@ApiParam(value = "",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) RetryAddDeviceOpenApiVo retryAddDeviceOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/sn-unbind-active : Change the license from the old device to the new device
+ * Change the license from the old device to the new device (using the same license).<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param unbindActiveDeviceSnOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Change the license from the old device to the new device", nickname = "unbindActiveDeviceBySn", notes = "Change the license from the old device to the new device (using the same license).
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = OperationResponseWithoutResult.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/sn-unbind-active",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity unbindActiveDeviceBySn(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UnbindActiveDeviceSnOpenApiVo unbindActiveDeviceSnOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/unbind : Batch unbind devices
+ * Batch unbind devices.<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param unbindDeviceOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch unbind devices", nickname = "unbindDevice", notes = "Batch unbind devices.
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = UnbindDeviceRespVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = UnbindDeviceRespVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/unbind",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity> unbindDevice(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UnbindDeviceOpenApiVo unbindDeviceOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/sn-unbind : Batch unbind devices by SN
+ * Batch unbind devices by SN.<br/><br/>The interface requires one of the permissions: <br/>Site Bind/Unbind License Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param unbindDeviceSnOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch unbind devices by SN", nickname = "unbindDeviceBySn", notes = "Batch unbind devices by SN.
The interface requires one of the permissions:
Site Bind/Unbind License Manager Modify", response = UnbindDeviceSnRespVo.class, responseContainer = "List", tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = UnbindDeviceSnRespVo.class, responseContainer = "List") })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/sn-unbind",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity> unbindDeviceBySn(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) UnbindDeviceSnOpenApiVo unbindDeviceSnOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/multi-devices/tag : Set device tag for given devices
+ * Set device tag for given devices.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param setTagOpenApiVo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set device tag for given devices", nickname = "updateDeviceTag", notes = "Set device tag for given devices.
The interface requires one of the permissions:
Site Device Manager Modify", response = BatchTagRespOpenApiVo.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = BatchTagRespOpenApiVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/multi-devices/tag",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity updateDeviceTag(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SetTagOpenApiVo setTagOpenApiVo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/devices/upgrade-file : Upload device firmware
+ * Upload device firmware for manually upgrade.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Access<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/>-39021 - Invalid file for upgrading.<br/>-39022 - This file size is too large.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param file Upload a file in request body. (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Upload device firmware", nickname = "uploadUpgradeFile", notes = "Upload device firmware for manually upgrade.
The interface requires one of the permissions:
Site Manual Firmware Upgrade Access
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39021 - Invalid file for upgrading.
-39022 - This file size is too large.", response = OperationResponseFile.class, tags={ "Omada/Device","Device", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseFile.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/devices/upgrade-file",
+ produces = "*/*",
+ consumes = "multipart/form-data",
+ method = RequestMethod.POST)
+ ResponseEntity uploadUpgradeFile(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Upload a file in request body.") @RequestParam("file") MultipartFile file);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaFirmwareApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaFirmwareApi.java
new file mode 100644
index 0000000..4ced963
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaFirmwareApi.java
@@ -0,0 +1,505 @@
+package org.wfc.omada.api.device;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+import org.wfc.omada.api.device.model.AutoCheckUpgradeCreateInfo;
+import org.wfc.omada.api.device.model.InlineObject;
+import org.wfc.omada.api.device.model.ModelFwReleaseNoteReqInfo;
+import org.wfc.omada.api.device.model.ModelUpgradeInfo;
+import org.wfc.omada.api.device.model.ModelUpgradeSiteReqInfo;
+import org.wfc.omada.api.device.model.OperationResponseCreateAutoCheckResInfo;
+import org.wfc.omada.api.device.model.OperationResponseCreateUpgradePlanResinfo;
+import org.wfc.omada.api.device.model.OperationResponseCriticalModelNum;
+import org.wfc.omada.api.device.model.OperationResponseGridVoAutoCheckUpgradeInfo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoFirmwareInfo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoPlanUpgradeInfo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoPlanUpgradeModelList;
+import org.wfc.omada.api.device.model.OperationResponseGridVoUpgradeFailedDeviceInfo;
+import org.wfc.omada.api.device.model.OperationResponseGridVoUpgradeLogOpenApiInfo;
+import org.wfc.omada.api.device.model.OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo;
+import org.wfc.omada.api.device.model.OperationResponseModelFwOemReleaseNoteInfo;
+import org.wfc.omada.api.device.model.OperationResponseModelUpgradeSiteInfo;
+import org.wfc.omada.api.device.model.OperationResponsePlanUpgradeModelInfo;
+import org.wfc.omada.api.device.model.OperationResponseUpgradeSettingTryBeta;
+import org.wfc.omada.api.device.model.OperationResponseUpgradeSiteModelInfo;
+import org.wfc.omada.api.device.model.OperationResponseUploadFirmwareResInfo;
+import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.device.model.PlanFirmwareUpgradeCreateInfo;
+import org.wfc.omada.api.device.model.PlanUpgradeCreateInfo;
+import org.wfc.omada.api.device.model.PlanUpgradeEditInfo;
+import org.wfc.omada.api.device.model.RollbackCreateInfo;
+import org.wfc.omada.api.device.model.UpgradeSettingTryBeta;
+import org.wfc.omada.api.device.model.UpgradeSiteModelReqInfo;
+
+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:26:16.669+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaFirmware", description = "the OmadaFirmware API")
+@FeignClient(name="OmadaFirmwareApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaFirmwareApi {
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/autoCheck : Create autocheck upgrade plan
+ * Create autocheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-30028 - The system is busy. Please try again later.<br/>-30100 - Please select at least one site.<br/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param autoCheckUpgradeCreateInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create autocheck upgrade plan", nickname = "createAutoCheckUpgrade", notes = "Create autocheck upgrade plan
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30028 - The system is busy. Please try again later.
-30100 - Please select at least one site.
-7131 - Controller ID not exist.", response = OperationResponseCreateAutoCheckResInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateAutoCheckResInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/autoCheck",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createAutoCheckUpgrade(@ApiParam(value = "" ) @Valid @RequestBody(required = false) AutoCheckUpgradeCreateInfo autoCheckUpgradeCreateInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/firmwares/{firmwareId}/upgrade/plan : Create firmware upgrade plan based on manually uploaded firmware
+ * Create an upgrade plan based on manually uploaded firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-30028 - The system is busy. Please try again later.<br/>-30100 - Please select at least one site.<br/>-39021 - Invalid file for upgrading.<br/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param firmwareId Firmware ID (required)
+ * @param planFirmwareUpgradeCreateInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create firmware upgrade plan based on manually uploaded firmware", nickname = "createFirmwareUpgradePlan", notes = "Create an upgrade plan based on manually uploaded firmware
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30028 - The system is busy. Please try again later.
-30100 - Please select at least one site.
-39021 - Invalid file for upgrading.
-7131 - Controller ID not exist.", response = OperationResponseCreateUpgradePlanResinfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUpgradePlanResinfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/firmwares/{firmwareId}/upgrade/plan",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createFirmwareUpgradePlan(@ApiParam(value = "Firmware ID",required=true) @PathVariable("firmwareId") String firmwareId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) PlanFirmwareUpgradeCreateInfo planFirmwareUpgradeCreateInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/logs/{upgradeLogId}/upgrade/overview/rollback : Create rollback plan
+ * You can choose a specific time to create a rollback plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param upgradeLogId (required)
+ * @param rollbackCreateInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create rollback plan", nickname = "createRollback", notes = "You can choose a specific time to create a rollback plan
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-7131 - Controller ID not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/logs/{upgradeLogId}/upgrade/overview/rollback",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createRollback(@ApiParam(value = "",required=true) @PathVariable("upgradeLogId") String upgradeLogId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) RollbackCreateInfo rollbackCreateInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/overview/plans : Create firmware upgrade plan
+ * Create firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-30028 - The system is busy. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param planUpgradeCreateInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Create firmware upgrade plan", nickname = "createUpgradePlan", notes = "Create firmware upgrade plan.
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30028 - The system is busy. Please try again later.", response = OperationResponseCreateUpgradePlanResinfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCreateUpgradePlanResinfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/plans",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity createUpgradePlan(@ApiParam(value = "" ) @Valid @RequestBody(required = false) PlanUpgradeCreateInfo planUpgradeCreateInfo);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/autoCheck/{autoCheckId}/upgrade : Delete autoCheck upgrade plan
+ * Delete autoCheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005 - Operation forbidden.<br/>-30028 - The system is busy. Please try again later.<br/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param autoCheckId Auto Check ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete autoCheck upgrade plan", nickname = "deleteAutoCheckUpgrade", notes = "Delete autoCheck upgrade plan
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1005 - Operation forbidden.
-30028 - The system is busy. Please try again later.
-7131 - Controller ID not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/autoCheck/{autoCheckId}/upgrade",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteAutoCheckUpgrade(@ApiParam(value = "Auto Check ID",required=true) @PathVariable("autoCheckId") String autoCheckId);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/firmwares/{firmwareId}/upgrade : Delete upgrade firmware
+ * Delete the manually uploaded firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-30028 - The system is busy. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param firmwareId Firmware ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete upgrade firmware", nickname = "deleteUpgradeFirmware", notes = "Delete the manually uploaded firmware
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30028 - The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/firmwares/{firmwareId}/upgrade",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteUpgradeFirmware(@ApiParam(value = "Firmware ID",required=true) @PathVariable("firmwareId") String firmwareId);
+
+
+ /**
+ * DELETE /openapi/v1/{omadacId}/plans/{planId}/upgrade/overview : Delete firmware upgrade plan
+ * Delete firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-30028 - The system is busy. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param planId Upgrade Plan ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Delete firmware upgrade plan", nickname = "deleteUpgradePlan", notes = "Delete firmware upgrade plan.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30028 - The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/plans/{planId}/upgrade/overview",
+ produces = "*/*",
+ method = RequestMethod.DELETE)
+ ResponseEntity deleteUpgradePlan(@ApiParam(value = "Upgrade Plan ID",required=true) @PathVariable("planId") String planId);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/autoCheck/{autoCheckId}/upgrade : Edit autoCheck upgrade plan
+ * Edit autoCheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005 - Operation forbidden.
+ *
+ * @param omadacId Omada ID (required)
+ * @param autoCheckId Auto Check ID (required)
+ * @param autoCheckUpgradeCreateInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Edit autoCheck upgrade plan", nickname = "editAutoCheckUpgrade", notes = "Edit autoCheck upgrade plan
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1005 - Operation forbidden.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/autoCheck/{autoCheckId}/upgrade",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity editAutoCheckUpgrade(@ApiParam(value = "Auto Check ID",required=true) @PathVariable("autoCheckId") String autoCheckId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) AutoCheckUpgradeCreateInfo autoCheckUpgradeCreateInfo);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/plans/{planId}/upgrade/overview : Edit firmware upgrade plan
+ * Edit firmware upgrade plan.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1005 - Operation forbidden.<br/>-30028 - The system is busy. Please try again later.
+ *
+ * @param omadacId Omada ID (required)
+ * @param planId Upgrade Plan ID (required)
+ * @param planUpgradeEditInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Edit firmware upgrade plan", nickname = "editUpgradePlan", notes = "Edit firmware upgrade plan.
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1005 - Operation forbidden.
-30028 - The system is busy. Please try again later.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/plans/{planId}/upgrade/overview",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity editUpgradePlan(@ApiParam(value = "Upgrade Plan ID",required=true) @PathVariable("planId") String planId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) PlanUpgradeEditInfo planUpgradeEditInfo);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/autoCheck : Get autocheck upgrade plan
+ * Paging to get autocheck upgrade plan<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsAutoCheckTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field upgrade (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get autocheck upgrade plan", nickname = "getGridAutoCheckUpgrade", notes = "Paging to get autocheck upgrade plan
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-7131 - Controller ID not exist.", response = OperationResponseGridVoAutoCheckUpgradeInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoAutoCheckUpgradeInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/autoCheck",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridAutoCheckUpgrade(@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.autoCheckTime", required = false) String sortsAutoCheckTime,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/firmwares : Get the uploaded firmware list
+ * Paging to get the uploaded firmware list<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsModelTypeInfo Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsUploadTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field upgrade (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the uploaded firmware list", nickname = "getGridFirmwareList", notes = "Paging to get the uploaded firmware list
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoFirmwareInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoFirmwareInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/firmwares",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridFirmwareList(@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@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.uploadTime", required = false) String sortsUploadTime,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/overview/firmwares : Get firmware pool list
+ * Paging to get firmware pool list<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501 - Omada Cloud Platform error.
+ *
+ * @param omadacId Omada ID (required)
+ * @param channel Channel should be a value as follows: 0: stable; 1: Release Candidate(RC); 2: Beta. (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 sortsModelTypeInfo Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsReleaseTime 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 firmware pool list", nickname = "getGridFirmwarePoolList", notes = "Paging to get firmware pool list
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1501 - Omada Cloud Platform error.", response = OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseModelFirmwarePoolGridInfoModelLatestFwInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/firmwares",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridFirmwarePoolList(@NotNull @ApiParam(value = "Channel should be a value as follows: 0: stable; 1: Release Candidate(RC); 2: Beta.", required = true) @Valid @RequestParam(value = "channel", required = true) Integer channel,@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@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.releaseTime", required = false) String sortsReleaseTime);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/plan/models : Get the list of models
+ * Get the list of models on the Controller upgrade plan page.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501 - Omada Cloud Platform error.
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsModelTypeInfo Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param searchKey Fuzzy query parameters, support field upgrade (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the list of models", nickname = "getGridPlanUpgradeModelList", notes = "Get the list of models on the Controller upgrade plan page.
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1501 - Omada Cloud Platform error.", response = OperationResponseGridVoPlanUpgradeModelList.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPlanUpgradeModelList.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/models",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridPlanUpgradeModelList(@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.modelTypeInfo", required = false) String sortsModelTypeInfo,@ApiParam(value = "Fuzzy query parameters, support field upgrade") @Valid @RequestParam(value = "searchKey", required = false) String searchKey);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/plan/sites : Get the sites of the selected model
+ * Paging to get the sites of the selected model<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param modelUpgradeSiteReqInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the sites of the selected model", nickname = "getGridPlanUpgradeSiteList", notes = "Paging to get the sites of the selected model
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseModelUpgradeSiteInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseModelUpgradeSiteInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/sites",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity getGridPlanUpgradeSiteList(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModelUpgradeSiteReqInfo modelUpgradeSiteReqInfo);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/overview/logs : Get firmware upgrade logs
+ * Paging to get firmware upgrade logs.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-7131 - Controller ID not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsUpgradeTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsModelTypeInfo 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 firmware upgrade logs", nickname = "getGridUpgradeLogs", notes = "Paging to get firmware upgrade logs.
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-7131 - Controller ID not exist.", response = OperationResponseGridVoUpgradeLogOpenApiInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoUpgradeLogOpenApiInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/logs",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridUpgradeLogs(@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.upgradeTime", required = false) String sortsUpgradeTime,@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.modelTypeInfo", required = false) String sortsModelTypeInfo);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/overview/plans : Get firmware upgrade plans
+ * Paging to get firmware upgrade plans.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param page Start page number. Start from 1. (required)
+ * @param pageSize Number of entries per page. It should be within the range of 1–1000. (required)
+ * @param sortsScheduledUpgradeTime Sort parameter may be one of asc or desc. Optional parameter. If it is not carried, it means it is not sorted by this field. When there are more than one, the first one takes effect (optional)
+ * @param sortsModelTypeInfo 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 firmware upgrade plans", nickname = "getGridUpgradePlans", notes = "Paging to get firmware upgrade plans.
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoPlanUpgradeInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoPlanUpgradeInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/plans",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGridUpgradePlans(@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.scheduledUpgradeTime", required = false) String sortsScheduledUpgradeTime,@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.modelTypeInfo", required = false) String sortsModelTypeInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/models : Get the model of the specified site
+ * Get the model of the specified site. If no site is specified, it defaults to all authorized sites<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param upgradeSiteModelReqInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the model of the specified site", nickname = "getModelBySites", notes = "Get the model of the specified site. If no site is specified, it defaults to all authorized sites
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseUpgradeSiteModelInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeSiteModelInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/models",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity getModelBySites(@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpgradeSiteModelReqInfo upgradeSiteModelReqInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/overview/firmwares/release-note : Get release notes information
+ * Get release notes information of a firmware series<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501 - Omada Cloud Platform error.
+ *
+ * @param omadacId Omada ID (required)
+ * @param modelFwReleaseNoteReqInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get release notes information", nickname = "getModelFirmwareReleaseNotes", notes = "Get release notes information of a firmware series
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1501 - Omada Cloud Platform error.", response = OperationResponseModelFwOemReleaseNoteInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseModelFwOemReleaseNoteInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/firmwares/release-note",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity getModelFirmwareReleaseNotes(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModelFwReleaseNoteReqInfo modelFwReleaseNoteReqInfo);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/upgrade/plan/firmware : Get the upgradeable information of the selected model
+ * Get the upgradeable information of the selected model.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501 - Omada Cloud Platform error.
+ *
+ * @param omadacId Omada ID (required)
+ * @param modelUpgradeInfo (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the upgradeable information of the selected model", nickname = "getPlanUpgradeModelInfo", notes = "Get the upgradeable information of the selected model.
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1501 - Omada Cloud Platform error.", response = OperationResponsePlanUpgradeModelInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponsePlanUpgradeModelInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/plan/firmware",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity getPlanUpgradeModelInfo(@ApiParam(value = "" ) @Valid @RequestBody(required = false) ModelUpgradeInfo modelUpgradeInfo);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/upgrade/overview/try-beta : Get try-beta switch status
+ * You can get try-beta switch status<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get try-beta switch status", nickname = "getTryBetaStatus", notes = "You can get try-beta switch status
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseUpgradeSettingTryBeta.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUpgradeSettingTryBeta.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/try-beta",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getTryBetaStatus(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/logs/{upgradeLogId}/upgrade/overview/failed-devices : Get the list of devices which upgrade failed
+ * Get the list of devices which upgrade failed through upgrade logs<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade View Only
+ *
+ * @param omadacId Omada ID (required)
+ * @param upgradeLogId (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 the list of devices which upgrade failed", nickname = "getUpgradeFailedDeviceInfos", notes = "Get the list of devices which upgrade failed through upgrade logs
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only", response = OperationResponseGridVoUpgradeFailedDeviceInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGridVoUpgradeFailedDeviceInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/logs/{upgradeLogId}/upgrade/overview/failed-devices",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getUpgradeFailedDeviceInfos(@ApiParam(value = "",required=true) @PathVariable("upgradeLogId") String upgradeLogId,@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}/upgrade/overview/critical : Get the number of critical models
+ * You can get the number of critical models.<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-1501 - Omada Cloud Platform error.
+ *
+ * @param omadacId Omada ID (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get the number of critical models", nickname = "getcriticalModelNum", notes = "You can get the number of critical models.
The interface requires one of the permissions:
Site Manual Firmware Upgrade View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-1501 - Omada Cloud Platform error.", response = OperationResponseCriticalModelNum.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseCriticalModelNum.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/critical",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getcriticalModelNum(@ApiParam(value = "Omada ID",required=true) @PathVariable("omadacId") String omadacId);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/upgrade/overview/try-beta : Modify try-beta switch status
+ * You can modify the try-beta switch status<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-34556 - Try Beta switch cannot be turned off after being turned on.
+ *
+ * @param omadacId Omada ID (required)
+ * @param upgradeSettingTryBeta (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify try-beta switch status", nickname = "modifyTryBetaStatus", notes = "You can modify the try-beta switch status
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-34556 - Try Beta switch cannot be turned off after being turned on.", response = OperationResponseWithoutResult.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/upgrade/overview/try-beta",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyTryBetaStatus(@ApiParam(value = "" ) @Valid @RequestBody(required = false) UpgradeSettingTryBeta upgradeSettingTryBeta);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/files/upgrade/firmware : Upload upgrade firmware
+ * Upload upgrade firmware<br/><br/>The interface requires one of the permissions: <br/>Site Manual Firmware Upgrade 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/>-30402 - Failed to upload the firmware file for upgrade.<br/>-39022 - This file size is too large.<br/>-39027 - Invalid upgrade file.
+ *
+ * @param omadacId Omada ID (required)
+ * @param description Description of upload firmware (required)
+ * @param showModel ShowModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\" (required)
+ * @param compoundModel CompoundModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\" (required)
+ * @param targetEnable Do the sites set up specified firmware, it should be a value as follows: true, false (required)
+ * @param targetSites Target sites ID, it exists when \"targetEnable\" is true (required)
+ * @param inlineObject (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Upload upgrade firmware", nickname = "uploadUpgradeFirmware", notes = "Upload upgrade firmware
The interface requires one of the permissions:
Site Manual Firmware Upgrade Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-30402 - Failed to upload the firmware file for upgrade.
-39022 - This file size is too large.
-39027 - Invalid upgrade file.", response = OperationResponseUploadFirmwareResInfo.class, tags={ "Omada/Firmware","Firmware", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseUploadFirmwareResInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/files/upgrade/firmware",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.POST)
+ ResponseEntity uploadUpgradeFirmware(@NotNull @ApiParam(value = "Description of upload firmware", required = true) @Valid @RequestParam(value = "description", required = true) String description,@NotNull @ApiParam(value = "ShowModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\"", required = true) @Valid @RequestParam(value = "showModel", required = true) String showModel,@NotNull @ApiParam(value = "CompoundModel of upload firmware, you can also get this field throw: \"Get the model of the specified site\"", required = true) @Valid @RequestParam(value = "compoundModel", required = true) String compoundModel,@NotNull @ApiParam(value = "Do the sites set up specified firmware, it should be a value as follows: true, false", required = true) @Valid @RequestParam(value = "targetEnable", required = true) Boolean targetEnable,@NotNull @ApiParam(value = "Target sites ID, it exists when \"targetEnable\" is true", required = true) @Valid @RequestParam(value = "targetSites", required = true) List targetSites,@ApiParam(value = "" ) @Valid @RequestBody(required = false) InlineObject inlineObject);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaGatewayApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaGatewayApi.java
new file mode 100644
index 0000000..60b9fc9
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaGatewayApi.java
@@ -0,0 +1,188 @@
+package org.wfc.omada.api.device;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+import org.wfc.omada.api.device.model.GatewayGeneralConfig;
+import org.wfc.omada.api.device.model.GatewayPortSettingConfig;
+import org.wfc.omada.api.device.model.GatewayPortsConfigEntity;
+import org.wfc.omada.api.device.model.OperationResponseGatewayGeneralConfig;
+import org.wfc.omada.api.device.model.OperationResponseGatewayInfo;
+import org.wfc.omada.api.device.model.OperationResponseGatewayPortSettingConfig;
+import org.wfc.omada.api.device.model.OperationResponseGatewayPortsConfigEntity;
+import org.wfc.omada.api.device.model.OperationResponseListGatewayWanStatusEntity;
+import org.wfc.omada.api.device.model.OperationResponseListLanStatus;
+import org.wfc.omada.api.device.model.OperationResponseOperationResponseWithoutResult;
+import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
+
+import javax.validation.Valid;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:16.669+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaGateway", description = "the OmadaGateway API")
+@FeignClient(name="OmadaGatewayApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaGatewayApi {
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/multi-ports/config : Batch modify gateway port config
+ * Batch modify gateway port config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.<br/>-39507 - Gateway mirroring port reaches max limit.<br/>-39706 - Please choose at least one port or LAG to be mirrored.<br/>-39718 - Mirrored ports contain invalid port.
+ *
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param omadacId (required)
+ * @param gatewayPortsConfigEntity (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch modify gateway port config", nickname = "batchModifyPortConfig", notes = "Batch modify gateway port config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.
-39507 - Gateway mirroring port reaches max limit.
-39706 - Please choose at least one port or LAG to be mirrored.
-39718 - Mirrored ports contain invalid port.", response = OperationResponseGatewayPortsConfigEntity.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGatewayPortsConfigEntity.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/multi-ports/config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity batchModifyPortConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) GatewayPortsConfigEntity gatewayPortsConfigEntity);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac} : Get gateway info
+ * Get gateway info<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.<br/>-39507 - Gateway mirroring port reaches max limit.<br/>-39706 - Please choose at least one port or LAG to be mirrored.<br/>-39718 - Mirrored ports contain invalid port.
+ *
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param omadacId (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get gateway info", nickname = "getGatewayInfo", notes = "Get gateway info
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.
-39507 - Gateway mirroring port reaches max limit.
-39706 - Please choose at least one port or LAG to be mirrored.
-39718 - Mirrored ports contain invalid port.", response = OperationResponseGatewayInfo.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGatewayInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGatewayInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/general-config : Get gateway general config
+ * Get gateway general config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get gateway general config", nickname = "getGeneralConfig1", notes = "Get gateway general config
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.", response = OperationResponseGatewayGeneralConfig.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGatewayGeneralConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/general-config",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGeneralConfig1(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/lan-status : Get gateway lan status
+ * Get gateway lan status<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.
+ *
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param omadacId (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get gateway lan status", nickname = "getLanStatus", notes = "Get gateway lan status
The interface requires one of the permissions:
Global Dashboard Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.", response = OperationResponseListLanStatus.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseListLanStatus.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/lan-status",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getLanStatus(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/wan-status : Get gateway wan status
+ * Get gateway wan status<br/><br/>The interface requires one of the permissions: <br/>Global Dashboard Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get gateway wan status", nickname = "getWanStatus", notes = "Get gateway wan status
The interface requires one of the permissions:
Global Dashboard Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.", response = OperationResponseListGatewayWanStatusEntity.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseListGatewayWanStatusEntity.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/wan-status",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getWanStatus(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/general-config : Modify gateway general config
+ * Modify gateway general config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param gatewayGeneralConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify gateway general config", nickname = "modifyGeneralConfig1", notes = "Modify gateway general config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.", response = OperationResponseWithoutResult.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/general-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyGeneralConfig1(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) GatewayGeneralConfig gatewayGeneralConfig);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/ports/{port}/config : Modify gateway port config
+ * Modify gateway port config<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.<br/>-39507 - Gateway mirroring port reaches max limit.<br/>-39706 - Please choose at least one port or LAG to be mirrored.<br/>-39718 - Mirrored ports contain invalid port.
+ *
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Gateway port number (required)
+ * @param omadacId (required)
+ * @param gatewayPortSettingConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify gateway port config", nickname = "modifyPortConfig", notes = "Modify gateway port config
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.
-39507 - Gateway mirroring port reaches max limit.
-39706 - Please choose at least one port or LAG to be mirrored.
-39718 - Mirrored ports contain invalid port.", response = OperationResponseGatewayPortSettingConfig.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseGatewayPortSettingConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/ports/{port}/config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyPortConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "Gateway port number",required=true) @PathVariable("port") String port,@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId,@ApiParam(value = "" ) @Valid @RequestBody(required = false) GatewayPortSettingConfig gatewayPortSettingConfig);
+
+
+ /**
+ * POST /openapi/v1/{omadacId}/sites/{siteId}/gateways/{gatewayMac}/ports/{port}/restart : Recovery gateway poe port
+ * Recovery gateway poe port<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39501 - This gateway does not exist.<br/>-39508 - The current gateway model or firmware version does not support poe restart.
+ *
+ * @param siteId Site ID (required)
+ * @param gatewayMac Gateway MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Gateway port number (required)
+ * @param omadacId (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Recovery gateway poe port", nickname = "recoveryPoePort", notes = "Recovery gateway poe port
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39501 - This gateway does not exist.
-39508 - The current gateway model or firmware version does not support poe restart.", response = OperationResponseOperationResponseWithoutResult.class, tags={ "Omada/Gateway","Gateway", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseOperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/gateways/{gatewayMac}/ports/{port}/restart",
+ produces = "*/*",
+ method = RequestMethod.POST)
+ ResponseEntity recoveryPoePort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Gateway MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("gatewayMac") String gatewayMac,@ApiParam(value = "Gateway port number",required=true) @PathVariable("port") String port,@ApiParam(value = "",required=true) @PathVariable("omadacId") String omadacId);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaSwitchApi.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaSwitchApi.java
new file mode 100644
index 0000000..bab78a8
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/OmadaSwitchApi.java
@@ -0,0 +1,357 @@
+package org.wfc.omada.api.device;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.wfc.omada.api.config.FeignConfig;
+import org.wfc.omada.api.config.FeignHttpsConfig;
+import org.wfc.omada.api.device.model.BatchProfileOverride;
+import org.wfc.omada.api.device.model.EasyManagedSwitchGeneralConfig;
+import org.wfc.omada.api.device.model.OperationResponseEasyManageOverviewInfo;
+import org.wfc.omada.api.device.model.OperationResponseEasyManagedSwitchGeneralConfig;
+import org.wfc.omada.api.device.model.OperationResponseListNetworkPortsAssociationVo;
+import org.wfc.omada.api.device.model.OperationResponseSwitchGeneralConfig;
+import org.wfc.omada.api.device.model.OperationResponseSwitchOverviewInfo;
+import org.wfc.omada.api.device.model.OperationResponseWithoutResult;
+import org.wfc.omada.api.device.model.PortNameList;
+import org.wfc.omada.api.device.model.ProfileOverride;
+import org.wfc.omada.api.device.model.SwitchGeneralConfig;
+import org.wfc.omada.api.device.model.SwitchPortName;
+import org.wfc.omada.api.device.model.SwitchPortPoe;
+import org.wfc.omada.api.device.model.SwitchPortStatus;
+import org.wfc.omada.api.device.model.SwitchPortsPoe;
+import org.wfc.omada.api.device.model.SwitchPortsStatus;
+import org.wfc.omada.api.device.model.SwitchProfileId;
+
+import javax.validation.Valid;
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:16.669+08:00[Asia/Shanghai]")
+
+@Validated
+@Api(value = "OmadaSwitch", description = "the OmadaSwitch API")
+@FeignClient(name="OmadaSwitchApi", url = "${omada.omada-url}", configuration = {FeignConfig.class, FeignHttpsConfig.class})
+public interface OmadaSwitchApi {
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/name : Batch set name for given ports
+ * Batch set name for given ports.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param portNameList (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch set name for given ports", nickname = "batchSetNameForGivenPorts", notes = "Batch set name for given ports.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/name",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity batchSetNameForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) PortNameList portNameList);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/poe-mode : Batch set poe mode for given ports
+ * Batch set poe mode for given ports. Please enable profile override first to use this interface.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-39737 - Profile override setting is disabled.<br/>-39747 - This switch does not support PoE.<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param switchPortsPoe (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch set poe mode for given ports", nickname = "batchSetPoeModeForGivenPorts", notes = "Batch set poe mode for given ports. Please enable profile override first to use this interface.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-39737 - Profile override setting is disabled.
-39747 - This switch does not support PoE.
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/poe-mode",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity batchSetPoeModeForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchPortsPoe switchPortsPoe);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/status : Batch set status for given ports
+ * Batch set status for given ports. <br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-39723 - Cannot choose mirroring or aggregating ports to batch modify.<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param switchPortsStatus (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch set status for given ports", nickname = "batchSetPortStatusForGivenPorts", notes = "Batch set status for given ports.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-39723 - Cannot choose mirroring or aggregating ports to batch modify.
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/status",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity batchSetPortStatusForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchPortsStatus switchPortsStatus);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/multi-ports/profile-override : Batch set profile-override for given ports
+ * Batch set profile-override for given ports.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param batchProfileOverride (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Batch set profile-override for given ports", nickname = "batchSetProfileOverrideForGivenPorts", notes = "Batch set profile-override for given ports.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/multi-ports/profile-override",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity batchSetProfileOverrideForGivenPorts(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) BatchProfileOverride batchProfileOverride);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/general-config : Get switch general config (easy managed switch)
+ * Get easy managed switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39700 - Switch does not exist<br/>-39743 - The smart switch should use the corresponding path.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get switch general config (easy managed switch)", nickname = "getESGeneralConfig", notes = "Get easy managed switch general config.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39700 - Switch does not exist
-39743 - The smart switch should use the corresponding path.", response = OperationResponseEasyManagedSwitchGeneralConfig.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseEasyManagedSwitchGeneralConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/general-config",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getESGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac} : Get switch info (easy managed switch)
+ * Get easy managed switch info.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39743 - The smart switch should use the corresponding path.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get switch info (easy managed switch)", nickname = "getESInfo", notes = "Get easy managed switch info.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39743 - The smart switch should use the corresponding path.", response = OperationResponseEasyManageOverviewInfo.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseEasyManageOverviewInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getESInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/network-overview : Query easy managed switch valid network
+ * Query easy managed switch valid network.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39700 - Switch does not exist<br/>-39748 - This request is only for the Easy Managed Switch.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Query easy managed switch valid network", nickname = "getESNetworkOverview", notes = "Query easy managed switch valid network.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39700 - Switch does not exist
-39748 - This request is only for the Easy Managed Switch.", response = OperationResponseListNetworkPortsAssociationVo.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseListNetworkPortsAssociationVo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/network-overview",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getESNetworkOverview(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/general-config : Get switch general config
+ * Get switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39700 - Switch does not exist<br/>-39742 - The Easy Managed Switch should use the corresponding path.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get switch general config", nickname = "getGeneralConfig", notes = "Get switch general config.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39700 - Switch does not exist
-39742 - The Easy Managed Switch should use the corresponding path.", response = OperationResponseSwitchGeneralConfig.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseSwitchGeneralConfig.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/general-config",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);
+
+
+ /**
+ * GET /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac} : Get switch info
+ * Get switch info.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager View Only<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39742 - The Easy Managed Switch should use the corresponding path.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Get switch info", nickname = "getSwitchInfo", notes = "Get switch info.
The interface requires one of the permissions:
Site Device Manager View Only
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39742 - The Easy Managed Switch should use the corresponding path.", response = OperationResponseSwitchOverviewInfo.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseSwitchOverviewInfo.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}",
+ produces = "*/*",
+ method = RequestMethod.GET)
+ ResponseEntity getSwitchInfo(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/switches/es/{switchMac}/general-config : Modify switch general config (easy managed switch)
+ * Modify easy managed switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39700 - Switch does not exist<br/>-39743 - The smart switch should use the corresponding path.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param easyManagedSwitchGeneralConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify switch general config (easy managed switch)", nickname = "modifyESGeneralConfig", notes = "Modify easy managed switch general config.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39700 - Switch does not exist
-39743 - The smart switch should use the corresponding path.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/es/{switchMac}/general-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyESGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) EasyManagedSwitchGeneralConfig easyManagedSwitchGeneralConfig);
+
+
+ /**
+ * PATCH /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/general-config : Modify switch general config
+ * Modify switch general config.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39700 - Switch does not exist<br/>-39742 - The Easy Managed Switch should use the corresponding path.<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param switchGeneralConfig (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Modify switch general config", nickname = "modifyGeneralConfig", notes = "Modify switch general config.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39700 - Switch does not exist
-39742 - The Easy Managed Switch should use the corresponding path.
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/general-config",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PATCH)
+ ResponseEntity modifyGeneralConfig(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchGeneralConfig switchGeneralConfig);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/name : Set name for given port
+ * Set name for given port.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Port ID (required)
+ * @param switchPortName (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set name for given port", nickname = "setNameForGivenPort", notes = "Set name for given port.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/name",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity setNameForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchPortName switchPortName);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/poe-mode : Set poe mode for given port
+ * Set poe mode for given port. Please enable profile override first to use this interface.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-39737 - Profile override setting is disabled.<br/>-39747 - This switch does not support PoE.<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port (required)
+ * @param switchPortPoe (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set poe mode for given port", nickname = "setPoeModeForGivenPort", notes = "Set poe mode for given port. Please enable profile override first to use this interface.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-39737 - Profile override setting is disabled.
-39747 - This switch does not support PoE.
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/poe-mode",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity setPoeModeForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "",required=true) @PathVariable("port") String port,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchPortPoe switchPortPoe);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/status : Set port status for given port
+ * Set port status for given port. <br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-39738 - Cannot choose mirroring or aggregating port to modify status.<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Port (required)
+ * @param switchPortStatus (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set port status for given port", nickname = "setPortModeForGivenPort", notes = "Set port status for given port.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-39738 - Cannot choose mirroring or aggregating port to modify status.
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/status",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity setPortModeForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port",required=true) @PathVariable("port") String port,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchPortStatus switchPortStatus);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile : Set profile for given port
+ * Set profile for given port.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-33507 - This profile does not exist.<br/>-33558 - The profile does not support the Easy Managed Switch.<br/>-33564 - The number of VLANs has reached the limit of the Easy Managed Switch.<br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Port ID (required)
+ * @param switchProfileId (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set profile for given port", nickname = "setProfileForGivenPort", notes = "Set profile for given port.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-33507 - This profile does not exist.
-33558 - The profile does not support the Easy Managed Switch.
-33564 - The number of VLANs has reached the limit of the Easy Managed Switch.
-39050 - This device does not exist.
-39701 - This port does not exist
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity setProfileForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = "" ) @Valid @RequestBody(required = false) SwitchProfileId switchProfileId);
+
+
+ /**
+ * PUT /openapi/v1/{omadacId}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile-override : Set profile-override for given port
+ * Set profile-override for given port.<br/><br/>The interface requires one of the permissions: <br/>Site Device Manager Modify<br/><br/>The possible error code for the interface in the returned body is one of the following error codes (non generic error codes): <br/>-39050 - This device does not exist.<br/>-39701 - This port does not exist<br/>-40205 - The device has been added to the stack group and related configurations cannot be modified.
+ *
+ * @param omadacId Omada ID (required)
+ * @param siteId Site ID (required)
+ * @param switchMac Switch MAC address, like AA-BB-CC-DD-EE-FF (required)
+ * @param port Port ID (required)
+ * @param profileOverride (optional)
+ * @return OK (status code 200)
+ */
+ @ApiOperation(value = "Set profile-override for given port", nickname = "setProfileOverrideForGivenPort", notes = "Set profile-override for given port.
The interface requires one of the permissions:
Site Device Manager Modify
The possible error code for the interface in the returned body is one of the following error codes (non generic error codes):
-39050 - This device does not exist.
-39701 - This port does not exist
-40205 - The device has been added to the stack group and related configurations cannot be modified.", response = OperationResponseWithoutResult.class, tags={ "Omada/Switch","Switch", })
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "OK", response = OperationResponseWithoutResult.class) })
+ @RequestMapping(value = "/openapi/v1/${omada.omadac-id}/sites/{siteId}/switches/{switchMac}/ports/{port}/profile-override",
+ produces = "*/*",
+ consumes = "application/json",
+ method = RequestMethod.PUT)
+ ResponseEntity setProfileOverrideForGivenPort(@ApiParam(value = "Site ID",required=true) @PathVariable("siteId") String siteId,@ApiParam(value = "Switch MAC address, like AA-BB-CC-DD-EE-FF",required=true) @PathVariable("switchMac") String switchMac,@ApiParam(value = "Port ID",required=true) @PathVariable("port") String port,@ApiParam(value = "" ) @Valid @RequestBody(required = false) ProfileOverride profileOverride);
+
+}
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceMultiSiteOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceMultiSiteOpenApiVo.java
new file mode 100644
index 0000000..ea666bd
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceMultiSiteOpenApiVo.java
@@ -0,0 +1,114 @@
+package org.wfc.omada.api.device.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ActiveDeviceMultiSiteOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")
+
+public class ActiveDeviceMultiSiteOpenApiVo {
+ @JsonProperty("activePairList")
+ @Valid
+ private List activePairList = new ArrayList<>();
+
+ @JsonProperty("category")
+ private String category;
+
+ public ActiveDeviceMultiSiteOpenApiVo activePairList(List activePairList) {
+ this.activePairList = activePairList;
+ return this;
+ }
+
+ public ActiveDeviceMultiSiteOpenApiVo addActivePairListItem(ActivePairMultiSiteOpenApiDto activePairListItem) {
+ this.activePairList.add(activePairListItem);
+ return this;
+ }
+
+ /**
+ * Get activePairList
+ * @return activePairList
+ */
+ @ApiModelProperty(required = true, value = "")
+ @NotNull
+
+ @Valid
+
+ public List getActivePairList() {
+ return activePairList;
+ }
+
+ public void setActivePairList(List activePairList) {
+ this.activePairList = activePairList;
+ }
+
+ public ActiveDeviceMultiSiteOpenApiVo category(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * It should be a value as follows: basic; ap; l2Switch; l3Switch; gateway
+ * @return category
+ */
+ @ApiModelProperty(required = true, value = "It should be a value as follows: basic; ap; l2Switch; l3Switch; gateway")
+ @NotNull
+
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ActiveDeviceMultiSiteOpenApiVo activeDeviceMultiSiteOpenApiVo = (ActiveDeviceMultiSiteOpenApiVo) o;
+ return Objects.equals(this.activePairList, activeDeviceMultiSiteOpenApiVo.activePairList) &&
+ Objects.equals(this.category, activeDeviceMultiSiteOpenApiVo.category);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(activePairList, category);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ActiveDeviceMultiSiteOpenApiVo {\n");
+
+ sb.append(" activePairList: ").append(toIndentedString(activePairList)).append("\n");
+ sb.append(" category: ").append(toIndentedString(category)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceOpenApiVo.java
new file mode 100644
index 0000000..ed247c4
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceOpenApiVo.java
@@ -0,0 +1,114 @@
+package org.wfc.omada.api.device.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ActiveDeviceOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")
+
+public class ActiveDeviceOpenApiVo {
+ @JsonProperty("activePairList")
+ @Valid
+ private List activePairList = new ArrayList<>();
+
+ @JsonProperty("category")
+ private String category;
+
+ public ActiveDeviceOpenApiVo activePairList(List activePairList) {
+ this.activePairList = activePairList;
+ return this;
+ }
+
+ public ActiveDeviceOpenApiVo addActivePairListItem(ActivePairOpenApiDto activePairListItem) {
+ this.activePairList.add(activePairListItem);
+ return this;
+ }
+
+ /**
+ * Get activePairList
+ * @return activePairList
+ */
+ @ApiModelProperty(required = true, value = "")
+ @NotNull
+
+ @Valid
+
+ public List getActivePairList() {
+ return activePairList;
+ }
+
+ public void setActivePairList(List activePairList) {
+ this.activePairList = activePairList;
+ }
+
+ public ActiveDeviceOpenApiVo category(String category) {
+ this.category = category;
+ return this;
+ }
+
+ /**
+ * It should be a value as follows: basic; ap; l2Switch; l3Switch; gateway
+ * @return category
+ */
+ @ApiModelProperty(required = true, value = "It should be a value as follows: basic; ap; l2Switch; l3Switch; gateway")
+ @NotNull
+
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ActiveDeviceOpenApiVo activeDeviceOpenApiVo = (ActiveDeviceOpenApiVo) o;
+ return Objects.equals(this.activePairList, activeDeviceOpenApiVo.activePairList) &&
+ Objects.equals(this.category, activeDeviceOpenApiVo.category);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(activePairList, category);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ActiveDeviceOpenApiVo {\n");
+
+ sb.append(" activePairList: ").append(toIndentedString(activePairList)).append("\n");
+ sb.append(" category: ").append(toIndentedString(category)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceRespVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceRespVo.java
new file mode 100644
index 0000000..27f8af2
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceRespVo.java
@@ -0,0 +1,101 @@
+package org.wfc.omada.api.device.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Objects;
+
+/**
+ * ActiveDeviceRespVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")
+
+public class ActiveDeviceRespVo {
+ @JsonProperty("mac")
+ private String mac;
+
+ @JsonProperty("status")
+ private Integer status;
+
+ public ActiveDeviceRespVo mac(String mac) {
+ this.mac = mac;
+ return this;
+ }
+
+ /**
+ * Get mac
+ * @return mac
+ */
+ @ApiModelProperty(value = "")
+
+
+ public String getMac() {
+ return mac;
+ }
+
+ public void setMac(String mac) {
+ this.mac = mac;
+ }
+
+ public ActiveDeviceRespVo status(Integer status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * active device status(0: success;-2002: device already active;-2003: license not enough;-2011: license category not match device;)
+ * @return status
+ */
+ @ApiModelProperty(value = "active device status(0: success;-2002: device already active;-2003: license not enough;-2011: license category not match device;)")
+
+
+ public Integer getStatus() {
+ return status;
+ }
+
+ public void setStatus(Integer status) {
+ this.status = status;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ ActiveDeviceRespVo activeDeviceRespVo = (ActiveDeviceRespVo) o;
+ return Objects.equals(this.mac, activeDeviceRespVo.mac) &&
+ Objects.equals(this.status, activeDeviceRespVo.status);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mac, status);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class ActiveDeviceRespVo {\n");
+
+ sb.append(" mac: ").append(toIndentedString(mac)).append("\n");
+ sb.append(" status: ").append(toIndentedString(status)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceSnOpenApiVo.java b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceSnOpenApiVo.java
new file mode 100644
index 0000000..36ad1ee
--- /dev/null
+++ b/wfc-api/wfc-api-omada/src/main/java/org/wfc/omada/api/device/model/ActiveDeviceSnOpenApiVo.java
@@ -0,0 +1,114 @@
+package org.wfc.omada.api.device.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * ActiveDeviceSnOpenApiVo
+ */
+@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")
+
+public class ActiveDeviceSnOpenApiVo {
+ @JsonProperty("activePairList")
+ @Valid
+ private List activePairList = new ArrayList<>();
+
+ @JsonProperty("category")
+ private String category;
+
+ public ActiveDeviceSnOpenApiVo activePairList(List activePairList) {
+ this.activePairList = activePairList;
+ return this;
+ }
+
+ public ActiveDeviceSnOpenApiVo addActivePairListItem(ActivePairSnOpenApiDto activePairListItem) {
+ this.activePairList.add(activePairListItem);
+ return this;
+ }
+
+ /**
+ * Get activePairList
+ * @return activePairList
+ */
+ @ApiModelProperty(required = true, value = "")
+ @NotNull
+
+ @Valid
+
+ public List