commonMain.aws.sdk.kotlin.services.glue.model.PartitionInput.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.glue.model
import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant
/**
* The structure used to create and update a partition.
*/
public class PartitionInput private constructor(builder: Builder) {
/**
* The last time at which the partition was accessed.
*/
public val lastAccessTime: aws.smithy.kotlin.runtime.time.Instant? = builder.lastAccessTime
/**
* The last time at which column statistics were computed for this partition.
*/
public val lastAnalyzedTime: aws.smithy.kotlin.runtime.time.Instant? = builder.lastAnalyzedTime
/**
* These key-value pairs define partition parameters.
*/
public val parameters: Map? = builder.parameters
/**
* Provides information about the physical location where the partition is stored.
*/
public val storageDescriptor: aws.sdk.kotlin.services.glue.model.StorageDescriptor? = builder.storageDescriptor
/**
* The values of the partition. Although this parameter is not required by the SDK, you must specify this parameter for a valid input.
*
* The values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix. Otherwise Glue will add the values to the wrong keys.
*/
public val values: List? = builder.values
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.PartitionInput = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("PartitionInput(")
append("lastAccessTime=$lastAccessTime,")
append("lastAnalyzedTime=$lastAnalyzedTime,")
append("parameters=$parameters,")
append("storageDescriptor=$storageDescriptor,")
append("values=$values")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = lastAccessTime?.hashCode() ?: 0
result = 31 * result + (lastAnalyzedTime?.hashCode() ?: 0)
result = 31 * result + (parameters?.hashCode() ?: 0)
result = 31 * result + (storageDescriptor?.hashCode() ?: 0)
result = 31 * result + (values?.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 PartitionInput
if (lastAccessTime != other.lastAccessTime) return false
if (lastAnalyzedTime != other.lastAnalyzedTime) return false
if (parameters != other.parameters) return false
if (storageDescriptor != other.storageDescriptor) return false
if (values != other.values) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.PartitionInput = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The last time at which the partition was accessed.
*/
public var lastAccessTime: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The last time at which column statistics were computed for this partition.
*/
public var lastAnalyzedTime: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* These key-value pairs define partition parameters.
*/
public var parameters: Map? = null
/**
* Provides information about the physical location where the partition is stored.
*/
public var storageDescriptor: aws.sdk.kotlin.services.glue.model.StorageDescriptor? = null
/**
* The values of the partition. Although this parameter is not required by the SDK, you must specify this parameter for a valid input.
*
* The values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix. Otherwise Glue will add the values to the wrong keys.
*/
public var values: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.glue.model.PartitionInput) : this() {
this.lastAccessTime = x.lastAccessTime
this.lastAnalyzedTime = x.lastAnalyzedTime
this.parameters = x.parameters
this.storageDescriptor = x.storageDescriptor
this.values = x.values
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.glue.model.PartitionInput = PartitionInput(this)
/**
* construct an [aws.sdk.kotlin.services.glue.model.StorageDescriptor] inside the given [block]
*/
public fun storageDescriptor(block: aws.sdk.kotlin.services.glue.model.StorageDescriptor.Builder.() -> kotlin.Unit) {
this.storageDescriptor = aws.sdk.kotlin.services.glue.model.StorageDescriptor.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}