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

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

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.azurenative.media.inputs.VideoOverlayArgs.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.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Describes the properties of a video overlay.
 * @property audioGainLevel The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0.
 * @property cropRectangle An optional rectangular window used to crop the overlay image or video.
 * @property end The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration.
 * @property fadeInDuration The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S).
 * @property fadeOutDuration The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S).
 * @property inputLabel The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats.
 * @property odataType The discriminator for derived types.
 * Expected value is '#Microsoft.Media.VideoOverlay'.
 * @property opacity The opacity of the overlay. This is a value in the range [0 - 1.0]. Default is 1.0 which mean the overlay is opaque.
 * @property position The location in the input video where the overlay is applied.
 * @property start The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video.
 */
public data class VideoOverlayArgs(
    public val audioGainLevel: Output? = null,
    public val cropRectangle: Output? = null,
    public val end: Output? = null,
    public val fadeInDuration: Output? = null,
    public val fadeOutDuration: Output? = null,
    public val inputLabel: Output,
    public val odataType: Output,
    public val opacity: Output? = null,
    public val position: Output? = null,
    public val start: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.media.inputs.VideoOverlayArgs =
        com.pulumi.azurenative.media.inputs.VideoOverlayArgs.builder()
            .audioGainLevel(audioGainLevel?.applyValue({ args0 -> args0 }))
            .cropRectangle(cropRectangle?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .end(end?.applyValue({ args0 -> args0 }))
            .fadeInDuration(fadeInDuration?.applyValue({ args0 -> args0 }))
            .fadeOutDuration(fadeOutDuration?.applyValue({ args0 -> args0 }))
            .inputLabel(inputLabel.applyValue({ args0 -> args0 }))
            .odataType(odataType.applyValue({ args0 -> args0 }))
            .opacity(opacity?.applyValue({ args0 -> args0 }))
            .position(position?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .start(start?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [VideoOverlayArgs].
 */
@PulumiTagMarker
public class VideoOverlayArgsBuilder internal constructor() {
    private var audioGainLevel: Output? = null

    private var cropRectangle: Output? = null

    private var end: Output? = null

    private var fadeInDuration: Output? = null

    private var fadeOutDuration: Output? = null

    private var inputLabel: Output? = null

    private var odataType: Output? = null

    private var opacity: Output? = null

    private var position: Output? = null

    private var start: Output? = null

    /**
     * @param value The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0.
     */
    @JvmName("vkjoefeqtyovusbq")
    public suspend fun audioGainLevel(`value`: Output) {
        this.audioGainLevel = value
    }

    /**
     * @param value An optional rectangular window used to crop the overlay image or video.
     */
    @JvmName("pxbcdhqewdsovved")
    public suspend fun cropRectangle(`value`: Output) {
        this.cropRectangle = value
    }

    /**
     * @param value The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration.
     */
    @JvmName("lxjvtjwstwlgxxho")
    public suspend fun end(`value`: Output) {
        this.end = value
    }

    /**
     * @param value The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S).
     */
    @JvmName("iploikpinhpumgfu")
    public suspend fun fadeInDuration(`value`: Output) {
        this.fadeInDuration = value
    }

    /**
     * @param value The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S).
     */
    @JvmName("gctjalrswiwhnwfc")
    public suspend fun fadeOutDuration(`value`: Output) {
        this.fadeOutDuration = value
    }

    /**
     * @param value The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats.
     */
    @JvmName("kimppxairypsqaaa")
    public suspend fun inputLabel(`value`: Output) {
        this.inputLabel = value
    }

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

    /**
     * @param value The opacity of the overlay. This is a value in the range [0 - 1.0]. Default is 1.0 which mean the overlay is opaque.
     */
    @JvmName("itluscccafsaipdt")
    public suspend fun opacity(`value`: Output) {
        this.opacity = value
    }

    /**
     * @param value The location in the input video where the overlay is applied.
     */
    @JvmName("gfefsgcihuwjtkjl")
    public suspend fun position(`value`: Output) {
        this.position = value
    }

    /**
     * @param value The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video.
     */
    @JvmName("dyqfpdfpmqmjlcac")
    public suspend fun start(`value`: Output) {
        this.start = value
    }

    /**
     * @param value The gain level of audio in the overlay. The value should be in the range [0, 1.0]. The default is 1.0.
     */
    @JvmName("krxpvbajqdmheyqd")
    public suspend fun audioGainLevel(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.audioGainLevel = mapped
    }

    /**
     * @param value An optional rectangular window used to crop the overlay image or video.
     */
    @JvmName("ridkkpviglochuhb")
    public suspend fun cropRectangle(`value`: RectangleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cropRectangle = mapped
    }

    /**
     * @param argument An optional rectangular window used to crop the overlay image or video.
     */
    @JvmName("atsnmehbrsexonco")
    public suspend fun cropRectangle(argument: suspend RectangleArgsBuilder.() -> Unit) {
        val toBeMapped = RectangleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cropRectangle = mapped
    }

    /**
     * @param value The end position, with reference to the input video, at which the overlay ends. The value should be in ISO 8601 format. For example, PT30S to end the overlay at 30 seconds into the input video. If not specified or the value is greater than the input video duration, the overlay will be applied until the end of the input video if the overlay media duration is greater than the input video duration, else the overlay will last as long as the overlay media duration.
     */
    @JvmName("uiexymtpkigfqwsc")
    public suspend fun end(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.end = mapped
    }

    /**
     * @param value The duration over which the overlay fades in onto the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade in (same as PT0S).
     */
    @JvmName("vhhadebsbmtvdbse")
    public suspend fun fadeInDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fadeInDuration = mapped
    }

    /**
     * @param value The duration over which the overlay fades out of the input video. The value should be in ISO 8601 duration format. If not specified the default behavior is to have no fade out (same as PT0S).
     */
    @JvmName("uetfphfmqsmivxqs")
    public suspend fun fadeOutDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fadeOutDuration = mapped
    }

    /**
     * @param value The label of the job input which is to be used as an overlay. The Input must specify exactly one file. You can specify an image file in JPG, PNG, GIF or BMP format, or an audio file (such as a WAV, MP3, WMA or M4A file), or a video file. See https://aka.ms/mesformats for the complete list of supported audio and video file formats.
     */
    @JvmName("ithawnheccpoebrb")
    public suspend fun inputLabel(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inputLabel = mapped
    }

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

    /**
     * @param value The opacity of the overlay. This is a value in the range [0 - 1.0]. Default is 1.0 which mean the overlay is opaque.
     */
    @JvmName("shxmscchxjjghqha")
    public suspend fun opacity(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.opacity = mapped
    }

    /**
     * @param value The location in the input video where the overlay is applied.
     */
    @JvmName("elmwqlxbfujwghjt")
    public suspend fun position(`value`: RectangleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.position = mapped
    }

    /**
     * @param argument The location in the input video where the overlay is applied.
     */
    @JvmName("cjxaqbyqserkmcxy")
    public suspend fun position(argument: suspend RectangleArgsBuilder.() -> Unit) {
        val toBeMapped = RectangleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.position = mapped
    }

    /**
     * @param value The start position, with reference to the input video, at which the overlay starts. The value should be in ISO 8601 format. For example, PT05S to start the overlay at 5 seconds into the input video. If not specified the overlay starts from the beginning of the input video.
     */
    @JvmName("hwlrhwsqednaxtwl")
    public suspend fun start(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.start = mapped
    }

    internal fun build(): VideoOverlayArgs = VideoOverlayArgs(
        audioGainLevel = audioGainLevel,
        cropRectangle = cropRectangle,
        end = end,
        fadeInDuration = fadeInDuration,
        fadeOutDuration = fadeOutDuration,
        inputLabel = inputLabel ?: throw PulumiNullFieldException("inputLabel"),
        odataType = odataType ?: throw PulumiNullFieldException("odataType"),
        opacity = opacity,
        position = position,
        start = start,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy