Ecs Auto Snapshot Policy Attachment Args
data class EcsAutoSnapshotPolicyAttachmentArgs(val autoSnapshotPolicyId: Output<String>? = null, val diskId: Output<String>? = null) : ConvertibleToJava<EcsAutoSnapshotPolicyAttachmentArgs>
Provides a ECS Auto Snapshot Policy Attachment resource. For information about ECS Auto Snapshot Policy Attachment and how to use it, see What is Auto Snapshot Policy Attachment.
NOTE: Available in v1.122.0+.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const example = alicloud.getZones({
availableResourceCreation: "VSwitch",
});
const exampleKey = new alicloud.kms.Key("example", {
description: "terraform-example",
pendingWindowInDays: 7,
status: "Enabled",
});
const exampleAutoSnapshotPolicy = new alicloud.ecs.AutoSnapshotPolicy("example", {
name: "terraform-example",
repeatWeekdays: [
"1",
"2",
"3",
],
retentionDays: -1,
timePoints: [
"1",
"22",
"23",
],
});
const exampleEcsDisk = new alicloud.ecs.EcsDisk("example", {
zoneId: example.then(example => example.zones?.[0]?.id),
diskName: "terraform-example",
description: "Hello ecs disk.",
category: "cloud_efficiency",
size: 30,
encrypted: true,
kmsKeyId: exampleKey.id,
tags: {
Name: "terraform-example",
},
});
const exampleEcsAutoSnapshotPolicyAttachment = new alicloud.ecs.EcsAutoSnapshotPolicyAttachment("example", {
autoSnapshotPolicyId: exampleAutoSnapshotPolicy.id,
diskId: exampleEcsDisk.id,
});
Content copied to clipboard
import pulumi
import pulumi_alicloud as alicloud
example = alicloud.get_zones(available_resource_creation="VSwitch")
example_key = alicloud.kms.Key("example",
description="terraform-example",
pending_window_in_days=7,
status="Enabled")
example_auto_snapshot_policy = alicloud.ecs.AutoSnapshotPolicy("example",
name="terraform-example",
repeat_weekdays=[
"1",
"2",
"3",
],
retention_days=-1,
time_points=[
"1",
"22",
"23",
])
example_ecs_disk = alicloud.ecs.EcsDisk("example",
zone_id=example.zones[0].id,
disk_name="terraform-example",
description="Hello ecs disk.",
category="cloud_efficiency",
size=30,
encrypted=True,
kms_key_id=example_key.id,
tags={
"Name": "terraform-example",
})
example_ecs_auto_snapshot_policy_attachment = alicloud.ecs.EcsAutoSnapshotPolicyAttachment("example",
auto_snapshot_policy_id=example_auto_snapshot_policy.id,
disk_id=example_ecs_disk.id)
Content copied to clipboard
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var example = AliCloud.GetZones.Invoke(new()
{
AvailableResourceCreation = "VSwitch",
});
var exampleKey = new AliCloud.Kms.Key("example", new()
{
Description = "terraform-example",
PendingWindowInDays = 7,
Status = "Enabled",
});
var exampleAutoSnapshotPolicy = new AliCloud.Ecs.AutoSnapshotPolicy("example", new()
{
Name = "terraform-example",
RepeatWeekdays = new[]
{
"1",
"2",
"3",
},
RetentionDays = -1,
TimePoints = new[]
{
"1",
"22",
"23",
},
});
var exampleEcsDisk = new AliCloud.Ecs.EcsDisk("example", new()
{
ZoneId = example.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
DiskName = "terraform-example",
Description = "Hello ecs disk.",
Category = "cloud_efficiency",
Size = 30,
Encrypted = true,
KmsKeyId = exampleKey.Id,
Tags =
{
{ "Name", "terraform-example" },
},
});
var exampleEcsAutoSnapshotPolicyAttachment = new AliCloud.Ecs.EcsAutoSnapshotPolicyAttachment("example", new()
{
AutoSnapshotPolicyId = exampleAutoSnapshotPolicy.Id,
DiskId = exampleEcsDisk.Id,
});
});
Content copied to clipboard
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/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
AvailableResourceCreation: pulumi.StringRef("VSwitch"),
}, nil)
if err != nil {
return err
}
exampleKey, err := kms.NewKey(ctx, "example", &kms.KeyArgs{
Description: pulumi.String("terraform-example"),
PendingWindowInDays: pulumi.Int(7),
Status: pulumi.String("Enabled"),
})
if err != nil {
return err
}
exampleAutoSnapshotPolicy, err := ecs.NewAutoSnapshotPolicy(ctx, "example", &ecs.AutoSnapshotPolicyArgs{
Name: pulumi.String("terraform-example"),
RepeatWeekdays: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("2"),
pulumi.String("3"),
},
RetentionDays: pulumi.Int(-1),
TimePoints: pulumi.StringArray{
pulumi.String("1"),
pulumi.String("22"),
pulumi.String("23"),
},
})
if err != nil {
return err
}
exampleEcsDisk, err := ecs.NewEcsDisk(ctx, "example", &ecs.EcsDiskArgs{
ZoneId: pulumi.String(example.Zones[0].Id),
DiskName: pulumi.String("terraform-example"),
Description: pulumi.String("Hello ecs disk."),
Category: pulumi.String("cloud_efficiency"),
Size: pulumi.Int(30),
Encrypted: pulumi.Bool(true),
KmsKeyId: exampleKey.ID(),
Tags: pulumi.StringMap{
"Name": pulumi.String("terraform-example"),
},
})
if err != nil {
return err
}
_, err = ecs.NewEcsAutoSnapshotPolicyAttachment(ctx, "example", &ecs.EcsAutoSnapshotPolicyAttachmentArgs{
AutoSnapshotPolicyId: exampleAutoSnapshotPolicy.ID(),
DiskId: exampleEcsDisk.ID(),
})
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.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.kms.Key;
import com.pulumi.alicloud.kms.KeyArgs;
import com.pulumi.alicloud.ecs.AutoSnapshotPolicy;
import com.pulumi.alicloud.ecs.AutoSnapshotPolicyArgs;
import com.pulumi.alicloud.ecs.EcsDisk;
import com.pulumi.alicloud.ecs.EcsDiskArgs;
import com.pulumi.alicloud.ecs.EcsAutoSnapshotPolicyAttachment;
import com.pulumi.alicloud.ecs.EcsAutoSnapshotPolicyAttachmentArgs;
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 example = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("VSwitch")
.build());
var exampleKey = new Key("exampleKey", KeyArgs.builder()
.description("terraform-example")
.pendingWindowInDays(7)
.status("Enabled")
.build());
var exampleAutoSnapshotPolicy = new AutoSnapshotPolicy("exampleAutoSnapshotPolicy", AutoSnapshotPolicyArgs.builder()
.name("terraform-example")
.repeatWeekdays(
"1",
"2",
"3")
.retentionDays(-1)
.timePoints(
"1",
"22",
"23")
.build());
var exampleEcsDisk = new EcsDisk("exampleEcsDisk", EcsDiskArgs.builder()
.zoneId(example.zones()[0].id())
.diskName("terraform-example")
.description("Hello ecs disk.")
.category("cloud_efficiency")
.size(30)
.encrypted(true)
.kmsKeyId(exampleKey.id())
.tags(Map.of("Name", "terraform-example"))
.build());
var exampleEcsAutoSnapshotPolicyAttachment = new EcsAutoSnapshotPolicyAttachment("exampleEcsAutoSnapshotPolicyAttachment", EcsAutoSnapshotPolicyAttachmentArgs.builder()
.autoSnapshotPolicyId(exampleAutoSnapshotPolicy.id())
.diskId(exampleEcsDisk.id())
.build());
}
}
Content copied to clipboard
resources:
exampleKey:
type: alicloud:kms:Key
name: example
properties:
description: terraform-example
pendingWindowInDays: '7'
status: Enabled
exampleAutoSnapshotPolicy:
type: alicloud:ecs:AutoSnapshotPolicy
name: example
properties:
name: terraform-example
repeatWeekdays:
- '1'
- '2'
- '3'
retentionDays: -1
timePoints:
- '1'
- '22'
- '23'
exampleEcsDisk:
type: alicloud:ecs:EcsDisk
name: example
properties:
zoneId: ${example.zones[0].id}
diskName: terraform-example
description: Hello ecs disk.
category: cloud_efficiency
size: '30'
encrypted: true
kmsKeyId: ${exampleKey.id}
tags:
Name: terraform-example
exampleEcsAutoSnapshotPolicyAttachment:
type: alicloud:ecs:EcsAutoSnapshotPolicyAttachment
name: example
properties:
autoSnapshotPolicyId: ${exampleAutoSnapshotPolicy.id}
diskId: ${exampleEcsDisk.id}
variables:
example:
fn::invoke:
function: alicloud:getZones
arguments:
availableResourceCreation: VSwitch
Content copied to clipboard
Import
ECS Auto Snapshot Policy Attachment can be imported using the id, e.g.
$ pulumi import alicloud:ecs/ecsAutoSnapshotPolicyAttachment:EcsAutoSnapshotPolicyAttachment example s-abcd12345:d-abcd12345
Content copied to clipboard