aws-sdk-medialive 1.76.0

AWS SDK for AWS Elemental MediaLive
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// Placeholder documentation for DescribeInputResponse
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct DescribeInputOutput {
    /// The Unique ARN of the input (generated, immutable).
    pub arn: ::std::option::Option<::std::string::String>,
    /// A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).
    pub attached_channels: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// A list of the destinations of the input (PUSH-type).
    pub destinations: ::std::option::Option<::std::vec::Vec<crate::types::InputDestination>>,
    /// The generated ID of the input (unique for user account, immutable).
    pub id: ::std::option::Option<::std::string::String>,
    /// STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
    pub input_class: ::std::option::Option<crate::types::InputClass>,
    /// Settings for the input devices.
    pub input_devices: ::std::option::Option<::std::vec::Vec<crate::types::InputDeviceSettings>>,
    /// A list of IDs for all Inputs which are partners of this one.
    pub input_partner_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes during input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.
    pub input_source_type: ::std::option::Option<crate::types::InputSourceType>,
    /// A list of MediaConnect Flows for this input.
    pub media_connect_flows: ::std::option::Option<::std::vec::Vec<crate::types::MediaConnectFlow>>,
    /// The user-assigned name (This is a mutable value).
    pub name: ::std::option::Option<::std::string::String>,
    /// The Amazon Resource Name (ARN) of the role this input assumes during and after creation.
    pub role_arn: ::std::option::Option<::std::string::String>,
    /// A list of IDs for all the Input Security Groups attached to the input.
    pub security_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    /// A list of the sources of the input (PULL-type).
    pub sources: ::std::option::Option<::std::vec::Vec<crate::types::InputSource>>,
    /// Placeholder documentation for InputState
    pub state: ::std::option::Option<crate::types::InputState>,
    /// A collection of key-value pairs.
    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    /// The different types of inputs that AWS Elemental MediaLive supports.
    pub r#type: ::std::option::Option<crate::types::InputType>,
    /// The settings associated with an SRT input.
    pub srt_settings: ::std::option::Option<crate::types::SrtSettings>,
    /// The location of this input. AWS, for an input existing in the AWS Cloud, On-Prem for an input in a customer network.
    pub input_network_location: ::std::option::Option<crate::types::InputNetworkLocation>,
    /// Multicast Input settings.
    pub multicast_settings: ::std::option::Option<crate::types::MulticastSettings>,
    _request_id: Option<String>,
}
impl DescribeInputOutput {
    /// The Unique ARN of the input (generated, immutable).
    pub fn arn(&self) -> ::std::option::Option<&str> {
        self.arn.as_deref()
    }
    /// A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attached_channels.is_none()`.
    pub fn attached_channels(&self) -> &[::std::string::String] {
        self.attached_channels.as_deref().unwrap_or_default()
    }
    /// A list of the destinations of the input (PUSH-type).
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.destinations.is_none()`.
    pub fn destinations(&self) -> &[crate::types::InputDestination] {
        self.destinations.as_deref().unwrap_or_default()
    }
    /// The generated ID of the input (unique for user account, immutable).
    pub fn id(&self) -> ::std::option::Option<&str> {
        self.id.as_deref()
    }
    /// STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
    pub fn input_class(&self) -> ::std::option::Option<&crate::types::InputClass> {
        self.input_class.as_ref()
    }
    /// Settings for the input devices.
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.input_devices.is_none()`.
    pub fn input_devices(&self) -> &[crate::types::InputDeviceSettings] {
        self.input_devices.as_deref().unwrap_or_default()
    }
    /// A list of IDs for all Inputs which are partners of this one.
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.input_partner_ids.is_none()`.
    pub fn input_partner_ids(&self) -> &[::std::string::String] {
        self.input_partner_ids.as_deref().unwrap_or_default()
    }
    /// Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes during input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.
    pub fn input_source_type(&self) -> ::std::option::Option<&crate::types::InputSourceType> {
        self.input_source_type.as_ref()
    }
    /// A list of MediaConnect Flows for this input.
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.media_connect_flows.is_none()`.
    pub fn media_connect_flows(&self) -> &[crate::types::MediaConnectFlow] {
        self.media_connect_flows.as_deref().unwrap_or_default()
    }
    /// The user-assigned name (This is a mutable value).
    pub fn name(&self) -> ::std::option::Option<&str> {
        self.name.as_deref()
    }
    /// The Amazon Resource Name (ARN) of the role this input assumes during and after creation.
    pub fn role_arn(&self) -> ::std::option::Option<&str> {
        self.role_arn.as_deref()
    }
    /// A list of IDs for all the Input Security Groups attached to the input.
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.security_groups.is_none()`.
    pub fn security_groups(&self) -> &[::std::string::String] {
        self.security_groups.as_deref().unwrap_or_default()
    }
    /// A list of the sources of the input (PULL-type).
    ///
    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.sources.is_none()`.
    pub fn sources(&self) -> &[crate::types::InputSource] {
        self.sources.as_deref().unwrap_or_default()
    }
    /// Placeholder documentation for InputState
    pub fn state(&self) -> ::std::option::Option<&crate::types::InputState> {
        self.state.as_ref()
    }
    /// A collection of key-value pairs.
    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        self.tags.as_ref()
    }
    /// The different types of inputs that AWS Elemental MediaLive supports.
    pub fn r#type(&self) -> ::std::option::Option<&crate::types::InputType> {
        self.r#type.as_ref()
    }
    /// The settings associated with an SRT input.
    pub fn srt_settings(&self) -> ::std::option::Option<&crate::types::SrtSettings> {
        self.srt_settings.as_ref()
    }
    /// The location of this input. AWS, for an input existing in the AWS Cloud, On-Prem for an input in a customer network.
    pub fn input_network_location(&self) -> ::std::option::Option<&crate::types::InputNetworkLocation> {
        self.input_network_location.as_ref()
    }
    /// Multicast Input settings.
    pub fn multicast_settings(&self) -> ::std::option::Option<&crate::types::MulticastSettings> {
        self.multicast_settings.as_ref()
    }
}
impl ::aws_types::request_id::RequestId for DescribeInputOutput {
    fn request_id(&self) -> Option<&str> {
        self._request_id.as_deref()
    }
}
impl DescribeInputOutput {
    /// Creates a new builder-style object to manufacture [`DescribeInputOutput`](crate::operation::describe_input::DescribeInputOutput).
    pub fn builder() -> crate::operation::describe_input::builders::DescribeInputOutputBuilder {
        crate::operation::describe_input::builders::DescribeInputOutputBuilder::default()
    }
}

/// A builder for [`DescribeInputOutput`](crate::operation::describe_input::DescribeInputOutput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct DescribeInputOutputBuilder {
    pub(crate) arn: ::std::option::Option<::std::string::String>,
    pub(crate) attached_channels: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) destinations: ::std::option::Option<::std::vec::Vec<crate::types::InputDestination>>,
    pub(crate) id: ::std::option::Option<::std::string::String>,
    pub(crate) input_class: ::std::option::Option<crate::types::InputClass>,
    pub(crate) input_devices: ::std::option::Option<::std::vec::Vec<crate::types::InputDeviceSettings>>,
    pub(crate) input_partner_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) input_source_type: ::std::option::Option<crate::types::InputSourceType>,
    pub(crate) media_connect_flows: ::std::option::Option<::std::vec::Vec<crate::types::MediaConnectFlow>>,
    pub(crate) name: ::std::option::Option<::std::string::String>,
    pub(crate) role_arn: ::std::option::Option<::std::string::String>,
    pub(crate) security_groups: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
    pub(crate) sources: ::std::option::Option<::std::vec::Vec<crate::types::InputSource>>,
    pub(crate) state: ::std::option::Option<crate::types::InputState>,
    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
    pub(crate) r#type: ::std::option::Option<crate::types::InputType>,
    pub(crate) srt_settings: ::std::option::Option<crate::types::SrtSettings>,
    pub(crate) input_network_location: ::std::option::Option<crate::types::InputNetworkLocation>,
    pub(crate) multicast_settings: ::std::option::Option<crate::types::MulticastSettings>,
    _request_id: Option<String>,
}
impl DescribeInputOutputBuilder {
    /// The Unique ARN of the input (generated, immutable).
    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.arn = ::std::option::Option::Some(input.into());
        self
    }
    /// The Unique ARN of the input (generated, immutable).
    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.arn = input;
        self
    }
    /// The Unique ARN of the input (generated, immutable).
    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.arn
    }
    /// Appends an item to `attached_channels`.
    ///
    /// To override the contents of this collection use [`set_attached_channels`](Self::set_attached_channels).
    ///
    /// A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).
    pub fn attached_channels(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.attached_channels.unwrap_or_default();
        v.push(input.into());
        self.attached_channels = ::std::option::Option::Some(v);
        self
    }
    /// A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).
    pub fn set_attached_channels(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.attached_channels = input;
        self
    }
    /// A list of channel IDs that that input is attached to (currently an input can only be attached to one channel).
    pub fn get_attached_channels(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.attached_channels
    }
    /// Appends an item to `destinations`.
    ///
    /// To override the contents of this collection use [`set_destinations`](Self::set_destinations).
    ///
    /// A list of the destinations of the input (PUSH-type).
    pub fn destinations(mut self, input: crate::types::InputDestination) -> Self {
        let mut v = self.destinations.unwrap_or_default();
        v.push(input);
        self.destinations = ::std::option::Option::Some(v);
        self
    }
    /// A list of the destinations of the input (PUSH-type).
    pub fn set_destinations(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputDestination>>) -> Self {
        self.destinations = input;
        self
    }
    /// A list of the destinations of the input (PUSH-type).
    pub fn get_destinations(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputDestination>> {
        &self.destinations
    }
    /// The generated ID of the input (unique for user account, immutable).
    pub fn id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.id = ::std::option::Option::Some(input.into());
        self
    }
    /// The generated ID of the input (unique for user account, immutable).
    pub fn set_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.id = input;
        self
    }
    /// The generated ID of the input (unique for user account, immutable).
    pub fn get_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.id
    }
    /// STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
    pub fn input_class(mut self, input: crate::types::InputClass) -> Self {
        self.input_class = ::std::option::Option::Some(input);
        self
    }
    /// STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
    pub fn set_input_class(mut self, input: ::std::option::Option<crate::types::InputClass>) -> Self {
        self.input_class = input;
        self
    }
    /// STANDARD - MediaLive expects two sources to be connected to this input. If the channel is also STANDARD, both sources will be ingested. If the channel is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the ChannelClass is STANDARD, this value is not valid because the channel requires two sources in the input.
    pub fn get_input_class(&self) -> &::std::option::Option<crate::types::InputClass> {
        &self.input_class
    }
    /// Appends an item to `input_devices`.
    ///
    /// To override the contents of this collection use [`set_input_devices`](Self::set_input_devices).
    ///
    /// Settings for the input devices.
    pub fn input_devices(mut self, input: crate::types::InputDeviceSettings) -> Self {
        let mut v = self.input_devices.unwrap_or_default();
        v.push(input);
        self.input_devices = ::std::option::Option::Some(v);
        self
    }
    /// Settings for the input devices.
    pub fn set_input_devices(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputDeviceSettings>>) -> Self {
        self.input_devices = input;
        self
    }
    /// Settings for the input devices.
    pub fn get_input_devices(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputDeviceSettings>> {
        &self.input_devices
    }
    /// Appends an item to `input_partner_ids`.
    ///
    /// To override the contents of this collection use [`set_input_partner_ids`](Self::set_input_partner_ids).
    ///
    /// A list of IDs for all Inputs which are partners of this one.
    pub fn input_partner_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.input_partner_ids.unwrap_or_default();
        v.push(input.into());
        self.input_partner_ids = ::std::option::Option::Some(v);
        self
    }
    /// A list of IDs for all Inputs which are partners of this one.
    pub fn set_input_partner_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.input_partner_ids = input;
        self
    }
    /// A list of IDs for all Inputs which are partners of this one.
    pub fn get_input_partner_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.input_partner_ids
    }
    /// Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes during input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.
    pub fn input_source_type(mut self, input: crate::types::InputSourceType) -> Self {
        self.input_source_type = ::std::option::Option::Some(input);
        self
    }
    /// Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes during input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.
    pub fn set_input_source_type(mut self, input: ::std::option::Option<crate::types::InputSourceType>) -> Self {
        self.input_source_type = input;
        self
    }
    /// Certain pull input sources can be dynamic, meaning that they can have their URL's dynamically changes during input switch actions. Presently, this functionality only works with MP4_FILE and TS_FILE inputs.
    pub fn get_input_source_type(&self) -> &::std::option::Option<crate::types::InputSourceType> {
        &self.input_source_type
    }
    /// Appends an item to `media_connect_flows`.
    ///
    /// To override the contents of this collection use [`set_media_connect_flows`](Self::set_media_connect_flows).
    ///
    /// A list of MediaConnect Flows for this input.
    pub fn media_connect_flows(mut self, input: crate::types::MediaConnectFlow) -> Self {
        let mut v = self.media_connect_flows.unwrap_or_default();
        v.push(input);
        self.media_connect_flows = ::std::option::Option::Some(v);
        self
    }
    /// A list of MediaConnect Flows for this input.
    pub fn set_media_connect_flows(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::MediaConnectFlow>>) -> Self {
        self.media_connect_flows = input;
        self
    }
    /// A list of MediaConnect Flows for this input.
    pub fn get_media_connect_flows(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::MediaConnectFlow>> {
        &self.media_connect_flows
    }
    /// The user-assigned name (This is a mutable value).
    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.name = ::std::option::Option::Some(input.into());
        self
    }
    /// The user-assigned name (This is a mutable value).
    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.name = input;
        self
    }
    /// The user-assigned name (This is a mutable value).
    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.name
    }
    /// The Amazon Resource Name (ARN) of the role this input assumes during and after creation.
    pub fn role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.role_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// The Amazon Resource Name (ARN) of the role this input assumes during and after creation.
    pub fn set_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.role_arn = input;
        self
    }
    /// The Amazon Resource Name (ARN) of the role this input assumes during and after creation.
    pub fn get_role_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.role_arn
    }
    /// Appends an item to `security_groups`.
    ///
    /// To override the contents of this collection use [`set_security_groups`](Self::set_security_groups).
    ///
    /// A list of IDs for all the Input Security Groups attached to the input.
    pub fn security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut v = self.security_groups.unwrap_or_default();
        v.push(input.into());
        self.security_groups = ::std::option::Option::Some(v);
        self
    }
    /// A list of IDs for all the Input Security Groups attached to the input.
    pub fn set_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
        self.security_groups = input;
        self
    }
    /// A list of IDs for all the Input Security Groups attached to the input.
    pub fn get_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
        &self.security_groups
    }
    /// Appends an item to `sources`.
    ///
    /// To override the contents of this collection use [`set_sources`](Self::set_sources).
    ///
    /// A list of the sources of the input (PULL-type).
    pub fn sources(mut self, input: crate::types::InputSource) -> Self {
        let mut v = self.sources.unwrap_or_default();
        v.push(input);
        self.sources = ::std::option::Option::Some(v);
        self
    }
    /// A list of the sources of the input (PULL-type).
    pub fn set_sources(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputSource>>) -> Self {
        self.sources = input;
        self
    }
    /// A list of the sources of the input (PULL-type).
    pub fn get_sources(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputSource>> {
        &self.sources
    }
    /// Placeholder documentation for InputState
    pub fn state(mut self, input: crate::types::InputState) -> Self {
        self.state = ::std::option::Option::Some(input);
        self
    }
    /// Placeholder documentation for InputState
    pub fn set_state(mut self, input: ::std::option::Option<crate::types::InputState>) -> Self {
        self.state = input;
        self
    }
    /// Placeholder documentation for InputState
    pub fn get_state(&self) -> &::std::option::Option<crate::types::InputState> {
        &self.state
    }
    /// Adds a key-value pair to `tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// A collection of key-value pairs.
    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
        let mut hash_map = self.tags.unwrap_or_default();
        hash_map.insert(k.into(), v.into());
        self.tags = ::std::option::Option::Some(hash_map);
        self
    }
    /// A collection of key-value pairs.
    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
        self.tags = input;
        self
    }
    /// A collection of key-value pairs.
    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
        &self.tags
    }
    /// The different types of inputs that AWS Elemental MediaLive supports.
    pub fn r#type(mut self, input: crate::types::InputType) -> Self {
        self.r#type = ::std::option::Option::Some(input);
        self
    }
    /// The different types of inputs that AWS Elemental MediaLive supports.
    pub fn set_type(mut self, input: ::std::option::Option<crate::types::InputType>) -> Self {
        self.r#type = input;
        self
    }
    /// The different types of inputs that AWS Elemental MediaLive supports.
    pub fn get_type(&self) -> &::std::option::Option<crate::types::InputType> {
        &self.r#type
    }
    /// The settings associated with an SRT input.
    pub fn srt_settings(mut self, input: crate::types::SrtSettings) -> Self {
        self.srt_settings = ::std::option::Option::Some(input);
        self
    }
    /// The settings associated with an SRT input.
    pub fn set_srt_settings(mut self, input: ::std::option::Option<crate::types::SrtSettings>) -> Self {
        self.srt_settings = input;
        self
    }
    /// The settings associated with an SRT input.
    pub fn get_srt_settings(&self) -> &::std::option::Option<crate::types::SrtSettings> {
        &self.srt_settings
    }
    /// The location of this input. AWS, for an input existing in the AWS Cloud, On-Prem for an input in a customer network.
    pub fn input_network_location(mut self, input: crate::types::InputNetworkLocation) -> Self {
        self.input_network_location = ::std::option::Option::Some(input);
        self
    }
    /// The location of this input. AWS, for an input existing in the AWS Cloud, On-Prem for an input in a customer network.
    pub fn set_input_network_location(mut self, input: ::std::option::Option<crate::types::InputNetworkLocation>) -> Self {
        self.input_network_location = input;
        self
    }
    /// The location of this input. AWS, for an input existing in the AWS Cloud, On-Prem for an input in a customer network.
    pub fn get_input_network_location(&self) -> &::std::option::Option<crate::types::InputNetworkLocation> {
        &self.input_network_location
    }
    /// Multicast Input settings.
    pub fn multicast_settings(mut self, input: crate::types::MulticastSettings) -> Self {
        self.multicast_settings = ::std::option::Option::Some(input);
        self
    }
    /// Multicast Input settings.
    pub fn set_multicast_settings(mut self, input: ::std::option::Option<crate::types::MulticastSettings>) -> Self {
        self.multicast_settings = input;
        self
    }
    /// Multicast Input settings.
    pub fn get_multicast_settings(&self) -> &::std::option::Option<crate::types::MulticastSettings> {
        &self.multicast_settings
    }
    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
        self._request_id = Some(request_id.into());
        self
    }

    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
        self._request_id = request_id;
        self
    }
    /// Consumes the builder and constructs a [`DescribeInputOutput`](crate::operation::describe_input::DescribeInputOutput).
    pub fn build(self) -> crate::operation::describe_input::DescribeInputOutput {
        crate::operation::describe_input::DescribeInputOutput {
            arn: self.arn,
            attached_channels: self.attached_channels,
            destinations: self.destinations,
            id: self.id,
            input_class: self.input_class,
            input_devices: self.input_devices,
            input_partner_ids: self.input_partner_ids,
            input_source_type: self.input_source_type,
            media_connect_flows: self.media_connect_flows,
            name: self.name,
            role_arn: self.role_arn,
            security_groups: self.security_groups,
            sources: self.sources,
            state: self.state,
            tags: self.tags,
            r#type: self.r#type,
            srt_settings: self.srt_settings,
            input_network_location: self.input_network_location,
            multicast_settings: self.multicast_settings,
            _request_id: self._request_id,
        }
    }
}