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

com.pulumi.aws.ec2.inputs.SpotFleetRequestLaunchSpecificationArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** 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.ec2.inputs;

import com.pulumi.aws.ec2.inputs.SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs;
import com.pulumi.aws.ec2.inputs.SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs;
import com.pulumi.aws.ec2.inputs.SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final SpotFleetRequestLaunchSpecificationArgs Empty = new SpotFleetRequestLaunchSpecificationArgs();

    @Import(name="ami", required=true)
    private Output ami;

    public Output ami() {
        return this.ami;
    }

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

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

    /**
     * The availability zone in which to place the request.
     * 
     */
    @Import(name="availabilityZone")
    private @Nullable Output availabilityZone;

    /**
     * @return The availability zone in which to place the request.
     * 
     */
    public Optional> availabilityZone() {
        return Optional.ofNullable(this.availabilityZone);
    }

    @Import(name="ebsBlockDevices")
    private @Nullable Output> ebsBlockDevices;

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

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

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

    @Import(name="ephemeralBlockDevices")
    private @Nullable Output> ephemeralBlockDevices;

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

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

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

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

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

    /**
     * The type of instance to request.
     * 
     */
    @Import(name="instanceType", required=true)
    private Output instanceType;

    /**
     * @return The type of instance to request.
     * 
     */
    public Output instanceType() {
        return this.instanceType;
    }

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

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

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

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

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

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

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

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

    @Import(name="rootBlockDevices")
    private @Nullable Output> rootBlockDevices;

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

    /**
     * The maximum bid price per unit hour.
     * 
     */
    @Import(name="spotPrice")
    private @Nullable Output spotPrice;

    /**
     * @return The maximum bid price per unit hour.
     * 
     */
    public Optional> spotPrice() {
        return Optional.ofNullable(this.spotPrice);
    }

    /**
     * The subnet in which to launch the requested instance.
     * 
     */
    @Import(name="subnetId")
    private @Nullable Output subnetId;

    /**
     * @return The subnet in which to launch the requested instance.
     * 
     */
    public Optional> subnetId() {
        return Optional.ofNullable(this.subnetId);
    }

    /**
     * A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

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

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

    @Import(name="vpcSecurityGroupIds")
    private @Nullable Output> vpcSecurityGroupIds;

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

    /**
     * The capacity added to the fleet by a fulfilled request.
     * 
     */
    @Import(name="weightedCapacity")
    private @Nullable Output weightedCapacity;

    /**
     * @return The capacity added to the fleet by a fulfilled request.
     * 
     */
    public Optional> weightedCapacity() {
        return Optional.ofNullable(this.weightedCapacity);
    }

    private SpotFleetRequestLaunchSpecificationArgs() {}

    private SpotFleetRequestLaunchSpecificationArgs(SpotFleetRequestLaunchSpecificationArgs $) {
        this.ami = $.ami;
        this.associatePublicIpAddress = $.associatePublicIpAddress;
        this.availabilityZone = $.availabilityZone;
        this.ebsBlockDevices = $.ebsBlockDevices;
        this.ebsOptimized = $.ebsOptimized;
        this.ephemeralBlockDevices = $.ephemeralBlockDevices;
        this.iamInstanceProfile = $.iamInstanceProfile;
        this.iamInstanceProfileArn = $.iamInstanceProfileArn;
        this.instanceType = $.instanceType;
        this.keyName = $.keyName;
        this.monitoring = $.monitoring;
        this.placementGroup = $.placementGroup;
        this.placementTenancy = $.placementTenancy;
        this.rootBlockDevices = $.rootBlockDevices;
        this.spotPrice = $.spotPrice;
        this.subnetId = $.subnetId;
        this.tags = $.tags;
        this.userData = $.userData;
        this.vpcSecurityGroupIds = $.vpcSecurityGroupIds;
        this.weightedCapacity = $.weightedCapacity;
    }

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

    public static final class Builder {
        private SpotFleetRequestLaunchSpecificationArgs $;

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

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

        public Builder ami(Output ami) {
            $.ami = ami;
            return this;
        }

        public Builder ami(String ami) {
            return ami(Output.of(ami));
        }

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

        public Builder associatePublicIpAddress(Boolean associatePublicIpAddress) {
            return associatePublicIpAddress(Output.of(associatePublicIpAddress));
        }

        /**
         * @param availabilityZone The availability zone in which to place the request.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(@Nullable Output availabilityZone) {
            $.availabilityZone = availabilityZone;
            return this;
        }

        /**
         * @param availabilityZone The availability zone in which to place the request.
         * 
         * @return builder
         * 
         */
        public Builder availabilityZone(String availabilityZone) {
            return availabilityZone(Output.of(availabilityZone));
        }

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

        public Builder ebsBlockDevices(List ebsBlockDevices) {
            return ebsBlockDevices(Output.of(ebsBlockDevices));
        }

        public Builder ebsBlockDevices(SpotFleetRequestLaunchSpecificationEbsBlockDeviceArgs... ebsBlockDevices) {
            return ebsBlockDevices(List.of(ebsBlockDevices));
        }

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

        public Builder ebsOptimized(Boolean ebsOptimized) {
            return ebsOptimized(Output.of(ebsOptimized));
        }

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

        public Builder ephemeralBlockDevices(List ephemeralBlockDevices) {
            return ephemeralBlockDevices(Output.of(ephemeralBlockDevices));
        }

        public Builder ephemeralBlockDevices(SpotFleetRequestLaunchSpecificationEphemeralBlockDeviceArgs... ephemeralBlockDevices) {
            return ephemeralBlockDevices(List.of(ephemeralBlockDevices));
        }

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

        public Builder iamInstanceProfile(String iamInstanceProfile) {
            return iamInstanceProfile(Output.of(iamInstanceProfile));
        }

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

        public Builder iamInstanceProfileArn(String iamInstanceProfileArn) {
            return iamInstanceProfileArn(Output.of(iamInstanceProfileArn));
        }

        /**
         * @param instanceType The type of instance to request.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(Output instanceType) {
            $.instanceType = instanceType;
            return this;
        }

        /**
         * @param instanceType The type of instance to request.
         * 
         * @return builder
         * 
         */
        public Builder instanceType(String instanceType) {
            return instanceType(Output.of(instanceType));
        }

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

        public Builder keyName(String keyName) {
            return keyName(Output.of(keyName));
        }

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

        public Builder monitoring(Boolean monitoring) {
            return monitoring(Output.of(monitoring));
        }

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

        public Builder placementGroup(String placementGroup) {
            return placementGroup(Output.of(placementGroup));
        }

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

        public Builder placementTenancy(String placementTenancy) {
            return placementTenancy(Output.of(placementTenancy));
        }

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

        public Builder rootBlockDevices(List rootBlockDevices) {
            return rootBlockDevices(Output.of(rootBlockDevices));
        }

        public Builder rootBlockDevices(SpotFleetRequestLaunchSpecificationRootBlockDeviceArgs... rootBlockDevices) {
            return rootBlockDevices(List.of(rootBlockDevices));
        }

        /**
         * @param spotPrice The maximum bid price per unit hour.
         * 
         * @return builder
         * 
         */
        public Builder spotPrice(@Nullable Output spotPrice) {
            $.spotPrice = spotPrice;
            return this;
        }

        /**
         * @param spotPrice The maximum bid price per unit hour.
         * 
         * @return builder
         * 
         */
        public Builder spotPrice(String spotPrice) {
            return spotPrice(Output.of(spotPrice));
        }

        /**
         * @param subnetId The subnet in which to launch the requested instance.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(@Nullable Output subnetId) {
            $.subnetId = subnetId;
            return this;
        }

        /**
         * @param subnetId The subnet in which to launch the requested instance.
         * 
         * @return builder
         * 
         */
        public Builder subnetId(String subnetId) {
            return subnetId(Output.of(subnetId));
        }

        /**
         * @param tags A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

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

        public Builder userData(String userData) {
            return userData(Output.of(userData));
        }

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

        public Builder vpcSecurityGroupIds(List vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(Output.of(vpcSecurityGroupIds));
        }

        public Builder vpcSecurityGroupIds(String... vpcSecurityGroupIds) {
            return vpcSecurityGroupIds(List.of(vpcSecurityGroupIds));
        }

        /**
         * @param weightedCapacity The capacity added to the fleet by a fulfilled request.
         * 
         * @return builder
         * 
         */
        public Builder weightedCapacity(@Nullable Output weightedCapacity) {
            $.weightedCapacity = weightedCapacity;
            return this;
        }

        /**
         * @param weightedCapacity The capacity added to the fleet by a fulfilled request.
         * 
         * @return builder
         * 
         */
        public Builder weightedCapacity(String weightedCapacity) {
            return weightedCapacity(Output.of(weightedCapacity));
        }

        public SpotFleetRequestLaunchSpecificationArgs build() {
            if ($.ami == null) {
                throw new MissingRequiredPropertyException("SpotFleetRequestLaunchSpecificationArgs", "ami");
            }
            if ($.instanceType == null) {
                throw new MissingRequiredPropertyException("SpotFleetRequestLaunchSpecificationArgs", "instanceType");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy