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

commonMain.aws.sdk.kotlin.services.fsx.model.CreateStorageVirtualMachineRequest.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

public class CreateStorageVirtualMachineRequest private constructor(builder: Builder) {
    /**
     * Describes the self-managed Microsoft Active Directory to which you want to join the SVM. Joining an Active Directory provides user authentication and access control for SMB clients, including Microsoft Windows and macOS clients accessing the file system.
     */
    public val activeDirectoryConfiguration: aws.sdk.kotlin.services.fsx.model.CreateSvmActiveDirectoryConfiguration? = builder.activeDirectoryConfiguration
    /**
     * (Optional) An idempotency token for resource creation, in a string of up to 63 ASCII characters. This token 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 globally unique ID of the file system, assigned by Amazon FSx.
     */
    public val fileSystemId: kotlin.String? = builder.fileSystemId
    /**
     * The name of the SVM.
     */
    public val name: kotlin.String? = builder.name
    /**
     * The security style of the root volume of the SVM. Specify one of the following values:
     * + `UNIX` if the file system is managed by a UNIX administrator, the majority of users are NFS clients, and an application accessing the data uses a UNIX user as the service account.
     * + `NTFS` if the file system is managed by a Microsoft Windows administrator, the majority of users are SMB clients, and an application accessing the data uses a Microsoft Windows user as the service account.
     * + `MIXED` This is an advanced setting. For more information, see [Volume security style](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-security-style.html) in the Amazon FSx for NetApp ONTAP User Guide.
     */
    public val rootVolumeSecurityStyle: aws.sdk.kotlin.services.fsx.model.StorageVirtualMachineRootVolumeSecurityStyle? = builder.rootVolumeSecurityStyle
    /**
     * The password to use when managing the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's `fsxadmin` user to manage the SVM.
     */
    public val svmAdminPassword: kotlin.String? = builder.svmAdminPassword
    /**
     * A list of `Tag` values, with a maximum of 50 elements.
     */
    public val tags: List? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("CreateStorageVirtualMachineRequest(")
        append("activeDirectoryConfiguration=$activeDirectoryConfiguration,")
        append("clientRequestToken=$clientRequestToken,")
        append("fileSystemId=$fileSystemId,")
        append("name=$name,")
        append("rootVolumeSecurityStyle=$rootVolumeSecurityStyle,")
        append("svmAdminPassword=*** Sensitive Data Redacted ***,")
        append("tags=$tags")
        append(")")
    }

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

        if (activeDirectoryConfiguration != other.activeDirectoryConfiguration) return false
        if (clientRequestToken != other.clientRequestToken) return false
        if (fileSystemId != other.fileSystemId) return false
        if (name != other.name) return false
        if (rootVolumeSecurityStyle != other.rootVolumeSecurityStyle) return false
        if (svmAdminPassword != other.svmAdminPassword) return false
        if (tags != other.tags) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Describes the self-managed Microsoft Active Directory to which you want to join the SVM. Joining an Active Directory provides user authentication and access control for SMB clients, including Microsoft Windows and macOS clients accessing the file system.
         */
        public var activeDirectoryConfiguration: aws.sdk.kotlin.services.fsx.model.CreateSvmActiveDirectoryConfiguration? = null
        /**
         * (Optional) An idempotency token for resource creation, in a string of up to 63 ASCII characters. This token 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 globally unique ID of the file system, assigned by Amazon FSx.
         */
        public var fileSystemId: kotlin.String? = null
        /**
         * The name of the SVM.
         */
        public var name: kotlin.String? = null
        /**
         * The security style of the root volume of the SVM. Specify one of the following values:
         * + `UNIX` if the file system is managed by a UNIX administrator, the majority of users are NFS clients, and an application accessing the data uses a UNIX user as the service account.
         * + `NTFS` if the file system is managed by a Microsoft Windows administrator, the majority of users are SMB clients, and an application accessing the data uses a Microsoft Windows user as the service account.
         * + `MIXED` This is an advanced setting. For more information, see [Volume security style](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/volume-security-style.html) in the Amazon FSx for NetApp ONTAP User Guide.
         */
        public var rootVolumeSecurityStyle: aws.sdk.kotlin.services.fsx.model.StorageVirtualMachineRootVolumeSecurityStyle? = null
        /**
         * The password to use when managing the SVM using the NetApp ONTAP CLI or REST API. If you do not specify a password, you can still use the file system's `fsxadmin` user to manage the SVM.
         */
        public var svmAdminPassword: kotlin.String? = null
        /**
         * A list of `Tag` values, with a maximum of 50 elements.
         */
        public var tags: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.fsx.model.CreateStorageVirtualMachineRequest) : this() {
            this.activeDirectoryConfiguration = x.activeDirectoryConfiguration
            this.clientRequestToken = x.clientRequestToken
            this.fileSystemId = x.fileSystemId
            this.name = x.name
            this.rootVolumeSecurityStyle = x.rootVolumeSecurityStyle
            this.svmAdminPassword = x.svmAdminPassword
            this.tags = x.tags
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.fsx.model.CreateSvmActiveDirectoryConfiguration] inside the given [block]
         */
        public fun activeDirectoryConfiguration(block: aws.sdk.kotlin.services.fsx.model.CreateSvmActiveDirectoryConfiguration.Builder.() -> kotlin.Unit) {
            this.activeDirectoryConfiguration = aws.sdk.kotlin.services.fsx.model.CreateSvmActiveDirectoryConfiguration.invoke(block)
        }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy