in aws-runtime/protocols/aws-json-protocols/common/src/aws/sdk/kotlin/runtime/protocol/json/RestJsonErrorDeserializer.kt [48:73]
public suspend fun deserialize(headers: Headers, payload: ByteArray?): ErrorDetails {
var code: String? = headers[X_AMZN_ERROR_TYPE_HEADER_NAME]
var message: String? = headers[X_AMZN_ERROR_MESSAGE_HEADER_NAME]
if (message == null) {
message = headers[X_AMZN_EVENT_ERROR_MESSAGE_HEADER_NAME]
}
if (payload != null) {
val deserializer = JsonDeserializer(payload)
deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
loop@while (true) {
when (findNextFieldIndex()) {
ERR_CODE_ALT1_DESCRIPTOR.index,
ERR_CODE_ALT2_DESCRIPTOR.index -> code = deserializeString()
MESSAGE_ALT1_DESCRIPTOR.index,
MESSAGE_ALT2_DESCRIPTOR.index,
MESSAGE_ALT3_DESCRIPTOR.index -> message = deserializeString()
null -> break@loop
else -> skipValue()
}
}
}
}
return ErrorDetails(sanitize(code), message, requestId = null)
}