All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.googlenative.networksecurity.v1beta1.inputs.MTLSPolicyArgs Maven / Gradle / Ivy

// *** 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.googlenative.networksecurity.v1beta1.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.networksecurity.v1beta1.enums.MTLSPolicyClientValidationMode;
import com.pulumi.googlenative.networksecurity.v1beta1.inputs.ValidationCAArgs;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Specification of the MTLSPolicy.
 * 
 */
public final class MTLSPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final MTLSPolicyArgs Empty = new MTLSPolicyArgs();

    /**
     * Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
     * 
     */
    @Import(name="clientValidationCa")
    private @Nullable Output> clientValidationCa;

    /**
     * @return Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
     * 
     */
    public Optional>> clientValidationCa() {
        return Optional.ofNullable(this.clientValidationCa);
    }

    /**
     * When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.
     * 
     */
    @Import(name="clientValidationMode")
    private @Nullable Output clientValidationMode;

    /**
     * @return When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.
     * 
     */
    public Optional> clientValidationMode() {
        return Optional.ofNullable(this.clientValidationMode);
    }

    /**
     * Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.
     * 
     */
    @Import(name="clientValidationTrustConfig")
    private @Nullable Output clientValidationTrustConfig;

    /**
     * @return Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.
     * 
     */
    public Optional> clientValidationTrustConfig() {
        return Optional.ofNullable(this.clientValidationTrustConfig);
    }

    private MTLSPolicyArgs() {}

    private MTLSPolicyArgs(MTLSPolicyArgs $) {
        this.clientValidationCa = $.clientValidationCa;
        this.clientValidationMode = $.clientValidationMode;
        this.clientValidationTrustConfig = $.clientValidationTrustConfig;
    }

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

    public static final class Builder {
        private MTLSPolicyArgs $;

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

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

        /**
         * @param clientValidationCa Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationCa(@Nullable Output> clientValidationCa) {
            $.clientValidationCa = clientValidationCa;
            return this;
        }

        /**
         * @param clientValidationCa Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationCa(List clientValidationCa) {
            return clientValidationCa(Output.of(clientValidationCa));
        }

        /**
         * @param clientValidationCa Required if the policy is to be used with Traffic Director. For external HTTPS load balancers it must be empty. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationCa(ValidationCAArgs... clientValidationCa) {
            return clientValidationCa(List.of(clientValidationCa));
        }

        /**
         * @param clientValidationMode When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationMode(@Nullable Output clientValidationMode) {
            $.clientValidationMode = clientValidationMode;
            return this;
        }

        /**
         * @param clientValidationMode When the client presents an invalid certificate or no certificate to the load balancer, the `client_validation_mode` specifies how the client connection is handled. Required if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationMode(MTLSPolicyClientValidationMode clientValidationMode) {
            return clientValidationMode(Output.of(clientValidationMode));
        }

        /**
         * @param clientValidationTrustConfig Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationTrustConfig(@Nullable Output clientValidationTrustConfig) {
            $.clientValidationTrustConfig = clientValidationTrustConfig;
            return this;
        }

        /**
         * @param clientValidationTrustConfig Reference to the TrustConfig from certificatemanager.googleapis.com namespace. If specified, the chain validation will be performed against certificates configured in the given TrustConfig. Allowed only if the policy is to be used with external HTTPS load balancers.
         * 
         * @return builder
         * 
         */
        public Builder clientValidationTrustConfig(String clientValidationTrustConfig) {
            return clientValidationTrustConfig(Output.of(clientValidationTrustConfig));
        }

        public MTLSPolicyArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy