// *** 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.azure.servicefabric.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ClusterReverseProxyCertificateCommonNamesCommonNameArgs extends com.pulumi.resources.ResourceArgs {

    public static final ClusterReverseProxyCertificateCommonNamesCommonNameArgs Empty = new ClusterReverseProxyCertificateCommonNamesCommonNameArgs();

    /**
     * The common or subject name of the certificate.
     * 
     */
    @Import(name="certificateCommonName", required=true)
    private Output<String> certificateCommonName;

    /**
     * @return The common or subject name of the certificate.
     * 
     */
    public Output<String> certificateCommonName() {
        return this.certificateCommonName;
    }

    /**
     * The Issuer Thumbprint of the Certificate.
     * 
     * &gt; **NOTE:** Certificate Issuer Thumbprint may become required in the future, `https://docs.microsoft.com/azure/service-fabric/service-fabric-create-cluster-using-cert-cn#download-and-update-a-sample-template`.
     * 
     */
    @Import(name="certificateIssuerThumbprint")
    private @Nullable Output<String> certificateIssuerThumbprint;

    /**
     * @return The Issuer Thumbprint of the Certificate.
     * 
     * &gt; **NOTE:** Certificate Issuer Thumbprint may become required in the future, `https://docs.microsoft.com/azure/service-fabric/service-fabric-create-cluster-using-cert-cn#download-and-update-a-sample-template`.
     * 
     */
    public Optional<Output<String>> certificateIssuerThumbprint() {
        return Optional.ofNullable(this.certificateIssuerThumbprint);
    }

    private ClusterReverseProxyCertificateCommonNamesCommonNameArgs() {}

    private ClusterReverseProxyCertificateCommonNamesCommonNameArgs(ClusterReverseProxyCertificateCommonNamesCommonNameArgs $) {
        this.certificateCommonName = $.certificateCommonName;
        this.certificateIssuerThumbprint = $.certificateIssuerThumbprint;
    }

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

    public static final class Builder {
        private ClusterReverseProxyCertificateCommonNamesCommonNameArgs $;

        public Builder() {
            $ = new ClusterReverseProxyCertificateCommonNamesCommonNameArgs();
        }

        public Builder(ClusterReverseProxyCertificateCommonNamesCommonNameArgs defaults) {
            $ = new ClusterReverseProxyCertificateCommonNamesCommonNameArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param certificateCommonName The common or subject name of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateCommonName(Output<String> certificateCommonName) {
            $.certificateCommonName = certificateCommonName;
            return this;
        }

        /**
         * @param certificateCommonName The common or subject name of the certificate.
         * 
         * @return builder
         * 
         */
        public Builder certificateCommonName(String certificateCommonName) {
            return certificateCommonName(Output.of(certificateCommonName));
        }

        /**
         * @param certificateIssuerThumbprint The Issuer Thumbprint of the Certificate.
         * 
         * &gt; **NOTE:** Certificate Issuer Thumbprint may become required in the future, `https://docs.microsoft.com/azure/service-fabric/service-fabric-create-cluster-using-cert-cn#download-and-update-a-sample-template`.
         * 
         * @return builder
         * 
         */
        public Builder certificateIssuerThumbprint(@Nullable Output<String> certificateIssuerThumbprint) {
            $.certificateIssuerThumbprint = certificateIssuerThumbprint;
            return this;
        }

        /**
         * @param certificateIssuerThumbprint The Issuer Thumbprint of the Certificate.
         * 
         * &gt; **NOTE:** Certificate Issuer Thumbprint may become required in the future, `https://docs.microsoft.com/azure/service-fabric/service-fabric-create-cluster-using-cert-cn#download-and-update-a-sample-template`.
         * 
         * @return builder
         * 
         */
        public Builder certificateIssuerThumbprint(String certificateIssuerThumbprint) {
            return certificateIssuerThumbprint(Output.of(certificateIssuerThumbprint));
        }

        public ClusterReverseProxyCertificateCommonNamesCommonNameArgs build() {
            $.certificateCommonName = Objects.requireNonNull($.certificateCommonName, "expected parameter 'certificateCommonName' to be non-null");
            return $;
        }
    }

}
