SnapshotCopyGrantArgs

data class SnapshotCopyGrantArgs(val kmsKeyId: Output<String>? = null, val snapshotCopyGrantName: Output<String>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<SnapshotCopyGrantArgs>

Creates a snapshot copy grant that allows AWS Redshift to encrypt copied snapshots with a customer master key from AWS KMS in a destination region. Note that the grant must exist in the destination region, and not in the region of the cluster.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const test = new aws.redshift.SnapshotCopyGrant("test", {snapshotCopyGrantName: "my-grant"});
const testCluster = new aws.redshift.Cluster("test", {snapshotCopy: {
destinationRegion: "us-east-2",
grantName: test.snapshotCopyGrantName,
}});
import pulumi
import pulumi_aws as aws
test = aws.redshift.SnapshotCopyGrant("test", snapshot_copy_grant_name="my-grant")
test_cluster = aws.redshift.Cluster("test", snapshot_copy={
"destination_region": "us-east-2",
"grant_name": test.snapshot_copy_grant_name,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var test = new Aws.RedShift.SnapshotCopyGrant("test", new()
{
SnapshotCopyGrantName = "my-grant",
});
var testCluster = new Aws.RedShift.Cluster("test", new()
{
SnapshotCopy = new Aws.RedShift.Inputs.ClusterSnapshotCopyArgs
{
DestinationRegion = "us-east-2",
GrantName = test.SnapshotCopyGrantName,
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
test, err := redshift.NewSnapshotCopyGrant(ctx, "test", &redshift.SnapshotCopyGrantArgs{
SnapshotCopyGrantName: pulumi.String("my-grant"),
})
if err != nil {
return err
}
_, err = redshift.NewCluster(ctx, "test", &redshift.ClusterArgs{
SnapshotCopy: &redshift.ClusterSnapshotCopyArgs{
DestinationRegion: pulumi.String("us-east-2"),
GrantName: test.SnapshotCopyGrantName,
},
})
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.redshift.SnapshotCopyGrant;
import com.pulumi.aws.redshift.SnapshotCopyGrantArgs;
import com.pulumi.aws.redshift.Cluster;
import com.pulumi.aws.redshift.ClusterArgs;
import com.pulumi.aws.redshift.inputs.ClusterSnapshotCopyArgs;
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 test = new SnapshotCopyGrant("test", SnapshotCopyGrantArgs.builder()
.snapshotCopyGrantName("my-grant")
.build());
var testCluster = new Cluster("testCluster", ClusterArgs.builder()
.snapshotCopy(ClusterSnapshotCopyArgs.builder()
.destinationRegion("us-east-2")
.grantName(test.snapshotCopyGrantName())
.build())
.build());
}
}
resources:
test:
type: aws:redshift:SnapshotCopyGrant
properties:
snapshotCopyGrantName: my-grant
testCluster:
type: aws:redshift:Cluster
name: test
properties:
snapshotCopy:
destinationRegion: us-east-2
grantName: ${test.snapshotCopyGrantName}

Import

Using pulumi import, import Redshift Snapshot Copy Grants by name. For example:

$ pulumi import aws:redshift/snapshotCopyGrant:SnapshotCopyGrant test my-grant

Constructors

Link copied to clipboard
constructor(kmsKeyId: Output<String>? = null, snapshotCopyGrantName: Output<String>? = null, tags: Output<Map<String, String>>? = null)

Properties

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

The unique identifier for the customer master key (CMK) that the grant applies to. Specify the key ID or the Amazon Resource Name (ARN) of the CMK. To specify a CMK in a different AWS account, you must use the key ARN. If not specified, the default key is used.

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

A friendly name for identifying the grant.

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

A map of tags to assign to the resource. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Functions

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