// *** 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.aws.fsx.outputs;

import com.pulumi.core.annotations.CustomType;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nullable;

@CustomType
public final class FileCacheDataRepositoryAssociationNf {
    /**
     * @return A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers.
     * 
     */
    private @Nullable List<String> dnsIps;
    /**
     * @return The version of the NFS (Network File System) protocol of the NFS data repository. The only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol. The only supported value is `NFS3`.
     * 
     */
    private String version;

    private FileCacheDataRepositoryAssociationNf() {}
    /**
     * @return A list of up to 2 IP addresses of DNS servers used to resolve the NFS file system domain name. The provided IP addresses can either be the IP addresses of a DNS forwarder or resolver that the customer manages and runs inside the customer VPC, or the IP addresses of the on-premises DNS servers.
     * 
     */
    public List<String> dnsIps() {
        return this.dnsIps == null ? List.of() : this.dnsIps;
    }
    /**
     * @return The version of the NFS (Network File System) protocol of the NFS data repository. The only supported value is NFS3, which indicates that the data repository must support the NFSv3 protocol. The only supported value is `NFS3`.
     * 
     */
    public String version() {
        return this.version;
    }

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

    public static Builder builder(FileCacheDataRepositoryAssociationNf defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable List<String> dnsIps;
        private String version;
        public Builder() {}
        public Builder(FileCacheDataRepositoryAssociationNf defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.dnsIps = defaults.dnsIps;
    	      this.version = defaults.version;
        }

        @CustomType.Setter
        public Builder dnsIps(@Nullable List<String> dnsIps) {
            this.dnsIps = dnsIps;
            return this;
        }
        public Builder dnsIps(String... dnsIps) {
            return dnsIps(List.of(dnsIps));
        }
        @CustomType.Setter
        public Builder version(String version) {
            this.version = Objects.requireNonNull(version);
            return this;
        }
        public FileCacheDataRepositoryAssociationNf build() {
            final var o = new FileCacheDataRepositoryAssociationNf();
            o.dnsIps = dnsIps;
            o.version = version;
            return o;
        }
    }
}
