// SPDX-License-Identifier: Apache-2.0
import { NetworkNodeServices } from './network-node-services.js';
export class NetworkNodeServicesBuilder {
    nodeAlias;
    namespace;
    clusterRef;
    context;
    deployment;
    nodeId;
    haProxyName;
    accountId;
    haProxyClusterIp;
    envoyProxyGrpcWebPort;
    envoyProxyLoadBalancerIp;
    haProxyLoadBalancerIp;
    haProxyGrpcPort;
    haProxyGrpcsPort;
    haProxyAppSelector;
    haProxyPodName;
    nodeServiceName;
    nodeServiceClusterIp;
    nodeServiceGrpcsPort;
    envoyProxyClusterIp;
    envoyProxyName;
    nodeServiceLoadBalancerIp;
    nodeServiceGossipPort;
    nodeServiceGrpcPort;
    externalAddress;
    nodePodName;
    constructor(nodeAlias) {
        this.nodeAlias = nodeAlias;
    }
    withNamespace(namespace) {
        this.namespace = namespace;
        return this;
    }
    withClusterRef(clusterReference) {
        this.clusterRef = clusterReference;
        return this;
    }
    withContext(context) {
        this.context = context;
        return this;
    }
    withDeployment(deployment) {
        this.deployment = deployment;
        return this;
    }
    withNodeId(nodeId) {
        this.nodeId = nodeId;
        return this;
    }
    withAccountId(accountId) {
        this.accountId = accountId;
        return this;
    }
    withHaProxyName(haProxyName) {
        this.haProxyName = haProxyName;
        return this;
    }
    withHaProxyClusterIp(haProxyClusterIp) {
        this.haProxyClusterIp = haProxyClusterIp;
        return this;
    }
    withHaProxyLoadBalancerIp(haProxyLoadBalancerIp) {
        this.haProxyLoadBalancerIp = haProxyLoadBalancerIp;
        return this;
    }
    withHaProxyGrpcPort(haProxyGrpcPort) {
        this.haProxyGrpcPort = +haProxyGrpcPort;
        return this;
    }
    withHaProxyGrpcsPort(haProxyGrpcsPort) {
        this.haProxyGrpcsPort = +haProxyGrpcsPort;
        return this;
    }
    withHaProxyAppSelector(haProxyAppSelector) {
        this.haProxyAppSelector = haProxyAppSelector;
        return this;
    }
    withHaProxyPodName(haProxyPodName) {
        this.haProxyPodName = haProxyPodName;
        return this;
    }
    withNodePodName(nodePodName) {
        this.nodePodName = nodePodName;
        return this;
    }
    withNodeServiceName(nodeServiceName) {
        this.nodeServiceName = nodeServiceName;
        return this;
    }
    withNodeServiceClusterIp(nodeServiceClusterIp) {
        this.nodeServiceClusterIp = nodeServiceClusterIp;
        return this;
    }
    withNodeServiceLoadBalancerIp(nodeServiceLoadBalancerIp) {
        this.nodeServiceLoadBalancerIp = nodeServiceLoadBalancerIp;
        return this;
    }
    withNodeServiceGossipPort(nodeServiceGossipPort) {
        this.nodeServiceGossipPort = +nodeServiceGossipPort;
        return this;
    }
    withNodeServiceGrpcPort(nodeServiceGrpcPort) {
        this.nodeServiceGrpcPort = +nodeServiceGrpcPort;
        return this;
    }
    withNodeServiceGrpcsPort(nodeServiceGrpcsPort) {
        this.nodeServiceGrpcsPort = +nodeServiceGrpcsPort;
        return this;
    }
    withEnvoyProxyName(envoyProxyName) {
        this.envoyProxyName = envoyProxyName;
        return this;
    }
    withEnvoyProxyClusterIp(envoyProxyClusterIp) {
        this.envoyProxyClusterIp = envoyProxyClusterIp;
        return this;
    }
    withEnvoyProxyLoadBalancerIp(envoyProxyLoadBalancerIp) {
        this.envoyProxyLoadBalancerIp = envoyProxyLoadBalancerIp;
        return this;
    }
    withEnvoyProxyGrpcWebPort(envoyProxyGrpcWebPort) {
        this.envoyProxyGrpcWebPort = +envoyProxyGrpcWebPort;
        return this;
    }
    withExternalAddress(externalAddress) {
        this.externalAddress = externalAddress;
        return this;
    }
    build() {
        return new NetworkNodeServices(this.clusterRef, this.context, this.deployment, this.nodeAlias, this.namespace, this.nodeId, this.nodePodName, this.haProxyName, this.haProxyLoadBalancerIp, this.haProxyClusterIp, this.haProxyGrpcPort, this.haProxyGrpcsPort, this.accountId, this.haProxyAppSelector, this.haProxyPodName, this.nodeServiceName, this.nodeServiceClusterIp, this.nodeServiceLoadBalancerIp, this.nodeServiceGossipPort, this.nodeServiceGrpcPort, this.nodeServiceGrpcsPort, this.envoyProxyName, this.envoyProxyClusterIp, this.envoyProxyLoadBalancerIp, this.envoyProxyGrpcWebPort, this.externalAddress);
    }
    key() {
        return this.nodeAlias;
    }
}
//# sourceMappingURL=network-node-services-builder.js.map