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

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

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

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

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Provides the number of compliant and noncompliant rules within a conformance pack. Also provides the compliance status of the conformance pack and the total rule count which includes compliant rules, noncompliant rules, and rules that cannot be evaluated due to insufficient data.
 *
 * A conformance pack is compliant if all of the rules in a conformance packs are compliant. It is noncompliant if any of the rules are not compliant. The compliance status of a conformance pack is INSUFFICIENT_DATA only if all rules within a conformance pack cannot be evaluated due to insufficient data. If some of the rules in a conformance pack are compliant but the compliance status of other rules in that same conformance pack is INSUFFICIENT_DATA, the conformance pack shows compliant.
 */
public class AggregateConformancePackCompliance private constructor(builder: Builder) {
    /**
     * The compliance status of the conformance pack.
     */
    public val complianceType: aws.sdk.kotlin.services.configservice.model.ConformancePackComplianceType? = builder.complianceType
    /**
     * The number of compliant Config Rules.
     */
    public val compliantRuleCount: kotlin.Int = builder.compliantRuleCount
    /**
     * The number of noncompliant Config Rules.
     */
    public val nonCompliantRuleCount: kotlin.Int = builder.nonCompliantRuleCount
    /**
     * Total number of compliant rules, noncompliant rules, and the rules that do not have any applicable resources to evaluate upon resulting in insufficient data.
     */
    public val totalRuleCount: kotlin.Int = builder.totalRuleCount

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

    override fun toString(): kotlin.String = buildString {
        append("AggregateConformancePackCompliance(")
        append("complianceType=$complianceType,")
        append("compliantRuleCount=$compliantRuleCount,")
        append("nonCompliantRuleCount=$nonCompliantRuleCount,")
        append("totalRuleCount=$totalRuleCount")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = complianceType?.hashCode() ?: 0
        result = 31 * result + (compliantRuleCount)
        result = 31 * result + (nonCompliantRuleCount)
        result = 31 * result + (totalRuleCount)
        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 AggregateConformancePackCompliance

        if (complianceType != other.complianceType) return false
        if (compliantRuleCount != other.compliantRuleCount) return false
        if (nonCompliantRuleCount != other.nonCompliantRuleCount) return false
        if (totalRuleCount != other.totalRuleCount) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The compliance status of the conformance pack.
         */
        public var complianceType: aws.sdk.kotlin.services.configservice.model.ConformancePackComplianceType? = null
        /**
         * The number of compliant Config Rules.
         */
        public var compliantRuleCount: kotlin.Int = 0
        /**
         * The number of noncompliant Config Rules.
         */
        public var nonCompliantRuleCount: kotlin.Int = 0
        /**
         * Total number of compliant rules, noncompliant rules, and the rules that do not have any applicable resources to evaluate upon resulting in insufficient data.
         */
        public var totalRuleCount: kotlin.Int = 0

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.configservice.model.AggregateConformancePackCompliance) : this() {
            this.complianceType = x.complianceType
            this.compliantRuleCount = x.compliantRuleCount
            this.nonCompliantRuleCount = x.nonCompliantRuleCount
            this.totalRuleCount = x.totalRuleCount
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy