All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.media.kotlin.inputs.Mp4FormatArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.media.kotlin.inputs

import com.pulumi.azurenative.media.inputs.Mp4FormatArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Describes the properties for an output ISO MP4 file.
 * @property filenamePattern The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
 * @property odataType The discriminator for derived types.
 * Expected value is '#Microsoft.Media.Mp4Format'.
 * @property outputFiles The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
 */
public data class Mp4FormatArgs(
    public val filenamePattern: Output,
    public val odataType: Output,
    public val outputFiles: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.media.inputs.Mp4FormatArgs =
        com.pulumi.azurenative.media.inputs.Mp4FormatArgs.builder()
            .filenamePattern(filenamePattern.applyValue({ args0 -> args0 }))
            .odataType(odataType.applyValue({ args0 -> args0 }))
            .outputFiles(
                outputFiles?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [Mp4FormatArgs].
 */
@PulumiTagMarker
public class Mp4FormatArgsBuilder internal constructor() {
    private var filenamePattern: Output? = null

    private var odataType: Output? = null

    private var outputFiles: Output>? = null

    /**
     * @param value The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
     */
    @JvmName("skdicbsivmgrlmql")
    public suspend fun filenamePattern(`value`: Output) {
        this.filenamePattern = value
    }

    /**
     * @param value The discriminator for derived types.
     * Expected value is '#Microsoft.Media.Mp4Format'.
     */
    @JvmName("huoisdxahfoqjkth")
    public suspend fun odataType(`value`: Output) {
        this.odataType = value
    }

    /**
     * @param value The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("okendfhffkcevxtv")
    public suspend fun outputFiles(`value`: Output>) {
        this.outputFiles = value
    }

    @JvmName("jiysbmlnjxakbbia")
    public suspend fun outputFiles(vararg values: Output) {
        this.outputFiles = Output.all(values.asList())
    }

    /**
     * @param values The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("rwqgtcoqifycaxix")
    public suspend fun outputFiles(values: List>) {
        this.outputFiles = Output.all(values)
    }

    /**
     * @param value The file naming pattern used for the creation of output files. The following macros are supported in the file name: {Basename} - An expansion macro that will use the name of the input video file. If the base name(the file suffix is not included) of the input video file is less than 32 characters long, the base name of input video files will be used. If the length of base name of the input video file exceeds 32 characters, the base name is truncated to the first 32 characters in total length. {Extension} - The appropriate extension for this format. {Label} - The label assigned to the codec/layer. {Index} - A unique index for thumbnails. Only applicable to thumbnails. {AudioStream} - string "Audio" plus audio stream number(start from 1). {Bitrate} - The audio/video bitrate in kbps. Not applicable to thumbnails. {Codec} - The type of the audio/video codec. {Resolution} - The video resolution. Any unsubstituted macros will be collapsed and removed from the filename.
     */
    @JvmName("loqscbtaqjoldnds")
    public suspend fun filenamePattern(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.filenamePattern = mapped
    }

    /**
     * @param value The discriminator for derived types.
     * Expected value is '#Microsoft.Media.Mp4Format'.
     */
    @JvmName("wfjyoixpjidmrndj")
    public suspend fun odataType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.odataType = mapped
    }

    /**
     * @param value The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("cwwuwooocayacjrl")
    public suspend fun outputFiles(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputFiles = mapped
    }

    /**
     * @param argument The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("jowcdblymgqeakpl")
    public suspend fun outputFiles(argument: List Unit>) {
        val toBeMapped = argument.toList().map { OutputFileArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.outputFiles = mapped
    }

    /**
     * @param argument The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("cladtahcqlcgkpbl")
    public suspend fun outputFiles(vararg argument: suspend OutputFileArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { OutputFileArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.outputFiles = mapped
    }

    /**
     * @param argument The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("ymthrpxttbmcsyda")
    public suspend fun outputFiles(argument: suspend OutputFileArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(OutputFileArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.outputFiles = mapped
    }

    /**
     * @param values The list of output files to produce.  Each entry in the list is a set of audio and video layer labels to be muxed together .
     */
    @JvmName("pghwrlxmpyariiqk")
    public suspend fun outputFiles(vararg values: OutputFileArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputFiles = mapped
    }

    internal fun build(): Mp4FormatArgs = Mp4FormatArgs(
        filenamePattern = filenamePattern ?: throw PulumiNullFieldException("filenamePattern"),
        odataType = odataType ?: throw PulumiNullFieldException("odataType"),
        outputFiles = outputFiles,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy