aws_sdk_chimesdkmediapipelines/types/
_media_insights_pipeline_configuration_element.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>An element in a media insights pipeline configuration.</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct MediaInsightsPipelineConfigurationElement {
7    /// <p>The element type.</p>
8    pub r#type: crate::types::MediaInsightsPipelineConfigurationElementType,
9    /// <p>The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.</p>
10    pub amazon_transcribe_call_analytics_processor_configuration:
11        ::std::option::Option<crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration>,
12    /// <p>The transcription processor configuration settings in a media insights pipeline configuration element.</p>
13    pub amazon_transcribe_processor_configuration: ::std::option::Option<crate::types::AmazonTranscribeProcessorConfiguration>,
14    /// <p>The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.</p>
15    pub kinesis_data_stream_sink_configuration: ::std::option::Option<crate::types::KinesisDataStreamSinkConfiguration>,
16    /// <p>The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.</p>
17    pub s3_recording_sink_configuration: ::std::option::Option<crate::types::S3RecordingSinkConfiguration>,
18    /// <p>The voice analytics configuration settings in a media insights pipeline configuration element.</p>
19    pub voice_analytics_processor_configuration: ::std::option::Option<crate::types::VoiceAnalyticsProcessorConfiguration>,
20    /// <p>The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.</p>
21    pub lambda_function_sink_configuration: ::std::option::Option<crate::types::LambdaFunctionSinkConfiguration>,
22    /// <p>The configuration settings for an SQS queue sink in a media insights pipeline configuration element.</p>
23    pub sqs_queue_sink_configuration: ::std::option::Option<crate::types::SqsQueueSinkConfiguration>,
24    /// <p>The configuration settings for an SNS topic sink in a media insights pipeline configuration element.</p>
25    pub sns_topic_sink_configuration: ::std::option::Option<crate::types::SnsTopicSinkConfiguration>,
26    /// <p>The configuration settings for voice enhancement sink in a media insights pipeline configuration element.</p>
27    pub voice_enhancement_sink_configuration: ::std::option::Option<crate::types::VoiceEnhancementSinkConfiguration>,
28}
29impl MediaInsightsPipelineConfigurationElement {
30    /// <p>The element type.</p>
31    pub fn r#type(&self) -> &crate::types::MediaInsightsPipelineConfigurationElementType {
32        &self.r#type
33    }
34    /// <p>The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.</p>
35    pub fn amazon_transcribe_call_analytics_processor_configuration(
36        &self,
37    ) -> ::std::option::Option<&crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration> {
38        self.amazon_transcribe_call_analytics_processor_configuration.as_ref()
39    }
40    /// <p>The transcription processor configuration settings in a media insights pipeline configuration element.</p>
41    pub fn amazon_transcribe_processor_configuration(&self) -> ::std::option::Option<&crate::types::AmazonTranscribeProcessorConfiguration> {
42        self.amazon_transcribe_processor_configuration.as_ref()
43    }
44    /// <p>The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.</p>
45    pub fn kinesis_data_stream_sink_configuration(&self) -> ::std::option::Option<&crate::types::KinesisDataStreamSinkConfiguration> {
46        self.kinesis_data_stream_sink_configuration.as_ref()
47    }
48    /// <p>The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.</p>
49    pub fn s3_recording_sink_configuration(&self) -> ::std::option::Option<&crate::types::S3RecordingSinkConfiguration> {
50        self.s3_recording_sink_configuration.as_ref()
51    }
52    /// <p>The voice analytics configuration settings in a media insights pipeline configuration element.</p>
53    pub fn voice_analytics_processor_configuration(&self) -> ::std::option::Option<&crate::types::VoiceAnalyticsProcessorConfiguration> {
54        self.voice_analytics_processor_configuration.as_ref()
55    }
56    /// <p>The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.</p>
57    pub fn lambda_function_sink_configuration(&self) -> ::std::option::Option<&crate::types::LambdaFunctionSinkConfiguration> {
58        self.lambda_function_sink_configuration.as_ref()
59    }
60    /// <p>The configuration settings for an SQS queue sink in a media insights pipeline configuration element.</p>
61    pub fn sqs_queue_sink_configuration(&self) -> ::std::option::Option<&crate::types::SqsQueueSinkConfiguration> {
62        self.sqs_queue_sink_configuration.as_ref()
63    }
64    /// <p>The configuration settings for an SNS topic sink in a media insights pipeline configuration element.</p>
65    pub fn sns_topic_sink_configuration(&self) -> ::std::option::Option<&crate::types::SnsTopicSinkConfiguration> {
66        self.sns_topic_sink_configuration.as_ref()
67    }
68    /// <p>The configuration settings for voice enhancement sink in a media insights pipeline configuration element.</p>
69    pub fn voice_enhancement_sink_configuration(&self) -> ::std::option::Option<&crate::types::VoiceEnhancementSinkConfiguration> {
70        self.voice_enhancement_sink_configuration.as_ref()
71    }
72}
73impl MediaInsightsPipelineConfigurationElement {
74    /// Creates a new builder-style object to manufacture [`MediaInsightsPipelineConfigurationElement`](crate::types::MediaInsightsPipelineConfigurationElement).
75    pub fn builder() -> crate::types::builders::MediaInsightsPipelineConfigurationElementBuilder {
76        crate::types::builders::MediaInsightsPipelineConfigurationElementBuilder::default()
77    }
78}
79
80/// A builder for [`MediaInsightsPipelineConfigurationElement`](crate::types::MediaInsightsPipelineConfigurationElement).
81#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
82#[non_exhaustive]
83pub struct MediaInsightsPipelineConfigurationElementBuilder {
84    pub(crate) r#type: ::std::option::Option<crate::types::MediaInsightsPipelineConfigurationElementType>,
85    pub(crate) amazon_transcribe_call_analytics_processor_configuration:
86        ::std::option::Option<crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration>,
87    pub(crate) amazon_transcribe_processor_configuration: ::std::option::Option<crate::types::AmazonTranscribeProcessorConfiguration>,
88    pub(crate) kinesis_data_stream_sink_configuration: ::std::option::Option<crate::types::KinesisDataStreamSinkConfiguration>,
89    pub(crate) s3_recording_sink_configuration: ::std::option::Option<crate::types::S3RecordingSinkConfiguration>,
90    pub(crate) voice_analytics_processor_configuration: ::std::option::Option<crate::types::VoiceAnalyticsProcessorConfiguration>,
91    pub(crate) lambda_function_sink_configuration: ::std::option::Option<crate::types::LambdaFunctionSinkConfiguration>,
92    pub(crate) sqs_queue_sink_configuration: ::std::option::Option<crate::types::SqsQueueSinkConfiguration>,
93    pub(crate) sns_topic_sink_configuration: ::std::option::Option<crate::types::SnsTopicSinkConfiguration>,
94    pub(crate) voice_enhancement_sink_configuration: ::std::option::Option<crate::types::VoiceEnhancementSinkConfiguration>,
95}
96impl MediaInsightsPipelineConfigurationElementBuilder {
97    /// <p>The element type.</p>
98    /// This field is required.
99    pub fn r#type(mut self, input: crate::types::MediaInsightsPipelineConfigurationElementType) -> Self {
100        self.r#type = ::std::option::Option::Some(input);
101        self
102    }
103    /// <p>The element type.</p>
104    pub fn set_type(mut self, input: ::std::option::Option<crate::types::MediaInsightsPipelineConfigurationElementType>) -> Self {
105        self.r#type = input;
106        self
107    }
108    /// <p>The element type.</p>
109    pub fn get_type(&self) -> &::std::option::Option<crate::types::MediaInsightsPipelineConfigurationElementType> {
110        &self.r#type
111    }
112    /// <p>The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.</p>
113    pub fn amazon_transcribe_call_analytics_processor_configuration(
114        mut self,
115        input: crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration,
116    ) -> Self {
117        self.amazon_transcribe_call_analytics_processor_configuration = ::std::option::Option::Some(input);
118        self
119    }
120    /// <p>The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.</p>
121    pub fn set_amazon_transcribe_call_analytics_processor_configuration(
122        mut self,
123        input: ::std::option::Option<crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration>,
124    ) -> Self {
125        self.amazon_transcribe_call_analytics_processor_configuration = input;
126        self
127    }
128    /// <p>The analytics configuration settings for transcribing audio in a media insights pipeline configuration element.</p>
129    pub fn get_amazon_transcribe_call_analytics_processor_configuration(
130        &self,
131    ) -> &::std::option::Option<crate::types::AmazonTranscribeCallAnalyticsProcessorConfiguration> {
132        &self.amazon_transcribe_call_analytics_processor_configuration
133    }
134    /// <p>The transcription processor configuration settings in a media insights pipeline configuration element.</p>
135    pub fn amazon_transcribe_processor_configuration(mut self, input: crate::types::AmazonTranscribeProcessorConfiguration) -> Self {
136        self.amazon_transcribe_processor_configuration = ::std::option::Option::Some(input);
137        self
138    }
139    /// <p>The transcription processor configuration settings in a media insights pipeline configuration element.</p>
140    pub fn set_amazon_transcribe_processor_configuration(
141        mut self,
142        input: ::std::option::Option<crate::types::AmazonTranscribeProcessorConfiguration>,
143    ) -> Self {
144        self.amazon_transcribe_processor_configuration = input;
145        self
146    }
147    /// <p>The transcription processor configuration settings in a media insights pipeline configuration element.</p>
148    pub fn get_amazon_transcribe_processor_configuration(&self) -> &::std::option::Option<crate::types::AmazonTranscribeProcessorConfiguration> {
149        &self.amazon_transcribe_processor_configuration
150    }
151    /// <p>The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.</p>
152    pub fn kinesis_data_stream_sink_configuration(mut self, input: crate::types::KinesisDataStreamSinkConfiguration) -> Self {
153        self.kinesis_data_stream_sink_configuration = ::std::option::Option::Some(input);
154        self
155    }
156    /// <p>The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.</p>
157    pub fn set_kinesis_data_stream_sink_configuration(
158        mut self,
159        input: ::std::option::Option<crate::types::KinesisDataStreamSinkConfiguration>,
160    ) -> Self {
161        self.kinesis_data_stream_sink_configuration = input;
162        self
163    }
164    /// <p>The configuration settings for the Kinesis Data Stream Sink in a media insights pipeline configuration element.</p>
165    pub fn get_kinesis_data_stream_sink_configuration(&self) -> &::std::option::Option<crate::types::KinesisDataStreamSinkConfiguration> {
166        &self.kinesis_data_stream_sink_configuration
167    }
168    /// <p>The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.</p>
169    pub fn s3_recording_sink_configuration(mut self, input: crate::types::S3RecordingSinkConfiguration) -> Self {
170        self.s3_recording_sink_configuration = ::std::option::Option::Some(input);
171        self
172    }
173    /// <p>The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.</p>
174    pub fn set_s3_recording_sink_configuration(mut self, input: ::std::option::Option<crate::types::S3RecordingSinkConfiguration>) -> Self {
175        self.s3_recording_sink_configuration = input;
176        self
177    }
178    /// <p>The configuration settings for the Amazon S3 recording bucket in a media insights pipeline configuration element.</p>
179    pub fn get_s3_recording_sink_configuration(&self) -> &::std::option::Option<crate::types::S3RecordingSinkConfiguration> {
180        &self.s3_recording_sink_configuration
181    }
182    /// <p>The voice analytics configuration settings in a media insights pipeline configuration element.</p>
183    pub fn voice_analytics_processor_configuration(mut self, input: crate::types::VoiceAnalyticsProcessorConfiguration) -> Self {
184        self.voice_analytics_processor_configuration = ::std::option::Option::Some(input);
185        self
186    }
187    /// <p>The voice analytics configuration settings in a media insights pipeline configuration element.</p>
188    pub fn set_voice_analytics_processor_configuration(
189        mut self,
190        input: ::std::option::Option<crate::types::VoiceAnalyticsProcessorConfiguration>,
191    ) -> Self {
192        self.voice_analytics_processor_configuration = input;
193        self
194    }
195    /// <p>The voice analytics configuration settings in a media insights pipeline configuration element.</p>
196    pub fn get_voice_analytics_processor_configuration(&self) -> &::std::option::Option<crate::types::VoiceAnalyticsProcessorConfiguration> {
197        &self.voice_analytics_processor_configuration
198    }
199    /// <p>The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.</p>
200    pub fn lambda_function_sink_configuration(mut self, input: crate::types::LambdaFunctionSinkConfiguration) -> Self {
201        self.lambda_function_sink_configuration = ::std::option::Option::Some(input);
202        self
203    }
204    /// <p>The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.</p>
205    pub fn set_lambda_function_sink_configuration(mut self, input: ::std::option::Option<crate::types::LambdaFunctionSinkConfiguration>) -> Self {
206        self.lambda_function_sink_configuration = input;
207        self
208    }
209    /// <p>The configuration settings for the Amazon Web Services Lambda sink in a media insights pipeline configuration element.</p>
210    pub fn get_lambda_function_sink_configuration(&self) -> &::std::option::Option<crate::types::LambdaFunctionSinkConfiguration> {
211        &self.lambda_function_sink_configuration
212    }
213    /// <p>The configuration settings for an SQS queue sink in a media insights pipeline configuration element.</p>
214    pub fn sqs_queue_sink_configuration(mut self, input: crate::types::SqsQueueSinkConfiguration) -> Self {
215        self.sqs_queue_sink_configuration = ::std::option::Option::Some(input);
216        self
217    }
218    /// <p>The configuration settings for an SQS queue sink in a media insights pipeline configuration element.</p>
219    pub fn set_sqs_queue_sink_configuration(mut self, input: ::std::option::Option<crate::types::SqsQueueSinkConfiguration>) -> Self {
220        self.sqs_queue_sink_configuration = input;
221        self
222    }
223    /// <p>The configuration settings for an SQS queue sink in a media insights pipeline configuration element.</p>
224    pub fn get_sqs_queue_sink_configuration(&self) -> &::std::option::Option<crate::types::SqsQueueSinkConfiguration> {
225        &self.sqs_queue_sink_configuration
226    }
227    /// <p>The configuration settings for an SNS topic sink in a media insights pipeline configuration element.</p>
228    pub fn sns_topic_sink_configuration(mut self, input: crate::types::SnsTopicSinkConfiguration) -> Self {
229        self.sns_topic_sink_configuration = ::std::option::Option::Some(input);
230        self
231    }
232    /// <p>The configuration settings for an SNS topic sink in a media insights pipeline configuration element.</p>
233    pub fn set_sns_topic_sink_configuration(mut self, input: ::std::option::Option<crate::types::SnsTopicSinkConfiguration>) -> Self {
234        self.sns_topic_sink_configuration = input;
235        self
236    }
237    /// <p>The configuration settings for an SNS topic sink in a media insights pipeline configuration element.</p>
238    pub fn get_sns_topic_sink_configuration(&self) -> &::std::option::Option<crate::types::SnsTopicSinkConfiguration> {
239        &self.sns_topic_sink_configuration
240    }
241    /// <p>The configuration settings for voice enhancement sink in a media insights pipeline configuration element.</p>
242    pub fn voice_enhancement_sink_configuration(mut self, input: crate::types::VoiceEnhancementSinkConfiguration) -> Self {
243        self.voice_enhancement_sink_configuration = ::std::option::Option::Some(input);
244        self
245    }
246    /// <p>The configuration settings for voice enhancement sink in a media insights pipeline configuration element.</p>
247    pub fn set_voice_enhancement_sink_configuration(mut self, input: ::std::option::Option<crate::types::VoiceEnhancementSinkConfiguration>) -> Self {
248        self.voice_enhancement_sink_configuration = input;
249        self
250    }
251    /// <p>The configuration settings for voice enhancement sink in a media insights pipeline configuration element.</p>
252    pub fn get_voice_enhancement_sink_configuration(&self) -> &::std::option::Option<crate::types::VoiceEnhancementSinkConfiguration> {
253        &self.voice_enhancement_sink_configuration
254    }
255    /// Consumes the builder and constructs a [`MediaInsightsPipelineConfigurationElement`](crate::types::MediaInsightsPipelineConfigurationElement).
256    /// This method will fail if any of the following fields are not set:
257    /// - [`r#type`](crate::types::builders::MediaInsightsPipelineConfigurationElementBuilder::type)
258    pub fn build(
259        self,
260    ) -> ::std::result::Result<crate::types::MediaInsightsPipelineConfigurationElement, ::aws_smithy_types::error::operation::BuildError> {
261        ::std::result::Result::Ok(crate::types::MediaInsightsPipelineConfigurationElement {
262            r#type: self.r#type.ok_or_else(|| {
263                ::aws_smithy_types::error::operation::BuildError::missing_field(
264                    "r#type",
265                    "r#type was not specified but it is required when building MediaInsightsPipelineConfigurationElement",
266                )
267            })?,
268            amazon_transcribe_call_analytics_processor_configuration: self.amazon_transcribe_call_analytics_processor_configuration,
269            amazon_transcribe_processor_configuration: self.amazon_transcribe_processor_configuration,
270            kinesis_data_stream_sink_configuration: self.kinesis_data_stream_sink_configuration,
271            s3_recording_sink_configuration: self.s3_recording_sink_configuration,
272            voice_analytics_processor_configuration: self.voice_analytics_processor_configuration,
273            lambda_function_sink_configuration: self.lambda_function_sink_configuration,
274            sqs_queue_sink_configuration: self.sqs_queue_sink_configuration,
275            sns_topic_sink_configuration: self.sns_topic_sink_configuration,
276            voice_enhancement_sink_configuration: self.voice_enhancement_sink_configuration,
277        })
278    }
279}