commonMain.aws.sdk.kotlin.services.finspacedata.transform.GetDatasetOperationDeserializer.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of finspacedata Show documentation
Show all versions of finspacedata Show documentation
The AWS Kotlin client for finspace data
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.finspacedata.transform
import aws.sdk.kotlin.runtime.http.setAseErrorMetadata
import aws.sdk.kotlin.runtime.http.withPayload
import aws.sdk.kotlin.runtime.protocol.json.RestJsonErrorDeserializer
import aws.sdk.kotlin.services.finspacedata.model.DatasetKind
import aws.sdk.kotlin.services.finspacedata.model.DatasetStatus
import aws.sdk.kotlin.services.finspacedata.model.FinspaceDataException
import aws.sdk.kotlin.services.finspacedata.model.GetDatasetResponse
import aws.sdk.kotlin.services.finspacedata.model.SchemaUnion
import aws.smithy.kotlin.runtime.http.isSuccess
import aws.smithy.kotlin.runtime.http.operation.HttpDeserialize
import aws.smithy.kotlin.runtime.http.readAll
import aws.smithy.kotlin.runtime.http.response.HttpResponse
import aws.smithy.kotlin.runtime.operation.ExecutionContext
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.json.JsonDeserializer
import aws.smithy.kotlin.runtime.serde.json.JsonSerialName
import aws.smithy.kotlin.runtime.serde.serializeList
import aws.smithy.kotlin.runtime.serde.serializeMap
import aws.smithy.kotlin.runtime.serde.serializeStruct
internal class GetDatasetOperationDeserializer: HttpDeserialize {
override suspend fun deserialize(context: ExecutionContext, response: HttpResponse): GetDatasetResponse {
if (!response.status.isSuccess()) {
throwGetDatasetError(context, response)
}
val builder = GetDatasetResponse.Builder()
val payload = response.body.readAll()
if (payload != null) {
deserializeGetDatasetOperationBody(builder, payload)
}
return builder.build()
}
}
private suspend fun throwGetDatasetError(context: ExecutionContext, response: HttpResponse): kotlin.Nothing {
val payload = response.body.readAll()
val wrappedResponse = response.withPayload(payload)
val errorDetails = try {
RestJsonErrorDeserializer.deserialize(response.headers, payload)
} catch (ex: Exception) {
throw FinspaceDataException("Failed to parse response as 'restJson1' error", ex).also {
setAseErrorMetadata(it, wrappedResponse, null)
}
}
val ex = when(errorDetails.code) {
"AccessDeniedException" -> AccessDeniedExceptionDeserializer().deserialize(context, wrappedResponse)
"ConflictException" -> ConflictExceptionDeserializer().deserialize(context, wrappedResponse)
"InternalServerException" -> InternalServerExceptionDeserializer().deserialize(context, wrappedResponse)
"ResourceNotFoundException" -> ResourceNotFoundExceptionDeserializer().deserialize(context, wrappedResponse)
"ThrottlingException" -> ThrottlingExceptionDeserializer().deserialize(context, wrappedResponse)
"ValidationException" -> ValidationExceptionDeserializer().deserialize(context, wrappedResponse)
else -> FinspaceDataException(errorDetails.message)
}
setAseErrorMetadata(ex, wrappedResponse, errorDetails)
throw ex
}
private fun deserializeGetDatasetOperationBody(builder: GetDatasetResponse.Builder, payload: ByteArray) {
val deserializer = JsonDeserializer(payload)
val ALIAS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("alias"))
val CREATETIME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Long, JsonSerialName("createTime"))
val DATASETARN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("datasetArn"))
val DATASETDESCRIPTION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("datasetDescription"))
val DATASETID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("datasetId"))
val DATASETTITLE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("datasetTitle"))
val KIND_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("kind"))
val LASTMODIFIEDTIME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Long, JsonSerialName("lastModifiedTime"))
val SCHEMADEFINITION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("schemaDefinition"))
val STATUS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("status"))
val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
field(ALIAS_DESCRIPTOR)
field(CREATETIME_DESCRIPTOR)
field(DATASETARN_DESCRIPTOR)
field(DATASETDESCRIPTION_DESCRIPTOR)
field(DATASETID_DESCRIPTOR)
field(DATASETTITLE_DESCRIPTOR)
field(KIND_DESCRIPTOR)
field(LASTMODIFIEDTIME_DESCRIPTOR)
field(SCHEMADEFINITION_DESCRIPTOR)
field(STATUS_DESCRIPTOR)
}
deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
loop@while (true) {
when (findNextFieldIndex()) {
ALIAS_DESCRIPTOR.index -> builder.alias = deserializeString()
CREATETIME_DESCRIPTOR.index -> builder.createTime = deserializeLong()
DATASETARN_DESCRIPTOR.index -> builder.datasetArn = deserializeString()
DATASETDESCRIPTION_DESCRIPTOR.index -> builder.datasetDescription = deserializeString()
DATASETID_DESCRIPTOR.index -> builder.datasetId = deserializeString()
DATASETTITLE_DESCRIPTOR.index -> builder.datasetTitle = deserializeString()
KIND_DESCRIPTOR.index -> builder.kind = deserializeString().let { DatasetKind.fromValue(it) }
LASTMODIFIEDTIME_DESCRIPTOR.index -> builder.lastModifiedTime = deserializeLong()
SCHEMADEFINITION_DESCRIPTOR.index -> builder.schemaDefinition = deserializeSchemaUnionDocument(deserializer)
STATUS_DESCRIPTOR.index -> builder.status = deserializeString().let { DatasetStatus.fromValue(it) }
null -> break@loop
else -> skipValue()
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy