TagArgs

data class TagArgs(val key: Output<String>? = null, val resourceArn: Output<String>? = null, val value: Output<String>? = null) : ConvertibleToJava<TagArgs>

Manages an individual DynamoDB resource tag. This resource should only be used in cases where DynamoDB resources are created outside the provider (e.g., Table replicas in other regions).

NOTE: This tagging resource should not be combined with the resource for managing the parent resource. For example, using aws.dynamodb.Table and aws.dynamodb.Tag to manage tags of the same DynamoDB Table in the same region will cause a perpetual difference where the aws_dynamodb_cluster resource will try to remove the tag being added by the aws.dynamodb.Tag resource. NOTE: This tagging resource does not use the provider ignore_tags configuration.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as std from "@pulumi/std";
const replica = aws.getRegion({});
const current = aws.getRegion({});
const example = new aws.dynamodb.Table("example", {replicas: [{
regionName: replica.then(replica => replica.name),
}]});
const test = new aws.dynamodb.Tag("test", {
resourceArn: pulumi.all([example&#46;arn, current, replica])&#46;apply(([arn, current, replica]) => std.replaceOutput({
text: arn,
search: current.name,
replace: replica.name,
})).apply(invoke => invoke.result),
key: "testkey",
value: "testvalue",
});
import pulumi
import pulumi_aws as aws
import pulumi_std as std
replica = aws.get_region()
current = aws.get_region()
example = aws.dynamodb.Table("example", replicas=[{
"region_name": replica.name,
}])
test = aws.dynamodb.Tag("test",
resource_arn=example.arn.apply(lambda arn: std.replace(text=arn,
search=current.name,
replace=replica.name)).apply(lambda invoke: invoke.result),
key="testkey",
value="testvalue")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var replica = Aws.GetRegion.Invoke();
var current = Aws.GetRegion.Invoke();
var example = new Aws.DynamoDB.Table("example", new()
{
Replicas = new[]
{
new Aws.DynamoDB.Inputs.TableReplicaArgs
{
RegionName = replica.Apply(getRegionResult => getRegionResult.Name),
},
},
});
var test = new Aws.DynamoDB.Tag("test", new()
{
ResourceArn = Output.Tuple(example.Arn, current, replica).Apply(values =>
{
var arn = values.Item1;
var current = values.Item2;
var replica = values.Item3;
return Std.Replace.Invoke(new()
{
Text = arn,
Search = current.Apply(getRegionResult => getRegionResult.Name),
Replace = replica.Apply(getRegionResult => getRegionResult.Name),
});
}).Apply(invoke => invoke.Result),
Key = "testkey",
Value = "testvalue",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
replica, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
if err != nil {
return err
}
current, err := aws.GetRegion(ctx, &aws.GetRegionArgs{}, nil)
if err != nil {
return err
}
example, err := dynamodb.NewTable(ctx, "example", &dynamodb.TableArgs{
Replicas: dynamodb.TableReplicaTypeArray{
&dynamodb.TableReplicaTypeArgs{
RegionName: pulumi.String(replica.Name),
},
},
})
if err != nil {
return err
}
invokeReplace, err := std.Replace(ctx, &std.ReplaceArgs{
Text: arn,
Search: current.Name,
Replace: replica.Name,
}, nil)
if err != nil {
return err
}
_, err = dynamodb.NewTag(ctx, "test", &dynamodb.TagArgs{
ResourceArn: pulumi.String(example.Arn.ApplyT(func(arn string) (std.ReplaceResult, error) {
return std.ReplaceResult(invokeReplace), nil
}).(std.ReplaceResultOutput).ApplyT(func(invoke std.ReplaceResult) (*string, error) {
return invoke.Result, nil
}).(pulumi.StringPtrOutput)),
Key: pulumi.String("testkey"),
Value: pulumi.String("testvalue"),
})
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.AwsFunctions;
import com.pulumi.aws.inputs.GetRegionArgs;
import com.pulumi.aws.dynamodb.Table;
import com.pulumi.aws.dynamodb.TableArgs;
import com.pulumi.aws.dynamodb.inputs.TableReplicaArgs;
import com.pulumi.aws.dynamodb.Tag;
import com.pulumi.aws.dynamodb.TagArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.ReplaceArgs;
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 replica = AwsFunctions.getRegion(GetRegionArgs.builder()
.build());
final var current = AwsFunctions.getRegion(GetRegionArgs.builder()
.build());
var example = new Table("example", TableArgs.builder()
.replicas(TableReplicaArgs.builder()
.regionName(replica.name())
.build())
.build());
var test = new Tag("test", TagArgs.builder()
.resourceArn(example.arn().applyValue(_arn -> StdFunctions.replace(ReplaceArgs.builder()
.text(_arn)
.search(current.name())
.replace(replica.name())
.build())).applyValue(_invoke -> _invoke.result()))
.key("testkey")
.value("testvalue")
.build());
}
}
resources:
example:
type: aws:dynamodb:Table
properties:
replicas:
- regionName: ${replica.name}
test:
type: aws:dynamodb:Tag
properties:
resourceArn:
fn::invoke:
function: std:replace
arguments:
text: ${example.arn}
search: ${current.name}
replace: ${replica.name}
return: result
key: testkey
value: testvalue
variables:
replica:
fn::invoke:
function: aws:getRegion
arguments: {}
current:
fn::invoke:
function: aws:getRegion
arguments: {}

Import

Using pulumi import, import aws_dynamodb_tag using the DynamoDB resource identifier and key, separated by a comma (,). For example:

$ pulumi import aws:dynamodb/tag:Tag example arn:aws:dynamodb:us-east-1:123456789012:table/example,Name

Constructors

Link copied to clipboard
constructor(key: Output<String>? = null, resourceArn: Output<String>? = null, value: Output<String>? = null)

Properties

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

Tag name.

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

Amazon Resource Name (ARN) of the DynamoDB resource to tag.

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

Tag value.

Functions

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