All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ebs.FastSnapshotRestoreArgs Maven / Gradle / Ivy

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

import com.pulumi.aws.ebs.inputs.FastSnapshotRestoreTimeoutsArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final FastSnapshotRestoreArgs Empty = new FastSnapshotRestoreArgs();

    /**
     * Availability zone in which to enable fast snapshot restores.
     * 
     */
    @Import(name="availabilityZone", required=true)
    private Output availabilityZone;

    /**
     * @return Availability zone in which to enable fast snapshot restores.
     * 
     */
    public Output availabilityZone() {
        return this.availabilityZone;
    }

    /**
     * ID of the snapshot.
     * 
     */
    @Import(name="snapshotId", required=true)
    private Output snapshotId;

    /**
     * @return ID of the snapshot.
     * 
     */
    public Output snapshotId() {
        return this.snapshotId;
    }

    @Import(name="timeouts")
    private @Nullable Output timeouts;

    public Optional> timeouts() {
        return Optional.ofNullable(this.timeouts);
    }

    private FastSnapshotRestoreArgs() {}

    private FastSnapshotRestoreArgs(FastSnapshotRestoreArgs $) {
        this.availabilityZone = $.availabilityZone;
        this.snapshotId = $.snapshotId;
        this.timeouts = $.timeouts;
    }

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

    public static final class Builder {
        private FastSnapshotRestoreArgs $;

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

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

        /**
         * @param availabilityZone Availability zone in which to enable fast snapshot restores.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(Output availabilityZone) {
            $.availabilityZone = availabilityZone;
            return this;
        }

        /**
         * @param availabilityZone Availability zone in which to enable fast snapshot restores.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(String availabilityZone) {
            return availabilityZone(Output.of(availabilityZone));
        }

        /**
         * @param snapshotId ID of the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder snapshotId(Output snapshotId) {
            $.snapshotId = snapshotId;
            return this;
        }

        /**
         * @param snapshotId ID of the snapshot.
         * 
         * @return builder
         * 
         */
        public Builder snapshotId(String snapshotId) {
            return snapshotId(Output.of(snapshotId));
        }

        public Builder timeouts(@Nullable Output timeouts) {
            $.timeouts = timeouts;
            return this;
        }

        public Builder timeouts(FastSnapshotRestoreTimeoutsArgs timeouts) {
            return timeouts(Output.of(timeouts));
        }

        public FastSnapshotRestoreArgs build() {
            if ($.availabilityZone == null) {
                throw new MissingRequiredPropertyException("FastSnapshotRestoreArgs", "availabilityZone");
            }
            if ($.snapshotId == null) {
                throw new MissingRequiredPropertyException("FastSnapshotRestoreArgs", "snapshotId");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy