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

commonMain.aws.sdk.kotlin.services.kafka.model.NodeInfo.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.kafka.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * The node information object.
 */
public class NodeInfo private constructor(builder: Builder) {
    /**
     * The start time.
     */
    public val addedToClusterTime: kotlin.String? = builder.addedToClusterTime
    /**
     * The broker node info.
     */
    public val brokerNodeInfo: aws.sdk.kotlin.services.kafka.model.BrokerNodeInfo? = builder.brokerNodeInfo
    /**
     * The ControllerNodeInfo.
     */
    public val controllerNodeInfo: aws.sdk.kotlin.services.kafka.model.ControllerNodeInfo? = builder.controllerNodeInfo
    /**
     * The instance type.
     */
    public val instanceType: kotlin.String? = builder.instanceType
    /**
     * The Amazon Resource Name (ARN) of the node.
     */
    public val nodeArn: kotlin.String? = builder.nodeArn
    /**
     * The node type.
     */
    public val nodeType: aws.sdk.kotlin.services.kafka.model.NodeType? = builder.nodeType
    /**
     * The ZookeeperNodeInfo.
     */
    public val zookeeperNodeInfo: aws.sdk.kotlin.services.kafka.model.ZookeeperNodeInfo? = builder.zookeeperNodeInfo

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

    override fun toString(): kotlin.String = buildString {
        append("NodeInfo(")
        append("addedToClusterTime=$addedToClusterTime,")
        append("brokerNodeInfo=$brokerNodeInfo,")
        append("controllerNodeInfo=$controllerNodeInfo,")
        append("instanceType=$instanceType,")
        append("nodeArn=$nodeArn,")
        append("nodeType=$nodeType,")
        append("zookeeperNodeInfo=$zookeeperNodeInfo")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = addedToClusterTime?.hashCode() ?: 0
        result = 31 * result + (brokerNodeInfo?.hashCode() ?: 0)
        result = 31 * result + (controllerNodeInfo?.hashCode() ?: 0)
        result = 31 * result + (instanceType?.hashCode() ?: 0)
        result = 31 * result + (nodeArn?.hashCode() ?: 0)
        result = 31 * result + (nodeType?.hashCode() ?: 0)
        result = 31 * result + (zookeeperNodeInfo?.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 NodeInfo

        if (addedToClusterTime != other.addedToClusterTime) return false
        if (brokerNodeInfo != other.brokerNodeInfo) return false
        if (controllerNodeInfo != other.controllerNodeInfo) return false
        if (instanceType != other.instanceType) return false
        if (nodeArn != other.nodeArn) return false
        if (nodeType != other.nodeType) return false
        if (zookeeperNodeInfo != other.zookeeperNodeInfo) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The start time.
         */
        public var addedToClusterTime: kotlin.String? = null
        /**
         * The broker node info.
         */
        public var brokerNodeInfo: aws.sdk.kotlin.services.kafka.model.BrokerNodeInfo? = null
        /**
         * The ControllerNodeInfo.
         */
        public var controllerNodeInfo: aws.sdk.kotlin.services.kafka.model.ControllerNodeInfo? = null
        /**
         * The instance type.
         */
        public var instanceType: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the node.
         */
        public var nodeArn: kotlin.String? = null
        /**
         * The node type.
         */
        public var nodeType: aws.sdk.kotlin.services.kafka.model.NodeType? = null
        /**
         * The ZookeeperNodeInfo.
         */
        public var zookeeperNodeInfo: aws.sdk.kotlin.services.kafka.model.ZookeeperNodeInfo? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.kafka.model.NodeInfo) : this() {
            this.addedToClusterTime = x.addedToClusterTime
            this.brokerNodeInfo = x.brokerNodeInfo
            this.controllerNodeInfo = x.controllerNodeInfo
            this.instanceType = x.instanceType
            this.nodeArn = x.nodeArn
            this.nodeType = x.nodeType
            this.zookeeperNodeInfo = x.zookeeperNodeInfo
        }

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy