import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * AWS::PCS::ComputeNodeGroup resource creates an AWS PCS compute node group.
 */
export declare class ComputeNodeGroup extends pulumi.CustomResource {
    /**
     * Get an existing ComputeNodeGroup 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): ComputeNodeGroup;
    /**
     * Returns true if the given object is an instance of ComputeNodeGroup.  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 ComputeNodeGroup;
    /**
     * The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances. If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
     */
    readonly amiId: pulumi.Output<string | undefined>;
    /**
     * The unique Amazon Resource Name (ARN) of the compute node group.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The generated unique ID of the compute node group.
     */
    readonly awsId: pulumi.Output<string>;
    /**
     * The ID of the cluster of the compute node group.
     */
    readonly clusterId: pulumi.Output<string>;
    /**
     * An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
     */
    readonly customLaunchTemplate: pulumi.Output<outputs.pcs.CustomLaunchTemplateProperties>;
    /**
     * The list of errors that occurred during compute node group provisioning.
     */
    readonly errorInfo: pulumi.Output<outputs.pcs.ComputeNodeGroupErrorInfo[]>;
    /**
     * The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.
     */
    readonly iamInstanceProfileArn: pulumi.Output<string>;
    /**
     * A list of EC2 instance configurations that AWS PCS can provision in the compute node group.
     */
    readonly instanceConfigs: pulumi.Output<outputs.pcs.ComputeNodeGroupInstanceConfig[]>;
    /**
     * The name that identifies the compute node group.
     */
    readonly name: pulumi.Output<string | undefined>;
    /**
     * Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand, Spot, Capacity Block, and Interruptible Capacity Reservation instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
     */
    readonly purchaseOption: pulumi.Output<enums.pcs.ComputeNodeGroupPurchaseOption | undefined>;
    /**
     * Specifies the boundaries of the compute node group auto scaling.
     */
    readonly scalingConfiguration: pulumi.Output<outputs.pcs.ScalingConfigurationProperties>;
    /**
     * Additional options related to the Slurm scheduler.
     */
    readonly slurmConfiguration: pulumi.Output<outputs.pcs.SlurmConfigurationProperties | undefined>;
    /**
     * Additional configuration when you specify SPOT as the purchase option.
     */
    readonly spotOptions: pulumi.Output<outputs.pcs.SpotOptionsProperties | undefined>;
    /**
     * The provisioning status of the compute node group. The provisioning status doesn't indicate the overall health of the compute node group.
     */
    readonly status: pulumi.Output<enums.pcs.ComputeNodeGroupStatus>;
    /**
     * The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.
     */
    readonly subnetIds: pulumi.Output<string[]>;
    /**
     * 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Create a ComputeNodeGroup 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: ComputeNodeGroupArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a ComputeNodeGroup resource.
 */
export interface ComputeNodeGroupArgs {
    /**
     * The ID of the Amazon Machine Image (AMI) that AWS PCS uses to launch instances. If not provided, AWS PCS uses the AMI ID specified in the custom launch template.
     */
    amiId?: pulumi.Input<string>;
    /**
     * The ID of the cluster of the compute node group.
     */
    clusterId: pulumi.Input<string>;
    /**
     * An Amazon EC2 launch template AWS PCS uses to launch compute nodes.
     */
    customLaunchTemplate: pulumi.Input<inputs.pcs.CustomLaunchTemplatePropertiesArgs>;
    /**
     * The Amazon Resource Name (ARN) of the IAM instance profile used to pass an IAM role when launching EC2 instances. The role contained in your instance profile must have pcs:RegisterComputeNodeGroupInstance permissions attached to provision instances correctly.
     */
    iamInstanceProfileArn: pulumi.Input<string>;
    /**
     * A list of EC2 instance configurations that AWS PCS can provision in the compute node group.
     */
    instanceConfigs: pulumi.Input<pulumi.Input<inputs.pcs.ComputeNodeGroupInstanceConfigArgs>[]>;
    /**
     * The name that identifies the compute node group.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies how EC2 instances are purchased on your behalf. AWS PCS supports On-Demand, Spot, Capacity Block, and Interruptible Capacity Reservation instances. For more information, see Instance purchasing options in the Amazon Elastic Compute Cloud User Guide. If you don't provide this option, it defaults to On-Demand.
     */
    purchaseOption?: pulumi.Input<enums.pcs.ComputeNodeGroupPurchaseOption>;
    /**
     * Specifies the boundaries of the compute node group auto scaling.
     */
    scalingConfiguration: pulumi.Input<inputs.pcs.ScalingConfigurationPropertiesArgs>;
    /**
     * Additional options related to the Slurm scheduler.
     */
    slurmConfiguration?: pulumi.Input<inputs.pcs.SlurmConfigurationPropertiesArgs>;
    /**
     * Additional configuration when you specify SPOT as the purchase option.
     */
    spotOptions?: pulumi.Input<inputs.pcs.SpotOptionsPropertiesArgs>;
    /**
     * The list of subnet IDs where instances are provisioned by the compute node group. The subnets must be in the same VPC as the cluster.
     */
    subnetIds: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * 1 or more tags added to the resource. Each tag consists of a tag key and tag value. The tag value is optional and can be an empty string.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
}
