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

commonMain.aws.sdk.kotlin.services.chimesdkmediapipelines.model.GridViewConfiguration.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.chimesdkmediapipelines.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Specifies the type of grid layout.
 */
public class GridViewConfiguration private constructor(builder: Builder) {
    /**
     * The configuration settings for an `ActiveSpeakerOnly` video tile.
     */
    public val activeSpeakerOnlyConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ActiveSpeakerOnlyConfiguration? = builder.activeSpeakerOnlyConfiguration
    /**
     * The orientation setting, horizontal or vertical.
     */
    public val canvasOrientation: aws.sdk.kotlin.services.chimesdkmediapipelines.model.CanvasOrientation? = builder.canvasOrientation
    /**
     * Defines the layout of the video tiles when content sharing is enabled.
     */
    public val contentShareLayout: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ContentShareLayoutOption = requireNotNull(builder.contentShareLayout) { "A non-null value must be provided for contentShareLayout" }
    /**
     * The configuration settings for a horizontal layout.
     */
    public val horizontalLayoutConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.HorizontalLayoutConfiguration? = builder.horizontalLayoutConfiguration
    /**
     * Defines the configuration options for a presenter only video tile.
     */
    public val presenterOnlyConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.PresenterOnlyConfiguration? = builder.presenterOnlyConfiguration
    /**
     * The configuration settings for a vertical layout.
     */
    public val verticalLayoutConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VerticalLayoutConfiguration? = builder.verticalLayoutConfiguration
    /**
     * The attribute settings for the video tiles.
     */
    public val videoAttribute: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VideoAttribute? = builder.videoAttribute

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

    override fun toString(): kotlin.String = buildString {
        append("GridViewConfiguration(")
        append("activeSpeakerOnlyConfiguration=$activeSpeakerOnlyConfiguration,")
        append("canvasOrientation=$canvasOrientation,")
        append("contentShareLayout=$contentShareLayout,")
        append("horizontalLayoutConfiguration=$horizontalLayoutConfiguration,")
        append("presenterOnlyConfiguration=$presenterOnlyConfiguration,")
        append("verticalLayoutConfiguration=$verticalLayoutConfiguration,")
        append("videoAttribute=$videoAttribute")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = activeSpeakerOnlyConfiguration?.hashCode() ?: 0
        result = 31 * result + (canvasOrientation?.hashCode() ?: 0)
        result = 31 * result + (contentShareLayout.hashCode())
        result = 31 * result + (horizontalLayoutConfiguration?.hashCode() ?: 0)
        result = 31 * result + (presenterOnlyConfiguration?.hashCode() ?: 0)
        result = 31 * result + (verticalLayoutConfiguration?.hashCode() ?: 0)
        result = 31 * result + (videoAttribute?.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 GridViewConfiguration

        if (activeSpeakerOnlyConfiguration != other.activeSpeakerOnlyConfiguration) return false
        if (canvasOrientation != other.canvasOrientation) return false
        if (contentShareLayout != other.contentShareLayout) return false
        if (horizontalLayoutConfiguration != other.horizontalLayoutConfiguration) return false
        if (presenterOnlyConfiguration != other.presenterOnlyConfiguration) return false
        if (verticalLayoutConfiguration != other.verticalLayoutConfiguration) return false
        if (videoAttribute != other.videoAttribute) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The configuration settings for an `ActiveSpeakerOnly` video tile.
         */
        public var activeSpeakerOnlyConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ActiveSpeakerOnlyConfiguration? = null
        /**
         * The orientation setting, horizontal or vertical.
         */
        public var canvasOrientation: aws.sdk.kotlin.services.chimesdkmediapipelines.model.CanvasOrientation? = null
        /**
         * Defines the layout of the video tiles when content sharing is enabled.
         */
        public var contentShareLayout: aws.sdk.kotlin.services.chimesdkmediapipelines.model.ContentShareLayoutOption? = null
        /**
         * The configuration settings for a horizontal layout.
         */
        public var horizontalLayoutConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.HorizontalLayoutConfiguration? = null
        /**
         * Defines the configuration options for a presenter only video tile.
         */
        public var presenterOnlyConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.PresenterOnlyConfiguration? = null
        /**
         * The configuration settings for a vertical layout.
         */
        public var verticalLayoutConfiguration: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VerticalLayoutConfiguration? = null
        /**
         * The attribute settings for the video tiles.
         */
        public var videoAttribute: aws.sdk.kotlin.services.chimesdkmediapipelines.model.VideoAttribute? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.chimesdkmediapipelines.model.GridViewConfiguration) : this() {
            this.activeSpeakerOnlyConfiguration = x.activeSpeakerOnlyConfiguration
            this.canvasOrientation = x.canvasOrientation
            this.contentShareLayout = x.contentShareLayout
            this.horizontalLayoutConfiguration = x.horizontalLayoutConfiguration
            this.presenterOnlyConfiguration = x.presenterOnlyConfiguration
            this.verticalLayoutConfiguration = x.verticalLayoutConfiguration
            this.videoAttribute = x.videoAttribute
        }

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

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

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

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

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

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

        internal fun correctErrors(): Builder {
            if (contentShareLayout == null) contentShareLayout = ContentShareLayoutOption.SdkUnknown("no value provided")
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy