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

import com.pulumi.core.annotations.CustomType;
import com.pulumi.gcp.container.outputs.GetClusterMasterAuthClientCertificateConfig;
import java.lang.String;
import java.util.List;
import java.util.Objects;

@CustomType
public final class GetClusterMasterAuth {
    private String clientCertificate;
    private List<GetClusterMasterAuthClientCertificateConfig> clientCertificateConfigs;
    private String clientKey;
    private String clusterCaCertificate;

    private GetClusterMasterAuth() {}
    public String clientCertificate() {
        return this.clientCertificate;
    }
    public List<GetClusterMasterAuthClientCertificateConfig> clientCertificateConfigs() {
        return this.clientCertificateConfigs;
    }
    public String clientKey() {
        return this.clientKey;
    }
    public String clusterCaCertificate() {
        return this.clusterCaCertificate;
    }

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

    public static Builder builder(GetClusterMasterAuth defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String clientCertificate;
        private List<GetClusterMasterAuthClientCertificateConfig> clientCertificateConfigs;
        private String clientKey;
        private String clusterCaCertificate;
        public Builder() {}
        public Builder(GetClusterMasterAuth defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.clientCertificate = defaults.clientCertificate;
    	      this.clientCertificateConfigs = defaults.clientCertificateConfigs;
    	      this.clientKey = defaults.clientKey;
    	      this.clusterCaCertificate = defaults.clusterCaCertificate;
        }

        @CustomType.Setter
        public Builder clientCertificate(String clientCertificate) {
            this.clientCertificate = Objects.requireNonNull(clientCertificate);
            return this;
        }
        @CustomType.Setter
        public Builder clientCertificateConfigs(List<GetClusterMasterAuthClientCertificateConfig> clientCertificateConfigs) {
            this.clientCertificateConfigs = Objects.requireNonNull(clientCertificateConfigs);
            return this;
        }
        public Builder clientCertificateConfigs(GetClusterMasterAuthClientCertificateConfig... clientCertificateConfigs) {
            return clientCertificateConfigs(List.of(clientCertificateConfigs));
        }
        @CustomType.Setter
        public Builder clientKey(String clientKey) {
            this.clientKey = Objects.requireNonNull(clientKey);
            return this;
        }
        @CustomType.Setter
        public Builder clusterCaCertificate(String clusterCaCertificate) {
            this.clusterCaCertificate = Objects.requireNonNull(clusterCaCertificate);
            return this;
        }
        public GetClusterMasterAuth build() {
            final var o = new GetClusterMasterAuth();
            o.clientCertificate = clientCertificate;
            o.clientCertificateConfigs = clientCertificateConfigs;
            o.clientKey = clientKey;
            o.clusterCaCertificate = clusterCaCertificate;
            return o;
        }
    }
}
