Snapshot

class Snapshot : KotlinCustomResource

Provides a File Storage (NAS) Snapshot resource. For information about File Storage (NAS) Snapshot and how to use it, see What is Snapshot.

NOTE: Available in v1.152.0+. NOTE: Only Extreme NAS file systems support the snapshot feature.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "testacc";
const _default = alicloud.nas.getZones({
fileSystemType: "extreme",
});
const defaultFileSystem = new alicloud.nas.FileSystem("default", {
fileSystemType: "extreme",
protocolType: "NFS",
zoneId: _default.then(_default => _default.zones?.[0]?.zoneId),
storageType: "standard",
capacity: 100,
});
const defaultSnapshot = new alicloud.nas.Snapshot("default", {
fileSystemId: defaultFileSystem.id,
description: name,
retentionDays: 20,
snapshotName: name,
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "testacc"
default = alicloud.nas.get_zones(file_system_type="extreme")
default_file_system = alicloud.nas.FileSystem("default",
file_system_type="extreme",
protocol_type="NFS",
zone_id=default.zones[0].zone_id,
storage_type="standard",
capacity=100)
default_snapshot = alicloud.nas.Snapshot("default",
file_system_id=default_file_system.id,
description=name,
retention_days=20,
snapshot_name=name)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "testacc";
var @default = AliCloud.Nas.GetZones.Invoke(new()
{
FileSystemType = "extreme",
});
var defaultFileSystem = new AliCloud.Nas.FileSystem("default", new()
{
FileSystemType = "extreme",
ProtocolType = "NFS",
ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.ZoneId)),
StorageType = "standard",
Capacity = 100,
});
var defaultSnapshot = new AliCloud.Nas.Snapshot("default", new()
{
FileSystemId = defaultFileSystem.Id,
Description = name,
RetentionDays = 20,
SnapshotName = name,
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/nas"
"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 := "testacc"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := nas.GetZones(ctx, &nas.GetZonesArgs{
FileSystemType: pulumi.StringRef("extreme"),
}, nil)
if err != nil {
return err
}
defaultFileSystem, err := nas.NewFileSystem(ctx, "default", &nas.FileSystemArgs{
FileSystemType: pulumi.String("extreme"),
ProtocolType: pulumi.String("NFS"),
ZoneId: pulumi.String(_default.Zones[0].ZoneId),
StorageType: pulumi.String("standard"),
Capacity: pulumi.Int(100),
})
if err != nil {
return err
}
_, err = nas.NewSnapshot(ctx, "default", &nas.SnapshotArgs{
FileSystemId: defaultFileSystem.ID(),
Description: pulumi.String(name),
RetentionDays: pulumi.Int(20),
SnapshotName: pulumi.String(name),
})
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.nas.NasFunctions;
import com.pulumi.alicloud.nas.inputs.GetZonesArgs;
import com.pulumi.alicloud.nas.FileSystem;
import com.pulumi.alicloud.nas.FileSystemArgs;
import com.pulumi.alicloud.nas.Snapshot;
import com.pulumi.alicloud.nas.SnapshotArgs;
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("testacc");
final var default = NasFunctions.getZones(GetZonesArgs.builder()
.fileSystemType("extreme")
.build());
var defaultFileSystem = new FileSystem("defaultFileSystem", FileSystemArgs.builder()
.fileSystemType("extreme")
.protocolType("NFS")
.zoneId(default_.zones()[0].zoneId())
.storageType("standard")
.capacity(100)
.build());
var defaultSnapshot = new Snapshot("defaultSnapshot", SnapshotArgs.builder()
.fileSystemId(defaultFileSystem.id())
.description(name)
.retentionDays(20)
.snapshotName(name)
.build());
}
}
configuration:
name:
type: string
default: testacc
resources:
defaultFileSystem:
type: alicloud:nas:FileSystem
name: default
properties:
fileSystemType: extreme
protocolType: NFS
zoneId: ${default.zones[0].zoneId}
storageType: standard
capacity: 100
defaultSnapshot:
type: alicloud:nas:Snapshot
name: default
properties:
fileSystemId: ${defaultFileSystem.id}
description: ${name}
retentionDays: 20
snapshotName: ${name}
variables:
default:
fn::invoke:
function: alicloud:nas:getZones
arguments:
fileSystemType: extreme

Import

File Storage (NAS) Snapshot can be imported using the id, e.g.

$ pulumi import alicloud:nas/snapshot:Snapshot example <id>

Properties

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

The description of the snapshot. It must be 2 to 256 characters in length and cannot start with https:// or https://.

Link copied to clipboard
val fileSystemId: Output<String>

The ID of the file system.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val retentionDays: Output<Int>?

The retention period of the snapshot. Unit: days. Valid values:

Link copied to clipboard
val snapshotName: Output<String>?

SnapshotName. It must be 2 to 128 characters in length and must start with a letter, but cannot start with https:// or https://.

Link copied to clipboard
val status: Output<String>

The status of the snapshot.

Link copied to clipboard
val urn: Output<String>