ElasticityAssuranceArgs

data class ElasticityAssuranceArgs(val assuranceTimes: Output<String>? = null, val description: Output<String>? = null, val instanceAmount: Output<Int>? = null, val instanceType: Output<String>? = null, val period: Output<Int>? = null, val periodUnit: Output<String>? = null, val privatePoolOptionsMatchCriteria: Output<String>? = null, val privatePoolOptionsName: Output<String>? = null, val resourceGroupId: Output<String>? = null, val startTime: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val zoneIds: Output<List<String>>? = null) : ConvertibleToJava<ElasticityAssuranceArgs>

Provides a Ecs Elasticity Assurance resource. For information about Ecs Elasticity Assurance and how to use it, see What is Elasticity Assurance.

NOTE: Available in v1.196.0+.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const _default = alicloud.resourcemanager.getResourceGroups({
status: "OK",
});
const defaultGetZones = alicloud.getZones({
availableResourceCreation: "Instance",
});
const defaultGetInstanceTypes = alicloud.ecs.getInstanceTypes({
instanceTypeFamily: "ecs.c6",
});
const defaultElasticityAssurance = new alicloud.ecs.ElasticityAssurance("default", {
instanceAmount: 1,
description: "before",
zoneIds: [defaultGetZones&#46;then(defaultGetZones => defaultGetZones&#46;zones?&#46;[2]?&#46;id)],
privatePoolOptionsName: "test_before",
period: 1,
privatePoolOptionsMatchCriteria: "Open",
instanceType: defaultGetInstanceTypes.then(defaultGetInstanceTypes => defaultGetInstanceTypes.instanceTypes?.[0]?.id),
periodUnit: "Month",
assuranceTimes: "Unlimited",
resourceGroupId: _default.then(_default => _default.ids?.[0]),
});
import pulumi
import pulumi_alicloud as alicloud
default = alicloud.resourcemanager.get_resource_groups(status="OK")
default_get_zones = alicloud.get_zones(available_resource_creation="Instance")
default_get_instance_types = alicloud.ecs.get_instance_types(instance_type_family="ecs.c6")
default_elasticity_assurance = alicloud.ecs.ElasticityAssurance("default",
instance_amount=1,
description="before",
zone_ids=[default_get_zones&#46;zones[2]&#46;id],
private_pool_options_name="test_before",
period=1,
private_pool_options_match_criteria="Open",
instance_type=default_get_instance_types.instance_types[0].id,
period_unit="Month",
assurance_times="Unlimited",
resource_group_id=default.ids[0])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var @default = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()
{
Status = "OK",
});
var defaultGetZones = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "Instance",
});
var defaultGetInstanceTypes = AliCloud.Ecs.GetInstanceTypes.Invoke(new()
{
InstanceTypeFamily = "ecs.c6",
});
var defaultElasticityAssurance = new AliCloud.Ecs.ElasticityAssurance("default", new()
{
InstanceAmount = 1,
Description = "before",
ZoneIds = new[]
{
defaultGetZones.Apply(getZonesResult => getZonesResult.Zones[2]?.Id),
},
PrivatePoolOptionsName = "test_before",
Period = 1,
PrivatePoolOptionsMatchCriteria = "Open",
InstanceType = defaultGetInstanceTypes.Apply(getInstanceTypesResult => getInstanceTypesResult.InstanceTypes[0]?.Id),
PeriodUnit = "Month",
AssuranceTimes = "Unlimited",
ResourceGroupId = @default.Apply(@default => @default.Apply(getResourceGroupsResult => getResourceGroupsResult.Ids[0])),
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_default, err := resourcemanager.GetResourceGroups(ctx, &resourcemanager.GetResourceGroupsArgs{
Status: pulumi.StringRef("OK"),
}, nil)
if err != nil {
return err
}
defaultGetZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("Instance"),
}, nil)
if err != nil {
return err
}
defaultGetInstanceTypes, err := ecs.GetInstanceTypes(ctx, &ecs.GetInstanceTypesArgs{
InstanceTypeFamily: pulumi.StringRef("ecs.c6"),
}, nil)
if err != nil {
return err
}
_, err = ecs.NewElasticityAssurance(ctx, "default", &ecs.ElasticityAssuranceArgs{
InstanceAmount: pulumi.Int(1),
Description: pulumi.String("before"),
ZoneIds: pulumi.StringArray{
pulumi.String(defaultGetZones.Zones[2].Id),
},
PrivatePoolOptionsName: pulumi.String("test_before"),
Period: pulumi.Int(1),
PrivatePoolOptionsMatchCriteria: pulumi.String("Open"),
InstanceType: pulumi.String(defaultGetInstanceTypes.InstanceTypes[0].Id),
PeriodUnit: pulumi.String("Month"),
AssuranceTimes: pulumi.String("Unlimited"),
ResourceGroupId: pulumi.String(_default.Ids[0]),
})
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.alicloud.resourcemanager.ResourcemanagerFunctions;
import com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.ElasticityAssurance;
import com.pulumi.alicloud.ecs.ElasticityAssuranceArgs;
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 = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()
.status("OK")
.build());
final var defaultGetZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("Instance")
.build());
final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.instanceTypeFamily("ecs.c6")
.build());
var defaultElasticityAssurance = new ElasticityAssurance("defaultElasticityAssurance", ElasticityAssuranceArgs.builder()
.instanceAmount(1)
.description("before")
.zoneIds(defaultGetZones.applyValue(getZonesResult -> getZonesResult.zones()[2].id()))
.privatePoolOptionsName("test_before")
.period(1)
.privatePoolOptionsMatchCriteria("Open")
.instanceType(defaultGetInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.periodUnit("Month")
.assuranceTimes("Unlimited")
.resourceGroupId(default_.ids()[0])
.build());
}
}
resources:
defaultElasticityAssurance:
type: alicloud:ecs:ElasticityAssurance
name: default
properties:
instanceAmount: 1
description: before
zoneIds:
- ${defaultGetZones.zones[2].id}
privatePoolOptionsName: test_before
period: 1
privatePoolOptionsMatchCriteria: Open
instanceType: ${defaultGetInstanceTypes.instanceTypes[0].id}
periodUnit: Month
assuranceTimes: Unlimited
resourceGroupId: ${default.ids[0]}
variables:
default:
fn::invoke:
function: alicloud:resourcemanager:getResourceGroups
arguments:
status: OK
defaultGetZones:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: Instance
defaultGetInstanceTypes:
fn::invoke:
function: alicloud:ecs:getInstanceTypes
arguments:
instanceTypeFamily: ecs.c6

Import

Ecs Elasticity Assurance can be imported using the id, e.g.

$ pulumi import alicloud:ecs/elasticityAssurance:ElasticityAssurance example <id>

Constructors

Link copied to clipboard
constructor(assuranceTimes: Output<String>? = null, description: Output<String>? = null, instanceAmount: Output<Int>? = null, instanceType: Output<String>? = null, period: Output<Int>? = null, periodUnit: Output<String>? = null, privatePoolOptionsMatchCriteria: Output<String>? = null, privatePoolOptionsName: Output<String>? = null, resourceGroupId: Output<String>? = null, startTime: Output<String>? = null, tags: Output<Map<String, String>>? = null, zoneIds: Output<List<String>>? = null)

Properties

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

The total number of times that the elasticity assurance can be applied. Set the value to Unlimited. This value indicates that the elasticity assurance can be applied an unlimited number of times within its effective duration. Default value: Unlimited.

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

Description of flexible guarantee service.

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

The total number of instances for which to reserve the capacity of an instance type. Valid values: 1 to 1000.

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

Instance type. Currently, only one instance type is supported.

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

Length of purchase. The unit of duration is determined by the 'period_unit' parameter. Default value: 1.

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

Duration unit. Value range:-Month: Month-Year: YearDefault value: Year

Link copied to clipboard

The matching mode of flexible guarantee service. Possible values:-Open: flexible guarantee service for Open mode.-Target: specifies the flexible guarantee service of the mode.

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

The name of the flexible protection service.

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

The ID of the resource group.

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

Flexible guarantee service effective time.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

The tag key-value pair information bound by the elastic guarantee service.

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

The zone ID of the region to which the elastic Protection Service belongs. Currently, only the creation of flexible protection services in one available area is supported.

Functions

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