"use strict";
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.getInstancesOutput = exports.getInstances = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
 * Use this data source to query detailed information of ecs instances
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooZones = volcengine.ecs.getZones({});
 * const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
 *     vpcName: "acc-test-vpc",
 *     cidrBlock: "172.16.0.0/16",
 * });
 * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
 *     subnetName: "acc-test-subnet",
 *     cidrBlock: "172.16.0.0/24",
 *     zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id),
 *     vpcId: fooVpc.id,
 * });
 * const fooSecurityGroup = new volcengine.vpc.SecurityGroup("fooSecurityGroup", {
 *     securityGroupName: "acc-test-security-group",
 *     vpcId: fooVpc.id,
 * });
 * const fooImages = volcengine.ecs.getImages({
 *     osType: "Linux",
 *     visibility: "public",
 *     instanceTypeId: "ecs.g1.large",
 * });
 * const fooInstance: volcengine.ecs.Instance[] = [];
 * for (const range = {value: 0}; range.value < 2; range.value++) {
 *     fooInstance.push(new volcengine.ecs.Instance(`fooInstance-${range.value}`, {
 *         instanceName: `acc-test-ecs-${range.value}`,
 *         description: "acc-test",
 *         hostName: "tf-acc-test",
 *         imageId: fooImages.then(fooImages => fooImages.images?.[0]?.imageId),
 *         instanceType: "ecs.g1.large",
 *         password: "93f0cb0614Aab12",
 *         instanceChargeType: "PostPaid",
 *         systemVolumeType: "ESSD_PL0",
 *         systemVolumeSize: 40,
 *         dataVolumes: [{
 *             volumeType: "ESSD_PL0",
 *             size: 50,
 *             deleteWithInstance: true,
 *         }],
 *         subnetId: fooSubnet.id,
 *         securityGroupIds: [fooSecurityGroup.id],
 *         projectName: "default",
 *         tags: [{
 *             key: "k1",
 *             value: "v1",
 *         }],
 *     }));
 * }
 * const fooInstances = volcengine.ecs.getInstancesOutput({
 *     ids: fooInstance.map(__item => __item.id),
 * });
 * ```
 */
function getInstances(args, opts) {
    args = args || {};
    opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
    return pulumi.runtime.invoke("volcengine:ecs/getInstances:getInstances", {
        "deploymentSetIds": args.deploymentSetIds,
        "eipAddresses": args.eipAddresses,
        "hpcClusterId": args.hpcClusterId,
        "ids": args.ids,
        "instanceChargeType": args.instanceChargeType,
        "instanceName": args.instanceName,
        "instanceTypeFamilies": args.instanceTypeFamilies,
        "instanceTypeIds": args.instanceTypeIds,
        "ipv6Addresses": args.ipv6Addresses,
        "keyPairName": args.keyPairName,
        "nameRegex": args.nameRegex,
        "outputFile": args.outputFile,
        "primaryIpAddress": args.primaryIpAddress,
        "projectName": args.projectName,
        "status": args.status,
        "tags": args.tags,
        "vpcId": args.vpcId,
        "zoneId": args.zoneId,
    }, opts);
}
exports.getInstances = getInstances;
/**
 * Use this data source to query detailed information of ecs instances
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as volcengine from "@pulumi/volcengine";
 * import * as volcengine from "@volcengine/pulumi";
 *
 * const fooZones = volcengine.ecs.getZones({});
 * const fooVpc = new volcengine.vpc.Vpc("fooVpc", {
 *     vpcName: "acc-test-vpc",
 *     cidrBlock: "172.16.0.0/16",
 * });
 * const fooSubnet = new volcengine.vpc.Subnet("fooSubnet", {
 *     subnetName: "acc-test-subnet",
 *     cidrBlock: "172.16.0.0/24",
 *     zoneId: fooZones.then(fooZones => fooZones.zones?.[0]?.id),
 *     vpcId: fooVpc.id,
 * });
 * const fooSecurityGroup = new volcengine.vpc.SecurityGroup("fooSecurityGroup", {
 *     securityGroupName: "acc-test-security-group",
 *     vpcId: fooVpc.id,
 * });
 * const fooImages = volcengine.ecs.getImages({
 *     osType: "Linux",
 *     visibility: "public",
 *     instanceTypeId: "ecs.g1.large",
 * });
 * const fooInstance: volcengine.ecs.Instance[] = [];
 * for (const range = {value: 0}; range.value < 2; range.value++) {
 *     fooInstance.push(new volcengine.ecs.Instance(`fooInstance-${range.value}`, {
 *         instanceName: `acc-test-ecs-${range.value}`,
 *         description: "acc-test",
 *         hostName: "tf-acc-test",
 *         imageId: fooImages.then(fooImages => fooImages.images?.[0]?.imageId),
 *         instanceType: "ecs.g1.large",
 *         password: "93f0cb0614Aab12",
 *         instanceChargeType: "PostPaid",
 *         systemVolumeType: "ESSD_PL0",
 *         systemVolumeSize: 40,
 *         dataVolumes: [{
 *             volumeType: "ESSD_PL0",
 *             size: 50,
 *             deleteWithInstance: true,
 *         }],
 *         subnetId: fooSubnet.id,
 *         securityGroupIds: [fooSecurityGroup.id],
 *         projectName: "default",
 *         tags: [{
 *             key: "k1",
 *             value: "v1",
 *         }],
 *     }));
 * }
 * const fooInstances = volcengine.ecs.getInstancesOutput({
 *     ids: fooInstance.map(__item => __item.id),
 * });
 * ```
 */
function getInstancesOutput(args, opts) {
    return pulumi.output(args).apply((a) => getInstances(a, opts));
}
exports.getInstancesOutput = getInstancesOutput;
//# sourceMappingURL=getInstances.js.map