2 2 |
|
3 3 | package aws.sdk.kotlin.services.ec2.serde
|
4 4 |
|
5 5 | import aws.sdk.kotlin.services.ec2.model.ClientConnectOptions
|
6 6 | import aws.sdk.kotlin.services.ec2.model.ClientLoginBannerOptions
|
7 7 | import aws.sdk.kotlin.services.ec2.model.ClientRouteEnforcementOptions
|
8 8 | import aws.sdk.kotlin.services.ec2.model.ConnectionLogOptions
|
9 9 | import aws.sdk.kotlin.services.ec2.model.DnsServersOptionsModifyStructure
|
10 10 | import aws.sdk.kotlin.services.ec2.model.ModifyClientVpnEndpointRequest
|
11 11 | import aws.sdk.kotlin.services.ec2.model.SelfServicePortal
|
12 + | import aws.sdk.kotlin.services.ec2.model.TransitGatewayConfigurationInputStructure
|
12 13 | import aws.smithy.kotlin.runtime.http.HttpBody
|
13 14 | import aws.smithy.kotlin.runtime.http.HttpMethod
|
14 15 | import aws.smithy.kotlin.runtime.http.operation.HttpSerializer
|
15 16 | import aws.smithy.kotlin.runtime.http.request.HttpRequestBuilder
|
16 17 | import aws.smithy.kotlin.runtime.http.request.url
|
17 18 | import aws.smithy.kotlin.runtime.operation.ExecutionContext
|
18 19 | import aws.smithy.kotlin.runtime.serde.SdkFieldDescriptor
|
19 20 | import aws.smithy.kotlin.runtime.serde.SdkObjectDescriptor
|
20 21 | import aws.smithy.kotlin.runtime.serde.SerialKind
|
21 22 | import aws.smithy.kotlin.runtime.serde.asSdkSerializable
|
22 23 | import aws.smithy.kotlin.runtime.serde.deserializeList
|
23 24 | import aws.smithy.kotlin.runtime.serde.deserializeMap
|
24 25 | import aws.smithy.kotlin.runtime.serde.deserializeStruct
|
25 26 | import aws.smithy.kotlin.runtime.serde.field
|
26 27 | import aws.smithy.kotlin.runtime.serde.formurl.FormUrlFlattened
|
27 28 | import aws.smithy.kotlin.runtime.serde.formurl.FormUrlSerialName
|
28 29 | import aws.smithy.kotlin.runtime.serde.formurl.FormUrlSerializer
|
29 30 | import aws.smithy.kotlin.runtime.serde.formurl.QueryLiteral
|
30 31 | import aws.smithy.kotlin.runtime.serde.serializeList
|
31 32 | import aws.smithy.kotlin.runtime.serde.serializeMap
|
32 33 | import aws.smithy.kotlin.runtime.serde.serializeStruct
|
33 34 |
|
34 35 |
|
35 36 | internal class ModifyClientVpnEndpointOperationSerializer: HttpSerializer.NonStreaming<ModifyClientVpnEndpointRequest> {
|
36 37 | override fun serialize(context: ExecutionContext, input: ModifyClientVpnEndpointRequest): HttpRequestBuilder {
|
37 38 | val builder = HttpRequestBuilder()
|
38 39 | builder.method = HttpMethod.POST
|
39 40 |
|
40 41 | builder.url {
|
41 42 | path.encoded = "/"
|
42 43 | }
|
43 44 |
|
44 45 | val payload = serializeModifyClientVpnEndpointOperationBody(context, input)
|
45 46 | builder.body = HttpBody.fromBytes(payload)
|
46 47 | if (builder.body !is HttpBody.Empty) {
|
47 48 | builder.headers.setMissing("Content-Type", "application/x-www-form-urlencoded")
|
48 49 | }
|
49 50 | return builder
|
50 51 | }
|
51 52 | }
|
52 53 |
|
53 54 | private fun serializeModifyClientVpnEndpointOperationBody(context: ExecutionContext, input: ModifyClientVpnEndpointRequest): ByteArray {
|
54 55 | val serializer = FormUrlSerializer()
|
55 56 | val CLIENTCONNECTOPTIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("ClientConnectOptions"))
|
56 57 | val CLIENTLOGINBANNEROPTIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("ClientLoginBannerOptions"))
|
57 58 | val CLIENTROUTEENFORCEMENTOPTIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("ClientRouteEnforcementOptions"))
|
58 59 | val CLIENTVPNENDPOINTID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("ClientVpnEndpointId"))
|
59 60 | val CONNECTIONLOGOPTIONS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("ConnectionLogOptions"))
|
60 61 | val DESCRIPTION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("Description"))
|
61 62 | val DISCONNECTONSESSIONTIMEOUT_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, FormUrlSerialName("DisconnectOnSessionTimeout"))
|
62 63 | val DNSSERVERS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("DnsServers"))
|
63 64 | val DRYRUN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, FormUrlSerialName("DryRun"))
|
64 65 | val SECURITYGROUPIDS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.List, FormUrlSerialName("SecurityGroupId"), FormUrlFlattened)
|
65 66 | val SELFSERVICEPORTAL_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Enum, FormUrlSerialName("SelfServicePortal"))
|
66 67 | val SERVERCERTIFICATEARN_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("ServerCertificateArn"))
|
67 68 | val SESSIONTIMEOUTHOURS_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Integer, FormUrlSerialName("SessionTimeoutHours"))
|
68 69 | val SPLITTUNNEL_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Boolean, FormUrlSerialName("SplitTunnel"))
|
70 + | val TRANSITGATEWAYCONFIGURATION_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Struct, FormUrlSerialName("TransitGatewayConfiguration"))
|
69 71 | val VPCID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, FormUrlSerialName("VpcId"))
|
70 72 | val VPNPORT_DESCRIPTOR = SdkFieldDescriptor(SerialKind.Integer, FormUrlSerialName("VpnPort"))
|
71 73 | val OBJ_DESCRIPTOR = SdkObjectDescriptor.build {
|
72 74 | trait(FormUrlSerialName("ModifyClientVpnEndpointRequest"))
|
73 75 | trait(QueryLiteral("Action", "ModifyClientVpnEndpoint"))
|
74 76 | trait(QueryLiteral("Version", "2016-11-15"))
|
75 77 | field(CLIENTCONNECTOPTIONS_DESCRIPTOR)
|
76 78 | field(CLIENTLOGINBANNEROPTIONS_DESCRIPTOR)
|
77 79 | field(CLIENTROUTEENFORCEMENTOPTIONS_DESCRIPTOR)
|
78 80 | field(CLIENTVPNENDPOINTID_DESCRIPTOR)
|
79 81 | field(CONNECTIONLOGOPTIONS_DESCRIPTOR)
|
80 82 | field(DESCRIPTION_DESCRIPTOR)
|
81 83 | field(DISCONNECTONSESSIONTIMEOUT_DESCRIPTOR)
|
82 84 | field(DNSSERVERS_DESCRIPTOR)
|
83 85 | field(DRYRUN_DESCRIPTOR)
|
84 86 | field(SECURITYGROUPIDS_DESCRIPTOR)
|
85 87 | field(SELFSERVICEPORTAL_DESCRIPTOR)
|
86 88 | field(SERVERCERTIFICATEARN_DESCRIPTOR)
|
87 89 | field(SESSIONTIMEOUTHOURS_DESCRIPTOR)
|
88 90 | field(SPLITTUNNEL_DESCRIPTOR)
|
91 + | field(TRANSITGATEWAYCONFIGURATION_DESCRIPTOR)
|
89 92 | field(VPCID_DESCRIPTOR)
|
90 93 | field(VPNPORT_DESCRIPTOR)
|
91 94 | }
|
92 95 |
|
93 96 | serializer.serializeStruct(OBJ_DESCRIPTOR) {
|
94 97 | input.clientConnectOptions?.let { field(CLIENTCONNECTOPTIONS_DESCRIPTOR, it, ::serializeClientConnectOptionsDocument) }
|
95 98 | input.clientLoginBannerOptions?.let { field(CLIENTLOGINBANNEROPTIONS_DESCRIPTOR, it, ::serializeClientLoginBannerOptionsDocument) }
|
96 99 | input.clientRouteEnforcementOptions?.let { field(CLIENTROUTEENFORCEMENTOPTIONS_DESCRIPTOR, it, ::serializeClientRouteEnforcementOptionsDocument) }
|
97 100 | input.clientVpnEndpointId?.let { field(CLIENTVPNENDPOINTID_DESCRIPTOR, it) }
|
98 101 | input.connectionLogOptions?.let { field(CONNECTIONLOGOPTIONS_DESCRIPTOR, it, ::serializeConnectionLogOptionsDocument) }
|
99 102 | input.description?.let { field(DESCRIPTION_DESCRIPTOR, it) }
|
100 103 | input.disconnectOnSessionTimeout?.let { field(DISCONNECTONSESSIONTIMEOUT_DESCRIPTOR, it) }
|
101 104 | input.dnsServers?.let { field(DNSSERVERS_DESCRIPTOR, it, ::serializeDnsServersOptionsModifyStructureDocument) }
|
102 105 | input.dryRun?.let { field(DRYRUN_DESCRIPTOR, it) }
|
103 106 | if (!input.securityGroupIds.isNullOrEmpty()) {
|
104 107 | listField(SECURITYGROUPIDS_DESCRIPTOR) {
|
105 108 | for (el0 in input.securityGroupIds) {
|
106 109 | serializeString(el0)
|
107 110 | }
|
108 111 | }
|
109 112 | }
|
110 113 | input.selfServicePortal?.let { field(SELFSERVICEPORTAL_DESCRIPTOR, it.value) }
|
111 114 | input.serverCertificateArn?.let { field(SERVERCERTIFICATEARN_DESCRIPTOR, it) }
|
112 115 | input.sessionTimeoutHours?.let { field(SESSIONTIMEOUTHOURS_DESCRIPTOR, it) }
|
113 116 | input.splitTunnel?.let { field(SPLITTUNNEL_DESCRIPTOR, it) }
|
117 + | input.transitGatewayConfiguration?.let { field(TRANSITGATEWAYCONFIGURATION_DESCRIPTOR, it, ::serializeTransitGatewayConfigurationInputStructureDocument) }
|
114 118 | input.vpcId?.let { field(VPCID_DESCRIPTOR, it) }
|
115 119 | input.vpnPort?.let { field(VPNPORT_DESCRIPTOR, it) }
|
116 120 | }
|
117 121 | return serializer.toByteArray()
|
118 122 | }
|