Skip to content

Commit 5133a60

Browse files
committed
Added responseChecksumValidation
1 parent e9bf8e5 commit 5133a60

File tree

14 files changed

+75
-21
lines changed

14 files changed

+75
-21
lines changed

aws-runtime/aws-config/api/aws-config.api

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ public final class aws/sdk/kotlin/runtime/config/AwsSdkSetting {
245245
public final fun getAwsRegion ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
246246
public final fun getAwsRequestChecksumCalculation ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
247247
public final fun getAwsRequestMinCompressionSizeBytes ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
248+
public final fun getAwsResponseChecksumValidation ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
248249
public final fun getAwsRetryMode ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
249250
public final fun getAwsRoleArn ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
250251
public final fun getAwsRoleSessionName ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting;
@@ -266,6 +267,11 @@ public final class aws/sdk/kotlin/runtime/config/checksums/ResolveRequestChecksu
266267
public static synthetic fun resolveRequestChecksumCalculation$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
267268
}
268269

270+
public final class aws/sdk/kotlin/runtime/config/checksums/ResolveResponseChecksumValidationKt {
271+
public static final fun resolveResponseChecksumValidation (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
272+
public static synthetic fun resolveResponseChecksumValidation$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
273+
}
274+
269275
public final class aws/sdk/kotlin/runtime/config/compression/RequestCompressionResolversKt {
270276
public static final fun resolveDisableRequestCompression (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
271277
public static synthetic fun resolveDisableRequestCompression$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object;
@@ -475,6 +481,7 @@ public final class aws/sdk/kotlin/runtime/config/profile/AwsProfileKt {
475481
public static final fun getRegion (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String;
476482
public static final fun getRequestChecksumCalculation (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String;
477483
public static final fun getRequestMinCompressionSizeBytes (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/Long;
484+
public static final fun getResponseChecksumValidation (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String;
478485
public static final fun getRetryMode (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Laws/smithy/kotlin/runtime/client/config/RetryMode;
479486
public static final fun getRoleArn (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String;
480487
public static final fun getSdkUserAgentAppId (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String;

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

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

88
import aws.sdk.kotlin.runtime.client.AwsSdkClientConfig
99
import aws.sdk.kotlin.runtime.config.checksums.resolveRequestChecksumCalculation
10+
import aws.sdk.kotlin.runtime.config.checksums.resolveResponseChecksumValidation
1011
import aws.sdk.kotlin.runtime.config.compression.resolveDisableRequestCompression
1112
import aws.sdk.kotlin.runtime.config.compression.resolveRequestMinCompressionSizeBytes
1213
import aws.sdk.kotlin.runtime.config.endpoints.resolveUseDualStack
@@ -99,6 +100,9 @@ public abstract class AbstractAwsSdkClientFactory<
99100
if (config is HttpChecksumClientConfig.Builder) {
100101
config.requestChecksumCalculation =
101102
config.requestChecksumCalculation ?: resolveRequestChecksumCalculation(platform, profile)
103+
104+
config.responseChecksumValidation =
105+
config.responseChecksumValidation ?: resolveResponseChecksumValidation(platform, profile)
102106
}
103107

104108
finalizeConfig(builder)

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,12 @@ public object AwsSdkSetting {
214214
*/
215215
public val AwsRequestChecksumCalculation: EnvironmentSetting<String> =
216216
strEnvSetting("aws.requestChecksumCalculation", "AWS_REQUEST_CHECKSUM_CALCULATION")
217+
218+
/**
219+
* todo
220+
*/
221+
public val AwsResponseChecksumValidation: EnvironmentSetting<String> =
222+
strEnvSetting("aws.responseChecksumValidation", "AWS_RESPONSE_CHECKSUM_VALIDATION")
217223
}
218224

219225
/**

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/checksums/ResolveRequestChecksumCalculation.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import aws.sdk.kotlin.runtime.InternalSdkApi
55
import aws.sdk.kotlin.runtime.config.AwsSdkSetting
66
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
77
import aws.sdk.kotlin.runtime.config.profile.requestChecksumCalculation
8-
import aws.smithy.kotlin.runtime.client.config.RequestChecksumCalculation
8+
import aws.smithy.kotlin.runtime.client.config.ChecksumConfigOption
99
import aws.smithy.kotlin.runtime.config.resolve
1010
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
1111
import aws.smithy.kotlin.runtime.util.PlatformProvider
@@ -15,14 +15,15 @@ import java.util.*
1515
* todo
1616
*/
1717
@InternalSdkApi
18-
public suspend fun resolveRequestChecksumCalculation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): RequestChecksumCalculation? {
18+
public suspend fun resolveRequestChecksumCalculation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): ChecksumConfigOption? {
1919
AwsSdkSetting.AwsRequestChecksumCalculation.resolve(platform) ?: profile.get().requestChecksumCalculation?.let {
2020
try {
21-
return RequestChecksumCalculation.valueOf(it.uppercase(Locale.getDefault()))
21+
return ChecksumConfigOption.valueOf(it.uppercase(Locale.getDefault()))
2222
} catch (_: IllegalArgumentException) {
23-
throw ConfigurationException("'$it' is not a valid value for request checksum calculation. Valid values are: 'WHEN_SUPPORTED' & 'WHEN_REQUIRED'")
23+
throw ConfigurationException(
24+
"'$it' is not a valid value for request checksum calculation. Valid values are: ${ChecksumConfigOption.entries.toTypedArray()}",
25+
)
2426
}
2527
}
2628
return null
2729
}
28-
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package aws.sdk.kotlin.runtime.config.checksums
2+
3+
import aws.sdk.kotlin.runtime.ConfigurationException
4+
import aws.sdk.kotlin.runtime.InternalSdkApi
5+
import aws.sdk.kotlin.runtime.config.AwsSdkSetting
6+
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
7+
import aws.sdk.kotlin.runtime.config.profile.responseChecksumValidation
8+
import aws.smithy.kotlin.runtime.client.config.ChecksumConfigOption
9+
import aws.smithy.kotlin.runtime.config.resolve
10+
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
11+
import aws.smithy.kotlin.runtime.util.PlatformProvider
12+
import java.util.*
13+
14+
/**
15+
* todo
16+
*/
17+
@InternalSdkApi
18+
public suspend fun resolveResponseChecksumValidation(platform: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue<AwsProfile>): ChecksumConfigOption? {
19+
AwsSdkSetting.AwsResponseChecksumValidation.resolve(platform) ?: profile.get().responseChecksumValidation?.let {
20+
try {
21+
return ChecksumConfigOption.valueOf(it.uppercase(Locale.getDefault()))
22+
} catch (_: IllegalArgumentException) {
23+
throw ConfigurationException(
24+
"'$it' is not a valid value for response checksum validation. Valid values are: ${ChecksumConfigOption.entries.toTypedArray()}",
25+
)
26+
}
27+
}
28+
return null
29+
}

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,13 @@ public val AwsProfile.sigV4aSigningRegionSet: String?
174174
public val AwsProfile.requestChecksumCalculation: String?
175175
get() = getOrNull("request_checksum_calculation")
176176

177+
/**
178+
* todo
179+
*/
180+
@InternalSdkApi
181+
public val AwsProfile.responseChecksumValidation: String?
182+
get() = getOrNull("response_checksum_validation")
183+
177184
/**
178185
* Parse a config value as a boolean, ignoring case.
179186
*/

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ plugins {
44

55
repositories {
66
mavenCentral()
7-
}
7+
}

buildSrc/settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ dependencyResolutionManagement {
44
from(files("../gradle/libs.versions.toml"))
55
}
66
}
7-
}
7+
}

buildSrc/src/main/kotlin/shared/CodegenTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ data class CodegenTest(
1616
data class Model(
1717
val fileName: String,
1818
val path: String = "src/commonTest/resources/",
19-
)
19+
)

tests/codegen/checksums/src/commonTest/kotlin/ChecksumResponseTests.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ class ChecksumResponseTests {
66
fun test() {
77
TestClient {}.use { client -> client.close() }
88
}
9-
}
9+
}

0 commit comments

Comments
 (0)