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

commonMain.aws.sdk.kotlin.services.s3.model.RestoreStatus.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.s3.model

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

/**
 * Specifies the restoration status of an object. Objects in certain storage classes must be restored before they can be retrieved. For more information about these storage classes and how to work with archived objects, see [ Working with archived objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/archived-objects.html) in the *Amazon S3 User Guide*.
 *
 * This functionality is not supported for directory buckets. Only the S3 Express One Zone storage class is supported by directory buckets to store objects.
 */
public class RestoreStatus private constructor(builder: Builder) {
    /**
     * Specifies whether the object is currently being restored. If the object restoration is in progress, the header returns the value `TRUE`. For example:
     *
     * `x-amz-optional-object-attributes: IsRestoreInProgress="true"`
     *
     * If the object restoration has completed, the header returns the value `FALSE`. For example:
     *
     * `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"`
     *
     * If the object hasn't been restored, there is no header response.
     */
    public val isRestoreInProgress: kotlin.Boolean? = builder.isRestoreInProgress
    /**
     * Indicates when the restored copy will expire. This value is populated only if the object has already been restored. For example:
     *
     * `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"`
     */
    public val restoreExpiryDate: aws.smithy.kotlin.runtime.time.Instant? = builder.restoreExpiryDate

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

    override fun toString(): kotlin.String = buildString {
        append("RestoreStatus(")
        append("isRestoreInProgress=$isRestoreInProgress,")
        append("restoreExpiryDate=$restoreExpiryDate")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = isRestoreInProgress?.hashCode() ?: 0
        result = 31 * result + (restoreExpiryDate?.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 RestoreStatus

        if (isRestoreInProgress != other.isRestoreInProgress) return false
        if (restoreExpiryDate != other.restoreExpiryDate) return false

        return true
    }

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

    public class Builder {
        /**
         * Specifies whether the object is currently being restored. If the object restoration is in progress, the header returns the value `TRUE`. For example:
         *
         * `x-amz-optional-object-attributes: IsRestoreInProgress="true"`
         *
         * If the object restoration has completed, the header returns the value `FALSE`. For example:
         *
         * `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"`
         *
         * If the object hasn't been restored, there is no header response.
         */
        public var isRestoreInProgress: kotlin.Boolean? = null
        /**
         * Indicates when the restored copy will expire. This value is populated only if the object has already been restored. For example:
         *
         * `x-amz-optional-object-attributes: IsRestoreInProgress="false", RestoreExpiryDate="2012-12-21T00:00:00.000Z"`
         */
        public var restoreExpiryDate: aws.smithy.kotlin.runtime.time.Instant? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.s3.model.RestoreStatus) : this() {
            this.isRestoreInProgress = x.isRestoreInProgress
            this.restoreExpiryDate = x.restoreExpiryDate
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy