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

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Objects;


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

    public static final WorkflowTemplateParameterValidationRegexArgs Empty = new WorkflowTemplateParameterValidationRegexArgs();

    /**
     * Required. RE2 regular expressions used to validate the parameter&#39;s value. The value must match the regex in its entirety (substring matches are not sufficient).
     * 
     */
    @Import(name="regexes", required=true)
    private Output<List<String>> regexes;

    /**
     * @return Required. RE2 regular expressions used to validate the parameter&#39;s value. The value must match the regex in its entirety (substring matches are not sufficient).
     * 
     */
    public Output<List<String>> regexes() {
        return this.regexes;
    }

    private WorkflowTemplateParameterValidationRegexArgs() {}

    private WorkflowTemplateParameterValidationRegexArgs(WorkflowTemplateParameterValidationRegexArgs $) {
        this.regexes = $.regexes;
    }

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

    public static final class Builder {
        private WorkflowTemplateParameterValidationRegexArgs $;

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

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

        /**
         * @param regexes Required. RE2 regular expressions used to validate the parameter&#39;s value. The value must match the regex in its entirety (substring matches are not sufficient).
         * 
         * @return builder
         * 
         */
        public Builder regexes(Output<List<String>> regexes) {
            $.regexes = regexes;
            return this;
        }

        /**
         * @param regexes Required. RE2 regular expressions used to validate the parameter&#39;s value. The value must match the regex in its entirety (substring matches are not sufficient).
         * 
         * @return builder
         * 
         */
        public Builder regexes(List<String> regexes) {
            return regexes(Output.of(regexes));
        }

        /**
         * @param regexes Required. RE2 regular expressions used to validate the parameter&#39;s value. The value must match the regex in its entirety (substring matches are not sufficient).
         * 
         * @return builder
         * 
         */
        public Builder regexes(String... regexes) {
            return regexes(List.of(regexes));
        }

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

}
