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

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

@CustomType
public final class GetLinuxWebAppSiteConfigApplicationStack {
    private String dockerImage;
    /**
     * @return The docker image, including tag, used by this Linux Web App.
     * 
     */
    private String dockerImageName;
    private String dockerImageTag;
    /**
     * @return The User Name to use for authentication against the registry to pull the image.
     * 
     */
    private String dockerRegistryPassword;
    /**
     * @return The URL of the container registry where the `docker_image_name` is located.
     * 
     */
    private String dockerRegistryUrl;
    /**
     * @return The User Name to use for authentication against the registry to pull the image.
     * 
     */
    private String dockerRegistryUsername;
    /**
     * @return The version of .NET in use.
     * 
     */
    private String dotnetVersion;
    private String goVersion;
    /**
     * @return The Java server type.
     * 
     */
    private String javaServer;
    /**
     * @return The Version of the `java_server` in use.
     * 
     */
    private String javaServerVersion;
    /**
     * @return The Version of Java in use.
     * 
     */
    private String javaVersion;
    /**
     * @return The version of Node in use.
     * 
     */
    private String nodeVersion;
    /**
     * @return The version of PHP in use.
     * 
     */
    private String phpVersion;
    /**
     * @return The version of Python in use.
     * 
     */
    private String pythonVersion;
    /**
     * @return The version of Ruby in use.
     * 
     */
    private String rubyVersion;

    private GetLinuxWebAppSiteConfigApplicationStack() {}
    public String dockerImage() {
        return this.dockerImage;
    }
    /**
     * @return The docker image, including tag, used by this Linux Web App.
     * 
     */
    public String dockerImageName() {
        return this.dockerImageName;
    }
    public String dockerImageTag() {
        return this.dockerImageTag;
    }
    /**
     * @return The User Name to use for authentication against the registry to pull the image.
     * 
     */
    public String dockerRegistryPassword() {
        return this.dockerRegistryPassword;
    }
    /**
     * @return The URL of the container registry where the `docker_image_name` is located.
     * 
     */
    public String dockerRegistryUrl() {
        return this.dockerRegistryUrl;
    }
    /**
     * @return The User Name to use for authentication against the registry to pull the image.
     * 
     */
    public String dockerRegistryUsername() {
        return this.dockerRegistryUsername;
    }
    /**
     * @return The version of .NET in use.
     * 
     */
    public String dotnetVersion() {
        return this.dotnetVersion;
    }
    public String goVersion() {
        return this.goVersion;
    }
    /**
     * @return The Java server type.
     * 
     */
    public String javaServer() {
        return this.javaServer;
    }
    /**
     * @return The Version of the `java_server` in use.
     * 
     */
    public String javaServerVersion() {
        return this.javaServerVersion;
    }
    /**
     * @return The Version of Java in use.
     * 
     */
    public String javaVersion() {
        return this.javaVersion;
    }
    /**
     * @return The version of Node in use.
     * 
     */
    public String nodeVersion() {
        return this.nodeVersion;
    }
    /**
     * @return The version of PHP in use.
     * 
     */
    public String phpVersion() {
        return this.phpVersion;
    }
    /**
     * @return The version of Python in use.
     * 
     */
    public String pythonVersion() {
        return this.pythonVersion;
    }
    /**
     * @return The version of Ruby in use.
     * 
     */
    public String rubyVersion() {
        return this.rubyVersion;
    }

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

