io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricNetworkProps Maven / Gradle / Ivy
Show all versions of cdk-hyperledger-fabric-network Show documentation
package io.github.cdklabs.cdkhyperledgerfabricnetwork;
/**
* Construct properties for HyperledgerFabricNetwork
.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-08-31T00:15:42.272Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdkhyperledgerfabricnetwork.$Module.class, fqn = "@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps")
@software.amazon.jsii.Jsii.Proxy(HyperledgerFabricNetworkProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public interface HyperledgerFabricNetworkProps extends software.amazon.jsii.JsiiSerializable {
/**
* Managed Blockchain member name.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getMemberName();
/**
* Managed Blockchain network name.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@org.jetbrains.annotations.NotNull java.lang.String getNetworkName();
/**
* The Client network to interact with the Hyperledger Fabric network.
*
* Default: - Client network with Default properties
* (CIDR-`10.0.0.0/16` and subnets of type `PRIVATE_ISOLATED`)
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps getClient() {
return null;
}
/**
* The configuration to enable or disable certificate authority logging.
*
* Default: - true
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getEnableCaLogging() {
return null;
}
/**
* Configuration to enable/disable enrollment of admin user.
*
* Default: - true
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getEnrollAdmin() {
return null;
}
/**
* Hyperledger Fabric framework version.
*
* Default: - FrameworkVersion.VERSION_1_4
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion getFrameworkVersion() {
return null;
}
/**
* Managed Blockchain member description.
*
* Default: - Set to match member name
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getMemberDescription() {
return null;
}
/**
* Managed Blockchain network description.
*
* Default: - Set to match network name
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.String getNetworkDescription() {
return null;
}
/**
* Managed Blockchain network edition.
*
* Default: - NetworkEdition.STANDARD
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition getNetworkEdition() {
return null;
}
/**
* List of nodes to create on the network.
*
* Default: - One node with default configuration
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getNodes() {
return null;
}
/**
* The duration from the time that a proposal is created until it expires.
*
* Default: - 24 hours
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getProposalDurationInHours() {
return null;
}
/**
* Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
*
* Default: - GREATER_THAN
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator getThresholdComparator() {
return null;
}
/**
* The percentage of votes among all members that must be yes for a proposal to be approved.
*
* Default: - 50 percent
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.lang.Number getThresholdPercentage() {
return null;
}
/**
* List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
default @org.jetbrains.annotations.Nullable java.util.List getUsers() {
return null;
}
/**
* @return a {@link Builder} of {@link HyperledgerFabricNetworkProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link HyperledgerFabricNetworkProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String memberName;
java.lang.String networkName;
io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps client;
java.lang.Boolean enableCaLogging;
java.lang.Boolean enrollAdmin;
io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion frameworkVersion;
java.lang.String memberDescription;
java.lang.String networkDescription;
io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition networkEdition;
java.util.List nodes;
java.lang.Number proposalDurationInHours;
io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator thresholdComparator;
java.lang.Number thresholdPercentage;
java.util.List users;
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getMemberName}
* @param memberName Managed Blockchain member name. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder memberName(java.lang.String memberName) {
this.memberName = memberName;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getNetworkName}
* @param networkName Managed Blockchain network name. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder networkName(java.lang.String networkName) {
this.networkName = networkName;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getClient}
* @param client The Client network to interact with the Hyperledger Fabric network.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder client(io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps client) {
this.client = client;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getEnableCaLogging}
* @param enableCaLogging The configuration to enable or disable certificate authority logging.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enableCaLogging(java.lang.Boolean enableCaLogging) {
this.enableCaLogging = enableCaLogging;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getEnrollAdmin}
* @param enrollAdmin Configuration to enable/disable enrollment of admin user.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder enrollAdmin(java.lang.Boolean enrollAdmin) {
this.enrollAdmin = enrollAdmin;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getFrameworkVersion}
* @param frameworkVersion Hyperledger Fabric framework version.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder frameworkVersion(io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion frameworkVersion) {
this.frameworkVersion = frameworkVersion;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getMemberDescription}
* @param memberDescription Managed Blockchain member description.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder memberDescription(java.lang.String memberDescription) {
this.memberDescription = memberDescription;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getNetworkDescription}
* @param networkDescription Managed Blockchain network description.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder networkDescription(java.lang.String networkDescription) {
this.networkDescription = networkDescription;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getNetworkEdition}
* @param networkEdition Managed Blockchain network edition.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder networkEdition(io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition networkEdition) {
this.networkEdition = networkEdition;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getNodes}
* @param nodes List of nodes to create on the network.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder nodes(java.util.List extends io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricNodeProps> nodes) {
this.nodes = (java.util.List)nodes;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getProposalDurationInHours}
* @param proposalDurationInHours The duration from the time that a proposal is created until it expires.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder proposalDurationInHours(java.lang.Number proposalDurationInHours) {
this.proposalDurationInHours = proposalDurationInHours;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getThresholdComparator}
* @param thresholdComparator Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder thresholdComparator(io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator thresholdComparator) {
this.thresholdComparator = thresholdComparator;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getThresholdPercentage}
* @param thresholdPercentage The percentage of votes among all members that must be yes for a proposal to be approved.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder thresholdPercentage(java.lang.Number thresholdPercentage) {
this.thresholdPercentage = thresholdPercentage;
return this;
}
/**
* Sets the value of {@link HyperledgerFabricNetworkProps#getUsers}
* @param users List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@SuppressWarnings("unchecked")
public Builder users(java.util.List extends io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricUserProps> users) {
this.users = (java.util.List)users;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link HyperledgerFabricNetworkProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public HyperledgerFabricNetworkProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link HyperledgerFabricNetworkProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements HyperledgerFabricNetworkProps {
private final java.lang.String memberName;
private final java.lang.String networkName;
private final io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps client;
private final java.lang.Boolean enableCaLogging;
private final java.lang.Boolean enrollAdmin;
private final io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion frameworkVersion;
private final java.lang.String memberDescription;
private final java.lang.String networkDescription;
private final io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition networkEdition;
private final java.util.List nodes;
private final java.lang.Number proposalDurationInHours;
private final io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator thresholdComparator;
private final java.lang.Number thresholdPercentage;
private final java.util.List users;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.memberName = software.amazon.jsii.Kernel.get(this, "memberName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.networkName = software.amazon.jsii.Kernel.get(this, "networkName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.client = software.amazon.jsii.Kernel.get(this, "client", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps.class));
this.enableCaLogging = software.amazon.jsii.Kernel.get(this, "enableCaLogging", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.enrollAdmin = software.amazon.jsii.Kernel.get(this, "enrollAdmin", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.frameworkVersion = software.amazon.jsii.Kernel.get(this, "frameworkVersion", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion.class));
this.memberDescription = software.amazon.jsii.Kernel.get(this, "memberDescription", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.networkDescription = software.amazon.jsii.Kernel.get(this, "networkDescription", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.networkEdition = software.amazon.jsii.Kernel.get(this, "networkEdition", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition.class));
this.nodes = software.amazon.jsii.Kernel.get(this, "nodes", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricNodeProps.class)));
this.proposalDurationInHours = software.amazon.jsii.Kernel.get(this, "proposalDurationInHours", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.thresholdComparator = software.amazon.jsii.Kernel.get(this, "thresholdComparator", software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator.class));
this.thresholdPercentage = software.amazon.jsii.Kernel.get(this, "thresholdPercentage", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
this.users = software.amazon.jsii.Kernel.get(this, "users", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricUserProps.class)));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.memberName = java.util.Objects.requireNonNull(builder.memberName, "memberName is required");
this.networkName = java.util.Objects.requireNonNull(builder.networkName, "networkName is required");
this.client = builder.client;
this.enableCaLogging = builder.enableCaLogging;
this.enrollAdmin = builder.enrollAdmin;
this.frameworkVersion = builder.frameworkVersion;
this.memberDescription = builder.memberDescription;
this.networkDescription = builder.networkDescription;
this.networkEdition = builder.networkEdition;
this.nodes = (java.util.List)builder.nodes;
this.proposalDurationInHours = builder.proposalDurationInHours;
this.thresholdComparator = builder.thresholdComparator;
this.thresholdPercentage = builder.thresholdPercentage;
this.users = (java.util.List)builder.users;
}
@Override
public final java.lang.String getMemberName() {
return this.memberName;
}
@Override
public final java.lang.String getNetworkName() {
return this.networkName;
}
@Override
public final io.github.cdklabs.cdkhyperledgerfabricnetwork.HyperledgerFabricClientProps getClient() {
return this.client;
}
@Override
public final java.lang.Boolean getEnableCaLogging() {
return this.enableCaLogging;
}
@Override
public final java.lang.Boolean getEnrollAdmin() {
return this.enrollAdmin;
}
@Override
public final io.github.cdklabs.cdkhyperledgerfabricnetwork.FrameworkVersion getFrameworkVersion() {
return this.frameworkVersion;
}
@Override
public final java.lang.String getMemberDescription() {
return this.memberDescription;
}
@Override
public final java.lang.String getNetworkDescription() {
return this.networkDescription;
}
@Override
public final io.github.cdklabs.cdkhyperledgerfabricnetwork.NetworkEdition getNetworkEdition() {
return this.networkEdition;
}
@Override
public final java.util.List getNodes() {
return this.nodes;
}
@Override
public final java.lang.Number getProposalDurationInHours() {
return this.proposalDurationInHours;
}
@Override
public final io.github.cdklabs.cdkhyperledgerfabricnetwork.ThresholdComparator getThresholdComparator() {
return this.thresholdComparator;
}
@Override
public final java.lang.Number getThresholdPercentage() {
return this.thresholdPercentage;
}
@Override
public final java.util.List getUsers() {
return this.users;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("memberName", om.valueToTree(this.getMemberName()));
data.set("networkName", om.valueToTree(this.getNetworkName()));
if (this.getClient() != null) {
data.set("client", om.valueToTree(this.getClient()));
}
if (this.getEnableCaLogging() != null) {
data.set("enableCaLogging", om.valueToTree(this.getEnableCaLogging()));
}
if (this.getEnrollAdmin() != null) {
data.set("enrollAdmin", om.valueToTree(this.getEnrollAdmin()));
}
if (this.getFrameworkVersion() != null) {
data.set("frameworkVersion", om.valueToTree(this.getFrameworkVersion()));
}
if (this.getMemberDescription() != null) {
data.set("memberDescription", om.valueToTree(this.getMemberDescription()));
}
if (this.getNetworkDescription() != null) {
data.set("networkDescription", om.valueToTree(this.getNetworkDescription()));
}
if (this.getNetworkEdition() != null) {
data.set("networkEdition", om.valueToTree(this.getNetworkEdition()));
}
if (this.getNodes() != null) {
data.set("nodes", om.valueToTree(this.getNodes()));
}
if (this.getProposalDurationInHours() != null) {
data.set("proposalDurationInHours", om.valueToTree(this.getProposalDurationInHours()));
}
if (this.getThresholdComparator() != null) {
data.set("thresholdComparator", om.valueToTree(this.getThresholdComparator()));
}
if (this.getThresholdPercentage() != null) {
data.set("thresholdPercentage", om.valueToTree(this.getThresholdPercentage()));
}
if (this.getUsers() != null) {
data.set("users", om.valueToTree(this.getUsers()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
HyperledgerFabricNetworkProps.Jsii$Proxy that = (HyperledgerFabricNetworkProps.Jsii$Proxy) o;
if (!memberName.equals(that.memberName)) return false;
if (!networkName.equals(that.networkName)) return false;
if (this.client != null ? !this.client.equals(that.client) : that.client != null) return false;
if (this.enableCaLogging != null ? !this.enableCaLogging.equals(that.enableCaLogging) : that.enableCaLogging != null) return false;
if (this.enrollAdmin != null ? !this.enrollAdmin.equals(that.enrollAdmin) : that.enrollAdmin != null) return false;
if (this.frameworkVersion != null ? !this.frameworkVersion.equals(that.frameworkVersion) : that.frameworkVersion != null) return false;
if (this.memberDescription != null ? !this.memberDescription.equals(that.memberDescription) : that.memberDescription != null) return false;
if (this.networkDescription != null ? !this.networkDescription.equals(that.networkDescription) : that.networkDescription != null) return false;
if (this.networkEdition != null ? !this.networkEdition.equals(that.networkEdition) : that.networkEdition != null) return false;
if (this.nodes != null ? !this.nodes.equals(that.nodes) : that.nodes != null) return false;
if (this.proposalDurationInHours != null ? !this.proposalDurationInHours.equals(that.proposalDurationInHours) : that.proposalDurationInHours != null) return false;
if (this.thresholdComparator != null ? !this.thresholdComparator.equals(that.thresholdComparator) : that.thresholdComparator != null) return false;
if (this.thresholdPercentage != null ? !this.thresholdPercentage.equals(that.thresholdPercentage) : that.thresholdPercentage != null) return false;
return this.users != null ? this.users.equals(that.users) : that.users == null;
}
@Override
public final int hashCode() {
int result = this.memberName.hashCode();
result = 31 * result + (this.networkName.hashCode());
result = 31 * result + (this.client != null ? this.client.hashCode() : 0);
result = 31 * result + (this.enableCaLogging != null ? this.enableCaLogging.hashCode() : 0);
result = 31 * result + (this.enrollAdmin != null ? this.enrollAdmin.hashCode() : 0);
result = 31 * result + (this.frameworkVersion != null ? this.frameworkVersion.hashCode() : 0);
result = 31 * result + (this.memberDescription != null ? this.memberDescription.hashCode() : 0);
result = 31 * result + (this.networkDescription != null ? this.networkDescription.hashCode() : 0);
result = 31 * result + (this.networkEdition != null ? this.networkEdition.hashCode() : 0);
result = 31 * result + (this.nodes != null ? this.nodes.hashCode() : 0);
result = 31 * result + (this.proposalDurationInHours != null ? this.proposalDurationInHours.hashCode() : 0);
result = 31 * result + (this.thresholdComparator != null ? this.thresholdComparator.hashCode() : 0);
result = 31 * result + (this.thresholdPercentage != null ? this.thresholdPercentage.hashCode() : 0);
result = 31 * result + (this.users != null ? this.users.hashCode() : 0);
return result;
}
}
}