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

commonMain.aws.sdk.kotlin.services.ivsrealtime.serde.ParticipantDocumentDeserializer.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.ivsrealtime.serde

import aws.sdk.kotlin.services.ivsrealtime.model.Participant
import aws.sdk.kotlin.services.ivsrealtime.model.ParticipantProtocol
import aws.sdk.kotlin.services.ivsrealtime.model.ParticipantRecordingState
import aws.sdk.kotlin.services.ivsrealtime.model.ParticipantState
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.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
import aws.smithy.kotlin.runtime.time.Instant
import aws.smithy.kotlin.runtime.time.TimestampFormat
import kotlin.collections.mutableMapOf

internal fun deserializeParticipantDocument(deserializer: Deserializer): Participant {
    val builder = Participant.Builder()
    val ATTRIBUTES_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Map, JsonSerialName("attributes"))
    val BROWSERNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("browserName"))
    val BROWSERVERSION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("browserVersion"))
    val FIRSTJOINTIME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Timestamp, JsonSerialName("firstJoinTime"))
    val ISPNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("ispName"))
    val OSNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("osName"))
    val OSVERSION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("osVersion"))
    val PARTICIPANTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("participantId"))
    val PROTOCOL_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("protocol"))
    val PUBLISHED_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, JsonSerialName("published"))
    val RECORDINGS3BUCKETNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("recordingS3BucketName"))
    val RECORDINGS3PREFIX_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("recordingS3Prefix"))
    val RECORDINGSTATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("recordingState"))
    val SDKVERSION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("sdkVersion"))
    val STATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("state"))
    val USERID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("userId"))
    val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
        field(ATTRIBUTES_DESCRIPTOR)
        field(BROWSERNAME_DESCRIPTOR)
        field(BROWSERVERSION_DESCRIPTOR)
        field(FIRSTJOINTIME_DESCRIPTOR)
        field(ISPNAME_DESCRIPTOR)
        field(OSNAME_DESCRIPTOR)
        field(OSVERSION_DESCRIPTOR)
        field(PARTICIPANTID_DESCRIPTOR)
        field(PROTOCOL_DESCRIPTOR)
        field(PUBLISHED_DESCRIPTOR)
        field(RECORDINGS3BUCKETNAME_DESCRIPTOR)
        field(RECORDINGS3PREFIX_DESCRIPTOR)
        field(RECORDINGSTATE_DESCRIPTOR)
        field(SDKVERSION_DESCRIPTOR)
        field(STATE_DESCRIPTOR)
        field(USERID_DESCRIPTOR)
    }

    deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
        loop@while (true) {
            when (findNextFieldIndex()) {
                ATTRIBUTES_DESCRIPTOR.index -> builder.attributes =
                    deserializer.deserializeMap(ATTRIBUTES_DESCRIPTOR) {
                        val map0 = mutableMapOf()
                        while (hasNextEntry()) {
                            val k0 = key()
                            val v0 = if (nextHasValue()) { deserializeString() } else { deserializeNull(); continue }
                            map0[k0] = v0
                        }
                        map0
                    }
                BROWSERNAME_DESCRIPTOR.index -> builder.browserName = deserializeString()
                BROWSERVERSION_DESCRIPTOR.index -> builder.browserVersion = deserializeString()
                FIRSTJOINTIME_DESCRIPTOR.index -> builder.firstJoinTime = deserializeInstant(TimestampFormat.ISO_8601)
                ISPNAME_DESCRIPTOR.index -> builder.ispName = deserializeString()
                OSNAME_DESCRIPTOR.index -> builder.osName = deserializeString()
                OSVERSION_DESCRIPTOR.index -> builder.osVersion = deserializeString()
                PARTICIPANTID_DESCRIPTOR.index -> builder.participantId = deserializeString()
                PROTOCOL_DESCRIPTOR.index -> builder.protocol = deserializeString().let { ParticipantProtocol.fromValue(it) }
                PUBLISHED_DESCRIPTOR.index -> builder.published = deserializeBoolean()
                RECORDINGS3BUCKETNAME_DESCRIPTOR.index -> builder.recordingS3BucketName = deserializeString()
                RECORDINGS3PREFIX_DESCRIPTOR.index -> builder.recordingS3Prefix = deserializeString()
                RECORDINGSTATE_DESCRIPTOR.index -> builder.recordingState = deserializeString().let { ParticipantRecordingState.fromValue(it) }
                SDKVERSION_DESCRIPTOR.index -> builder.sdkVersion = deserializeString()
                STATE_DESCRIPTOR.index -> builder.state = deserializeString().let { ParticipantState.fromValue(it) }
                USERID_DESCRIPTOR.index -> builder.userId = deserializeString()
                null -> break@loop
                else -> skipValue()
            }
        }
    }
    builder.correctErrors()
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy