// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.gcp.compute.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;

@CustomType
public final class GetBackendServiceBackend {
    private String balancingMode;
    private Double capacityScaler;
    /**
     * @return Textual description for the Backend Service.
     * 
     */
    private String description;
    private String group;
    private Integer maxConnections;
    private Integer maxConnectionsPerEndpoint;
    private Integer maxConnectionsPerInstance;
    private Integer maxRate;
    private Double maxRatePerEndpoint;
    private Double maxRatePerInstance;
    private Double maxUtilization;

    private GetBackendServiceBackend() {}
    public String balancingMode() {
        return this.balancingMode;
    }
    public Double capacityScaler() {
        return this.capacityScaler;
    }
    /**
     * @return Textual description for the Backend Service.
     * 
     */
    public String description() {
        return this.description;
    }
    public String group() {
        return this.group;
    }
    public Integer maxConnections() {
        return this.maxConnections;
    }
    public Integer maxConnectionsPerEndpoint() {
        return this.maxConnectionsPerEndpoint;
    }
    public Integer maxConnectionsPerInstance() {
        return this.maxConnectionsPerInstance;
    }
    public Integer maxRate() {
        return this.maxRate;
    }
    public Double maxRatePerEndpoint() {
        return this.maxRatePerEndpoint;
    }
    public Double maxRatePerInstance() {
        return this.maxRatePerInstance;
    }
    public Double maxUtilization() {
        return this.maxUtilization;
    }

    public static Builder builder() {
        return new Builder();
    }

    public static Builder builder(GetBackendServiceBackend defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String balancingMode;
        private Double capacityScaler;
        private String description;
        private String group;
        private Integer maxConnections;
        private Integer maxConnectionsPerEndpoint;
        private Integer maxConnectionsPerInstance;
        private Integer maxRate;
        private Double maxRatePerEndpoint;
        private Double maxRatePerInstance;
        private Double maxUtilization;
        public Builder() {}
        public Builder(GetBackendServiceBackend defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.balancingMode = defaults.balancingMode;
    	      this.capacityScaler = defaults.capacityScaler;
    	      this.description = defaults.description;
    	      this.group = defaults.group;
    	      this.maxConnections = defaults.maxConnections;
    	      this.maxConnectionsPerEndpoint = defaults.maxConnectionsPerEndpoint;
    	      this.maxConnectionsPerInstance = defaults.maxConnectionsPerInstance;
    	      this.maxRate = defaults.maxRate;
    	      this.maxRatePerEndpoint = defaults.maxRatePerEndpoint;
    	      this.maxRatePerInstance = defaults.maxRatePerInstance;
    	      this.maxUtilization = defaults.maxUtilization;
        }

        @CustomType.Setter
        public Builder balancingMode(String balancingMode) {
            this.balancingMode = Objects.requireNonNull(balancingMode);
            return this;
        }
        @CustomType.Setter
        public Builder capacityScaler(Double capacityScaler) {
            this.capacityScaler = Objects.requireNonNull(capacityScaler);
            return this;
        }
        @CustomType.Setter
        public Builder description(String description) {
            this.description = Objects.requireNonNull(description);
            return this;
        }
        @CustomType.Setter
        public Builder group(String group) {
            this.group = Objects.requireNonNull(group);
            return this;
        }
        @CustomType.Setter
        public Builder maxConnections(Integer maxConnections) {
            this.maxConnections = Objects.requireNonNull(maxConnections);
            return this;
        }
        @CustomType.Setter
        public Builder maxConnectionsPerEndpoint(Integer maxConnectionsPerEndpoint) {
            this.maxConnectionsPerEndpoint = Objects.requireNonNull(maxConnectionsPerEndpoint);
            return this;
        }
        @CustomType.Setter
        public Builder maxConnectionsPerInstance(Integer maxConnectionsPerInstance) {
            this.maxConnectionsPerInstance = Objects.requireNonNull(maxConnectionsPerInstance);
            return this;
        }
        @CustomType.Setter
        public Builder maxRate(Integer maxRate) {
            this.maxRate = Objects.requireNonNull(maxRate);
            return this;
        }
        @CustomType.Setter
        public Builder maxRatePerEndpoint(Double maxRatePerEndpoint) {
            this.maxRatePerEndpoint = Objects.requireNonNull(maxRatePerEndpoint);
            return this;
        }
        @CustomType.Setter
        public Builder maxRatePerInstance(Double maxRatePerInstance) {
            this.maxRatePerInstance = Objects.requireNonNull(maxRatePerInstance);
            return this;
        }
        @CustomType.Setter
        public Builder maxUtilization(Double maxUtilization) {
            this.maxUtilization = Objects.requireNonNull(maxUtilization);
            return this;
        }
        public GetBackendServiceBackend build() {
            final var o = new GetBackendServiceBackend();
            o.balancingMode = balancingMode;
            o.capacityScaler = capacityScaler;
            o.description = description;
            o.group = group;
            o.maxConnections = maxConnections;
            o.maxConnectionsPerEndpoint = maxConnectionsPerEndpoint;
            o.maxConnectionsPerInstance = maxConnectionsPerInstance;
            o.maxRate = maxRate;
            o.maxRatePerEndpoint = maxRatePerEndpoint;
            o.maxRatePerInstance = maxRatePerInstance;
            o.maxUtilization = maxUtilization;
            return o;
        }
    }
}
