io.nats.client.api.AccountLimits Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jnats Show documentation
Show all versions of jnats Show documentation
Client library for working with the NATS messaging system.
// Copyright 2020 The NATS Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package io.nats.client.api;
import io.nats.client.support.JsonValue;
import static io.nats.client.support.ApiConstants.*;
import static io.nats.client.support.JsonValueUtils.readBoolean;
import static io.nats.client.support.JsonValueUtils.readLong;
/**
* Represents the JetStream Account Limits
*/
public class AccountLimits {
private final long maxMemory;
private final long maxStorage;
private final long maxStreams;
private final long maxConsumers;
private final long maxAckPending;
private final long memoryMaxStreamBytes;
private final long storageMaxStreamBytes;
private final boolean maxBytesRequired;
AccountLimits(JsonValue vAccountLimits) {
this.maxMemory = readLong(vAccountLimits, MAX_MEMORY, 0);
this.maxStorage = readLong(vAccountLimits, MAX_STORAGE, 0);
this.maxStreams = readLong(vAccountLimits, MAX_STREAMS, 0);
this.maxConsumers = readLong(vAccountLimits, MAX_CONSUMERS, 0);
this.maxAckPending = readLong(vAccountLimits, MAX_ACK_PENDING, 0);
this.memoryMaxStreamBytes = readLong(vAccountLimits, MEMORY_MAX_STREAM_BYTES, 0);
this.storageMaxStreamBytes = readLong(vAccountLimits, STORAGE_MAX_STREAM_BYTES, 0);
this.maxBytesRequired = readBoolean(vAccountLimits, MAX_BYTES_REQUIRED);
}
/**
* The maximum amount of Memory storage Stream Messages may consume.
* @return bytes
*/
public long getMaxMemory() {
return maxMemory;
}
/**
* The maximum amount of File storage Stream Messages may consume.
* @return bytes
*/
public long getMaxStorage() {
return maxStorage;
}
/**
* The maximum number of Streams an account can create.
* @return stream maximum count
*/
public long getMaxStreams() {
return maxStreams;
}
/**
* The maximum number of Consumers an account can create.
* @return consumer maximum count
*/
public long getMaxConsumers() {
return maxConsumers;
}
/**
* The maximum number of outstanding ACKs any consumer may configure.
* @return the configuration count
*/
public long getMaxAckPending() {
return maxAckPending;
}
/**
* The maximum size any single memory stream may be.
* @return bytes
*/
public long getMemoryMaxStreamBytes() {
return memoryMaxStreamBytes;
}
/**
* The maximum size any single storage based stream may be.
* @return bytes
*/
public long getStorageMaxStreamBytes() {
return storageMaxStreamBytes;
}
/**
* Indicates if streams created in this account requires the max_bytes property set.
* @return the flag
*/
public boolean isMaxBytesRequired() {
return maxBytesRequired;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy