github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/connect/instanceStorageConfig.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 connect 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 // Provides an Amazon Connect Instance Storage Config resource. For more information see 16 // [Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html) 17 // 18 // ## Example Usage 19 // 20 // ### Storage Config Kinesis Firehose Config 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // _, err := connect.NewInstanceStorageConfig(ctx, "example", &connect.InstanceStorageConfigArgs{ 36 // InstanceId: pulumi.Any(exampleAwsConnectInstance.Id), 37 // ResourceType: pulumi.String("CONTACT_TRACE_RECORDS"), 38 // StorageConfig: &connect.InstanceStorageConfigStorageConfigArgs{ 39 // KinesisFirehoseConfig: &connect.InstanceStorageConfigStorageConfigKinesisFirehoseConfigArgs{ 40 // FirehoseArn: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Arn), 41 // }, 42 // StorageType: pulumi.String("KINESIS_FIREHOSE"), 43 // }, 44 // }) 45 // if err != nil { 46 // return err 47 // } 48 // return nil 49 // }) 50 // } 51 // 52 // ``` 53 // <!--End PulumiCodeChooser --> 54 // 55 // ### Storage Config Kinesis Stream Config 56 // 57 // <!--Start PulumiCodeChooser --> 58 // ```go 59 // package main 60 // 61 // import ( 62 // 63 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 64 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 65 // 66 // ) 67 // 68 // func main() { 69 // pulumi.Run(func(ctx *pulumi.Context) error { 70 // _, err := connect.NewInstanceStorageConfig(ctx, "example", &connect.InstanceStorageConfigArgs{ 71 // InstanceId: pulumi.Any(exampleAwsConnectInstance.Id), 72 // ResourceType: pulumi.String("CONTACT_TRACE_RECORDS"), 73 // StorageConfig: &connect.InstanceStorageConfigStorageConfigArgs{ 74 // KinesisStreamConfig: &connect.InstanceStorageConfigStorageConfigKinesisStreamConfigArgs{ 75 // StreamArn: pulumi.Any(exampleAwsKinesisStream.Arn), 76 // }, 77 // StorageType: pulumi.String("KINESIS_STREAM"), 78 // }, 79 // }) 80 // if err != nil { 81 // return err 82 // } 83 // return nil 84 // }) 85 // } 86 // 87 // ``` 88 // <!--End PulumiCodeChooser --> 89 // 90 // ### Storage Config Kinesis Video Stream Config 91 // 92 // <!--Start PulumiCodeChooser --> 93 // ```go 94 // package main 95 // 96 // import ( 97 // 98 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 99 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 100 // 101 // ) 102 // 103 // func main() { 104 // pulumi.Run(func(ctx *pulumi.Context) error { 105 // _, err := connect.NewInstanceStorageConfig(ctx, "example", &connect.InstanceStorageConfigArgs{ 106 // InstanceId: pulumi.Any(exampleAwsConnectInstance.Id), 107 // ResourceType: pulumi.String("MEDIA_STREAMS"), 108 // StorageConfig: &connect.InstanceStorageConfigStorageConfigArgs{ 109 // KinesisVideoStreamConfig: &connect.InstanceStorageConfigStorageConfigKinesisVideoStreamConfigArgs{ 110 // Prefix: pulumi.String("example"), 111 // RetentionPeriodHours: pulumi.Int(3), 112 // EncryptionConfig: &connect.InstanceStorageConfigStorageConfigKinesisVideoStreamConfigEncryptionConfigArgs{ 113 // EncryptionType: pulumi.String("KMS"), 114 // KeyId: pulumi.Any(exampleAwsKmsKey.Arn), 115 // }, 116 // }, 117 // StorageType: pulumi.String("KINESIS_VIDEO_STREAM"), 118 // }, 119 // }) 120 // if err != nil { 121 // return err 122 // } 123 // return nil 124 // }) 125 // } 126 // 127 // ``` 128 // <!--End PulumiCodeChooser --> 129 // 130 // ### Storage Config S3 Config 131 // 132 // <!--Start PulumiCodeChooser --> 133 // ```go 134 // package main 135 // 136 // import ( 137 // 138 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 139 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 140 // 141 // ) 142 // 143 // func main() { 144 // pulumi.Run(func(ctx *pulumi.Context) error { 145 // _, err := connect.NewInstanceStorageConfig(ctx, "example", &connect.InstanceStorageConfigArgs{ 146 // InstanceId: pulumi.Any(exampleAwsConnectInstance.Id), 147 // ResourceType: pulumi.String("CHAT_TRANSCRIPTS"), 148 // StorageConfig: &connect.InstanceStorageConfigStorageConfigArgs{ 149 // S3Config: &connect.InstanceStorageConfigStorageConfigS3ConfigArgs{ 150 // BucketName: pulumi.Any(exampleAwsS3Bucket.Id), 151 // BucketPrefix: pulumi.String("example"), 152 // }, 153 // StorageType: pulumi.String("S3"), 154 // }, 155 // }) 156 // if err != nil { 157 // return err 158 // } 159 // return nil 160 // }) 161 // } 162 // 163 // ``` 164 // <!--End PulumiCodeChooser --> 165 // 166 // ### Storage Config S3 Config with Encryption Config 167 // 168 // <!--Start PulumiCodeChooser --> 169 // ```go 170 // package main 171 // 172 // import ( 173 // 174 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/connect" 175 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 176 // 177 // ) 178 // 179 // func main() { 180 // pulumi.Run(func(ctx *pulumi.Context) error { 181 // _, err := connect.NewInstanceStorageConfig(ctx, "example", &connect.InstanceStorageConfigArgs{ 182 // InstanceId: pulumi.Any(exampleAwsConnectInstance.Id), 183 // ResourceType: pulumi.String("CHAT_TRANSCRIPTS"), 184 // StorageConfig: &connect.InstanceStorageConfigStorageConfigArgs{ 185 // S3Config: &connect.InstanceStorageConfigStorageConfigS3ConfigArgs{ 186 // BucketName: pulumi.Any(exampleAwsS3Bucket.Id), 187 // BucketPrefix: pulumi.String("example"), 188 // EncryptionConfig: &connect.InstanceStorageConfigStorageConfigS3ConfigEncryptionConfigArgs{ 189 // EncryptionType: pulumi.String("KMS"), 190 // KeyId: pulumi.Any(exampleAwsKmsKey.Arn), 191 // }, 192 // }, 193 // StorageType: pulumi.String("S3"), 194 // }, 195 // }) 196 // if err != nil { 197 // return err 198 // } 199 // return nil 200 // }) 201 // } 202 // 203 // ``` 204 // <!--End PulumiCodeChooser --> 205 // 206 // ## Import 207 // 208 // Using `pulumi import`, import Amazon Connect Instance Storage Configs using the `instance_id`, `association_id`, and `resource_type` separated by a colon (`:`). For example: 209 // 210 // ```sh 211 // $ pulumi import aws:connect/instanceStorageConfig:InstanceStorageConfig example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5:CHAT_TRANSCRIPTS 212 // ``` 213 type InstanceStorageConfig struct { 214 pulumi.CustomResourceState 215 216 // The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID. 217 AssociationId pulumi.StringOutput `pulumi:"associationId"` 218 // Specifies the identifier of the hosting Amazon Connect Instance. 219 InstanceId pulumi.StringOutput `pulumi:"instanceId"` 220 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 221 ResourceType pulumi.StringOutput `pulumi:"resourceType"` 222 // Specifies the storage configuration options for the Connect Instance. Documented below. 223 StorageConfig InstanceStorageConfigStorageConfigOutput `pulumi:"storageConfig"` 224 } 225 226 // NewInstanceStorageConfig registers a new resource with the given unique name, arguments, and options. 227 func NewInstanceStorageConfig(ctx *pulumi.Context, 228 name string, args *InstanceStorageConfigArgs, opts ...pulumi.ResourceOption) (*InstanceStorageConfig, error) { 229 if args == nil { 230 return nil, errors.New("missing one or more required arguments") 231 } 232 233 if args.InstanceId == nil { 234 return nil, errors.New("invalid value for required argument 'InstanceId'") 235 } 236 if args.ResourceType == nil { 237 return nil, errors.New("invalid value for required argument 'ResourceType'") 238 } 239 if args.StorageConfig == nil { 240 return nil, errors.New("invalid value for required argument 'StorageConfig'") 241 } 242 opts = internal.PkgResourceDefaultOpts(opts) 243 var resource InstanceStorageConfig 244 err := ctx.RegisterResource("aws:connect/instanceStorageConfig:InstanceStorageConfig", name, args, &resource, opts...) 245 if err != nil { 246 return nil, err 247 } 248 return &resource, nil 249 } 250 251 // GetInstanceStorageConfig gets an existing InstanceStorageConfig resource's state with the given name, ID, and optional 252 // state properties that are used to uniquely qualify the lookup (nil if not required). 253 func GetInstanceStorageConfig(ctx *pulumi.Context, 254 name string, id pulumi.IDInput, state *InstanceStorageConfigState, opts ...pulumi.ResourceOption) (*InstanceStorageConfig, error) { 255 var resource InstanceStorageConfig 256 err := ctx.ReadResource("aws:connect/instanceStorageConfig:InstanceStorageConfig", name, id, state, &resource, opts...) 257 if err != nil { 258 return nil, err 259 } 260 return &resource, nil 261 } 262 263 // Input properties used for looking up and filtering InstanceStorageConfig resources. 264 type instanceStorageConfigState struct { 265 // The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID. 266 AssociationId *string `pulumi:"associationId"` 267 // Specifies the identifier of the hosting Amazon Connect Instance. 268 InstanceId *string `pulumi:"instanceId"` 269 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 270 ResourceType *string `pulumi:"resourceType"` 271 // Specifies the storage configuration options for the Connect Instance. Documented below. 272 StorageConfig *InstanceStorageConfigStorageConfig `pulumi:"storageConfig"` 273 } 274 275 type InstanceStorageConfigState struct { 276 // The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID. 277 AssociationId pulumi.StringPtrInput 278 // Specifies the identifier of the hosting Amazon Connect Instance. 279 InstanceId pulumi.StringPtrInput 280 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 281 ResourceType pulumi.StringPtrInput 282 // Specifies the storage configuration options for the Connect Instance. Documented below. 283 StorageConfig InstanceStorageConfigStorageConfigPtrInput 284 } 285 286 func (InstanceStorageConfigState) ElementType() reflect.Type { 287 return reflect.TypeOf((*instanceStorageConfigState)(nil)).Elem() 288 } 289 290 type instanceStorageConfigArgs struct { 291 // Specifies the identifier of the hosting Amazon Connect Instance. 292 InstanceId string `pulumi:"instanceId"` 293 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 294 ResourceType string `pulumi:"resourceType"` 295 // Specifies the storage configuration options for the Connect Instance. Documented below. 296 StorageConfig InstanceStorageConfigStorageConfig `pulumi:"storageConfig"` 297 } 298 299 // The set of arguments for constructing a InstanceStorageConfig resource. 300 type InstanceStorageConfigArgs struct { 301 // Specifies the identifier of the hosting Amazon Connect Instance. 302 InstanceId pulumi.StringInput 303 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 304 ResourceType pulumi.StringInput 305 // Specifies the storage configuration options for the Connect Instance. Documented below. 306 StorageConfig InstanceStorageConfigStorageConfigInput 307 } 308 309 func (InstanceStorageConfigArgs) ElementType() reflect.Type { 310 return reflect.TypeOf((*instanceStorageConfigArgs)(nil)).Elem() 311 } 312 313 type InstanceStorageConfigInput interface { 314 pulumi.Input 315 316 ToInstanceStorageConfigOutput() InstanceStorageConfigOutput 317 ToInstanceStorageConfigOutputWithContext(ctx context.Context) InstanceStorageConfigOutput 318 } 319 320 func (*InstanceStorageConfig) ElementType() reflect.Type { 321 return reflect.TypeOf((**InstanceStorageConfig)(nil)).Elem() 322 } 323 324 func (i *InstanceStorageConfig) ToInstanceStorageConfigOutput() InstanceStorageConfigOutput { 325 return i.ToInstanceStorageConfigOutputWithContext(context.Background()) 326 } 327 328 func (i *InstanceStorageConfig) ToInstanceStorageConfigOutputWithContext(ctx context.Context) InstanceStorageConfigOutput { 329 return pulumi.ToOutputWithContext(ctx, i).(InstanceStorageConfigOutput) 330 } 331 332 // InstanceStorageConfigArrayInput is an input type that accepts InstanceStorageConfigArray and InstanceStorageConfigArrayOutput values. 333 // You can construct a concrete instance of `InstanceStorageConfigArrayInput` via: 334 // 335 // InstanceStorageConfigArray{ InstanceStorageConfigArgs{...} } 336 type InstanceStorageConfigArrayInput interface { 337 pulumi.Input 338 339 ToInstanceStorageConfigArrayOutput() InstanceStorageConfigArrayOutput 340 ToInstanceStorageConfigArrayOutputWithContext(context.Context) InstanceStorageConfigArrayOutput 341 } 342 343 type InstanceStorageConfigArray []InstanceStorageConfigInput 344 345 func (InstanceStorageConfigArray) ElementType() reflect.Type { 346 return reflect.TypeOf((*[]*InstanceStorageConfig)(nil)).Elem() 347 } 348 349 func (i InstanceStorageConfigArray) ToInstanceStorageConfigArrayOutput() InstanceStorageConfigArrayOutput { 350 return i.ToInstanceStorageConfigArrayOutputWithContext(context.Background()) 351 } 352 353 func (i InstanceStorageConfigArray) ToInstanceStorageConfigArrayOutputWithContext(ctx context.Context) InstanceStorageConfigArrayOutput { 354 return pulumi.ToOutputWithContext(ctx, i).(InstanceStorageConfigArrayOutput) 355 } 356 357 // InstanceStorageConfigMapInput is an input type that accepts InstanceStorageConfigMap and InstanceStorageConfigMapOutput values. 358 // You can construct a concrete instance of `InstanceStorageConfigMapInput` via: 359 // 360 // InstanceStorageConfigMap{ "key": InstanceStorageConfigArgs{...} } 361 type InstanceStorageConfigMapInput interface { 362 pulumi.Input 363 364 ToInstanceStorageConfigMapOutput() InstanceStorageConfigMapOutput 365 ToInstanceStorageConfigMapOutputWithContext(context.Context) InstanceStorageConfigMapOutput 366 } 367 368 type InstanceStorageConfigMap map[string]InstanceStorageConfigInput 369 370 func (InstanceStorageConfigMap) ElementType() reflect.Type { 371 return reflect.TypeOf((*map[string]*InstanceStorageConfig)(nil)).Elem() 372 } 373 374 func (i InstanceStorageConfigMap) ToInstanceStorageConfigMapOutput() InstanceStorageConfigMapOutput { 375 return i.ToInstanceStorageConfigMapOutputWithContext(context.Background()) 376 } 377 378 func (i InstanceStorageConfigMap) ToInstanceStorageConfigMapOutputWithContext(ctx context.Context) InstanceStorageConfigMapOutput { 379 return pulumi.ToOutputWithContext(ctx, i).(InstanceStorageConfigMapOutput) 380 } 381 382 type InstanceStorageConfigOutput struct{ *pulumi.OutputState } 383 384 func (InstanceStorageConfigOutput) ElementType() reflect.Type { 385 return reflect.TypeOf((**InstanceStorageConfig)(nil)).Elem() 386 } 387 388 func (o InstanceStorageConfigOutput) ToInstanceStorageConfigOutput() InstanceStorageConfigOutput { 389 return o 390 } 391 392 func (o InstanceStorageConfigOutput) ToInstanceStorageConfigOutputWithContext(ctx context.Context) InstanceStorageConfigOutput { 393 return o 394 } 395 396 // The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID. 397 func (o InstanceStorageConfigOutput) AssociationId() pulumi.StringOutput { 398 return o.ApplyT(func(v *InstanceStorageConfig) pulumi.StringOutput { return v.AssociationId }).(pulumi.StringOutput) 399 } 400 401 // Specifies the identifier of the hosting Amazon Connect Instance. 402 func (o InstanceStorageConfigOutput) InstanceId() pulumi.StringOutput { 403 return o.ApplyT(func(v *InstanceStorageConfig) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) 404 } 405 406 // A valid resource type. Valid Values: `AGENT_EVENTS` | `ATTACHMENTS` | `CALL_RECORDINGS` | `CHAT_TRANSCRIPTS` | `CONTACT_EVALUATIONS` | `CONTACT_TRACE_RECORDS` | `MEDIA_STREAMS` | `REAL_TIME_CONTACT_ANALYSIS_SEGMENTS` | `SCHEDULED_REPORTS` | `SCREEN_RECORDINGS`. 407 func (o InstanceStorageConfigOutput) ResourceType() pulumi.StringOutput { 408 return o.ApplyT(func(v *InstanceStorageConfig) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput) 409 } 410 411 // Specifies the storage configuration options for the Connect Instance. Documented below. 412 func (o InstanceStorageConfigOutput) StorageConfig() InstanceStorageConfigStorageConfigOutput { 413 return o.ApplyT(func(v *InstanceStorageConfig) InstanceStorageConfigStorageConfigOutput { return v.StorageConfig }).(InstanceStorageConfigStorageConfigOutput) 414 } 415 416 type InstanceStorageConfigArrayOutput struct{ *pulumi.OutputState } 417 418 func (InstanceStorageConfigArrayOutput) ElementType() reflect.Type { 419 return reflect.TypeOf((*[]*InstanceStorageConfig)(nil)).Elem() 420 } 421 422 func (o InstanceStorageConfigArrayOutput) ToInstanceStorageConfigArrayOutput() InstanceStorageConfigArrayOutput { 423 return o 424 } 425 426 func (o InstanceStorageConfigArrayOutput) ToInstanceStorageConfigArrayOutputWithContext(ctx context.Context) InstanceStorageConfigArrayOutput { 427 return o 428 } 429 430 func (o InstanceStorageConfigArrayOutput) Index(i pulumi.IntInput) InstanceStorageConfigOutput { 431 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InstanceStorageConfig { 432 return vs[0].([]*InstanceStorageConfig)[vs[1].(int)] 433 }).(InstanceStorageConfigOutput) 434 } 435 436 type InstanceStorageConfigMapOutput struct{ *pulumi.OutputState } 437 438 func (InstanceStorageConfigMapOutput) ElementType() reflect.Type { 439 return reflect.TypeOf((*map[string]*InstanceStorageConfig)(nil)).Elem() 440 } 441 442 func (o InstanceStorageConfigMapOutput) ToInstanceStorageConfigMapOutput() InstanceStorageConfigMapOutput { 443 return o 444 } 445 446 func (o InstanceStorageConfigMapOutput) ToInstanceStorageConfigMapOutputWithContext(ctx context.Context) InstanceStorageConfigMapOutput { 447 return o 448 } 449 450 func (o InstanceStorageConfigMapOutput) MapIndex(k pulumi.StringInput) InstanceStorageConfigOutput { 451 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InstanceStorageConfig { 452 return vs[0].(map[string]*InstanceStorageConfig)[vs[1].(string)] 453 }).(InstanceStorageConfigOutput) 454 } 455 456 func init() { 457 pulumi.RegisterInputType(reflect.TypeOf((*InstanceStorageConfigInput)(nil)).Elem(), &InstanceStorageConfig{}) 458 pulumi.RegisterInputType(reflect.TypeOf((*InstanceStorageConfigArrayInput)(nil)).Elem(), InstanceStorageConfigArray{}) 459 pulumi.RegisterInputType(reflect.TypeOf((*InstanceStorageConfigMapInput)(nil)).Elem(), InstanceStorageConfigMap{}) 460 pulumi.RegisterOutputType(InstanceStorageConfigOutput{}) 461 pulumi.RegisterOutputType(InstanceStorageConfigArrayOutput{}) 462 pulumi.RegisterOutputType(InstanceStorageConfigMapOutput{}) 463 }