// *** 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.aws.lightsail;

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


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

    public static final Disk_attachmentArgs Empty = new Disk_attachmentArgs();

    /**
     * The name of the Lightsail Disk.
     * 
     */
    @Import(name="diskName", required=true)
    private Output<String> diskName;

    /**
     * @return The name of the Lightsail Disk.
     * 
     */
    public Output<String> diskName() {
        return this.diskName;
    }

    /**
     * The disk path to expose to the instance.
     * 
     */
    @Import(name="diskPath", required=true)
    private Output<String> diskPath;

    /**
     * @return The disk path to expose to the instance.
     * 
     */
    public Output<String> diskPath() {
        return this.diskPath;
    }

    /**
     * The name of the Lightsail Instance to attach to.
     * 
     */
    @Import(name="instanceName", required=true)
    private Output<String> instanceName;

    /**
     * @return The name of the Lightsail Instance to attach to.
     * 
     */
    public Output<String> instanceName() {
        return this.instanceName;
    }

    private Disk_attachmentArgs() {}

    private Disk_attachmentArgs(Disk_attachmentArgs $) {
        this.diskName = $.diskName;
        this.diskPath = $.diskPath;
        this.instanceName = $.instanceName;
    }

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

    public static final class Builder {
        private Disk_attachmentArgs $;

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

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

        /**
         * @param diskName The name of the Lightsail Disk.
         * 
         * @return builder
         * 
         */
        public Builder diskName(Output<String> diskName) {
            $.diskName = diskName;
            return this;
        }

        /**
         * @param diskName The name of the Lightsail Disk.
         * 
         * @return builder
         * 
         */
        public Builder diskName(String diskName) {
            return diskName(Output.of(diskName));
        }

        /**
         * @param diskPath The disk path to expose to the instance.
         * 
         * @return builder
         * 
         */
        public Builder diskPath(Output<String> diskPath) {
            $.diskPath = diskPath;
            return this;
        }

        /**
         * @param diskPath The disk path to expose to the instance.
         * 
         * @return builder
         * 
         */
        public Builder diskPath(String diskPath) {
            return diskPath(Output.of(diskPath));
        }

        /**
         * @param instanceName The name of the Lightsail Instance to attach to.
         * 
         * @return builder
         * 
         */
        public Builder instanceName(Output<String> instanceName) {
            $.instanceName = instanceName;
            return this;
        }

        /**
         * @param instanceName The name of the Lightsail Instance to attach to.
         * 
         * @return builder
         * 
         */
        public Builder instanceName(String instanceName) {
            return instanceName(Output.of(instanceName));
        }

        public Disk_attachmentArgs build() {
            $.diskName = Objects.requireNonNull($.diskName, "expected parameter 'diskName' to be non-null");
            $.diskPath = Objects.requireNonNull($.diskPath, "expected parameter 'diskPath' to be non-null");
            $.instanceName = Objects.requireNonNull($.instanceName, "expected parameter 'instanceName' to be non-null");
            return $;
        }
    }

}
