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

commonMain.aws.sdk.kotlin.services.guardduty.model.InstanceDetails.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.guardduty.model



/**
 * Contains information about the details of an instance.
 */
class InstanceDetails private constructor(builder: Builder) {
    /**
     * The Availability Zone of the EC2 instance.
     */
    val availabilityZone: kotlin.String? = builder.availabilityZone
    /**
     * The profile information of the EC2 instance.
     */
    val iamInstanceProfile: aws.sdk.kotlin.services.guardduty.model.IamInstanceProfile? = builder.iamInstanceProfile
    /**
     * The image description of the EC2 instance.
     */
    val imageDescription: kotlin.String? = builder.imageDescription
    /**
     * The image ID of the EC2 instance.
     */
    val imageId: kotlin.String? = builder.imageId
    /**
     * The ID of the EC2 instance.
     */
    val instanceId: kotlin.String? = builder.instanceId
    /**
     * The state of the EC2 instance.
     */
    val instanceState: kotlin.String? = builder.instanceState
    /**
     * The type of the EC2 instance.
     */
    val instanceType: kotlin.String? = builder.instanceType
    /**
     * The launch time of the EC2 instance.
     */
    val launchTime: kotlin.String? = builder.launchTime
    /**
     * The elastic network interface information of the EC2 instance.
     */
    val networkInterfaces: List? = builder.networkInterfaces
    /**
     * The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only applicable to Amazon Web Services Outposts instances.
     */
    val outpostArn: kotlin.String? = builder.outpostArn
    /**
     * The platform of the EC2 instance.
     */
    val platform: kotlin.String? = builder.platform
    /**
     * The product code of the EC2 instance.
     */
    val productCodes: List? = builder.productCodes
    /**
     * The tags of the EC2 instance.
     */
    val tags: List? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("InstanceDetails(")
        append("availabilityZone=$availabilityZone,")
        append("iamInstanceProfile=$iamInstanceProfile,")
        append("imageDescription=$imageDescription,")
        append("imageId=$imageId,")
        append("instanceId=$instanceId,")
        append("instanceState=$instanceState,")
        append("instanceType=$instanceType,")
        append("launchTime=$launchTime,")
        append("networkInterfaces=$networkInterfaces,")
        append("outpostArn=$outpostArn,")
        append("platform=$platform,")
        append("productCodes=$productCodes,")
        append("tags=$tags)")
    }

    override fun hashCode(): kotlin.Int {
        var result = availabilityZone?.hashCode() ?: 0
        result = 31 * result + (iamInstanceProfile?.hashCode() ?: 0)
        result = 31 * result + (imageDescription?.hashCode() ?: 0)
        result = 31 * result + (imageId?.hashCode() ?: 0)
        result = 31 * result + (instanceId?.hashCode() ?: 0)
        result = 31 * result + (instanceState?.hashCode() ?: 0)
        result = 31 * result + (instanceType?.hashCode() ?: 0)
        result = 31 * result + (launchTime?.hashCode() ?: 0)
        result = 31 * result + (networkInterfaces?.hashCode() ?: 0)
        result = 31 * result + (outpostArn?.hashCode() ?: 0)
        result = 31 * result + (platform?.hashCode() ?: 0)
        result = 31 * result + (productCodes?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 InstanceDetails

        if (availabilityZone != other.availabilityZone) return false
        if (iamInstanceProfile != other.iamInstanceProfile) return false
        if (imageDescription != other.imageDescription) return false
        if (imageId != other.imageId) return false
        if (instanceId != other.instanceId) return false
        if (instanceState != other.instanceState) return false
        if (instanceType != other.instanceType) return false
        if (launchTime != other.launchTime) return false
        if (networkInterfaces != other.networkInterfaces) return false
        if (outpostArn != other.outpostArn) return false
        if (platform != other.platform) return false
        if (productCodes != other.productCodes) return false
        if (tags != other.tags) return false

        return true
    }

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

    class Builder {
        /**
         * The Availability Zone of the EC2 instance.
         */
        var availabilityZone: kotlin.String? = null
        /**
         * The profile information of the EC2 instance.
         */
        var iamInstanceProfile: aws.sdk.kotlin.services.guardduty.model.IamInstanceProfile? = null
        /**
         * The image description of the EC2 instance.
         */
        var imageDescription: kotlin.String? = null
        /**
         * The image ID of the EC2 instance.
         */
        var imageId: kotlin.String? = null
        /**
         * The ID of the EC2 instance.
         */
        var instanceId: kotlin.String? = null
        /**
         * The state of the EC2 instance.
         */
        var instanceState: kotlin.String? = null
        /**
         * The type of the EC2 instance.
         */
        var instanceType: kotlin.String? = null
        /**
         * The launch time of the EC2 instance.
         */
        var launchTime: kotlin.String? = null
        /**
         * The elastic network interface information of the EC2 instance.
         */
        var networkInterfaces: List? = null
        /**
         * The Amazon Resource Name (ARN) of the Amazon Web Services Outpost. Only applicable to Amazon Web Services Outposts instances.
         */
        var outpostArn: kotlin.String? = null
        /**
         * The platform of the EC2 instance.
         */
        var platform: kotlin.String? = null
        /**
         * The product code of the EC2 instance.
         */
        var productCodes: List? = null
        /**
         * The tags of the EC2 instance.
         */
        var tags: List? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.guardduty.model.InstanceDetails) : this() {
            this.availabilityZone = x.availabilityZone
            this.iamInstanceProfile = x.iamInstanceProfile
            this.imageDescription = x.imageDescription
            this.imageId = x.imageId
            this.instanceId = x.instanceId
            this.instanceState = x.instanceState
            this.instanceType = x.instanceType
            this.launchTime = x.launchTime
            this.networkInterfaces = x.networkInterfaces
            this.outpostArn = x.outpostArn
            this.platform = x.platform
            this.productCodes = x.productCodes
            this.tags = x.tags
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy