github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/chimesdkmediapipelines/mediaInsightsPipelineConfiguration.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 chimesdkmediapipelines
     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  // Resource for managing an AWS Chime SDK Media Pipelines Media Insights Pipeline Configuration.
    16  // Consult the [Call analytics developer guide](https://docs.aws.amazon.com/chime-sdk/latest/dg/call-analytics.html) for more detailed information about usage.
    17  //
    18  // ## Example Usage
    19  //
    20  // ### Basic Usage
    21  //
    22  // <!--Start PulumiCodeChooser -->
    23  // ```go
    24  // package main
    25  //
    26  // import (
    27  //
    28  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
    29  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis"
    31  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    32  //
    33  // )
    34  //
    35  //	func main() {
    36  //		pulumi.Run(func(ctx *pulumi.Context) error {
    37  //			example, err := kinesis.NewStream(ctx, "example", &kinesis.StreamArgs{
    38  //				Name:       pulumi.String("example"),
    39  //				ShardCount: pulumi.Int(2),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			mediaPipelinesAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    45  //				Statements: []iam.GetPolicyDocumentStatement{
    46  //					{
    47  //						Effect: pulumi.StringRef("Allow"),
    48  //						Principals: []iam.GetPolicyDocumentStatementPrincipal{
    49  //							{
    50  //								Type: "Service",
    51  //								Identifiers: []string{
    52  //									"mediapipelines.chime.amazonaws.com",
    53  //								},
    54  //							},
    55  //						},
    56  //						Actions: []string{
    57  //							"sts:AssumeRole",
    58  //						},
    59  //					},
    60  //				},
    61  //			}, nil)
    62  //			if err != nil {
    63  //				return err
    64  //			}
    65  //			callAnalyticsRole, err := iam.NewRole(ctx, "call_analytics_role", &iam.RoleArgs{
    66  //				Name:             pulumi.String("CallAnalyticsRole"),
    67  //				AssumeRolePolicy: pulumi.String(mediaPipelinesAssumeRole.Json),
    68  //			})
    69  //			if err != nil {
    70  //				return err
    71  //			}
    72  //			_, err = chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
    73  //				Name:                  pulumi.String("MyBasicConfiguration"),
    74  //				ResourceAccessRoleArn: callAnalyticsRole.Arn,
    75  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
    76  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
    77  //						Type: pulumi.String("AmazonTranscribeCallAnalyticsProcessor"),
    78  //						AmazonTranscribeCallAnalyticsProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs{
    79  //							LanguageCode: pulumi.String("en-US"),
    80  //						},
    81  //					},
    82  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
    83  //						Type: pulumi.String("KinesisDataStreamSink"),
    84  //						KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{
    85  //							InsightsTarget: example.Arn,
    86  //						},
    87  //					},
    88  //				},
    89  //				Tags: pulumi.StringMap{
    90  //					"Key1": pulumi.String("Value1"),
    91  //					"Key2": pulumi.String("Value2"),
    92  //				},
    93  //			})
    94  //			if err != nil {
    95  //				return err
    96  //			}
    97  //			return nil
    98  //		})
    99  //	}
   100  //
   101  // ```
   102  // <!--End PulumiCodeChooser -->
   103  //
   104  // - The required policies on `callAnalyticsRole` will vary based on the selected processors. See [Call analytics resource access role](https://docs.aws.amazon.com/chime-sdk/latest/dg/ca-resource-access-role.html) for directions on choosing appropriate policies.
   105  //
   106  // ### Transcribe Call Analytics processor usage
   107  //
   108  // <!--Start PulumiCodeChooser -->
   109  // ```go
   110  // package main
   111  //
   112  // import (
   113  //
   114  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
   115  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
   116  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   117  //
   118  // )
   119  //
   120  //	func main() {
   121  //		pulumi.Run(func(ctx *pulumi.Context) error {
   122  //			transcribeAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
   123  //				Statements: []iam.GetPolicyDocumentStatement{
   124  //					{
   125  //						Effect: pulumi.StringRef("Allow"),
   126  //						Principals: []iam.GetPolicyDocumentStatementPrincipal{
   127  //							{
   128  //								Type: "Service",
   129  //								Identifiers: []string{
   130  //									"transcribe.amazonaws.com",
   131  //								},
   132  //							},
   133  //						},
   134  //						Actions: []string{
   135  //							"sts:AssumeRole",
   136  //						},
   137  //					},
   138  //				},
   139  //			}, nil)
   140  //			if err != nil {
   141  //				return err
   142  //			}
   143  //			postCallRole, err := iam.NewRole(ctx, "post_call_role", &iam.RoleArgs{
   144  //				Name:             pulumi.String("PostCallAccessRole"),
   145  //				AssumeRolePolicy: pulumi.String(transcribeAssumeRole.Json),
   146  //			})
   147  //			if err != nil {
   148  //				return err
   149  //			}
   150  //			_, err = chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
   151  //				Name:                  pulumi.String("MyCallAnalyticsConfiguration"),
   152  //				ResourceAccessRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   153  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
   154  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   155  //						Type: pulumi.String("AmazonTranscribeCallAnalyticsProcessor"),
   156  //						AmazonTranscribeCallAnalyticsProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs{
   157  //							CallAnalyticsStreamCategories: pulumi.StringArray{
   158  //								pulumi.String("category_1"),
   159  //								pulumi.String("category_2"),
   160  //							},
   161  //							ContentRedactionType:              pulumi.String("PII"),
   162  //							EnablePartialResultsStabilization: pulumi.Bool(true),
   163  //							FilterPartialResults:              pulumi.Bool(true),
   164  //							LanguageCode:                      pulumi.String("en-US"),
   165  //							LanguageModelName:                 pulumi.String("MyLanguageModel"),
   166  //							PartialResultsStability:           pulumi.String("high"),
   167  //							PiiEntityTypes:                    pulumi.String("ADDRESS,BANK_ACCOUNT_NUMBER"),
   168  //							PostCallAnalyticsSettings: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs{
   169  //								ContentRedactionOutput:   pulumi.String("redacted"),
   170  //								DataAccessRoleArn:        postCallRole.Arn,
   171  //								OutputEncryptionKmsKeyId: pulumi.String("MyKmsKeyId"),
   172  //								OutputLocation:           pulumi.String("s3://MyBucket"),
   173  //							},
   174  //							VocabularyFilterMethod: pulumi.String("mask"),
   175  //							VocabularyFilterName:   pulumi.String("MyVocabularyFilter"),
   176  //							VocabularyName:         pulumi.String("MyVocabulary"),
   177  //						},
   178  //					},
   179  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   180  //						Type: pulumi.String("KinesisDataStreamSink"),
   181  //						KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{
   182  //							InsightsTarget: pulumi.Any(example.Arn),
   183  //						},
   184  //					},
   185  //				},
   186  //			})
   187  //			if err != nil {
   188  //				return err
   189  //			}
   190  //			return nil
   191  //		})
   192  //	}
   193  //
   194  // ```
   195  // <!--End PulumiCodeChooser -->
   196  //
   197  // ### Real time alerts usage
   198  //
   199  // <!--Start PulumiCodeChooser -->
   200  // ```go
   201  // package main
   202  //
   203  // import (
   204  //
   205  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
   206  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   207  //
   208  // )
   209  //
   210  //	func main() {
   211  //		pulumi.Run(func(ctx *pulumi.Context) error {
   212  //			_, err := chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
   213  //				Name:                  pulumi.String("MyRealTimeAlertConfiguration"),
   214  //				ResourceAccessRoleArn: pulumi.Any(callAnalyticsRole.Arn),
   215  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
   216  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   217  //						Type: pulumi.String("AmazonTranscribeCallAnalyticsProcessor"),
   218  //						AmazonTranscribeCallAnalyticsProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs{
   219  //							LanguageCode: pulumi.String("en-US"),
   220  //						},
   221  //					},
   222  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   223  //						Type: pulumi.String("KinesisDataStreamSink"),
   224  //						KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{
   225  //							InsightsTarget: pulumi.Any(example.Arn),
   226  //						},
   227  //					},
   228  //				},
   229  //				RealTimeAlertConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs{
   230  //					Disabled: pulumi.Bool(false),
   231  //					Rules: chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArray{
   232  //						&chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs{
   233  //							Type: pulumi.String("IssueDetection"),
   234  //							IssueDetectionConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfigurationArgs{
   235  //								RuleName: pulumi.String("MyIssueDetectionRule"),
   236  //							},
   237  //						},
   238  //						&chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs{
   239  //							Type: pulumi.String("KeywordMatch"),
   240  //							KeywordMatchConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs{
   241  //								Keywords: pulumi.StringArray{
   242  //									pulumi.String("keyword1"),
   243  //									pulumi.String("keyword2"),
   244  //								},
   245  //								Negate:   pulumi.Bool(false),
   246  //								RuleName: pulumi.String("MyKeywordMatchRule"),
   247  //							},
   248  //						},
   249  //						&chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs{
   250  //							Type: pulumi.String("Sentiment"),
   251  //							SentimentConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs{
   252  //								RuleName:      pulumi.String("MySentimentRule"),
   253  //								SentimentType: pulumi.String("NEGATIVE"),
   254  //								TimePeriod:    pulumi.Int(60),
   255  //							},
   256  //						},
   257  //					},
   258  //				},
   259  //			})
   260  //			if err != nil {
   261  //				return err
   262  //			}
   263  //			return nil
   264  //		})
   265  //	}
   266  //
   267  // ```
   268  // <!--End PulumiCodeChooser -->
   269  //
   270  // ### Transcribe processor usage
   271  //
   272  // <!--Start PulumiCodeChooser -->
   273  // ```go
   274  // package main
   275  //
   276  // import (
   277  //
   278  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
   279  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   280  //
   281  // )
   282  //
   283  //	func main() {
   284  //		pulumi.Run(func(ctx *pulumi.Context) error {
   285  //			_, err := chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
   286  //				Name:                  pulumi.String("MyTranscribeConfiguration"),
   287  //				ResourceAccessRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
   288  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
   289  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   290  //						Type: pulumi.String("AmazonTranscribeProcessor"),
   291  //						AmazonTranscribeProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs{
   292  //							ContentIdentificationType:         pulumi.String("PII"),
   293  //							EnablePartialResultsStabilization: pulumi.Bool(true),
   294  //							FilterPartialResults:              pulumi.Bool(true),
   295  //							LanguageCode:                      pulumi.String("en-US"),
   296  //							LanguageModelName:                 pulumi.String("MyLanguageModel"),
   297  //							PartialResultsStability:           pulumi.String("high"),
   298  //							PiiEntityTypes:                    pulumi.String("ADDRESS,BANK_ACCOUNT_NUMBER"),
   299  //							ShowSpeakerLabel:                  pulumi.Bool(true),
   300  //							VocabularyFilterMethod:            pulumi.String("mask"),
   301  //							VocabularyFilterName:              pulumi.String("MyVocabularyFilter"),
   302  //							VocabularyName:                    pulumi.String("MyVocabulary"),
   303  //						},
   304  //					},
   305  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   306  //						Type: pulumi.String("KinesisDataStreamSink"),
   307  //						KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{
   308  //							InsightsTarget: pulumi.Any(example.Arn),
   309  //						},
   310  //					},
   311  //				},
   312  //			})
   313  //			if err != nil {
   314  //				return err
   315  //			}
   316  //			return nil
   317  //		})
   318  //	}
   319  //
   320  // ```
   321  // <!--End PulumiCodeChooser -->
   322  //
   323  // ### Voice analytics processor usage
   324  //
   325  // <!--Start PulumiCodeChooser -->
   326  // ```go
   327  // package main
   328  //
   329  // import (
   330  //
   331  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
   332  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   333  //
   334  // )
   335  //
   336  //	func main() {
   337  //		pulumi.Run(func(ctx *pulumi.Context) error {
   338  //			_, err := chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
   339  //				Name:                  pulumi.String("MyVoiceAnalyticsConfiguration"),
   340  //				ResourceAccessRoleArn: pulumi.Any(example.Arn),
   341  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
   342  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   343  //						Type: pulumi.String("VoiceAnalyticsProcessor"),
   344  //						VoiceAnalyticsProcessorConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs{
   345  //							SpeakerSearchStatus:     pulumi.String("Enabled"),
   346  //							VoiceToneAnalysisStatus: pulumi.String("Enabled"),
   347  //						},
   348  //					},
   349  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   350  //						Type: pulumi.String("LambdaFunctionSink"),
   351  //						LambdaFunctionSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs{
   352  //							InsightsTarget: pulumi.String("arn:aws:lambda:us-west-2:1111111111:function:MyFunction"),
   353  //						},
   354  //					},
   355  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   356  //						Type: pulumi.String("SnsTopicSink"),
   357  //						SnsTopicSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs{
   358  //							InsightsTarget: pulumi.String("arn:aws:sns:us-west-2:1111111111:topic/MyTopic"),
   359  //						},
   360  //					},
   361  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   362  //						Type: pulumi.String("SqsQueueSink"),
   363  //						SqsQueueSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs{
   364  //							InsightsTarget: pulumi.String("arn:aws:sqs:us-west-2:1111111111:queue/MyQueue"),
   365  //						},
   366  //					},
   367  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   368  //						Type: pulumi.String("KinesisDataStreamSink"),
   369  //						KinesisDataStreamSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs{
   370  //							InsightsTarget: pulumi.Any(test.Arn),
   371  //						},
   372  //					},
   373  //				},
   374  //			})
   375  //			if err != nil {
   376  //				return err
   377  //			}
   378  //			return nil
   379  //		})
   380  //	}
   381  //
   382  // ```
   383  // <!--End PulumiCodeChooser -->
   384  //
   385  // ### S3 Recording sink usage
   386  //
   387  // <!--Start PulumiCodeChooser -->
   388  // ```go
   389  // package main
   390  //
   391  // import (
   392  //
   393  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/chimesdkmediapipelines"
   394  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   395  //
   396  // )
   397  //
   398  //	func main() {
   399  //		pulumi.Run(func(ctx *pulumi.Context) error {
   400  //			_, err := chimesdkmediapipelines.NewMediaInsightsPipelineConfiguration(ctx, "my_configuration", &chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs{
   401  //				Name:                  pulumi.String("MyS3RecordingConfiguration"),
   402  //				ResourceAccessRoleArn: pulumi.Any(example.Arn),
   403  //				Elements: chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArray{
   404  //					&chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementArgs{
   405  //						Type: pulumi.String("S3RecordingSink"),
   406  //						S3RecordingSinkConfiguration: &chimesdkmediapipelines.MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationArgs{
   407  //							Destination: pulumi.String("arn:aws:s3:::MyBucket"),
   408  //						},
   409  //					},
   410  //				},
   411  //			})
   412  //			if err != nil {
   413  //				return err
   414  //			}
   415  //			return nil
   416  //		})
   417  //	}
   418  //
   419  // ```
   420  // <!--End PulumiCodeChooser -->
   421  //
   422  // ## Import
   423  //
   424  // Using `pulumi import`, import Chime SDK Media Pipelines Media Insights Pipeline Configuration using the `id`. For example:
   425  //
   426  // ```sh
   427  // $ pulumi import aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration example abcdef123456
   428  // ```
   429  type MediaInsightsPipelineConfiguration struct {
   430  	pulumi.CustomResourceState
   431  
   432  	// ARN of the Media Insights Pipeline Configuration.
   433  	Arn pulumi.StringOutput `pulumi:"arn"`
   434  	// Collection of processors and sinks to transform media and deliver data.
   435  	Elements MediaInsightsPipelineConfigurationElementArrayOutput `pulumi:"elements"`
   436  	// Configuration name.
   437  	Name pulumi.StringOutput `pulumi:"name"`
   438  	// Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   439  	RealTimeAlertConfiguration MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrOutput `pulumi:"realTimeAlertConfiguration"`
   440  	// ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   441  	ResourceAccessRoleArn pulumi.StringOutput `pulumi:"resourceAccessRoleArn"`
   442  	// Key-value map of tags for the resource.
   443  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   444  	// Deprecated: Please use `tags` instead.
   445  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   446  }
   447  
   448  // NewMediaInsightsPipelineConfiguration registers a new resource with the given unique name, arguments, and options.
   449  func NewMediaInsightsPipelineConfiguration(ctx *pulumi.Context,
   450  	name string, args *MediaInsightsPipelineConfigurationArgs, opts ...pulumi.ResourceOption) (*MediaInsightsPipelineConfiguration, error) {
   451  	if args == nil {
   452  		return nil, errors.New("missing one or more required arguments")
   453  	}
   454  
   455  	if args.Elements == nil {
   456  		return nil, errors.New("invalid value for required argument 'Elements'")
   457  	}
   458  	if args.ResourceAccessRoleArn == nil {
   459  		return nil, errors.New("invalid value for required argument 'ResourceAccessRoleArn'")
   460  	}
   461  	opts = internal.PkgResourceDefaultOpts(opts)
   462  	var resource MediaInsightsPipelineConfiguration
   463  	err := ctx.RegisterResource("aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration", name, args, &resource, opts...)
   464  	if err != nil {
   465  		return nil, err
   466  	}
   467  	return &resource, nil
   468  }
   469  
   470  // GetMediaInsightsPipelineConfiguration gets an existing MediaInsightsPipelineConfiguration resource's state with the given name, ID, and optional
   471  // state properties that are used to uniquely qualify the lookup (nil if not required).
   472  func GetMediaInsightsPipelineConfiguration(ctx *pulumi.Context,
   473  	name string, id pulumi.IDInput, state *MediaInsightsPipelineConfigurationState, opts ...pulumi.ResourceOption) (*MediaInsightsPipelineConfiguration, error) {
   474  	var resource MediaInsightsPipelineConfiguration
   475  	err := ctx.ReadResource("aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration", name, id, state, &resource, opts...)
   476  	if err != nil {
   477  		return nil, err
   478  	}
   479  	return &resource, nil
   480  }
   481  
   482  // Input properties used for looking up and filtering MediaInsightsPipelineConfiguration resources.
   483  type mediaInsightsPipelineConfigurationState struct {
   484  	// ARN of the Media Insights Pipeline Configuration.
   485  	Arn *string `pulumi:"arn"`
   486  	// Collection of processors and sinks to transform media and deliver data.
   487  	Elements []MediaInsightsPipelineConfigurationElement `pulumi:"elements"`
   488  	// Configuration name.
   489  	Name *string `pulumi:"name"`
   490  	// Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   491  	RealTimeAlertConfiguration *MediaInsightsPipelineConfigurationRealTimeAlertConfiguration `pulumi:"realTimeAlertConfiguration"`
   492  	// ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   493  	ResourceAccessRoleArn *string `pulumi:"resourceAccessRoleArn"`
   494  	// Key-value map of tags for the resource.
   495  	Tags map[string]string `pulumi:"tags"`
   496  	// Deprecated: Please use `tags` instead.
   497  	TagsAll map[string]string `pulumi:"tagsAll"`
   498  }
   499  
   500  type MediaInsightsPipelineConfigurationState struct {
   501  	// ARN of the Media Insights Pipeline Configuration.
   502  	Arn pulumi.StringPtrInput
   503  	// Collection of processors and sinks to transform media and deliver data.
   504  	Elements MediaInsightsPipelineConfigurationElementArrayInput
   505  	// Configuration name.
   506  	Name pulumi.StringPtrInput
   507  	// Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   508  	RealTimeAlertConfiguration MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrInput
   509  	// ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   510  	ResourceAccessRoleArn pulumi.StringPtrInput
   511  	// Key-value map of tags for the resource.
   512  	Tags pulumi.StringMapInput
   513  	// Deprecated: Please use `tags` instead.
   514  	TagsAll pulumi.StringMapInput
   515  }
   516  
   517  func (MediaInsightsPipelineConfigurationState) ElementType() reflect.Type {
   518  	return reflect.TypeOf((*mediaInsightsPipelineConfigurationState)(nil)).Elem()
   519  }
   520  
   521  type mediaInsightsPipelineConfigurationArgs struct {
   522  	// Collection of processors and sinks to transform media and deliver data.
   523  	Elements []MediaInsightsPipelineConfigurationElement `pulumi:"elements"`
   524  	// Configuration name.
   525  	Name *string `pulumi:"name"`
   526  	// Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   527  	RealTimeAlertConfiguration *MediaInsightsPipelineConfigurationRealTimeAlertConfiguration `pulumi:"realTimeAlertConfiguration"`
   528  	// ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   529  	ResourceAccessRoleArn string `pulumi:"resourceAccessRoleArn"`
   530  	// Key-value map of tags for the resource.
   531  	Tags map[string]string `pulumi:"tags"`
   532  }
   533  
   534  // The set of arguments for constructing a MediaInsightsPipelineConfiguration resource.
   535  type MediaInsightsPipelineConfigurationArgs struct {
   536  	// Collection of processors and sinks to transform media and deliver data.
   537  	Elements MediaInsightsPipelineConfigurationElementArrayInput
   538  	// Configuration name.
   539  	Name pulumi.StringPtrInput
   540  	// Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   541  	RealTimeAlertConfiguration MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrInput
   542  	// ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   543  	ResourceAccessRoleArn pulumi.StringInput
   544  	// Key-value map of tags for the resource.
   545  	Tags pulumi.StringMapInput
   546  }
   547  
   548  func (MediaInsightsPipelineConfigurationArgs) ElementType() reflect.Type {
   549  	return reflect.TypeOf((*mediaInsightsPipelineConfigurationArgs)(nil)).Elem()
   550  }
   551  
   552  type MediaInsightsPipelineConfigurationInput interface {
   553  	pulumi.Input
   554  
   555  	ToMediaInsightsPipelineConfigurationOutput() MediaInsightsPipelineConfigurationOutput
   556  	ToMediaInsightsPipelineConfigurationOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationOutput
   557  }
   558  
   559  func (*MediaInsightsPipelineConfiguration) ElementType() reflect.Type {
   560  	return reflect.TypeOf((**MediaInsightsPipelineConfiguration)(nil)).Elem()
   561  }
   562  
   563  func (i *MediaInsightsPipelineConfiguration) ToMediaInsightsPipelineConfigurationOutput() MediaInsightsPipelineConfigurationOutput {
   564  	return i.ToMediaInsightsPipelineConfigurationOutputWithContext(context.Background())
   565  }
   566  
   567  func (i *MediaInsightsPipelineConfiguration) ToMediaInsightsPipelineConfigurationOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationOutput {
   568  	return pulumi.ToOutputWithContext(ctx, i).(MediaInsightsPipelineConfigurationOutput)
   569  }
   570  
   571  // MediaInsightsPipelineConfigurationArrayInput is an input type that accepts MediaInsightsPipelineConfigurationArray and MediaInsightsPipelineConfigurationArrayOutput values.
   572  // You can construct a concrete instance of `MediaInsightsPipelineConfigurationArrayInput` via:
   573  //
   574  //	MediaInsightsPipelineConfigurationArray{ MediaInsightsPipelineConfigurationArgs{...} }
   575  type MediaInsightsPipelineConfigurationArrayInput interface {
   576  	pulumi.Input
   577  
   578  	ToMediaInsightsPipelineConfigurationArrayOutput() MediaInsightsPipelineConfigurationArrayOutput
   579  	ToMediaInsightsPipelineConfigurationArrayOutputWithContext(context.Context) MediaInsightsPipelineConfigurationArrayOutput
   580  }
   581  
   582  type MediaInsightsPipelineConfigurationArray []MediaInsightsPipelineConfigurationInput
   583  
   584  func (MediaInsightsPipelineConfigurationArray) ElementType() reflect.Type {
   585  	return reflect.TypeOf((*[]*MediaInsightsPipelineConfiguration)(nil)).Elem()
   586  }
   587  
   588  func (i MediaInsightsPipelineConfigurationArray) ToMediaInsightsPipelineConfigurationArrayOutput() MediaInsightsPipelineConfigurationArrayOutput {
   589  	return i.ToMediaInsightsPipelineConfigurationArrayOutputWithContext(context.Background())
   590  }
   591  
   592  func (i MediaInsightsPipelineConfigurationArray) ToMediaInsightsPipelineConfigurationArrayOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationArrayOutput {
   593  	return pulumi.ToOutputWithContext(ctx, i).(MediaInsightsPipelineConfigurationArrayOutput)
   594  }
   595  
   596  // MediaInsightsPipelineConfigurationMapInput is an input type that accepts MediaInsightsPipelineConfigurationMap and MediaInsightsPipelineConfigurationMapOutput values.
   597  // You can construct a concrete instance of `MediaInsightsPipelineConfigurationMapInput` via:
   598  //
   599  //	MediaInsightsPipelineConfigurationMap{ "key": MediaInsightsPipelineConfigurationArgs{...} }
   600  type MediaInsightsPipelineConfigurationMapInput interface {
   601  	pulumi.Input
   602  
   603  	ToMediaInsightsPipelineConfigurationMapOutput() MediaInsightsPipelineConfigurationMapOutput
   604  	ToMediaInsightsPipelineConfigurationMapOutputWithContext(context.Context) MediaInsightsPipelineConfigurationMapOutput
   605  }
   606  
   607  type MediaInsightsPipelineConfigurationMap map[string]MediaInsightsPipelineConfigurationInput
   608  
   609  func (MediaInsightsPipelineConfigurationMap) ElementType() reflect.Type {
   610  	return reflect.TypeOf((*map[string]*MediaInsightsPipelineConfiguration)(nil)).Elem()
   611  }
   612  
   613  func (i MediaInsightsPipelineConfigurationMap) ToMediaInsightsPipelineConfigurationMapOutput() MediaInsightsPipelineConfigurationMapOutput {
   614  	return i.ToMediaInsightsPipelineConfigurationMapOutputWithContext(context.Background())
   615  }
   616  
   617  func (i MediaInsightsPipelineConfigurationMap) ToMediaInsightsPipelineConfigurationMapOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationMapOutput {
   618  	return pulumi.ToOutputWithContext(ctx, i).(MediaInsightsPipelineConfigurationMapOutput)
   619  }
   620  
   621  type MediaInsightsPipelineConfigurationOutput struct{ *pulumi.OutputState }
   622  
   623  func (MediaInsightsPipelineConfigurationOutput) ElementType() reflect.Type {
   624  	return reflect.TypeOf((**MediaInsightsPipelineConfiguration)(nil)).Elem()
   625  }
   626  
   627  func (o MediaInsightsPipelineConfigurationOutput) ToMediaInsightsPipelineConfigurationOutput() MediaInsightsPipelineConfigurationOutput {
   628  	return o
   629  }
   630  
   631  func (o MediaInsightsPipelineConfigurationOutput) ToMediaInsightsPipelineConfigurationOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationOutput {
   632  	return o
   633  }
   634  
   635  // ARN of the Media Insights Pipeline Configuration.
   636  func (o MediaInsightsPipelineConfigurationOutput) Arn() pulumi.StringOutput {
   637  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   638  }
   639  
   640  // Collection of processors and sinks to transform media and deliver data.
   641  func (o MediaInsightsPipelineConfigurationOutput) Elements() MediaInsightsPipelineConfigurationElementArrayOutput {
   642  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) MediaInsightsPipelineConfigurationElementArrayOutput {
   643  		return v.Elements
   644  	}).(MediaInsightsPipelineConfigurationElementArrayOutput)
   645  }
   646  
   647  // Configuration name.
   648  func (o MediaInsightsPipelineConfigurationOutput) Name() pulumi.StringOutput {
   649  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   650  }
   651  
   652  // Configuration for real-time alert rules to send EventBridge notifications when certain conditions are met.
   653  func (o MediaInsightsPipelineConfigurationOutput) RealTimeAlertConfiguration() MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrOutput {
   654  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrOutput {
   655  		return v.RealTimeAlertConfiguration
   656  	}).(MediaInsightsPipelineConfigurationRealTimeAlertConfigurationPtrOutput)
   657  }
   658  
   659  // ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
   660  func (o MediaInsightsPipelineConfigurationOutput) ResourceAccessRoleArn() pulumi.StringOutput {
   661  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) pulumi.StringOutput { return v.ResourceAccessRoleArn }).(pulumi.StringOutput)
   662  }
   663  
   664  // Key-value map of tags for the resource.
   665  func (o MediaInsightsPipelineConfigurationOutput) Tags() pulumi.StringMapOutput {
   666  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   667  }
   668  
   669  // Deprecated: Please use `tags` instead.
   670  func (o MediaInsightsPipelineConfigurationOutput) TagsAll() pulumi.StringMapOutput {
   671  	return o.ApplyT(func(v *MediaInsightsPipelineConfiguration) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   672  }
   673  
   674  type MediaInsightsPipelineConfigurationArrayOutput struct{ *pulumi.OutputState }
   675  
   676  func (MediaInsightsPipelineConfigurationArrayOutput) ElementType() reflect.Type {
   677  	return reflect.TypeOf((*[]*MediaInsightsPipelineConfiguration)(nil)).Elem()
   678  }
   679  
   680  func (o MediaInsightsPipelineConfigurationArrayOutput) ToMediaInsightsPipelineConfigurationArrayOutput() MediaInsightsPipelineConfigurationArrayOutput {
   681  	return o
   682  }
   683  
   684  func (o MediaInsightsPipelineConfigurationArrayOutput) ToMediaInsightsPipelineConfigurationArrayOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationArrayOutput {
   685  	return o
   686  }
   687  
   688  func (o MediaInsightsPipelineConfigurationArrayOutput) Index(i pulumi.IntInput) MediaInsightsPipelineConfigurationOutput {
   689  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MediaInsightsPipelineConfiguration {
   690  		return vs[0].([]*MediaInsightsPipelineConfiguration)[vs[1].(int)]
   691  	}).(MediaInsightsPipelineConfigurationOutput)
   692  }
   693  
   694  type MediaInsightsPipelineConfigurationMapOutput struct{ *pulumi.OutputState }
   695  
   696  func (MediaInsightsPipelineConfigurationMapOutput) ElementType() reflect.Type {
   697  	return reflect.TypeOf((*map[string]*MediaInsightsPipelineConfiguration)(nil)).Elem()
   698  }
   699  
   700  func (o MediaInsightsPipelineConfigurationMapOutput) ToMediaInsightsPipelineConfigurationMapOutput() MediaInsightsPipelineConfigurationMapOutput {
   701  	return o
   702  }
   703  
   704  func (o MediaInsightsPipelineConfigurationMapOutput) ToMediaInsightsPipelineConfigurationMapOutputWithContext(ctx context.Context) MediaInsightsPipelineConfigurationMapOutput {
   705  	return o
   706  }
   707  
   708  func (o MediaInsightsPipelineConfigurationMapOutput) MapIndex(k pulumi.StringInput) MediaInsightsPipelineConfigurationOutput {
   709  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MediaInsightsPipelineConfiguration {
   710  		return vs[0].(map[string]*MediaInsightsPipelineConfiguration)[vs[1].(string)]
   711  	}).(MediaInsightsPipelineConfigurationOutput)
   712  }
   713  
   714  func init() {
   715  	pulumi.RegisterInputType(reflect.TypeOf((*MediaInsightsPipelineConfigurationInput)(nil)).Elem(), &MediaInsightsPipelineConfiguration{})
   716  	pulumi.RegisterInputType(reflect.TypeOf((*MediaInsightsPipelineConfigurationArrayInput)(nil)).Elem(), MediaInsightsPipelineConfigurationArray{})
   717  	pulumi.RegisterInputType(reflect.TypeOf((*MediaInsightsPipelineConfigurationMapInput)(nil)).Elem(), MediaInsightsPipelineConfigurationMap{})
   718  	pulumi.RegisterOutputType(MediaInsightsPipelineConfigurationOutput{})
   719  	pulumi.RegisterOutputType(MediaInsightsPipelineConfigurationArrayOutput{})
   720  	pulumi.RegisterOutputType(MediaInsightsPipelineConfigurationMapOutput{})
   721  }