    public static Builder builder(GetLinuxWebAppSiteConfigApplicationStack defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private String dockerImage;
        private String dockerImageName;
        private String dockerImageTag;
        private String dockerRegistryPassword;
        private String dockerRegistryUrl;
        private String dockerRegistryUsername;
        private String dotnetVersion;
        private String goVersion;
        private String javaServer;
        private String javaServerVersion;
        private String javaVersion;
        private String nodeVersion;
        private String phpVersion;
        private String pythonVersion;
        private String rubyVersion;
        public Builder() {}
        public Builder(GetLinuxWebAppSiteConfigApplicationStack defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.dockerImage = defaults.dockerImage;
    	      this.dockerImageName = defaults.dockerImageName;
    	      this.dockerImageTag = defaults.dockerImageTag;
    	      this.dockerRegistryPassword = defaults.dockerRegistryPassword;
    	      this.dockerRegistryUrl = defaults.dockerRegistryUrl;
    	      this.dockerRegistryUsername = defaults.dockerRegistryUsername;
    	      this.dotnetVersion = defaults.dotnetVersion;
    	      this.goVersion = defaults.goVersion;
    	      this.javaServer = defaults.javaServer;
    	      this.javaServerVersion = defaults.javaServerVersion;
    	      this.javaVersion = defaults.javaVersion;
    	      this.nodeVersion = defaults.nodeVersion;
    	      this.phpVersion = defaults.phpVersion;
    	      this.pythonVersion = defaults.pythonVersion;
    	      this.rubyVersion = defaults.rubyVersion;
        }

        @CustomType.Setter
        public Builder dockerImage(String dockerImage) {
            this.dockerImage = Objects.requireNonNull(dockerImage);
            return this;
        }
        @CustomType.Setter
        public Builder dockerImageName(String dockerImageName) {
            this.dockerImageName = Objects.requireNonNull(dockerImageName);
            return this;
        }
        @CustomType.Setter
        public Builder dockerImageTag(String dockerImageTag) {
            this.dockerImageTag = Objects.requireNonNull(dockerImageTag);
            return this;
        }
        @CustomType.Setter
        public Builder dockerRegistryPassword(String dockerRegistryPassword) {
            this.dockerRegistryPassword = Objects.requireNonNull(dockerRegistryPassword);
            return this;
        }
        @CustomType.Setter
        public Builder dockerRegistryUrl(String dockerRegistryUrl) {
            this.dockerRegistryUrl = Objects.requireNonNull(dockerRegistryUrl);
            return this;
        }
        @CustomType.Setter
        public Builder dockerRegistryUsername(String dockerRegistryUsername) {
            this.dockerRegistryUsername = Objects.requireNonNull(dockerRegistryUsername);
            return this;
        }
        @CustomType.Setter
        public Builder dotnetVersion(String dotnetVersion) {
            this.dotnetVersion = Objects.requireNonNull(dotnetVersion);
            return this;
        }
        @CustomType.Setter
        public Builder goVersion(String goVersion) {
            this.goVersion = Objects.requireNonNull(goVersion);
            return this;
        }
        @CustomType.Setter
        public Builder javaServer(String javaServer) {
            this.javaServer = Objects.requireNonNull(javaServer);
            return this;
        }
        @CustomType.Setter
        public Builder javaServerVersion(String javaServerVersion) {
            this.javaServerVersion = Objects.requireNonNull(javaServerVersion);
            return this;
        }
        @CustomType.Setter
        public Builder javaVersion(String javaVersion) {
            this.javaVersion = Objects.requireNonNull(javaVersion);
            return this;
        }
        @CustomType.Setter
        public Builder nodeVersion(String nodeVersion) {
            this.nodeVersion = Objects.requireNonNull(nodeVersion);
            return this;
        }
        @CustomType.Setter
        public Builder phpVersion(String phpVersion) {
            this.phpVersion = Objects.requireNonNull(phpVersion);
            return this;
        }
        @CustomType.Setter
        public Builder pythonVersion(String pythonVersion) {
            this.pythonVersion = Objects.requireNonNull(pythonVersion);
            return this;
        }
        @CustomType.Setter
        public Builder rubyVersion(String rubyVersion) {
            this.rubyVersion = Objects.requireNonNull(rubyVersion);
            return this;
        }
        public GetLinuxWebAppSiteConfigApplicationStack build() {
            final var o = new GetLinuxWebAppSiteConfigApplicationStack();
            o.dockerImage = dockerImage;
            o.dockerImageName = dockerImageName;
            o.dockerImageTag = dockerImageTag;
            o.dockerRegistryPassword = dockerRegistryPassword;
            o.dockerRegistryUrl = dockerRegistryUrl;
            o.dockerRegistryUsername = dockerRegistryUsername;
            o.dotnetVersion = dotnetVersion;
            o.goVersion = goVersion;
            o.javaServer = javaServer;
            o.javaServerVersion = javaServerVersion;
            o.javaVersion = javaVersion;
            o.nodeVersion = nodeVersion;
            o.phpVersion = phpVersion;
            o.pythonVersion = pythonVersion;
            o.rubyVersion = rubyVersion;
            return o;
        }
    }
}
