VaporShell.MediaPackage.Classes.ps1

using namespace System
using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.IO
using namespace System.Management.Automation
[CmdletBinding()]
Param()

Write-Verbose "Importing class 'MediaPackageOriginEndpointStreamSelection'"

class MediaPackageOriginEndpointStreamSelection : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointStreamSelection'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-streamselection.html'

    hidden [object] $_minVideoBitsPerSecond
    hidden [object] $_maxVideoBitsPerSecond
    hidden [object] $_streamOrder

    [int] $MinVideoBitsPerSecond
    [int] $MaxVideoBitsPerSecond
    [string] $StreamOrder

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinVideoBitsPerSecond -Value {
            $this._minVideoBitsPerSecond
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minVideoBitsPerSecond = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxVideoBitsPerSecond -Value {
            $this._maxVideoBitsPerSecond
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxVideoBitsPerSecond = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamOrder -Value {
            $this._streamOrder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamOrder = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointStreamSelection() : base() {}
    MediaPackageOriginEndpointStreamSelection([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointStreamSelection([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointCmafPackage'"

class MediaPackageOriginEndpointCmafPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointCmafPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafpackage.html'

    hidden [object] $_segmentDurationSeconds
    hidden [object] $_segmentPrefix
    hidden [object] $_encryption
    hidden [object] $_streamSelection
    hidden [object] $_hlsManifests

    [int] $SegmentDurationSeconds
    [string] $SegmentPrefix
    [MediaPackageOriginEndpointCmafEncryption] $Encryption
    [MediaPackageOriginEndpointStreamSelection] $StreamSelection
    [MediaPackageOriginEndpointHlsManifest[]] $HlsManifests

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentPrefix -Value {
            $this._segmentPrefix
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentPrefix = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointCmafEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HlsManifests -Value {
            $this._hlsManifests
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointHlsManifest], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._hlsManifests = $value
        }
    }

    MediaPackageOriginEndpointCmafPackage() : base() {}
    MediaPackageOriginEndpointCmafPackage([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointCmafPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationDashEncryption'"

class MediaPackagePackagingConfigurationDashEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationDashEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashencryption.html'

    hidden [object] $_spekeKeyProvider

    [MediaPackagePackagingConfigurationSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackagePackagingConfigurationDashEncryption() : base() {}
    MediaPackagePackagingConfigurationDashEncryption([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationDashEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointMssEncryption'"

class MediaPackageOriginEndpointMssEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointMssEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-mssencryption.html'

    hidden [object] $_spekeKeyProvider

    [MediaPackageOriginEndpointSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackageOriginEndpointMssEncryption() : base() {}
    MediaPackageOriginEndpointMssEncryption([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointMssEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingGroupLogConfiguration'"

class MediaPackagePackagingGroupLogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingGroupLogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-logconfiguration.html'

    hidden [object] $_logGroupName

    [string] $LogGroupName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogGroupName -Value {
            $this._logGroupName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._logGroupName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackagePackagingGroupLogConfiguration() : base() {}
    MediaPackagePackagingGroupLogConfiguration([IDictionary] $props) : base($props) {}
    MediaPackagePackagingGroupLogConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointAuthorization'"

class MediaPackageOriginEndpointAuthorization : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointAuthorization'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-authorization.html'

    hidden [object] $_secretsRoleArn
    hidden [object] $_cdnIdentifierSecret

    [string] $SecretsRoleArn
    [string] $CdnIdentifierSecret

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsRoleArn -Value {
            $this._secretsRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdnIdentifierSecret -Value {
            $this._cdnIdentifierSecret
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdnIdentifierSecret = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointAuthorization() : base() {}
    MediaPackageOriginEndpointAuthorization([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointAuthorization([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationSpekeKeyProvider'"

class MediaPackagePackagingConfigurationSpekeKeyProvider : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationSpekeKeyProvider'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-spekekeyprovider.html'

    hidden [object] $_roleArn
    hidden [object] $_systemIds
    hidden [object] $_url

    [string] $RoleArn
    [string[]] $SystemIds
    [string] $Url

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SystemIds -Value {
            $this._systemIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._systemIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackagePackagingConfigurationSpekeKeyProvider() : base() {}
    MediaPackagePackagingConfigurationSpekeKeyProvider([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationSpekeKeyProvider([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationCmafPackage'"

class MediaPackagePackagingConfigurationCmafPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationCmafPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafpackage.html'

    hidden [object] $_encryption
    hidden [object] $_hlsManifests
    hidden [object] $_segmentDurationSeconds
    hidden [object] $_includeEncoderConfigurationInSegments

    [MediaPackagePackagingConfigurationCmafEncryption] $Encryption
    [MediaPackagePackagingConfigurationHlsManifest[]] $HlsManifests
    [int] $SegmentDurationSeconds
    [bool] $IncludeEncoderConfigurationInSegments

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationCmafEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HlsManifests -Value {
            $this._hlsManifests
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationHlsManifest], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._hlsManifests = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeEncoderConfigurationInSegments -Value {
            $this._includeEncoderConfigurationInSegments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeEncoderConfigurationInSegments = $value
        }
    }

    MediaPackagePackagingConfigurationCmafPackage() : base() {}
    MediaPackagePackagingConfigurationCmafPackage([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationCmafPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationDashPackage'"

class MediaPackagePackagingConfigurationDashPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationDashPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashpackage.html'

    hidden [object] $_dashManifests
    hidden [object] $_encryption
    hidden [object] $_periodTriggers
    hidden [object] $_segmentDurationSeconds
    hidden [object] $_segmentTemplateFormat
    hidden [object] $_includeEncoderConfigurationInSegments

    [MediaPackagePackagingConfigurationDashManifest[]] $DashManifests
    [MediaPackagePackagingConfigurationDashEncryption] $Encryption
    [string[]] $PeriodTriggers
    [int] $SegmentDurationSeconds
    [string] $SegmentTemplateFormat
    [bool] $IncludeEncoderConfigurationInSegments

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DashManifests -Value {
            $this._dashManifests
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationDashManifest], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dashManifests = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationDashEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PeriodTriggers -Value {
            $this._periodTriggers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._periodTriggers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentTemplateFormat -Value {
            $this._segmentTemplateFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentTemplateFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeEncoderConfigurationInSegments -Value {
            $this._includeEncoderConfigurationInSegments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeEncoderConfigurationInSegments = $value
        }
    }

    MediaPackagePackagingConfigurationDashPackage() : base() {}
    MediaPackagePackagingConfigurationDashPackage([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationDashPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationDashManifest'"

class MediaPackagePackagingConfigurationDashManifest : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationDashManifest'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-dashmanifest.html'

    hidden [object] $_manifestLayout
    hidden [object] $_manifestName
    hidden [object] $_minBufferTimeSeconds
    hidden [object] $_profile
    hidden [object] $_streamSelection

    [string] $ManifestLayout
    [string] $ManifestName
    [int] $MinBufferTimeSeconds
    [string] $Profile
    [MediaPackagePackagingConfigurationStreamSelection] $StreamSelection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestLayout -Value {
            $this._manifestLayout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestLayout = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestName -Value {
            $this._manifestName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinBufferTimeSeconds -Value {
            $this._minBufferTimeSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minBufferTimeSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Profile -Value {
            $this._profile
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._profile = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
    }

    MediaPackagePackagingConfigurationDashManifest() : base() {}
    MediaPackagePackagingConfigurationDashManifest([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationDashManifest([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageChannelLogConfiguration'"

class MediaPackageChannelLogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageChannelLogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-channel-logconfiguration.html'

    hidden [object] $_logGroupName

    [string] $LogGroupName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogGroupName -Value {
            $this._logGroupName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._logGroupName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageChannelLogConfiguration() : base() {}
    MediaPackageChannelLogConfiguration([IDictionary] $props) : base($props) {}
    MediaPackageChannelLogConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointDashPackage'"

class MediaPackageOriginEndpointDashPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointDashPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashpackage.html'

    hidden [object] $_segmentDurationSeconds
    hidden [object] $_manifestWindowSeconds
    hidden [object] $_profile
    hidden [object] $_minUpdatePeriodSeconds
    hidden [object] $_minBufferTimeSeconds
    hidden [object] $_suggestedPresentationDelaySeconds
    hidden [object] $_periodTriggers
    hidden [object] $_manifestLayout
    hidden [object] $_segmentTemplateFormat
    hidden [object] $_adTriggers
    hidden [object] $_adsOnDeliveryRestrictions
    hidden [object] $_encryption
    hidden [object] $_streamSelection
    hidden [object] $_utcTiming
    hidden [object] $_utcTimingUri

    [int] $SegmentDurationSeconds
    [int] $ManifestWindowSeconds
    [string] $Profile
    [int] $MinUpdatePeriodSeconds
    [int] $MinBufferTimeSeconds
    [int] $SuggestedPresentationDelaySeconds
    [string[]] $PeriodTriggers
    [string] $ManifestLayout
    [string] $SegmentTemplateFormat
    [string[]] $AdTriggers
    [string] $AdsOnDeliveryRestrictions
    [MediaPackageOriginEndpointDashEncryption] $Encryption
    [MediaPackageOriginEndpointStreamSelection] $StreamSelection
    [string] $UtcTiming
    [string] $UtcTimingUri

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestWindowSeconds -Value {
            $this._manifestWindowSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestWindowSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Profile -Value {
            $this._profile
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._profile = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinUpdatePeriodSeconds -Value {
            $this._minUpdatePeriodSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minUpdatePeriodSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinBufferTimeSeconds -Value {
            $this._minBufferTimeSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minBufferTimeSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SuggestedPresentationDelaySeconds -Value {
            $this._suggestedPresentationDelaySeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._suggestedPresentationDelaySeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PeriodTriggers -Value {
            $this._periodTriggers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._periodTriggers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestLayout -Value {
            $this._manifestLayout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestLayout = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentTemplateFormat -Value {
            $this._segmentTemplateFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentTemplateFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdTriggers -Value {
            $this._adTriggers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._adTriggers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdsOnDeliveryRestrictions -Value {
            $this._adsOnDeliveryRestrictions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adsOnDeliveryRestrictions = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointDashEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UtcTiming -Value {
            $this._utcTiming
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._utcTiming = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UtcTimingUri -Value {
            $this._utcTimingUri
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._utcTimingUri = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointDashPackage() : base() {}
    MediaPackageOriginEndpointDashPackage([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointDashPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationHlsEncryption'"

class MediaPackagePackagingConfigurationHlsEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationHlsEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsencryption.html'

    hidden [object] $_constantInitializationVector
    hidden [object] $_encryptionMethod
    hidden [object] $_spekeKeyProvider

    [string] $ConstantInitializationVector
    [string] $EncryptionMethod
    [MediaPackagePackagingConfigurationSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConstantInitializationVector -Value {
            $this._constantInitializationVector
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._constantInitializationVector = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionMethod -Value {
            $this._encryptionMethod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryptionMethod = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackagePackagingConfigurationHlsEncryption() : base() {}
    MediaPackagePackagingConfigurationHlsEncryption([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationHlsEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointDashEncryption'"

class MediaPackageOriginEndpointDashEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointDashEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-dashencryption.html'

    hidden [object] $_keyRotationIntervalSeconds
    hidden [object] $_spekeKeyProvider

    [int] $KeyRotationIntervalSeconds
    [MediaPackageOriginEndpointSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyRotationIntervalSeconds -Value {
            $this._keyRotationIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyRotationIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackageOriginEndpointDashEncryption() : base() {}
    MediaPackageOriginEndpointDashEncryption([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointDashEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingGroupAuthorization'"

class MediaPackagePackagingGroupAuthorization : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingGroupAuthorization'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packaginggroup-authorization.html'

    hidden [object] $_cdnIdentifierSecret
    hidden [object] $_secretsRoleArn

    [string] $CdnIdentifierSecret
    [string] $SecretsRoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdnIdentifierSecret -Value {
            $this._cdnIdentifierSecret
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdnIdentifierSecret = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsRoleArn -Value {
            $this._secretsRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackagePackagingGroupAuthorization() : base() {}
    MediaPackagePackagingGroupAuthorization([IDictionary] $props) : base($props) {}
    MediaPackagePackagingGroupAuthorization([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointHlsManifest'"

class MediaPackageOriginEndpointHlsManifest : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointHlsManifest'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsmanifest.html'

    hidden [object] $_id
    hidden [object] $_manifestName
    hidden [object] $_url
    hidden [object] $_playlistWindowSeconds
    hidden [object] $_playlistType
    hidden [object] $_adMarkers
    hidden [object] $_programDateTimeIntervalSeconds
    hidden [object] $_includeIframeOnlyStream
    hidden [object] $_adTriggers
    hidden [object] $_adsOnDeliveryRestrictions

    [string] $Id
    [string] $ManifestName
    [string] $Url
    [int] $PlaylistWindowSeconds
    [string] $PlaylistType
    [string] $AdMarkers
    [int] $ProgramDateTimeIntervalSeconds
    [bool] $IncludeIframeOnlyStream
    [string[]] $AdTriggers
    [string] $AdsOnDeliveryRestrictions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this._id
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._id = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestName -Value {
            $this._manifestName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlaylistWindowSeconds -Value {
            $this._playlistWindowSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._playlistWindowSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlaylistType -Value {
            $this._playlistType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._playlistType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdMarkers -Value {
            $this._adMarkers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adMarkers = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProgramDateTimeIntervalSeconds -Value {
            $this._programDateTimeIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._programDateTimeIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeIframeOnlyStream -Value {
            $this._includeIframeOnlyStream
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeIframeOnlyStream = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdTriggers -Value {
            $this._adTriggers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._adTriggers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdsOnDeliveryRestrictions -Value {
            $this._adsOnDeliveryRestrictions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adsOnDeliveryRestrictions = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointHlsManifest() : base() {}
    MediaPackageOriginEndpointHlsManifest([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointHlsManifest([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationMssManifest'"

class MediaPackagePackagingConfigurationMssManifest : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationMssManifest'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssmanifest.html'

    hidden [object] $_manifestName
    hidden [object] $_streamSelection

    [string] $ManifestName
    [MediaPackagePackagingConfigurationStreamSelection] $StreamSelection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestName -Value {
            $this._manifestName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
    }

    MediaPackagePackagingConfigurationMssManifest() : base() {}
    MediaPackagePackagingConfigurationMssManifest([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationMssManifest([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationCmafEncryption'"

class MediaPackagePackagingConfigurationCmafEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationCmafEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-cmafencryption.html'

    hidden [object] $_spekeKeyProvider

    [MediaPackagePackagingConfigurationSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackagePackagingConfigurationCmafEncryption() : base() {}
    MediaPackagePackagingConfigurationCmafEncryption([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationCmafEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationMssEncryption'"

class MediaPackagePackagingConfigurationMssEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationMssEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-mssencryption.html'

    hidden [object] $_spekeKeyProvider

    [MediaPackagePackagingConfigurationSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackagePackagingConfigurationMssEncryption() : base() {}
    MediaPackagePackagingConfigurationMssEncryption([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationMssEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationStreamSelection'"

class MediaPackagePackagingConfigurationStreamSelection : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationStreamSelection'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-streamselection.html'

    hidden [object] $_maxVideoBitsPerSecond
    hidden [object] $_minVideoBitsPerSecond
    hidden [object] $_streamOrder

    [int] $MaxVideoBitsPerSecond
    [int] $MinVideoBitsPerSecond
    [string] $StreamOrder

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxVideoBitsPerSecond -Value {
            $this._maxVideoBitsPerSecond
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxVideoBitsPerSecond = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinVideoBitsPerSecond -Value {
            $this._minVideoBitsPerSecond
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minVideoBitsPerSecond = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamOrder -Value {
            $this._streamOrder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamOrder = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackagePackagingConfigurationStreamSelection() : base() {}
    MediaPackagePackagingConfigurationStreamSelection([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationStreamSelection([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageAssetEgressEndpoint'"

class MediaPackageAssetEgressEndpoint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageAssetEgressEndpoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-asset-egressendpoint.html'

    hidden [object] $_packagingConfigurationId
    hidden [object] $_url

    [string] $PackagingConfigurationId
    [string] $Url

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PackagingConfigurationId -Value {
            $this._packagingConfigurationId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._packagingConfigurationId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageAssetEgressEndpoint() : base() {}
    MediaPackageAssetEgressEndpoint([IDictionary] $props) : base($props) {}
    MediaPackageAssetEgressEndpoint([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationMssPackage'"

class MediaPackagePackagingConfigurationMssPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationMssPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-msspackage.html'

    hidden [object] $_encryption
    hidden [object] $_mssManifests
    hidden [object] $_segmentDurationSeconds

    [MediaPackagePackagingConfigurationMssEncryption] $Encryption
    [MediaPackagePackagingConfigurationMssManifest[]] $MssManifests
    [int] $SegmentDurationSeconds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationMssEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MssManifests -Value {
            $this._mssManifests
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationMssManifest], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._mssManifests = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    MediaPackagePackagingConfigurationMssPackage() : base() {}
    MediaPackagePackagingConfigurationMssPackage([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationMssPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointSpekeKeyProvider'"

class MediaPackageOriginEndpointSpekeKeyProvider : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointSpekeKeyProvider'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-spekekeyprovider.html'

    hidden [object] $_resourceId
    hidden [object] $_systemIds
    hidden [object] $_url
    hidden [object] $_roleArn
    hidden [object] $_certificateArn

    [string] $ResourceId
    [string[]] $SystemIds
    [string] $Url
    [string] $RoleArn
    [string] $CertificateArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceId -Value {
            $this._resourceId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._resourceId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SystemIds -Value {
            $this._systemIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._systemIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateArn -Value {
            $this._certificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointSpekeKeyProvider() : base() {}
    MediaPackageOriginEndpointSpekeKeyProvider([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointSpekeKeyProvider([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointCmafEncryption'"

class MediaPackageOriginEndpointCmafEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointCmafEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-cmafencryption.html'

    hidden [object] $_keyRotationIntervalSeconds
    hidden [object] $_spekeKeyProvider
    hidden [object] $_constantInitializationVector

    [int] $KeyRotationIntervalSeconds
    [MediaPackageOriginEndpointSpekeKeyProvider] $SpekeKeyProvider
    [string] $ConstantInitializationVector

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyRotationIntervalSeconds -Value {
            $this._keyRotationIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyRotationIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConstantInitializationVector -Value {
            $this._constantInitializationVector
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._constantInitializationVector = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    MediaPackageOriginEndpointCmafEncryption() : base() {}
    MediaPackageOriginEndpointCmafEncryption([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointCmafEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointHlsEncryption'"

class MediaPackageOriginEndpointHlsEncryption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointHlsEncryption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlsencryption.html'

    hidden [object] $_encryptionMethod
    hidden [object] $_constantInitializationVector
    hidden [object] $_keyRotationIntervalSeconds
    hidden [object] $_repeatExtXKey
    hidden [object] $_spekeKeyProvider

    [string] $EncryptionMethod
    [string] $ConstantInitializationVector
    [int] $KeyRotationIntervalSeconds
    [bool] $RepeatExtXKey
    [MediaPackageOriginEndpointSpekeKeyProvider] $SpekeKeyProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionMethod -Value {
            $this._encryptionMethod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryptionMethod = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConstantInitializationVector -Value {
            $this._constantInitializationVector
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._constantInitializationVector = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyRotationIntervalSeconds -Value {
            $this._keyRotationIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyRotationIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RepeatExtXKey -Value {
            $this._repeatExtXKey
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._repeatExtXKey = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpekeKeyProvider -Value {
            $this._spekeKeyProvider
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointSpekeKeyProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spekeKeyProvider = $value
        }
    }

    MediaPackageOriginEndpointHlsEncryption() : base() {}
    MediaPackageOriginEndpointHlsEncryption([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointHlsEncryption([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointMssPackage'"

class MediaPackageOriginEndpointMssPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointMssPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-msspackage.html'

    hidden [object] $_manifestWindowSeconds
    hidden [object] $_segmentDurationSeconds
    hidden [object] $_encryption
    hidden [object] $_streamSelection

    [int] $ManifestWindowSeconds
    [int] $SegmentDurationSeconds
    [MediaPackageOriginEndpointMssEncryption] $Encryption
    [MediaPackageOriginEndpointStreamSelection] $StreamSelection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestWindowSeconds -Value {
            $this._manifestWindowSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestWindowSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointMssEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
    }

    MediaPackageOriginEndpointMssPackage() : base() {}
    MediaPackageOriginEndpointMssPackage([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointMssPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationHlsPackage'"

class MediaPackagePackagingConfigurationHlsPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationHlsPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlspackage.html'

    hidden [object] $_encryption
    hidden [object] $_hlsManifests
    hidden [object] $_segmentDurationSeconds
    hidden [object] $_useAudioRenditionGroup

    [MediaPackagePackagingConfigurationHlsEncryption] $Encryption
    [MediaPackagePackagingConfigurationHlsManifest[]] $HlsManifests
    [int] $SegmentDurationSeconds
    [bool] $UseAudioRenditionGroup

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationHlsEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HlsManifests -Value {
            $this._hlsManifests
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationHlsManifest], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._hlsManifests = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseAudioRenditionGroup -Value {
            $this._useAudioRenditionGroup
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useAudioRenditionGroup = $value
        }
    }

    MediaPackagePackagingConfigurationHlsPackage() : base() {}
    MediaPackagePackagingConfigurationHlsPackage([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationHlsPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpointHlsPackage'"

class MediaPackageOriginEndpointHlsPackage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackageOriginEndpointHlsPackage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-originendpoint-hlspackage.html'

    hidden [object] $_segmentDurationSeconds
    hidden [object] $_playlistWindowSeconds
    hidden [object] $_playlistType
    hidden [object] $_adMarkers
    hidden [object] $_adTriggers
    hidden [object] $_adsOnDeliveryRestrictions
    hidden [object] $_programDateTimeIntervalSeconds
    hidden [object] $_includeIframeOnlyStream
    hidden [object] $_useAudioRenditionGroup
    hidden [object] $_encryption
    hidden [object] $_streamSelection

    [int] $SegmentDurationSeconds
    [int] $PlaylistWindowSeconds
    [string] $PlaylistType
    [string] $AdMarkers
    [string[]] $AdTriggers
    [string] $AdsOnDeliveryRestrictions
    [int] $ProgramDateTimeIntervalSeconds
    [bool] $IncludeIframeOnlyStream
    [bool] $UseAudioRenditionGroup
    [MediaPackageOriginEndpointHlsEncryption] $Encryption
    [MediaPackageOriginEndpointStreamSelection] $StreamSelection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SegmentDurationSeconds -Value {
            $this._segmentDurationSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._segmentDurationSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlaylistWindowSeconds -Value {
            $this._playlistWindowSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._playlistWindowSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlaylistType -Value {
            $this._playlistType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._playlistType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdMarkers -Value {
            $this._adMarkers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adMarkers = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdTriggers -Value {
            $this._adTriggers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._adTriggers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdsOnDeliveryRestrictions -Value {
            $this._adsOnDeliveryRestrictions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adsOnDeliveryRestrictions = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProgramDateTimeIntervalSeconds -Value {
            $this._programDateTimeIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._programDateTimeIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeIframeOnlyStream -Value {
            $this._includeIframeOnlyStream
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeIframeOnlyStream = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseAudioRenditionGroup -Value {
            $this._useAudioRenditionGroup
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useAudioRenditionGroup = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Encryption -Value {
            $this._encryption
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointHlsEncryption], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryption = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
    }

    MediaPackageOriginEndpointHlsPackage() : base() {}
    MediaPackageOriginEndpointHlsPackage([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpointHlsPackage([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfigurationHlsManifest'"

class MediaPackagePackagingConfigurationHlsManifest : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSMediaPackagePackagingConfigurationHlsManifest'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackage-packagingconfiguration-hlsmanifest.html'

    hidden [object] $_adMarkers
    hidden [object] $_includeIframeOnlyStream
    hidden [object] $_manifestName
    hidden [object] $_programDateTimeIntervalSeconds
    hidden [object] $_repeatExtXKey
    hidden [object] $_streamSelection

    [string] $AdMarkers
    [bool] $IncludeIframeOnlyStream
    [string] $ManifestName
    [int] $ProgramDateTimeIntervalSeconds
    [bool] $RepeatExtXKey
    [MediaPackagePackagingConfigurationStreamSelection] $StreamSelection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdMarkers -Value {
            $this._adMarkers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._adMarkers = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeIframeOnlyStream -Value {
            $this._includeIframeOnlyStream
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeIframeOnlyStream = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestName -Value {
            $this._manifestName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._manifestName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProgramDateTimeIntervalSeconds -Value {
            $this._programDateTimeIntervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._programDateTimeIntervalSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RepeatExtXKey -Value {
            $this._repeatExtXKey
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._repeatExtXKey = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSelection -Value {
            $this._streamSelection
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationStreamSelection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamSelection = $value
        }
    }

    MediaPackagePackagingConfigurationHlsManifest() : base() {}
    MediaPackagePackagingConfigurationHlsManifest([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfigurationHlsManifest([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageChannel'"

class MediaPackageChannel : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSMediaPackageChannel'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-channel.html'

    hidden [string[]] $_attributes = @('Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::MediaPackage::Channel'
    [string] $Id
    [string] $Description
    [VSTag[]] $Tags
    [MediaPackageChannelLogConfiguration] $EgressAccessLogs
    [MediaPackageChannelLogConfiguration] $IngressAccessLogs
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this.Properties['Id']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Id'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EgressAccessLogs -Value {
            $this.Properties['EgressAccessLogs']
        } -SecondValue {
            param([ValidateType(([MediaPackageChannelLogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EgressAccessLogs'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IngressAccessLogs -Value {
            $this.Properties['IngressAccessLogs']
        } -SecondValue {
            param([ValidateType(([MediaPackageChannelLogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IngressAccessLogs'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    MediaPackageChannel() : base() {}
    MediaPackageChannel([IDictionary] $props) : base($props) {}
    MediaPackageChannel([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingConfiguration'"

class MediaPackagePackagingConfiguration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSMediaPackagePackagingConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packagingconfiguration.html'

    hidden [string[]] $_attributes = @('Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::MediaPackage::PackagingConfiguration'
    [string] $Id
    [string] $PackagingGroupId
    [MediaPackagePackagingConfigurationCmafPackage] $CmafPackage
    [MediaPackagePackagingConfigurationDashPackage] $DashPackage
    [MediaPackagePackagingConfigurationHlsPackage] $HlsPackage
    [MediaPackagePackagingConfigurationMssPackage] $MssPackage
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this.Properties['Id']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Id'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PackagingGroupId -Value {
            $this.Properties['PackagingGroupId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PackagingGroupId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CmafPackage -Value {
            $this.Properties['CmafPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationCmafPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CmafPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DashPackage -Value {
            $this.Properties['DashPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationDashPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DashPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HlsPackage -Value {
            $this.Properties['HlsPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationHlsPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HlsPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MssPackage -Value {
            $this.Properties['MssPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingConfigurationMssPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MssPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    MediaPackagePackagingConfiguration() : base() {}
    MediaPackagePackagingConfiguration([IDictionary] $props) : base($props) {}
    MediaPackagePackagingConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageAsset'"

class MediaPackageAsset : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSMediaPackageAsset'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-asset.html'

    hidden [string[]] $_attributes = @('Arn','CreatedAt','EgressEndpoints')
    hidden [object] $_condition

    [string] $Type = 'AWS::MediaPackage::Asset'
    [string] $Id
    [string] $PackagingGroupId
    [string] $ResourceId
    [string] $SourceArn
    [string] $SourceRoleArn
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this.Properties['Id']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Id'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PackagingGroupId -Value {
            $this.Properties['PackagingGroupId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PackagingGroupId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceId -Value {
            $this.Properties['ResourceId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceArn -Value {
            $this.Properties['SourceArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceRoleArn -Value {
            $this.Properties['SourceRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    MediaPackageAsset() : base() {}
    MediaPackageAsset([IDictionary] $props) : base($props) {}
    MediaPackageAsset([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackagePackagingGroup'"

class MediaPackagePackagingGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSMediaPackagePackagingGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-packaginggroup.html'

    hidden [string[]] $_attributes = @('Arn','DomainName')
    hidden [object] $_condition

    [string] $Type = 'AWS::MediaPackage::PackagingGroup'
    [string] $Id
    [MediaPackagePackagingGroupAuthorization] $Authorization
    [VSTag[]] $Tags
    [MediaPackagePackagingGroupLogConfiguration] $EgressAccessLogs
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this.Properties['Id']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Id'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Authorization -Value {
            $this.Properties['Authorization']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingGroupAuthorization], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Authorization'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EgressAccessLogs -Value {
            $this.Properties['EgressAccessLogs']
        } -SecondValue {
            param([ValidateType(([MediaPackagePackagingGroupLogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EgressAccessLogs'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    MediaPackagePackagingGroup() : base() {}
    MediaPackagePackagingGroup([IDictionary] $props) : base($props) {}
    MediaPackagePackagingGroup([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'MediaPackageOriginEndpoint'"

class MediaPackageOriginEndpoint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSMediaPackageOriginEndpoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-mediapackage-originendpoint.html'

    hidden [string[]] $_attributes = @('Arn','Url')
    hidden [object] $_condition

    [string] $Type = 'AWS::MediaPackage::OriginEndpoint'
    [string] $Id
    [string] $ChannelId
    [string] $Description
    [string[]] $Whitelist
    [int] $StartoverWindowSeconds
    [int] $TimeDelaySeconds
    [string] $ManifestName
    [string] $Origination
    [MediaPackageOriginEndpointAuthorization] $Authorization
    [MediaPackageOriginEndpointHlsPackage] $HlsPackage
    [MediaPackageOriginEndpointDashPackage] $DashPackage
    [MediaPackageOriginEndpointMssPackage] $MssPackage
    [MediaPackageOriginEndpointCmafPackage] $CmafPackage
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this.Properties['Id']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Id'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ChannelId -Value {
            $this.Properties['ChannelId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ChannelId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Whitelist -Value {
            $this.Properties['Whitelist']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Whitelist'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartoverWindowSeconds -Value {
            $this.Properties['StartoverWindowSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StartoverWindowSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeDelaySeconds -Value {
            $this.Properties['TimeDelaySeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TimeDelaySeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManifestName -Value {
            $this.Properties['ManifestName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ManifestName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Origination -Value {
            $this.Properties['Origination']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Origination'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Authorization -Value {
            $this.Properties['Authorization']
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointAuthorization], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Authorization'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HlsPackage -Value {
            $this.Properties['HlsPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointHlsPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HlsPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DashPackage -Value {
            $this.Properties['DashPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointDashPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DashPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MssPackage -Value {
            $this.Properties['MssPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointMssPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MssPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CmafPackage -Value {
            $this.Properties['CmafPackage']
        } -SecondValue {
            param([ValidateType(([MediaPackageOriginEndpointCmafPackage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CmafPackage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    MediaPackageOriginEndpoint() : base() {}
    MediaPackageOriginEndpoint([IDictionary] $props) : base($props) {}
    MediaPackageOriginEndpoint([psobject] $props) : base($props) {}
}