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

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


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

    public static final DatasetAccessRoutineArgs Empty = new DatasetAccessRoutineArgs();

    /**
     * The ID of the dataset containing this table.
     * 
     */
    @Import(name="datasetId", required=true)
    private Output<String> datasetId;

    /**
     * @return The ID of the dataset containing this table.
     * 
     */
    public Output<String> datasetId() {
        return this.datasetId;
    }

    /**
     * The ID of the project containing this table.
     * 
     */
    @Import(name="projectId", required=true)
    private Output<String> projectId;

    /**
     * @return The ID of the project containing this table.
     * 
     */
    public Output<String> projectId() {
        return this.projectId;
    }

    /**
     * The ID of the routine. The ID must contain only letters (a-z,
     * A-Z), numbers (0-9), or underscores (_). The maximum length
     * is 256 characters.
     * 
     */
    @Import(name="routineId", required=true)
    private Output<String> routineId;

    /**
     * @return The ID of the routine. The ID must contain only letters (a-z,
     * A-Z), numbers (0-9), or underscores (_). The maximum length
     * is 256 characters.
     * 
     */
    public Output<String> routineId() {
        return this.routineId;
    }

    private DatasetAccessRoutineArgs() {}

    private DatasetAccessRoutineArgs(DatasetAccessRoutineArgs $) {
        this.datasetId = $.datasetId;
        this.projectId = $.projectId;
        this.routineId = $.routineId;
    }

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

    public static final class Builder {
        private DatasetAccessRoutineArgs $;

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

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

        /**
         * @param datasetId The ID of the dataset containing this table.
         * 
         * @return builder
         * 
         */
        public Builder datasetId(Output<String> datasetId) {
            $.datasetId = datasetId;
            return this;
        }

        /**
         * @param datasetId The ID of the dataset containing this table.
         * 
         * @return builder
         * 
         */
        public Builder datasetId(String datasetId) {
            return datasetId(Output.of(datasetId));
        }

        /**
         * @param projectId The ID of the project containing this table.
         * 
         * @return builder
         * 
         */
        public Builder projectId(Output<String> projectId) {
            $.projectId = projectId;
            return this;
        }

        /**
         * @param projectId The ID of the project containing this table.
         * 
         * @return builder
         * 
         */
        public Builder projectId(String projectId) {
            return projectId(Output.of(projectId));
        }

        /**
         * @param routineId The ID of the routine. The ID must contain only letters (a-z,
         * A-Z), numbers (0-9), or underscores (_). The maximum length
         * is 256 characters.
         * 
         * @return builder
         * 
         */
        public Builder routineId(Output<String> routineId) {
            $.routineId = routineId;
            return this;
        }

        /**
         * @param routineId The ID of the routine. The ID must contain only letters (a-z,
         * A-Z), numbers (0-9), or underscores (_). The maximum length
         * is 256 characters.
         * 
         * @return builder
         * 
         */
        public Builder routineId(String routineId) {
            return routineId(Output.of(routineId));
        }

        public DatasetAccessRoutineArgs build() {
            $.datasetId = Objects.requireNonNull($.datasetId, "expected parameter 'datasetId' to be non-null");
            $.projectId = Objects.requireNonNull($.projectId, "expected parameter 'projectId' to be non-null");
            $.routineId = Objects.requireNonNull($.routineId, "expected parameter 'routineId' to be non-null");
            return $;
        }
    }

}
