
commonMain.aws.sdk.kotlin.services.nimble.model.Studio.kt Maven / Gradle / Ivy
// 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
/**
* Represents a studio resource.
*
* A studio is the core resource used with Nimble Studio. You must create a studio first, before any other resource type can be created. All other resources you create and manage in Nimble Studio are contained within a studio.
*
* When creating a studio, you must provides two IAM roles for use with the Nimble Studio portal. These roles are assumed by your users when they log in to the Nimble Studio portal via IAM Identity Center and your identity source.
*
* The user role must have the `AmazonNimbleStudio-StudioUser` managed policy attached for the portal to function properly.
*
* The admin role must have the `AmazonNimbleStudio-StudioAdmin` managed policy attached for the portal to function properly.
*
* Your studio roles must trust the `identity.nimble.amazonaws.com` service principal to function properly.
*/
public class Studio private constructor(builder: Builder) {
/**
* The IAM role that studio admins assume when logging in to the Nimble Studio portal.
*/
public val adminRoleArn: kotlin.String? = builder.adminRoleArn
/**
* 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
/**
* A friendly name for the studio.
*/
public val displayName: kotlin.String? = builder.displayName
/**
* The Amazon Web Services Region where the studio resource is located.
*/
public val homeRegion: kotlin.String? = builder.homeRegion
/**
* The IAM Identity Center application client ID used to integrate with IAM Identity Center. This ID allows IAM Identity Center users to log in to Nimble Studio portal.
*/
public val ssoClientId: kotlin.String? = builder.ssoClientId
/**
* The current state of the studio resource.
*/
public val state: aws.sdk.kotlin.services.nimble.model.StudioState? = builder.state
/**
* Status codes that provide additional detail on the studio state.
*/
public val statusCode: aws.sdk.kotlin.services.nimble.model.StudioStatusCode? = builder.statusCode
/**
* Additional detail on the studio state.
*/
public val statusMessage: kotlin.String? = builder.statusMessage
/**
* Configuration of the encryption method that is used for the studio.
*/
public val studioEncryptionConfiguration: aws.sdk.kotlin.services.nimble.model.StudioEncryptionConfiguration? = builder.studioEncryptionConfiguration
/**
* The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.
*/
public val studioId: kotlin.String? = builder.studioId
/**
* The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.
*/
public val studioName: kotlin.String? = builder.studioName
/**
* The address of the web page for the studio.
*/
public val studioUrl: kotlin.String? = builder.studioUrl
/**
* 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 IAM role that studio users assume when logging in to the Nimble Studio portal.
*/
public val userRoleArn: kotlin.String? = builder.userRoleArn
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.nimble.model.Studio = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("Studio(")
append("adminRoleArn=$adminRoleArn,")
append("arn=$arn,")
append("createdAt=$createdAt,")
append("displayName=*** Sensitive Data Redacted ***,")
append("homeRegion=$homeRegion,")
append("ssoClientId=$ssoClientId,")
append("state=$state,")
append("statusCode=$statusCode,")
append("statusMessage=$statusMessage,")
append("studioEncryptionConfiguration=$studioEncryptionConfiguration,")
append("studioId=$studioId,")
append("studioName=$studioName,")
append("studioUrl=$studioUrl,")
append("tags=$tags,")
append("updatedAt=$updatedAt,")
append("userRoleArn=$userRoleArn")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = adminRoleArn?.hashCode() ?: 0
result = 31 * result + (arn?.hashCode() ?: 0)
result = 31 * result + (createdAt?.hashCode() ?: 0)
result = 31 * result + (displayName?.hashCode() ?: 0)
result = 31 * result + (homeRegion?.hashCode() ?: 0)
result = 31 * result + (ssoClientId?.hashCode() ?: 0)
result = 31 * result + (state?.hashCode() ?: 0)
result = 31 * result + (statusCode?.hashCode() ?: 0)
result = 31 * result + (statusMessage?.hashCode() ?: 0)
result = 31 * result + (studioEncryptionConfiguration?.hashCode() ?: 0)
result = 31 * result + (studioId?.hashCode() ?: 0)
result = 31 * result + (studioName?.hashCode() ?: 0)
result = 31 * result + (studioUrl?.hashCode() ?: 0)
result = 31 * result + (tags?.hashCode() ?: 0)
result = 31 * result + (updatedAt?.hashCode() ?: 0)
result = 31 * result + (userRoleArn?.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 (adminRoleArn != other.adminRoleArn) return false
if (arn != other.arn) return false
if (createdAt != other.createdAt) return false
if (displayName != other.displayName) return false
if (homeRegion != other.homeRegion) return false
if (ssoClientId != other.ssoClientId) return false
if (state != other.state) return false
if (statusCode != other.statusCode) return false
if (statusMessage != other.statusMessage) return false
if (studioEncryptionConfiguration != other.studioEncryptionConfiguration) return false
if (studioId != other.studioId) return false
if (studioName != other.studioName) return false
if (studioUrl != other.studioUrl) return false
if (tags != other.tags) return false
if (updatedAt != other.updatedAt) return false
if (userRoleArn != other.userRoleArn) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.nimble.model.Studio = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The IAM role that studio admins assume when logging in to the Nimble Studio portal.
*/
public var adminRoleArn: kotlin.String? = null
/**
* 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
/**
* A friendly name for the studio.
*/
public var displayName: kotlin.String? = null
/**
* The Amazon Web Services Region where the studio resource is located.
*/
public var homeRegion: kotlin.String? = null
/**
* The IAM Identity Center application client ID used to integrate with IAM Identity Center. This ID allows IAM Identity Center users to log in to Nimble Studio portal.
*/
public var ssoClientId: kotlin.String? = null
/**
* The current state of the studio resource.
*/
public var state: aws.sdk.kotlin.services.nimble.model.StudioState? = null
/**
* Status codes that provide additional detail on the studio state.
*/
public var statusCode: aws.sdk.kotlin.services.nimble.model.StudioStatusCode? = null
/**
* Additional detail on the studio state.
*/
public var statusMessage: kotlin.String? = null
/**
* Configuration of the encryption method that is used for the studio.
*/
public var studioEncryptionConfiguration: aws.sdk.kotlin.services.nimble.model.StudioEncryptionConfiguration? = null
/**
* The unique identifier for a studio resource. In Nimble Studio, all other resources are contained in a studio resource.
*/
public var studioId: kotlin.String? = null
/**
* The name of the studio, as included in the URL when accessing it in the Nimble Studio portal.
*/
public var studioName: kotlin.String? = null
/**
* The address of the web page for the studio.
*/
public var studioUrl: kotlin.String? = 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 IAM role that studio users assume when logging in to the Nimble Studio portal.
*/
public var userRoleArn: kotlin.String? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.nimble.model.Studio) : this() {
this.adminRoleArn = x.adminRoleArn
this.arn = x.arn
this.createdAt = x.createdAt
this.displayName = x.displayName
this.homeRegion = x.homeRegion
this.ssoClientId = x.ssoClientId
this.state = x.state
this.statusCode = x.statusCode
this.statusMessage = x.statusMessage
this.studioEncryptionConfiguration = x.studioEncryptionConfiguration
this.studioId = x.studioId
this.studioName = x.studioName
this.studioUrl = x.studioUrl
this.tags = x.tags
this.updatedAt = x.updatedAt
this.userRoleArn = x.userRoleArn
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.nimble.model.Studio = Studio(this)
/**
* construct an [aws.sdk.kotlin.services.nimble.model.StudioEncryptionConfiguration] inside the given [block]
*/
public fun studioEncryptionConfiguration(block: aws.sdk.kotlin.services.nimble.model.StudioEncryptionConfiguration.Builder.() -> kotlin.Unit) {
this.studioEncryptionConfiguration = aws.sdk.kotlin.services.nimble.model.StudioEncryptionConfiguration.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy