github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/dynamodb/kinesisStreamingDestination.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package dynamodb 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Enables a [Kinesis streaming destination](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html) for data replication of a DynamoDB table. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/dynamodb" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // example, err := dynamodb.NewTable(ctx, "example", &dynamodb.TableArgs{ 34 // Name: pulumi.String("orders"), 35 // HashKey: pulumi.String("id"), 36 // Attributes: dynamodb.TableAttributeArray{ 37 // &dynamodb.TableAttributeArgs{ 38 // Name: pulumi.String("id"), 39 // Type: pulumi.String("S"), 40 // }, 41 // }, 42 // }) 43 // if err != nil { 44 // return err 45 // } 46 // exampleStream, err := kinesis.NewStream(ctx, "example", &kinesis.StreamArgs{ 47 // Name: pulumi.String("order_item_changes"), 48 // ShardCount: pulumi.Int(1), 49 // }) 50 // if err != nil { 51 // return err 52 // } 53 // _, err = dynamodb.NewKinesisStreamingDestination(ctx, "example", &dynamodb.KinesisStreamingDestinationArgs{ 54 // StreamArn: exampleStream.Arn, 55 // TableName: example.Name, 56 // }) 57 // if err != nil { 58 // return err 59 // } 60 // return nil 61 // }) 62 // } 63 // 64 // ``` 65 // <!--End PulumiCodeChooser --> 66 // 67 // ## Import 68 // 69 // Using `pulumi import`, import DynamoDB Kinesis Streaming Destinations using the `table_name` and `stream_arn` separated by `,`. For example: 70 // 71 // ```sh 72 // $ pulumi import aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination example example,arn:aws:kinesis:us-east-1:111122223333:exampleStreamName 73 // ``` 74 type KinesisStreamingDestination struct { 75 pulumi.CustomResourceState 76 77 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 78 StreamArn pulumi.StringOutput `pulumi:"streamArn"` 79 // The name of the DynamoDB table. There 80 // can only be one Kinesis streaming destination for a given DynamoDB table. 81 TableName pulumi.StringOutput `pulumi:"tableName"` 82 } 83 84 // NewKinesisStreamingDestination registers a new resource with the given unique name, arguments, and options. 85 func NewKinesisStreamingDestination(ctx *pulumi.Context, 86 name string, args *KinesisStreamingDestinationArgs, opts ...pulumi.ResourceOption) (*KinesisStreamingDestination, error) { 87 if args == nil { 88 return nil, errors.New("missing one or more required arguments") 89 } 90 91 if args.StreamArn == nil { 92 return nil, errors.New("invalid value for required argument 'StreamArn'") 93 } 94 if args.TableName == nil { 95 return nil, errors.New("invalid value for required argument 'TableName'") 96 } 97 opts = internal.PkgResourceDefaultOpts(opts) 98 var resource KinesisStreamingDestination 99 err := ctx.RegisterResource("aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination", name, args, &resource, opts...) 100 if err != nil { 101 return nil, err 102 } 103 return &resource, nil 104 } 105 106 // GetKinesisStreamingDestination gets an existing KinesisStreamingDestination resource's state with the given name, ID, and optional 107 // state properties that are used to uniquely qualify the lookup (nil if not required). 108 func GetKinesisStreamingDestination(ctx *pulumi.Context, 109 name string, id pulumi.IDInput, state *KinesisStreamingDestinationState, opts ...pulumi.ResourceOption) (*KinesisStreamingDestination, error) { 110 var resource KinesisStreamingDestination 111 err := ctx.ReadResource("aws:dynamodb/kinesisStreamingDestination:KinesisStreamingDestination", name, id, state, &resource, opts...) 112 if err != nil { 113 return nil, err 114 } 115 return &resource, nil 116 } 117 118 // Input properties used for looking up and filtering KinesisStreamingDestination resources. 119 type kinesisStreamingDestinationState struct { 120 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 121 StreamArn *string `pulumi:"streamArn"` 122 // The name of the DynamoDB table. There 123 // can only be one Kinesis streaming destination for a given DynamoDB table. 124 TableName *string `pulumi:"tableName"` 125 } 126 127 type KinesisStreamingDestinationState struct { 128 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 129 StreamArn pulumi.StringPtrInput 130 // The name of the DynamoDB table. There 131 // can only be one Kinesis streaming destination for a given DynamoDB table. 132 TableName pulumi.StringPtrInput 133 } 134 135 func (KinesisStreamingDestinationState) ElementType() reflect.Type { 136 return reflect.TypeOf((*kinesisStreamingDestinationState)(nil)).Elem() 137 } 138 139 type kinesisStreamingDestinationArgs struct { 140 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 141 StreamArn string `pulumi:"streamArn"` 142 // The name of the DynamoDB table. There 143 // can only be one Kinesis streaming destination for a given DynamoDB table. 144 TableName string `pulumi:"tableName"` 145 } 146 147 // The set of arguments for constructing a KinesisStreamingDestination resource. 148 type KinesisStreamingDestinationArgs struct { 149 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 150 StreamArn pulumi.StringInput 151 // The name of the DynamoDB table. There 152 // can only be one Kinesis streaming destination for a given DynamoDB table. 153 TableName pulumi.StringInput 154 } 155 156 func (KinesisStreamingDestinationArgs) ElementType() reflect.Type { 157 return reflect.TypeOf((*kinesisStreamingDestinationArgs)(nil)).Elem() 158 } 159 160 type KinesisStreamingDestinationInput interface { 161 pulumi.Input 162 163 ToKinesisStreamingDestinationOutput() KinesisStreamingDestinationOutput 164 ToKinesisStreamingDestinationOutputWithContext(ctx context.Context) KinesisStreamingDestinationOutput 165 } 166 167 func (*KinesisStreamingDestination) ElementType() reflect.Type { 168 return reflect.TypeOf((**KinesisStreamingDestination)(nil)).Elem() 169 } 170 171 func (i *KinesisStreamingDestination) ToKinesisStreamingDestinationOutput() KinesisStreamingDestinationOutput { 172 return i.ToKinesisStreamingDestinationOutputWithContext(context.Background()) 173 } 174 175 func (i *KinesisStreamingDestination) ToKinesisStreamingDestinationOutputWithContext(ctx context.Context) KinesisStreamingDestinationOutput { 176 return pulumi.ToOutputWithContext(ctx, i).(KinesisStreamingDestinationOutput) 177 } 178 179 // KinesisStreamingDestinationArrayInput is an input type that accepts KinesisStreamingDestinationArray and KinesisStreamingDestinationArrayOutput values. 180 // You can construct a concrete instance of `KinesisStreamingDestinationArrayInput` via: 181 // 182 // KinesisStreamingDestinationArray{ KinesisStreamingDestinationArgs{...} } 183 type KinesisStreamingDestinationArrayInput interface { 184 pulumi.Input 185 186 ToKinesisStreamingDestinationArrayOutput() KinesisStreamingDestinationArrayOutput 187 ToKinesisStreamingDestinationArrayOutputWithContext(context.Context) KinesisStreamingDestinationArrayOutput 188 } 189 190 type KinesisStreamingDestinationArray []KinesisStreamingDestinationInput 191 192 func (KinesisStreamingDestinationArray) ElementType() reflect.Type { 193 return reflect.TypeOf((*[]*KinesisStreamingDestination)(nil)).Elem() 194 } 195 196 func (i KinesisStreamingDestinationArray) ToKinesisStreamingDestinationArrayOutput() KinesisStreamingDestinationArrayOutput { 197 return i.ToKinesisStreamingDestinationArrayOutputWithContext(context.Background()) 198 } 199 200 func (i KinesisStreamingDestinationArray) ToKinesisStreamingDestinationArrayOutputWithContext(ctx context.Context) KinesisStreamingDestinationArrayOutput { 201 return pulumi.ToOutputWithContext(ctx, i).(KinesisStreamingDestinationArrayOutput) 202 } 203 204 // KinesisStreamingDestinationMapInput is an input type that accepts KinesisStreamingDestinationMap and KinesisStreamingDestinationMapOutput values. 205 // You can construct a concrete instance of `KinesisStreamingDestinationMapInput` via: 206 // 207 // KinesisStreamingDestinationMap{ "key": KinesisStreamingDestinationArgs{...} } 208 type KinesisStreamingDestinationMapInput interface { 209 pulumi.Input 210 211 ToKinesisStreamingDestinationMapOutput() KinesisStreamingDestinationMapOutput 212 ToKinesisStreamingDestinationMapOutputWithContext(context.Context) KinesisStreamingDestinationMapOutput 213 } 214 215 type KinesisStreamingDestinationMap map[string]KinesisStreamingDestinationInput 216 217 func (KinesisStreamingDestinationMap) ElementType() reflect.Type { 218 return reflect.TypeOf((*map[string]*KinesisStreamingDestination)(nil)).Elem() 219 } 220 221 func (i KinesisStreamingDestinationMap) ToKinesisStreamingDestinationMapOutput() KinesisStreamingDestinationMapOutput { 222 return i.ToKinesisStreamingDestinationMapOutputWithContext(context.Background()) 223 } 224 225 func (i KinesisStreamingDestinationMap) ToKinesisStreamingDestinationMapOutputWithContext(ctx context.Context) KinesisStreamingDestinationMapOutput { 226 return pulumi.ToOutputWithContext(ctx, i).(KinesisStreamingDestinationMapOutput) 227 } 228 229 type KinesisStreamingDestinationOutput struct{ *pulumi.OutputState } 230 231 func (KinesisStreamingDestinationOutput) ElementType() reflect.Type { 232 return reflect.TypeOf((**KinesisStreamingDestination)(nil)).Elem() 233 } 234 235 func (o KinesisStreamingDestinationOutput) ToKinesisStreamingDestinationOutput() KinesisStreamingDestinationOutput { 236 return o 237 } 238 239 func (o KinesisStreamingDestinationOutput) ToKinesisStreamingDestinationOutputWithContext(ctx context.Context) KinesisStreamingDestinationOutput { 240 return o 241 } 242 243 // The ARN for a Kinesis data stream. This must exist in the same account and region as the DynamoDB table. 244 func (o KinesisStreamingDestinationOutput) StreamArn() pulumi.StringOutput { 245 return o.ApplyT(func(v *KinesisStreamingDestination) pulumi.StringOutput { return v.StreamArn }).(pulumi.StringOutput) 246 } 247 248 // The name of the DynamoDB table. There 249 // can only be one Kinesis streaming destination for a given DynamoDB table. 250 func (o KinesisStreamingDestinationOutput) TableName() pulumi.StringOutput { 251 return o.ApplyT(func(v *KinesisStreamingDestination) pulumi.StringOutput { return v.TableName }).(pulumi.StringOutput) 252 } 253 254 type KinesisStreamingDestinationArrayOutput struct{ *pulumi.OutputState } 255 256 func (KinesisStreamingDestinationArrayOutput) ElementType() reflect.Type { 257 return reflect.TypeOf((*[]*KinesisStreamingDestination)(nil)).Elem() 258 } 259 260 func (o KinesisStreamingDestinationArrayOutput) ToKinesisStreamingDestinationArrayOutput() KinesisStreamingDestinationArrayOutput { 261 return o 262 } 263 264 func (o KinesisStreamingDestinationArrayOutput) ToKinesisStreamingDestinationArrayOutputWithContext(ctx context.Context) KinesisStreamingDestinationArrayOutput { 265 return o 266 } 267 268 func (o KinesisStreamingDestinationArrayOutput) Index(i pulumi.IntInput) KinesisStreamingDestinationOutput { 269 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KinesisStreamingDestination { 270 return vs[0].([]*KinesisStreamingDestination)[vs[1].(int)] 271 }).(KinesisStreamingDestinationOutput) 272 } 273 274 type KinesisStreamingDestinationMapOutput struct{ *pulumi.OutputState } 275 276 func (KinesisStreamingDestinationMapOutput) ElementType() reflect.Type { 277 return reflect.TypeOf((*map[string]*KinesisStreamingDestination)(nil)).Elem() 278 } 279 280 func (o KinesisStreamingDestinationMapOutput) ToKinesisStreamingDestinationMapOutput() KinesisStreamingDestinationMapOutput { 281 return o 282 } 283 284 func (o KinesisStreamingDestinationMapOutput) ToKinesisStreamingDestinationMapOutputWithContext(ctx context.Context) KinesisStreamingDestinationMapOutput { 285 return o 286 } 287 288 func (o KinesisStreamingDestinationMapOutput) MapIndex(k pulumi.StringInput) KinesisStreamingDestinationOutput { 289 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KinesisStreamingDestination { 290 return vs[0].(map[string]*KinesisStreamingDestination)[vs[1].(string)] 291 }).(KinesisStreamingDestinationOutput) 292 } 293 294 func init() { 295 pulumi.RegisterInputType(reflect.TypeOf((*KinesisStreamingDestinationInput)(nil)).Elem(), &KinesisStreamingDestination{}) 296 pulumi.RegisterInputType(reflect.TypeOf((*KinesisStreamingDestinationArrayInput)(nil)).Elem(), KinesisStreamingDestinationArray{}) 297 pulumi.RegisterInputType(reflect.TypeOf((*KinesisStreamingDestinationMapInput)(nil)).Elem(), KinesisStreamingDestinationMap{}) 298 pulumi.RegisterOutputType(KinesisStreamingDestinationOutput{}) 299 pulumi.RegisterOutputType(KinesisStreamingDestinationArrayOutput{}) 300 pulumi.RegisterOutputType(KinesisStreamingDestinationMapOutput{}) 301 }