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

commonMain.aws.sdk.kotlin.services.emr.model.Studio.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.emr.model

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

/**
 * Details for an Amazon EMR Studio including ID, creation time, name, and so on.
 */
public class Studio private constructor(builder: Builder) {
    /**
     * Specifies whether the Amazon EMR Studio authenticates users using IAM or Amazon Web Services SSO.
     */
    public val authMode: aws.sdk.kotlin.services.emr.model.AuthMode? = builder.authMode
    /**
     * The time the Amazon EMR Studio was created.
     */
    public val creationTime: aws.smithy.kotlin.runtime.time.Instant? = builder.creationTime
    /**
     * The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
     */
    public val defaultS3Location: kotlin.String? = builder.defaultS3Location
    /**
     * The detailed description of the Amazon EMR Studio.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The ID of the Engine security group associated with the Amazon EMR Studio. The Engine security group allows inbound network traffic from resources in the Workspace security group.
     */
    public val engineSecurityGroupId: kotlin.String? = builder.engineSecurityGroupId
    /**
     * Your identity provider's authentication endpoint. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL.
     */
    public val idpAuthUrl: kotlin.String? = builder.idpAuthUrl
    /**
     * The name of your identity provider's `RelayState` parameter.
     */
    public val idpRelayStateParameterName: kotlin.String? = builder.idpRelayStateParameterName
    /**
     * The name of the Amazon EMR Studio.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The name of the IAM role assumed by the Amazon EMR Studio.
     */
    public val serviceRole: kotlin.String? = builder.serviceRole
    /**
     * The Amazon Resource Name (ARN) of the Amazon EMR Studio.
     */
    public val studioArn: kotlin.String? = builder.studioArn
    /**
     * The ID of the Amazon EMR Studio.
     */
    public val studioId: kotlin.String? = builder.studioId
    /**
     * The list of IDs of the subnets associated with the Amazon EMR Studio.
     */
    public val subnetIds: List? = builder.subnetIds
    /**
     * A list of tags associated with the Amazon EMR Studio.
     */
    public val tags: List? = builder.tags
    /**
     * The unique access URL of the Amazon EMR Studio.
     */
    public val url: kotlin.String? = builder.url
    /**
     * The name of the IAM role assumed by users logged in to the Amazon EMR Studio. A Studio only requires a `UserRole` when you use IAM authentication.
     */
    public val userRole: kotlin.String? = builder.userRole
    /**
     * The ID of the VPC associated with the Amazon EMR Studio.
     */
    public val vpcId: kotlin.String? = builder.vpcId
    /**
     * The ID of the Workspace security group associated with the Amazon EMR Studio. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet.
     */
    public val workspaceSecurityGroupId: kotlin.String? = builder.workspaceSecurityGroupId

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

    override fun toString(): kotlin.String = buildString {
        append("Studio(")
        append("authMode=$authMode,")
        append("creationTime=$creationTime,")
        append("defaultS3Location=$defaultS3Location,")
        append("description=$description,")
        append("engineSecurityGroupId=$engineSecurityGroupId,")
        append("idpAuthUrl=$idpAuthUrl,")
        append("idpRelayStateParameterName=$idpRelayStateParameterName,")
        append("name=$name,")
        append("serviceRole=$serviceRole,")
        append("studioArn=$studioArn,")
        append("studioId=$studioId,")
        append("subnetIds=$subnetIds,")
        append("tags=$tags,")
        append("url=$url,")
        append("userRole=$userRole,")
        append("vpcId=$vpcId,")
        append("workspaceSecurityGroupId=$workspaceSecurityGroupId)")
    }

