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

commonMain.aws.sdk.kotlin.services.configservice.model.Evaluation.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.configservice.model

import aws.smithy.kotlin.runtime.time.Instant

/**
 * Identifies an Amazon Web Services resource and indicates whether it complies with the Config rule that it was evaluated against.
 */
class Evaluation private constructor(builder: Builder) {
    /**
     * Supplementary information about how the evaluation determined the compliance.
     */
    val annotation: kotlin.String? = builder.annotation
    /**
     * The ID of the Amazon Web Services resource that was evaluated.
     */
    val complianceResourceId: kotlin.String? = builder.complianceResourceId
    /**
     * The type of Amazon Web Services resource that was evaluated.
     */
    val complianceResourceType: kotlin.String? = builder.complianceResourceType
    /**
     * Indicates whether the Amazon Web Services resource complies with the Config rule that it was evaluated against.
     *
     * For the `Evaluation` data type, Config supports only the `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. Config does not support the `INSUFFICIENT_DATA` value for this data type.
     *
     * Similarly, Config does not accept `INSUFFICIENT_DATA` as the value for `ComplianceType` from a `PutEvaluations` request. For example, an Lambda function for a custom Config rule cannot pass an `INSUFFICIENT_DATA` value to Config.
     */
    val complianceType: aws.sdk.kotlin.services.configservice.model.ComplianceType? = builder.complianceType
    /**
     * The time of the event in Config that triggered the evaluation. For event-based evaluations, the time indicates when Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when Config triggered the evaluation at the frequency that you specified (for example, every 24 hours).
     */
    val orderingTimestamp: aws.smithy.kotlin.runtime.time.Instant? = builder.orderingTimestamp

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

    override fun toString(): kotlin.String = buildString {
        append("Evaluation(")
        append("annotation=$annotation,")
        append("complianceResourceId=$complianceResourceId,")
        append("complianceResourceType=$complianceResourceType,")
        append("complianceType=$complianceType,")
        append("orderingTimestamp=$orderingTimestamp)")
    }

    override fun hashCode(): kotlin.Int {
        var result = annotation?.hashCode() ?: 0
        result = 31 * result + (complianceResourceId?.hashCode() ?: 0)
        result = 31 * result + (complianceResourceType?.hashCode() ?: 0)
        result = 31 * result + (complianceType?.hashCode() ?: 0)
        result = 31 * result + (orderingTimestamp?.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 Evaluation

        if (annotation != other.annotation) return false
        if (complianceResourceId != other.complianceResourceId) return false
        if (complianceResourceType != other.complianceResourceType) return false
        if (complianceType != other.complianceType) return false
        if (orderingTimestamp != other.orderingTimestamp) return false

        return true
    }

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

    class Builder {
        /**
         * Supplementary information about how the evaluation determined the compliance.
         */
        var annotation: kotlin.String? = null
        /**
         * The ID of the Amazon Web Services resource that was evaluated.
         */
        var complianceResourceId: kotlin.String? = null
        /**
         * The type of Amazon Web Services resource that was evaluated.
         */
        var complianceResourceType: kotlin.String? = null
        /**
         * Indicates whether the Amazon Web Services resource complies with the Config rule that it was evaluated against.
         *
         * For the `Evaluation` data type, Config supports only the `COMPLIANT`, `NON_COMPLIANT`, and `NOT_APPLICABLE` values. Config does not support the `INSUFFICIENT_DATA` value for this data type.
         *
         * Similarly, Config does not accept `INSUFFICIENT_DATA` as the value for `ComplianceType` from a `PutEvaluations` request. For example, an Lambda function for a custom Config rule cannot pass an `INSUFFICIENT_DATA` value to Config.
         */
        var complianceType: aws.sdk.kotlin.services.configservice.model.ComplianceType? = null
        /**
         * The time of the event in Config that triggered the evaluation. For event-based evaluations, the time indicates when Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when Config triggered the evaluation at the frequency that you specified (for example, every 24 hours).
         */
        var orderingTimestamp: aws.smithy.kotlin.runtime.time.Instant? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.configservice.model.Evaluation) : this() {
            this.annotation = x.annotation
            this.complianceResourceId = x.complianceResourceId
            this.complianceResourceType = x.complianceResourceType
            this.complianceType = x.complianceType
            this.orderingTimestamp = x.orderingTimestamp
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy