in codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/AWSServiceConfig.kt [26:78]
override fun renderInitializers(serviceSymbol: Symbol) {
val awsConfigFields = otherRuntimeConfigProperties()
writer.openBlock("public init(", ") throws {") {
awsConfigFields.forEach {
writer.write("${it.memberName}: \$D, ", it.type)
}
writer.write("runtimeConfig: \$N", ClientRuntimeTypes.Core.SDKRuntimeConfiguration)
}
writer.indent()
writer.openBlock("if let region = region {", "} else {") {
writer.write("self.region = region")
writer.write("self.regionResolver = nil")
writer.write("self.signingRegion = signingRegion ?? region")
}
writer.indent()
writer.write("let resolvedRegionResolver = regionResolver ?? DefaultRegionResolver()")
writer.write("let region = resolvedRegionResolver.resolveRegion()")
writer.write("self.region = region")
writer.write("self.regionResolver = resolvedRegionResolver")
writer.write("self.signingRegion = signingRegion ?? region")
writer.dedent()
writer.write("}")
writer.write("self.endpointResolver = endpointResolver ?? DefaultEndpointResolver()")
writer.openBlock("if let credProvider = credentialsProvider {", "} else {") {
writer.write("self.credentialsProvider = try \$N.fromCustom(credProvider)", AWSClientRuntimeTypes.Core.AWSCredentialsProvider)
}
writer.indent().write("self.credentialsProvider = try \$N.fromChain()", AWSClientRuntimeTypes.Core.AWSCredentialsProvider)
writer.dedent().write("}")
writer.write("self.frameworkMetadata = frameworkMetadata")
val runtimeTimeConfigFields = sdkRuntimeConfigProperties()
runtimeTimeConfigFields.forEach {
writer.write("self.${it.memberName} = runtimeConfig.${it.memberName}")
}
writer.dedent().write("}")
writer.write("")
writer.openBlock("public convenience init(", ") throws {") {
awsConfigFields.forEachIndexed { index, configField ->
val terminator = if (index != awsConfigFields.lastIndex) ", " else ""
writer.write("${configField.memberName}: \$D$terminator", configField.type)
}
}
var configParamValues = ""
awsConfigFields.forEach {
configParamValues += "${it.memberName}: ${it.memberName}, "
}
writer.indent()
writer.write("let defaultRuntimeConfig = try \$N(\"${serviceName}\")", ClientRuntimeTypes.Core.DefaultSDKRuntimeConfiguration)
writer.write("try self.init(${configParamValues}runtimeConfig: defaultRuntimeConfig)")
writer.dedent().write("}")
}