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

com.pulumi.aws.ec2.inputs.FleetOnDemandOptionsArgs 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.ec2.inputs;

import com.pulumi.aws.ec2.inputs.FleetOnDemandOptionsCapacityReservationOptionsArgs;
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 FleetOnDemandOptionsArgs extends com.pulumi.resources.ResourceArgs {

    public static final FleetOnDemandOptionsArgs Empty = new FleetOnDemandOptionsArgs();

    /**
     * The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: `lowestPrice`, `prioritized`. Default: `lowestPrice`.
     * 
     */
    @Import(name="allocationStrategy")
    private @Nullable Output allocationStrategy;

    /**
     * @return The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: `lowestPrice`, `prioritized`. Default: `lowestPrice`.
     * 
     */
    public Optional> allocationStrategy() {
        return Optional.ofNullable(this.allocationStrategy);
    }

    /**
     * The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type `instant`.
     * 
     */
    @Import(name="capacityReservationOptions")
    private @Nullable Output capacityReservationOptions;

    /**
     * @return The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type `instant`.
     * 
     */
    public Optional> capacityReservationOptions() {
        return Optional.ofNullable(this.capacityReservationOptions);
    }

    /**
     * The maximum amount per hour for On-Demand Instances that you're willing to pay.
     * 
     */
    @Import(name="maxTotalPrice")
    private @Nullable Output maxTotalPrice;

    /**
     * @return The maximum amount per hour for On-Demand Instances that you're willing to pay.
     * 
     */
    public Optional> maxTotalPrice() {
        return Optional.ofNullable(this.maxTotalPrice);
    }

    /**
     * The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type `instant`.
     * If you specify `min_target_capacity`, at least one of the following must be specified: `single_availability_zone` or `single_instance_type`.
     * 
     */
    @Import(name="minTargetCapacity")
    private @Nullable Output minTargetCapacity;

    /**
     * @return The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type `instant`.
     * If you specify `min_target_capacity`, at least one of the following must be specified: `single_availability_zone` or `single_instance_type`.
     * 
     */
    public Optional> minTargetCapacity() {
        return Optional.ofNullable(this.minTargetCapacity);
    }

    /**
     * Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`.
     * 
     */
    @Import(name="singleAvailabilityZone")
    private @Nullable Output singleAvailabilityZone;

    /**
     * @return Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`.
     * 
     */
    public Optional> singleAvailabilityZone() {
        return Optional.ofNullable(this.singleAvailabilityZone);
    }

    /**
     * Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`.
     * 
     */
    @Import(name="singleInstanceType")
    private @Nullable Output singleInstanceType;

    /**
     * @return Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`.
     * 
     */
    public Optional> singleInstanceType() {
        return Optional.ofNullable(this.singleInstanceType);
    }

    private FleetOnDemandOptionsArgs() {}

    private FleetOnDemandOptionsArgs(FleetOnDemandOptionsArgs $) {
        this.allocationStrategy = $.allocationStrategy;
        this.capacityReservationOptions = $.capacityReservationOptions;
        this.maxTotalPrice = $.maxTotalPrice;
        this.minTargetCapacity = $.minTargetCapacity;
        this.singleAvailabilityZone = $.singleAvailabilityZone;
        this.singleInstanceType = $.singleInstanceType;
    }

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

    public static final class Builder {
        private FleetOnDemandOptionsArgs $;

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

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

        /**
         * @param allocationStrategy The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: `lowestPrice`, `prioritized`. Default: `lowestPrice`.
         * 
         * @return builder
         * 
         */
        public Builder allocationStrategy(@Nullable Output allocationStrategy) {
            $.allocationStrategy = allocationStrategy;
            return this;
        }

        /**
         * @param allocationStrategy The order of the launch template overrides to use in fulfilling On-Demand capacity. Valid values: `lowestPrice`, `prioritized`. Default: `lowestPrice`.
         * 
         * @return builder
         * 
         */
        public Builder allocationStrategy(String allocationStrategy) {
            return allocationStrategy(Output.of(allocationStrategy));
        }

        /**
         * @param capacityReservationOptions The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder capacityReservationOptions(@Nullable Output capacityReservationOptions) {
            $.capacityReservationOptions = capacityReservationOptions;
            return this;
        }

        /**
         * @param capacityReservationOptions The strategy for using unused Capacity Reservations for fulfilling On-Demand capacity. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder capacityReservationOptions(FleetOnDemandOptionsCapacityReservationOptionsArgs capacityReservationOptions) {
            return capacityReservationOptions(Output.of(capacityReservationOptions));
        }

        /**
         * @param maxTotalPrice The maximum amount per hour for On-Demand Instances that you're willing to pay.
         * 
         * @return builder
         * 
         */
        public Builder maxTotalPrice(@Nullable Output maxTotalPrice) {
            $.maxTotalPrice = maxTotalPrice;
            return this;
        }

        /**
         * @param maxTotalPrice The maximum amount per hour for On-Demand Instances that you're willing to pay.
         * 
         * @return builder
         * 
         */
        public Builder maxTotalPrice(String maxTotalPrice) {
            return maxTotalPrice(Output.of(maxTotalPrice));
        }

        /**
         * @param minTargetCapacity The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type `instant`.
         * If you specify `min_target_capacity`, at least one of the following must be specified: `single_availability_zone` or `single_instance_type`.
         * 
         * @return builder
         * 
         */
        public Builder minTargetCapacity(@Nullable Output minTargetCapacity) {
            $.minTargetCapacity = minTargetCapacity;
            return this;
        }

        /**
         * @param minTargetCapacity The minimum target capacity for On-Demand Instances in the fleet. If the minimum target capacity is not reached, the fleet launches no instances. Supported only for fleets of type `instant`.
         * If you specify `min_target_capacity`, at least one of the following must be specified: `single_availability_zone` or `single_instance_type`.
         * 
         * @return builder
         * 
         */
        public Builder minTargetCapacity(Integer minTargetCapacity) {
            return minTargetCapacity(Output.of(minTargetCapacity));
        }

        /**
         * @param singleAvailabilityZone Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder singleAvailabilityZone(@Nullable Output singleAvailabilityZone) {
            $.singleAvailabilityZone = singleAvailabilityZone;
            return this;
        }

        /**
         * @param singleAvailabilityZone Indicates that the fleet launches all On-Demand Instances into a single Availability Zone. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder singleAvailabilityZone(Boolean singleAvailabilityZone) {
            return singleAvailabilityZone(Output.of(singleAvailabilityZone));
        }

        /**
         * @param singleInstanceType Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder singleInstanceType(@Nullable Output singleInstanceType) {
            $.singleInstanceType = singleInstanceType;
            return this;
        }

        /**
         * @param singleInstanceType Indicates that the fleet uses a single instance type to launch all On-Demand Instances in the fleet. Supported only for fleets of type `instant`.
         * 
         * @return builder
         * 
         */
        public Builder singleInstanceType(Boolean singleInstanceType) {
            return singleInstanceType(Output.of(singleInstanceType));
        }

        public FleetOnDemandOptionsArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy