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

commonMain.aws.sdk.kotlin.services.ssoadmin.model.CreateInstanceAccessControlAttributeConfigurationRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.ssoadmin.model

import aws.smithy.kotlin.runtime.SdkDsl

public class CreateInstanceAccessControlAttributeConfigurationRequest private constructor(builder: Builder) {
    /**
     * Specifies the IAM Identity Center identity store attributes to add to your ABAC configuration. When using an external identity provider as an identity source, you can pass attributes through the SAML assertion. Doing so provides an alternative to configuring attributes from the IAM Identity Center identity store. If a SAML assertion passes any of these attributes, IAM Identity Center will replace the attribute value with the value from the IAM Identity Center identity store.
     */
    public val instanceAccessControlAttributeConfiguration: aws.sdk.kotlin.services.ssoadmin.model.InstanceAccessControlAttributeConfiguration? = builder.instanceAccessControlAttributeConfiguration
    /**
     * The ARN of the IAM Identity Center instance under which the operation will be executed.
     */
    public val instanceArn: kotlin.String? = builder.instanceArn

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

    override fun toString(): kotlin.String = buildString {
        append("CreateInstanceAccessControlAttributeConfigurationRequest(")
        append("instanceAccessControlAttributeConfiguration=$instanceAccessControlAttributeConfiguration,")
        append("instanceArn=$instanceArn")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = instanceAccessControlAttributeConfiguration?.hashCode() ?: 0
        result = 31 * result + (instanceArn?.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 CreateInstanceAccessControlAttributeConfigurationRequest

        if (instanceAccessControlAttributeConfiguration != other.instanceAccessControlAttributeConfiguration) return false
        if (instanceArn != other.instanceArn) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Specifies the IAM Identity Center identity store attributes to add to your ABAC configuration. When using an external identity provider as an identity source, you can pass attributes through the SAML assertion. Doing so provides an alternative to configuring attributes from the IAM Identity Center identity store. If a SAML assertion passes any of these attributes, IAM Identity Center will replace the attribute value with the value from the IAM Identity Center identity store.
         */
        public var instanceAccessControlAttributeConfiguration: aws.sdk.kotlin.services.ssoadmin.model.InstanceAccessControlAttributeConfiguration? = null
        /**
         * The ARN of the IAM Identity Center instance under which the operation will be executed.
         */
        public var instanceArn: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.ssoadmin.model.CreateInstanceAccessControlAttributeConfigurationRequest) : this() {
            this.instanceAccessControlAttributeConfiguration = x.instanceAccessControlAttributeConfiguration
            this.instanceArn = x.instanceArn
        }

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy