@ -15,221 +15,371 @@
limitations under the License.
-->
< section [ formGroup ] = " defaultTenantProfileConfigurationFormGroup " fxLayout = "column" >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-devices< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDevices"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDevices').hasError('required')" >
{{ 'tenant-profile.maximum-devices-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDevices').hasError('min')" >
{{ 'tenant-profile.maximum-devices-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-assets< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxAssets"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxAssets').hasError('required')" >
{{ 'tenant-profile.maximum-assets-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxAssets').hasError('min')" >
{{ 'tenant-profile.maximum-assets-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-customers< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxCustomers"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCustomers').hasError('required')" >
{{ 'tenant-profile.maximum-customers-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCustomers').hasError('min')" >
{{ 'tenant-profile.maximum-customers-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-users< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxUsers"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxUsers').hasError('required')" >
{{ 'tenant-profile.maximum-users-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxUsers').hasError('min')" >
{{ 'tenant-profile.maximum-users-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-dashboards< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDashboards"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDashboards').hasError('required')" >
{{ 'tenant-profile.maximum-dashboards-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDashboards').hasError('min')" >
{{ 'tenant-profile.maximum-dashboards-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-rule-chains< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxRuleChains"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleChains').hasError('required')" >
{{ 'tenant-profile.maximum-rule-chains-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleChains').hasError('min')" >
{{ 'tenant-profile.maximum-rule-chains-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-transport-messages< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxTransportMessages"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportMessages').hasError('required')" >
{{ 'tenant-profile.max-transport-messages-range' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportMessages').hasError('min')" >
{{ 'tenant-profile.max-transport-messages-required' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-transport-data-points< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxTransportDataPoints"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportDataPoints').hasError('required')" >
{{ 'tenant-profile.max-transport-data-points-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportDataPoints').hasError('min')" >
{{ 'tenant-profile.max-transport-data-points-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-r-e-executions< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxREExecutions"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxREExecutions').hasError('required')" >
{{ 'tenant-profile.max-r-e-executions-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxREExecutions').hasError('min')" >
{{ 'tenant-profile.max-r-e-executions-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-j-s-executions< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxJSExecutions"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxJSExecutions').hasError('required')" >
{{ 'tenant-profile.max-j-s-executions-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxJSExecutions').hasError('min')" >
{{ 'tenant-profile.max-j-s-executions-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-d-p-storage-days< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDPStorageDays"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDPStorageDays').hasError('required')" >
{{ 'tenant-profile.max-d-p-storage-days-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDPStorageDays').hasError('min')" >
{{ 'tenant-profile.max-d-p-storage-days-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.default-storage-ttl-days< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="defaultStorageTtlDays"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('defaultStorageTtlDays').hasError('required')" >
{{ 'tenant-profile.default-storage-ttl-days-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('defaultStorageTtlDays').hasError('min')" >
{{ 'tenant-profile.default-storage-ttl-days-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-rule-node-executions-per-message< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxRuleNodeExecutionsPerMessage"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleNodeExecutionsPerMessage').hasError('required')" >
{{ 'tenant-profile.max-rule-node-executions-per-message-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleNodeExecutionsPerMessage').hasError('min')" >
{{ 'tenant-profile.max-rule-node-executions-per-message-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-emails< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxEmails"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxEmails').hasError('required')" >
{{ 'tenant-profile.max-emails-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxEmails').hasError('min')" >
{{ 'tenant-profile.max-emails-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-sms< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxSms"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxSms').hasError('required')" >
{{ 'tenant-profile.max-sms-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxSms').hasError('min')" >
{{ 'tenant-profile.max-sms-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-created-alarms< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxCreatedAlarms"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCreatedAlarms').hasError('required')" >
{{ 'tenant-profile.max-created-alarms-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCreatedAlarms').hasError('min')" >
{{ 'tenant-profile.max-created-alarms-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantMsgRateLimit" >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-telemetry-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantTelemetryMsgRateLimit" >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-telemetry-data-points-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantTelemetryDataPointsRateLimit" >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceMsgRateLimit" >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-telemetry-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceTelemetryMsgRateLimit" >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-telemetry-data-points-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceTelemetryDataPointsRateLimit" >
< / mat-form-field >
< section [ formGroup ] = " defaultTenantProfileConfigurationFormGroup " fxLayout = "column" fxLayoutGap = "20px" >
< mat-accordion [ multi ] = " true " >
< mat-expansion-panel >
< mat-expansion-panel-header >
Thingsboard rate limits
< / mat-expansion-panel-header >
< ng-template matExpansionPanelContent >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-devices< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDevices"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDevices').hasError('required')" >
{{ 'tenant-profile.maximum-devices-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDevices').hasError('min')" >
{{ 'tenant-profile.maximum-devices-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-assets< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxAssets"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxAssets').hasError('required')" >
{{ 'tenant-profile.maximum-assets-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxAssets').hasError('min')" >
{{ 'tenant-profile.maximum-assets-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-customers< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxCustomers"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCustomers').hasError('required')" >
{{ 'tenant-profile.maximum-customers-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCustomers').hasError('min')" >
{{ 'tenant-profile.maximum-customers-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-users< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxUsers"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxUsers').hasError('required')" >
{{ 'tenant-profile.maximum-users-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxUsers').hasError('min')" >
{{ 'tenant-profile.maximum-users-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-dashboards< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDashboards"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDashboards').hasError('required')" >
{{ 'tenant-profile.maximum-dashboards-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDashboards').hasError('min')" >
{{ 'tenant-profile.maximum-dashboards-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.maximum-rule-chains< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxRuleChains"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleChains').hasError('required')" >
{{ 'tenant-profile.maximum-rule-chains-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleChains').hasError('min')" >
{{ 'tenant-profile.maximum-rule-chains-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-transport-messages< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxTransportMessages"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportMessages').hasError('required')" >
{{ 'tenant-profile.max-transport-messages-range' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportMessages').hasError('min')" >
{{ 'tenant-profile.max-transport-messages-required' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-transport-data-points< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxTransportDataPoints"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportDataPoints').hasError('required')" >
{{ 'tenant-profile.max-transport-data-points-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxTransportDataPoints').hasError('min')" >
{{ 'tenant-profile.max-transport-data-points-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-r-e-executions< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxREExecutions"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxREExecutions').hasError('required')" >
{{ 'tenant-profile.max-r-e-executions-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxREExecutions').hasError('min')" >
{{ 'tenant-profile.max-r-e-executions-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-j-s-executions< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxJSExecutions"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxJSExecutions').hasError('required')" >
{{ 'tenant-profile.max-j-s-executions-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxJSExecutions').hasError('min')" >
{{ 'tenant-profile.max-j-s-executions-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-d-p-storage-days< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxDPStorageDays"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDPStorageDays').hasError('required')" >
{{ 'tenant-profile.max-d-p-storage-days-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxDPStorageDays').hasError('min')" >
{{ 'tenant-profile.max-d-p-storage-days-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.default-storage-ttl-days< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="defaultStorageTtlDays"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('defaultStorageTtlDays').hasError('required')" >
{{ 'tenant-profile.default-storage-ttl-days-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('defaultStorageTtlDays').hasError('min')" >
{{ 'tenant-profile.default-storage-ttl-days-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-rule-node-executions-per-message< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxRuleNodeExecutionsPerMessage"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleNodeExecutionsPerMessage').hasError('required')" >
{{ 'tenant-profile.max-rule-node-executions-per-message-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxRuleNodeExecutionsPerMessage').hasError('min')" >
{{ 'tenant-profile.max-rule-node-executions-per-message-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-emails< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxEmails"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxEmails').hasError('required')" >
{{ 'tenant-profile.max-emails-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxEmails').hasError('min')" >
{{ 'tenant-profile.max-emails-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-sms< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxSms"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxSms').hasError('required')" >
{{ 'tenant-profile.max-sms-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxSms').hasError('min')" >
{{ 'tenant-profile.max-sms-range' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.max-created-alarms< / mat-label >
< input matInput required min = "0" step = "1"
formControlName="maxCreatedAlarms"
type="number">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCreatedAlarms').hasError('required')" >
{{ 'tenant-profile.max-created-alarms-required' | translate}}
< / mat-error >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('maxCreatedAlarms').hasError('min')" >
{{ 'tenant-profile.max-created-alarms-range' | translate}}
< / mat-error >
< / mat-form-field >
< / ng-template >
< / mat-expansion-panel >
< mat-expansion-panel >
< mat-expansion-panel-header >
Server rate limits
< / mat-expansion-panel-header >
< ng-template matExpansionPanelContent >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.tenant-rest-limits< / mat-label >
< input matInput
formControlName="rateLimitsTenantConfiguration"
type="text">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('rateLimitsTenantConfiguration').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.customer-rest-limits< / mat-label >
< input matInput
formControlName="rateLimitsCustomerConfiguration"
type="text">
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('rateLimitsCustomerConfiguration').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< / ng-template >
< / mat-expansion-panel >
< mat-expansion-panel >
< mat-expansion-panel-header >
Transport rate limits
< / mat-expansion-panel-header >
< ng-template matExpansionPanelContent >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantMsgRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportTenantMsgRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-telemetry-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantTelemetryMsgRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportTenantTelemetryMsgRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-tenant-telemetry-data-points-rate-limit< / mat-label >
< input matInput formControlName = "transportTenantTelemetryDataPointsRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportTenantTelemetryDataPointsRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceMsgRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportDeviceMsgRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-telemetry-msg-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceTelemetryMsgRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportDeviceTelemetryMsgRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.transport-device-telemetry-data-points-rate-limit< / mat-label >
< input matInput formControlName = "transportDeviceTelemetryDataPointsRateLimit" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('transportDeviceTelemetryDataPointsRateLimit').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< / ng-template >
< / mat-expansion-panel >
< mat-expansion-panel >
< mat-expansion-panel-header >
Web Socket rate limits
< / mat-expansion-panel-header >
< ng-template matExpansionPanelContent >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-sessions-per-tenant< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSessionsPerTenant" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSessionsPerTenant').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-sessions-per-customer< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSessionsPerCustomer" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSessionsPerCustomer').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-sessions-per-public-user< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSessionsPerPublicUser" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSessionsPerPublicUser').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-queue-per-session< / mat-label >
< input matInput type = "number" formControlName = "wsLimitQueuePerWsSession" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitQueuePerWsSession').hasError('min')" >
{{ 'tenant-profile.too-small-value-one' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-subscriptions-per-tenant< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSubscriptionsPerTenant" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSubscriptionsPerTenant').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-subscriptions-per-customer< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSubscriptionsPerCustomer" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSubscriptionsPerCustomer').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-subscriptions-per-regular-user< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSubscriptionsPerRegularUser" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSubscriptionsPerRegularUser').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-max-subscriptions-per-public-user< / mat-label >
< input matInput type = "number" formControlName = "wsLimitMaxSubscriptionsPerPublicUser" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitMaxSubscriptionsPerPublicUser').hasError('min')" >
{{ 'tenant-profile.too-small-value-zero' | translate}}
< / mat-error >
< / mat-form-field >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.ws-limit-updates-per-session< / mat-label >
< input matInput type = "text" formControlName = "wsLimitUpdatesPerSession" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('wsLimitUpdatesPerSession').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< / ng-template >
< / mat-expansion-panel >
< mat-expansion-panel >
< mat-expansion-panel-header >
Cassandra rate limits
< / mat-expansion-panel-header >
< ng-template matExpansionPanelContent >
< mat-form-field class = "mat-block" >
< mat-label translate > tenant-profile.cassandra-tenant-limits-configuration< / mat-label >
< input matInput type = "text" formControlName = "cassandraTenantLimitsConfiguration" >
< mat-error * ngIf = "defaultTenantProfileConfigurationFormGroup.get('cassandraTenantLimitsConfiguration').hasError('pattern')" >
{{ 'tenant-profile.incorrect-pattern-for-rate-limits' | translate}}
< / mat-error >
< / mat-form-field >
< mat-checkbox formControlName = "printTenantNames" >
{{ 'tenant-profile.cassandra-print-tenant-names' | translate }}
< / mat-checkbox >
< / ng-template >
< / mat-expansion-panel >
< / mat-accordion >
< / section >