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

commonMain.aws.sdk.kotlin.services.nimble.model.LaunchProfile.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.nimble.model

import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant

/**
 * A launch profile controls your artist workforce’s access to studio components, like compute farms, shared file systems, managed file systems, and license server configurations, as well as instance types and Amazon Machine Images (AMIs).
 *
 * Studio administrators create launch profiles in the Nimble Studio console. Artists can use their launch profiles to launch an instance from the Nimble Studio portal. Each user’s launch profile defines how they can launch a streaming session. By default, studio admins can use all launch profiles.
 */
public class LaunchProfile private constructor(builder: Builder) {
    /**
     * The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * The ISO timestamp in seconds for when the resource was created.
     */
    public val createdAt: aws.smithy.kotlin.runtime.time.Instant? = builder.createdAt
    /**
     * The user ID of the user that created the launch profile.
     */
    public val createdBy: kotlin.String? = builder.createdBy
    /**
     * A human-readable description of the launch profile.
     */
    public val description: kotlin.String? = builder.description
    /**
     * Unique identifiers for a collection of EC2 subnets.
     */
    public val ec2SubnetIds: List? = builder.ec2SubnetIds
    /**
     * The ID of the launch profile used to control access from the streaming session.
     */
    public val launchProfileId: kotlin.String? = builder.launchProfileId
    /**
     * The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".
     */
    public val launchProfileProtocolVersions: List? = builder.launchProfileProtocolVersions
    /**
     * A friendly name for the launch profile.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The current state.
     */
    public val state: aws.sdk.kotlin.services.nimble.model.LaunchProfileState? = builder.state
    /**
     * The status code.
     */
    public val statusCode: aws.sdk.kotlin.services.nimble.model.LaunchProfileStatusCode? = builder.statusCode
    /**
     * The status message for the launch profile.
     */
    public val statusMessage: kotlin.String? = builder.statusMessage
    /**
     * A configuration for a streaming session.
     */
    public val streamConfiguration: aws.sdk.kotlin.services.nimble.model.StreamConfiguration? = builder.streamConfiguration
    /**
     * Unique identifiers for a collection of studio components that can be used with this launch profile.
     */
    public val studioComponentIds: List? = builder.studioComponentIds
    /**
     * A collection of labels, in the form of key-value pairs, that apply to this resource.
     */
    public val tags: Map? = builder.tags
    /**
     * The ISO timestamp in seconds for when the resource was updated.
     */
    public val updatedAt: aws.smithy.kotlin.runtime.time.Instant? = builder.updatedAt
    /**
     * The user ID of the user that most recently updated the resource.
     */
    public val updatedBy: kotlin.String? = builder.updatedBy
    /**
     * The list of the latest validation results.
     */
    public val validationResults: List? = builder.validationResults

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

