SnapshotArgs

data class SnapshotArgs(val description: Output<String>? = null, val desktopId: Output<String>? = null, val snapshotName: Output<String>? = null, val sourceDiskType: Output<String>? = null) : ConvertibleToJava<SnapshotArgs>

Provides a ECD Snapshot resource. For information about ECD Snapshot and how to use it, see What is Snapshot.

NOTE: Available since v1.169.0.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.eds.SimpleOfficeSite;
import com.pulumi.alicloud.eds.SimpleOfficeSiteArgs;
import com.pulumi.alicloud.eds.EcdPolicyGroup;
import com.pulumi.alicloud.eds.EcdPolicyGroupArgs;
import com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeAccessPolicyRuleArgs;
import com.pulumi.alicloud.eds.inputs.EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs;
import com.pulumi.alicloud.eds.EdsFunctions;
import com.pulumi.alicloud.eds.inputs.GetBundlesArgs;
import com.pulumi.alicloud.eds.Desktop;
import com.pulumi.alicloud.eds.DesktopArgs;
import com.pulumi.alicloud.eds.Snapshot;
import com.pulumi.alicloud.eds.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("terraform-example");
var defaultSimpleOfficeSite = new SimpleOfficeSite("defaultSimpleOfficeSite", SimpleOfficeSiteArgs.builder()
.cidrBlock("172.16.0.0/12")
.enableAdminAccess(true)
.desktopAccessType("Internet")
.officeSiteName(name)
.build());
var defaultEcdPolicyGroup = new EcdPolicyGroup("defaultEcdPolicyGroup", EcdPolicyGroupArgs.builder()
.policyGroupName(name)
.clipboard("read")
.localDrive("read")
.usbRedirect("off")
.watermark("off")
.authorizeAccessPolicyRules(EcdPolicyGroupAuthorizeAccessPolicyRuleArgs.builder()
.description(name)
.cidrIp("1.2.3.45/24")
.build())
.authorizeSecurityPolicyRules(EcdPolicyGroupAuthorizeSecurityPolicyRuleArgs.builder()
.type("inflow")
.policy("accept")
.description(name)
.portRange("80/80")
.ipProtocol("TCP")
.priority("1")
.cidrIp("1.2.3.4/24")
.build())
.build());
final var defaultBundles = EdsFunctions.getBundles(GetBundlesArgs.builder()
.bundleType("SYSTEM")
.build());
var defaultDesktop = new Desktop("defaultDesktop", DesktopArgs.builder()
.officeSiteId(defaultSimpleOfficeSite.id())
.policyGroupId(defaultEcdPolicyGroup.id())
.bundleId(defaultBundles.applyValue(getBundlesResult -> getBundlesResult.bundles()[1].id()))
.desktopName(name)
.build());
var defaultSnapshot = new Snapshot("defaultSnapshot", SnapshotArgs.builder()
.description(name)
.desktopId(defaultDesktop.id())
.snapshotName(name)
.sourceDiskType("SYSTEM")
.build());
}
}

Import

ECD Snapshot can be imported using the id, e.g.

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

Constructors

Link copied to clipboard
fun SnapshotArgs(description: Output<String>? = null, desktopId: Output<String>? = null, snapshotName: Output<String>? = null, sourceDiskType: Output<String>? = null)

Functions

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

Properties

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

The description of the Snapshot.

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

The ID of the Desktop.

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

The name of the Snapshot.

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

The type of the disk for which to create a snapshot. Valid values: SYSTEM, DATA.