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

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

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

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



public class CreateStudioSessionMappingRequest private constructor(builder: Builder) {
    /**
     * The globally unique identifier (GUID) of the user or group from the Amazon Web Services SSO Identity Store. For more information, see [UserId](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId) and [GroupId](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId) in the *Amazon Web Services SSO Identity Store API Reference*. Either `IdentityName` or `IdentityId` must be specified, but not both.
     */
    public val identityId: kotlin.String? = builder.identityId
    /**
     * The name of the user or group. For more information, see [UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName) and [DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName) in the *Amazon Web Services SSO Identity Store API Reference*. Either `IdentityName` or `IdentityId` must be specified, but not both.
     */
    public val identityName: kotlin.String? = builder.identityName
    /**
     * Specifies whether the identity to map to the Amazon EMR Studio is a user or a group.
     */
    public val identityType: aws.sdk.kotlin.services.emr.model.IdentityType? = builder.identityType
    /**
     * The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. You should specify the ARN for the session policy that you want to apply, not the ARN of your user role. For more information, see [Create an EMR Studio User Role with Session Policies](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html).
     */
    public val sessionPolicyArn: kotlin.String? = builder.sessionPolicyArn
    /**
     * The ID of the Amazon EMR Studio to which the user or group will be mapped.
     */
    public val studioId: kotlin.String? = builder.studioId

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

    override fun toString(): kotlin.String = buildString {
        append("CreateStudioSessionMappingRequest(")
        append("identityId=$identityId,")
        append("identityName=$identityName,")
        append("identityType=$identityType,")
        append("sessionPolicyArn=$sessionPolicyArn,")
        append("studioId=$studioId)")
    }

    override fun hashCode(): kotlin.Int {
        var result = identityId?.hashCode() ?: 0
        result = 31 * result + (identityName?.hashCode() ?: 0)
        result = 31 * result + (identityType?.hashCode() ?: 0)
        result = 31 * result + (sessionPolicyArn?.hashCode() ?: 0)
        result = 31 * result + (studioId?.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 CreateStudioSessionMappingRequest

        if (identityId != other.identityId) return false
        if (identityName != other.identityName) return false
        if (identityType != other.identityType) return false
        if (sessionPolicyArn != other.sessionPolicyArn) return false
        if (studioId != other.studioId) return false

        return true
    }

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

    public class Builder {
        /**
         * The globally unique identifier (GUID) of the user or group from the Amazon Web Services SSO Identity Store. For more information, see [UserId](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId) and [GroupId](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId) in the *Amazon Web Services SSO Identity Store API Reference*. Either `IdentityName` or `IdentityId` must be specified, but not both.
         */
        public var identityId: kotlin.String? = null
        /**
         * The name of the user or group. For more information, see [UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName) and [DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName) in the *Amazon Web Services SSO Identity Store API Reference*. Either `IdentityName` or `IdentityId` must be specified, but not both.
         */
        public var identityName: kotlin.String? = null
        /**
         * Specifies whether the identity to map to the Amazon EMR Studio is a user or a group.
         */
        public var identityType: aws.sdk.kotlin.services.emr.model.IdentityType? = null
        /**
         * The Amazon Resource Name (ARN) for the session policy that will be applied to the user or group. You should specify the ARN for the session policy that you want to apply, not the ARN of your user role. For more information, see [Create an EMR Studio User Role with Session Policies](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html).
         */
        public var sessionPolicyArn: kotlin.String? = null
        /**
         * The ID of the Amazon EMR Studio to which the user or group will be mapped.
         */
        public var studioId: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.emr.model.CreateStudioSessionMappingRequest) : this() {
            this.identityId = x.identityId
            this.identityName = x.identityName
            this.identityType = x.identityType
            this.sessionPolicyArn = x.sessionPolicyArn
            this.studioId = x.studioId
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy