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

commonMain.aws.sdk.kotlin.services.snowball.model.UpdateClusterRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.snowball.model

import aws.smithy.kotlin.runtime.SdkDsl

public class UpdateClusterRequest private constructor(builder: Builder) {
    /**
     * The ID of the updated Address object.
     */
    public val addressId: kotlin.String? = builder.addressId
    /**
     * The cluster ID of the cluster that you want to update, for example `CID123e4567-e89b-12d3-a456-426655440000`.
     */
    public val clusterId: kotlin.String? = builder.clusterId
    /**
     * The updated description of this cluster.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The updated ID for the forwarding address for a cluster. This field is not supported in most regions.
     */
    public val forwardingAddressId: kotlin.String? = builder.forwardingAddressId
    /**
     * The new or updated Notification object.
     */
    public val notification: aws.sdk.kotlin.services.snowball.model.Notification? = builder.notification
    /**
     * Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. Amazon Web Services Snow Family device clusters support Amazon S3 and NFS (Network File System).
     */
    public val onDeviceServiceConfiguration: aws.sdk.kotlin.services.snowball.model.OnDeviceServiceConfiguration? = builder.onDeviceServiceConfiguration
    /**
     * The updated arrays of JobResource objects that can include updated S3Resource objects or LambdaResource objects.
     */
    public val resources: aws.sdk.kotlin.services.snowball.model.JobResource? = builder.resources
    /**
     * The new role Amazon Resource Name (ARN) that you want to associate with this cluster. To create a role ARN, use the [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) API action in Identity and Access Management (IAM).
     */
    public val roleArn: kotlin.String? = builder.roleArn
    /**
     * The updated shipping option value of this cluster's ShippingDetails object.
     */
    public val shippingOption: aws.sdk.kotlin.services.snowball.model.ShippingOption? = builder.shippingOption

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

    override fun toString(): kotlin.String = buildString {
        append("UpdateClusterRequest(")
        append("addressId=$addressId,")
        append("clusterId=$clusterId,")
        append("description=$description,")
        append("forwardingAddressId=$forwardingAddressId,")
        append("notification=$notification,")
        append("onDeviceServiceConfiguration=$onDeviceServiceConfiguration,")
        append("resources=$resources,")
        append("roleArn=$roleArn,")
        append("shippingOption=$shippingOption")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = addressId?.hashCode() ?: 0
        result = 31 * result + (clusterId?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (forwardingAddressId?.hashCode() ?: 0)
        result = 31 * result + (notification?.hashCode() ?: 0)
        result = 31 * result + (onDeviceServiceConfiguration?.hashCode() ?: 0)
        result = 31 * result + (resources?.hashCode() ?: 0)
        result = 31 * result + (roleArn?.hashCode() ?: 0)
        result = 31 * result + (shippingOption?.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 UpdateClusterRequest

        if (addressId != other.addressId) return false
        if (clusterId != other.clusterId) return false
        if (description != other.description) return false
        if (forwardingAddressId != other.forwardingAddressId) return false
        if (notification != other.notification) return false
        if (onDeviceServiceConfiguration != other.onDeviceServiceConfiguration) return false
        if (resources != other.resources) return false
        if (roleArn != other.roleArn) return false
        if (shippingOption != other.shippingOption) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ID of the updated Address object.
         */
        public var addressId: kotlin.String? = null
        /**
         * The cluster ID of the cluster that you want to update, for example `CID123e4567-e89b-12d3-a456-426655440000`.
         */
        public var clusterId: kotlin.String? = null
        /**
         * The updated description of this cluster.
         */
        public var description: kotlin.String? = null
        /**
         * The updated ID for the forwarding address for a cluster. This field is not supported in most regions.
         */
        public var forwardingAddressId: kotlin.String? = null
        /**
         * The new or updated Notification object.
         */
        public var notification: aws.sdk.kotlin.services.snowball.model.Notification? = null
        /**
         * Specifies the service or services on the Snow Family device that your transferred data will be exported from or imported into. Amazon Web Services Snow Family device clusters support Amazon S3 and NFS (Network File System).
         */
        public var onDeviceServiceConfiguration: aws.sdk.kotlin.services.snowball.model.OnDeviceServiceConfiguration? = null
        /**
         * The updated arrays of JobResource objects that can include updated S3Resource objects or LambdaResource objects.
         */
        public var resources: aws.sdk.kotlin.services.snowball.model.JobResource? = null
        /**
         * The new role Amazon Resource Name (ARN) that you want to associate with this cluster. To create a role ARN, use the [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) API action in Identity and Access Management (IAM).
         */
        public var roleArn: kotlin.String? = null
        /**
         * The updated shipping option value of this cluster's ShippingDetails object.
         */
        public var shippingOption: aws.sdk.kotlin.services.snowball.model.ShippingOption? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.snowball.model.UpdateClusterRequest) : this() {
            this.addressId = x.addressId
            this.clusterId = x.clusterId
            this.description = x.description
            this.forwardingAddressId = x.forwardingAddressId
            this.notification = x.notification
            this.onDeviceServiceConfiguration = x.onDeviceServiceConfiguration
            this.resources = x.resources
            this.roleArn = x.roleArn
            this.shippingOption = x.shippingOption
        }

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

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

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy