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

commonMain.aws.sdk.kotlin.services.appstream.model.ImageBuilder.kt Maven / Gradle / Ivy

There is a newer version: 1.3.99
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.appstream.model

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

/**
 * Describes a virtual machine that is used to create an image.
 */
public class ImageBuilder private constructor(builder: Builder) {
    /**
     * The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.
     */
    public val accessEndpoints: List? = builder.accessEndpoints
    /**
     * The version of the AppStream 2.0 agent that is currently being used by the image builder.
     */
    public val appstreamAgentVersion: kotlin.String? = builder.appstreamAgentVersion
    /**
     * The ARN for the image builder.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * The time stamp when the image builder was created.
     */
    public val createdTime: aws.smithy.kotlin.runtime.time.Instant? = builder.createdTime
    /**
     * The description to display.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The image builder name to display.
     */
    public val displayName: kotlin.String? = builder.displayName
    /**
     * The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain.
     */
    public val domainJoinInfo: aws.sdk.kotlin.services.appstream.model.DomainJoinInfo? = builder.domainJoinInfo
    /**
     * Enables or disables default internet access for the image builder.
     */
    public val enableDefaultInternetAccess: kotlin.Boolean? = builder.enableDefaultInternetAccess
    /**
     * The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) `AssumeRole` API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the **appstream_machine_role** credential profile on the instance.
     *
     * For more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2.0 Administration Guide*.
     */
    public val iamRoleArn: kotlin.String? = builder.iamRoleArn
    /**
     * The ARN of the image from which this builder was created.
     */
    public val imageArn: kotlin.String? = builder.imageArn
    /**
     * The image builder errors.
     */
    public val imageBuilderErrors: List? = builder.imageBuilderErrors
    /**
     * The instance type for the image builder. The following instance types are available:
     * + stream.standard.small
     * + stream.standard.medium
     * + stream.standard.large
     * + stream.compute.large
     * + stream.compute.xlarge
     * + stream.compute.2xlarge
     * + stream.compute.4xlarge
     * + stream.compute.8xlarge
     * + stream.memory.large
     * + stream.memory.xlarge
     * + stream.memory.2xlarge
     * + stream.memory.4xlarge
     * + stream.memory.8xlarge
     * + stream.memory.z1d.large
     * + stream.memory.z1d.xlarge
     * + stream.memory.z1d.2xlarge
     * + stream.memory.z1d.3xlarge
     * + stream.memory.z1d.6xlarge
     * + stream.memory.z1d.12xlarge
     * + stream.graphics-design.large
     * + stream.graphics-design.xlarge
     * + stream.graphics-design.2xlarge
     * + stream.graphics-design.4xlarge
     * + stream.graphics-desktop.2xlarge
     * + stream.graphics.g4dn.xlarge
     * + stream.graphics.g4dn.2xlarge
     * + stream.graphics.g4dn.4xlarge
     * + stream.graphics.g4dn.8xlarge
     * + stream.graphics.g4dn.12xlarge
     * + stream.graphics.g4dn.16xlarge
     * + stream.graphics-pro.4xlarge
     * + stream.graphics-pro.8xlarge
     * + stream.graphics-pro.16xlarge
     */
    public val instanceType: kotlin.String? = builder.instanceType
    /**
     * The name of the image builder.
     */
    public val name: kotlin.String? = builder.name
    /**
     * Describes the network details of the fleet or image builder instance.
     */
    public val networkAccessConfiguration: aws.sdk.kotlin.services.appstream.model.NetworkAccessConfiguration? = builder.networkAccessConfiguration
    /**
     * The operating system platform of the image builder.
     */
    public val platform: aws.sdk.kotlin.services.appstream.model.PlatformType? = builder.platform
    /**
     * The state of the image builder.
     */
    public val state: aws.sdk.kotlin.services.appstream.model.ImageBuilderState? = builder.state
    /**
     * The reason why the last state change occurred.
     */
    public val stateChangeReason: aws.sdk.kotlin.services.appstream.model.ImageBuilderStateChangeReason? = builder.stateChangeReason
    /**
     * The VPC configuration of the image builder.
     */
    public val vpcConfig: aws.sdk.kotlin.services.appstream.model.VpcConfig? = builder.vpcConfig

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

    override fun toString(): kotlin.String = buildString {
        append("ImageBuilder(")
        append("accessEndpoints=$accessEndpoints,")
        append("appstreamAgentVersion=$appstreamAgentVersion,")
        append("arn=$arn,")
        append("createdTime=$createdTime,")
        append("description=$description,")
        append("displayName=$displayName,")
        append("domainJoinInfo=$domainJoinInfo,")
        append("enableDefaultInternetAccess=$enableDefaultInternetAccess,")
        append("iamRoleArn=$iamRoleArn,")
        append("imageArn=$imageArn,")
        append("imageBuilderErrors=$imageBuilderErrors,")
        append("instanceType=$instanceType,")
        append("name=$name,")
        append("networkAccessConfiguration=$networkAccessConfiguration,")
        append("platform=$platform,")
        append("state=$state,")
        append("stateChangeReason=$stateChangeReason,")
        append("vpcConfig=$vpcConfig")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = accessEndpoints?.hashCode() ?: 0
        result = 31 * result + (appstreamAgentVersion?.hashCode() ?: 0)
        result = 31 * result + (arn?.hashCode() ?: 0)
        result = 31 * result + (createdTime?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (displayName?.hashCode() ?: 0)
        result = 31 * result + (domainJoinInfo?.hashCode() ?: 0)
        result = 31 * result + (enableDefaultInternetAccess?.hashCode() ?: 0)
        result = 31 * result + (iamRoleArn?.hashCode() ?: 0)
        result = 31 * result + (imageArn?.hashCode() ?: 0)
        result = 31 * result + (imageBuilderErrors?.hashCode() ?: 0)
        result = 31 * result + (instanceType?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (networkAccessConfiguration?.hashCode() ?: 0)
        result = 31 * result + (platform?.hashCode() ?: 0)
        result = 31 * result + (state?.hashCode() ?: 0)
        result = 31 * result + (stateChangeReason?.hashCode() ?: 0)
        result = 31 * result + (vpcConfig?.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 ImageBuilder

        if (accessEndpoints != other.accessEndpoints) return false
        if (appstreamAgentVersion != other.appstreamAgentVersion) return false
        if (arn != other.arn) return false
        if (createdTime != other.createdTime) return false
        if (description != other.description) return false
        if (displayName != other.displayName) return false
        if (domainJoinInfo != other.domainJoinInfo) return false
        if (enableDefaultInternetAccess != other.enableDefaultInternetAccess) return false
        if (iamRoleArn != other.iamRoleArn) return false
        if (imageArn != other.imageArn) return false
        if (imageBuilderErrors != other.imageBuilderErrors) return false
        if (instanceType != other.instanceType) return false
        if (name != other.name) return false
        if (networkAccessConfiguration != other.networkAccessConfiguration) return false
        if (platform != other.platform) return false
        if (state != other.state) return false
        if (stateChangeReason != other.stateChangeReason) return false
        if (vpcConfig != other.vpcConfig) return false

        return true
    }

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

    public class Builder {
        /**
         * The list of virtual private cloud (VPC) interface endpoint objects. Administrators can connect to the image builder only through the specified endpoints.
         */
        public var accessEndpoints: List? = null
        /**
         * The version of the AppStream 2.0 agent that is currently being used by the image builder.
         */
        public var appstreamAgentVersion: kotlin.String? = null
        /**
         * The ARN for the image builder.
         */
        public var arn: kotlin.String? = null
        /**
         * The time stamp when the image builder was created.
         */
        public var createdTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The description to display.
         */
        public var description: kotlin.String? = null
        /**
         * The image builder name to display.
         */
        public var displayName: kotlin.String? = null
        /**
         * The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain.
         */
        public var domainJoinInfo: aws.sdk.kotlin.services.appstream.model.DomainJoinInfo? = null
        /**
         * Enables or disables default internet access for the image builder.
         */
        public var enableDefaultInternetAccess: kotlin.Boolean? = null
        /**
         * The ARN of the IAM role that is applied to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) `AssumeRole` API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the **appstream_machine_role** credential profile on the instance.
         *
         * For more information, see [Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html) in the *Amazon AppStream 2.0 Administration Guide*.
         */
        public var iamRoleArn: kotlin.String? = null
        /**
         * The ARN of the image from which this builder was created.
         */
        public var imageArn: kotlin.String? = null
        /**
         * The image builder errors.
         */
        public var imageBuilderErrors: List? = null
        /**
         * The instance type for the image builder. The following instance types are available:
         * + stream.standard.small
         * + stream.standard.medium
         * + stream.standard.large
         * + stream.compute.large
         * + stream.compute.xlarge
         * + stream.compute.2xlarge
         * + stream.compute.4xlarge
         * + stream.compute.8xlarge
         * + stream.memory.large
         * + stream.memory.xlarge
         * + stream.memory.2xlarge
         * + stream.memory.4xlarge
         * + stream.memory.8xlarge
         * + stream.memory.z1d.large
         * + stream.memory.z1d.xlarge
         * + stream.memory.z1d.2xlarge
         * + stream.memory.z1d.3xlarge
         * + stream.memory.z1d.6xlarge
         * + stream.memory.z1d.12xlarge
         * + stream.graphics-design.large
         * + stream.graphics-design.xlarge
         * + stream.graphics-design.2xlarge
         * + stream.graphics-design.4xlarge
         * + stream.graphics-desktop.2xlarge
         * + stream.graphics.g4dn.xlarge
         * + stream.graphics.g4dn.2xlarge
         * + stream.graphics.g4dn.4xlarge
         * + stream.graphics.g4dn.8xlarge
         * + stream.graphics.g4dn.12xlarge
         * + stream.graphics.g4dn.16xlarge
         * + stream.graphics-pro.4xlarge
         * + stream.graphics-pro.8xlarge
         * + stream.graphics-pro.16xlarge
         */
        public var instanceType: kotlin.String? = null
        /**
         * The name of the image builder.
         */
        public var name: kotlin.String? = null
        /**
         * Describes the network details of the fleet or image builder instance.
         */
        public var networkAccessConfiguration: aws.sdk.kotlin.services.appstream.model.NetworkAccessConfiguration? = null
        /**
         * The operating system platform of the image builder.
         */
        public var platform: aws.sdk.kotlin.services.appstream.model.PlatformType? = null
        /**
         * The state of the image builder.
         */
        public var state: aws.sdk.kotlin.services.appstream.model.ImageBuilderState? = null
        /**
         * The reason why the last state change occurred.
         */
        public var stateChangeReason: aws.sdk.kotlin.services.appstream.model.ImageBuilderStateChangeReason? = null
        /**
         * The VPC configuration of the image builder.
         */
        public var vpcConfig: aws.sdk.kotlin.services.appstream.model.VpcConfig? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.appstream.model.ImageBuilder) : this() {
            this.accessEndpoints = x.accessEndpoints
            this.appstreamAgentVersion = x.appstreamAgentVersion
            this.arn = x.arn
            this.createdTime = x.createdTime
            this.description = x.description
            this.displayName = x.displayName
            this.domainJoinInfo = x.domainJoinInfo
            this.enableDefaultInternetAccess = x.enableDefaultInternetAccess
            this.iamRoleArn = x.iamRoleArn
            this.imageArn = x.imageArn
            this.imageBuilderErrors = x.imageBuilderErrors
            this.instanceType = x.instanceType
            this.name = x.name
            this.networkAccessConfiguration = x.networkAccessConfiguration
            this.platform = x.platform
            this.state = x.state
            this.stateChangeReason = x.stateChangeReason
            this.vpcConfig = x.vpcConfig
        }

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

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy