import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const foo = new volcengine.ecs.LaunchTemplate("foo", {
 *     description: "acc-test-desc",
 *     eipBandwidth: 1,
 *     eipBillingType: "PostPaidByBandwidth",
 *     eipIsp: "ChinaMobile",
 *     hostName: "tf-host-name",
 *     hpcClusterId: "hpcCluster-l8u24ovdmoab6opf",
 *     imageId: "image-ycjwwciuzy5pkh54xx8f",
 *     instanceChargeType: "PostPaid",
 *     instanceName: "tf-acc-name",
 *     instanceTypeId: "ecs.g1.large",
 *     keyPairName: "tf-key-pair",
 *     launchTemplateName: "tf-acc-template",
 *     launchTemplateProjectName: "default",
 *     launchTemplateTags: [{
 *         key: "tfk1",
 *         value: "tfv1",
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * LaunchTemplate can be imported using the LaunchTemplateId, e.g.
 * When the instance launch template is modified, a new version will be created.
 * When the number of versions reaches the upper limit (30), the oldest version that is not the default version will be deleted.
 *
 * ```sh
 * $ pulumi import volcengine:ecs/launchTemplate:LaunchTemplate default lt-ysxc16auaugh9zfy****
 * ```
 */
export declare class LaunchTemplate extends pulumi.CustomResource {
    /**
     * Get an existing LaunchTemplate 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 state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: LaunchTemplateState, opts?: pulumi.CustomResourceOptions): LaunchTemplate;
    /**
     * Returns true if the given object is an instance of LaunchTemplate.  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 LaunchTemplate;
    /**
     * The description of the instance.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The EIP bandwidth which the scaling configuration set.
     */
    readonly eipBandwidth: pulumi.Output<number | undefined>;
    /**
     * The EIP billing type which the scaling configuration set. Valid values: PostPaidByBandwidth, PostPaidByTraffic.
     */
    readonly eipBillingType: pulumi.Output<string | undefined>;
    /**
     * The EIP ISP which the scaling configuration set. Valid values: BGP, ChinaMobile, ChinaUnicom, ChinaTelecom.
     */
    readonly eipIsp: pulumi.Output<string | undefined>;
    /**
     * The host name of the instance.
     */
    readonly hostName: pulumi.Output<string | undefined>;
    /**
     * The hpc cluster id.
     */
    readonly hpcClusterId: pulumi.Output<string | undefined>;
    /**
     * The image ID.
     */
    readonly imageId: pulumi.Output<string | undefined>;
    /**
     * The charge type of the instance and volume.
     */
    readonly instanceChargeType: pulumi.Output<string | undefined>;
    /**
     * The name of the instance.
     */
    readonly instanceName: pulumi.Output<string | undefined>;
    /**
     * The compute type of the instance.
     */
    readonly instanceTypeId: pulumi.Output<string | undefined>;
    /**
     * When you log in to the instance using the SSH key pair, enter the name of the key pair.
     */
    readonly keyPairName: pulumi.Output<string | undefined>;
    /**
     * The launch template id.
     */
    readonly launchTemplateId: pulumi.Output<string>;
    /**
     * The name of the launch template.
     */
    readonly launchTemplateName: pulumi.Output<string>;
    /**
     * The project name of the launch template.
     */
    readonly launchTemplateProjectName: pulumi.Output<string | undefined>;
    /**
     * The tags of the launch template.
     */
    readonly launchTemplateTags: pulumi.Output<outputs.ecs.LaunchTemplateLaunchTemplateTag[] | undefined>;
    /**
     * The list of network interfaces. When creating an instance, it is supported to bind auxiliary network cards at the same time. The first one is the primary network card, and the others are secondary network cards.
     */
    readonly networkInterfaces: pulumi.Output<outputs.ecs.LaunchTemplateNetworkInterface[] | undefined>;
    /**
     * The project name of the instance.
     */
    readonly projectName: pulumi.Output<string | undefined>;
    /**
     * Whether to open the security reinforcement.
     */
    readonly securityEnhancementStrategy: pulumi.Output<string | undefined>;
    /**
     * The index of the ordered suffix.
     */
    readonly suffixIndex: pulumi.Output<number>;
    /**
     * The tags of the instance.
     */
    readonly tags: pulumi.Output<outputs.ecs.LaunchTemplateTag[] | undefined>;
    /**
     * Indicates whether the ordered suffix is automatically added to Hostname and InstanceName when multiple instances are created.
     */
    readonly uniqueSuffix: pulumi.Output<boolean | undefined>;
    /**
     * Instance custom data. The set custom data must be Base64 encoded, and the size of the custom data before Base64 encoding cannot exceed 16KB.
     */
    readonly userData: pulumi.Output<string | undefined>;
    /**
     * The latest version description of the launch template.
     */
    readonly versionDescription: pulumi.Output<string | undefined>;
    /**
     * The list of volume of the scaling configuration.
     */
    readonly volumes: pulumi.Output<outputs.ecs.LaunchTemplateVolume[] | undefined>;
    /**
     * The vpc id.
     */
    readonly vpcId: pulumi.Output<string | undefined>;
    /**
     * The zone id.
     */
    readonly zoneId: pulumi.Output<string | undefined>;
    /**
     * Create a LaunchTemplate 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: LaunchTemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering LaunchTemplate resources.
 */
export interface LaunchTemplateState {
    /**
     * The description of the instance.
     */
    description?: pulumi.Input<string>;
    /**
     * The EIP bandwidth which the scaling configuration set.
     */
    eipBandwidth?: pulumi.Input<number>;
    /**
     * The EIP billing type which the scaling configuration set. Valid values: PostPaidByBandwidth, PostPaidByTraffic.
     */
    eipBillingType?: pulumi.Input<string>;
    /**
     * The EIP ISP which the scaling configuration set. Valid values: BGP, ChinaMobile, ChinaUnicom, ChinaTelecom.
     */
    eipIsp?: pulumi.Input<string>;
    /**
     * The host name of the instance.
     */
    hostName?: pulumi.Input<string>;
    /**
     * The hpc cluster id.
     */
    hpcClusterId?: pulumi.Input<string>;
    /**
     * The image ID.
     */
    imageId?: pulumi.Input<string>;
    /**
     * The charge type of the instance and volume.
     */
    instanceChargeType?: pulumi.Input<string>;
    /**
     * The name of the instance.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * The compute type of the instance.
     */
    instanceTypeId?: pulumi.Input<string>;
    /**
     * When you log in to the instance using the SSH key pair, enter the name of the key pair.
     */
    keyPairName?: pulumi.Input<string>;
    /**
     * The launch template id.
     */
    launchTemplateId?: pulumi.Input<string>;
    /**
     * The name of the launch template.
     */
    launchTemplateName?: pulumi.Input<string>;
    /**
     * The project name of the launch template.
     */
    launchTemplateProjectName?: pulumi.Input<string>;
    /**
     * The tags of the launch template.
     */
    launchTemplateTags?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateLaunchTemplateTag>[]>;
    /**
     * The list of network interfaces. When creating an instance, it is supported to bind auxiliary network cards at the same time. The first one is the primary network card, and the others are secondary network cards.
     */
    networkInterfaces?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateNetworkInterface>[]>;
    /**
     * The project name of the instance.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Whether to open the security reinforcement.
     */
    securityEnhancementStrategy?: pulumi.Input<string>;
    /**
     * The index of the ordered suffix.
     */
    suffixIndex?: pulumi.Input<number>;
    /**
     * The tags of the instance.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateTag>[]>;
    /**
     * Indicates whether the ordered suffix is automatically added to Hostname and InstanceName when multiple instances are created.
     */
    uniqueSuffix?: pulumi.Input<boolean>;
    /**
     * Instance custom data. The set custom data must be Base64 encoded, and the size of the custom data before Base64 encoding cannot exceed 16KB.
     */
    userData?: pulumi.Input<string>;
    /**
     * The latest version description of the launch template.
     */
    versionDescription?: pulumi.Input<string>;
    /**
     * The list of volume of the scaling configuration.
     */
    volumes?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateVolume>[]>;
    /**
     * The vpc id.
     */
    vpcId?: pulumi.Input<string>;
    /**
     * The zone id.
     */
    zoneId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a LaunchTemplate resource.
 */
export interface LaunchTemplateArgs {
    /**
     * The description of the instance.
     */
    description?: pulumi.Input<string>;
    /**
     * The EIP bandwidth which the scaling configuration set.
     */
    eipBandwidth?: pulumi.Input<number>;
    /**
     * The EIP billing type which the scaling configuration set. Valid values: PostPaidByBandwidth, PostPaidByTraffic.
     */
    eipBillingType?: pulumi.Input<string>;
    /**
     * The EIP ISP which the scaling configuration set. Valid values: BGP, ChinaMobile, ChinaUnicom, ChinaTelecom.
     */
    eipIsp?: pulumi.Input<string>;
    /**
     * The host name of the instance.
     */
    hostName?: pulumi.Input<string>;
    /**
     * The hpc cluster id.
     */
    hpcClusterId?: pulumi.Input<string>;
    /**
     * The image ID.
     */
    imageId?: pulumi.Input<string>;
    /**
     * The charge type of the instance and volume.
     */
    instanceChargeType?: pulumi.Input<string>;
    /**
     * The name of the instance.
     */
    instanceName?: pulumi.Input<string>;
    /**
     * The compute type of the instance.
     */
    instanceTypeId?: pulumi.Input<string>;
    /**
     * When you log in to the instance using the SSH key pair, enter the name of the key pair.
     */
    keyPairName?: pulumi.Input<string>;
    /**
     * The name of the launch template.
     */
    launchTemplateName: pulumi.Input<string>;
    /**
     * The project name of the launch template.
     */
    launchTemplateProjectName?: pulumi.Input<string>;
    /**
     * The tags of the launch template.
     */
    launchTemplateTags?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateLaunchTemplateTag>[]>;
    /**
     * The list of network interfaces. When creating an instance, it is supported to bind auxiliary network cards at the same time. The first one is the primary network card, and the others are secondary network cards.
     */
    networkInterfaces?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateNetworkInterface>[]>;
    /**
     * The project name of the instance.
     */
    projectName?: pulumi.Input<string>;
    /**
     * Whether to open the security reinforcement.
     */
    securityEnhancementStrategy?: pulumi.Input<string>;
    /**
     * The index of the ordered suffix.
     */
    suffixIndex?: pulumi.Input<number>;
    /**
     * The tags of the instance.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateTag>[]>;
    /**
     * Indicates whether the ordered suffix is automatically added to Hostname and InstanceName when multiple instances are created.
     */
    uniqueSuffix?: pulumi.Input<boolean>;
    /**
     * Instance custom data. The set custom data must be Base64 encoded, and the size of the custom data before Base64 encoding cannot exceed 16KB.
     */
    userData?: pulumi.Input<string>;
    /**
     * The latest version description of the launch template.
     */
    versionDescription?: pulumi.Input<string>;
    /**
     * The list of volume of the scaling configuration.
     */
    volumes?: pulumi.Input<pulumi.Input<inputs.ecs.LaunchTemplateVolume>[]>;
    /**
     * The vpc id.
     */
    vpcId?: pulumi.Input<string>;
    /**
     * The zone id.
     */
    zoneId?: pulumi.Input<string>;
}
