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

commonMain.aws.sdk.kotlin.services.fsx.model.CreateBackupRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.fsx.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * The request object for the `CreateBackup` operation.
 */
public class CreateBackupRequest private constructor(builder: Builder) {
    /**
     * (Optional) A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.
     */
    public val clientRequestToken: kotlin.String? = builder.clientRequestToken
    /**
     * The ID of the file system to back up.
     */
    public val fileSystemId: kotlin.String? = builder.fileSystemId
    /**
     * (Optional) The tags to apply to the backup at backup creation. The key value of the `Name` tag appears in the console as the backup name. If you have set `CopyTagsToBackups` to `true`, and you specify one or more tags using the `CreateBackup` operation, no existing file system tags are copied from the file system to the backup.
     */
    public val tags: List? = builder.tags
    /**
     * (Optional) The ID of the FSx for ONTAP volume to back up.
     */
    public val volumeId: kotlin.String? = builder.volumeId

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

    override fun toString(): kotlin.String = buildString {
        append("CreateBackupRequest(")
        append("clientRequestToken=$clientRequestToken,")
        append("fileSystemId=$fileSystemId,")
        append("tags=$tags,")
        append("volumeId=$volumeId")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = clientRequestToken?.hashCode() ?: 0
        result = 31 * result + (fileSystemId?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        result = 31 * result + (volumeId?.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 CreateBackupRequest

        if (clientRequestToken != other.clientRequestToken) return false
        if (fileSystemId != other.fileSystemId) return false
        if (tags != other.tags) return false
        if (volumeId != other.volumeId) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * (Optional) A string of up to 63 ASCII characters that Amazon FSx uses to ensure idempotent creation. This string is automatically filled on your behalf when you use the Command Line Interface (CLI) or an Amazon Web Services SDK.
         */
        public var clientRequestToken: kotlin.String? = null
        /**
         * The ID of the file system to back up.
         */
        public var fileSystemId: kotlin.String? = null
        /**
         * (Optional) The tags to apply to the backup at backup creation. The key value of the `Name` tag appears in the console as the backup name. If you have set `CopyTagsToBackups` to `true`, and you specify one or more tags using the `CreateBackup` operation, no existing file system tags are copied from the file system to the backup.
         */
        public var tags: List? = null
        /**
         * (Optional) The ID of the FSx for ONTAP volume to back up.
         */
        public var volumeId: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.fsx.model.CreateBackupRequest) : this() {
            this.clientRequestToken = x.clientRequestToken
            this.fileSystemId = x.fileSystemId
            this.tags = x.tags
            this.volumeId = x.volumeId
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy