Sources/OSS/Transform/SerdeRegion.swift (33 lines of code) (raw):

import Foundation // MARK: - DescribeRegions extension Serde { static func serializeDescribeRegions( _ request: inout DescribeRegionsRequest, _ input: inout OperationInput ) throws { if let value = request.regions { input.parameters["regions"] = value } } static func deserializeDescribeRegions( _ result: inout DescribeRegionsResult, _ output: inout OperationOutput ) throws { let body: [String: Any] = try Serde.deserializeXml(output.body, "RegionInfoList") var regions: [[String: Any]] = [] if let contents = body["RegionInfo"] as? [[String: Any]] { regions.append(contentsOf: contents) } else if let content = body["RegionInfo"] as? [String: Any] { regions.append(content) } var regionInfos: [RegionInfo] = [] for region in regions { var regionInfo = RegionInfo() regionInfo.region = region["Region"] as? String regionInfo.accelerateEndpoint = region["AccelerateEndpoint"] as? String regionInfo.internalEndpoint = region["InternalEndpoint"] as? String regionInfo.internetEndpoint = region["InternetEndpoint"] as? String regionInfos.append(regionInfo) } result.regionInfoList = RegionInfoList(regionInfos: regionInfos) } }