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  }