Browse Source

Merge pull request #11018 from dashevchenko/swaggerImpr

Updated TenantProfile swagger example
pull/11046/head
Viacheslav Klimov 2 years ago
committed by GitHub
parent
commit
a6dcb8fe3c
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java
  2. 6
      common/data/src/main/java/org/thingsboard/server/common/data/TenantProfile.java
  3. 29
      common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java
  4. 3
      common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/TenantProfileConfiguration.java

6
application/src/main/java/org/thingsboard/server/controller/TenantProfileController.java

@ -118,8 +118,8 @@ public class TenantProfileController extends BaseController {
"Let's review the example of tenant profile data below: " + "Let's review the example of tenant profile data below: " +
"\n\n" + MARKDOWN_CODE_BLOCK_START + "\n\n" + MARKDOWN_CODE_BLOCK_START +
"{\n" + "{\n" +
" \"name\": \"Default\",\n" + " \"name\": \"Your name\",\n" +
" \"description\": \"Default tenant profile\",\n" + " \"description\": \"Your description\",\n" +
" \"isolatedTbRuleEngine\": false,\n" + " \"isolatedTbRuleEngine\": false,\n" +
" \"profileData\": {\n" + " \"profileData\": {\n" +
" \"configuration\": {\n" + " \"configuration\": {\n" +
@ -162,7 +162,7 @@ public class TenantProfileController extends BaseController {
" \"warnThreshold\": 0\n" + " \"warnThreshold\": 0\n" +
" }\n" + " }\n" +
" },\n" + " },\n" +
" \"default\": true\n" + " \"default\": false\n" +
"}" + "}" +
MARKDOWN_CODE_BLOCK_END + MARKDOWN_CODE_BLOCK_END +
"Remove 'id', from the request body example (below) to create new Tenant Profile entity." + "Remove 'id', from the request body example (below) to create new Tenant Profile entity." +

6
common/data/src/main/java/org/thingsboard/server/common/data/TenantProfile.java

@ -16,6 +16,7 @@
package org.thingsboard.server.common.data; package org.thingsboard.server.common.data;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
@ -51,10 +52,11 @@ public class TenantProfile extends BaseData<TenantProfileId> implements HasName
@NoXss @NoXss
@Schema(description = "Description of the tenant profile", example = "Any text") @Schema(description = "Description of the tenant profile", example = "Any text")
private String description; private String description;
@Schema(description = "Default Tenant profile to be used.", example = "true") @Schema(description = "Default Tenant profile to be used.", example = "false")
@JsonProperty("default")
private boolean isDefault; private boolean isDefault;
@Schema(description = "If enabled, will push all messages related to this tenant and processed by the rule engine into separate queue. " + @Schema(description = "If enabled, will push all messages related to this tenant and processed by the rule engine into separate queue. " +
"Useful for complex microservices deployments, to isolate processing of the data for specific tenants", example = "true") "Useful for complex microservices deployments, to isolate processing of the data for specific tenants", example = "false")
private boolean isolatedTbRuleEngine; private boolean isolatedTbRuleEngine;
@Schema(description = "Complex JSON object that contains profile settings: queue configs, max devices, max assets, rate limits, etc.") @Schema(description = "Complex JSON object that contains profile settings: queue configs, max devices, max assets, rate limits, etc.")
private transient TenantProfileData profileData; private transient TenantProfileData profileData;

29
common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java

@ -15,6 +15,7 @@
*/ */
package org.thingsboard.server.common.data.tenant.profile; package org.thingsboard.server.common.data.tenant.profile;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -23,6 +24,7 @@ import org.thingsboard.server.common.data.ApiUsageRecordKey;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.TenantProfileType; import org.thingsboard.server.common.data.TenantProfileType;
@Schema
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Builder @Builder
@ -41,34 +43,61 @@ public class DefaultTenantProfileConfiguration implements TenantProfileConfigura
private long maxOtaPackagesInBytes; private long maxOtaPackagesInBytes;
private long maxResourceSize; private long maxResourceSize;
@Schema(example = "1000:1,20000:60")
private String transportTenantMsgRateLimit; private String transportTenantMsgRateLimit;
@Schema(example = "1000:1,20000:60")
private String transportTenantTelemetryMsgRateLimit; private String transportTenantTelemetryMsgRateLimit;
@Schema(example = "1000:1,20000:60")
private String transportTenantTelemetryDataPointsRateLimit; private String transportTenantTelemetryDataPointsRateLimit;
@Schema(example = "20:1,600:60")
private String transportDeviceMsgRateLimit; private String transportDeviceMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportDeviceTelemetryMsgRateLimit; private String transportDeviceTelemetryMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportDeviceTelemetryDataPointsRateLimit; private String transportDeviceTelemetryDataPointsRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayMsgRateLimit; private String transportGatewayMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayTelemetryMsgRateLimit; private String transportGatewayTelemetryMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayTelemetryDataPointsRateLimit; private String transportGatewayTelemetryDataPointsRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayDeviceMsgRateLimit; private String transportGatewayDeviceMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayDeviceTelemetryMsgRateLimit; private String transportGatewayDeviceTelemetryMsgRateLimit;
@Schema(example = "20:1,600:60")
private String transportGatewayDeviceTelemetryDataPointsRateLimit; private String transportGatewayDeviceTelemetryDataPointsRateLimit;
@Schema(example = "20:1,600:60")
private String tenantEntityExportRateLimit; private String tenantEntityExportRateLimit;
@Schema(example = "20:1,600:60")
private String tenantEntityImportRateLimit; private String tenantEntityImportRateLimit;
@Schema(example = "20:1,600:60")
private String tenantNotificationRequestsRateLimit; private String tenantNotificationRequestsRateLimit;
@Schema(example = "20:1,600:60")
private String tenantNotificationRequestsPerRuleRateLimit; private String tenantNotificationRequestsPerRuleRateLimit;
@Schema(example = "10000000")
private long maxTransportMessages; private long maxTransportMessages;
@Schema(example = "10000000")
private long maxTransportDataPoints; private long maxTransportDataPoints;
@Schema(example = "4000000")
private long maxREExecutions; private long maxREExecutions;
@Schema(example = "5000000")
private long maxJSExecutions; private long maxJSExecutions;
@Schema(example = "5000000")
private long maxTbelExecutions; private long maxTbelExecutions;
@Schema(example = "0")
private long maxDPStorageDays; private long maxDPStorageDays;
@Schema(example = "50")
private int maxRuleNodeExecutionsPerMessage; private int maxRuleNodeExecutionsPerMessage;
@Schema(example = "0")
private long maxEmails; private long maxEmails;
@Schema(example = "true")
private Boolean smsEnabled; private Boolean smsEnabled;
@Schema(example = "0")
private long maxSms; private long maxSms;
@Schema(example = "1000")
private long maxCreatedAlarms; private long maxCreatedAlarms;
private String tenantServerRestLimitsConfiguration; private String tenantServerRestLimitsConfiguration;

3
common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/TenantProfileConfiguration.java

@ -19,6 +19,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.swagger.v3.oas.annotations.media.DiscriminatorMapping;
import io.swagger.v3.oas.annotations.media.Schema;
import org.thingsboard.server.common.data.ApiUsageRecordKey; import org.thingsboard.server.common.data.ApiUsageRecordKey;
import org.thingsboard.server.common.data.TenantProfileType; import org.thingsboard.server.common.data.TenantProfileType;
@ -31,6 +33,7 @@ import java.io.Serializable;
property = "type") property = "type")
@JsonSubTypes({ @JsonSubTypes({
@JsonSubTypes.Type(value = DefaultTenantProfileConfiguration.class, name = "DEFAULT")}) @JsonSubTypes.Type(value = DefaultTenantProfileConfiguration.class, name = "DEFAULT")})
@Schema(discriminatorProperty = "type", discriminatorMapping = {@DiscriminatorMapping(value = "DEFAULT", schema = DefaultTenantProfileConfiguration.class)})
public interface TenantProfileConfiguration extends Serializable { public interface TenantProfileConfiguration extends Serializable {
@JsonIgnore @JsonIgnore

Loading…
Cancel
Save