VaporShell.MediaLive.psm1

# PSM1 Contents
function Format-Json {
    [CmdletBinding()]
    Param (
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [String]
        $Json
    )
    Begin {
        $cleaner = {
            param([String]$Line)
            Process{
                [Regex]::Replace(
                    $Line,
                    "\\u(?<Value>[a-zA-Z0-9]{4})",
                    {
                        param($m)([char]([int]::Parse(
                            $m.Groups['Value'].Value,
                            [System.Globalization.NumberStyles]::HexNumber
                        ))).ToString()
                    }
                )
            }
        }
    }
    Process {
        if ($PSVersionTable.PSVersion.Major -lt 6) {
            try {
                $indent = 0;
                $res = $Json -split '\n' | ForEach-Object {
                    if ($_ -match '[\}\]]') {
                        # This line contains ] or }, decrement the indentation level
                        $indent--
                    }
                    $line = (' ' * $indent * 2) + $_.TrimStart().Replace(': ', ': ')
                    if ($_ -match '[\{\[]') {
                        # This line contains [ or {, increment the indentation level
                        $indent++
                    }
                    $cleaner.Invoke($line)
                }
                $res -join "`n"
            }
            catch {
                ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n"
            }
        }
        else {
            ($Json -split '\n' | ForEach-Object {$cleaner.Invoke($_)}) -join "`n"
        }
    }
}

function Get-TrueCount {
    Param
    (
        [parameter(Mandatory = $false,Position = 0,ValueFromPipeline = $true)]
        $Array
    )
    Process {
        if ($array) {
            if ($array.Count) {
                $count = $array.Count
            }
            else {
                $count = 1
            }
        }
        else {
            $count = 0
        }
    }
    End {
        return $count
    }
}

function New-VSError {
    <#
    .SYNOPSIS
    Error generator function to use in tandem with $PSCmdlet.ThrowTerminatingError()
    
    .PARAMETER Result
    Allows input of an error from AWS SDK, resulting in the Exception message being parsed out.
    
    .PARAMETER String
    Used to create basic String message errors in the same wrapper
    #>

    [cmdletbinding(DefaultParameterSetName="Result")]
    param(
        [parameter(Position=0,ParameterSetName="Result")]
        $Result,
        [parameter(Position=0,ParameterSetName="String")]
        $String
    )
    switch ($PSCmdlet.ParameterSetName) {
        Result { $Exception = "$($result.Exception.InnerException.Message)" }
        String { $Exception = "$String" }
    }
    $e = New-Object "System.Exception" $Exception
    $errorRecord = New-Object 'System.Management.Automation.ErrorRecord' $e, $null, ([System.Management.Automation.ErrorCategory]::InvalidOperation), $null
    return $errorRecord
}

function ResolveS3Endpoint {
    <#
    .SYNOPSIS
    Resolves the S3 endpoint most appropriate for each region.
    #>

    Param
    (
      [parameter(Mandatory=$true,Position=0)]
      [ValidateSet("eu-west-2","ap-south-1","us-east-2","sa-east-1","us-west-1","us-west-2","eu-west-1","ap-southeast-2","ca-central-1","ap-northeast-2","us-east-1","eu-central-1","ap-southeast-1","ap-northeast-1")]
      [String]
      $Region
    )
    $endpointMap = @{
        "us-east-2" = "s3.us-east-2.amazonaws.com"
        "us-east-1" = "s3.amazonaws.com"
        "us-west-1" = "s3-us-west-1.amazonaws.com"
        "us-west-2" = "s3-us-west-2.amazonaws.com"
        "ca-central-1" = "s3.ca-central-1.amazonaws.com"
        "ap-south-1" = "s3.ap-south-1.amazonaws.com"
        "ap-northeast-2" = "s3.ap-northeast-2.amazonaws.com"
        "ap-southeast-1" = "s3-ap-southeast-1.amazonaws.com"
        "ap-southeast-2" = "s3-ap-southeast-2.amazonaws.com"
        "ap-northeast-1" = "s3-ap-northeast-1.amazonaws.com"
        "eu-central-1" = "s3.eu-central-1.amazonaws.com"
        "eu-west-1" = "s3-eu-west-1.amazonaws.com"
        "eu-west-2" = "s3.eu-west-2.amazonaws.com"
        "sa-east-1" = "s3-sa-east-1.amazonaws.com"
    }
    return $endpointMap[$Region]
}

function Add-VSMediaLiveChannelAacSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AacSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AacSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html

    .PARAMETER CodingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-codingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RateControlMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-ratecontrolmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SampleRate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-samplerate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER InputType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-inputtype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER VbrQuality
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-vbrquality
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RawFormat
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-rawformat
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Spec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-spec
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-bitrate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER Profile
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aacsettings.html#cfn-medialive-channel-aacsettings-profile
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAacSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CodingMode,
        [parameter(Mandatory = $false)]
        [object]
        $RateControlMode,
        [parameter(Mandatory = $false)]
        [object]
        $SampleRate,
        [parameter(Mandatory = $false)]
        [object]
        $InputType,
        [parameter(Mandatory = $false)]
        [object]
        $VbrQuality,
        [parameter(Mandatory = $false)]
        [object]
        $RawFormat,
        [parameter(Mandatory = $false)]
        [object]
        $Spec,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate,
        [parameter(Mandatory = $false)]
        [object]
        $Profile
    )
    Process {
        $obj = [MediaLiveChannelAacSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAacSettings'

function Add-VSMediaLiveChannelAc3Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Ac3Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Ac3Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html

    .PARAMETER CodingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-codingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DrcProfile
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-drcprofile
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MetadataControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-metadatacontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Dialnorm
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-dialnorm
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER LfeFilter
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-lfefilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BitstreamMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-bitstreammode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ac3settings.html#cfn-medialive-channel-ac3settings-bitrate
        PrimitiveType: Double
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAc3Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CodingMode,
        [parameter(Mandatory = $false)]
        [object]
        $DrcProfile,
        [parameter(Mandatory = $false)]
        [object]
        $MetadataControl,
        [parameter(Mandatory = $false)]
        [object]
        $Dialnorm,
        [parameter(Mandatory = $false)]
        [object]
        $LfeFilter,
        [parameter(Mandatory = $false)]
        [object]
        $BitstreamMode,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate
    )
    Process {
        $obj = [MediaLiveChannelAc3Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAc3Settings'

function Add-VSMediaLiveChannelAncillarySourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AncillarySourceSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AncillarySourceSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html

    .PARAMETER SourceAncillaryChannelNumber
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ancillarysourcesettings.html#cfn-medialive-channel-ancillarysourcesettings-sourceancillarychannelnumber
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAncillarySourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $SourceAncillaryChannelNumber
    )
    Process {
        $obj = [MediaLiveChannelAncillarySourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAncillarySourceSettings'

function Add-VSMediaLiveChannelArchiveContainerSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.ArchiveContainerSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.ArchiveContainerSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html

    .PARAMETER RawSettings
        Type: RawSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html#cfn-medialive-channel-archivecontainersettings-rawsettings
        UpdateType: Mutable

    .PARAMETER M2tsSettings
        Type: M2tsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivecontainersettings.html#cfn-medialive-channel-archivecontainersettings-m2tssettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelArchiveContainerSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $RawSettings,
        [parameter(Mandatory = $false)]
        $M2tsSettings
    )
    Process {
        $obj = [MediaLiveChannelArchiveContainerSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelArchiveContainerSettings'

function Add-VSMediaLiveChannelArchiveGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.ArchiveGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.ArchiveGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html#cfn-medialive-channel-archivegroupsettings-destination
        UpdateType: Mutable

    .PARAMETER RolloverInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archivegroupsettings.html#cfn-medialive-channel-archivegroupsettings-rolloverinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelArchiveGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination,
        [parameter(Mandatory = $false)]
        [object]
        $RolloverInterval
    )
    Process {
        $obj = [MediaLiveChannelArchiveGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelArchiveGroupSettings'

function Add-VSMediaLiveChannelArchiveOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.ArchiveOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.ArchiveOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html

    .PARAMETER Extension
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-extension
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NameModifier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-namemodifier
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ContainerSettings
        Type: ArchiveContainerSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-archiveoutputsettings.html#cfn-medialive-channel-archiveoutputsettings-containersettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelArchiveOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Extension,
        [parameter(Mandatory = $false)]
        [object]
        $NameModifier,
        [parameter(Mandatory = $false)]
        $ContainerSettings
    )
    Process {
        $obj = [MediaLiveChannelArchiveOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelArchiveOutputSettings'

function Add-VSMediaLiveChannelAribDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AribDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AribDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribdestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAribDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelAribDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAribDestinationSettings'

function Add-VSMediaLiveChannelAribSourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AribSourceSettings resource property to the template. Information about the ARIB captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AribSourceSettings resource property to the template.
Information about the ARIB captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-aribsourcesettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAribSourceSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelAribSourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAribSourceSettings'

function Add-VSMediaLiveChannelAudioChannelMapping {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioChannelMapping resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioChannelMapping resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html

    .PARAMETER OutputChannel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html#cfn-medialive-channel-audiochannelmapping-outputchannel
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER InputChannelLevels
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiochannelmapping.html#cfn-medialive-channel-audiochannelmapping-inputchannellevels
        ItemType: InputChannelLevel
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioChannelMapping])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $OutputChannel,
        [parameter(Mandatory = $false)]
        [object]
        $InputChannelLevels
    )
    Process {
        $obj = [MediaLiveChannelAudioChannelMapping]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioChannelMapping'

function Add-VSMediaLiveChannelAudioCodecSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioCodecSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioCodecSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html

    .PARAMETER Eac3Settings
        Type: Eac3Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-eac3settings
        UpdateType: Mutable

    .PARAMETER Ac3Settings
        Type: Ac3Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-ac3settings
        UpdateType: Mutable

    .PARAMETER Mp2Settings
        Type: Mp2Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-mp2settings
        UpdateType: Mutable

    .PARAMETER PassThroughSettings
        Type: PassThroughSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-passthroughsettings
        UpdateType: Mutable

    .PARAMETER WavSettings
        Type: WavSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-wavsettings
        UpdateType: Mutable

    .PARAMETER AacSettings
        Type: AacSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiocodecsettings.html#cfn-medialive-channel-audiocodecsettings-aacsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioCodecSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Eac3Settings,
        [parameter(Mandatory = $false)]
        $Ac3Settings,
        [parameter(Mandatory = $false)]
        $Mp2Settings,
        [parameter(Mandatory = $false)]
        $PassThroughSettings,
        [parameter(Mandatory = $false)]
        $WavSettings,
        [parameter(Mandatory = $false)]
        $AacSettings
    )
    Process {
        $obj = [MediaLiveChannelAudioCodecSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioCodecSettings'

function Add-VSMediaLiveChannelAudioDescription {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioDescription resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioDescription resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html

    .PARAMETER AudioNormalizationSettings
        Type: AudioNormalizationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audionormalizationsettings
        UpdateType: Mutable

    .PARAMETER LanguageCode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-languagecode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RemixSettings
        Type: RemixSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-remixsettings
        UpdateType: Mutable

    .PARAMETER AudioSelectorName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audioselectorname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER StreamName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-streamname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LanguageCodeControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-languagecodecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audiotype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioTypeControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-audiotypecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CodecSettings
        Type: AudioCodecSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-codecsettings
        UpdateType: Mutable

    .PARAMETER Name
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiodescription.html#cfn-medialive-channel-audiodescription-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioDescription])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $AudioNormalizationSettings,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCode,
        [parameter(Mandatory = $false)]
        $RemixSettings,
        [parameter(Mandatory = $false)]
        [object]
        $AudioSelectorName,
        [parameter(Mandatory = $false)]
        [object]
        $StreamName,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCodeControl,
        [parameter(Mandatory = $false)]
        [object]
        $AudioType,
        [parameter(Mandatory = $false)]
        [object]
        $AudioTypeControl,
        [parameter(Mandatory = $false)]
        $CodecSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelAudioDescription]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioDescription'

function Add-VSMediaLiveChannelAudioLanguageSelection {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioLanguageSelection resource property to the template. Information about the audio language to extract.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioLanguageSelection resource property to the template.
Information about the audio language to extract.

The parent of this entity is AudioSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html

    .PARAMETER LanguageCode
        Selects a specific three-letter language code from within an audio source.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languagecode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LanguageSelectionPolicy
        When set to "strict," the transport stream demux strictly identifies audio streams by their language descriptor. If a PMT update occurs such that an audio stream matching the initially selected language is no longer present, then mute is encoded until the language returns. If set to "loose," then on a PMT update the demux chooses another audio stream in the program with the same stream type if it can't find one with the same language.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiolanguageselection.html#cfn-medialive-channel-audiolanguageselection-languageselectionpolicy
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioLanguageSelection])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCode,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageSelectionPolicy
    )
    Process {
        $obj = [MediaLiveChannelAudioLanguageSelection]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioLanguageSelection'

function Add-VSMediaLiveChannelAudioNormalizationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioNormalizationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioNormalizationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html

    .PARAMETER TargetLkfs
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-targetlkfs
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER Algorithm
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-algorithm
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AlgorithmControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audionormalizationsettings.html#cfn-medialive-channel-audionormalizationsettings-algorithmcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioNormalizationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $TargetLkfs,
        [parameter(Mandatory = $false)]
        [object]
        $Algorithm,
        [parameter(Mandatory = $false)]
        [object]
        $AlgorithmControl
    )
    Process {
        $obj = [MediaLiveChannelAudioNormalizationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioNormalizationSettings'

function Add-VSMediaLiveChannelAudioOnlyHlsSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioOnlyHlsSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioOnlyHlsSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html

    .PARAMETER SegmentType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-segmenttype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioTrackType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audiotracktype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioOnlyImage
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audioonlyimage
        UpdateType: Mutable

    .PARAMETER AudioGroupId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioonlyhlssettings.html#cfn-medialive-channel-audioonlyhlssettings-audiogroupid
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioOnlyHlsSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $SegmentType,
        [parameter(Mandatory = $false)]
        [object]
        $AudioTrackType,
        [parameter(Mandatory = $false)]
        $AudioOnlyImage,
        [parameter(Mandatory = $false)]
        [object]
        $AudioGroupId
    )
    Process {
        $obj = [MediaLiveChannelAudioOnlyHlsSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioOnlyHlsSettings'

function Add-VSMediaLiveChannelAudioPidSelection {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioPidSelection resource property to the template. Used to extract audio by The PID.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioPidSelection resource property to the template.
Used to extract audio by The PID.

The parent of this entity is AudioSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html

    .PARAMETER Pid
        Select the audio by this PID.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiopidselection.html#cfn-medialive-channel-audiopidselection-pid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioPidSelection])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Pid
    )
    Process {
        $obj = [MediaLiveChannelAudioPidSelection]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioPidSelection'

function Add-VSMediaLiveChannelAudioSelector {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioSelector resource property to the template. Information about one audio to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioSelector resource property to the template.
Information about one audio to extract from the input.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html

    .PARAMETER SelectorSettings
        Information about the specific audio to extract from the input.

        Type: AudioSelectorSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-selectorsettings
        UpdateType: Mutable

    .PARAMETER Name
        A name for this AudioSelector.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselector.html#cfn-medialive-channel-audioselector-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioSelector])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $SelectorSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelAudioSelector]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioSelector'

function Add-VSMediaLiveChannelAudioSelectorSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioSelectorSettings resource property to the template. Information about the audio to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioSelectorSettings resource property to the template.
Information about the audio to extract from the input.

The parent of this entity is AudioSelector.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html

    .PARAMETER AudioPidSelection
        The PID of the audio to select.

        Type: AudioPidSelection
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiopidselection
        UpdateType: Mutable

    .PARAMETER AudioLanguageSelection
        The language code of the audio to select.

        Type: AudioLanguageSelection
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiolanguageselection
        UpdateType: Mutable

    .PARAMETER AudioTrackSelection
        *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt

        Type: AudioTrackSelection
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audioselectorsettings.html#cfn-medialive-channel-audioselectorsettings-audiotrackselection
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioSelectorSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $AudioPidSelection,
        [parameter(Mandatory = $false)]
        $AudioLanguageSelection,
        [parameter(Mandatory = $false)]
        $AudioTrackSelection
    )
    Process {
        $obj = [MediaLiveChannelAudioSelectorSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioSelectorSettings'

function Add-VSMediaLiveChannelAudioSilenceFailoverSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioSilenceFailoverSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioSilenceFailoverSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html

    .PARAMETER AudioSelectorName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html#cfn-medialive-channel-audiosilencefailoversettings-audioselectorname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioSilenceThresholdMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiosilencefailoversettings.html#cfn-medialive-channel-audiosilencefailoversettings-audiosilencethresholdmsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioSilenceFailoverSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AudioSelectorName,
        [parameter(Mandatory = $false)]
        [object]
        $AudioSilenceThresholdMsec
    )
    Process {
        $obj = [MediaLiveChannelAudioSilenceFailoverSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioSilenceFailoverSettings'

function Add-VSMediaLiveChannelAudioTrack {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioTrack resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioTrack resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html

    .PARAMETER Track
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrack.html#cfn-medialive-channel-audiotrack-track
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioTrack])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Track
    )
    Process {
        $obj = [MediaLiveChannelAudioTrack]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioTrack'

function Add-VSMediaLiveChannelAudioTrackSelection {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AudioTrackSelection resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AudioTrackSelection resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html

    .PARAMETER Tracks
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-audiotrackselection.html#cfn-medialive-channel-audiotrackselection-tracks
        ItemType: AudioTrack
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAudioTrackSelection])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Tracks
    )
    Process {
        $obj = [MediaLiveChannelAudioTrackSelection]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAudioTrackSelection'

function Add-VSMediaLiveChannelAutomaticInputFailoverSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AutomaticInputFailoverSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AutomaticInputFailoverSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html

    .PARAMETER FailoverConditions
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-failoverconditions
        ItemType: FailoverCondition
        UpdateType: Mutable

    .PARAMETER InputPreference
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-inputpreference
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SecondaryInputId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-secondaryinputid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ErrorClearTimeMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-automaticinputfailoversettings.html#cfn-medialive-channel-automaticinputfailoversettings-errorcleartimemsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAutomaticInputFailoverSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FailoverConditions,
        [parameter(Mandatory = $false)]
        [object]
        $InputPreference,
        [parameter(Mandatory = $false)]
        [object]
        $SecondaryInputId,
        [parameter(Mandatory = $false)]
        [object]
        $ErrorClearTimeMsec
    )
    Process {
        $obj = [MediaLiveChannelAutomaticInputFailoverSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAutomaticInputFailoverSettings'

function Add-VSMediaLiveChannelAvailBlanking {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AvailBlanking resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AvailBlanking resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html

    .PARAMETER State
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html#cfn-medialive-channel-availblanking-state
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AvailBlankingImage
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availblanking.html#cfn-medialive-channel-availblanking-availblankingimage
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAvailBlanking])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $State,
        [parameter(Mandatory = $false)]
        $AvailBlankingImage
    )
    Process {
        $obj = [MediaLiveChannelAvailBlanking]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAvailBlanking'

function Add-VSMediaLiveChannelAvailConfiguration {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AvailConfiguration resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AvailConfiguration resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html

    .PARAMETER AvailSettings
        Type: AvailSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availconfiguration.html#cfn-medialive-channel-availconfiguration-availsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAvailConfiguration])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $AvailSettings
    )
    Process {
        $obj = [MediaLiveChannelAvailConfiguration]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAvailConfiguration'

function Add-VSMediaLiveChannelAvailSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.AvailSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.AvailSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html

    .PARAMETER Scte35SpliceInsert
        Type: Scte35SpliceInsert
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html#cfn-medialive-channel-availsettings-scte35spliceinsert
        UpdateType: Mutable

    .PARAMETER Scte35TimeSignalApos
        Type: Scte35TimeSignalApos
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-availsettings.html#cfn-medialive-channel-availsettings-scte35timesignalapos
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelAvailSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Scte35SpliceInsert,
        [parameter(Mandatory = $false)]
        $Scte35TimeSignalApos
    )
    Process {
        $obj = [MediaLiveChannelAvailSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelAvailSettings'

function Add-VSMediaLiveChannelBlackoutSlate {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.BlackoutSlate resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.BlackoutSlate resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html

    .PARAMETER NetworkEndBlackout
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkendblackout
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER State
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-state
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NetworkId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NetworkEndBlackoutImage
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-networkendblackoutimage
        UpdateType: Mutable

    .PARAMETER BlackoutSlateImage
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-blackoutslate.html#cfn-medialive-channel-blackoutslate-blackoutslateimage
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelBlackoutSlate])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NetworkEndBlackout,
        [parameter(Mandatory = $false)]
        [object]
        $State,
        [parameter(Mandatory = $false)]
        [object]
        $NetworkId,
        [parameter(Mandatory = $false)]
        $NetworkEndBlackoutImage,
        [parameter(Mandatory = $false)]
        $BlackoutSlateImage
    )
    Process {
        $obj = [MediaLiveChannelBlackoutSlate]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelBlackoutSlate'

function Add-VSMediaLiveChannelBurnInDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.BurnInDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.BurnInDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html

    .PARAMETER BackgroundOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-backgroundopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FontResolution
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontresolution
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER OutlineColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-outlinecolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FontColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontcolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ShadowColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowcolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ShadowOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Font
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-font
        UpdateType: Mutable

    .PARAMETER ShadowYOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowyoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Alignment
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-alignment
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER XPosition
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-xposition
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FontSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontsize
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER YPosition
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-yposition
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER OutlineSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-outlinesize
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TeletextGridControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-teletextgridcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FontOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-fontopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ShadowXOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-shadowxoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER BackgroundColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-burnindestinationsettings.html#cfn-medialive-channel-burnindestinationsettings-backgroundcolor
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelBurnInDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $BackgroundOpacity,
        [parameter(Mandatory = $false)]
        [object]
        $FontResolution,
        [parameter(Mandatory = $false)]
        [object]
        $OutlineColor,
        [parameter(Mandatory = $false)]
        [object]
        $FontColor,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowColor,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowOpacity,
        [parameter(Mandatory = $false)]
        $Font,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowYOffset,
        [parameter(Mandatory = $false)]
        [object]
        $Alignment,
        [parameter(Mandatory = $false)]
        [object]
        $XPosition,
        [parameter(Mandatory = $false)]
        [object]
        $FontSize,
        [parameter(Mandatory = $false)]
        [object]
        $YPosition,
        [parameter(Mandatory = $false)]
        [object]
        $OutlineSize,
        [parameter(Mandatory = $false)]
        [object]
        $TeletextGridControl,
        [parameter(Mandatory = $false)]
        [object]
        $FontOpacity,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowXOffset,
        [parameter(Mandatory = $false)]
        [object]
        $BackgroundColor
    )
    Process {
        $obj = [MediaLiveChannelBurnInDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelBurnInDestinationSettings'

function Add-VSMediaLiveChannelCaptionDescription {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CaptionDescription resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CaptionDescription resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html

    .PARAMETER DestinationSettings
        Type: CaptionDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-destinationsettings
        UpdateType: Mutable

    .PARAMETER LanguageCode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-languagecode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LanguageDescription
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-languagedescription
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CaptionSelectorName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-captionselectorname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Name
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondescription.html#cfn-medialive-channel-captiondescription-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCaptionDescription])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $DestinationSettings,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCode,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageDescription,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionSelectorName,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelCaptionDescription]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCaptionDescription'

function Add-VSMediaLiveChannelCaptionDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CaptionDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CaptionDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html

    .PARAMETER AribDestinationSettings
        Type: AribDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-aribdestinationsettings
        UpdateType: Mutable

    .PARAMETER EbuTtDDestinationSettings
        Type: EbuTtDDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-ebuttddestinationsettings
        UpdateType: Mutable

    .PARAMETER SmpteTtDestinationSettings
        Type: SmpteTtDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-smptettdestinationsettings
        UpdateType: Mutable

    .PARAMETER EmbeddedPlusScte20DestinationSettings
        Type: EmbeddedPlusScte20DestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-embeddedplusscte20destinationsettings
        UpdateType: Mutable

    .PARAMETER TtmlDestinationSettings
        Type: TtmlDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-ttmldestinationsettings
        UpdateType: Mutable

    .PARAMETER Scte20PlusEmbeddedDestinationSettings
        Type: Scte20PlusEmbeddedDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-scte20plusembeddeddestinationsettings
        UpdateType: Mutable

    .PARAMETER DvbSubDestinationSettings
        Type: DvbSubDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-dvbsubdestinationsettings
        UpdateType: Mutable

    .PARAMETER TeletextDestinationSettings
        Type: TeletextDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-teletextdestinationsettings
        UpdateType: Mutable

    .PARAMETER BurnInDestinationSettings
        Type: BurnInDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-burnindestinationsettings
        UpdateType: Mutable

    .PARAMETER WebvttDestinationSettings
        Type: WebvttDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-webvttdestinationsettings
        UpdateType: Mutable

    .PARAMETER EmbeddedDestinationSettings
        Type: EmbeddedDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-embeddeddestinationsettings
        UpdateType: Mutable

    .PARAMETER RtmpCaptionInfoDestinationSettings
        Type: RtmpCaptionInfoDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-rtmpcaptioninfodestinationsettings
        UpdateType: Mutable

    .PARAMETER Scte27DestinationSettings
        Type: Scte27DestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captiondestinationsettings.html#cfn-medialive-channel-captiondestinationsettings-scte27destinationsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCaptionDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $AribDestinationSettings,
        [parameter(Mandatory = $false)]
        $EbuTtDDestinationSettings,
        [parameter(Mandatory = $false)]
        $SmpteTtDestinationSettings,
        [parameter(Mandatory = $false)]
        $EmbeddedPlusScte20DestinationSettings,
        [parameter(Mandatory = $false)]
        $TtmlDestinationSettings,
        [parameter(Mandatory = $false)]
        $Scte20PlusEmbeddedDestinationSettings,
        [parameter(Mandatory = $false)]
        $DvbSubDestinationSettings,
        [parameter(Mandatory = $false)]
        $TeletextDestinationSettings,
        [parameter(Mandatory = $false)]
        $BurnInDestinationSettings,
        [parameter(Mandatory = $false)]
        $WebvttDestinationSettings,
        [parameter(Mandatory = $false)]
        $EmbeddedDestinationSettings,
        [parameter(Mandatory = $false)]
        $RtmpCaptionInfoDestinationSettings,
        [parameter(Mandatory = $false)]
        $Scte27DestinationSettings
    )
    Process {
        $obj = [MediaLiveChannelCaptionDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCaptionDestinationSettings'

function Add-VSMediaLiveChannelCaptionLanguageMapping {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CaptionLanguageMapping resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CaptionLanguageMapping resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html

    .PARAMETER LanguageCode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-languagecode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LanguageDescription
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-languagedescription
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CaptionChannel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionlanguagemapping.html#cfn-medialive-channel-captionlanguagemapping-captionchannel
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCaptionLanguageMapping])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCode,
        [parameter(Mandatory = $false)]
        [object]
        $LanguageDescription,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionChannel
    )
    Process {
        $obj = [MediaLiveChannelCaptionLanguageMapping]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCaptionLanguageMapping'

function Add-VSMediaLiveChannelCaptionSelector {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CaptionSelector resource property to the template. Information about one caption to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CaptionSelector resource property to the template.
Information about one caption to extract from the input.

The parent of this entity is InputSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html

    .PARAMETER LanguageCode
        When specified, this field indicates the three-letter language code of the captions track to extract from the source.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-languagecode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SelectorSettings
        Information about the specific audio to extract from the input.

        Type: CaptionSelectorSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-selectorsettings
        UpdateType: Mutable

    .PARAMETER Name
        The name identifier for a captions selector. This name is used to associate this captions selector with one or more captions descriptions. Names must be unique within a channel.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselector.html#cfn-medialive-channel-captionselector-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCaptionSelector])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $LanguageCode,
        [parameter(Mandatory = $false)]
        $SelectorSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelCaptionSelector]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCaptionSelector'

function Add-VSMediaLiveChannelCaptionSelectorSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CaptionSelectorSettings resource property to the template. Captions Selector Settings

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CaptionSelectorSettings resource property to the template.
Captions Selector Settings

The parent of this entity is CaptionSelector.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html

    .PARAMETER DvbSubSourceSettings
        Information about the DVB Sub captions to extract from the input.

        Type: DvbSubSourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-dvbsubsourcesettings
        UpdateType: Mutable

    .PARAMETER Scte27SourceSettings
        Information about the SCTE-27 captions to extract from the input.

        Type: Scte27SourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte27sourcesettings
        UpdateType: Mutable

    .PARAMETER AribSourceSettings
        Information about the ARIB captions to extract from the input.

        Type: AribSourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-aribsourcesettings
        UpdateType: Mutable

    .PARAMETER EmbeddedSourceSettings
        Information about the embedded captions to extract from the input.

        Type: EmbeddedSourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-embeddedsourcesettings
        UpdateType: Mutable

    .PARAMETER Scte20SourceSettings
        Information about the SCTE-20 captions to extract from the input.

        Type: Scte20SourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte20sourcesettings
        UpdateType: Mutable

    .PARAMETER TeletextSourceSettings
        Information about the Teletext captions to extract from the input.

        Type: TeletextSourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-teletextsourcesettings
        UpdateType: Mutable

    .PARAMETER AncillarySourceSettings
        *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt

        Type: AncillarySourceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-ancillarysourcesettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCaptionSelectorSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $DvbSubSourceSettings,
        [parameter(Mandatory = $false)]
        $Scte27SourceSettings,
        [parameter(Mandatory = $false)]
        $AribSourceSettings,
        [parameter(Mandatory = $false)]
        $EmbeddedSourceSettings,
        [parameter(Mandatory = $false)]
        $Scte20SourceSettings,
        [parameter(Mandatory = $false)]
        $TeletextSourceSettings,
        [parameter(Mandatory = $false)]
        $AncillarySourceSettings
    )
    Process {
        $obj = [MediaLiveChannelCaptionSelectorSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCaptionSelectorSettings'

function Add-VSMediaLiveChannelCdiInputSpecification {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.CdiInputSpecification resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.CdiInputSpecification resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html

    .PARAMETER Resolution
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-cdiinputspecification.html#cfn-medialive-channel-cdiinputspecification-resolution
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelCdiInputSpecification])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Resolution
    )
    Process {
        $obj = [MediaLiveChannelCdiInputSpecification]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelCdiInputSpecification'

function Add-VSMediaLiveChannelColorSpacePassthroughSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.ColorSpacePassthroughSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.ColorSpacePassthroughSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-colorspacepassthroughsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelColorSpacePassthroughSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelColorSpacePassthroughSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelColorSpacePassthroughSettings'

function Add-VSMediaLiveChannelDvbNitSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.DvbNitSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.DvbNitSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html

    .PARAMETER NetworkName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-networkname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RepInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-repinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NetworkId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbnitsettings.html#cfn-medialive-channel-dvbnitsettings-networkid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelDvbNitSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NetworkName,
        [parameter(Mandatory = $false)]
        [object]
        $RepInterval,
        [parameter(Mandatory = $false)]
        [object]
        $NetworkId
    )
    Process {
        $obj = [MediaLiveChannelDvbNitSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelDvbNitSettings'

function Add-VSMediaLiveChannelDvbSdtSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.DvbSdtSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.DvbSdtSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html

    .PARAMETER ServiceProviderName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-serviceprovidername
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER OutputSdt
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-outputsdt
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ServiceName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-servicename
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RepInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsdtsettings.html#cfn-medialive-channel-dvbsdtsettings-repinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelDvbSdtSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ServiceProviderName,
        [parameter(Mandatory = $false)]
        [object]
        $OutputSdt,
        [parameter(Mandatory = $false)]
        [object]
        $ServiceName,
        [parameter(Mandatory = $false)]
        [object]
        $RepInterval
    )
    Process {
        $obj = [MediaLiveChannelDvbSdtSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelDvbSdtSettings'

function Add-VSMediaLiveChannelDvbSubDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.DvbSubDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.DvbSubDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html

    .PARAMETER BackgroundOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-backgroundopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FontResolution
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-fontresolution
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER OutlineColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-outlinecolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FontColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-fontcolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ShadowColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-shadowcolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ShadowOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-shadowopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Font
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-font
        UpdateType: Mutable

    .PARAMETER ShadowYOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-shadowyoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Alignment
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-alignment
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER XPosition
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-xposition
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FontSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-fontsize
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER YPosition
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-yposition
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER OutlineSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-outlinesize
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TeletextGridControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-teletextgridcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FontOpacity
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-fontopacity
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ShadowXOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-shadowxoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER BackgroundColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubdestinationsettings.html#cfn-medialive-channel-dvbsubdestinationsettings-backgroundcolor
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelDvbSubDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $BackgroundOpacity,
        [parameter(Mandatory = $false)]
        [object]
        $FontResolution,
        [parameter(Mandatory = $false)]
        [object]
        $OutlineColor,
        [parameter(Mandatory = $false)]
        [object]
        $FontColor,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowColor,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowOpacity,
        [parameter(Mandatory = $false)]
        $Font,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowYOffset,
        [parameter(Mandatory = $false)]
        [object]
        $Alignment,
        [parameter(Mandatory = $false)]
        [object]
        $XPosition,
        [parameter(Mandatory = $false)]
        [object]
        $FontSize,
        [parameter(Mandatory = $false)]
        [object]
        $YPosition,
        [parameter(Mandatory = $false)]
        [object]
        $OutlineSize,
        [parameter(Mandatory = $false)]
        [object]
        $TeletextGridControl,
        [parameter(Mandatory = $false)]
        [object]
        $FontOpacity,
        [parameter(Mandatory = $false)]
        [object]
        $ShadowXOffset,
        [parameter(Mandatory = $false)]
        [object]
        $BackgroundColor
    )
    Process {
        $obj = [MediaLiveChannelDvbSubDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelDvbSubDestinationSettings'

function Add-VSMediaLiveChannelDvbSubSourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.DvbSubSourceSettings resource property to the template. Information about the DVB Sub captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.DvbSubSourceSettings resource property to the template.
Information about the DVB Sub captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html

    .PARAMETER Pid
        When using DVB-Sub with burn-in or SMPTE-TT, use this PID for the source content. It is unused for DVB-Sub passthrough. All DVB-Sub content is passed through, regardless of selectors.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbsubsourcesettings.html#cfn-medialive-channel-dvbsubsourcesettings-pid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelDvbSubSourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Pid
    )
    Process {
        $obj = [MediaLiveChannelDvbSubSourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelDvbSubSourceSettings'

function Add-VSMediaLiveChannelDvbTdtSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.DvbTdtSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.DvbTdtSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbtdtsettings.html

    .PARAMETER RepInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-dvbtdtsettings.html#cfn-medialive-channel-dvbtdtsettings-repinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelDvbTdtSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $RepInterval
    )
    Process {
        $obj = [MediaLiveChannelDvbTdtSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelDvbTdtSettings'

function Add-VSMediaLiveChannelEac3Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Eac3Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Eac3Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html

    .PARAMETER CodingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-codingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SurroundMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-surroundmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PassthroughControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-passthroughcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Dialnorm
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-dialnorm
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER LoRoSurroundMixLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-lorosurroundmixlevel
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER PhaseControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-phasecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LtRtCenterMixLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-ltrtcentermixlevel
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER LfeFilter
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-lfefilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LfeControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-lfecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-bitrate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER DrcLine
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-drcline
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DcFilter
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-dcfilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MetadataControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-metadatacontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LtRtSurroundMixLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-ltrtsurroundmixlevel
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER LoRoCenterMixLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-lorocentermixlevel
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER DrcRf
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-drcrf
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AttenuationControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-attenuationcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BitstreamMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-bitstreammode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SurroundExMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-surroundexmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER StereoDownmix
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-eac3settings.html#cfn-medialive-channel-eac3settings-stereodownmix
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEac3Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CodingMode,
        [parameter(Mandatory = $false)]
        [object]
        $SurroundMode,
        [parameter(Mandatory = $false)]
        [object]
        $PassthroughControl,
        [parameter(Mandatory = $false)]
        [object]
        $Dialnorm,
        [parameter(Mandatory = $false)]
        [object]
        $LoRoSurroundMixLevel,
        [parameter(Mandatory = $false)]
        [object]
        $PhaseControl,
        [parameter(Mandatory = $false)]
        [object]
        $LtRtCenterMixLevel,
        [parameter(Mandatory = $false)]
        [object]
        $LfeFilter,
        [parameter(Mandatory = $false)]
        [object]
        $LfeControl,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate,
        [parameter(Mandatory = $false)]
        [object]
        $DrcLine,
        [parameter(Mandatory = $false)]
        [object]
        $DcFilter,
        [parameter(Mandatory = $false)]
        [object]
        $MetadataControl,
        [parameter(Mandatory = $false)]
        [object]
        $LtRtSurroundMixLevel,
        [parameter(Mandatory = $false)]
        [object]
        $LoRoCenterMixLevel,
        [parameter(Mandatory = $false)]
        [object]
        $DrcRf,
        [parameter(Mandatory = $false)]
        [object]
        $AttenuationControl,
        [parameter(Mandatory = $false)]
        [object]
        $BitstreamMode,
        [parameter(Mandatory = $false)]
        [object]
        $SurroundExMode,
        [parameter(Mandatory = $false)]
        [object]
        $StereoDownmix
    )
    Process {
        $obj = [MediaLiveChannelEac3Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEac3Settings'

function Add-VSMediaLiveChannelEbuTtDDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.EbuTtDDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.EbuTtDDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html

    .PARAMETER FontFamily
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html#cfn-medialive-channel-ebuttddestinationsettings-fontfamily
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FillLineGap
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html#cfn-medialive-channel-ebuttddestinationsettings-filllinegap
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER StyleControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ebuttddestinationsettings.html#cfn-medialive-channel-ebuttddestinationsettings-stylecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEbuTtDDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FontFamily,
        [parameter(Mandatory = $false)]
        [object]
        $FillLineGap,
        [parameter(Mandatory = $false)]
        [object]
        $StyleControl
    )
    Process {
        $obj = [MediaLiveChannelEbuTtDDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEbuTtDDestinationSettings'

function Add-VSMediaLiveChannelEmbeddedDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.EmbeddedDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.EmbeddedDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddeddestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEmbeddedDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelEmbeddedDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEmbeddedDestinationSettings'

function Add-VSMediaLiveChannelEmbeddedPlusScte20DestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedplusscte20destinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEmbeddedPlusScte20DestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelEmbeddedPlusScte20DestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEmbeddedPlusScte20DestinationSettings'

function Add-VSMediaLiveChannelEmbeddedSourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.EmbeddedSourceSettings resource property to the template. Information about the embedded captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.EmbeddedSourceSettings resource property to the template.
Information about the embedded captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html

    .PARAMETER Source608ChannelNumber
        Specifies the 608/708 channel number within the video track from which to extract captions. This is unused for passthrough.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-source608channelnumber
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Scte20Detection
        Set to "auto" to handle streams with intermittent or non-aligned SCTE-20 and embedded captions.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-scte20detection
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Source608TrackNumber
        This field is unused and deprecated.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-source608tracknumber
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Convert608To708
        If this is upconvert, 608 data is both passed through the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. If 708 data is present in the source content, it is discarded.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-embeddedsourcesettings.html#cfn-medialive-channel-embeddedsourcesettings-convert608to708
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEmbeddedSourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Source608ChannelNumber,
        [parameter(Mandatory = $false)]
        [object]
        $Scte20Detection,
        [parameter(Mandatory = $false)]
        [object]
        $Source608TrackNumber,
        [parameter(Mandatory = $false)]
        [object]
        $Convert608To708
    )
    Process {
        $obj = [MediaLiveChannelEmbeddedSourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEmbeddedSourceSettings'

function Add-VSMediaLiveChannelEncoderSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.EncoderSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.EncoderSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html

    .PARAMETER AudioDescriptions
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-audiodescriptions
        ItemType: AudioDescription
        UpdateType: Mutable

    .PARAMETER VideoDescriptions
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-videodescriptions
        ItemType: VideoDescription
        UpdateType: Mutable

    .PARAMETER FeatureActivations
        Type: FeatureActivations
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-featureactivations
        UpdateType: Mutable

    .PARAMETER GlobalConfiguration
        Type: GlobalConfiguration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-globalconfiguration
        UpdateType: Mutable

    .PARAMETER CaptionDescriptions
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-captiondescriptions
        ItemType: CaptionDescription
        UpdateType: Mutable

    .PARAMETER AvailConfiguration
        Type: AvailConfiguration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-availconfiguration
        UpdateType: Mutable

    .PARAMETER OutputGroups
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-outputgroups
        ItemType: OutputGroup
        UpdateType: Mutable

    .PARAMETER AvailBlanking
        Type: AvailBlanking
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-availblanking
        UpdateType: Mutable

    .PARAMETER NielsenConfiguration
        Type: NielsenConfiguration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-nielsenconfiguration
        UpdateType: Mutable

    .PARAMETER BlackoutSlate
        Type: BlackoutSlate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-blackoutslate
        UpdateType: Mutable

    .PARAMETER TimecodeConfig
        Type: TimecodeConfig
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-encodersettings.html#cfn-medialive-channel-encodersettings-timecodeconfig
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelEncoderSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AudioDescriptions,
        [parameter(Mandatory = $false)]
        [object]
        $VideoDescriptions,
        [parameter(Mandatory = $false)]
        $FeatureActivations,
        [parameter(Mandatory = $false)]
        $GlobalConfiguration,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionDescriptions,
        [parameter(Mandatory = $false)]
        $AvailConfiguration,
        [parameter(Mandatory = $false)]
        [object]
        $OutputGroups,
        [parameter(Mandatory = $false)]
        $AvailBlanking,
        [parameter(Mandatory = $false)]
        $NielsenConfiguration,
        [parameter(Mandatory = $false)]
        $BlackoutSlate,
        [parameter(Mandatory = $false)]
        $TimecodeConfig
    )
    Process {
        $obj = [MediaLiveChannelEncoderSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelEncoderSettings'

function Add-VSMediaLiveChannelFailoverCondition {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FailoverCondition resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FailoverCondition resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failovercondition.html

    .PARAMETER FailoverConditionSettings
        Type: FailoverConditionSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failovercondition.html#cfn-medialive-channel-failovercondition-failoverconditionsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFailoverCondition])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $FailoverConditionSettings
    )
    Process {
        $obj = [MediaLiveChannelFailoverCondition]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFailoverCondition'

function Add-VSMediaLiveChannelFailoverConditionSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FailoverConditionSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FailoverConditionSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html

    .PARAMETER AudioSilenceSettings
        Type: AudioSilenceFailoverSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html#cfn-medialive-channel-failoverconditionsettings-audiosilencesettings
        UpdateType: Mutable

    .PARAMETER VideoBlackSettings
        Type: VideoBlackFailoverSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html#cfn-medialive-channel-failoverconditionsettings-videoblacksettings
        UpdateType: Mutable

    .PARAMETER InputLossSettings
        Type: InputLossFailoverSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-failoverconditionsettings.html#cfn-medialive-channel-failoverconditionsettings-inputlosssettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFailoverConditionSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $AudioSilenceSettings,
        [parameter(Mandatory = $false)]
        $VideoBlackSettings,
        [parameter(Mandatory = $false)]
        $InputLossSettings
    )
    Process {
        $obj = [MediaLiveChannelFailoverConditionSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFailoverConditionSettings'

function Add-VSMediaLiveChannelFeatureActivations {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FeatureActivations resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FeatureActivations resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-featureactivations.html

    .PARAMETER InputPrepareScheduleActions
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-featureactivations.html#cfn-medialive-channel-featureactivations-inputpreparescheduleactions
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFeatureActivations])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputPrepareScheduleActions
    )
    Process {
        $obj = [MediaLiveChannelFeatureActivations]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFeatureActivations'

function Add-VSMediaLiveChannelFecOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FecOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FecOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html

    .PARAMETER RowLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html#cfn-medialive-channel-fecoutputsettings-rowlength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ColumnDepth
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html#cfn-medialive-channel-fecoutputsettings-columndepth
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER IncludeFec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fecoutputsettings.html#cfn-medialive-channel-fecoutputsettings-includefec
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFecOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $RowLength,
        [parameter(Mandatory = $false)]
        [object]
        $ColumnDepth,
        [parameter(Mandatory = $false)]
        [object]
        $IncludeFec
    )
    Process {
        $obj = [MediaLiveChannelFecOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFecOutputSettings'

function Add-VSMediaLiveChannelFmp4HlsSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Fmp4HlsSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Fmp4HlsSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html

    .PARAMETER AudioRenditionSets
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html#cfn-medialive-channel-fmp4hlssettings-audiorenditionsets
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NielsenId3Behavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html#cfn-medialive-channel-fmp4hlssettings-nielsenid3behavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-fmp4hlssettings.html#cfn-medialive-channel-fmp4hlssettings-timedmetadatabehavior
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFmp4HlsSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AudioRenditionSets,
        [parameter(Mandatory = $false)]
        [object]
        $NielsenId3Behavior,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataBehavior
    )
    Process {
        $obj = [MediaLiveChannelFmp4HlsSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFmp4HlsSettings'

function Add-VSMediaLiveChannelFrameCaptureGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FrameCaptureGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FrameCaptureGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturegroupsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturegroupsettings.html#cfn-medialive-channel-framecapturegroupsettings-destination
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFrameCaptureGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination
    )
    Process {
        $obj = [MediaLiveChannelFrameCaptureGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFrameCaptureGroupSettings'

function Add-VSMediaLiveChannelFrameCaptureOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FrameCaptureOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FrameCaptureOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptureoutputsettings.html

    .PARAMETER NameModifier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecaptureoutputsettings.html#cfn-medialive-channel-framecaptureoutputsettings-namemodifier
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFrameCaptureOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NameModifier
    )
    Process {
        $obj = [MediaLiveChannelFrameCaptureOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFrameCaptureOutputSettings'

function Add-VSMediaLiveChannelFrameCaptureSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.FrameCaptureSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.FrameCaptureSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html

    .PARAMETER CaptureInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html#cfn-medialive-channel-framecapturesettings-captureinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER CaptureIntervalUnits
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-framecapturesettings.html#cfn-medialive-channel-framecapturesettings-captureintervalunits
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelFrameCaptureSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CaptureInterval,
        [parameter(Mandatory = $false)]
        [object]
        $CaptureIntervalUnits
    )
    Process {
        $obj = [MediaLiveChannelFrameCaptureSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelFrameCaptureSettings'

function Add-VSMediaLiveChannelGlobalConfiguration {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.GlobalConfiguration resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.GlobalConfiguration resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html

    .PARAMETER InputEndAction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-inputendaction
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER OutputTimingSource
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-outputtimingsource
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER OutputLockingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-outputlockingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SupportLowFramerateInputs
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-supportlowframerateinputs
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER InitialAudioGain
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-initialaudiogain
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER InputLossBehavior
        Type: InputLossBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-globalconfiguration.html#cfn-medialive-channel-globalconfiguration-inputlossbehavior
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelGlobalConfiguration])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputEndAction,
        [parameter(Mandatory = $false)]
        [object]
        $OutputTimingSource,
        [parameter(Mandatory = $false)]
        [object]
        $OutputLockingMode,
        [parameter(Mandatory = $false)]
        [object]
        $SupportLowFramerateInputs,
        [parameter(Mandatory = $false)]
        [object]
        $InitialAudioGain,
        [parameter(Mandatory = $false)]
        $InputLossBehavior
    )
    Process {
        $obj = [MediaLiveChannelGlobalConfiguration]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelGlobalConfiguration'

function Add-VSMediaLiveChannelH264ColorSpaceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H264ColorSpaceSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H264ColorSpaceSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html

    .PARAMETER Rec601Settings
        Type: Rec601Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-rec601settings
        UpdateType: Mutable

    .PARAMETER Rec709Settings
        Type: Rec709Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-rec709settings
        UpdateType: Mutable

    .PARAMETER ColorSpacePassthroughSettings
        Type: ColorSpacePassthroughSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-colorspacepassthroughsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH264ColorSpaceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Rec601Settings,
        [parameter(Mandatory = $false)]
        $Rec709Settings,
        [parameter(Mandatory = $false)]
        $ColorSpacePassthroughSettings
    )
    Process {
        $obj = [MediaLiveChannelH264ColorSpaceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH264ColorSpaceSettings'

function Add-VSMediaLiveChannelH264FilterSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H264FilterSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H264FilterSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264filtersettings.html

    .PARAMETER TemporalFilterSettings
        Type: TemporalFilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264filtersettings.html#cfn-medialive-channel-h264filtersettings-temporalfiltersettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH264FilterSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $TemporalFilterSettings
    )
    Process {
        $obj = [MediaLiveChannelH264FilterSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH264FilterSettings'

function Add-VSMediaLiveChannelH264Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H264Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H264Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html

    .PARAMETER NumRefFrames
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-numrefframes
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TemporalAq
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-temporalaq
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Slices
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-slices
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FramerateControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-frameratecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER QvbrQualityLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-qvbrqualitylevel
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FramerateNumerator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-frameratenumerator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ParControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-parcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER GopClosedCadence
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-gopclosedcadence
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FlickerAq
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-flickeraq
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Profile
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-profile
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER QualityLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-qualitylevel
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MinIInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-miniinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER SceneChangeDetect
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-scenechangedetect
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ForceFieldPictures
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-forcefieldpictures
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FramerateDenominator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-frameratedenominator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Softness
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-softness
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-gopsize
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER AdaptiveQuantization
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-adaptivequantization
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilterSettings
        Type: H264FilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-filtersettings
        UpdateType: Mutable

    .PARAMETER ColorSpaceSettings
        Type: H264ColorSpaceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-colorspacesettings
        UpdateType: Mutable

    .PARAMETER EntropyEncoding
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-entropyencoding
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SpatialAq
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-spatialaq
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ParDenominator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-pardenominator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FixedAfd
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-fixedafd
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER GopSizeUnits
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-gopsizeunits
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AfdSignaling
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-afdsignaling
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-bitrate
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ParNumerator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-parnumerator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RateControlMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-ratecontrolmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ScanType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-scantype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BufSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-bufsize
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TimecodeInsertion
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-timecodeinsertion
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ColorMetadata
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-colormetadata
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BufFillPct
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-buffillpct
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopBReference
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-gopbreference
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LookAheadRateControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-lookaheadratecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Level
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-level
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MaxBitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-maxbitrate
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Syntax
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-syntax
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SubgopLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-subgoplength
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER GopNumBFrames
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264settings.html#cfn-medialive-channel-h264settings-gopnumbframes
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH264Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NumRefFrames,
        [parameter(Mandatory = $false)]
        [object]
        $TemporalAq,
        [parameter(Mandatory = $false)]
        [object]
        $Slices,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateControl,
        [parameter(Mandatory = $false)]
        [object]
        $QvbrQualityLevel,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateNumerator,
        [parameter(Mandatory = $false)]
        [object]
        $ParControl,
        [parameter(Mandatory = $false)]
        [object]
        $GopClosedCadence,
        [parameter(Mandatory = $false)]
        [object]
        $FlickerAq,
        [parameter(Mandatory = $false)]
        [object]
        $Profile,
        [parameter(Mandatory = $false)]
        [object]
        $QualityLevel,
        [parameter(Mandatory = $false)]
        [object]
        $MinIInterval,
        [parameter(Mandatory = $false)]
        [object]
        $SceneChangeDetect,
        [parameter(Mandatory = $false)]
        [object]
        $ForceFieldPictures,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateDenominator,
        [parameter(Mandatory = $false)]
        [object]
        $Softness,
        [parameter(Mandatory = $false)]
        [object]
        $GopSize,
        [parameter(Mandatory = $false)]
        [object]
        $AdaptiveQuantization,
        [parameter(Mandatory = $false)]
        $FilterSettings,
        [parameter(Mandatory = $false)]
        $ColorSpaceSettings,
        [parameter(Mandatory = $false)]
        [object]
        $EntropyEncoding,
        [parameter(Mandatory = $false)]
        [object]
        $SpatialAq,
        [parameter(Mandatory = $false)]
        [object]
        $ParDenominator,
        [parameter(Mandatory = $false)]
        [object]
        $FixedAfd,
        [parameter(Mandatory = $false)]
        [object]
        $GopSizeUnits,
        [parameter(Mandatory = $false)]
        [object]
        $AfdSignaling,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate,
        [parameter(Mandatory = $false)]
        [object]
        $ParNumerator,
        [parameter(Mandatory = $false)]
        [object]
        $RateControlMode,
        [parameter(Mandatory = $false)]
        [object]
        $ScanType,
        [parameter(Mandatory = $false)]
        [object]
        $BufSize,
        [parameter(Mandatory = $false)]
        [object]
        $TimecodeInsertion,
        [parameter(Mandatory = $false)]
        [object]
        $ColorMetadata,
        [parameter(Mandatory = $false)]
        [object]
        $BufFillPct,
        [parameter(Mandatory = $false)]
        [object]
        $GopBReference,
        [parameter(Mandatory = $false)]
        [object]
        $LookAheadRateControl,
        [parameter(Mandatory = $false)]
        [object]
        $Level,
        [parameter(Mandatory = $false)]
        [object]
        $MaxBitrate,
        [parameter(Mandatory = $false)]
        [object]
        $Syntax,
        [parameter(Mandatory = $false)]
        [object]
        $SubgopLength,
        [parameter(Mandatory = $false)]
        [object]
        $GopNumBFrames
    )
    Process {
        $obj = [MediaLiveChannelH264Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH264Settings'

function Add-VSMediaLiveChannelH265ColorSpaceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H265ColorSpaceSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H265ColorSpaceSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html

    .PARAMETER Rec601Settings
        Type: Rec601Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html#cfn-medialive-channel-h265colorspacesettings-rec601settings
        UpdateType: Mutable

    .PARAMETER Rec709Settings
        Type: Rec709Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html#cfn-medialive-channel-h265colorspacesettings-rec709settings
        UpdateType: Mutable

    .PARAMETER ColorSpacePassthroughSettings
        Type: ColorSpacePassthroughSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html#cfn-medialive-channel-h265colorspacesettings-colorspacepassthroughsettings
        UpdateType: Mutable

    .PARAMETER Hdr10Settings
        Type: Hdr10Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265colorspacesettings.html#cfn-medialive-channel-h265colorspacesettings-hdr10settings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH265ColorSpaceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Rec601Settings,
        [parameter(Mandatory = $false)]
        $Rec709Settings,
        [parameter(Mandatory = $false)]
        $ColorSpacePassthroughSettings,
        [parameter(Mandatory = $false)]
        $Hdr10Settings
    )
    Process {
        $obj = [MediaLiveChannelH265ColorSpaceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH265ColorSpaceSettings'

function Add-VSMediaLiveChannelH265FilterSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H265FilterSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H265FilterSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265filtersettings.html

    .PARAMETER TemporalFilterSettings
        Type: TemporalFilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265filtersettings.html#cfn-medialive-channel-h265filtersettings-temporalfiltersettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH265FilterSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $TemporalFilterSettings
    )
    Process {
        $obj = [MediaLiveChannelH265FilterSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH265FilterSettings'

function Add-VSMediaLiveChannelH265Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.H265Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.H265Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html

    .PARAMETER Slices
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-slices
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER QvbrQualityLevel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-qvbrqualitylevel
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FramerateNumerator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-frameratenumerator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopClosedCadence
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-gopclosedcadence
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FlickerAq
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-flickeraq
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Profile
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-profile
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MinIInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-miniinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER SceneChangeDetect
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-scenechangedetect
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FramerateDenominator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-frameratedenominator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-gopsize
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER AdaptiveQuantization
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-adaptivequantization
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilterSettings
        Type: H265FilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-filtersettings
        UpdateType: Mutable

    .PARAMETER AlternativeTransferFunction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-alternativetransferfunction
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ColorSpaceSettings
        Type: H265ColorSpaceSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-colorspacesettings
        UpdateType: Mutable

    .PARAMETER Tier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-tier
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ParDenominator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-pardenominator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER FixedAfd
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-fixedafd
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER GopSizeUnits
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-gopsizeunits
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AfdSignaling
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-afdsignaling
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-bitrate
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ParNumerator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-parnumerator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RateControlMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-ratecontrolmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ScanType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-scantype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BufSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-bufsize
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TimecodeInsertion
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-timecodeinsertion
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ColorMetadata
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-colormetadata
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER LookAheadRateControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-lookaheadratecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Level
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-level
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MaxBitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h265settings.html#cfn-medialive-channel-h265settings-maxbitrate
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelH265Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Slices,
        [parameter(Mandatory = $false)]
        [object]
        $QvbrQualityLevel,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateNumerator,
        [parameter(Mandatory = $false)]
        [object]
        $GopClosedCadence,
        [parameter(Mandatory = $false)]
        [object]
        $FlickerAq,
        [parameter(Mandatory = $false)]
        [object]
        $Profile,
        [parameter(Mandatory = $false)]
        [object]
        $MinIInterval,
        [parameter(Mandatory = $false)]
        [object]
        $SceneChangeDetect,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateDenominator,
        [parameter(Mandatory = $false)]
        [object]
        $GopSize,
        [parameter(Mandatory = $false)]
        [object]
        $AdaptiveQuantization,
        [parameter(Mandatory = $false)]
        $FilterSettings,
        [parameter(Mandatory = $false)]
        [object]
        $AlternativeTransferFunction,
        [parameter(Mandatory = $false)]
        $ColorSpaceSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Tier,
        [parameter(Mandatory = $false)]
        [object]
        $ParDenominator,
        [parameter(Mandatory = $false)]
        [object]
        $FixedAfd,
        [parameter(Mandatory = $false)]
        [object]
        $GopSizeUnits,
        [parameter(Mandatory = $false)]
        [object]
        $AfdSignaling,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate,
        [parameter(Mandatory = $false)]
        [object]
        $ParNumerator,
        [parameter(Mandatory = $false)]
        [object]
        $RateControlMode,
        [parameter(Mandatory = $false)]
        [object]
        $ScanType,
        [parameter(Mandatory = $false)]
        [object]
        $BufSize,
        [parameter(Mandatory = $false)]
        [object]
        $TimecodeInsertion,
        [parameter(Mandatory = $false)]
        [object]
        $ColorMetadata,
        [parameter(Mandatory = $false)]
        [object]
        $LookAheadRateControl,
        [parameter(Mandatory = $false)]
        [object]
        $Level,
        [parameter(Mandatory = $false)]
        [object]
        $MaxBitrate
    )
    Process {
        $obj = [MediaLiveChannelH265Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelH265Settings'

function Add-VSMediaLiveChannelHdr10Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Hdr10Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Hdr10Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html

    .PARAMETER MaxCll
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html#cfn-medialive-channel-hdr10settings-maxcll
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER MaxFall
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hdr10settings.html#cfn-medialive-channel-hdr10settings-maxfall
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHdr10Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $MaxCll,
        [parameter(Mandatory = $false)]
        [object]
        $MaxFall
    )
    Process {
        $obj = [MediaLiveChannelHdr10Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHdr10Settings'

function Add-VSMediaLiveChannelHlsAkamaiSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsAkamaiSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsAkamaiSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html

    .PARAMETER Salt
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-salt
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilecacheDuration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-filecacheduration
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Token
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-token
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER HttpTransferMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsakamaisettings.html#cfn-medialive-channel-hlsakamaisettings-httptransfermode
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsAkamaiSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Salt,
        [parameter(Mandatory = $false)]
        [object]
        $FilecacheDuration,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $Token,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval,
        [parameter(Mandatory = $false)]
        [object]
        $HttpTransferMode
    )
    Process {
        $obj = [MediaLiveChannelHlsAkamaiSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsAkamaiSettings'

function Add-VSMediaLiveChannelHlsBasicPutSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsBasicPutSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsBasicPutSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html

    .PARAMETER FilecacheDuration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html#cfn-medialive-channel-hlsbasicputsettings-filecacheduration
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html#cfn-medialive-channel-hlsbasicputsettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html#cfn-medialive-channel-hlsbasicputsettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsbasicputsettings.html#cfn-medialive-channel-hlsbasicputsettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsBasicPutSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FilecacheDuration,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval
    )
    Process {
        $obj = [MediaLiveChannelHlsBasicPutSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsBasicPutSettings'

function Add-VSMediaLiveChannelHlsCdnSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsCdnSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsCdnSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html

    .PARAMETER HlsWebdavSettings
        Type: HlsWebdavSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html#cfn-medialive-channel-hlscdnsettings-hlswebdavsettings
        UpdateType: Mutable

    .PARAMETER HlsAkamaiSettings
        Type: HlsAkamaiSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html#cfn-medialive-channel-hlscdnsettings-hlsakamaisettings
        UpdateType: Mutable

    .PARAMETER HlsBasicPutSettings
        Type: HlsBasicPutSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html#cfn-medialive-channel-hlscdnsettings-hlsbasicputsettings
        UpdateType: Mutable

    .PARAMETER HlsMediaStoreSettings
        Type: HlsMediaStoreSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlscdnsettings.html#cfn-medialive-channel-hlscdnsettings-hlsmediastoresettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsCdnSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $HlsWebdavSettings,
        [parameter(Mandatory = $false)]
        $HlsAkamaiSettings,
        [parameter(Mandatory = $false)]
        $HlsBasicPutSettings,
        [parameter(Mandatory = $false)]
        $HlsMediaStoreSettings
    )
    Process {
        $obj = [MediaLiveChannelHlsCdnSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsCdnSettings'

function Add-VSMediaLiveChannelHlsGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html

    .PARAMETER SegmentationMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-segmentationmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-destination
        UpdateType: Mutable

    .PARAMETER CodecSpecification
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-codecspecification
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER IvSource
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-ivsource
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataId3Frame
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-timedmetadataid3frame
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER KeyFormatVersions
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-keyformatversions
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RedundantManifest
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-redundantmanifest
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER OutputSelection
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-outputselection
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER KeyProviderSettings
        Type: KeyProviderSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-keyprovidersettings
        UpdateType: Mutable

    .PARAMETER StreamInfResolution
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-streaminfresolution
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CaptionLanguageMappings
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-captionlanguagemappings
        ItemType: CaptionLanguageMapping
        UpdateType: Mutable

    .PARAMETER HlsId3SegmentTagging
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-hlsid3segmenttagging
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER IFrameOnlyPlaylists
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-iframeonlyplaylists
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CaptionLanguageSetting
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-captionlanguagesetting
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER KeepSegments
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-keepsegments
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConstantIv
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-constantiv
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DirectoryStructure
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-directorystructure
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EncryptionType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-encryptiontype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AdMarkers
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-admarkers
        UpdateType: Mutable

    .PARAMETER HlsCdnSettings
        Type: HlsCdnSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-hlscdnsettings
        UpdateType: Mutable

    .PARAMETER IndexNSegments
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-indexnsegments
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER DiscontinuityTags
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-discontinuitytags
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER InputLossAction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-inputlossaction
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Mode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-mode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TsFileMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-tsfilemode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BaseUrlManifest1
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-baseurlmanifest1
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ClientCache
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-clientcache
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MinSegmentLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-minsegmentlength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER KeyFormat
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-keyformat
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER IvInManifest
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-ivinmanifest
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BaseUrlContent1
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-baseurlcontent1
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ManifestCompression
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-manifestcompression
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ManifestDurationFormat
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-manifestdurationformat
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataId3Period
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-timedmetadataid3period
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER IncompleteSegmentBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-incompletesegmentbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ProgramDateTimePeriod
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-programdatetimeperiod
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER SegmentLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-segmentlength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TimestampDeltaMilliseconds
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-timestampdeltamilliseconds
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ProgramDateTime
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-programdatetime
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SegmentsPerSubdirectory
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-segmentspersubdirectory
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER BaseUrlContent
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-baseurlcontent
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BaseUrlManifest
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsgroupsettings.html#cfn-medialive-channel-hlsgroupsettings-baseurlmanifest
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $SegmentationMode,
        [parameter(Mandatory = $false)]
        $Destination,
        [parameter(Mandatory = $false)]
        [object]
        $CodecSpecification,
        [parameter(Mandatory = $false)]
        [object]
        $IvSource,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataId3Frame,
        [parameter(Mandatory = $false)]
        [object]
        $KeyFormatVersions,
        [parameter(Mandatory = $false)]
        [object]
        $RedundantManifest,
        [parameter(Mandatory = $false)]
        [object]
        $OutputSelection,
        [parameter(Mandatory = $false)]
        $KeyProviderSettings,
        [parameter(Mandatory = $false)]
        [object]
        $StreamInfResolution,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionLanguageMappings,
        [parameter(Mandatory = $false)]
        [object]
        $HlsId3SegmentTagging,
        [parameter(Mandatory = $false)]
        [object]
        $IFrameOnlyPlaylists,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionLanguageSetting,
        [parameter(Mandatory = $false)]
        [object]
        $KeepSegments,
        [parameter(Mandatory = $false)]
        [object]
        $ConstantIv,
        [parameter(Mandatory = $false)]
        [object]
        $DirectoryStructure,
        [parameter(Mandatory = $false)]
        [object]
        $EncryptionType,
        [parameter(Mandatory = $false)]
        $AdMarkers,
        [parameter(Mandatory = $false)]
        $HlsCdnSettings,
        [parameter(Mandatory = $false)]
        [object]
        $IndexNSegments,
        [parameter(Mandatory = $false)]
        [object]
        $DiscontinuityTags,
        [parameter(Mandatory = $false)]
        [object]
        $InputLossAction,
        [parameter(Mandatory = $false)]
        [object]
        $Mode,
        [parameter(Mandatory = $false)]
        [object]
        $TsFileMode,
        [parameter(Mandatory = $false)]
        [object]
        $BaseUrlManifest1,
        [parameter(Mandatory = $false)]
        [object]
        $ClientCache,
        [parameter(Mandatory = $false)]
        [object]
        $MinSegmentLength,
        [parameter(Mandatory = $false)]
        [object]
        $KeyFormat,
        [parameter(Mandatory = $false)]
        [object]
        $IvInManifest,
        [parameter(Mandatory = $false)]
        [object]
        $BaseUrlContent1,
        [parameter(Mandatory = $false)]
        [object]
        $ManifestCompression,
        [parameter(Mandatory = $false)]
        [object]
        $ManifestDurationFormat,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataId3Period,
        [parameter(Mandatory = $false)]
        [object]
        $IncompleteSegmentBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $ProgramDateTimePeriod,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentLength,
        [parameter(Mandatory = $false)]
        [object]
        $TimestampDeltaMilliseconds,
        [parameter(Mandatory = $false)]
        [object]
        $ProgramDateTime,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentsPerSubdirectory,
        [parameter(Mandatory = $false)]
        [object]
        $BaseUrlContent,
        [parameter(Mandatory = $false)]
        [object]
        $BaseUrlManifest
    )
    Process {
        $obj = [MediaLiveChannelHlsGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsGroupSettings'

function Add-VSMediaLiveChannelHlsInputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsInputSettings resource property to the template. Information about how to connect to the upstream system.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsInputSettings resource property to the template.
Information about how to connect to the upstream system.

The parent of this entity is NetworkInputSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html

    .PARAMETER BufferSegments
        When specified, reading of the HLS input begins this many buffer segments from the end most recently written segment. When not specified, the HLS input begins with the first segment specified in the m3u8.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-buffersegments
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Retries
        The number of consecutive times that attempts to read a manifest or segment must fail before the input is considered unavailable.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-retries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Bandwidth
        When specified, the HLS stream with the m3u8 BANDWIDTH that most closely matches this value is chosen. Otherwise, the highest bandwidth stream in the m3u8 is chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-bandwidth
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RetryInterval
        The number of seconds between retries when an attempt to read a manifest or segment fails.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsinputsettings.html#cfn-medialive-channel-hlsinputsettings-retryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsInputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $BufferSegments,
        [parameter(Mandatory = $false)]
        [object]
        $Retries,
        [parameter(Mandatory = $false)]
        [object]
        $Bandwidth,
        [parameter(Mandatory = $false)]
        [object]
        $RetryInterval
    )
    Process {
        $obj = [MediaLiveChannelHlsInputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsInputSettings'

function Add-VSMediaLiveChannelHlsMediaStoreSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsMediaStoreSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsMediaStoreSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html

    .PARAMETER FilecacheDuration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html#cfn-medialive-channel-hlsmediastoresettings-filecacheduration
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html#cfn-medialive-channel-hlsmediastoresettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER MediaStoreStorageClass
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html#cfn-medialive-channel-hlsmediastoresettings-mediastorestorageclass
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html#cfn-medialive-channel-hlsmediastoresettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsmediastoresettings.html#cfn-medialive-channel-hlsmediastoresettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsMediaStoreSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FilecacheDuration,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $MediaStoreStorageClass,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval
    )
    Process {
        $obj = [MediaLiveChannelHlsMediaStoreSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsMediaStoreSettings'

function Add-VSMediaLiveChannelHlsOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html

    .PARAMETER NameModifier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html#cfn-medialive-channel-hlsoutputsettings-namemodifier
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER HlsSettings
        Type: HlsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html#cfn-medialive-channel-hlsoutputsettings-hlssettings
        UpdateType: Mutable

    .PARAMETER H265PackagingType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html#cfn-medialive-channel-hlsoutputsettings-h265packagingtype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SegmentModifier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlsoutputsettings.html#cfn-medialive-channel-hlsoutputsettings-segmentmodifier
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NameModifier,
        [parameter(Mandatory = $false)]
        $HlsSettings,
        [parameter(Mandatory = $false)]
        [object]
        $H265PackagingType,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentModifier
    )
    Process {
        $obj = [MediaLiveChannelHlsOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsOutputSettings'

function Add-VSMediaLiveChannelHlsSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html

    .PARAMETER StandardHlsSettings
        Type: StandardHlsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html#cfn-medialive-channel-hlssettings-standardhlssettings
        UpdateType: Mutable

    .PARAMETER AudioOnlyHlsSettings
        Type: AudioOnlyHlsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html#cfn-medialive-channel-hlssettings-audioonlyhlssettings
        UpdateType: Mutable

    .PARAMETER Fmp4HlsSettings
        Type: Fmp4HlsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlssettings.html#cfn-medialive-channel-hlssettings-fmp4hlssettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $StandardHlsSettings,
        [parameter(Mandatory = $false)]
        $AudioOnlyHlsSettings,
        [parameter(Mandatory = $false)]
        $Fmp4HlsSettings
    )
    Process {
        $obj = [MediaLiveChannelHlsSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsSettings'

function Add-VSMediaLiveChannelHlsWebdavSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.HlsWebdavSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.HlsWebdavSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html

    .PARAMETER FilecacheDuration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html#cfn-medialive-channel-hlswebdavsettings-filecacheduration
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html#cfn-medialive-channel-hlswebdavsettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html#cfn-medialive-channel-hlswebdavsettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html#cfn-medialive-channel-hlswebdavsettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER HttpTransferMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-hlswebdavsettings.html#cfn-medialive-channel-hlswebdavsettings-httptransfermode
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelHlsWebdavSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FilecacheDuration,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval,
        [parameter(Mandatory = $false)]
        [object]
        $HttpTransferMode
    )
    Process {
        $obj = [MediaLiveChannelHlsWebdavSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelHlsWebdavSettings'

function Add-VSMediaLiveChannelInputAttachment {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputAttachment resource property to the template. An input to attach to this channel.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputAttachment resource property to the template.
An input to attach to this channel.

This entity is at the top level in the channel.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html

    .PARAMETER InputAttachmentName
        A name for the attachment. This is required if you want to use this input in an input switch action.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputattachmentname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER InputId
        The ID of the input to attach.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputid
        PrimitiveType: String
        UpdateType: Immutable

    .PARAMETER AutomaticInputFailoverSettings
        *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt

        Type: AutomaticInputFailoverSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-automaticinputfailoversettings
        UpdateType: Mutable

    .PARAMETER InputSettings
        Information about the content to extract from the input and about the general handling of the content.

        Type: InputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputattachment.html#cfn-medialive-channel-inputattachment-inputsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputAttachment])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputAttachmentName,
        [parameter(Mandatory = $false)]
        [object]
        $InputId,
        [parameter(Mandatory = $false)]
        $AutomaticInputFailoverSettings,
        [parameter(Mandatory = $false)]
        $InputSettings
    )
    Process {
        $obj = [MediaLiveChannelInputAttachment]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputAttachment'

function Add-VSMediaLiveChannelInputChannelLevel {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputChannelLevel resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputChannelLevel resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html

    .PARAMETER InputChannel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html#cfn-medialive-channel-inputchannellevel-inputchannel
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Gain
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputchannellevel.html#cfn-medialive-channel-inputchannellevel-gain
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputChannelLevel])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputChannel,
        [parameter(Mandatory = $false)]
        [object]
        $Gain
    )
    Process {
        $obj = [MediaLiveChannelInputChannelLevel]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputChannelLevel'

function Add-VSMediaLiveChannelInputLocation {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputLocation resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputLocation resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html

    .PARAMETER Username
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html#cfn-medialive-channel-inputlocation-username
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PasswordParam
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html#cfn-medialive-channel-inputlocation-passwordparam
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Uri
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlocation.html#cfn-medialive-channel-inputlocation-uri
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputLocation])]
    [cmdletbinding()]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","PasswordParam")]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","PasswordParam")]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Username,
        [parameter(Mandatory = $false)]
        [object]
        $PasswordParam,
        [parameter(Mandatory = $false)]
        [object]
        $Uri
    )
    Process {
        $obj = [MediaLiveChannelInputLocation]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputLocation'

function Add-VSMediaLiveChannelInputLossBehavior {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputLossBehavior resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputLossBehavior resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html

    .PARAMETER InputLossImageColor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html#cfn-medialive-channel-inputlossbehavior-inputlossimagecolor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BlackFrameMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html#cfn-medialive-channel-inputlossbehavior-blackframemsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER InputLossImageType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html#cfn-medialive-channel-inputlossbehavior-inputlossimagetype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER InputLossImageSlate
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html#cfn-medialive-channel-inputlossbehavior-inputlossimageslate
        UpdateType: Mutable

    .PARAMETER RepeatFrameMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossbehavior.html#cfn-medialive-channel-inputlossbehavior-repeatframemsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputLossBehavior])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputLossImageColor,
        [parameter(Mandatory = $false)]
        [object]
        $BlackFrameMsec,
        [parameter(Mandatory = $false)]
        [object]
        $InputLossImageType,
        [parameter(Mandatory = $false)]
        $InputLossImageSlate,
        [parameter(Mandatory = $false)]
        [object]
        $RepeatFrameMsec
    )
    Process {
        $obj = [MediaLiveChannelInputLossBehavior]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputLossBehavior'

function Add-VSMediaLiveChannelInputLossFailoverSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputLossFailoverSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputLossFailoverSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossfailoversettings.html

    .PARAMETER InputLossThresholdMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputlossfailoversettings.html#cfn-medialive-channel-inputlossfailoversettings-inputlossthresholdmsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputLossFailoverSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $InputLossThresholdMsec
    )
    Process {
        $obj = [MediaLiveChannelInputLossFailoverSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputLossFailoverSettings'

function Add-VSMediaLiveChannelInputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputSettings resource property to the template. Information about extracting content from the input and about handling the content.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputSettings resource property to the template.
Information about extracting content from the input and about handling the content.

The parent of this entity is InputAttachment.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html

    .PARAMETER DeblockFilter
        Enables or disables the deblock filter when filtering.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-deblockfilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilterStrength
        Adjusts the magnitude of filtering from 1 minimal to 5 strongest.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-filterstrength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER InputFilter
        Turns on the filter for this input. MPEG-2 inputs have the deblocking filter enabled by default. 1 auto - filtering is applied depending on input type/quality 2 disabled - no filtering is applied to the input 3 forced - filtering is applied regardless of the input type.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-inputfilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SourceEndBehavior
        The loop input if it is a file.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-sourceendbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER VideoSelector
        Information about one video to extract from the input.

        Type: VideoSelector
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-videoselector
        UpdateType: Mutable

    .PARAMETER Smpte2038DataPreference
        *Update requires*: No interruption: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-smpte2038datapreference
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioSelectors
        Information about the specific audio to extract from the input.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-audioselectors
        ItemType: AudioSelector
        UpdateType: Mutable

    .PARAMETER CaptionSelectors
        Information about the specific captions to extract from the input.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-captionselectors
        ItemType: CaptionSelector
        UpdateType: Mutable

    .PARAMETER DenoiseFilter
        Enables or disables the denoise filter when filtering.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-denoisefilter
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NetworkInputSettings
        Information about how to connect to the upstream system.

        Type: NetworkInputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-networkinputsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $DeblockFilter,
        [parameter(Mandatory = $false)]
        [object]
        $FilterStrength,
        [parameter(Mandatory = $false)]
        [object]
        $InputFilter,
        [parameter(Mandatory = $false)]
        [object]
        $SourceEndBehavior,
        [parameter(Mandatory = $false)]
        $VideoSelector,
        [parameter(Mandatory = $false)]
        [object]
        $Smpte2038DataPreference,
        [parameter(Mandatory = $false)]
        [object]
        $AudioSelectors,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionSelectors,
        [parameter(Mandatory = $false)]
        [object]
        $DenoiseFilter,
        [parameter(Mandatory = $false)]
        $NetworkInputSettings
    )
    Process {
        $obj = [MediaLiveChannelInputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputSettings'

function Add-VSMediaLiveChannelInputSpecification {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.InputSpecification resource property to the template. The input specification for this channel. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.InputSpecification resource property to the template.
The input specification for this channel. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec.

This entity is at the top level in the channel.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html

    .PARAMETER Codec
        The codec to include in the input specification for this channel.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-codec
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER MaximumBitrate
        The maximum input bitrate for any input attached to this channel.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-maximumbitrate
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Resolution
        The resolution for any input attached to this channel.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputspecification.html#cfn-medialive-channel-inputspecification-resolution
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelInputSpecification])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Codec,
        [parameter(Mandatory = $false)]
        [object]
        $MaximumBitrate,
        [parameter(Mandatory = $false)]
        [object]
        $Resolution
    )
    Process {
        $obj = [MediaLiveChannelInputSpecification]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelInputSpecification'

function Add-VSMediaLiveChannelKeyProviderSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.KeyProviderSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.KeyProviderSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-keyprovidersettings.html

    .PARAMETER StaticKeySettings
        Type: StaticKeySettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-keyprovidersettings.html#cfn-medialive-channel-keyprovidersettings-statickeysettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelKeyProviderSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $StaticKeySettings
    )
    Process {
        $obj = [MediaLiveChannelKeyProviderSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelKeyProviderSettings'

function Add-VSMediaLiveChannelM2tsSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.M2tsSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.M2tsSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html

    .PARAMETER EtvPlatformPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-etvplatformpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PatInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-patinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ProgramNum
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-programnum
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RateMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ratemode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER KlvDataPids
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-klvdatapids
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NullPacketBitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-nullpacketbitrate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER PmtInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-pmtinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER AribCaptionsPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-aribcaptionspid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EsRateInPes
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-esrateinpes
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER VideoPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-videopid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TransportStreamId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-transportstreamid
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER EbpPlacement
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ebpplacement
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DvbSubPids
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-dvbsubpids
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SegmentationStyle
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-segmentationstyle
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Scte35Pid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-scte35pid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioStreamType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-audiostreamtype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Klv
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-klv
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EbpLookaheadMs
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ebplookaheadms
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER DvbTdtSettings
        Type: DvbTdtSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-dvbtdtsettings
        UpdateType: Mutable

    .PARAMETER TimedMetadataBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-timedmetadatabehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EbpAudioInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ebpaudiointerval
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FragmentTime
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-fragmenttime
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER DvbTeletextPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-dvbteletextpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Scte35Control
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-scte35control
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PcrPeriod
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-pcrperiod
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NielsenId3Behavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-nielsenid3behavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PcrPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-pcrpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SegmentationTime
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-segmentationtime
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER CcDescriptor
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ccdescriptor
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioFramesPerPes
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-audioframesperpes
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER AbsentInputAudioBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-absentinputaudiobehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-bitrate
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER PmtPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-pmtpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Scte27Pids
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-scte27pids
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SegmentationMarkers
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-segmentationmarkers
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DvbNitSettings
        Type: DvbNitSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-dvbnitsettings
        UpdateType: Mutable

    .PARAMETER DvbSdtSettings
        Type: DvbSdtSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-dvbsdtsettings
        UpdateType: Mutable

    .PARAMETER EtvSignalPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-etvsignalpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Arib
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-arib
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER BufferModel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-buffermodel
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EcmPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ecmpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-timedmetadatapid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioPids
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-audiopids
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioBufferModel
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-audiobuffermodel
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Ebif
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-ebif
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AribCaptionsPidControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-aribcaptionspidcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PcrControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m2tssettings.html#cfn-medialive-channel-m2tssettings-pcrcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelM2tsSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $EtvPlatformPid,
        [parameter(Mandatory = $false)]
        [object]
        $PatInterval,
        [parameter(Mandatory = $false)]
        [object]
        $ProgramNum,
        [parameter(Mandatory = $false)]
        [object]
        $RateMode,
        [parameter(Mandatory = $false)]
        [object]
        $KlvDataPids,
        [parameter(Mandatory = $false)]
        [object]
        $NullPacketBitrate,
        [parameter(Mandatory = $false)]
        [object]
        $PmtInterval,
        [parameter(Mandatory = $false)]
        [object]
        $AribCaptionsPid,
        [parameter(Mandatory = $false)]
        [object]
        $EsRateInPes,
        [parameter(Mandatory = $false)]
        [object]
        $VideoPid,
        [parameter(Mandatory = $false)]
        [object]
        $TransportStreamId,
        [parameter(Mandatory = $false)]
        [object]
        $EbpPlacement,
        [parameter(Mandatory = $false)]
        [object]
        $DvbSubPids,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentationStyle,
        [parameter(Mandatory = $false)]
        [object]
        $Scte35Pid,
        [parameter(Mandatory = $false)]
        [object]
        $AudioStreamType,
        [parameter(Mandatory = $false)]
        [object]
        $Klv,
        [parameter(Mandatory = $false)]
        [object]
        $EbpLookaheadMs,
        [parameter(Mandatory = $false)]
        $DvbTdtSettings,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $EbpAudioInterval,
        [parameter(Mandatory = $false)]
        [object]
        $FragmentTime,
        [parameter(Mandatory = $false)]
        [object]
        $DvbTeletextPid,
        [parameter(Mandatory = $false)]
        [object]
        $Scte35Control,
        [parameter(Mandatory = $false)]
        [object]
        $PcrPeriod,
        [parameter(Mandatory = $false)]
        [object]
        $NielsenId3Behavior,
        [parameter(Mandatory = $false)]
        [object]
        $PcrPid,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentationTime,
        [parameter(Mandatory = $false)]
        [object]
        $CcDescriptor,
        [parameter(Mandatory = $false)]
        [object]
        $AudioFramesPerPes,
        [parameter(Mandatory = $false)]
        [object]
        $AbsentInputAudioBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate,
        [parameter(Mandatory = $false)]
        [object]
        $PmtPid,
        [parameter(Mandatory = $false)]
        [object]
        $Scte27Pids,
        [parameter(Mandatory = $false)]
        [object]
        $SegmentationMarkers,
        [parameter(Mandatory = $false)]
        $DvbNitSettings,
        [parameter(Mandatory = $false)]
        $DvbSdtSettings,
        [parameter(Mandatory = $false)]
        [object]
        $EtvSignalPid,
        [parameter(Mandatory = $false)]
        [object]
        $Arib,
        [parameter(Mandatory = $false)]
        [object]
        $BufferModel,
        [parameter(Mandatory = $false)]
        [object]
        $EcmPid,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataPid,
        [parameter(Mandatory = $false)]
        [object]
        $AudioPids,
        [parameter(Mandatory = $false)]
        [object]
        $AudioBufferModel,
        [parameter(Mandatory = $false)]
        [object]
        $Ebif,
        [parameter(Mandatory = $false)]
        [object]
        $AribCaptionsPidControl,
        [parameter(Mandatory = $false)]
        [object]
        $PcrControl
    )
    Process {
        $obj = [MediaLiveChannelM2tsSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelM2tsSettings'

function Add-VSMediaLiveChannelM3u8Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.M3u8Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.M3u8Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html

    .PARAMETER PatInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-patinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ProgramNum
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-programnum
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER PcrPeriod
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-pcrperiod
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER PmtInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-pmtinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER NielsenId3Behavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-nielsenid3behavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PcrPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-pcrpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER VideoPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-videopid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioFramesPerPes
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-audioframesperpes
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TransportStreamId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-transportstreamid
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER PmtPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-pmtpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Scte35Pid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-scte35pid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Scte35Behavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-scte35behavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EcmPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-ecmpid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-timedmetadatapid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioPids
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-audiopids
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PcrControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-pcrcontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-m3u8settings.html#cfn-medialive-channel-m3u8settings-timedmetadatabehavior
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelM3u8Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $PatInterval,
        [parameter(Mandatory = $false)]
        [object]
        $ProgramNum,
        [parameter(Mandatory = $false)]
        [object]
        $PcrPeriod,
        [parameter(Mandatory = $false)]
        [object]
        $PmtInterval,
        [parameter(Mandatory = $false)]
        [object]
        $NielsenId3Behavior,
        [parameter(Mandatory = $false)]
        [object]
        $PcrPid,
        [parameter(Mandatory = $false)]
        [object]
        $VideoPid,
        [parameter(Mandatory = $false)]
        [object]
        $AudioFramesPerPes,
        [parameter(Mandatory = $false)]
        [object]
        $TransportStreamId,
        [parameter(Mandatory = $false)]
        [object]
        $PmtPid,
        [parameter(Mandatory = $false)]
        [object]
        $Scte35Pid,
        [parameter(Mandatory = $false)]
        [object]
        $Scte35Behavior,
        [parameter(Mandatory = $false)]
        [object]
        $EcmPid,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataPid,
        [parameter(Mandatory = $false)]
        [object]
        $AudioPids,
        [parameter(Mandatory = $false)]
        [object]
        $PcrControl,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataBehavior
    )
    Process {
        $obj = [MediaLiveChannelM3u8Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelM3u8Settings'

function Add-VSMediaLiveChannelMediaPackageGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MediaPackageGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MediaPackageGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackagegroupsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackagegroupsettings.html#cfn-medialive-channel-mediapackagegroupsettings-destination
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMediaPackageGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination
    )
    Process {
        $obj = [MediaLiveChannelMediaPackageGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMediaPackageGroupSettings'

function Add-VSMediaLiveChannelMediaPackageOutputDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings resource property to the template. Destination settings for a MediaPackage output.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings resource property to the template.
Destination settings for a MediaPackage output.

The parent of this entity is OutputDestination.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html

    .PARAMETER ChannelId
        The ID of the channel in MediaPackage that is the destination for this output group. You don't need to specify the individual inputs in MediaPackage; MediaLive handles the connection of the two MediaLive pipelines to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same Region.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputdestinationsettings.html#cfn-medialive-channel-mediapackageoutputdestinationsettings-channelid
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMediaPackageOutputDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ChannelId
    )
    Process {
        $obj = [MediaLiveChannelMediaPackageOutputDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMediaPackageOutputDestinationSettings'

function Add-VSMediaLiveChannelMediaPackageOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MediaPackageOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MediaPackageOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mediapackageoutputsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMediaPackageOutputSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelMediaPackageOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMediaPackageOutputSettings'

function Add-VSMediaLiveChannelMp2Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Mp2Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Mp2Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html

    .PARAMETER CodingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html#cfn-medialive-channel-mp2settings-codingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SampleRate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html#cfn-medialive-channel-mp2settings-samplerate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER Bitrate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mp2settings.html#cfn-medialive-channel-mp2settings-bitrate
        PrimitiveType: Double
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMp2Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CodingMode,
        [parameter(Mandatory = $false)]
        [object]
        $SampleRate,
        [parameter(Mandatory = $false)]
        [object]
        $Bitrate
    )
    Process {
        $obj = [MediaLiveChannelMp2Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMp2Settings'

function Add-VSMediaLiveChannelMpeg2FilterSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Mpeg2FilterSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Mpeg2FilterSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2filtersettings.html

    .PARAMETER TemporalFilterSettings
        Type: TemporalFilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2filtersettings.html#cfn-medialive-channel-mpeg2filtersettings-temporalfiltersettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMpeg2FilterSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $TemporalFilterSettings
    )
    Process {
        $obj = [MediaLiveChannelMpeg2FilterSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMpeg2FilterSettings'

function Add-VSMediaLiveChannelMpeg2Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Mpeg2Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Mpeg2Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html

    .PARAMETER ColorSpace
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-colorspace
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FixedAfd
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-fixedafd
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER GopSizeUnits
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-gopsizeunits
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FramerateNumerator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-frameratenumerator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopClosedCadence
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-gopclosedcadence
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER AfdSignaling
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-afdsignaling
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DisplayAspectRatio
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-displayaspectratio
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ScanType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-scantype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimecodeInsertion
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-timecodeinsertion
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ColorMetadata
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-colormetadata
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FramerateDenominator
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-frameratedenominator
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER GopSize
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-gopsize
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER AdaptiveQuantization
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-adaptivequantization
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SubgopLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-subgoplength
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilterSettings
        Type: Mpeg2FilterSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-filtersettings
        UpdateType: Mutable

    .PARAMETER GopNumBFrames
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mpeg2settings.html#cfn-medialive-channel-mpeg2settings-gopnumbframes
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMpeg2Settings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ColorSpace,
        [parameter(Mandatory = $false)]
        [object]
        $FixedAfd,
        [parameter(Mandatory = $false)]
        [object]
        $GopSizeUnits,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateNumerator,
        [parameter(Mandatory = $false)]
        [object]
        $GopClosedCadence,
        [parameter(Mandatory = $false)]
        [object]
        $AfdSignaling,
        [parameter(Mandatory = $false)]
        [object]
        $DisplayAspectRatio,
        [parameter(Mandatory = $false)]
        [object]
        $ScanType,
        [parameter(Mandatory = $false)]
        [object]
        $TimecodeInsertion,
        [parameter(Mandatory = $false)]
        [object]
        $ColorMetadata,
        [parameter(Mandatory = $false)]
        [object]
        $FramerateDenominator,
        [parameter(Mandatory = $false)]
        [object]
        $GopSize,
        [parameter(Mandatory = $false)]
        [object]
        $AdaptiveQuantization,
        [parameter(Mandatory = $false)]
        [object]
        $SubgopLength,
        [parameter(Mandatory = $false)]
        $FilterSettings,
        [parameter(Mandatory = $false)]
        [object]
        $GopNumBFrames
    )
    Process {
        $obj = [MediaLiveChannelMpeg2Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMpeg2Settings'

function Add-VSMediaLiveChannelMsSmoothGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MsSmoothGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MsSmoothGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html

    .PARAMETER SegmentationMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-segmentationmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-destination
        UpdateType: Mutable

    .PARAMETER EventStopBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-eventstopbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FilecacheDuration
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-filecacheduration
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER CertificateMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-certificatemode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AcquisitionPointId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-acquisitionpointid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER StreamManifestBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-streammanifestbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER InputLossAction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-inputlossaction
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER FragmentLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-fragmentlength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER SparseTrackType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-sparsetracktype
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EventIdMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-eventidmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimestampOffsetMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-timestampoffsetmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER AudioOnlyTimecodeControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-audioonlytimecodecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER TimestampOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-timestampoffset
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EventId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-eventid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SendDelayMs
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-senddelayms
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothgroupsettings.html#cfn-medialive-channel-mssmoothgroupsettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMsSmoothGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $SegmentationMode,
        [parameter(Mandatory = $false)]
        $Destination,
        [parameter(Mandatory = $false)]
        [object]
        $EventStopBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $FilecacheDuration,
        [parameter(Mandatory = $false)]
        [object]
        $CertificateMode,
        [parameter(Mandatory = $false)]
        [object]
        $AcquisitionPointId,
        [parameter(Mandatory = $false)]
        [object]
        $StreamManifestBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $InputLossAction,
        [parameter(Mandatory = $false)]
        [object]
        $FragmentLength,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $SparseTrackType,
        [parameter(Mandatory = $false)]
        [object]
        $EventIdMode,
        [parameter(Mandatory = $false)]
        [object]
        $TimestampOffsetMode,
        [parameter(Mandatory = $false)]
        [object]
        $AudioOnlyTimecodeControl,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $TimestampOffset,
        [parameter(Mandatory = $false)]
        [object]
        $EventId,
        [parameter(Mandatory = $false)]
        [object]
        $SendDelayMs,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval
    )
    Process {
        $obj = [MediaLiveChannelMsSmoothGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMsSmoothGroupSettings'

function Add-VSMediaLiveChannelMsSmoothOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MsSmoothOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MsSmoothOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html

    .PARAMETER NameModifier
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html#cfn-medialive-channel-mssmoothoutputsettings-namemodifier
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER H265PackagingType
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-mssmoothoutputsettings.html#cfn-medialive-channel-mssmoothoutputsettings-h265packagingtype
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMsSmoothOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $NameModifier,
        [parameter(Mandatory = $false)]
        [object]
        $H265PackagingType
    )
    Process {
        $obj = [MediaLiveChannelMsSmoothOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMsSmoothOutputSettings'

function Add-VSMediaLiveChannelMultiplexGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MultiplexGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MultiplexGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexgroupsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMultiplexGroupSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelMultiplexGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMultiplexGroupSettings'

function Add-VSMediaLiveChannelMultiplexOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MultiplexOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MultiplexOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexoutputsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexoutputsettings.html#cfn-medialive-channel-multiplexoutputsettings-destination
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMultiplexOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination
    )
    Process {
        $obj = [MediaLiveChannelMultiplexOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMultiplexOutputSettings'

function Add-VSMediaLiveChannelMultiplexProgramChannelDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings resource property to the template. <a name="aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings-description"></a>The MultiplexProgramChannelDestinationSettings property type specifies Not currently supported by AWS CloudFormation. for an AWS::MediaLive::Channel: aws-resource-medialive-channel.md.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings resource property to the template.
<a name="aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings-description"></a>The MultiplexProgramChannelDestinationSettings property type specifies Not currently supported by AWS CloudFormation. for an AWS::MediaLive::Channel: aws-resource-medialive-channel.md.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html

    .PARAMETER MultiplexId
        Not currently supported by AWS CloudFormation.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html#cfn-medialive-channel-multiplexprogramchanneldestinationsettings-multiplexid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ProgramName
        Not currently supported by AWS CloudFormation.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-multiplexprogramchanneldestinationsettings.html#cfn-medialive-channel-multiplexprogramchanneldestinationsettings-programname
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelMultiplexProgramChannelDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $MultiplexId,
        [parameter(Mandatory = $false)]
        [object]
        $ProgramName
    )
    Process {
        $obj = [MediaLiveChannelMultiplexProgramChannelDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelMultiplexProgramChannelDestinationSettings'

function Add-VSMediaLiveChannelNetworkInputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.NetworkInputSettings resource property to the template. Information about how to connect to the upstream system.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.NetworkInputSettings resource property to the template.
Information about how to connect to the upstream system.

The parent of this entity is InputSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html

    .PARAMETER ServerValidation
        Checks HTTPS server certificates. When set to checkCryptographyOnly, cryptography in the certificate is checked, but not the server's name. Certain subdomains notably S3 buckets that use dots in the bucket name don't strictly match the corresponding certificate's wildcard pattern and would otherwise cause the channel to error. This setting is ignored for protocols that do not use HTTPS.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html#cfn-medialive-channel-networkinputsettings-servervalidation
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER HlsInputSettings
        Information about how to connect to the upstream system.

        Type: HlsInputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-networkinputsettings.html#cfn-medialive-channel-networkinputsettings-hlsinputsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelNetworkInputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ServerValidation,
        [parameter(Mandatory = $false)]
        $HlsInputSettings
    )
    Process {
        $obj = [MediaLiveChannelNetworkInputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelNetworkInputSettings'

function Add-VSMediaLiveChannelNielsenConfiguration {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.NielsenConfiguration resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.NielsenConfiguration resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html

    .PARAMETER DistributorId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html#cfn-medialive-channel-nielsenconfiguration-distributorid
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NielsenPcmToId3Tagging
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-nielsenconfiguration.html#cfn-medialive-channel-nielsenconfiguration-nielsenpcmtoid3tagging
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelNielsenConfiguration])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $DistributorId,
        [parameter(Mandatory = $false)]
        [object]
        $NielsenPcmToId3Tagging
    )
    Process {
        $obj = [MediaLiveChannelNielsenConfiguration]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelNielsenConfiguration'

function Add-VSMediaLiveChannelOutput {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Output resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Output resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html

    .PARAMETER OutputSettings
        Type: OutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html#cfn-medialive-channel-output-outputsettings
        UpdateType: Mutable

    .PARAMETER CaptionDescriptionNames
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html#cfn-medialive-channel-output-captiondescriptionnames
        UpdateType: Mutable

    .PARAMETER AudioDescriptionNames
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html#cfn-medialive-channel-output-audiodescriptionnames
        UpdateType: Mutable

    .PARAMETER OutputName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html#cfn-medialive-channel-output-outputname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER VideoDescriptionName
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-output.html#cfn-medialive-channel-output-videodescriptionname
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutput])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $OutputSettings,
        [parameter(Mandatory = $false)]
        $CaptionDescriptionNames,
        [parameter(Mandatory = $false)]
        $AudioDescriptionNames,
        [parameter(Mandatory = $false)]
        [object]
        $OutputName,
        [parameter(Mandatory = $false)]
        [object]
        $VideoDescriptionName
    )
    Process {
        $obj = [MediaLiveChannelOutput]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutput'

function Add-VSMediaLiveChannelOutputDestination {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputDestination resource property to the template. Configuration information for an output.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputDestination resource property to the template.
Configuration information for an output.

This entity is at the top level in the channel.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html

    .PARAMETER MultiplexSettings
        Not currently supported by AWS CloudFormation.

        Type: MultiplexProgramChannelDestinationSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-multiplexsettings
        UpdateType: Mutable

    .PARAMETER Id
        The ID for this destination.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-id
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Settings
        The destination settings for an output.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-settings
        ItemType: OutputDestinationSettings
        UpdateType: Mutable

    .PARAMETER MediaPackageSettings
        The destination settings for a MediaPackage output.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestination.html#cfn-medialive-channel-outputdestination-mediapackagesettings
        ItemType: MediaPackageOutputDestinationSettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputDestination])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $MultiplexSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Id,
        [parameter(Mandatory = $false)]
        [object]
        $Settings,
        [parameter(Mandatory = $false)]
        [object]
        $MediaPackageSettings
    )
    Process {
        $obj = [MediaLiveChannelOutputDestination]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputDestination'

function Add-VSMediaLiveChannelOutputDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputDestinationSettings resource property to the template. The configuration information for this output.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputDestinationSettings resource property to the template.
The configuration information for this output.

The parent of this entity is OutputDestination.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html

    .PARAMETER StreamName
        The stream name for the content. This applies only to RTMP outputs.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-streamname
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Username
        The user name for the downstream system. This applies only if the downstream system requires credentials.
user name for destination

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-username
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PasswordParam
        The password parameter that holds the password for accessing the downstream system. This password parameter applies only if the downstream system requires credentials.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-passwordparam
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Url
        The URL for the destination.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputdestinationsettings.html#cfn-medialive-channel-outputdestinationsettings-url
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputDestinationSettings])]
    [cmdletbinding()]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","PasswordParam")]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","PasswordParam")]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $StreamName,
        [parameter(Mandatory = $false)]
        [object]
        $Username,
        [parameter(Mandatory = $false)]
        [object]
        $PasswordParam,
        [parameter(Mandatory = $false)]
        [object]
        $Url
    )
    Process {
        $obj = [MediaLiveChannelOutputDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputDestinationSettings'

function Add-VSMediaLiveChannelOutputGroup {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputGroup resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputGroup resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html

    .PARAMETER Outputs
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html#cfn-medialive-channel-outputgroup-outputs
        ItemType: Output
        UpdateType: Mutable

    .PARAMETER OutputGroupSettings
        Type: OutputGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html#cfn-medialive-channel-outputgroup-outputgroupsettings
        UpdateType: Mutable

    .PARAMETER Name
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroup.html#cfn-medialive-channel-outputgroup-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputGroup])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Outputs,
        [parameter(Mandatory = $false)]
        $OutputGroupSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelOutputGroup]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputGroup'

function Add-VSMediaLiveChannelOutputGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html

    .PARAMETER HlsGroupSettings
        Type: HlsGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-hlsgroupsettings
        UpdateType: Mutable

    .PARAMETER FrameCaptureGroupSettings
        Type: FrameCaptureGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-framecapturegroupsettings
        UpdateType: Mutable

    .PARAMETER MultiplexGroupSettings
        Type: MultiplexGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-multiplexgroupsettings
        UpdateType: Mutable

    .PARAMETER ArchiveGroupSettings
        Type: ArchiveGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-archivegroupsettings
        UpdateType: Mutable

    .PARAMETER MediaPackageGroupSettings
        Type: MediaPackageGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-mediapackagegroupsettings
        UpdateType: Mutable

    .PARAMETER UdpGroupSettings
        Type: UdpGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-udpgroupsettings
        UpdateType: Mutable

    .PARAMETER MsSmoothGroupSettings
        Type: MsSmoothGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-mssmoothgroupsettings
        UpdateType: Mutable

    .PARAMETER RtmpGroupSettings
        Type: RtmpGroupSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputgroupsettings.html#cfn-medialive-channel-outputgroupsettings-rtmpgroupsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $HlsGroupSettings,
        [parameter(Mandatory = $false)]
        $FrameCaptureGroupSettings,
        [parameter(Mandatory = $false)]
        $MultiplexGroupSettings,
        [parameter(Mandatory = $false)]
        $ArchiveGroupSettings,
        [parameter(Mandatory = $false)]
        $MediaPackageGroupSettings,
        [parameter(Mandatory = $false)]
        $UdpGroupSettings,
        [parameter(Mandatory = $false)]
        $MsSmoothGroupSettings,
        [parameter(Mandatory = $false)]
        $RtmpGroupSettings
    )
    Process {
        $obj = [MediaLiveChannelOutputGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputGroupSettings'

function Add-VSMediaLiveChannelOutputLocationRef {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputLocationRef resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputLocationRef resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html

    .PARAMETER DestinationRefId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputlocationref.html#cfn-medialive-channel-outputlocationref-destinationrefid
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputLocationRef])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $DestinationRefId
    )
    Process {
        $obj = [MediaLiveChannelOutputLocationRef]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputLocationRef'

function Add-VSMediaLiveChannelOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.OutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.OutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html

    .PARAMETER MediaPackageOutputSettings
        Type: MediaPackageOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-mediapackageoutputsettings
        UpdateType: Mutable

    .PARAMETER MsSmoothOutputSettings
        Type: MsSmoothOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-mssmoothoutputsettings
        UpdateType: Mutable

    .PARAMETER FrameCaptureOutputSettings
        Type: FrameCaptureOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-framecaptureoutputsettings
        UpdateType: Mutable

    .PARAMETER HlsOutputSettings
        Type: HlsOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-hlsoutputsettings
        UpdateType: Mutable

    .PARAMETER RtmpOutputSettings
        Type: RtmpOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-rtmpoutputsettings
        UpdateType: Mutable

    .PARAMETER UdpOutputSettings
        Type: UdpOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-udpoutputsettings
        UpdateType: Mutable

    .PARAMETER MultiplexOutputSettings
        Type: MultiplexOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-multiplexoutputsettings
        UpdateType: Mutable

    .PARAMETER ArchiveOutputSettings
        Type: ArchiveOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-outputsettings.html#cfn-medialive-channel-outputsettings-archiveoutputsettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $MediaPackageOutputSettings,
        [parameter(Mandatory = $false)]
        $MsSmoothOutputSettings,
        [parameter(Mandatory = $false)]
        $FrameCaptureOutputSettings,
        [parameter(Mandatory = $false)]
        $HlsOutputSettings,
        [parameter(Mandatory = $false)]
        $RtmpOutputSettings,
        [parameter(Mandatory = $false)]
        $UdpOutputSettings,
        [parameter(Mandatory = $false)]
        $MultiplexOutputSettings,
        [parameter(Mandatory = $false)]
        $ArchiveOutputSettings
    )
    Process {
        $obj = [MediaLiveChannelOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelOutputSettings'

function Add-VSMediaLiveChannelPassThroughSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.PassThroughSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.PassThroughSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-passthroughsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelPassThroughSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelPassThroughSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelPassThroughSettings'

function Add-VSMediaLiveChannelRawSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.RawSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.RawSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rawsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRawSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelRawSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRawSettings'

function Add-VSMediaLiveChannelRec601Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Rec601Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Rec601Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec601settings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRec601Settings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelRec601Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRec601Settings'

function Add-VSMediaLiveChannelRec709Settings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Rec709Settings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Rec709Settings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rec709settings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRec709Settings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelRec709Settings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRec709Settings'

function Add-VSMediaLiveChannelRemixSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.RemixSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.RemixSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html

    .PARAMETER ChannelsOut
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html#cfn-medialive-channel-remixsettings-channelsout
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ChannelMappings
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html#cfn-medialive-channel-remixsettings-channelmappings
        ItemType: AudioChannelMapping
        UpdateType: Mutable

    .PARAMETER ChannelsIn
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-remixsettings.html#cfn-medialive-channel-remixsettings-channelsin
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRemixSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ChannelsOut,
        [parameter(Mandatory = $false)]
        [object]
        $ChannelMappings,
        [parameter(Mandatory = $false)]
        [object]
        $ChannelsIn
    )
    Process {
        $obj = [MediaLiveChannelRemixSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRemixSettings'

function Add-VSMediaLiveChannelRtmpCaptionInfoDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpcaptioninfodestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRtmpCaptionInfoDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelRtmpCaptionInfoDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRtmpCaptionInfoDestinationSettings'

function Add-VSMediaLiveChannelRtmpGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.RtmpGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.RtmpGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html

    .PARAMETER AuthenticationScheme
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-authenticationscheme
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CacheLength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-cachelength
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER AdMarkers
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-admarkers
        UpdateType: Mutable

    .PARAMETER InputLossAction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-inputlossaction
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RestartDelay
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-restartdelay
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER CaptionData
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-captiondata
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER CacheFullBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpgroupsettings.html#cfn-medialive-channel-rtmpgroupsettings-cachefullbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRtmpGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AuthenticationScheme,
        [parameter(Mandatory = $false)]
        [object]
        $CacheLength,
        [parameter(Mandatory = $false)]
        $AdMarkers,
        [parameter(Mandatory = $false)]
        [object]
        $InputLossAction,
        [parameter(Mandatory = $false)]
        [object]
        $RestartDelay,
        [parameter(Mandatory = $false)]
        [object]
        $CaptionData,
        [parameter(Mandatory = $false)]
        [object]
        $CacheFullBehavior
    )
    Process {
        $obj = [MediaLiveChannelRtmpGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRtmpGroupSettings'

function Add-VSMediaLiveChannelRtmpOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.RtmpOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.RtmpOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html#cfn-medialive-channel-rtmpoutputsettings-destination
        UpdateType: Mutable

    .PARAMETER CertificateMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html#cfn-medialive-channel-rtmpoutputsettings-certificatemode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NumRetries
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html#cfn-medialive-channel-rtmpoutputsettings-numretries
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER ConnectionRetryInterval
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-rtmpoutputsettings.html#cfn-medialive-channel-rtmpoutputsettings-connectionretryinterval
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelRtmpOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination,
        [parameter(Mandatory = $false)]
        [object]
        $CertificateMode,
        [parameter(Mandatory = $false)]
        [object]
        $NumRetries,
        [parameter(Mandatory = $false)]
        [object]
        $ConnectionRetryInterval
    )
    Process {
        $obj = [MediaLiveChannelRtmpOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelRtmpOutputSettings'

function Add-VSMediaLiveChannelScte20PlusEmbeddedDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20plusembeddeddestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte20PlusEmbeddedDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelScte20PlusEmbeddedDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte20PlusEmbeddedDestinationSettings'

function Add-VSMediaLiveChannelScte20SourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte20SourceSettings resource property to the template. Information about the SCTE-20 captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte20SourceSettings resource property to the template.
Information about the SCTE-20 captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html

    .PARAMETER Source608ChannelNumber
        Specifies the 608/708 channel number within the video track from which to extract captions.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html#cfn-medialive-channel-scte20sourcesettings-source608channelnumber
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Convert608To708
        If upconvert, 608 data is both passed through the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. Any 708 data present in the source content is discarded.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte20sourcesettings.html#cfn-medialive-channel-scte20sourcesettings-convert608to708
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte20SourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Source608ChannelNumber,
        [parameter(Mandatory = $false)]
        [object]
        $Convert608To708
    )
    Process {
        $obj = [MediaLiveChannelScte20SourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte20SourceSettings'

function Add-VSMediaLiveChannelScte27DestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte27DestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte27DestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27destinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte27DestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelScte27DestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte27DestinationSettings'

function Add-VSMediaLiveChannelScte27SourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte27SourceSettings resource property to the template. Information about the SCTE-27 captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte27SourceSettings resource property to the template.
Information about the SCTE-27 captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html

    .PARAMETER Pid
        The PID field is used in conjunction with the captions selector languageCode field as follows: Specify PID and Language: Extracts captions from that PID; the language is "informational." Specify PID and omit Language: Extracts the specified PID. Omit PID and specify Language: Extracts the specified language, whichever PID that happens to be. Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all languages are passed through.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte27sourcesettings.html#cfn-medialive-channel-scte27sourcesettings-pid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte27SourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Pid
    )
    Process {
        $obj = [MediaLiveChannelScte27SourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte27SourceSettings'

function Add-VSMediaLiveChannelScte35SpliceInsert {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte35SpliceInsert resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte35SpliceInsert resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html

    .PARAMETER AdAvailOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html#cfn-medialive-channel-scte35spliceinsert-adavailoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER WebDeliveryAllowedFlag
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html#cfn-medialive-channel-scte35spliceinsert-webdeliveryallowedflag
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NoRegionalBlackoutFlag
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35spliceinsert.html#cfn-medialive-channel-scte35spliceinsert-noregionalblackoutflag
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte35SpliceInsert])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AdAvailOffset,
        [parameter(Mandatory = $false)]
        [object]
        $WebDeliveryAllowedFlag,
        [parameter(Mandatory = $false)]
        [object]
        $NoRegionalBlackoutFlag
    )
    Process {
        $obj = [MediaLiveChannelScte35SpliceInsert]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte35SpliceInsert'

function Add-VSMediaLiveChannelScte35TimeSignalApos {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.Scte35TimeSignalApos resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.Scte35TimeSignalApos resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html

    .PARAMETER AdAvailOffset
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html#cfn-medialive-channel-scte35timesignalapos-adavailoffset
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER WebDeliveryAllowedFlag
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html#cfn-medialive-channel-scte35timesignalapos-webdeliveryallowedflag
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER NoRegionalBlackoutFlag
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-scte35timesignalapos.html#cfn-medialive-channel-scte35timesignalapos-noregionalblackoutflag
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelScte35TimeSignalApos])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AdAvailOffset,
        [parameter(Mandatory = $false)]
        [object]
        $WebDeliveryAllowedFlag,
        [parameter(Mandatory = $false)]
        [object]
        $NoRegionalBlackoutFlag
    )
    Process {
        $obj = [MediaLiveChannelScte35TimeSignalApos]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelScte35TimeSignalApos'

function Add-VSMediaLiveChannelSmpteTtDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.SmpteTtDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.SmpteTtDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-smptettdestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelSmpteTtDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelSmpteTtDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelSmpteTtDestinationSettings'

function Add-VSMediaLiveChannelStandardHlsSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.StandardHlsSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.StandardHlsSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html

    .PARAMETER AudioRenditionSets
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html#cfn-medialive-channel-standardhlssettings-audiorenditionsets
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER M3u8Settings
        Type: M3u8Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-standardhlssettings.html#cfn-medialive-channel-standardhlssettings-m3u8settings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelStandardHlsSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $AudioRenditionSets,
        [parameter(Mandatory = $false)]
        $M3u8Settings
    )
    Process {
        $obj = [MediaLiveChannelStandardHlsSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelStandardHlsSettings'

function Add-VSMediaLiveChannelStaticKeySettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.StaticKeySettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.StaticKeySettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html

    .PARAMETER KeyProviderServer
        Type: InputLocation
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html#cfn-medialive-channel-statickeysettings-keyproviderserver
        UpdateType: Mutable

    .PARAMETER StaticKeyValue
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-statickeysettings.html#cfn-medialive-channel-statickeysettings-statickeyvalue
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelStaticKeySettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $KeyProviderServer,
        [parameter(Mandatory = $false)]
        [object]
        $StaticKeyValue
    )
    Process {
        $obj = [MediaLiveChannelStaticKeySettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelStaticKeySettings'

function Add-VSMediaLiveChannelTeletextDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.TeletextDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.TeletextDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextdestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelTeletextDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelTeletextDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelTeletextDestinationSettings'

function Add-VSMediaLiveChannelTeletextSourceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.TeletextSourceSettings resource property to the template. Information about the Teletext captions to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.TeletextSourceSettings resource property to the template.
Information about the Teletext captions to extract from the input.

The parent of this entity is CaptionSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html

    .PARAMETER PageNumber
        Specifies the Teletext page number within the data stream from which to extract captions. The range is 0x100 256 to 0x8FF 2303. This is unused for passthrough. It should be specified as a hexadecimal string with no "0x" prefix.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-teletextsourcesettings.html#cfn-medialive-channel-teletextsourcesettings-pagenumber
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelTeletextSourceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $PageNumber
    )
    Process {
        $obj = [MediaLiveChannelTeletextSourceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelTeletextSourceSettings'

function Add-VSMediaLiveChannelTemporalFilterSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.TemporalFilterSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.TemporalFilterSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html

    .PARAMETER PostFilterSharpening
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html#cfn-medialive-channel-temporalfiltersettings-postfiltersharpening
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Strength
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-temporalfiltersettings.html#cfn-medialive-channel-temporalfiltersettings-strength
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelTemporalFilterSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $PostFilterSharpening,
        [parameter(Mandatory = $false)]
        [object]
        $Strength
    )
    Process {
        $obj = [MediaLiveChannelTemporalFilterSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelTemporalFilterSettings'

function Add-VSMediaLiveChannelTimecodeConfig {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.TimecodeConfig resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.TimecodeConfig resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html

    .PARAMETER SyncThreshold
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html#cfn-medialive-channel-timecodeconfig-syncthreshold
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Source
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-timecodeconfig.html#cfn-medialive-channel-timecodeconfig-source
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelTimecodeConfig])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $SyncThreshold,
        [parameter(Mandatory = $false)]
        [object]
        $Source
    )
    Process {
        $obj = [MediaLiveChannelTimecodeConfig]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelTimecodeConfig'

function Add-VSMediaLiveChannelTtmlDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.TtmlDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.TtmlDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ttmldestinationsettings.html

    .PARAMETER StyleControl
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-ttmldestinationsettings.html#cfn-medialive-channel-ttmldestinationsettings-stylecontrol
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelTtmlDestinationSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $StyleControl
    )
    Process {
        $obj = [MediaLiveChannelTtmlDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelTtmlDestinationSettings'

function Add-VSMediaLiveChannelUdpContainerSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.UdpContainerSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.UdpContainerSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpcontainersettings.html

    .PARAMETER M2tsSettings
        Type: M2tsSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpcontainersettings.html#cfn-medialive-channel-udpcontainersettings-m2tssettings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelUdpContainerSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $M2tsSettings
    )
    Process {
        $obj = [MediaLiveChannelUdpContainerSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelUdpContainerSettings'

function Add-VSMediaLiveChannelUdpGroupSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.UdpGroupSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.UdpGroupSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html

    .PARAMETER TimedMetadataId3Frame
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html#cfn-medialive-channel-udpgroupsettings-timedmetadataid3frame
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER TimedMetadataId3Period
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html#cfn-medialive-channel-udpgroupsettings-timedmetadataid3period
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER InputLossAction
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpgroupsettings.html#cfn-medialive-channel-udpgroupsettings-inputlossaction
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelUdpGroupSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataId3Frame,
        [parameter(Mandatory = $false)]
        [object]
        $TimedMetadataId3Period,
        [parameter(Mandatory = $false)]
        [object]
        $InputLossAction
    )
    Process {
        $obj = [MediaLiveChannelUdpGroupSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelUdpGroupSettings'

function Add-VSMediaLiveChannelUdpOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.UdpOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.UdpOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html

    .PARAMETER Destination
        Type: OutputLocationRef
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html#cfn-medialive-channel-udpoutputsettings-destination
        UpdateType: Mutable

    .PARAMETER FecOutputSettings
        Type: FecOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html#cfn-medialive-channel-udpoutputsettings-fecoutputsettings
        UpdateType: Mutable

    .PARAMETER ContainerSettings
        Type: UdpContainerSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html#cfn-medialive-channel-udpoutputsettings-containersettings
        UpdateType: Mutable

    .PARAMETER BufferMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-udpoutputsettings.html#cfn-medialive-channel-udpoutputsettings-buffermsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelUdpOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Destination,
        [parameter(Mandatory = $false)]
        $FecOutputSettings,
        [parameter(Mandatory = $false)]
        $ContainerSettings,
        [parameter(Mandatory = $false)]
        [object]
        $BufferMsec
    )
    Process {
        $obj = [MediaLiveChannelUdpOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelUdpOutputSettings'

function Add-VSMediaLiveChannelVideoBlackFailoverSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoBlackFailoverSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoBlackFailoverSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html

    .PARAMETER VideoBlackThresholdMsec
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html#cfn-medialive-channel-videoblackfailoversettings-videoblackthresholdmsec
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER BlackDetectThreshold
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoblackfailoversettings.html#cfn-medialive-channel-videoblackfailoversettings-blackdetectthreshold
        PrimitiveType: Double
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoBlackFailoverSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $VideoBlackThresholdMsec,
        [parameter(Mandatory = $false)]
        [object]
        $BlackDetectThreshold
    )
    Process {
        $obj = [MediaLiveChannelVideoBlackFailoverSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoBlackFailoverSettings'

function Add-VSMediaLiveChannelVideoCodecSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoCodecSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoCodecSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html

    .PARAMETER Mpeg2Settings
        Type: Mpeg2Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html#cfn-medialive-channel-videocodecsettings-mpeg2settings
        UpdateType: Mutable

    .PARAMETER FrameCaptureSettings
        Type: FrameCaptureSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html#cfn-medialive-channel-videocodecsettings-framecapturesettings
        UpdateType: Mutable

    .PARAMETER H264Settings
        Type: H264Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html#cfn-medialive-channel-videocodecsettings-h264settings
        UpdateType: Mutable

    .PARAMETER H265Settings
        Type: H265Settings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videocodecsettings.html#cfn-medialive-channel-videocodecsettings-h265settings
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoCodecSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $Mpeg2Settings,
        [parameter(Mandatory = $false)]
        $FrameCaptureSettings,
        [parameter(Mandatory = $false)]
        $H264Settings,
        [parameter(Mandatory = $false)]
        $H265Settings
    )
    Process {
        $obj = [MediaLiveChannelVideoCodecSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoCodecSettings'

function Add-VSMediaLiveChannelVideoDescription {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoDescription resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoDescription resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html

    .PARAMETER ScalingBehavior
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-scalingbehavior
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RespondToAfd
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-respondtoafd
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Height
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-height
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Sharpness
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-sharpness
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER Width
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-width
        PrimitiveType: Integer
        UpdateType: Mutable

    .PARAMETER CodecSettings
        Type: VideoCodecSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-codecsettings
        UpdateType: Mutable

    .PARAMETER Name
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videodescription.html#cfn-medialive-channel-videodescription-name
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoDescription])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ScalingBehavior,
        [parameter(Mandatory = $false)]
        [object]
        $RespondToAfd,
        [parameter(Mandatory = $false)]
        [object]
        $Height,
        [parameter(Mandatory = $false)]
        [object]
        $Sharpness,
        [parameter(Mandatory = $false)]
        [object]
        $Width,
        [parameter(Mandatory = $false)]
        $CodecSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Name
    )
    Process {
        $obj = [MediaLiveChannelVideoDescription]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoDescription'

function Add-VSMediaLiveChannelVideoSelector {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoSelector resource property to the template. Information about the video to extract from the input. An input can contain only one video selector.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoSelector resource property to the template.
Information about the video to extract from the input. An input can contain only one video selector.

The parent of this entity is InputSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html

    .PARAMETER SelectorSettings
        Information about the video to select from the content.

        Type: VideoSelectorSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-selectorsettings
        UpdateType: Mutable

    .PARAMETER ColorSpace
        Specifies the color space of an input. This setting works in tandem with colorSpaceConversion to determine if MediaLive will perform any conversion.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-colorspace
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER ColorSpaceUsage
        Applies only if colorSpace is a value other than Follow. This field controls how the value in the colorSpace field is used. Fallback means that when the input does include color space data, that data is used, but when the input has no color space data, the value in colorSpace is used. Choose fallback if your input is sometimes missing color space data, but when it does have color space data, that data is correct. Force means to always use the value in colorSpace. Choose force if your input usually has no color space data or might have unreliable color space data.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselector.html#cfn-medialive-channel-videoselector-colorspaceusage
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoSelector])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $SelectorSettings,
        [parameter(Mandatory = $false)]
        [object]
        $ColorSpace,
        [parameter(Mandatory = $false)]
        [object]
        $ColorSpaceUsage
    )
    Process {
        $obj = [MediaLiveChannelVideoSelector]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoSelector'

function Add-VSMediaLiveChannelVideoSelectorPid {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoSelectorPid resource property to the template. Selects a specific PID from within a video source.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoSelectorPid resource property to the template.
Selects a specific PID from within a video source.

The parent of this entity is VideoSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html

    .PARAMETER Pid
        Selects a specific PID from within a video source.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorpid.html#cfn-medialive-channel-videoselectorpid-pid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoSelectorPid])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Pid
    )
    Process {
        $obj = [MediaLiveChannelVideoSelectorPid]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoSelectorPid'

function Add-VSMediaLiveChannelVideoSelectorProgramId {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoSelectorProgramId resource property to the template. Used to extract video by the program ID.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoSelectorProgramId resource property to the template.
Used to extract video by the program ID.

The parent of this entity is VideoSelectorSettings.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html

    .PARAMETER ProgramId
        Selects a specific program from within a multi-program transport stream. If the program doesn't exist, MediaLive selects the first program within the transport stream by default.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorprogramid.html#cfn-medialive-channel-videoselectorprogramid-programid
        PrimitiveType: Integer
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoSelectorProgramId])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $ProgramId
    )
    Process {
        $obj = [MediaLiveChannelVideoSelectorProgramId]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoSelectorProgramId'

function Add-VSMediaLiveChannelVideoSelectorSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VideoSelectorSettings resource property to the template. Information about the video to extract from the input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VideoSelectorSettings resource property to the template.
Information about the video to extract from the input.

The parent of this entity is VideoSelector.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html

    .PARAMETER VideoSelectorProgramId
        Used to extract video by program ID.

        Type: VideoSelectorProgramId
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html#cfn-medialive-channel-videoselectorsettings-videoselectorprogramid
        UpdateType: Mutable

    .PARAMETER VideoSelectorPid
        Used to extract video by PID.

        Type: VideoSelectorPid
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-videoselectorsettings.html#cfn-medialive-channel-videoselectorsettings-videoselectorpid
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVideoSelectorSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $VideoSelectorProgramId,
        [parameter(Mandatory = $false)]
        $VideoSelectorPid
    )
    Process {
        $obj = [MediaLiveChannelVideoSelectorSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVideoSelectorSettings'

function Add-VSMediaLiveChannelVpcOutputSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.VpcOutputSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.VpcOutputSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html

    .PARAMETER PublicAddressAllocationIds
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html#cfn-medialive-channel-vpcoutputsettings-publicaddressallocationids
        UpdateType: Mutable

    .PARAMETER SecurityGroupIds
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html#cfn-medialive-channel-vpcoutputsettings-securitygroupids
        UpdateType: Mutable

    .PARAMETER SubnetIds
        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-vpcoutputsettings.html#cfn-medialive-channel-vpcoutputsettings-subnetids
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelVpcOutputSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $PublicAddressAllocationIds,
        [parameter(Mandatory = $false)]
        $SecurityGroupIds,
        [parameter(Mandatory = $false)]
        $SubnetIds
    )
    Process {
        $obj = [MediaLiveChannelVpcOutputSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelVpcOutputSettings'

function Add-VSMediaLiveChannelWavSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.WavSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.WavSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html

    .PARAMETER CodingMode
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html#cfn-medialive-channel-wavsettings-codingmode
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER SampleRate
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html#cfn-medialive-channel-wavsettings-samplerate
        PrimitiveType: Double
        UpdateType: Mutable

    .PARAMETER BitDepth
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-wavsettings.html#cfn-medialive-channel-wavsettings-bitdepth
        PrimitiveType: Double
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelWavSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $CodingMode,
        [parameter(Mandatory = $false)]
        [object]
        $SampleRate,
        [parameter(Mandatory = $false)]
        [object]
        $BitDepth
    )
    Process {
        $obj = [MediaLiveChannelWavSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelWavSettings'

function Add-VSMediaLiveChannelWebvttDestinationSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel.WebvttDestinationSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel.WebvttDestinationSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-webvttdestinationsettings.html

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannelWebvttDestinationSettings])]
    [cmdletbinding()]
    Param(
    )
    Process {
        $obj = [MediaLiveChannelWebvttDestinationSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveChannelWebvttDestinationSettings'

function Add-VSMediaLiveInputInputDestinationRequest {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.InputDestinationRequest resource property to the template. The settings for a push input, to set up the destination addresses on MediaLive.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.InputDestinationRequest resource property to the template.
The settings for a push input, to set up the destination addresses on MediaLive.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html

    .PARAMETER StreamName
        The stream name application name/application instance for the location the RTMP source content will be pushed to in MediaLive.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdestinationrequest.html#cfn-medialive-input-inputdestinationrequest-streamname
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputInputDestinationRequest])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $StreamName
    )
    Process {
        $obj = [MediaLiveInputInputDestinationRequest]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputInputDestinationRequest'

function Add-VSMediaLiveInputInputDeviceRequest {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.InputDeviceRequest resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.InputDeviceRequest resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicerequest.html

    .PARAMETER Id
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicerequest.html#cfn-medialive-input-inputdevicerequest-id
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputInputDeviceRequest])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Id
    )
    Process {
        $obj = [MediaLiveInputInputDeviceRequest]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputInputDeviceRequest'

function Add-VSMediaLiveInputInputDeviceSettings {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.InputDeviceSettings resource property to the template.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.InputDeviceSettings resource property to the template.


    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicesettings.html

    .PARAMETER Id
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputdevicesettings.html#cfn-medialive-input-inputdevicesettings-id
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputInputDeviceSettings])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Id
    )
    Process {
        $obj = [MediaLiveInputInputDeviceSettings]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputInputDeviceSettings'

function Add-VSMediaLiveInputInputSourceRequest {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.InputSourceRequest resource property to the template. The settings for a pull input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.InputSourceRequest resource property to the template.
The settings for a pull input.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html

    .PARAMETER Username
        The user name for accessing the upstream system. The user name applies only if the upstream system requires credentials.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-username
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER PasswordParam
        The password parameter that holds the password for accessing the upstream system. The password parameter applies only if the upstream system requires credentials.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-passwordparam
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Url
        For a pull input, the URL where MediaLive pulls the source content from.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputsourcerequest.html#cfn-medialive-input-inputsourcerequest-url
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputInputSourceRequest])]
    [cmdletbinding()]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingPlainTextForPassword","PasswordParam")]
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingUserNameAndPasswordParams","PasswordParam")]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Username,
        [parameter(Mandatory = $false)]
        [object]
        $PasswordParam,
        [parameter(Mandatory = $false)]
        [object]
        $Url
    )
    Process {
        $obj = [MediaLiveInputInputSourceRequest]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputInputSourceRequest'

function Add-VSMediaLiveInputInputVpcRequest {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.InputVpcRequest resource property to the template. The settings for an Amazon VPC input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.InputVpcRequest resource property to the template.
The settings for an Amazon VPC input.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html

    .PARAMETER SecurityGroupIds
        The list of up to five VPC security group IDs to attach to the input VPC network interfaces. The security groups require subnet IDs. If none are specified, MediaLive uses the VPC default security group.

        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html#cfn-medialive-input-inputvpcrequest-securitygroupids
        UpdateType: Mutable

    .PARAMETER SubnetIds
        The list of two VPC subnet IDs from the same VPC. You must associate subnet IDs to two unique Availability Zones.

        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-inputvpcrequest.html#cfn-medialive-input-inputvpcrequest-subnetids
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputInputVpcRequest])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        $SecurityGroupIds,
        [parameter(Mandatory = $false)]
        $SubnetIds
    )
    Process {
        $obj = [MediaLiveInputInputVpcRequest]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputInputVpcRequest'

function Add-VSMediaLiveInputMediaConnectFlowRequest {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input.MediaConnectFlowRequest resource property to the template. The settings for a MediaConnect Flow.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input.MediaConnectFlowRequest resource property to the template.
The settings for a MediaConnect Flow.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html

    .PARAMETER FlowArn
        The ARN of one or two MediaConnect flows that are the sources for this MediaConnect input.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-input-mediaconnectflowrequest.html#cfn-medialive-input-mediaconnectflowrequest-flowarn
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputMediaConnectFlowRequest])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $FlowArn
    )
    Process {
        $obj = [MediaLiveInputMediaConnectFlowRequest]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputMediaConnectFlowRequest'

function Add-VSMediaLiveInputSecurityGroupInputWhitelistRuleCidr {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr resource property to the template. An IPv4 CIDR range to include in this input security group.

    .DESCRIPTION
        Adds an AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr resource property to the template.
An IPv4 CIDR range to include in this input security group.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html

    .PARAMETER Cidr
        An IPv4 CIDR range to include in this input security group.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-inputsecuritygroup-inputwhitelistrulecidr.html#cfn-medialive-inputsecuritygroup-inputwhitelistrulecidr-cidr
        PrimitiveType: String
        UpdateType: Mutable

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputSecurityGroupInputWhitelistRuleCidr])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $false)]
        [object]
        $Cidr
    )
    Process {
        $obj = [MediaLiveInputSecurityGroupInputWhitelistRuleCidr]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'Add-VSMediaLiveInputSecurityGroupInputWhitelistRuleCidr'

function New-VSMediaLiveChannel {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Channel resource to the template. The AWS::MediaLive::Channel resource is a MediaLive resource type that creates a channel.

    .DESCRIPTION
        Adds an AWS::MediaLive::Channel resource to the template. The AWS::MediaLive::Channel resource is a MediaLive resource type that creates a channel.

A MediaLive channel ingests and transcodes (decodes and encodes source content from the inputs that are attached to that channel, and packages the new content into outputs.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html

    .PARAMETER LogicalId
        The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance.

    .PARAMETER InputAttachments
        The list of input attachments for the channel.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputattachments
        ItemType: InputAttachment
        UpdateType: Mutable

    .PARAMETER InputSpecification
        The input specification for this channel. It specifies the key characteristics of the inputs for this channel: the maximum bitrate, the resolution, and the codec.

        Type: InputSpecification
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputspecification
        UpdateType: Mutable

    .PARAMETER ChannelClass
        The class for this channel. For a channel with two pipelines, the class is STANDARD. For a channel with one pipeline, the class is SINGLE_PIPELINE.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-channelclass
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER EncoderSettings
        The encoding configuration for the output content.

        Type: EncoderSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-encodersettings
        UpdateType: Mutable

    .PARAMETER Destinations
        The settings that identify the destination for the outputs in this MediaLive output package.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-destinations
        ItemType: OutputDestination
        UpdateType: Mutable

    .PARAMETER Vpc
        The inputs that are attached to this channel. The inputs are identified by their IDs not by their names or their ARNs.

        Type: VpcOutputSettings
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-vpc
        UpdateType: Immutable

    .PARAMETER CdiInputSpecification
        The inputs that are attached to this channel. The inputs are identified by their IDs not by their names or their ARNs.

        Type: CdiInputSpecification
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-cdiinputspecification
        UpdateType: Mutable

    .PARAMETER LogLevel
        The verbosity for logging activity for this channel. Charges for logging which are generated through Amazon CloudWatch Logging are higher for higher verbosities.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-loglevel
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER RoleArn
        The IAM role for MediaLive to assume when running this channel. The role is identified by its ARN.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-rolearn
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Tags
        A collection of tags for this channel. Each tag is a key-value pair.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-tags
        PrimitiveType: Json
        UpdateType: Mutable

    .PARAMETER Name
        A name for this audio selector. The AudioDescription in an output references this name in order to identify a specific input audio to include in that output.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-name
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DeletionPolicy
        With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default.

        To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER UpdateReplacePolicy
        Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation.

        When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource.

        For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance.

        You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources.

        The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets.

        Note
        Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope.

        UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER DependsOn
        With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute.

        This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created.


    .PARAMETER Metadata
        The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values.

        This will be returned when describing the resource using AWS CLI.


    .PARAMETER UpdatePolicy
        Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group.

        You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here.
    .PARAMETER Condition
        Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned.

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveChannel])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $true,Position = 0)]
        [ValidateLogicalId()]
        [string]
        $LogicalId,
        [parameter(Mandatory = $false)]
        [object]
        $InputAttachments,
        [parameter(Mandatory = $false)]
        $InputSpecification,
        [parameter(Mandatory = $false)]
        [object]
        $ChannelClass,
        [parameter(Mandatory = $false)]
        $EncoderSettings,
        [parameter(Mandatory = $false)]
        [object]
        $Destinations,
        [parameter(Mandatory = $false)]
        $Vpc,
        [parameter(Mandatory = $false)]
        $CdiInputSpecification,
        [parameter(Mandatory = $false)]
        [object]
        $LogLevel,
        [parameter(Mandatory = $false)]
        [object]
        $RoleArn,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Tags,
        [parameter(Mandatory = $false)]
        [object]
        $Name,
        [parameter()]
        [DeletionPolicy]
        $DeletionPolicy,
        [parameter()]
        [UpdateReplacePolicy]
        $UpdateReplacePolicy,
        [parameter(Mandatory = $false)]
        [string[]]
        $DependsOn,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Metadata,
        [parameter(Mandatory = $false)]
        [UpdatePolicy]
        $UpdatePolicy,
        [parameter(Mandatory = $false)]
        [string]
        $Condition
    )
    Process {
        $obj = [MediaLiveChannel]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'New-VSMediaLiveChannel'

function New-VSMediaLiveInput {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::Input resource to the template. The AWS::MediaLive::Input resource is a MediaLive resource type that creates an input.

    .DESCRIPTION
        Adds an AWS::MediaLive::Input resource to the template. The AWS::MediaLive::Input resource is a MediaLive resource type that creates an input.

A MediaLive input holds information that describes how the MediaLive channel is connected to the upstream system that is providing the source content that is to be transcoded.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html

    .PARAMETER LogicalId
        The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance.

    .PARAMETER Type
        The type for this input.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-type
        PrimitiveType: String
        UpdateType: Immutable

    .PARAMETER Destinations
        The destination settings for push types of inputs. If the input is a pull type, these settings don't apply.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-destinations
        ItemType: InputDestinationRequest
        UpdateType: Mutable

    .PARAMETER Vpc
        Settings that apply only if the input is an Amazon VPC input.

        Type: InputVpcRequest
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-vpc
        UpdateType: Immutable

    .PARAMETER MediaConnectFlows
        Settings that apply only if the input is a MediaConnect input.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-mediaconnectflows
        ItemType: MediaConnectFlowRequest
        UpdateType: Mutable

    .PARAMETER InputSecurityGroups
        The list of input security groups referenced by IDs to attach to the input if the input is a push type.

        PrimitiveItemType: String
        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputsecuritygroups
        UpdateType: Mutable

    .PARAMETER InputDevices
        For a pull input, the source or sources for the input. The sources are the IP addresses on the upstream system where MediaLive pulls the content from for this input. You included these IP addresses in the create request.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputdevices
        ItemType: InputDeviceSettings
        UpdateType: Mutable

    .PARAMETER Sources
        The source settings for a pull type of input. These settings don't apply if the input is a push type.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-sources
        ItemType: InputSourceRequest
        UpdateType: Mutable

    .PARAMETER RoleArn
        The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input. This doesn't apply to other types of inputs. The role is identified by its ARN.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-rolearn
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER Tags
        A collection of tags for this input. Each tag is a key-value pair.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-tags
        PrimitiveType: Json
        UpdateType: Mutable

    .PARAMETER Name
        A name for the input.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-name
        PrimitiveType: String
        UpdateType: Mutable

    .PARAMETER DeletionPolicy
        With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default.

        To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER UpdateReplacePolicy
        Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation.

        When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource.

        For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance.

        You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources.

        The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets.

        Note
        Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope.

        UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER DependsOn
        With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute.

        This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created.


    .PARAMETER Metadata
        The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values.

        This will be returned when describing the resource using AWS CLI.


    .PARAMETER UpdatePolicy
        Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group.

        You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here.
    .PARAMETER Condition
        Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned.

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInput])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $true,Position = 0)]
        [ValidateLogicalId()]
        [string]
        $LogicalId,
        [parameter(Mandatory = $false)]
        [object]
        $Type,
        [parameter(Mandatory = $false)]
        [object]
        $Destinations,
        [parameter(Mandatory = $false)]
        $Vpc,
        [parameter(Mandatory = $false)]
        [object]
        $MediaConnectFlows,
        [parameter(Mandatory = $false)]
        $InputSecurityGroups,
        [parameter(Mandatory = $false)]
        [object]
        $InputDevices,
        [parameter(Mandatory = $false)]
        [object]
        $Sources,
        [parameter(Mandatory = $false)]
        [object]
        $RoleArn,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Tags,
        [parameter(Mandatory = $false)]
        [object]
        $Name,
        [parameter()]
        [DeletionPolicy]
        $DeletionPolicy,
        [parameter()]
        [UpdateReplacePolicy]
        $UpdateReplacePolicy,
        [parameter(Mandatory = $false)]
        [string[]]
        $DependsOn,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Metadata,
        [parameter(Mandatory = $false)]
        [UpdatePolicy]
        $UpdatePolicy,
        [parameter(Mandatory = $false)]
        [string]
        $Condition
    )
    Process {
        $obj = [MediaLiveInput]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'New-VSMediaLiveInput'

function New-VSMediaLiveInputSecurityGroup {
    <#
    .SYNOPSIS
        Adds an AWS::MediaLive::InputSecurityGroup resource to the template. The AWS::MediaLive::InputSecurityGroup is a MediaLive resource type that creates an input security group.

    .DESCRIPTION
        Adds an AWS::MediaLive::InputSecurityGroup resource to the template. The AWS::MediaLive::InputSecurityGroup is a MediaLive resource type that creates an input security group.

A MediaLive input security group is associated with a MediaLive input. The input security group is an "allow list" of IP addresses that controls whether an external IP address can push content to the associated MediaLive input.

    .LINK
        http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html

    .PARAMETER LogicalId
        The logical ID must be alphanumeric (A-Za-z0-9) and unique within the template. Use the logical name to reference the resource in other parts of the template. For example, if you want to map an Amazon Elastic Block Store volume to an Amazon EC2 instance, you reference the logical IDs to associate the block stores with the instance.

    .PARAMETER WhitelistRules
        The list of IPv4 CIDR addresses to include in the input security group as "allowed" addresses.

        Type: List
        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html#cfn-medialive-inputsecuritygroup-whitelistrules
        ItemType: InputWhitelistRuleCidr
        UpdateType: Mutable

    .PARAMETER Tags
        A collection of tags for this input security group. Each tag is a key-value pair.

        Documentation: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-inputsecuritygroup.html#cfn-medialive-inputsecuritygroup-tags
        PrimitiveType: Json
        UpdateType: Mutable

    .PARAMETER DeletionPolicy
        With the DeletionPolicy attribute you can preserve or (in some cases) backup a resource when its stack is deleted. You specify a DeletionPolicy attribute for each resource that you want to control. If a resource has no DeletionPolicy attribute, AWS CloudFormation deletes the resource by default.

        To keep a resource when its stack is deleted, specify Retain for that resource. You can use retain for any resource. For example, you can retain a nested stack, S3 bucket, or EC2 instance so that you can continue to use or modify those resources after you delete their stacks.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER UpdateReplacePolicy
        Use the UpdateReplacePolicy attribute to retain or (in some cases) backup the existing physical instance of a resource when it is replaced during a stack update operation.

        When you initiate a stack update, AWS CloudFormation updates resources based on differences between what you submit and the stack's current template and parameters. If you update a resource property that requires that the resource be replaced, AWS CloudFormation recreates the resource during the update. Recreating the resource generates a new physical ID. AWS CloudFormation creates the replacement resource first, and then changes references from other dependent resources to point to the replacement resource. By default, AWS CloudFormation then deletes the old resource. Using the UpdateReplacePolicy, you can specify that AWS CloudFormation retain or (in some cases) create a snapshot of the old resource.

        For resources that support snapshots, such as AWS::EC2::Volume, specify Snapshot to have AWS CloudFormation create a snapshot before deleting the old resource instance.

        You can apply the UpdateReplacePolicy attribute to any resource. UpdateReplacePolicy is only executed if you update a resource property whose update behavior is specified as Replacement, thereby causing AWS CloudFormation to replace the old resource with a new one with a new physical ID. For example, if you update the Engine property of an AWS::RDS::DBInstance resource type, AWS CloudFormation creates a new resource and replaces the current DB instance resource with the new one. The UpdateReplacePolicy attribute would then dictate whether AWS CloudFormation deleted, retained, or created a snapshot of the old DB instance. The update behavior for each property of a resource is specified in the reference topic for that resource in the AWS Resource and Property Types Reference. For more information on resource update behavior, see Update Behaviors of Stack Resources.

        The UpdateReplacePolicy attribute applies to stack updates you perform directly, as well as stack updates performed using change sets.

        Note
        Resources that are retained continue to exist and continue to incur applicable charges until you delete those resources. Snapshots that are created with this policy continue to exist and continue to incur applicable charges until you delete those snapshots. UpdateReplacePolicy retains the old physical resource or snapshot, but removes it from AWS CloudFormation's scope.

        UpdateReplacePolicy differs from the DeletionPolicy attribute in that it only applies to resources replaced during stack updates. Use DeletionPolicy for resources deleted when a stack is deleted, or when the resource definition itself is deleted from the template as part of a stack update.

        You must use one of the following options: "Delete","Retain","Snapshot"

    .PARAMETER DependsOn
        With the DependsOn attribute you can specify that the creation of a specific resource follows another. When you add a DependsOn attribute to a resource, that resource is created only after the creation of the resource specified in the DependsOn attribute.

        This parameter takes a string or list of strings representing Logical IDs of resources that must be created prior to this resource being created.


    .PARAMETER Metadata
        The Metadata attribute enables you to associate structured data with a resource. By adding a Metadata attribute to a resource, you can add data in JSON or YAML to the resource declaration. In addition, you can use intrinsic functions (such as GetAtt and Ref), parameters, and pseudo parameters within the Metadata attribute to add those interpreted values.

        This will be returned when describing the resource using AWS CLI.


    .PARAMETER UpdatePolicy
        Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource. AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group.

        You must use the "Add-UpdatePolicy" function or the [UpdatePolicy] class here.
    .PARAMETER Condition
        Logical ID of the condition that this resource needs to be true in order for this resource to be provisioned.

    .FUNCTIONALITY
        Vaporshell
    #>

    [OutputType([MediaLiveInputSecurityGroup])]
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $true,Position = 0)]
        [ValidateLogicalId()]
        [string]
        $LogicalId,
        [parameter(Mandatory = $false)]
        [object]
        $WhitelistRules,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Tags,
        [parameter()]
        [DeletionPolicy]
        $DeletionPolicy,
        [parameter()]
        [UpdateReplacePolicy]
        $UpdateReplacePolicy,
        [parameter(Mandatory = $false)]
        [string[]]
        $DependsOn,
        [parameter(Mandatory = $false)]
        [VSJson]
        $Metadata,
        [parameter(Mandatory = $false)]
        [UpdatePolicy]
        $UpdatePolicy,
        [parameter(Mandatory = $false)]
        [string]
        $Condition
    )
    Process {
        $obj = [MediaLiveInputSecurityGroup]::new($PSBoundParameters)
        Write-Debug "$($MyInvocation.MyCommand) PSBoundParameters:`n$($PSBoundParameters | ConvertTo-Json -Depth 20 | Format-Json)"
        Write-Verbose "Resulting object from $($MyInvocation.MyCommand): `n$($obj.ToJson() | Format-Json)"
        $obj
    }
}

Export-ModuleMember -Function 'New-VSMediaLiveInputSecurityGroup'