import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class DashEncryption { SpekeKeyProvider ! : SpekeKeyProvider ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SpekeKeyProvider { RoleArn ! : Value < string > ; SystemIds ! : List < Value < string > > ; Url ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CmafPackage { Encryption ? : CmafEncryption ; HlsManifests ! : List < HlsManifest > ; SegmentDurationSeconds ? : Value < number > ; IncludeEncoderConfigurationInSegments ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DashPackage { DashManifests ! : List < DashManifest > ; Encryption ? : DashEncryption ; PeriodTriggers ? : List < Value < string > > ; SegmentDurationSeconds ? : Value < number > ; SegmentTemplateFormat ? : Value < string > ; IncludeEncoderConfigurationInSegments ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DashManifest { ManifestLayout ? : Value < string > ; ManifestName ? : Value < string > ; MinBufferTimeSeconds ? : Value < number > ; Profile ? : Value < string > ; StreamSelection ? : StreamSelection ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HlsEncryption { ConstantInitializationVector ? : Value < string > ; EncryptionMethod ? : Value < string > ; SpekeKeyProvider ! : SpekeKeyProvider ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MssManifest { ManifestName ? : Value < string > ; StreamSelection ? : StreamSelection ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CmafEncryption { SpekeKeyProvider ! : SpekeKeyProvider ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MssEncryption { SpekeKeyProvider ! : SpekeKeyProvider ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StreamSelection { MaxVideoBitsPerSecond ? : Value < number > ; MinVideoBitsPerSecond ? : Value < number > ; StreamOrder ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MssPackage { Encryption ? : MssEncryption ; MssManifests ! : List < MssManifest > ; SegmentDurationSeconds ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HlsPackage { Encryption ? : HlsEncryption ; HlsManifests ! : List < HlsManifest > ; SegmentDurationSeconds ? : Value < number > ; UseAudioRenditionGroup ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class HlsManifest { AdMarkers ? : Value < string > ; IncludeIframeOnlyStream ? : Value < boolean > ; ManifestName ? : Value < string > ; ProgramDateTimeIntervalSeconds ? : Value < number > ; RepeatExtXKey ? : Value < boolean > ; StreamSelection ? : StreamSelection ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface PackagingConfigurationProperties { Id : Value < string > ; PackagingGroupId : Value < string > ; CmafPackage ? : CmafPackage ; DashPackage ? : DashPackage ; HlsPackage ? : HlsPackage ; MssPackage ? : MssPackage ; Tags ? : List < ResourceTag > ; } export default class PackagingConfiguration extends ResourceBase < PackagingConfigurationProperties > { static DashEncryption = DashEncryption ; static SpekeKeyProvider = SpekeKeyProvider ; static CmafPackage = CmafPackage ; static DashPackage = DashPackage ; static DashManifest = DashManifest ; static HlsEncryption = HlsEncryption ; static MssManifest = MssManifest ; static CmafEncryption = CmafEncryption ; static MssEncryption = MssEncryption ; static StreamSelection = StreamSelection ; static MssPackage = MssPackage ; static HlsPackage = HlsPackage ; static HlsManifest = HlsManifest ; constructor ( properties ) { super ( 'AWS::MediaPackage::PackagingConfiguration' , properties ) ; } }