
commonMain.aws.sdk.kotlin.services.s3control.serde.S3ObjectMetadataDocumentDeserializer.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.s3control.serde
import aws.sdk.kotlin.services.s3control.model.S3ObjectMetadata
import aws.sdk.kotlin.services.s3control.model.S3SseAlgorithm
import aws.smithy.kotlin.runtime.serde.Deserializer
import aws.smithy.kotlin.runtime.serde.SdkFieldDescriptor
import aws.smithy.kotlin.runtime.serde.SdkObjectDescriptor
import aws.smithy.kotlin.runtime.serde.SerialKind
import aws.smithy.kotlin.runtime.serde.asSdkSerializable
import aws.smithy.kotlin.runtime.serde.deserializeList
import aws.smithy.kotlin.runtime.serde.deserializeMap
import aws.smithy.kotlin.runtime.serde.deserializeStruct
import aws.smithy.kotlin.runtime.serde.field
import aws.smithy.kotlin.runtime.serde.serializeList
import aws.smithy.kotlin.runtime.serde.serializeMap
import aws.smithy.kotlin.runtime.serde.serializeStruct
import aws.smithy.kotlin.runtime.serde.xml.XmlDeserializer
import aws.smithy.kotlin.runtime.serde.xml.XmlNamespace
import aws.smithy.kotlin.runtime.serde.xml.XmlSerialName
import aws.smithy.kotlin.runtime.time.Instant
import kotlin.collections.mutableMapOf
internal fun deserializeS3ObjectMetadataDocument(deserializer: Deserializer): S3ObjectMetadata {
val builder = S3ObjectMetadata.Builder()
val CACHECONTROL_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("CacheControl"))
val CONTENTDISPOSITION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("ContentDisposition"))
val CONTENTENCODING_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("ContentEncoding"))
val CONTENTLANGUAGE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("ContentLanguage"))
val CONTENTLENGTH_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Long, XmlSerialName("ContentLength"))
val CONTENTMD5_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("ContentMD5"))
val CONTENTTYPE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, XmlSerialName("ContentType"))
val HTTPEXPIRESDATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Timestamp, XmlSerialName("HttpExpiresDate"))
val REQUESTERCHARGED_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, XmlSerialName("RequesterCharged"))
val SSEALGORITHM_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, XmlSerialName("SSEAlgorithm"))
val USERMETADATA_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Map, XmlSerialName("UserMetadata"))
val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
trait(XmlSerialName("S3ObjectMetadata"))
trait(XmlNamespace("http://awss3control.amazonaws.com/doc/2018-08-20/"))
field(CACHECONTROL_DESCRIPTOR)
field(CONTENTDISPOSITION_DESCRIPTOR)
field(CONTENTENCODING_DESCRIPTOR)
field(CONTENTLANGUAGE_DESCRIPTOR)
field(CONTENTLENGTH_DESCRIPTOR)
field(CONTENTMD5_DESCRIPTOR)
field(CONTENTTYPE_DESCRIPTOR)
field(HTTPEXPIRESDATE_DESCRIPTOR)
field(REQUESTERCHARGED_DESCRIPTOR)
field(SSEALGORITHM_DESCRIPTOR)
field(USERMETADATA_DESCRIPTOR)
}
deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
loop@while (true) {
when (findNextFieldIndex()) {
CACHECONTROL_DESCRIPTOR.index -> builder.cacheControl = deserializeString()
CONTENTDISPOSITION_DESCRIPTOR.index -> builder.contentDisposition = deserializeString()
CONTENTENCODING_DESCRIPTOR.index -> builder.contentEncoding = deserializeString()
CONTENTLANGUAGE_DESCRIPTOR.index -> builder.contentLanguage = deserializeString()
CONTENTLENGTH_DESCRIPTOR.index -> builder.contentLength = deserializeLong()
CONTENTMD5_DESCRIPTOR.index -> builder.contentMd5 = deserializeString()
CONTENTTYPE_DESCRIPTOR.index -> builder.contentType = deserializeString()
HTTPEXPIRESDATE_DESCRIPTOR.index -> builder.httpExpiresDate = deserializeString().let { Instant.fromIso8601(it) }
REQUESTERCHARGED_DESCRIPTOR.index -> builder.requesterCharged = deserializeBoolean()
SSEALGORITHM_DESCRIPTOR.index -> builder.sseAlgorithm = deserializeString().let { S3SseAlgorithm.fromValue(it) }
USERMETADATA_DESCRIPTOR.index -> builder.userMetadata =
deserializer.deserializeMap(USERMETADATA_DESCRIPTOR) {
val map0 = mutableMapOf()
while (hasNextEntry()) {
val k0 = key()
val v0 = if (nextHasValue()) { deserializeString() } else { deserializeNull(); continue }
map0[k0] = v0
}
map0
}
null -> break@loop
else -> skipValue()
}
}
}
builder.correctErrors()
return builder.build()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy