Skip to content

Commit 410e0de

Browse files
authored
feat: allow SDK log mode configuration in shared config (#441)
1 parent 723de4a commit 410e0de

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsClientConfigLoader.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import aws.sdk.kotlin.runtime.auth.credentials.CredentialsProvider
99
import aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider
1010
import aws.sdk.kotlin.runtime.client.AwsClientConfig
1111
import aws.sdk.kotlin.runtime.region.resolveRegion
12+
import aws.smithy.kotlin.runtime.client.SdkLogMode
1213
import aws.smithy.kotlin.runtime.util.Platform
1314
import aws.smithy.kotlin.runtime.util.PlatformProvider
1415

@@ -31,6 +32,11 @@ public class AwsClientConfigLoadOptions {
3132
*/
3233
public var credentialsProvider: CredentialsProvider? = null
3334

35+
/**
36+
* The [SdkLogMode] to apply to service clients.
37+
*/
38+
public var sdkLogMode: SdkLogMode = SdkLogMode.Default
39+
3440
// FIXME - expose profile name override and thread through region/cred provider chains
3541
}
3642

@@ -48,13 +54,14 @@ internal suspend fun loadAwsClientConfig(
4854
val opts = AwsClientConfigLoadOptions().apply(block)
4955

5056
val region = opts.region ?: resolveRegion(platformProvider)
51-
5257
val credentialsProvider = opts.credentialsProvider ?: DefaultChainCredentialsProvider()
58+
val sdkLogMode = opts.sdkLogMode
5359

54-
return ResolvedAwsConfig(region, credentialsProvider)
60+
return ResolvedAwsConfig(region, credentialsProvider, sdkLogMode)
5561
}
5662

5763
private data class ResolvedAwsConfig(
5864
override val region: String,
59-
override val credentialsProvider: CredentialsProvider
65+
override val credentialsProvider: CredentialsProvider,
66+
override val sdkLogMode: SdkLogMode,
6067
) : AwsClientConfig

aws-runtime/aws-types/common/src/aws/sdk/kotlin/runtime/client/AwsClientConfig.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package aws.sdk.kotlin.runtime.client
77

88
import aws.sdk.kotlin.runtime.auth.credentials.CredentialsProvider
9+
import aws.smithy.kotlin.runtime.client.SdkLogMode
910

1011
/**
1112
* Shared AWS service client configuration that all AWS service clients implement as part of their configuration state.
@@ -21,5 +22,10 @@ public interface AwsClientConfig {
2122
*/
2223
public val credentialsProvider: CredentialsProvider
2324

25+
/**
26+
* The [SdkLogMode] to apply to service clients.
27+
*/
28+
public val sdkLogMode: SdkLogMode
29+
2430
public companion object {}
2531
}

codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegration.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class AwsServiceConfigIntegration : KotlinIntegration {
5858
) {
5959
write("region = sharedConfig?.region")
6060
write("credentialsProvider = sharedConfig?.credentialsProvider")
61+
write("sdkLogMode = sharedConfig?.sdkLogMode ?: SdkLogMode.Default")
6162
}
6263
write("return Default${serviceSymbol.name}(config)")
6364
}

0 commit comments

Comments
 (0)