InstanceArgs

data class InstanceArgs(val autoPay: Output<Boolean>? = null, val autoRenew: Output<Boolean>? = null, val description: Output<String>? = null, val eipBandwidth: Output<Int>? = null, val force: Output<Boolean>? = null, val imageId: Output<String>? = null, val instanceName: Output<String>? = null, val instanceType: Output<String>? = null, val keyPairName: Output<String>? = null, val paymentType: Output<String>? = null, val period: Output<String>? = null, val periodUnit: Output<String>? = null, val resolution: Output<String>? = null, val securityGroupId: Output<String>? = null, val status: Output<String>? = null, val vncPassword: Output<String>? = null, val vswitchId: Output<String>? = null) : ConvertibleToJava<InstanceArgs>

Provides a Elastic Cloud Phone (ECP) Instance resource. For information about Elastic Cloud Phone (ECP) Instance and how to use it, see What is Instance.

NOTE: Available since v1.158.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const defaultInteger = new random.index.Integer("default", {
min: 10000,
max: 99999,
});
const default = alicloud.ecp.getZones({});
const defaultGetInstanceTypes = alicloud.ecp.getInstanceTypes({});
const countSize = _default.then(_default => _default.zones).length;
const zoneId = Promise.all([_default, countSize])&#46;then(([_default, countSize]) => _default&#46;zones[countSize - 1].zoneId);
const instanceTypeCountSize = defaultGetInstanceTypes.then(defaultGetInstanceTypes => defaultGetInstanceTypes.instanceTypes).length;
const instanceType = Promise.all([defaultGetInstanceTypes, instanceTypeCountSize])&#46;then(([defaultGetInstanceTypes, instanceTypeCountSize]) => defaultGetInstanceTypes&#46;instanceTypes[instanceTypeCountSize - 1].instanceType);
const defaultGetNetworks = alicloud.vpc.getNetworks({
nameRegex: "^default-NODELETING$",
});
const defaultGetSwitches = defaultGetNetworks.then(defaultGetNetworks => alicloud.vpc.getSwitches({
vpcId: defaultGetNetworks.ids?.[0],
zoneId: zoneId,
}));
const group = new alicloud.ecs.SecurityGroup("group", {
name: name,
vpcId: defaultGetNetworks.then(defaultGetNetworks => defaultGetNetworks.ids?.[0]),
});
const defaultKeyPair = new alicloud.ecp.KeyPair("default", {
keyPairName: `${name}-${defaultInteger.result}`,
publicKeyBody: "ssh-rsa AAAAB3Nza12345678qwertyuudsfsg",
});
const defaultInstance = new alicloud.ecp.Instance("default", {
instanceName: name,
description: name,
keyPairName: defaultKeyPair.keyPairName,
securityGroupId: group.id,
vswitchId: defaultGetSwitches.then(defaultGetSwitches => defaultGetSwitches.ids?.[0]),
imageId: "android_9_0_0_release_2851157_20211201.vhd",
instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes => defaultGetInstanceTypes.instanceTypes?.[1]?.instanceType),
vncPassword: "Ecp123",
paymentType: "PayAsYouGo",
force: true,
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
default_integer = random.index.Integer("default",
min=10000,
max=99999)
default = alicloud.ecp.get_zones()
default_get_instance_types = alicloud.ecp.get_instance_types()
count_size = len(default.zones)
zone_id = default.zones[count_size - 1].zone_id
instance_type_count_size = len(default_get_instance_types.instance_types)
instance_type = default_get_instance_types.instance_types[instance_type_count_size - 1].instance_type
default_get_networks = alicloud.vpc.get_networks(name_regex="^default-NODELETING$")
default_get_switches = alicloud.vpc.get_switches(vpc_id=default_get_networks.ids[0],
zone_id=zone_id)
group = alicloud.ecs.SecurityGroup("group",
name=name,
vpc_id=default_get_networks.ids[0])
default_key_pair = alicloud.ecp.KeyPair("default",
key_pair_name=f"{name}-{default_integer['result']}",
public_key_body="ssh-rsa AAAAB3Nza12345678qwertyuudsfsg")
default_instance = alicloud.ecp.Instance("default",
instance_name=name,
description=name,
key_pair_name=default_key_pair.key_pair_name,
security_group_id=group.id,
vswitch_id=default_get_switches.ids[0],
image_id="android_9_0_0_release_2851157_20211201.vhd",
instance_type=default_get_instance_types.instance_types[1].instance_type,
vnc_password="Ecp123",
payment_type="PayAsYouGo",
force=True)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var defaultInteger = new Random.Index.Integer("default", new()
{
Min = 10000,
Max = 99999,
});
var @default = AliCloud.Ecp.GetZones.Invoke();
var defaultGetInstanceTypes = AliCloud.Ecp.GetInstanceTypes.Invoke();
var countSize = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones)).Length;
var zoneId = Output.Tuple(@default, countSize).Apply(values =>
{
var @default = values.Item1;
var countSize = values.Item2;
return @default.Apply(getZonesResult => getZonesResult.Zones)[countSize - 1].ZoneId;
});
var instanceTypeCountSize = defaultGetInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes).Length;
var instanceType = Output.Tuple(defaultGetInstanceTypes, instanceTypeCountSize).Apply(values =>
{
var defaultGetInstanceTypes = values.Item1;
var instanceTypeCountSize = values.Item2;
return defaultGetInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes)[instanceTypeCountSize - 1].InstanceType;
});
var defaultGetNetworks = AliCloud.Vpc.GetNetworks.Invoke(new()
{
NameRegex = "^default-NODELETING$",
});
var defaultGetSwitches = AliCloud.Vpc.GetSwitches.Invoke(new()
{
VpcId = defaultGetNetworks.Apply(getNetworksResult => getNetworksResult.Ids[0]),
ZoneId = zoneId,
});
var @group = new AliCloud.Ecs.SecurityGroup("group", new()
{
Name = name,
VpcId = defaultGetNetworks.Apply(getNetworksResult => getNetworksResult.Ids[0]),
});
var defaultKeyPair = new AliCloud.Ecp.KeyPair("default", new()
{
KeyPairName = $"{name}-{defaultInteger.Result}",
PublicKeyBody = "ssh-rsa AAAAB3Nza12345678qwertyuudsfsg",
});
var defaultInstance = new AliCloud.Ecp.Instance("default", new()
{
InstanceName = name,
Description = name,
KeyPairName = defaultKeyPair.KeyPairName,
SecurityGroupId = @group.Id,
VswitchId = defaultGetSwitches.Apply(getSwitchesResult => getSwitchesResult.Ids[0]),
ImageId = "android_9_0_0_release_2851157_20211201.vhd",
InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[1]?.InstanceType),
VncPassword = "Ecp123",
PaymentType = "PayAsYouGo",
Force = true,
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecp"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "tf-example"
if param := cfg.Get("name"); param != "" {
name = param
}
defaultInteger, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Min: 10000,
Max: 99999,
})
if err != nil {
return err
}
_default, err := ecp.GetZones(ctx, nil, nil)
if err != nil {
return err
}
defaultGetInstanceTypes, err := ecp.GetInstanceTypes(ctx, nil, nil)
if err != nil {
return err
}
countSize := len(_default.Zones)
zoneId := _default.Zones[countSize-1].ZoneId
instanceTypeCountSize := len(defaultGetInstanceTypes.InstanceTypes)
_ := defaultGetInstanceTypes.InstanceTypes[instanceTypeCountSize-1].InstanceType
defaultGetNetworks, err := vpc.GetNetworks(ctx, &vpc.GetNetworksArgs{
NameRegex: pulumi.StringRef("^default-NODELETING$"),
}, nil)
if err != nil {
return err
}
defaultGetSwitches, err := vpc.GetSwitches(ctx, &vpc.GetSwitchesArgs{
VpcId: pulumi.StringRef(defaultGetNetworks.Ids[0]),
ZoneId: pulumi.StringRef(zoneId),
}, nil)
if err != nil {
return err
}
group, err := ecs.NewSecurityGroup(ctx, "group", &ecs.SecurityGroupArgs{
Name: pulumi.String(name),
VpcId: pulumi.String(defaultGetNetworks.Ids[0]),
})
if err != nil {
return err
}
defaultKeyPair, err := ecp.NewKeyPair(ctx, "default", &ecp.KeyPairArgs{
KeyPairName: pulumi.String(fmt.Sprintf("%v-%v", name, defaultInteger.Result)),
PublicKeyBody: pulumi.String("ssh-rsa AAAAB3Nza12345678qwertyuudsfsg"),
})
if err != nil {
return err
}
_, err = ecp.NewInstance(ctx, "default", &ecp.InstanceArgs{
InstanceName: pulumi.String(name),
Description: pulumi.String(name),
KeyPairName: defaultKeyPair.KeyPairName,
SecurityGroupId: group.ID(),
VswitchId: pulumi.String(defaultGetSwitches.Ids[0]),
ImageId: pulumi.String("android_9_0_0_release_2851157_20211201.vhd"),
InstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[1].InstanceType),
VncPassword: pulumi.String("Ecp123"),
PaymentType: pulumi.String("PayAsYouGo"),
Force: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.ecp.EcpFunctions;
import com.pulumi.alicloud.ecp.inputs.GetZonesArgs;
import com.pulumi.alicloud.ecp.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.vpc.VpcFunctions;
import com.pulumi.alicloud.vpc.inputs.GetNetworksArgs;
import com.pulumi.alicloud.vpc.inputs.GetSwitchesArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.ecp.KeyPair;
import com.pulumi.alicloud.ecp.KeyPairArgs;
import com.pulumi.alicloud.ecp.Instance;
import com.pulumi.alicloud.ecp.InstanceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var name = config.get("name").orElse("tf-example");
var defaultInteger = new Integer("defaultInteger", IntegerArgs.builder()
.min(10000)
.max(99999)
.build());
final var default = EcpFunctions.getZones();
final var defaultGetInstanceTypes = EcpFunctions.getInstanceTypes();
final var countSize = default_.zones().length();
final var zoneId = default_.zones()[countSize - 1].zoneId();
final var instanceTypeCountSize = defaultGetInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()).length();
final var instanceType = defaultGetInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes())[instanceTypeCountSize - 1].instanceType();
final var defaultGetNetworks = VpcFunctions.getNetworks(GetNetworksArgs.builder()
.nameRegex("^default-NODELETING$")
.build());
final var defaultGetSwitches = VpcFunctions.getSwitches(GetSwitchesArgs.builder()
.vpcId(defaultGetNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.zoneId(zoneId)
.build());
var group = new SecurityGroup("group", SecurityGroupArgs.builder()
.name(name)
.vpcId(defaultGetNetworks.applyValue(getNetworksResult -> getNetworksResult.ids()[0]))
.build());
var defaultKeyPair = new KeyPair("defaultKeyPair", KeyPairArgs.builder()
.keyPairName(String.format("%s-%s", name,defaultInteger.result()))
.publicKeyBody("ssh-rsa AAAAB3Nza12345678qwertyuudsfsg")
.build());
var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()
.instanceName(name)
.description(name)
.keyPairName(defaultKeyPair.keyPairName())
.securityGroupId(group.id())
.vswitchId(defaultGetSwitches.applyValue(getSwitchesResult -> getSwitchesResult.ids()[0]))
.imageId("android_9_0_0_release_2851157_20211201.vhd")
.instanceType(defaultGetInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[1].instanceType()))
.vncPassword("Ecp123")
.paymentType("PayAsYouGo")
.force("true")
.build());
}
}

Import

Elastic Cloud Phone (ECP) Instance can be imported using the id, e.g.

$ pulumi import alicloud:ecp/instance:Instance example <id>

Constructors

Link copied to clipboard
constructor(autoPay: Output<Boolean>? = null, autoRenew: Output<Boolean>? = null, description: Output<String>? = null, eipBandwidth: Output<Int>? = null, force: Output<Boolean>? = null, imageId: Output<String>? = null, instanceName: Output<String>? = null, instanceType: Output<String>? = null, keyPairName: Output<String>? = null, paymentType: Output<String>? = null, period: Output<String>? = null, periodUnit: Output<String>? = null, resolution: Output<String>? = null, securityGroupId: Output<String>? = null, status: Output<String>? = null, vncPassword: Output<String>? = null, vswitchId: Output<String>? = null)

Properties

Link copied to clipboard
val autoPay: Output<Boolean>? = null

The auto pay.

Link copied to clipboard
val autoRenew: Output<Boolean>? = null

The auto renew.

Link copied to clipboard
val description: Output<String>? = null

Description of the instance. 2 to 256 English or Chinese characters in length and cannot start with http:// and https.

Link copied to clipboard
val eipBandwidth: Output<Int>? = null

The eip bandwidth.

Link copied to clipboard
val force: Output<Boolean>? = null

The force.

Link copied to clipboard
val imageId: Output<String>? = null

The ID Of The Image.

Link copied to clipboard
val instanceName: Output<String>? = null

The name of the instance. It must be 2 to 128 characters in length and must start with an uppercase letter or Chinese. It cannot start with http:// or https. It can contain Chinese, English, numbers, half-width colons (:), underscores (_), half-width periods (.), or dashes (-). The default value is the InstanceId of the instance.

Link copied to clipboard
val instanceType: Output<String>? = null

Instance Type.

Link copied to clipboard
val keyPairName: Output<String>? = null

The name of the key pair of the mobile phone instance.

Link copied to clipboard
val paymentType: Output<String>? = null

The payment type.Valid values: PayAsYouGo,Subscription

Link copied to clipboard
val period: Output<String>? = null

The period. It is valid when period_unit is 'Year'. Valid value: 1, 2, 3, 4, 5. It is valid when period_unit is 'Month'. Valid value: 1, 2, 3, 5

Link copied to clipboard
val periodUnit: Output<String>? = null

The duration unit that you will buy the resource. Valid value: Year,Month. Default to Month.

Link copied to clipboard
val resolution: Output<String>? = null

The selected resolution for the cloud mobile phone instance.

Link copied to clipboard
val securityGroupId: Output<String>? = null

The ID of the security group. The security group is the same as that of the ECS instance.

Link copied to clipboard
val status: Output<String>? = null

Instance status. Valid values: Running, Stopped.

Link copied to clipboard
val vncPassword: Output<String>? = null

Cloud mobile phone VNC password. The password must be six characters in length and must contain only uppercase, lowercase English letters and Arabic numerals.

Link copied to clipboard
val vswitchId: Output<String>? = null

The vswitch id.

Functions

Link copied to clipboard
open override fun toJava(): InstanceArgs