Reserved Instance Args
data class ReservedInstanceArgs(val autoRenewPeriod: Output<Int>? = null, val description: Output<String>? = null, val instanceAmount: Output<Int>? = null, val instanceType: Output<String>? = null, val name: Output<String>? = null, val offeringType: Output<String>? = null, val period: Output<Int>? = null, val periodUnit: Output<String>? = null, val platform: Output<String>? = null, val renewalStatus: Output<String>? = null, val reservedInstanceName: Output<String>? = null, val resourceGroupId: Output<String>? = null, val scope: Output<String>? = null, val tags: Output<Map<String, Any>>? = null, val zoneId: Output<String>? = null) : ConvertibleToJava<ReservedInstanceArgs>
Provides an Reserved Instance resource.
NOTE: Available in 1.65.0+
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const default = alicloud.ecs.getInstanceTypes({
instanceTypeFamily: "ecs.g6",
});
const defaultReservedInstance = new alicloud.ecs.ReservedInstance("default", {
instanceType: _default.then(_default => _default.instanceTypes?.[0]?.id),
instanceAmount: 1,
periodUnit: "Month",
offeringType: "All Upfront",
reservedInstanceName: "terraform-example",
description: "ReservedInstance",
zoneId: _default.then(_default => _default.instanceTypes?.[0]?.availabilityZones?.[0]),
scope: "Zone",
});Content copied to clipboard
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.ecs.get_instance_types(instance_type_family="ecs.g6")
default_reserved_instance = alicloud.ecs.ReservedInstance("default",
instance_type=default.instance_types[0].id,
instance_amount=1,
period_unit="Month",
offering_type="All Upfront",
reserved_instance_name="terraform-example",
description="ReservedInstance",
zone_id=default.instance_types[0].availability_zones[0],
scope="Zone")Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.Ecs.GetInstanceTypes.Invoke(new()
{
InstanceTypeFamily = "ecs.g6",
});
var defaultReservedInstance = new AliCloud.Ecs.ReservedInstance("default", new()
{
InstanceType = @default.Apply(@default => @default.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.Id)),
InstanceAmount = 1,
PeriodUnit = "Month",
OfferingType = "All Upfront",
ReservedInstanceName = "terraform-example",
Description = "ReservedInstance",
ZoneId = @default.Apply(@default => @default.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.AvailabilityZones[0])),
Scope = "Zone",
});
});Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := ecs.GetInstanceTypes(ctx, &ecs.GetInstanceTypesArgs{
InstanceTypeFamily: pulumi.StringRef("ecs.g6"),
}, nil)
if err != nil {
return err
}
_, err = ecs.NewReservedInstance(ctx, "default", &ecs.ReservedInstanceArgs{
InstanceType: pulumi.String(_default.InstanceTypes[0].Id),
InstanceAmount: pulumi.Int(1),
PeriodUnit: pulumi.String("Month"),
OfferingType: pulumi.String("All Upfront"),
ReservedInstanceName: pulumi.String("terraform-example"),
Description: pulumi.String("ReservedInstance"),
ZoneId: pulumi.String(_default.InstanceTypes[0].AvailabilityZones[0]),
Scope: pulumi.String("Zone"),
})
if err != nil {
return err
}
return nil
})
}Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.ReservedInstance;
import com.pulumi.alicloud.ecs.ReservedInstanceArgs;
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 default = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.instanceTypeFamily("ecs.g6")
.build());
var defaultReservedInstance = new ReservedInstance("defaultReservedInstance", ReservedInstanceArgs.builder()
.instanceType(default_.instanceTypes()[0].id())
.instanceAmount("1")
.periodUnit("Month")
.offeringType("All Upfront")
.reservedInstanceName("terraform-example")
.description("ReservedInstance")
.zoneId(default_.instanceTypes()[0].availabilityZones()[0])
.scope("Zone")
.build());
}
}Content copied to clipboard
resources:
defaultReservedInstance:
type: alicloud:ecs:ReservedInstance
name: default
properties:
instanceType: ${default.instanceTypes[0].id}
instanceAmount: '1'
periodUnit: Month
offeringType: All Upfront
reservedInstanceName: terraform-example
description: ReservedInstance
zoneId: ${default.instanceTypes[0].availabilityZones[0]}
scope: Zone
variables:
default:
fn::invoke:
Function: alicloud:ecs:getInstanceTypes
Arguments:
instanceTypeFamily: ecs.g6Content copied to clipboard
Import
reservedInstance can be imported using id, e.g.
$ pulumi import alicloud:ecs/reservedInstance:ReservedInstance default ecsri-uf6df4xm0h3licit****Content copied to clipboard
Constructors
Link copied to clipboard
fun ReservedInstanceArgs(autoRenewPeriod: Output<Int>? = null, description: Output<String>? = null, instanceAmount: Output<Int>? = null, instanceType: Output<String>? = null, name: Output<String>? = null, offeringType: Output<String>? = null, period: Output<Int>? = null, periodUnit: Output<String>? = null, platform: Output<String>? = null, renewalStatus: Output<String>? = null, reservedInstanceName: Output<String>? = null, resourceGroupId: Output<String>? = null, scope: Output<String>? = null, tags: Output<Map<String, Any>>? = null, zoneId: Output<String>? = null)
Functions
Properties
Link copied to clipboard
Instance type of the RI. For more information, see Instance type families.
Link copied to clipboard
Link copied to clipboard
ID of the zone to which the RI belongs. When Scope is set to Zone, this parameter is required. For information about the zone list, see DescribeZones.