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

commonMain.aws.sdk.kotlin.services.kms.serde.KeyMetadataDocumentDeserializer.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.kms.serde

import aws.sdk.kotlin.services.kms.model.CustomerMasterKeySpec
import aws.sdk.kotlin.services.kms.model.EncryptionAlgorithmSpec
import aws.sdk.kotlin.services.kms.model.ExpirationModelType
import aws.sdk.kotlin.services.kms.model.KeyManagerType
import aws.sdk.kotlin.services.kms.model.KeyMetadata
import aws.sdk.kotlin.services.kms.model.KeySpec
import aws.sdk.kotlin.services.kms.model.KeyState
import aws.sdk.kotlin.services.kms.model.KeyUsageType
import aws.sdk.kotlin.services.kms.model.MacAlgorithmSpec
import aws.sdk.kotlin.services.kms.model.OriginType
import aws.sdk.kotlin.services.kms.model.SigningAlgorithmSpec
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 kotlin.collections.mutableListOf

internal fun deserializeKeyMetadataDocument(deserializer: Deserializer): KeyMetadata {
    val builder = KeyMetadata.Builder()
    val AWSACCOUNTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("AWSAccountId"))
    val ARN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("Arn"))
    val CLOUDHSMCLUSTERID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("CloudHsmClusterId"))
    val CREATIONDATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Timestamp, JsonSerialName("CreationDate"))
    val CUSTOMKEYSTOREID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("CustomKeyStoreId"))
    val CUSTOMERMASTERKEYSPEC_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("CustomerMasterKeySpec"))
    val DELETIONDATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Timestamp, JsonSerialName("DeletionDate"))
    val DESCRIPTION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("Description"))
    val ENABLED_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, JsonSerialName("Enabled"))
    val ENCRYPTIONALGORITHMS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, JsonSerialName("EncryptionAlgorithms"))
    val EXPIRATIONMODEL_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("ExpirationModel"))
    val KEYID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("KeyId"))
    val KEYMANAGER_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("KeyManager"))
    val KEYSPEC_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("KeySpec"))
    val KEYSTATE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("KeyState"))
    val KEYUSAGE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("KeyUsage"))
    val MACALGORITHMS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, JsonSerialName("MacAlgorithms"))
    val MULTIREGION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, JsonSerialName("MultiRegion"))
    val MULTIREGIONCONFIGURATION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("MultiRegionConfiguration"))
    val ORIGIN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, JsonSerialName("Origin"))
    val PENDINGDELETIONWINDOWINDAYS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Integer, JsonSerialName("PendingDeletionWindowInDays"))
    val SIGNINGALGORITHMS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, JsonSerialName("SigningAlgorithms"))
    val VALIDTO_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Timestamp, JsonSerialName("ValidTo"))
    val XKSKEYCONFIGURATION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, JsonSerialName("XksKeyConfiguration"))
    val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
        field(AWSACCOUNTID_DESCRIPTOR)
        field(ARN_DESCRIPTOR)
        field(CLOUDHSMCLUSTERID_DESCRIPTOR)
        field(CREATIONDATE_DESCRIPTOR)
        field(CUSTOMKEYSTOREID_DESCRIPTOR)
        field(CUSTOMERMASTERKEYSPEC_DESCRIPTOR)
        field(DELETIONDATE_DESCRIPTOR)
        field(DESCRIPTION_DESCRIPTOR)
        field(ENABLED_DESCRIPTOR)
        field(ENCRYPTIONALGORITHMS_DESCRIPTOR)
        field(EXPIRATIONMODEL_DESCRIPTOR)
        field(KEYID_DESCRIPTOR)
        field(KEYMANAGER_DESCRIPTOR)
        field(KEYSPEC_DESCRIPTOR)
        field(KEYSTATE_DESCRIPTOR)
        field(KEYUSAGE_DESCRIPTOR)
        field(MACALGORITHMS_DESCRIPTOR)
        field(MULTIREGION_DESCRIPTOR)
        field(MULTIREGIONCONFIGURATION_DESCRIPTOR)
        field(ORIGIN_DESCRIPTOR)
        field(PENDINGDELETIONWINDOWINDAYS_DESCRIPTOR)
        field(SIGNINGALGORITHMS_DESCRIPTOR)
        field(VALIDTO_DESCRIPTOR)
        field(XKSKEYCONFIGURATION_DESCRIPTOR)
    }

    deserializer.deserializeStruct(OBJ_DESCRIPTOR) {
        loop@while (true) {
            when (findNextFieldIndex()) {
                AWSACCOUNTID_DESCRIPTOR.index -> builder.awsAccountId = deserializeString()
                ARN_DESCRIPTOR.index -> builder.arn = deserializeString()
                CLOUDHSMCLUSTERID_DESCRIPTOR.index -> builder.cloudHsmClusterId = deserializeString()
                CREATIONDATE_DESCRIPTOR.index -> builder.creationDate = deserializeString().let { Instant.fromEpochSeconds(it) }
                CUSTOMKEYSTOREID_DESCRIPTOR.index -> builder.customKeyStoreId = deserializeString()
                CUSTOMERMASTERKEYSPEC_DESCRIPTOR.index -> builder.customerMasterKeySpec = deserializeString().let { CustomerMasterKeySpec.fromValue(it) }
                DELETIONDATE_DESCRIPTOR.index -> builder.deletionDate = deserializeString().let { Instant.fromEpochSeconds(it) }
                DESCRIPTION_DESCRIPTOR.index -> builder.description = deserializeString()
                ENABLED_DESCRIPTOR.index -> builder.enabled = deserializeBoolean()
                ENCRYPTIONALGORITHMS_DESCRIPTOR.index -> builder.encryptionAlgorithms =
                    deserializer.deserializeList(ENCRYPTIONALGORITHMS_DESCRIPTOR) {
                        val col0 = mutableListOf()
                        while (hasNextElement()) {
                            val el0 = if (nextHasValue()) { deserializeString().let { EncryptionAlgorithmSpec.fromValue(it) } } else { deserializeNull(); continue }
                            col0.add(el0)
                        }
                        col0
                    }
                EXPIRATIONMODEL_DESCRIPTOR.index -> builder.expirationModel = deserializeString().let { ExpirationModelType.fromValue(it) }
                KEYID_DESCRIPTOR.index -> builder.keyId = deserializeString()
                KEYMANAGER_DESCRIPTOR.index -> builder.keyManager = deserializeString().let { KeyManagerType.fromValue(it) }
                KEYSPEC_DESCRIPTOR.index -> builder.keySpec = deserializeString().let { KeySpec.fromValue(it) }
                KEYSTATE_DESCRIPTOR.index -> builder.keyState = deserializeString().let { KeyState.fromValue(it) }
                KEYUSAGE_DESCRIPTOR.index -> builder.keyUsage = deserializeString().let { KeyUsageType.fromValue(it) }
                MACALGORITHMS_DESCRIPTOR.index -> builder.macAlgorithms =
                    deserializer.deserializeList(MACALGORITHMS_DESCRIPTOR) {
                        val col0 = mutableListOf()
                        while (hasNextElement()) {
                            val el0 = if (nextHasValue()) { deserializeString().let { MacAlgorithmSpec.fromValue(it) } } else { deserializeNull(); continue }
                            col0.add(el0)
                        }
                        col0
                    }
                MULTIREGION_DESCRIPTOR.index -> builder.multiRegion = deserializeBoolean()
                MULTIREGIONCONFIGURATION_DESCRIPTOR.index -> builder.multiRegionConfiguration = deserializeMultiRegionConfigurationDocument(deserializer)
                ORIGIN_DESCRIPTOR.index -> builder.origin = deserializeString().let { OriginType.fromValue(it) }
                PENDINGDELETIONWINDOWINDAYS_DESCRIPTOR.index -> builder.pendingDeletionWindowInDays = deserializeInt()
                SIGNINGALGORITHMS_DESCRIPTOR.index -> builder.signingAlgorithms =
                    deserializer.deserializeList(SIGNINGALGORITHMS_DESCRIPTOR) {
                        val col0 = mutableListOf()
                        while (hasNextElement()) {
                            val el0 = if (nextHasValue()) { deserializeString().let { SigningAlgorithmSpec.fromValue(it) } } else { deserializeNull(); continue }
                            col0.add(el0)
                        }
                        col0
                    }
                VALIDTO_DESCRIPTOR.index -> builder.validTo = deserializeString().let { Instant.fromEpochSeconds(it) }
                XKSKEYCONFIGURATION_DESCRIPTOR.index -> builder.xksKeyConfiguration = deserializeXksKeyConfigurationTypeDocument(deserializer)
                null -> break@loop
                else -> skipValue()
            }
        }
    }
    builder.correctErrors()
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy