All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.alexdlaird.ngrok.protocol.TunnelIPRestrictions Maven / Gradle / Ivy

package com.github.alexdlaird.ngrok.protocol;

import java.util.List;
import java.util.Map;

/**
 * An object that represents IP restrictions for a {@link com.github.alexdlaird.ngrok.protocol.CreateTunnel}.
 */
public class TunnelIPRestrictions {
    private final List allowCidrs;
    private final List denyCidrs;

    public TunnelIPRestrictions(TunnelIPRestrictions.Builder builder) {
        this.allowCidrs = builder.allowCidrs;
        this.denyCidrs = builder.denyCidrs;
    }

    /**
     * Get the list of allowed CIDRs.
     */
    public List getAllowCidrs() {
        return allowCidrs;
    }

    /**
     * Get the list of denied CIDRs.
     */
    public List getDenyCidrs() {
        return denyCidrs;
    }

    public static class Builder {
        public List allowCidrs;
        public List denyCidrs;

        public Builder() {
        }

        public Builder(Map tunnelDefinitions) {
            if (tunnelDefinitions.containsKey("allow_cidrs")) {
                this.allowCidrs = (List) tunnelDefinitions.get("allow_cidrs");
            }
            if (tunnelDefinitions.containsKey("deny_cidrs")) {
                this.denyCidrs = (List) tunnelDefinitions.get("deny_cidrs");
            }
        }

        /**
         * The list of allowed CIDRs.
         */
        public TunnelIPRestrictions.Builder withAllowCidrs(final List allowCidrs) {
            this.allowCidrs = allowCidrs;
            return this;
        }

        /**
         * The list of denied CIDRs.
         */
        public TunnelIPRestrictions.Builder withDenyCidrs(final List denyCidrs) {
            this.denyCidrs = denyCidrs;
            return this;
        }

        public TunnelIPRestrictions build() {
            return new TunnelIPRestrictions(this);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy