SnapshotCopy

class SnapshotCopy : KotlinCustomResource

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

Properties

Link copied to clipboard
val arn: Output<String>

Amazon Resource Name (ARN) of the EBS Snapshot.

Link copied to clipboard

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

The data encryption key identifier for the snapshot.

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

A description of what the snapshot is.

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

Whether the snapshot is encrypted.

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

The ARN for the KMS encryption key.

Link copied to clipboard
val outpostArn: Output<String>
Link copied to clipboard
val ownerAlias: Output<String>

Value from an Amazon-maintained list (amazon, aws-marketplace, microsoft) of snapshot owners.

Link copied to clipboard
val ownerId: Output<String>

The AWS account ID of the snapshot owner.

Link copied to clipboard

Indicates whether to permanently restore an archived snapshot.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val sourceRegion: Output<String>

The region of the source snapshot.

Link copied to clipboard

The ARN for the snapshot to be copied.

Link copied to clipboard
val storageTier: Output<String>

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>>?

A map of tags for the snapshot.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard

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.

Link copied to clipboard
val urn: Output<String>
Link copied to clipboard
val volumeId: Output<String>
Link copied to clipboard
val volumeSize: Output<Int>

The size of the drive in GiBs.