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

commonMain.aws.sdk.kotlin.services.medialive.model.VideoSelector.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.medialive.model



/**
 * Specifies a particular video stream within an input source. An input may have only a single video selector.
 */
public class VideoSelector private constructor(builder: Builder) {
    /**
     * Specifies the color space of an input. This setting works in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if any conversion will be performed.
     */
    public val colorSpace: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpace? = builder.colorSpace
    /**
     * Color space settings
     */
    public val colorSpaceSettings: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceSettings? = builder.colorSpaceSettings
    /**
     * Applies only if colorSpace is a value other than follow. This field controls how the value in the colorSpace field will be used. fallback means that when the input does include color space data, that data will be used, but when the input has no color space data, the value in colorSpace will be 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.
     */
    public val colorSpaceUsage: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceUsage? = builder.colorSpaceUsage
    /**
     * The video selector settings.
     */
    public val selectorSettings: aws.sdk.kotlin.services.medialive.model.VideoSelectorSettings? = builder.selectorSettings

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.medialive.model.VideoSelector = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("VideoSelector(")
        append("colorSpace=$colorSpace,")
        append("colorSpaceSettings=$colorSpaceSettings,")
        append("colorSpaceUsage=$colorSpaceUsage,")
        append("selectorSettings=$selectorSettings")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = colorSpace?.hashCode() ?: 0
        result = 31 * result + (colorSpaceSettings?.hashCode() ?: 0)
        result = 31 * result + (colorSpaceUsage?.hashCode() ?: 0)
        result = 31 * result + (selectorSettings?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as VideoSelector

        if (colorSpace != other.colorSpace) return false
        if (colorSpaceSettings != other.colorSpaceSettings) return false
        if (colorSpaceUsage != other.colorSpaceUsage) return false
        if (selectorSettings != other.selectorSettings) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.medialive.model.VideoSelector = Builder(this).apply(block).build()

    public class Builder {
        /**
         * Specifies the color space of an input. This setting works in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if any conversion will be performed.
         */
        public var colorSpace: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpace? = null
        /**
         * Color space settings
         */
        public var colorSpaceSettings: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceSettings? = null
        /**
         * Applies only if colorSpace is a value other than follow. This field controls how the value in the colorSpace field will be used. fallback means that when the input does include color space data, that data will be used, but when the input has no color space data, the value in colorSpace will be 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.
         */
        public var colorSpaceUsage: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceUsage? = null
        /**
         * The video selector settings.
         */
        public var selectorSettings: aws.sdk.kotlin.services.medialive.model.VideoSelectorSettings? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.VideoSelector) : this() {
            this.colorSpace = x.colorSpace
            this.colorSpaceSettings = x.colorSpaceSettings
            this.colorSpaceUsage = x.colorSpaceUsage
            this.selectorSettings = x.selectorSettings
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.medialive.model.VideoSelector = VideoSelector(this)

        /**
         * construct an [aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceSettings] inside the given [block]
         */
        public fun colorSpaceSettings(block: aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceSettings.Builder.() -> kotlin.Unit) {
            this.colorSpaceSettings = aws.sdk.kotlin.services.medialive.model.VideoSelectorColorSpaceSettings.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.medialive.model.VideoSelectorSettings] inside the given [block]
         */
        public fun selectorSettings(block: aws.sdk.kotlin.services.medialive.model.VideoSelectorSettings.Builder.() -> kotlin.Unit) {
            this.selectorSettings = aws.sdk.kotlin.services.medialive.model.VideoSelectorSettings.invoke(block)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy