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

commonMain.aws.sdk.kotlin.services.connect.model.UserSearchCriteria.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.connect.model



/**
 * The search criteria to be used to return users.
 *
 * The `name` and `description` fields support "contains" queries with a minimum of 2 characters and a maximum of 25 characters. Any queries with character lengths outside of this range will throw invalid results.
 */
public class UserSearchCriteria private constructor(builder: Builder) {
    /**
     * A list of conditions which would be applied together with an `AND` condition.
     */
    public val andConditions: List? = builder.andConditions
    /**
     * A leaf node condition which can be used to specify a hierarchy group condition.
     */
    public val hierarchyGroupCondition: aws.sdk.kotlin.services.connect.model.HierarchyGroupCondition? = builder.hierarchyGroupCondition
    /**
     * A list of conditions which would be applied together with an `OR` condition.
     */
    public val orConditions: List? = builder.orConditions
    /**
     * A leaf node condition which can be used to specify a string condition.
     */
    public val stringCondition: aws.sdk.kotlin.services.connect.model.StringCondition? = builder.stringCondition

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

    override fun toString(): kotlin.String = buildString {
        append("UserSearchCriteria(")
        append("andConditions=$andConditions,")
        append("hierarchyGroupCondition=$hierarchyGroupCondition,")
        append("orConditions=$orConditions,")
        append("stringCondition=$stringCondition")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = andConditions?.hashCode() ?: 0
        result = 31 * result + (hierarchyGroupCondition?.hashCode() ?: 0)
        result = 31 * result + (orConditions?.hashCode() ?: 0)
        result = 31 * result + (stringCondition?.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 UserSearchCriteria

        if (andConditions != other.andConditions) return false
        if (hierarchyGroupCondition != other.hierarchyGroupCondition) return false
        if (orConditions != other.orConditions) return false
        if (stringCondition != other.stringCondition) return false

        return true
    }

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

    public class Builder {
        /**
         * A list of conditions which would be applied together with an `AND` condition.
         */
        public var andConditions: List? = null
        /**
         * A leaf node condition which can be used to specify a hierarchy group condition.
         */
        public var hierarchyGroupCondition: aws.sdk.kotlin.services.connect.model.HierarchyGroupCondition? = null
        /**
         * A list of conditions which would be applied together with an `OR` condition.
         */
        public var orConditions: List? = null
        /**
         * A leaf node condition which can be used to specify a string condition.
         */
        public var stringCondition: aws.sdk.kotlin.services.connect.model.StringCondition? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.connect.model.UserSearchCriteria) : this() {
            this.andConditions = x.andConditions
            this.hierarchyGroupCondition = x.hierarchyGroupCondition
            this.orConditions = x.orConditions
            this.stringCondition = x.stringCondition
        }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy