File: types.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.30.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 662,428 kB
  • sloc: java: 16,875; makefile: 432; sh: 175
file content (876 lines) | stat: -rw-r--r-- 32,979 bytes parent folder | download
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
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
// Code generated by smithy-go-codegen DO NOT EDIT.

package types

import (
	smithydocument "github.com/aws/smithy-go/document"
	"time"
)

// The configuration of the channel group.
type ChannelGroupListConfiguration struct {

	// The Amazon Resource Name (ARN) associated with the resource.
	//
	// This member is required.
	Arn *string

	// The name that describes the channel group. The name is the primary identifier
	// for the channel group, and must be unique for your account in the AWS Region.
	//
	// This member is required.
	ChannelGroupName *string

	// The date and time the channel group was created.
	//
	// This member is required.
	CreatedAt *time.Time

	// The date and time the channel group was modified.
	//
	// This member is required.
	ModifiedAt *time.Time

	// Any descriptive information that you want to add to the channel group for
	// future identification purposes.
	Description *string

	noSmithyDocumentSerde
}

// The configuration of the channel.
type ChannelListConfiguration struct {

	// The Amazon Resource Name (ARN) associated with the resource.
	//
	// This member is required.
	Arn *string

	// The name that describes the channel group. The name is the primary identifier
	// for the channel group, and must be unique for your account in the AWS Region.
	//
	// This member is required.
	ChannelGroupName *string

	// The name that describes the channel. The name is the primary identifier for the
	// channel, and must be unique for your account in the AWS Region and channel
	// group.
	//
	// This member is required.
	ChannelName *string

	// The date and time the channel was created.
	//
	// This member is required.
	CreatedAt *time.Time

	// The date and time the channel was modified.
	//
	// This member is required.
	ModifiedAt *time.Time

	// Any descriptive information that you want to add to the channel for future
	// identification purposes.
	Description *string

	// The input type will be an immutable field which will be used to define whether
	// the channel will allow CMAF ingest or HLS ingest. If unprovided, it will default
	// to HLS to preserve current behavior.
	//
	// The allowed values are:
	//
	//   - HLS - The HLS streaming specification (which defines M3U8 manifests and TS
	//   segments).
	//
	//   - CMAF - The DASH-IF CMAF Ingest specification (which defines CMAF segments
	//   with optional DASH manifests).
	InputType InputType

	noSmithyDocumentSerde
}

// Create a DASH manifest configuration.
type CreateDashManifestConfiguration struct {

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint.
	//
	// This member is required.
	ManifestName *string

	// Determines how the DASH manifest signals the DRM content.
	DrmSignaling DashDrmSignaling

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Minimum amount of content (in seconds) that a player must keep available in the
	// buffer.
	MinBufferTimeSeconds *int32

	// Minimum amount of time (in seconds) that the player should wait before
	// requesting updates to the manifest.
	MinUpdatePeriodSeconds *int32

	// A list of triggers that controls when AWS Elemental MediaPackage separates the
	// MPEG-DASH manifest into multiple periods. Type ADS to indicate that AWS
	// Elemental MediaPackage must create periods in the output manifest that
	// correspond to SCTE-35 ad markers in the input source. Leave this value empty to
	// indicate that the manifest is contained all in one period. For more information
	// about periods in the DASH manifest, see [Multi-period DASH in AWS Elemental MediaPackage].
	//
	// [Multi-period DASH in AWS Elemental MediaPackage]: https://docs.aws.amazon.com/mediapackage/latest/userguide/multi-period.html
	PeriodTriggers []DashPeriodTrigger

	// The SCTE configuration.
	ScteDash *ScteDash

	// Determines the type of variable used in the media URL of the SegmentTemplate
	// tag in the manifest. Also specifies if segment timeline information is included
	// in SegmentTimeline or SegmentTemplate .
	//
	// Value description:
	//
	//   - NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The
	//   value of this variable is the sequential number of the segment. A full
	//   SegmentTimeline object is presented in each SegmentTemplate .
	SegmentTemplateFormat DashSegmentTemplateFormat

	// The amount of time (in seconds) that the player should be from the end of the
	// manifest.
	SuggestedPresentationDelaySeconds *int32

	// Determines the type of UTC timing included in the DASH Media Presentation
	// Description (MPD).
	UtcTiming *DashUtcTiming

	noSmithyDocumentSerde
}

// Create an HTTP live streaming (HLS) manifest configuration.
type CreateHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index, with an added suffix to distinguish it
	// from the manifest name. The manifestName on the HLSManifest object overrides the
	// manifestName you provided on the originEndpoint object.
	ChildManifestName *string

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval
	// that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags
	// aren't included in the manifest. The tags sync the stream to the wall clock so
	// that viewers can seek to a specific time in the playback timeline on the player.
	// ID3Timed metadata messages generate every 5 seconds whenever the content is
	// ingested.
	//
	// Irrespective of this parameter, if any ID3Timed metadata is in the HLS input,
	// it is passed through to the HLS output.
	ProgramDateTimeIntervalSeconds *int32

	// The SCTE configuration.
	ScteHls *ScteHls

	noSmithyDocumentSerde
}

// Create a low-latency HTTP live streaming (HLS) manifest configuration.
type CreateLowLatencyHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index, with an added suffix to distinguish it
	// from the manifest name. The manifestName on the HLSManifest object overrides the
	// manifestName you provided on the originEndpoint object.
	ChildManifestName *string

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval
	// that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags
	// aren't included in the manifest. The tags sync the stream to the wall clock so
	// that viewers can seek to a specific time in the playback timeline on the player.
	// ID3Timed metadata messages generate every 5 seconds whenever the content is
	// ingested.
	//
	// Irrespective of this parameter, if any ID3Timed metadata is in the HLS input,
	// it is passed through to the HLS output.
	ProgramDateTimeIntervalSeconds *int32

	// The SCTE configuration.
	ScteHls *ScteHls

	noSmithyDocumentSerde
}

// Determines the type of UTC timing included in the DASH Media Presentation
// Description (MPD).
type DashUtcTiming struct {

	// The UTC timing mode.
	TimingMode DashUtcTimingMode

	// The the method that the player uses to synchronize to coordinated universal
	// time (UTC) wall clock time.
	TimingSource *string

	noSmithyDocumentSerde
}

// The parameters for encrypting content.
type Encryption struct {

	// The encryption method to use.
	//
	// This member is required.
	EncryptionMethod *EncryptionMethod

	// The parameters for the SPEKE key provider.
	//
	// This member is required.
	SpekeKeyProvider *SpekeKeyProvider

	// A 128-bit, 16-byte hex value represented by a 32-character string, used in
	// conjunction with the key for encrypting content. If you don't specify a value,
	// then MediaPackage creates the constant initialization vector (IV).
	ConstantInitializationVector *string

	// The frequency (in seconds) of key changes for live workflows, in which content
	// is streamed real time. The service retrieves content keys before the live
	// content begins streaming, and then retrieves them as needed over the lifetime of
	// the workflow. By default, key rotation is set to 300 seconds (5 minutes), the
	// minimum rotation interval, which is equivalent to setting it to 300. If you
	// don't enter an interval, content keys aren't rotated.
	//
	// The following example setting causes the service to rotate keys every thirty
	// minutes: 1800
	KeyRotationIntervalSeconds *int32

	noSmithyDocumentSerde
}

// Configure one or more content encryption keys for your endpoints that use SPEKE
// Version 2.0. The encryption contract defines which content keys are used to
// encrypt the audio and video tracks in your stream. To configure the encryption
// contract, specify which audio and video encryption presets to use.
type EncryptionContractConfiguration struct {

	// A collection of audio encryption presets.
	//
	// Value description:
	//
	//   - PRESET-AUDIO-1 - Use one content key to encrypt all of the audio tracks in
	//   your stream.
	//
	//   - PRESET-AUDIO-2 - Use one content key to encrypt all of the stereo audio
	//   tracks and one content key to encrypt all of the multichannel audio tracks.
	//
	//   - PRESET-AUDIO-3 - Use one content key to encrypt all of the stereo audio
	//   tracks, one content key to encrypt all of the multichannel audio tracks with 3
	//   to 6 channels, and one content key to encrypt all of the multichannel audio
	//   tracks with more than 6 channels.
	//
	//   - SHARED - Use the same content key for all of the audio and video tracks in
	//   your stream.
	//
	//   - UNENCRYPTED - Don't encrypt any of the audio tracks in your stream.
	//
	// This member is required.
	PresetSpeke20Audio PresetSpeke20Audio

	// A collection of video encryption presets.
	//
	// Value description:
	//
	//   - PRESET-VIDEO-1 - Use one content key to encrypt all of the video tracks in
	//   your stream.
	//
	//   - PRESET-VIDEO-2 - Use one content key to encrypt all of the SD video tracks
	//   and one content key for all HD and higher resolutions video tracks.
	//
	//   - PRESET-VIDEO-3 - Use one content key to encrypt all of the SD video tracks,
	//   one content key for HD video tracks and one content key for all UHD video
	//   tracks.
	//
	//   - PRESET-VIDEO-4 - Use one content key to encrypt all of the SD video tracks,
	//   one content key for HD video tracks, one content key for all UHD1 video tracks
	//   and one content key for all UHD2 video tracks.
	//
	//   - PRESET-VIDEO-5 - Use one content key to encrypt all of the SD video tracks,
	//   one content key for HD1 video tracks, one content key for HD2 video tracks, one
	//   content key for all UHD1 video tracks and one content key for all UHD2 video
	//   tracks.
	//
	//   - PRESET-VIDEO-6 - Use one content key to encrypt all of the SD video tracks,
	//   one content key for HD1 video tracks, one content key for HD2 video tracks and
	//   one content key for all UHD video tracks.
	//
	//   - PRESET-VIDEO-7 - Use one content key to encrypt all of the SD+HD1 video
	//   tracks, one content key for HD2 video tracks and one content key for all UHD
	//   video tracks.
	//
	//   - PRESET-VIDEO-8 - Use one content key to encrypt all of the SD+HD1 video
	//   tracks, one content key for HD2 video tracks, one content key for all UHD1 video
	//   tracks and one content key for all UHD2 video tracks.
	//
	//   - SHARED - Use the same content key for all of the video and audio tracks in
	//   your stream.
	//
	//   - UNENCRYPTED - Don't encrypt any of the video tracks in your stream.
	//
	// This member is required.
	PresetSpeke20Video PresetSpeke20Video

	noSmithyDocumentSerde
}

// The encryption type.
type EncryptionMethod struct {

	// The encryption method to use.
	CmafEncryptionMethod CmafEncryptionMethod

	// The encryption method to use.
	TsEncryptionMethod TsEncryptionMethod

	noSmithyDocumentSerde
}

// Filter configuration includes settings for manifest filtering, start and end
// times, and time delay that apply to all of your egress requests for this
// manifest.
type FilterConfiguration struct {

	// Optionally specify the end time for all of your manifest egress requests. When
	// you include end time, note that you cannot use end time query parameters for
	// this manifest's endpoint URL.
	End *time.Time

	// Optionally specify one or more manifest filters for all of your manifest egress
	// requests. When you include a manifest filter, note that you cannot use an
	// identical manifest filter query parameter for this manifest's endpoint URL.
	ManifestFilter *string

	// Optionally specify the start time for all of your manifest egress requests.
	// When you include start time, note that you cannot use start time query
	// parameters for this manifest's endpoint URL.
	Start *time.Time

	// Optionally specify the time delay for all of your manifest egress requests.
	// Enter a value that is smaller than your endpoint's startover window. When you
	// include time delay, note that you cannot use time delay query parameters for
	// this manifest's endpoint URL.
	TimeDelaySeconds *int32

	noSmithyDocumentSerde
}

// The failover settings for the endpoint.
type ForceEndpointErrorConfiguration struct {

	// The failover conditions for the endpoint. The options are:
	//
	//   - STALE_MANIFEST - The manifest stalled and there are no new segments or parts.
	//
	//   - INCOMPLETE_MANIFEST - There is a gap in the manifest.
	//
	//   - MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key
	//   for the current key period.
	//
	//   - SLATE_INPUT - The segments which contain slate content are considered to be
	//   missing content.
	EndpointErrorConditions []EndpointErrorCondition

	noSmithyDocumentSerde
}

// Retrieve the DASH manifest configuration.
type GetDashManifestConfiguration struct {

	// A short string that's appended to the endpoint URL. The manifest name creates a
	// unique path to this endpoint. If you don't enter a value, MediaPackage uses the
	// default manifest name, index.
	//
	// This member is required.
	ManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	//
	// This member is required.
	Url *string

	// Determines how the DASH manifest signals the DRM content.
	DrmSignaling DashDrmSignaling

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Minimum amount of content (in seconds) that a player must keep available in the
	// buffer.
	MinBufferTimeSeconds *int32

	// Minimum amount of time (in seconds) that the player should wait before
	// requesting updates to the manifest.
	MinUpdatePeriodSeconds *int32

	// A list of triggers that controls when AWS Elemental MediaPackage separates the
	// MPEG-DASH manifest into multiple periods. Leave this value empty to indicate
	// that the manifest is contained all in one period. For more information about
	// periods in the DASH manifest, see [Multi-period DASH in AWS Elemental MediaPackage].
	//
	// [Multi-period DASH in AWS Elemental MediaPackage]: https://docs.aws.amazon.com/mediapackage/latest/userguide/multi-period.html
	PeriodTriggers []DashPeriodTrigger

	// The SCTE configuration.
	ScteDash *ScteDash

	// Determines the type of variable used in the media URL of the SegmentTemplate
	// tag in the manifest. Also specifies if segment timeline information is included
	// in SegmentTimeline or SegmentTemplate .
	//
	// Value description:
	//
	//   - NUMBER_WITH_TIMELINE - The $Number$ variable is used in the media URL. The
	//   value of this variable is the sequential number of the segment. A full
	//   SegmentTimeline object is presented in each SegmentTemplate .
	SegmentTemplateFormat DashSegmentTemplateFormat

	// The amount of time (in seconds) that the player should be from the end of the
	// manifest.
	SuggestedPresentationDelaySeconds *int32

	// Determines the type of UTC timing included in the DASH Media Presentation
	// Description (MPD).
	UtcTiming *DashUtcTiming

	noSmithyDocumentSerde
}

// Retrieve the HTTP live streaming (HLS) manifest configuration.
type GetHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	//
	// This member is required.
	Url *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default child manifest name, index_1. The manifestName on the
	// HLSManifest object overrides the manifestName you provided on the originEndpoint
	// object.
	ChildManifestName *string

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval
	// that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags
	// aren't included in the manifest. The tags sync the stream to the wall clock so
	// that viewers can seek to a specific time in the playback timeline on the player.
	// ID3Timed metadata messages generate every 5 seconds whenever the content is
	// ingested.
	//
	// Irrespective of this parameter, if any ID3Timed metadata is in the HLS input,
	// it is passed through to the HLS output.
	ProgramDateTimeIntervalSeconds *int32

	// The SCTE configuration.
	ScteHls *ScteHls

	noSmithyDocumentSerde
}

// Retrieve the low-latency HTTP live streaming (HLS) manifest configuration.
type GetLowLatencyHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	//
	// This member is required.
	Url *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default child manifest name, index_1. The manifestName on the
	// HLSManifest object overrides the manifestName you provided on the originEndpoint
	// object.
	ChildManifestName *string

	// Filter configuration includes settings for manifest filtering, start and end
	// times, and time delay that apply to all of your egress requests for this
	// manifest.
	FilterConfiguration *FilterConfiguration

	// The total duration (in seconds) of the manifest's content.
	ManifestWindowSeconds *int32

	// Inserts EXT-X-PROGRAM-DATE-TIME tags in the output manifest at the interval
	// that you specify. If you don't enter an interval, EXT-X-PROGRAM-DATE-TIME tags
	// aren't included in the manifest. The tags sync the stream to the wall clock so
	// that viewers can seek to a specific time in the playback timeline on the player.
	// ID3Timed metadata messages generate every 5 seconds whenever the content is
	// ingested.
	//
	// Irrespective of this parameter, if any ID3Timed metadata is in the HLS input,
	// it is passed through to the HLS output.
	ProgramDateTimeIntervalSeconds *int32

	// The SCTE configuration.
	ScteHls *ScteHls

	noSmithyDocumentSerde
}

// The ingest domain URL where the source stream should be sent.
type IngestEndpoint struct {

	// The system-generated unique identifier for the IngestEndpoint.
	Id *string

	// The ingest domain URL where the source stream should be sent.
	Url *string

	noSmithyDocumentSerde
}

// List the DASH manifest configuration.
type ListDashManifestConfiguration struct {

	// A short string that's appended to the endpoint URL. The manifest name creates a
	// unique path to this endpoint. If you don't enter a value, MediaPackage uses the
	// default manifest name, index.
	//
	// This member is required.
	ManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	Url *string

	noSmithyDocumentSerde
}

// List the HTTP live streaming (HLS) manifest configuration.
type ListHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default child manifest name, index_1. The manifestName on the
	// HLSManifest object overrides the manifestName you provided on the originEndpoint
	// object.
	ChildManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	Url *string

	noSmithyDocumentSerde
}

// List the low-latency HTTP live streaming (HLS) manifest configuration.
type ListLowLatencyHlsManifestConfiguration struct {

	// A short short string that's appended to the endpoint URL. The manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default manifest name, index. MediaPackage automatically inserts the
	// format extension, such as .m3u8. You can't use the same manifest name if you use
	// HLS manifest and low-latency HLS manifest. The manifestName on the HLSManifest
	// object overrides the manifestName you provided on the originEndpoint object.
	//
	// This member is required.
	ManifestName *string

	// A short string that's appended to the endpoint URL. The child manifest name
	// creates a unique path to this endpoint. If you don't enter a value, MediaPackage
	// uses the default child manifest name, index_1. The manifestName on the
	// HLSManifest object overrides the manifestName you provided on the originEndpoint
	// object.
	ChildManifestName *string

	// The egress domain URL for stream delivery from MediaPackage.
	Url *string

	noSmithyDocumentSerde
}

// The configuration of the origin endpoint.
type OriginEndpointListConfiguration struct {

	// The Amazon Resource Name (ARN) associated with the resource.
	//
	// This member is required.
	Arn *string

	// The name that describes the channel group. The name is the primary identifier
	// for the channel group, and must be unique for your account in the AWS Region.
	//
	// This member is required.
	ChannelGroupName *string

	// The name that describes the channel. The name is the primary identifier for the
	// channel, and must be unique for your account in the AWS Region and channel
	// group.
	//
	// This member is required.
	ChannelName *string

	// The type of container attached to this origin endpoint. A container type is a
	// file format that encapsulates one or more media streams, such as audio and
	// video, into a single file.
	//
	// This member is required.
	ContainerType ContainerType

	// The name that describes the origin endpoint. The name is the primary identifier
	// for the origin endpoint, and and must be unique for your account in the AWS
	// Region and channel.
	//
	// This member is required.
	OriginEndpointName *string

	// The date and time the origin endpoint was created.
	CreatedAt *time.Time

	// A DASH manifest configuration.
	DashManifests []ListDashManifestConfiguration

	// Any descriptive information that you want to add to the origin endpoint for
	// future identification purposes.
	Description *string

	// The failover settings for the endpoint.
	ForceEndpointErrorConfiguration *ForceEndpointErrorConfiguration

	// An HTTP live streaming (HLS) manifest configuration.
	HlsManifests []ListHlsManifestConfiguration

	// A low-latency HLS manifest configuration.
	LowLatencyHlsManifests []ListLowLatencyHlsManifestConfiguration

	// The date and time the origin endpoint was modified.
	ModifiedAt *time.Time

	noSmithyDocumentSerde
}

// The SCTE configuration.
type Scte struct {

	// The SCTE-35 message types that you want to be treated as ad markers in the
	// output.
	ScteFilter []ScteFilter

	noSmithyDocumentSerde
}

// The SCTE configuration.
type ScteDash struct {

	// Choose how ad markers are included in the packaged content. If you include ad
	// markers in the content stream in your upstream encoders, then you need to inform
	// MediaPackage what to do with the ad markers in the output.
	//
	// Value description:
	//
	//   - Binary - The SCTE-35 marker is expressed as a hex-string (Base64 string)
	//   rather than full XML.
	//
	//   - XML - The SCTE marker is expressed fully in XML.
	AdMarkerDash AdMarkerDash

	noSmithyDocumentSerde
}

// The SCTE configuration.
type ScteHls struct {

	// Ad markers indicate when ads should be inserted during playback. If you include
	// ad markers in the content stream in your upstream encoders, then you need to
	// inform MediaPackage what to do with the ad markers in the output. Choose what
	// you want MediaPackage to do with the ad markers.
	//
	// Value description:
	//
	//   - DATERANGE - Insert EXT-X-DATERANGE tags to signal ad and program transition
	//   events in TS and CMAF manifests. If you use DATERANGE, you must set a
	//   programDateTimeIntervalSeconds value of 1 or higher. To learn more about
	//   DATERANGE, see [SCTE-35 Ad Marker EXT-X-DATERANGE].
	//
	// [SCTE-35 Ad Marker EXT-X-DATERANGE]: http://docs.aws.amazon.com/mediapackage/latest/ug/scte-35-ad-marker-ext-x-daterange.html
	AdMarkerHls AdMarkerHls

	noSmithyDocumentSerde
}

// The segment configuration, including the segment name, duration, and other
// configuration values.
type Segment struct {

	// The parameters for encrypting content.
	Encryption *Encryption

	// When selected, the stream set includes an additional I-frame only stream, along
	// with the other tracks. If false, this extra stream is not included. MediaPackage
	// generates an I-frame only stream from the first rendition in the manifest. The
	// service inserts EXT-I-FRAMES-ONLY tags in the output manifest, and then
	// generates and includes an I-frames only playlist in the stream. This playlist
	// permits player functionality like fast forward and rewind.
	IncludeIframeOnlyStreams *bool

	// The SCTE configuration options in the segment settings.
	Scte *Scte

	// The duration (in seconds) of each segment. Enter a value equal to, or a
	// multiple of, the input segment duration. If the value that you enter is
	// different from the input segment duration, MediaPackage rounds segments to the
	// nearest multiple of the input segment duration.
	SegmentDurationSeconds *int32

	// The name that describes the segment. The name is the base name of the segment
	// used in all content manifests inside of the endpoint. You can't use spaces in
	// the name.
	SegmentName *string

	// By default, MediaPackage excludes all digital video broadcasting (DVB)
	// subtitles from the output. When selected, MediaPackage passes through DVB
	// subtitles into the output.
	TsIncludeDvbSubtitles *bool

	// When selected, MediaPackage bundles all audio tracks in a rendition group. All
	// other tracks in the stream can be used with any audio rendition from the group.
	TsUseAudioRenditionGroup *bool

	noSmithyDocumentSerde
}

// The parameters for the SPEKE key provider.
type SpekeKeyProvider struct {

	// The DRM solution provider you're using to protect your content during
	// distribution.
	//
	// This member is required.
	DrmSystems []DrmSystem

	// Configure one or more content encryption keys for your endpoints that use SPEKE
	// Version 2.0. The encryption contract defines which content keys are used to
	// encrypt the audio and video tracks in your stream. To configure the encryption
	// contract, specify which audio and video encryption presets to use.
	//
	// This member is required.
	EncryptionContractConfiguration *EncryptionContractConfiguration

	// The unique identifier for the content. The service sends this to the key server
	// to identify the current endpoint. How unique you make this depends on how
	// fine-grained you want access controls to be. The service does not permit you to
	// use the same ID for two simultaneous encryption processes. The resource ID is
	// also known as the content ID.
	//
	// The following example shows a resource ID: MovieNight20171126093045
	//
	// This member is required.
	ResourceId *string

	// The ARN for the IAM role granted by the key provider that provides access to
	// the key provider API. This role must have a trust policy that allows
	// MediaPackage to assume the role, and it must have a sufficient permissions
	// policy to allow access to the specific key retrieval URL. Get this from your DRM
	// solution provider.
	//
	// Valid format: arn:aws:iam::{accountID}:role/{name} . The following example shows
	// a role ARN: arn:aws:iam::444455556666:role/SpekeAccess
	//
	// This member is required.
	RoleArn *string

	// The URL of the API Gateway proxy that you set up to talk to your key server.
	// The API Gateway proxy must reside in the same AWS Region as MediaPackage and
	// must start with https://.
	//
	// The following example shows a URL:
	// https://1wm2dx1f33.execute-api.us-west-2.amazonaws.com/SpekeSample/copyProtection
	//
	// This member is required.
	Url *string

	noSmithyDocumentSerde
}

type noSmithyDocumentSerde = smithydocument.NoSerde