    override fun hashCode(): kotlin.Int {
        var result = authMode?.hashCode() ?: 0
        result = 31 * result + (creationTime?.hashCode() ?: 0)
        result = 31 * result + (defaultS3Location?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (engineSecurityGroupId?.hashCode() ?: 0)
        result = 31 * result + (idpAuthUrl?.hashCode() ?: 0)
        result = 31 * result + (idpRelayStateParameterName?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (serviceRole?.hashCode() ?: 0)
        result = 31 * result + (studioArn?.hashCode() ?: 0)
        result = 31 * result + (studioId?.hashCode() ?: 0)
        result = 31 * result + (subnetIds?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (url?.hashCode() ?: 0)
        result = 31 * result + (userRole?.hashCode() ?: 0)
        result = 31 * result + (vpcId?.hashCode() ?: 0)
        result = 31 * result + (workspaceSecurityGroupId?.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 Studio

        if (authMode != other.authMode) return false
        if (creationTime != other.creationTime) return false
        if (defaultS3Location != other.defaultS3Location) return false
        if (description != other.description) return false
        if (engineSecurityGroupId != other.engineSecurityGroupId) return false
        if (idpAuthUrl != other.idpAuthUrl) return false
        if (idpRelayStateParameterName != other.idpRelayStateParameterName) return false
        if (name != other.name) return false
        if (serviceRole != other.serviceRole) return false
        if (studioArn != other.studioArn) return false
        if (studioId != other.studioId) return false
        if (subnetIds != other.subnetIds) return false
        if (tags != other.tags) return false
        if (url != other.url) return false
        if (userRole != other.userRole) return false
        if (vpcId != other.vpcId) return false
        if (workspaceSecurityGroupId != other.workspaceSecurityGroupId) return false

        return true
    }

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

    public class Builder {
        /**
         * Specifies whether the Amazon EMR Studio authenticates users using IAM or Amazon Web Services SSO.
         */
        public var authMode: aws.sdk.kotlin.services.emr.model.AuthMode? = null
        /**
         * The time the Amazon EMR Studio was created.
         */
        public var creationTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
         */
        public var defaultS3Location: kotlin.String? = null
        /**
         * The detailed description of the Amazon EMR Studio.
         */
        public var description: kotlin.String? = null
        /**
         * The ID of the Engine security group associated with the Amazon EMR Studio. The Engine security group allows inbound network traffic from resources in the Workspace security group.
         */
        public var engineSecurityGroupId: kotlin.String? = null
        /**
         * Your identity provider's authentication endpoint. Amazon EMR Studio redirects federated users to this endpoint for authentication when logging in to a Studio with the Studio URL.
         */
        public var idpAuthUrl: kotlin.String? = null
        /**
         * The name of your identity provider's `RelayState` parameter.
         */
        public var idpRelayStateParameterName: kotlin.String? = null
        /**
         * The name of the Amazon EMR Studio.
         */
        public var name: kotlin.String? = null
        /**
         * The name of the IAM role assumed by the Amazon EMR Studio.
         */
        public var serviceRole: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the Amazon EMR Studio.
         */
        public var studioArn: kotlin.String? = null
        /**
         * The ID of the Amazon EMR Studio.
         */
        public var studioId: kotlin.String? = null
        /**
         * The list of IDs of the subnets associated with the Amazon EMR Studio.
         */
        public var subnetIds: List? = null
        /**
         * A list of tags associated with the Amazon EMR Studio.
         */
        public var tags: List? = null
        /**
         * The unique access URL of the Amazon EMR Studio.
         */
        public var url: kotlin.String? = null
        /**
         * The name of the IAM role assumed by users logged in to the Amazon EMR Studio. A Studio only requires a `UserRole` when you use IAM authentication.
         */
        public var userRole: kotlin.String? = null
        /**
         * The ID of the VPC associated with the Amazon EMR Studio.
         */
        public var vpcId: kotlin.String? = null
        /**
         * The ID of the Workspace security group associated with the Amazon EMR Studio. The Workspace security group allows outbound network traffic to resources in the Engine security group and to the internet.
         */
        public var workspaceSecurityGroupId: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.Studio) : this() {
            this.authMode = x.authMode
            this.creationTime = x.creationTime
            this.defaultS3Location = x.defaultS3Location
            this.description = x.description
            this.engineSecurityGroupId = x.engineSecurityGroupId
            this.idpAuthUrl = x.idpAuthUrl
            this.idpRelayStateParameterName = x.idpRelayStateParameterName
            this.name = x.name
            this.serviceRole = x.serviceRole
            this.studioArn = x.studioArn
            this.studioId = x.studioId
            this.subnetIds = x.subnetIds
            this.tags = x.tags
            this.url = x.url
            this.userRole = x.userRole
            this.vpcId = x.vpcId
            this.workspaceSecurityGroupId = x.workspaceSecurityGroupId
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.emr.model.Studio = Studio(this)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy