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

commonMain.aws.sdk.kotlin.services.elasticloadbalancingv2.serde.TargetGroupDocumentDeserializer.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.elasticloadbalancingv2.serde

import aws.sdk.kotlin.services.elasticloadbalancingv2.model.ProtocolEnum
import aws.sdk.kotlin.services.elasticloadbalancingv2.model.TargetGroup
import aws.sdk.kotlin.services.elasticloadbalancingv2.model.TargetGroupIpAddressTypeEnum
import aws.sdk.kotlin.services.elasticloadbalancingv2.model.TargetTypeEnum
import aws.smithy.kotlin.runtime.serde.getOrDeserializeErr
import aws.smithy.kotlin.runtime.serde.parse
import aws.smithy.kotlin.runtime.serde.parseBoolean
import aws.smithy.kotlin.runtime.serde.parseInt
import aws.smithy.kotlin.runtime.serde.xml.XmlTagReader
import aws.smithy.kotlin.runtime.serde.xml.tryData

internal fun deserializeTargetGroupDocument(reader: XmlTagReader): TargetGroup {
    val builder = TargetGroup.Builder()

    loop@while (true) {
        val curr = reader.nextTag() ?: break@loop
        when (curr.tagName) {
            // TargetGroupArn com.amazonaws.elasticloadbalancingv2#TargetGroup$TargetGroupArn
            "TargetGroupArn" -> builder.targetGroupArn = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#TargetGroupArn`)" }
            // TargetGroupName com.amazonaws.elasticloadbalancingv2#TargetGroup$TargetGroupName
            "TargetGroupName" -> builder.targetGroupName = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#TargetGroupName`)" }
            // Protocol com.amazonaws.elasticloadbalancingv2#TargetGroup$Protocol
            "Protocol" -> builder.protocol = curr.tryData()
                .parse { ProtocolEnum.fromValue(it) }
                .getOrDeserializeErr { "expected (enum: `com.amazonaws.elasticloadbalancingv2#ProtocolEnum`)" }
            // Port com.amazonaws.elasticloadbalancingv2#TargetGroup$Port
            "Port" -> builder.port = curr.tryData()
                .parseInt()
                .getOrDeserializeErr { "expected (integer: `com.amazonaws.elasticloadbalancingv2#Port`)" }
            // VpcId com.amazonaws.elasticloadbalancingv2#TargetGroup$VpcId
            "VpcId" -> builder.vpcId = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#VpcId`)" }
            // HealthCheckProtocol com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckProtocol
            "HealthCheckProtocol" -> builder.healthCheckProtocol = curr.tryData()
                .parse { ProtocolEnum.fromValue(it) }
                .getOrDeserializeErr { "expected (enum: `com.amazonaws.elasticloadbalancingv2#ProtocolEnum`)" }
            // HealthCheckPort com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckPort
            "HealthCheckPort" -> builder.healthCheckPort = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#HealthCheckPort`)" }
            // HealthCheckEnabled com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckEnabled
            "HealthCheckEnabled" -> builder.healthCheckEnabled = curr.tryData()
                .parseBoolean()
                .getOrDeserializeErr { "expected (boolean: `com.amazonaws.elasticloadbalancingv2#HealthCheckEnabled`)" }
            // HealthCheckIntervalSeconds com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckIntervalSeconds
            "HealthCheckIntervalSeconds" -> builder.healthCheckIntervalSeconds = curr.tryData()
                .parseInt()
                .getOrDeserializeErr { "expected (integer: `com.amazonaws.elasticloadbalancingv2#HealthCheckIntervalSeconds`)" }
            // HealthCheckTimeoutSeconds com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckTimeoutSeconds
            "HealthCheckTimeoutSeconds" -> builder.healthCheckTimeoutSeconds = curr.tryData()
                .parseInt()
                .getOrDeserializeErr { "expected (integer: `com.amazonaws.elasticloadbalancingv2#HealthCheckTimeoutSeconds`)" }
            // HealthyThresholdCount com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthyThresholdCount
            "HealthyThresholdCount" -> builder.healthyThresholdCount = curr.tryData()
                .parseInt()
                .getOrDeserializeErr { "expected (integer: `com.amazonaws.elasticloadbalancingv2#HealthCheckThresholdCount`)" }
            // UnhealthyThresholdCount com.amazonaws.elasticloadbalancingv2#TargetGroup$UnhealthyThresholdCount
            "UnhealthyThresholdCount" -> builder.unhealthyThresholdCount = curr.tryData()
                .parseInt()
                .getOrDeserializeErr { "expected (integer: `com.amazonaws.elasticloadbalancingv2#HealthCheckThresholdCount`)" }
            // HealthCheckPath com.amazonaws.elasticloadbalancingv2#TargetGroup$HealthCheckPath
            "HealthCheckPath" -> builder.healthCheckPath = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#Path`)" }
            // Matcher com.amazonaws.elasticloadbalancingv2#TargetGroup$Matcher
            "Matcher" -> builder.matcher = deserializeMatcherDocument(curr)
            // LoadBalancerArns com.amazonaws.elasticloadbalancingv2#TargetGroup$LoadBalancerArns
            "LoadBalancerArns" -> builder.loadBalancerArns = deserializeLoadBalancerArnsShape(curr)
            // TargetType com.amazonaws.elasticloadbalancingv2#TargetGroup$TargetType
            "TargetType" -> builder.targetType = curr.tryData()
                .parse { TargetTypeEnum.fromValue(it) }
                .getOrDeserializeErr { "expected (enum: `com.amazonaws.elasticloadbalancingv2#TargetTypeEnum`)" }
            // ProtocolVersion com.amazonaws.elasticloadbalancingv2#TargetGroup$ProtocolVersion
            "ProtocolVersion" -> builder.protocolVersion = curr.tryData()
                .getOrDeserializeErr { "expected (string: `com.amazonaws.elasticloadbalancingv2#ProtocolVersion`)" }
            // IpAddressType com.amazonaws.elasticloadbalancingv2#TargetGroup$IpAddressType
            "IpAddressType" -> builder.ipAddressType = curr.tryData()
                .parse { TargetGroupIpAddressTypeEnum.fromValue(it) }
                .getOrDeserializeErr { "expected (enum: `com.amazonaws.elasticloadbalancingv2#TargetGroupIpAddressTypeEnum`)" }
            else -> {}
        }
        curr.drop()
    }
    builder.correctErrors()
    return builder.build()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy