import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource Type definition for AWS::EC2::EC2Fleet
 */
export declare class Ec2Fleet extends pulumi.CustomResource {
    /**
     * Get an existing Ec2Fleet resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Ec2Fleet;
    /**
     * Returns true if the given object is an instance of Ec2Fleet.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Ec2Fleet;
    /**
     * Reserved.
     */
    readonly context: pulumi.Output<string | undefined>;
    /**
     * Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.
     *
     * Supported only for fleets of type `maintain` .
     */
    readonly excessCapacityTerminationPolicy: pulumi.Output<enums.ec2.Ec2FleetExcessCapacityTerminationPolicy | undefined>;
    /**
     * The ID of the EC2 Fleet.
     */
    readonly fleetId: pulumi.Output<string>;
    /**
     * The configuration for the EC2 Fleet.
     */
    readonly launchTemplateConfigs: pulumi.Output<outputs.ec2.Ec2FleetFleetLaunchTemplateConfigRequest[]>;
    /**
     * Describes the configuration of On-Demand Instances in an EC2 Fleet.
     */
    readonly onDemandOptions: pulumi.Output<outputs.ec2.Ec2FleetOnDemandOptionsRequest | undefined>;
    /**
     * Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type `maintain` . For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide* .
     */
    readonly replaceUnhealthyInstances: pulumi.Output<boolean | undefined>;
    readonly reservedCapacityOptions: pulumi.Output<outputs.ec2.Ec2FleetReservedCapacityOptionsRequest | undefined>;
    /**
     * Describes the configuration of Spot Instances in an EC2 Fleet.
     */
    readonly spotOptions: pulumi.Output<outputs.ec2.Ec2FleetSpotOptionsRequest | undefined>;
    /**
     * The key-value pair for tagging the EC2 Fleet request on creation. For more information, see [Tag your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources) .
     *
     * If the fleet type is `instant` , specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch.
     *
     * If the fleet type is `maintain` or `request` , specify a resource type of `fleet` to tag the fleet. You cannot specify a resource type of `instance` . To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) .
     */
    readonly tagSpecifications: pulumi.Output<outputs.ec2.Ec2FleetTagSpecification[] | undefined>;
    /**
     * The number of units to request.
     */
    readonly targetCapacitySpecification: pulumi.Output<outputs.ec2.Ec2FleetTargetCapacitySpecificationRequest>;
    /**
     * Indicates whether running instances should be terminated when the EC2 Fleet expires.
     */
    readonly terminateInstancesWithExpiration: pulumi.Output<boolean | undefined>;
    /**
     * The fleet type. The default value is `maintain` .
     *
     * - `maintain` - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances.
     * - `request` - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted.
     * - `instant` - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched.
     *
     * For more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide* .
     */
    readonly type: pulumi.Output<enums.ec2.Ec2FleetType | undefined>;
    /**
     * The start date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). The default is to start fulfilling the request immediately.
     */
    readonly validFrom: pulumi.Output<string | undefined>;
    /**
     * The end date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.
     */
    readonly validUntil: pulumi.Output<string | undefined>;
    /**
     * Create a Ec2Fleet resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: Ec2FleetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Ec2Fleet resource.
 */
export interface Ec2FleetArgs {
    /**
     * Reserved.
     */
    context?: pulumi.Input<string>;
    /**
     * Indicates whether running instances should be terminated if the total target capacity of the EC2 Fleet is decreased below the current size of the EC2 Fleet.
     *
     * Supported only for fleets of type `maintain` .
     */
    excessCapacityTerminationPolicy?: pulumi.Input<enums.ec2.Ec2FleetExcessCapacityTerminationPolicy>;
    /**
     * The configuration for the EC2 Fleet.
     */
    launchTemplateConfigs: pulumi.Input<pulumi.Input<inputs.ec2.Ec2FleetFleetLaunchTemplateConfigRequestArgs>[]>;
    /**
     * Describes the configuration of On-Demand Instances in an EC2 Fleet.
     */
    onDemandOptions?: pulumi.Input<inputs.ec2.Ec2FleetOnDemandOptionsRequestArgs>;
    /**
     * Indicates whether EC2 Fleet should replace unhealthy Spot Instances. Supported only for fleets of type `maintain` . For more information, see [EC2 Fleet health checks](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/manage-ec2-fleet.html#ec2-fleet-health-checks) in the *Amazon EC2 User Guide* .
     */
    replaceUnhealthyInstances?: pulumi.Input<boolean>;
    reservedCapacityOptions?: pulumi.Input<inputs.ec2.Ec2FleetReservedCapacityOptionsRequestArgs>;
    /**
     * Describes the configuration of Spot Instances in an EC2 Fleet.
     */
    spotOptions?: pulumi.Input<inputs.ec2.Ec2FleetSpotOptionsRequestArgs>;
    /**
     * The key-value pair for tagging the EC2 Fleet request on creation. For more information, see [Tag your resources](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources) .
     *
     * If the fleet type is `instant` , specify a resource type of `fleet` to tag the fleet or `instance` to tag the instances at launch.
     *
     * If the fleet type is `maintain` or `request` , specify a resource type of `fleet` to tag the fleet. You cannot specify a resource type of `instance` . To tag instances at launch, specify the tags in a [launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template) .
     */
    tagSpecifications?: pulumi.Input<pulumi.Input<inputs.ec2.Ec2FleetTagSpecificationArgs>[]>;
    /**
     * The number of units to request.
     */
    targetCapacitySpecification: pulumi.Input<inputs.ec2.Ec2FleetTargetCapacitySpecificationRequestArgs>;
    /**
     * Indicates whether running instances should be terminated when the EC2 Fleet expires.
     */
    terminateInstancesWithExpiration?: pulumi.Input<boolean>;
    /**
     * The fleet type. The default value is `maintain` .
     *
     * - `maintain` - The EC2 Fleet places an asynchronous request for your desired capacity, and continues to maintain your desired Spot capacity by replenishing interrupted Spot Instances.
     * - `request` - The EC2 Fleet places an asynchronous one-time request for your desired capacity, but does submit Spot requests in alternative capacity pools if Spot capacity is unavailable, and does not maintain Spot capacity if Spot Instances are interrupted.
     * - `instant` - The EC2 Fleet places a synchronous one-time request for your desired capacity, and returns errors for any instances that could not be launched.
     *
     * For more information, see [EC2 Fleet request types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-request-type.html) in the *Amazon EC2 User Guide* .
     */
    type?: pulumi.Input<enums.ec2.Ec2FleetType>;
    /**
     * The start date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). The default is to start fulfilling the request immediately.
     */
    validFrom?: pulumi.Input<string>;
    /**
     * The end date and time of the request, in UTC format (for example, *YYYY* - *MM* - *DD* T *HH* : *MM* : *SS* Z). At this point, no new EC2 Fleet requests are placed or able to fulfill the request. If no value is specified, the request remains until you cancel it.
     */
    validUntil?: pulumi.Input<string>;
}