    override fun toString(): kotlin.String = buildString {
        append("LaunchProfile(")
        append("arn=$arn,")
        append("createdAt=$createdAt,")
        append("createdBy=$createdBy,")
        append("description=*** Sensitive Data Redacted ***,")
        append("ec2SubnetIds=$ec2SubnetIds,")
        append("launchProfileId=$launchProfileId,")
        append("launchProfileProtocolVersions=$launchProfileProtocolVersions,")
        append("name=*** Sensitive Data Redacted ***,")
        append("state=$state,")
        append("statusCode=$statusCode,")
        append("statusMessage=$statusMessage,")
        append("streamConfiguration=$streamConfiguration,")
        append("studioComponentIds=$studioComponentIds,")
        append("tags=$tags,")
        append("updatedAt=$updatedAt,")
        append("updatedBy=$updatedBy,")
        append("validationResults=$validationResults")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = arn?.hashCode() ?: 0
        result = 31 * result + (createdAt?.hashCode() ?: 0)
        result = 31 * result + (createdBy?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (ec2SubnetIds?.hashCode() ?: 0)
        result = 31 * result + (launchProfileId?.hashCode() ?: 0)
        result = 31 * result + (launchProfileProtocolVersions?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (state?.hashCode() ?: 0)
        result = 31 * result + (statusCode?.hashCode() ?: 0)
        result = 31 * result + (statusMessage?.hashCode() ?: 0)
        result = 31 * result + (streamConfiguration?.hashCode() ?: 0)
        result = 31 * result + (studioComponentIds?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (updatedAt?.hashCode() ?: 0)
        result = 31 * result + (updatedBy?.hashCode() ?: 0)
        result = 31 * result + (validationResults?.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 LaunchProfile

        if (arn != other.arn) return false
        if (createdAt != other.createdAt) return false
        if (createdBy != other.createdBy) return false
        if (description != other.description) return false
        if (ec2SubnetIds != other.ec2SubnetIds) return false
        if (launchProfileId != other.launchProfileId) return false
        if (launchProfileProtocolVersions != other.launchProfileProtocolVersions) return false
        if (name != other.name) return false
        if (state != other.state) return false
        if (statusCode != other.statusCode) return false
        if (statusMessage != other.statusMessage) return false
        if (streamConfiguration != other.streamConfiguration) return false
        if (studioComponentIds != other.studioComponentIds) return false
        if (tags != other.tags) return false
        if (updatedAt != other.updatedAt) return false
        if (updatedBy != other.updatedBy) return false
        if (validationResults != other.validationResults) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.
         */
        public var arn: kotlin.String? = null
        /**
         * The ISO timestamp in seconds for when the resource was created.
         */
        public var createdAt: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The user ID of the user that created the launch profile.
         */
        public var createdBy: kotlin.String? = null
        /**
         * A human-readable description of the launch profile.
         */
        public var description: kotlin.String? = null
        /**
         * Unique identifiers for a collection of EC2 subnets.
         */
        public var ec2SubnetIds: List? = null
        /**
         * The ID of the launch profile used to control access from the streaming session.
         */
        public var launchProfileId: kotlin.String? = null
        /**
         * The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".
         */
        public var launchProfileProtocolVersions: List? = null
        /**
         * A friendly name for the launch profile.
         */
        public var name: kotlin.String? = null
        /**
         * The current state.
         */
        public var state: aws.sdk.kotlin.services.nimble.model.LaunchProfileState? = null
        /**
         * The status code.
         */
        public var statusCode: aws.sdk.kotlin.services.nimble.model.LaunchProfileStatusCode? = null
        /**
         * The status message for the launch profile.
         */
        public var statusMessage: kotlin.String? = null
        /**
         * A configuration for a streaming session.
         */
        public var streamConfiguration: aws.sdk.kotlin.services.nimble.model.StreamConfiguration? = null
        /**
         * Unique identifiers for a collection of studio components that can be used with this launch profile.
         */
        public var studioComponentIds: List? = null
        /**
         * A collection of labels, in the form of key-value pairs, that apply to this resource.
         */
        public var tags: Map? = null
        /**
         * The ISO timestamp in seconds for when the resource was updated.
         */
        public var updatedAt: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The user ID of the user that most recently updated the resource.
         */
        public var updatedBy: kotlin.String? = null
        /**
         * The list of the latest validation results.
         */
        public var validationResults: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.nimble.model.LaunchProfile) : this() {
            this.arn = x.arn
            this.createdAt = x.createdAt
            this.createdBy = x.createdBy
            this.description = x.description
            this.ec2SubnetIds = x.ec2SubnetIds
            this.launchProfileId = x.launchProfileId
            this.launchProfileProtocolVersions = x.launchProfileProtocolVersions
            this.name = x.name
            this.state = x.state
            this.statusCode = x.statusCode
            this.statusMessage = x.statusMessage
            this.streamConfiguration = x.streamConfiguration
            this.studioComponentIds = x.studioComponentIds
            this.tags = x.tags
            this.updatedAt = x.updatedAt
            this.updatedBy = x.updatedBy
            this.validationResults = x.validationResults
        }

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

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

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy