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

commonMain.aws.sdk.kotlin.services.auditmanager.model.DeregistrationPolicy.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.auditmanager.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * The deregistration policy for the data that's stored in Audit Manager. You can use this attribute to determine how your data is handled when you [deregister Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_DeregisterAccount.html).
 *
 * By default, Audit Manager retains evidence data for two years from the time of its creation. Other Audit Manager resources (including assessments, custom controls, and custom frameworks) remain in Audit Manager indefinitely, and are available if you [re-register Audit Manager](https://docs.aws.amazon.com/audit-manager/latest/APIReference/API_RegisterAccount.html) in the future. For more information about data retention, see [Data Protection](https://docs.aws.amazon.com/audit-manager/latest/userguide/data-protection.html) in the *Audit Manager User Guide*.
 *
 * If you choose to delete all data, this action permanently deletes all evidence data in your account within seven days. It also deletes all of the Audit Manager resources that you created, including assessments, custom controls, and custom frameworks. Your data will not be available if you re-register Audit Manager in the future.
 */
public class DeregistrationPolicy private constructor(builder: Builder) {
    /**
     * Specifies which Audit Manager data will be deleted when you deregister Audit Manager.
     * + If you set the value to `ALL`, all of your data is deleted within seven days of deregistration.
     * + If you set the value to `DEFAULT`, none of your data is deleted at the time of deregistration. However, keep in mind that the Audit Manager data retention policy still applies. As a result, any evidence data will be deleted two years after its creation date. Your other Audit Manager resources will continue to exist indefinitely.
     */
    public val deleteResources: aws.sdk.kotlin.services.auditmanager.model.DeleteResources? = builder.deleteResources

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

    override fun toString(): kotlin.String = buildString {
        append("DeregistrationPolicy(")
        append("deleteResources=$deleteResources")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = deleteResources?.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 DeregistrationPolicy

        if (deleteResources != other.deleteResources) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Specifies which Audit Manager data will be deleted when you deregister Audit Manager.
         * + If you set the value to `ALL`, all of your data is deleted within seven days of deregistration.
         * + If you set the value to `DEFAULT`, none of your data is deleted at the time of deregistration. However, keep in mind that the Audit Manager data retention policy still applies. As a result, any evidence data will be deleted two years after its creation date. Your other Audit Manager resources will continue to exist indefinitely.
         */
        public var deleteResources: aws.sdk.kotlin.services.auditmanager.model.DeleteResources? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.auditmanager.model.DeregistrationPolicy) : this() {
            this.deleteResources = x.deleteResources
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy