github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/chime/voiceConnectorStreaming.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 chime 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 // Adds a streaming configuration for the specified Amazon Chime Voice Connector. The streaming configuration specifies whether media streaming is enabled for sending to Amazon Kinesis. 16 // It also sets the retention period, in hours, for the Amazon Kinesis data. 17 // 18 // ## Example Usage 19 // 20 // <!--Start PulumiCodeChooser --> 21 // ```go 22 // package main 23 // 24 // import ( 25 // 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chime" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // _, err := chime.NewVoiceConnector(ctx, "default", &chime.VoiceConnectorArgs{ 34 // Name: pulumi.String("vc-name-test"), 35 // RequireEncryption: pulumi.Bool(true), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // _, err = chime.NewVoiceConnectorStreaming(ctx, "default", &chime.VoiceConnectorStreamingArgs{ 41 // Disabled: pulumi.Bool(false), 42 // VoiceConnectorId: _default.ID(), 43 // DataRetention: pulumi.Int(7), 44 // StreamingNotificationTargets: pulumi.StringArray{ 45 // pulumi.String("SQS"), 46 // }, 47 // }) 48 // if err != nil { 49 // return err 50 // } 51 // return nil 52 // }) 53 // } 54 // 55 // ``` 56 // <!--End PulumiCodeChooser --> 57 // 58 // ### Example Usage With Media Insights 59 // 60 // <!--Start PulumiCodeChooser --> 61 // ```go 62 // package main 63 // 64 // import ( 65 // 66 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chime" 67 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines" 68 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 69 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 70 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 71 // 72 // ) 73 // 74 // func main() { 75 // pulumi.Run(func(ctx *pulumi.Context) error { 76 // _, err := chime.NewVoiceConnector(ctx, "default", &chime.VoiceConnectorArgs{ 77 // Name: pulumi.String("vc-name-test"), 78 // RequireEncryption: pulumi.Bool(true), 79 // }) 80 // if err != nil { 81 // return err 82 // } 83 // assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 84 // Statements: []iam.GetPolicyDocumentStatement{ 85 // { 86 // Effect: pulumi.StringRef("Allow"), 87 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 88 // { 89 // Type: "Service", 90 // Identifiers: []string{ 91 // "mediapipelines.chime.amazonaws.com", 92 // }, 93 // }, 94 // }, 95 // Actions: []string{ 96 // "sts:AssumeRole", 97 // }, 98 // }, 99 // }, 100 // }, nil) 101 // if err != nil { 102 // return err 103 // } 104 // exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{ 105 // Name: pulumi.String("ExampleResourceAccessRole"), 106 // AssumeRolePolicy: pulumi.String(assumeRole.Json), 107 // }) 108 // if err != nil { 109 // return err 110 // } 111 // exampleStream, err := kinesis.NewStream(ctx, "example", &kinesis.StreamArgs{ 112 // Name: pulumi.String("ExampleStream"), 113 // ShardCount: pulumi.Int(2), 114 // }) 115 // if err != nil { 116 // return err 117 // } 118 // example, err := chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "example", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{ 119 // Name: pulumi.String("ExampleConfig"), 120 // ResourceAccessRoleArn: exampleRole.Arn, 121 // Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{ 122 // &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{ 123 // Type: pulumi.String("AmazonTranscribeCallAnalyticsProcessor"), 124 // AmazonTranscribeCallAnalyticsProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs{ 125 // LanguageCode: pulumi.String("en-US"), 126 // }, 127 // }, 128 // &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{ 129 // Type: pulumi.String("KinesisDataStreamSink"), 130 // KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{ 131 // InsightsTarget: exampleStream.Arn, 132 // }, 133 // }, 134 // }, 135 // }) 136 // if err != nil { 137 // return err 138 // } 139 // _, err = chime.NewVoiceConnectorStreaming(ctx, "default", &chime.VoiceConnectorStreamingArgs{ 140 // Disabled: pulumi.Bool(false), 141 // VoiceConnectorId: _default.ID(), 142 // DataRetention: pulumi.Int(7), 143 // StreamingNotificationTargets: pulumi.StringArray{ 144 // pulumi.String("SQS"), 145 // }, 146 // MediaInsightsConfiguration: &chime.VoiceConnectorStreamingMediaInsightsConfigurationArgs{ 147 // Disabled: pulumi.Bool(false), 148 // ConfigurationArn: example.Arn, 149 // }, 150 // }) 151 // if err != nil { 152 // return err 153 // } 154 // return nil 155 // }) 156 // } 157 // 158 // ``` 159 // <!--End PulumiCodeChooser --> 160 // 161 // ## Import 162 // 163 // Using `pulumi import`, import Chime Voice Connector Streaming using the `voice_connector_id`. For example: 164 // 165 // ```sh 166 // $ pulumi import aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming default abcdef1ghij2klmno3pqr4 167 // ``` 168 type VoiceConnectorStreaming struct { 169 pulumi.CustomResourceState 170 171 // The retention period, in hours, for the Amazon Kinesis data. 172 DataRetention pulumi.IntOutput `pulumi:"dataRetention"` 173 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 174 Disabled pulumi.BoolPtrOutput `pulumi:"disabled"` 175 // The media insights configuration. See `mediaInsightsConfiguration`. 176 MediaInsightsConfiguration VoiceConnectorStreamingMediaInsightsConfigurationPtrOutput `pulumi:"mediaInsightsConfiguration"` 177 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 178 StreamingNotificationTargets pulumi.StringArrayOutput `pulumi:"streamingNotificationTargets"` 179 // The Amazon Chime Voice Connector ID. 180 VoiceConnectorId pulumi.StringOutput `pulumi:"voiceConnectorId"` 181 } 182 183 // NewVoiceConnectorStreaming registers a new resource with the given unique name, arguments, and options. 184 func NewVoiceConnectorStreaming(ctx *pulumi.Context, 185 name string, args *VoiceConnectorStreamingArgs, opts ...pulumi.ResourceOption) (*VoiceConnectorStreaming, error) { 186 if args == nil { 187 return nil, errors.New("missing one or more required arguments") 188 } 189 190 if args.DataRetention == nil { 191 return nil, errors.New("invalid value for required argument 'DataRetention'") 192 } 193 if args.VoiceConnectorId == nil { 194 return nil, errors.New("invalid value for required argument 'VoiceConnectorId'") 195 } 196 opts = internal.PkgResourceDefaultOpts(opts) 197 var resource VoiceConnectorStreaming 198 err := ctx.RegisterResource("aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming", name, args, &resource, opts...) 199 if err != nil { 200 return nil, err 201 } 202 return &resource, nil 203 } 204 205 // GetVoiceConnectorStreaming gets an existing VoiceConnectorStreaming resource's state with the given name, ID, and optional 206 // state properties that are used to uniquely qualify the lookup (nil if not required). 207 func GetVoiceConnectorStreaming(ctx *pulumi.Context, 208 name string, id pulumi.IDInput, state *VoiceConnectorStreamingState, opts ...pulumi.ResourceOption) (*VoiceConnectorStreaming, error) { 209 var resource VoiceConnectorStreaming 210 err := ctx.ReadResource("aws:chime/voiceConnectorStreaming:VoiceConnectorStreaming", name, id, state, &resource, opts...) 211 if err != nil { 212 return nil, err 213 } 214 return &resource, nil 215 } 216 217 // Input properties used for looking up and filtering VoiceConnectorStreaming resources. 218 type voiceConnectorStreamingState struct { 219 // The retention period, in hours, for the Amazon Kinesis data. 220 DataRetention *int `pulumi:"dataRetention"` 221 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 222 Disabled *bool `pulumi:"disabled"` 223 // The media insights configuration. See `mediaInsightsConfiguration`. 224 MediaInsightsConfiguration *VoiceConnectorStreamingMediaInsightsConfiguration `pulumi:"mediaInsightsConfiguration"` 225 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 226 StreamingNotificationTargets []string `pulumi:"streamingNotificationTargets"` 227 // The Amazon Chime Voice Connector ID. 228 VoiceConnectorId *string `pulumi:"voiceConnectorId"` 229 } 230 231 type VoiceConnectorStreamingState struct { 232 // The retention period, in hours, for the Amazon Kinesis data. 233 DataRetention pulumi.IntPtrInput 234 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 235 Disabled pulumi.BoolPtrInput 236 // The media insights configuration. See `mediaInsightsConfiguration`. 237 MediaInsightsConfiguration VoiceConnectorStreamingMediaInsightsConfigurationPtrInput 238 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 239 StreamingNotificationTargets pulumi.StringArrayInput 240 // The Amazon Chime Voice Connector ID. 241 VoiceConnectorId pulumi.StringPtrInput 242 } 243 244 func (VoiceConnectorStreamingState) ElementType() reflect.Type { 245 return reflect.TypeOf((*voiceConnectorStreamingState)(nil)).Elem() 246 } 247 248 type voiceConnectorStreamingArgs struct { 249 // The retention period, in hours, for the Amazon Kinesis data. 250 DataRetention int `pulumi:"dataRetention"` 251 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 252 Disabled *bool `pulumi:"disabled"` 253 // The media insights configuration. See `mediaInsightsConfiguration`. 254 MediaInsightsConfiguration *VoiceConnectorStreamingMediaInsightsConfiguration `pulumi:"mediaInsightsConfiguration"` 255 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 256 StreamingNotificationTargets []string `pulumi:"streamingNotificationTargets"` 257 // The Amazon Chime Voice Connector ID. 258 VoiceConnectorId string `pulumi:"voiceConnectorId"` 259 } 260 261 // The set of arguments for constructing a VoiceConnectorStreaming resource. 262 type VoiceConnectorStreamingArgs struct { 263 // The retention period, in hours, for the Amazon Kinesis data. 264 DataRetention pulumi.IntInput 265 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 266 Disabled pulumi.BoolPtrInput 267 // The media insights configuration. See `mediaInsightsConfiguration`. 268 MediaInsightsConfiguration VoiceConnectorStreamingMediaInsightsConfigurationPtrInput 269 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 270 StreamingNotificationTargets pulumi.StringArrayInput 271 // The Amazon Chime Voice Connector ID. 272 VoiceConnectorId pulumi.StringInput 273 } 274 275 func (VoiceConnectorStreamingArgs) ElementType() reflect.Type { 276 return reflect.TypeOf((*voiceConnectorStreamingArgs)(nil)).Elem() 277 } 278 279 type VoiceConnectorStreamingInput interface { 280 pulumi.Input 281 282 ToVoiceConnectorStreamingOutput() VoiceConnectorStreamingOutput 283 ToVoiceConnectorStreamingOutputWithContext(ctx context.Context) VoiceConnectorStreamingOutput 284 } 285 286 func (*VoiceConnectorStreaming) ElementType() reflect.Type { 287 return reflect.TypeOf((**VoiceConnectorStreaming)(nil)).Elem() 288 } 289 290 func (i *VoiceConnectorStreaming) ToVoiceConnectorStreamingOutput() VoiceConnectorStreamingOutput { 291 return i.ToVoiceConnectorStreamingOutputWithContext(context.Background()) 292 } 293 294 func (i *VoiceConnectorStreaming) ToVoiceConnectorStreamingOutputWithContext(ctx context.Context) VoiceConnectorStreamingOutput { 295 return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorStreamingOutput) 296 } 297 298 // VoiceConnectorStreamingArrayInput is an input type that accepts VoiceConnectorStreamingArray and VoiceConnectorStreamingArrayOutput values. 299 // You can construct a concrete instance of `VoiceConnectorStreamingArrayInput` via: 300 // 301 // VoiceConnectorStreamingArray{ VoiceConnectorStreamingArgs{...} } 302 type VoiceConnectorStreamingArrayInput interface { 303 pulumi.Input 304 305 ToVoiceConnectorStreamingArrayOutput() VoiceConnectorStreamingArrayOutput 306 ToVoiceConnectorStreamingArrayOutputWithContext(context.Context) VoiceConnectorStreamingArrayOutput 307 } 308 309 type VoiceConnectorStreamingArray []VoiceConnectorStreamingInput 310 311 func (VoiceConnectorStreamingArray) ElementType() reflect.Type { 312 return reflect.TypeOf((*[]*VoiceConnectorStreaming)(nil)).Elem() 313 } 314 315 func (i VoiceConnectorStreamingArray) ToVoiceConnectorStreamingArrayOutput() VoiceConnectorStreamingArrayOutput { 316 return i.ToVoiceConnectorStreamingArrayOutputWithContext(context.Background()) 317 } 318 319 func (i VoiceConnectorStreamingArray) ToVoiceConnectorStreamingArrayOutputWithContext(ctx context.Context) VoiceConnectorStreamingArrayOutput { 320 return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorStreamingArrayOutput) 321 } 322 323 // VoiceConnectorStreamingMapInput is an input type that accepts VoiceConnectorStreamingMap and VoiceConnectorStreamingMapOutput values. 324 // You can construct a concrete instance of `VoiceConnectorStreamingMapInput` via: 325 // 326 // VoiceConnectorStreamingMap{ "key": VoiceConnectorStreamingArgs{...} } 327 type VoiceConnectorStreamingMapInput interface { 328 pulumi.Input 329 330 ToVoiceConnectorStreamingMapOutput() VoiceConnectorStreamingMapOutput 331 ToVoiceConnectorStreamingMapOutputWithContext(context.Context) VoiceConnectorStreamingMapOutput 332 } 333 334 type VoiceConnectorStreamingMap map[string]VoiceConnectorStreamingInput 335 336 func (VoiceConnectorStreamingMap) ElementType() reflect.Type { 337 return reflect.TypeOf((*map[string]*VoiceConnectorStreaming)(nil)).Elem() 338 } 339 340 func (i VoiceConnectorStreamingMap) ToVoiceConnectorStreamingMapOutput() VoiceConnectorStreamingMapOutput { 341 return i.ToVoiceConnectorStreamingMapOutputWithContext(context.Background()) 342 } 343 344 func (i VoiceConnectorStreamingMap) ToVoiceConnectorStreamingMapOutputWithContext(ctx context.Context) VoiceConnectorStreamingMapOutput { 345 return pulumi.ToOutputWithContext(ctx, i).(VoiceConnectorStreamingMapOutput) 346 } 347 348 type VoiceConnectorStreamingOutput struct{ *pulumi.OutputState } 349 350 func (VoiceConnectorStreamingOutput) ElementType() reflect.Type { 351 return reflect.TypeOf((**VoiceConnectorStreaming)(nil)).Elem() 352 } 353 354 func (o VoiceConnectorStreamingOutput) ToVoiceConnectorStreamingOutput() VoiceConnectorStreamingOutput { 355 return o 356 } 357 358 func (o VoiceConnectorStreamingOutput) ToVoiceConnectorStreamingOutputWithContext(ctx context.Context) VoiceConnectorStreamingOutput { 359 return o 360 } 361 362 // The retention period, in hours, for the Amazon Kinesis data. 363 func (o VoiceConnectorStreamingOutput) DataRetention() pulumi.IntOutput { 364 return o.ApplyT(func(v *VoiceConnectorStreaming) pulumi.IntOutput { return v.DataRetention }).(pulumi.IntOutput) 365 } 366 367 // When true, media streaming to Amazon Kinesis is turned off. Default: `false` 368 func (o VoiceConnectorStreamingOutput) Disabled() pulumi.BoolPtrOutput { 369 return o.ApplyT(func(v *VoiceConnectorStreaming) pulumi.BoolPtrOutput { return v.Disabled }).(pulumi.BoolPtrOutput) 370 } 371 372 // The media insights configuration. See `mediaInsightsConfiguration`. 373 func (o VoiceConnectorStreamingOutput) MediaInsightsConfiguration() VoiceConnectorStreamingMediaInsightsConfigurationPtrOutput { 374 return o.ApplyT(func(v *VoiceConnectorStreaming) VoiceConnectorStreamingMediaInsightsConfigurationPtrOutput { 375 return v.MediaInsightsConfiguration 376 }).(VoiceConnectorStreamingMediaInsightsConfigurationPtrOutput) 377 } 378 379 // The streaming notification targets. Valid Values: `EventBridge | SNS | SQS` 380 func (o VoiceConnectorStreamingOutput) StreamingNotificationTargets() pulumi.StringArrayOutput { 381 return o.ApplyT(func(v *VoiceConnectorStreaming) pulumi.StringArrayOutput { return v.StreamingNotificationTargets }).(pulumi.StringArrayOutput) 382 } 383 384 // The Amazon Chime Voice Connector ID. 385 func (o VoiceConnectorStreamingOutput) VoiceConnectorId() pulumi.StringOutput { 386 return o.ApplyT(func(v *VoiceConnectorStreaming) pulumi.StringOutput { return v.VoiceConnectorId }).(pulumi.StringOutput) 387 } 388 389 type VoiceConnectorStreamingArrayOutput struct{ *pulumi.OutputState } 390 391 func (VoiceConnectorStreamingArrayOutput) ElementType() reflect.Type { 392 return reflect.TypeOf((*[]*VoiceConnectorStreaming)(nil)).Elem() 393 } 394 395 func (o VoiceConnectorStreamingArrayOutput) ToVoiceConnectorStreamingArrayOutput() VoiceConnectorStreamingArrayOutput { 396 return o 397 } 398 399 func (o VoiceConnectorStreamingArrayOutput) ToVoiceConnectorStreamingArrayOutputWithContext(ctx context.Context) VoiceConnectorStreamingArrayOutput { 400 return o 401 } 402 403 func (o VoiceConnectorStreamingArrayOutput) Index(i pulumi.IntInput) VoiceConnectorStreamingOutput { 404 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VoiceConnectorStreaming { 405 return vs[0].([]*VoiceConnectorStreaming)[vs[1].(int)] 406 }).(VoiceConnectorStreamingOutput) 407 } 408 409 type VoiceConnectorStreamingMapOutput struct{ *pulumi.OutputState } 410 411 func (VoiceConnectorStreamingMapOutput) ElementType() reflect.Type { 412 return reflect.TypeOf((*map[string]*VoiceConnectorStreaming)(nil)).Elem() 413 } 414 415 func (o VoiceConnectorStreamingMapOutput) ToVoiceConnectorStreamingMapOutput() VoiceConnectorStreamingMapOutput { 416 return o 417 } 418 419 func (o VoiceConnectorStreamingMapOutput) ToVoiceConnectorStreamingMapOutputWithContext(ctx context.Context) VoiceConnectorStreamingMapOutput { 420 return o 421 } 422 423 func (o VoiceConnectorStreamingMapOutput) MapIndex(k pulumi.StringInput) VoiceConnectorStreamingOutput { 424 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VoiceConnectorStreaming { 425 return vs[0].(map[string]*VoiceConnectorStreaming)[vs[1].(string)] 426 }).(VoiceConnectorStreamingOutput) 427 } 428 429 func init() { 430 pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorStreamingInput)(nil)).Elem(), &VoiceConnectorStreaming{}) 431 pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorStreamingArrayInput)(nil)).Elem(), VoiceConnectorStreamingArray{}) 432 pulumi.RegisterInputType(reflect.TypeOf((*VoiceConnectorStreamingMapInput)(nil)).Elem(), VoiceConnectorStreamingMap{}) 433 pulumi.RegisterOutputType(VoiceConnectorStreamingOutput{}) 434 pulumi.RegisterOutputType(VoiceConnectorStreamingArrayOutput{}) 435 pulumi.RegisterOutputType(VoiceConnectorStreamingMapOutput{}) 436 }