Class MediaInsightsPipelineConfiguration


  • public class MediaInsightsPipelineConfiguration
    extends com.pulumi.resources.CustomResource
    Resource for managing an AWS Chime SDK Media Pipelines Media Insights Pipeline Configuration. Consult the [Call analytics developer guide](https://docs.aws.amazon.com/chime-sdk/latest/dg/call-analytics.html) for more detailed information about usage. ## Example Usage ### Basic Usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.kinesis.Stream;
     import com.pulumi.aws.kinesis.StreamArgs;
     import com.pulumi.aws.kinesis.inputs.StreamStreamModeDetailsArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Stream("example", StreamArgs.builder()
                 .streamModeDetails(StreamStreamModeDetailsArgs.builder()
                     .streamMode("ON_DEMAND")
                     .build())
                 .name("example")
                 .build());
     
             final var mediaPipelinesAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("mediapipelines.chime.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             var callAnalyticsRole = new Role("callAnalyticsRole", RoleArgs.builder()
                 .name("CallAnalyticsRole")
                 .assumeRolePolicy(mediaPipelinesAssumeRole.json())
                 .build());
     
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .elements(            
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .amazonTranscribeCallAnalyticsProcessorConfiguration(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.builder()
                             .languageCode("en-US")
                             .build())
                         .type("AmazonTranscribeCallAnalyticsProcessor")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .kinesisDataStreamSinkConfiguration(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.builder()
                             .insightsTarget(example.arn())
                             .build())
                         .type("KinesisDataStreamSink")
                         .build())
                 .name("MyBasicConfiguration")
                 .resourceAccessRoleArn(callAnalyticsRole.arn())
                 .tags(Map.ofEntries(
                     Map.entry("Key1", "Value1"),
                     Map.entry("Key2", "Value2")
                 ))
                 .build());
     
         }
     }
     
     
    - 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. ### Transcribe Call Analytics processor usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.iam.Role;
     import com.pulumi.aws.iam.RoleArgs;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             final var transcribeAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .type("Service")
                         .identifiers("transcribe.amazonaws.com")
                         .build())
                     .effect("Allow")
                     .actions("sts:AssumeRole")
                     .build())
                 .build());
     
             var postCallRole = new Role("postCallRole", RoleArgs.builder()
                 .name("PostCallAccessRole")
                 .assumeRolePolicy(transcribeAssumeRole.json())
                 .build());
     
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .elements(            
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .amazonTranscribeCallAnalyticsProcessorConfiguration(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.builder()
                             .postCallAnalyticsSettings(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationPostCallAnalyticsSettingsArgs.builder()
                                 .contentRedactionOutput("redacted")
                                 .dataAccessRoleArn(postCallRole.arn())
                                 .outputEncryptionKmsKeyId("MyKmsKeyId")
                                 .outputLocation("s3://MyBucket")
                                 .build())
                             .callAnalyticsStreamCategories(                        
                                 "category_1",
                                 "category_2")
                             .contentRedactionType("PII")
                             .enablePartialResultsStabilization(true)
                             .filterPartialResults(true)
                             .languageCode("en-US")
                             .languageModelName("MyLanguageModel")
                             .partialResultsStability("high")
                             .piiEntityTypes("ADDRESS,BANK_ACCOUNT_NUMBER")
                             .vocabularyFilterMethod("mask")
                             .vocabularyFilterName("MyVocabularyFilter")
                             .vocabularyName("MyVocabulary")
                             .build())
                         .type("AmazonTranscribeCallAnalyticsProcessor")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .kinesisDataStreamSinkConfiguration(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.builder()
                             .insightsTarget(example.arn())
                             .build())
                         .type("KinesisDataStreamSink")
                         .build())
                 .name("MyCallAnalyticsConfiguration")
                 .resourceAccessRoleArn(exampleAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ### Real time alerts usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .realTimeAlertConfiguration(MediaInsightsPipelineConfigurationRealTimeAlertConfigurationArgs.builder()
                     .rules(                
                         MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs.builder()
                             .issueDetectionConfiguration(MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleIssueDetectionConfigurationArgs.builder()
                                 .ruleName("MyIssueDetectionRule")
                                 .build())
                             .type("IssueDetection")
                             .build(),
                         MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs.builder()
                             .keywordMatchConfiguration(MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleKeywordMatchConfigurationArgs.builder()
                                 .keywords(                            
                                     "keyword1",
                                     "keyword2")
                                 .negate(false)
                                 .ruleName("MyKeywordMatchRule")
                                 .build())
                             .type("KeywordMatch")
                             .build(),
                         MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleArgs.builder()
                             .sentimentConfiguration(MediaInsightsPipelineConfigurationRealTimeAlertConfigurationRuleSentimentConfigurationArgs.builder()
                                 .ruleName("MySentimentRule")
                                 .sentimentType("NEGATIVE")
                                 .timePeriod(60)
                                 .build())
                             .type("Sentiment")
                             .build())
                     .disabled(false)
                     .build())
                 .elements(            
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .amazonTranscribeCallAnalyticsProcessorConfiguration(MediaInsightsPipelineConfigurationElementAmazonTranscribeCallAnalyticsProcessorConfigurationArgs.builder()
                             .languageCode("en-US")
                             .build())
                         .type("AmazonTranscribeCallAnalyticsProcessor")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .kinesisDataStreamSinkConfiguration(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.builder()
                             .insightsTarget(example.arn())
                             .build())
                         .type("KinesisDataStreamSink")
                         .build())
                 .name("MyRealTimeAlertConfiguration")
                 .resourceAccessRoleArn(callAnalyticsRole.arn())
                 .build());
     
         }
     }
     
     
    ### Transcribe processor usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .elements(            
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .amazonTranscribeProcessorConfiguration(MediaInsightsPipelineConfigurationElementAmazonTranscribeProcessorConfigurationArgs.builder()
                             .contentIdentificationType("PII")
                             .enablePartialResultsStabilization(true)
                             .filterPartialResults(true)
                             .languageCode("en-US")
                             .languageModelName("MyLanguageModel")
                             .partialResultsStability("high")
                             .piiEntityTypes("ADDRESS,BANK_ACCOUNT_NUMBER")
                             .showSpeakerLabel(true)
                             .vocabularyFilterMethod("mask")
                             .vocabularyFilterName("MyVocabularyFilter")
                             .vocabularyName("MyVocabulary")
                             .build())
                         .type("AmazonTranscribeProcessor")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .kinesisDataStreamSinkConfiguration(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.builder()
                             .insightsTarget(example.arn())
                             .build())
                         .type("KinesisDataStreamSink")
                         .build())
                 .name("MyTranscribeConfiguration")
                 .resourceAccessRoleArn(exampleAwsIamRole.arn())
                 .build());
     
         }
     }
     
     
    ### Voice analytics processor usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .elements(            
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .voiceAnalyticsProcessorConfiguration(MediaInsightsPipelineConfigurationElementVoiceAnalyticsProcessorConfigurationArgs.builder()
                             .speakerSearchStatus("Enabled")
                             .voiceToneAnalysisStatus("Enabled")
                             .build())
                         .type("VoiceAnalyticsProcessor")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .lambdaFunctionSinkConfiguration(MediaInsightsPipelineConfigurationElementLambdaFunctionSinkConfigurationArgs.builder()
                             .insightsTarget("arn:aws:lambda:us-west-2:1111111111:function:MyFunction")
                             .build())
                         .type("LambdaFunctionSink")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .snsTopicSinkConfiguration(MediaInsightsPipelineConfigurationElementSnsTopicSinkConfigurationArgs.builder()
                             .insightsTarget("arn:aws:sns:us-west-2:1111111111:topic/MyTopic")
                             .build())
                         .type("SnsTopicSink")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .sqsQueueSinkConfiguration(MediaInsightsPipelineConfigurationElementSqsQueueSinkConfigurationArgs.builder()
                             .insightsTarget("arn:aws:sqs:us-west-2:1111111111:queue/MyQueue")
                             .build())
                         .type("SqsQueueSink")
                         .build(),
                     MediaInsightsPipelineConfigurationElementArgs.builder()
                         .kinesisDataStreamSinkConfiguration(MediaInsightsPipelineConfigurationElementKinesisDataStreamSinkConfigurationArgs.builder()
                             .insightsTarget(test.arn())
                             .build())
                         .type("KinesisDataStreamSink")
                         .build())
                 .name("MyVoiceAnalyticsConfiguration")
                 .resourceAccessRoleArn(example.arn())
                 .build());
     
         }
     }
     
     
    ### S3 Recording sink usage
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfiguration;
     import com.pulumi.aws.chimesdkmediapipelines.MediaInsightsPipelineConfigurationArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementArgs;
     import com.pulumi.aws.chimesdkmediapipelines.inputs.MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var myConfiguration = new MediaInsightsPipelineConfiguration("myConfiguration", MediaInsightsPipelineConfigurationArgs.builder()
                 .elements(MediaInsightsPipelineConfigurationElementArgs.builder()
                     .s3RecordingSinkConfiguration(MediaInsightsPipelineConfigurationElementS3RecordingSinkConfigurationArgs.builder()
                         .destination("arn:aws:s3:::MyBucket")
                         .build())
                     .type("S3RecordingSink")
                     .build())
                 .name("MyS3RecordingConfiguration")
                 .resourceAccessRoleArn(example.arn())
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `arn` (String) ARN of the Chime SDK media insights pipeline configuration. Using `pulumi import`, import Chime SDK Media Pipelines Media Insights Pipeline Configuration using the `id`. For example: ```sh $ pulumi import aws:chimesdkmediapipelines/mediaInsightsPipelineConfiguration:MediaInsightsPipelineConfiguration example abcdef123456 ```
    • Constructor Detail

      • MediaInsightsPipelineConfiguration

        public MediaInsightsPipelineConfiguration​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • MediaInsightsPipelineConfiguration

        public MediaInsightsPipelineConfiguration​(java.lang.String name,
                                                  MediaInsightsPipelineConfigurationArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • MediaInsightsPipelineConfiguration

        public MediaInsightsPipelineConfiguration​(java.lang.String name,
                                                  MediaInsightsPipelineConfigurationArgs args,
                                                  @Nullable
                                                  com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the Media Insights Pipeline Configuration.
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        Configuration name.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • resourceAccessRoleArn

        public com.pulumi.core.Output<java.lang.String> resourceAccessRoleArn()
        Returns:
        ARN of IAM Role used by service to invoke processors and sinks specified by configuration elements.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of tags for the resource.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
      • get

        public static MediaInsightsPipelineConfiguration get​(java.lang.String name,
                                                             com.pulumi.core.Output<java.lang.String> id,
                                                             @Nullable
                                                             MediaInsightsPipelineConfigurationState state,
                                                             @Nullable
                                                             com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.