sdk/java/src/main/java/com/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java
<filename>sdk/java/src/main/java/com/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java// *** 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.ovh.Dedicated.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServerInstallTaskDetailsArgs Empty = new ServerInstallTaskDetailsArgs();

    /**
     * Template change log details.
     * 
     * @deprecated
     * field is not used anymore
     * 
     */
    @Deprecated /* field is not used anymore */
    @Import(name="changeLog")
    private @Nullable Output<String> changeLog;

    /**
     * @return Template change log details.
     * 
     * @deprecated
     * field is not used anymore
     * 
     */
    @Deprecated /* field is not used anymore */
    public Optional<Output<String>> changeLog() {
        return Optional.ofNullable(this.changeLog);
    }

    /**
     * Set up the server using the provided hostname instead of the default hostname.
     * 
     */
    @Import(name="customHostname")
    private @Nullable Output<String> customHostname;

    /**
     * @return Set up the server using the provided hostname instead of the default hostname.
     * 
     */
    public Optional<Output<String>> customHostname() {
        return Optional.ofNullable(this.customHostname);
    }

    /**
     * Disk group id.
     * 
     */
    @Import(name="diskGroupId")
    private @Nullable Output<Integer> diskGroupId;

    /**
     * @return Disk group id.
     * 
     */
    public Optional<Output<Integer>> diskGroupId() {
        return Optional.ofNullable(this.diskGroupId);
    }

    /**
     * set to true to install RTM.
     * 
     */
    @Import(name="installRtm")
    private @Nullable Output<Boolean> installRtm;

    /**
     * @return set to true to install RTM.
     * 
     */
    public Optional<Output<Boolean>> installRtm() {
        return Optional.ofNullable(this.installRtm);
    }

    /**
     * set to true to install sql server (Windows template only).
     * 
     */
    @Import(name="installSqlServer")
    private @Nullable Output<Boolean> installSqlServer;

    /**
     * @return set to true to install sql server (Windows template only).
     * 
     */
    public Optional<Output<Boolean>> installSqlServer() {
        return Optional.ofNullable(this.installSqlServer);
    }

    /**
     * language.
     * 
     */
    @Import(name="language")
    private @Nullable Output<String> language;

    /**
     * @return language.
     * 
     */
    public Optional<Output<String>> language() {
        return Optional.ofNullable(this.language);
    }

    /**
     * set to true to disable RAID.
     * 
     */
    @Import(name="noRaid")
    private @Nullable Output<Boolean> noRaid;

    /**
     * @return set to true to disable RAID.
     * 
     */
    public Optional<Output<Boolean>> noRaid() {
        return Optional.ofNullable(this.noRaid);
    }

    /**
     * Indicate the URL where your postinstall customisation script is located.
     * 
     */
    @Import(name="postInstallationScriptLink")
    private @Nullable Output<String> postInstallationScriptLink;

    /**
     * @return Indicate the URL where your postinstall customisation script is located.
     * 
     */
    public Optional<Output<String>> postInstallationScriptLink() {
        return Optional.ofNullable(this.postInstallationScriptLink);
    }

    /**
     * Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is &#39;loh1Xee7eo OK OK OK UGh8Ang1Gu&#39;.
     * 
     */
    @Import(name="postInstallationScriptReturn")
    private @Nullable Output<String> postInstallationScriptReturn;

    /**
     * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is &#39;loh1Xee7eo OK OK OK UGh8Ang1Gu&#39;.
     * 
     */
    public Optional<Output<String>> postInstallationScriptReturn() {
        return Optional.ofNullable(this.postInstallationScriptReturn);
    }

    /**
     * set to true to make a hardware raid reset.
     * 
     */
    @Import(name="resetHwRaid")
    private @Nullable Output<Boolean> resetHwRaid;

    /**
     * @return set to true to make a hardware raid reset.
     * 
     */
    public Optional<Output<Boolean>> resetHwRaid() {
        return Optional.ofNullable(this.resetHwRaid);
    }

    /**
     * soft raid devices.
     * 
     */
    @Import(name="softRaidDevices")
    private @Nullable Output<Integer> softRaidDevices;

    /**
     * @return soft raid devices.
     * 
     */
    public Optional<Output<Integer>> softRaidDevices() {
        return Optional.ofNullable(this.softRaidDevices);
    }

    /**
     * Name of the ssh key that should be installed. Password login will be disabled.
     * 
     */
    @Import(name="sshKeyName")
    private @Nullable Output<String> sshKeyName;

    /**
     * @return Name of the ssh key that should be installed. Password login will be disabled.
     * 
     */
    public Optional<Output<String>> sshKeyName() {
        return Optional.ofNullable(this.sshKeyName);
    }

    /**
     * Use the distribution&#39;s native kernel instead of the recommended OVHcloud Kernel.
     * 
     */
    @Import(name="useDistribKernel")
    private @Nullable Output<Boolean> useDistribKernel;

    /**
     * @return Use the distribution&#39;s native kernel instead of the recommended OVHcloud Kernel.
     * 
     */
    public Optional<Output<Boolean>> useDistribKernel() {
        return Optional.ofNullable(this.useDistribKernel);
    }

    /**
     * set to true to use SPLA.
     * 
     */
    @Import(name="useSpla")
    private @Nullable Output<Boolean> useSpla;

    /**
     * @return set to true to use SPLA.
     * 
     */
    public Optional<Output<Boolean>> useSpla() {
        return Optional.ofNullable(this.useSpla);
    }

    private ServerInstallTaskDetailsArgs() {}

    private ServerInstallTaskDetailsArgs(ServerInstallTaskDetailsArgs $) {
        this.changeLog = $.changeLog;
        this.customHostname = $.customHostname;
        this.diskGroupId = $.diskGroupId;
        this.installRtm = $.installRtm;
        this.installSqlServer = $.installSqlServer;
        this.language = $.language;
        this.noRaid = $.noRaid;
        this.postInstallationScriptLink = $.postInstallationScriptLink;
        this.postInstallationScriptReturn = $.postInstallationScriptReturn;
        this.resetHwRaid = $.resetHwRaid;
        this.softRaidDevices = $.softRaidDevices;
        this.sshKeyName = $.sshKeyName;
        this.useDistribKernel = $.useDistribKernel;
        this.useSpla = $.useSpla;
    }

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

    public static final class Builder {
        private ServerInstallTaskDetailsArgs $;

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

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

        /**
         * @param changeLog Template change log details.
         * 
         * @return builder
         * 
         * @deprecated
         * field is not used anymore
         * 
         */
        @Deprecated /* field is not used anymore */
        public Builder changeLog(@Nullable Output<String> changeLog) {
            $.changeLog = changeLog;
            return this;
        }

        /**
         * @param changeLog Template change log details.
         * 
         * @return builder
         * 
         * @deprecated
         * field is not used anymore
         * 
         */
        @Deprecated /* field is not used anymore */
        public Builder changeLog(String changeLog) {
            return changeLog(Output.of(changeLog));
        }

        /**
         * @param customHostname Set up the server using the provided hostname instead of the default hostname.
         * 
         * @return builder
         * 
         */
        public Builder customHostname(@Nullable Output<String> customHostname) {
            $.customHostname = customHostname;
            return this;
        }

        /**
         * @param customHostname Set up the server using the provided hostname instead of the default hostname.
         * 
         * @return builder
         * 
         */
        public Builder customHostname(String customHostname) {
            return customHostname(Output.of(customHostname));
        }

        /**
         * @param diskGroupId Disk group id.
         * 
         * @return builder
         * 
         */
        public Builder diskGroupId(@Nullable Output<Integer> diskGroupId) {
            $.diskGroupId = diskGroupId;
            return this;
        }

        /**
         * @param diskGroupId Disk group id.
         * 
         * @return builder
         * 
         */
        public Builder diskGroupId(Integer diskGroupId) {
            return diskGroupId(Output.of(diskGroupId));
        }

        /**
         * @param installRtm set to true to install RTM.
         * 
         * @return builder
         * 
         */
        public Builder installRtm(@Nullable Output<Boolean> installRtm) {
            $.installRtm = installRtm;
            return this;
        }

        /**
         * @param installRtm set to true to install RTM.
         * 
         * @return builder
         * 
         */
        public Builder installRtm(Boolean installRtm) {
            return installRtm(Output.of(installRtm));
        }

        /**
         * @param installSqlServer set to true to install sql server (Windows template only).
         * 
         * @return builder
         * 
         */
        public Builder installSqlServer(@Nullable Output<Boolean> installSqlServer) {
            $.installSqlServer = installSqlServer;
            return this;
        }

        /**
         * @param installSqlServer set to true to install sql server (Windows template only).
         * 
         * @return builder
         * 
         */
        public Builder installSqlServer(Boolean installSqlServer) {
            return installSqlServer(Output.of(installSqlServer));
        }

        /**
         * @param language language.
         * 
         * @return builder
         * 
         */
        public Builder language(@Nullable Output<String> language) {
            $.language = language;
            return this;
        }

        /**
         * @param language language.
         * 
         * @return builder
         * 
         */
        public Builder language(String language) {
            return language(Output.of(language));
        }

        /**
         * @param noRaid set to true to disable RAID.
         * 
         * @return builder
         * 
         */
        public Builder noRaid(@Nullable Output<Boolean> noRaid) {
            $.noRaid = noRaid;
            return this;
        }

        /**
         * @param noRaid set to true to disable RAID.
         * 
         * @return builder
         * 
         */
        public Builder noRaid(Boolean noRaid) {
            return noRaid(Output.of(noRaid));
        }

        /**
         * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located.
         * 
         * @return builder
         * 
         */
        public Builder postInstallationScriptLink(@Nullable Output<String> postInstallationScriptLink) {
            $.postInstallationScriptLink = postInstallationScriptLink;
            return this;
        }

        /**
         * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located.
         * 
         * @return builder
         * 
         */
        public Builder postInstallationScriptLink(String postInstallationScriptLink) {
            return postInstallationScriptLink(Output.of(postInstallationScriptLink));
        }

        /**
         * @param postInstallationScriptReturn Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is &#39;loh1Xee7eo OK OK OK UGh8Ang1Gu&#39;.
         * 
         * @return builder
         * 
         */
        public Builder postInstallationScriptReturn(@Nullable Output<String> postInstallationScriptReturn) {
            $.postInstallationScriptReturn = postInstallationScriptReturn;
            return this;
        }

        /**
         * @param postInstallationScriptReturn Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is &#39;loh1Xee7eo OK OK OK UGh8Ang1Gu&#39;.
         * 
         * @return builder
         * 
         */
        public Builder postInstallationScriptReturn(String postInstallationScriptReturn) {
            return postInstallationScriptReturn(Output.of(postInstallationScriptReturn));
        }

        /**
         * @param resetHwRaid set to true to make a hardware raid reset.
         * 
         * @return builder
         * 
         */
        public Builder resetHwRaid(@Nullable Output<Boolean> resetHwRaid) {
            $.resetHwRaid = resetHwRaid;
            return this;
        }

        /**
         * @param resetHwRaid set to true to make a hardware raid reset.
         * 
         * @return builder
         * 
         */
        public Builder resetHwRaid(Boolean resetHwRaid) {
            return resetHwRaid(Output.of(resetHwRaid));
        }

        /**
         * @param softRaidDevices soft raid devices.
         * 
         * @return builder
         * 
         */
        public Builder softRaidDevices(@Nullable Output<Integer> softRaidDevices) {
            $.softRaidDevices = softRaidDevices;
            return this;
        }

        /**
         * @param softRaidDevices soft raid devices.
         * 
         * @return builder
         * 
         */
        public Builder softRaidDevices(Integer softRaidDevices) {
            return softRaidDevices(Output.of(softRaidDevices));
        }

        /**
         * @param sshKeyName Name of the ssh key that should be installed. Password login will be disabled.
         * 
         * @return builder
         * 
         */
        public Builder sshKeyName(@Nullable Output<String> sshKeyName) {
            $.sshKeyName = sshKeyName;
            return this;
        }

        /**
         * @param sshKeyName Name of the ssh key that should be installed. Password login will be disabled.
         * 
         * @return builder
         * 
         */
        public Builder sshKeyName(String sshKeyName) {
            return sshKeyName(Output.of(sshKeyName));
        }

        /**
         * @param useDistribKernel Use the distribution&#39;s native kernel instead of the recommended OVHcloud Kernel.
         * 
         * @return builder
         * 
         */
        public Builder useDistribKernel(@Nullable Output<Boolean> useDistribKernel) {
            $.useDistribKernel = useDistribKernel;
            return this;
        }

        /**
         * @param useDistribKernel Use the distribution&#39;s native kernel instead of the recommended OVHcloud Kernel.
         * 
         * @return builder
         * 
         */
        public Builder useDistribKernel(Boolean useDistribKernel) {
            return useDistribKernel(Output.of(useDistribKernel));
        }

        /**
         * @param useSpla set to true to use SPLA.
         * 
         * @return builder
         * 
         */
        public Builder useSpla(@Nullable Output<Boolean> useSpla) {
            $.useSpla = useSpla;
            return this;
        }

        /**
         * @param useSpla set to true to use SPLA.
         * 
         * @return builder
         * 
         */
        public Builder useSpla(Boolean useSpla) {
            return useSpla(Output.of(useSpla));
        }

        public ServerInstallTaskDetailsArgs build() {
            return $;
        }
    }

}
