SnapshotCopyArgs

data class SnapshotCopyArgs(val completionDurationMinutes: Output<Int>? = null, val description: Output<String>? = null, val encrypted: Output<Boolean>? = null, val kmsKeyId: Output<String>? = null, val permanentRestore: Output<Boolean>? = null, val sourceRegion: Output<String>? = null, val sourceSnapshotId: Output<String>? = null, val storageTier: Output<String>? = null, val tags: Output<Map<String, String>>? = null, val temporaryRestoreDays: Output<Int>? = null) : ConvertibleToJava<SnapshotCopyArgs>

Creates a Snapshot of a snapshot.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.ebs.Volume("example", {
availabilityZone: "us-west-2a",
size: 40,
tags: {
Name: "HelloWorld",
},
});
const exampleSnapshot = new aws.ebs.Snapshot("example_snapshot", {
volumeId: example.id,
tags: {
Name: "HelloWorld_snap",
},
});
const exampleCopy = new aws.ebs.SnapshotCopy("example_copy", {
sourceSnapshotId: exampleSnapshot.id,
sourceRegion: "us-west-2",
tags: {
Name: "HelloWorld_copy_snap",
},
});
import pulumi
import pulumi_aws as aws
example = aws.ebs.Volume("example",
availability_zone="us-west-2a",
size=40,
tags={
"Name": "HelloWorld",
})
example_snapshot = aws.ebs.Snapshot("example_snapshot",
volume_id=example.id,
tags={
"Name": "HelloWorld_snap",
})
example_copy = aws.ebs.SnapshotCopy("example_copy",
source_snapshot_id=example_snapshot.id,
source_region="us-west-2",
tags={
"Name": "HelloWorld_copy_snap",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Ebs.Volume("example", new()
{
AvailabilityZone = "us-west-2a",
Size = 40,
Tags =
{
{ "Name", "HelloWorld" },
},
});
var exampleSnapshot = new Aws.Ebs.Snapshot("example_snapshot", new()
{
VolumeId = example.Id,
Tags =
{
{ "Name", "HelloWorld_snap" },
},
});
var exampleCopy = new Aws.Ebs.SnapshotCopy("example_copy", new()
{
SourceSnapshotId = exampleSnapshot.Id,
SourceRegion = "us-west-2",
Tags =
{
{ "Name", "HelloWorld_copy_snap" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ebs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := ebs.NewVolume(ctx, "example", &ebs.VolumeArgs{
AvailabilityZone: pulumi.String("us-west-2a"),
Size: pulumi.Int(40),
Tags: pulumi.StringMap{
"Name": pulumi.String("HelloWorld"),
},
})
if err != nil {
return err
}
exampleSnapshot, err := ebs.NewSnapshot(ctx, "example_snapshot", &ebs.SnapshotArgs{
VolumeId: example.ID(),
Tags: pulumi.StringMap{
"Name": pulumi.String("HelloWorld_snap"),
},
})
if err != nil {
return err
}
_, err = ebs.NewSnapshotCopy(ctx, "example_copy", &ebs.SnapshotCopyArgs{
SourceSnapshotId: exampleSnapshot.ID(),
SourceRegion: pulumi.String("us-west-2"),
Tags: pulumi.StringMap{
"Name": pulumi.String("HelloWorld_copy_snap"),
},
})
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.aws.ebs.Volume;
import com.pulumi.aws.ebs.VolumeArgs;
import com.pulumi.aws.ebs.Snapshot;
import com.pulumi.aws.ebs.SnapshotArgs;
import com.pulumi.aws.ebs.SnapshotCopy;
import com.pulumi.aws.ebs.SnapshotCopyArgs;
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) {
var example = new Volume("example", VolumeArgs.builder()
.availabilityZone("us-west-2a")
.size(40)
.tags(Map.of("Name", "HelloWorld"))
.build());
var exampleSnapshot = new Snapshot("exampleSnapshot", SnapshotArgs.builder()
.volumeId(example.id())
.tags(Map.of("Name", "HelloWorld_snap"))
.build());
var exampleCopy = new SnapshotCopy("exampleCopy", SnapshotCopyArgs.builder()
.sourceSnapshotId(exampleSnapshot.id())
.sourceRegion("us-west-2")
.tags(Map.of("Name", "HelloWorld_copy_snap"))
.build());
}
}
resources:
example:
type: aws:ebs:Volume
properties:
availabilityZone: us-west-2a
size: 40
tags:
Name: HelloWorld
exampleSnapshot:
type: aws:ebs:Snapshot
name: example_snapshot
properties:
volumeId: ${example.id}
tags:
Name: HelloWorld_snap
exampleCopy:
type: aws:ebs:SnapshotCopy
name: example_copy
properties:
sourceSnapshotId: ${exampleSnapshot.id}
sourceRegion: us-west-2
tags:
Name: HelloWorld_copy_snap

Constructors

Link copied to clipboard
constructor(completionDurationMinutes: Output<Int>? = null, description: Output<String>? = null, encrypted: Output<Boolean>? = null, kmsKeyId: Output<String>? = null, permanentRestore: Output<Boolean>? = null, sourceRegion: Output<String>? = null, sourceSnapshotId: Output<String>? = null, storageTier: Output<String>? = null, tags: Output<Map<String, String>>? = null, temporaryRestoreDays: Output<Int>? = null)

Properties

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

Specifies a completion duration to initiate a time-based snapshot copy. Time-based snapshot copy operations complete within the specified duration. Value must be between 15 and 2880 minutes, in 15 minute increments only.

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

A description of what the snapshot is.

Link copied to clipboard
val encrypted: Output<Boolean>? = null

Whether the snapshot is encrypted.

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

The ARN for the KMS encryption key.

Link copied to clipboard
val permanentRestore: Output<Boolean>? = null

Indicates whether to permanently restore an archived snapshot.

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

The region of the source snapshot.

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

The ARN for the snapshot to be copied.

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

The name of the storage tier. Valid values are archive and standard. Default value is standard.

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

A map of tags for the snapshot.

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

Specifies the number of days for which to temporarily restore an archived snapshot. Required for temporary restores only. The snapshot will be automatically re-archived after this period.

Functions

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