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

commonMain.aws.sdk.kotlin.services.customerprofiles.transform.ProfileDocumentDeserializer.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.customerprofiles.transform

import aws.sdk.kotlin.services.customerprofiles.model.FoundByKeyValue
import aws.sdk.kotlin.services.customerprofiles.model.Gender
import aws.sdk.kotlin.services.customerprofiles.model.PartyType
import aws.sdk.kotlin.services.customerprofiles.model.Profile
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 kotlin.collections.mutableListOf
import kotlin.collections.mutableMapOf

internal fun deserializeProfileDocument(deserializer: Deserializer): Profile {
    val builder = Profile.Builder()
    val ACCOUNTNUMBER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("AccountNumber"))
    val ADDITIONALINFORMATION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("AdditionalInformation"))
    val ADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("Address"))
    val ATTRIBUTES_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Map, JsonSerialName("Attributes"))
    val BILLINGADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("BillingAddress"))
    val BIRTHDATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("BirthDate"))
    val BUSINESSEMAILADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("BusinessEmailAddress"))
    val BUSINESSNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("BusinessName"))
    val BUSINESSPHONENUMBER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("BusinessPhoneNumber"))
    val EMAILADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("EmailAddress"))
    val FIRSTNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("FirstName"))
    val FOUNDBYITEMS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, JsonSerialName("FoundByItems"))
    val GENDER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("Gender"))
    val GENDERSTRING_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("GenderString"))
    val HOMEPHONENUMBER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("HomePhoneNumber"))
    val LASTNAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("LastName"))
    val MAILINGADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("MailingAddress"))
    val MIDDLENAME_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("MiddleName"))
    val MOBILEPHONENUMBER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("MobilePhoneNumber"))
    val PARTYTYPE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("PartyType"))
    val PARTYTYPESTRING_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("PartyTypeString"))
    val PERSONALEMAILADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("PersonalEmailAddress"))
    val PHONENUMBER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("PhoneNumber"))
    val PROFILEID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("ProfileId"))
    val SHIPPINGADDRESS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("ShippingAddress"))
    val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
        field(ACCOUNTNUMBER_DESCRIPTOR)
        field(ADDITIONALINFORMATION_DESCRIPTOR)
        field(ADDRESS_DESCRIPTOR)
        field(ATTRIBUTES_DESCRIPTOR)
        field(BILLINGADDRESS_DESCRIPTOR)
        field(BIRTHDATE_DESCRIPTOR)
        field(BUSINESSEMAILADDRESS_DESCRIPTOR)
        field(BUSINESSNAME_DESCRIPTOR)
        field(BUSINESSPHONENUMBER_DESCRIPTOR)
        field(EMAILADDRESS_DESCRIPTOR)
        field(FIRSTNAME_DESCRIPTOR)
        field(FOUNDBYITEMS_DESCRIPTOR)
        field(GENDER_DESCRIPTOR)
        field(GENDERSTRING_DESCRIPTOR)
        field(HOMEPHONENUMBER_DESCRIPTOR)
        field(LASTNAME_DESCRIPTOR)
        field(MAILINGADDRESS_DESCRIPTOR)
        field(MIDDLENAME_DESCRIPTOR)
        field(MOBILEPHONENUMBER_DESCRIPTOR)
        field(PARTYTYPE_DESCRIPTOR)
        field(PARTYTYPESTRING_DESCRIPTOR)
        field(PERSONALEMAILADDRESS_DESCRIPTOR)
        field(PHONENUMBER_DESCRIPTOR)
        field(PROFILEID_DESCRIPTOR)
        field(SHIPPINGADDRESS_DESCRIPTOR)
    }

    deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
        loop@while (true) {
            when (findNextFieldIndex()) {
                ACCOUNTNUMBER_DESCRIPTOR.index -> builder.accountNumber = deserializeString()
                ADDITIONALINFORMATION_DESCRIPTOR.index -> builder.additionalInformation = deserializeString()
                ADDRESS_DESCRIPTOR.index -> builder.address = deserializeAddressDocument(deserializer)
                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
                    }
                BILLINGADDRESS_DESCRIPTOR.index -> builder.billingAddress = deserializeAddressDocument(deserializer)
                BIRTHDATE_DESCRIPTOR.index -> builder.birthDate = deserializeString()
                BUSINESSEMAILADDRESS_DESCRIPTOR.index -> builder.businessEmailAddress = deserializeString()
                BUSINESSNAME_DESCRIPTOR.index -> builder.businessName = deserializeString()
                BUSINESSPHONENUMBER_DESCRIPTOR.index -> builder.businessPhoneNumber = deserializeString()
                EMAILADDRESS_DESCRIPTOR.index -> builder.emailAddress = deserializeString()
                FIRSTNAME_DESCRIPTOR.index -> builder.firstName = deserializeString()
                FOUNDBYITEMS_DESCRIPTOR.index -> builder.foundByItems =
                    deserializer.deserializeList(FOUNDBYITEMS_DESCRIPTOR) {
                        val col0 = mutableListOf()
                        while (hasNextElement()) {
                            val el0 = if (nextHasValue()) { deserializeFoundByKeyValueDocument(deserializer) } else { deserializeNull(); continue }
                            col0.add(el0)
                        }
                        col0
                    }
                GENDER_DESCRIPTOR.index -> builder.gender = deserializeString().let { Gender.fromValue(it) }
                GENDERSTRING_DESCRIPTOR.index -> builder.genderString = deserializeString()
                HOMEPHONENUMBER_DESCRIPTOR.index -> builder.homePhoneNumber = deserializeString()
                LASTNAME_DESCRIPTOR.index -> builder.lastName = deserializeString()
                MAILINGADDRESS_DESCRIPTOR.index -> builder.mailingAddress = deserializeAddressDocument(deserializer)
                MIDDLENAME_DESCRIPTOR.index -> builder.middleName = deserializeString()
                MOBILEPHONENUMBER_DESCRIPTOR.index -> builder.mobilePhoneNumber = deserializeString()
                PARTYTYPE_DESCRIPTOR.index -> builder.partyType = deserializeString().let { PartyType.fromValue(it) }
                PARTYTYPESTRING_DESCRIPTOR.index -> builder.partyTypeString = deserializeString()
                PERSONALEMAILADDRESS_DESCRIPTOR.index -> builder.personalEmailAddress = deserializeString()
                PHONENUMBER_DESCRIPTOR.index -> builder.phoneNumber = deserializeString()
                PROFILEID_DESCRIPTOR.index -> builder.profileId = deserializeString()
                SHIPPINGADDRESS_DESCRIPTOR.index -> builder.shippingAddress = deserializeAddressDocument(deserializer)
                null -> break@loop
                else -> skipValue()
            }
        }
    }
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy