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

import com.pulumi.core.annotations.CustomType;
import com.pulumi.gcp.cloudfunctionsv2.outputs.GetFunctionBuildConfigSource;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;

@CustomType
public final class GetFunctionBuildConfig {
    private String build;
    private String dockerRepository;
    private String entryPoint;
    private Map<String,String> environmentVariables;
    private String runtime;
    private List<GetFunctionBuildConfigSource> sources;
    private String workerPool;

    private GetFunctionBuildConfig() {}
    public String build() {
        return this.build;
    }
    public String dockerRepository() {
        return this.dockerRepository;
    }
    public String entryPoint() {
        return this.entryPoint;
    }
    public Map<String,String> environmentVariables() {
        return this.environmentVariables;
    }
    public String runtime() {
        return this.runtime;
    }
    public List<GetFunctionBuildConfigSource> sources() {
        return this.sources;
    }
    public String workerPool() {
        return this.workerPool;
    }

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

    public static Builder builder(GetFunctionBuildConfig defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String build;
        private String dockerRepository;
        private String entryPoint;
        private Map<String,String> environmentVariables;
        private String runtime;
        private List<GetFunctionBuildConfigSource> sources;
        private String workerPool;
        public Builder() {}
        public Builder(GetFunctionBuildConfig defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.build = defaults.build;
    	      this.dockerRepository = defaults.dockerRepository;
    	      this.entryPoint = defaults.entryPoint;
    	      this.environmentVariables = defaults.environmentVariables;
    	      this.runtime = defaults.runtime;
    	      this.sources = defaults.sources;
    	      this.workerPool = defaults.workerPool;
        }

        @CustomType.Setter
        public Builder build(String build) {
            this.build = Objects.requireNonNull(build);
            return this;
        }
        @CustomType.Setter
        public Builder dockerRepository(String dockerRepository) {
            this.dockerRepository = Objects.requireNonNull(dockerRepository);
            return this;
        }
        @CustomType.Setter
        public Builder entryPoint(String entryPoint) {
            this.entryPoint = Objects.requireNonNull(entryPoint);
            return this;
        }
        @CustomType.Setter
        public Builder environmentVariables(Map<String,String> environmentVariables) {
            this.environmentVariables = Objects.requireNonNull(environmentVariables);
            return this;
        }
        @CustomType.Setter
        public Builder runtime(String runtime) {
            this.runtime = Objects.requireNonNull(runtime);
            return this;
        }
        @CustomType.Setter
        public Builder sources(List<GetFunctionBuildConfigSource> sources) {
            this.sources = Objects.requireNonNull(sources);
            return this;
        }
        public Builder sources(GetFunctionBuildConfigSource... sources) {
            return sources(List.of(sources));
        }
        @CustomType.Setter
        public Builder workerPool(String workerPool) {
            this.workerPool = Objects.requireNonNull(workerPool);
            return this;
        }
        public GetFunctionBuildConfig build() {
            final var o = new GetFunctionBuildConfig();
            o.build = build;
            o.dockerRepository = dockerRepository;
            o.entryPoint = entryPoint;
            o.environmentVariables = environmentVariables;
            o.runtime = runtime;
            o.sources = sources;
            o.workerPool = workerPool;
            return o;
        }
    }
}
