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

commonMain.aws.sdk.kotlin.services.nimble.model.StudioMembership.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

/**
 * A studio member is an association of a user from your studio identity source to elevated permissions that they are granted in the studio.
 *
 * When you add a user to your studio using the Nimble Studio console, they are given access to the studio's IAM Identity Center application and are given access to log in to the Nimble Studio portal. These users have the permissions provided by the studio's user IAM role and do not appear in the studio membership collection. Only studio admins appear in studio membership.
 *
 * When you add a user to studio membership with the ADMIN persona, upon logging in to the Nimble Studio portal, they are granted permissions specified by the Studio's Admin IAM role.
 */
public class StudioMembership private constructor(builder: Builder) {
    /**
     * The ID of the identity store.
     */
    public val identityStoreId: kotlin.String? = builder.identityStoreId
    /**
     * The persona.
     */
    public val persona: aws.sdk.kotlin.services.nimble.model.StudioPersona? = builder.persona
    /**
     * The principal ID.
     */
    public val principalId: kotlin.String? = builder.principalId
    /**
     * The Active Directory Security Identifier for this user, if available.
     */
    public val sid: kotlin.String? = builder.sid

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

    override fun toString(): kotlin.String = buildString {
        append("StudioMembership(")
        append("identityStoreId=$identityStoreId,")
        append("persona=$persona,")
        append("principalId=$principalId,")
        append("sid=$sid")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = identityStoreId?.hashCode() ?: 0
        result = 31 * result + (persona?.hashCode() ?: 0)
        result = 31 * result + (principalId?.hashCode() ?: 0)
        result = 31 * result + (sid?.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 StudioMembership

        if (identityStoreId != other.identityStoreId) return false
        if (persona != other.persona) return false
        if (principalId != other.principalId) return false
        if (sid != other.sid) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ID of the identity store.
         */
        public var identityStoreId: kotlin.String? = null
        /**
         * The persona.
         */
        public var persona: aws.sdk.kotlin.services.nimble.model.StudioPersona? = null
        /**
         * The principal ID.
         */
        public var principalId: kotlin.String? = null
        /**
         * The Active Directory Security Identifier for this user, if available.
         */
        public var sid: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.nimble.model.StudioMembership) : this() {
            this.identityStoreId = x.identityStoreId
            this.persona = x.persona
            this.principalId = x.principalId
            this.sid = x.sid
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy